Manifest compiler

Author(s): Jose F. Morales.

This module implements predicates to load, consult, and compile Manifest.pl files. A Manifest file allows the specification of a bundle:

NOTE: Configuration flags and nested definitions must be defined in a <bundle>.hooks.pl module.

Use make_bundlereg/4 for processing of Manifest.pl files into bundle registry entries. Bundle registries are written using fastrw so that the support code to load them is minimal. They include cheaper runtime meta-information (like dependencies, versions, path aliases, etc.).

For registered bundles, you can use ensure_load_manifest/1 and manifest_call/2 for loading and consulting a bundle specification.

NOTE: Users should never call a custom build command definitions directly with manifest_call/2. Use builder_cmds instead.

Documentation on exports

Usage:is_bundledir(BundleDir)

BundleDir is the directory for a bundle (i.e., contains a Manifest.pl file

    Usage:locate_manifest_file(BundleDir,ManifestFile)

    Given BundleDir a bundle directory, ManifestFile is unified with the name of the manifest file

      Usage:lookup_bundle_root(File,BundleDir)

      Detect the bundle root dir for the given File (a directory or normal file)

        Usage:ensure_load_manifest(Target)

        Ensure that the manifest for Target is loaded (including Manifest sentences and .hooks.pl modules). The bundle must have been scanned before, so that its source directory is known.

          Usage:manifest_call(Target,Head)

          Call Target:Head, a predicate defined in a Manifest (fact, predicate in hooks, or nested predicate)

            Usage:manifest_current_predicate(Target,Head)

            Head is declared in Target

              No further documentation available for this predicate.

              No further documentation available for this predicate.

              No further documentation available for this predicate.

              Usage:make_bundlereg(Bundle,BundleDir,FinalBundleDir,RegFile)

              Generate a bundlereg RegFile for bundle Bundle at BundleDir, where the final bundle directory is FinalBundleDir.

                PREDICATEbundle_info/1

                Usage:bundle_info(Bundle)

                Show info of Bundle

                  No further documentation available for this predicate.

                  No further documentation available for this predicate.

                  No further documentation available for this predicate.

                  No further documentation available for this predicate.

                  Documentation on multifiles

                  No further documentation available for this predicate. The predicate is multifile.

                  No further documentation available for this predicate. The predicate is multifile.

                  No further documentation available for this predicate. The predicate is multifile.

                  No further documentation available for this predicate. The predicate is multifile.

                  No further documentation available for this predicate. The predicate is multifile.

                  No further documentation available for this predicate. The predicate is multifile.

                  No further documentation available for this predicate. The predicate is multifile.

                  No further documentation available for this predicate. The predicate is multifile.

                  No further documentation available for this predicate. The predicate is multifile.

                  No further documentation available for this predicate. The predicate is multifile.

                  No further documentation available for this predicate. The predicate is multifile.

                  No further documentation available for this predicate. The predicate is multifile.

                  No further documentation available for this predicate. The predicate is multifile.

                  No further documentation available for this predicate. The predicate is multifile.

                  No further documentation available for this predicate. The predicate is multifile.

                  No further documentation available for this predicate. The predicate is multifile.

                  No further documentation available for this predicate. The predicate is multifile.

                  Documentation on imports

                  This module has the following direct dependencies:

                  Known bugs and planned improvements

                  • Simplify reusing the module compiler and some translation modules
                  • ensure_load_manifest/1 requires previous make_bundlereg
                  • ensure_load_manifest/1 not unloaded; no refcount or module GC