funcall-in-packageStarting Upwith-system-namestartup-moduleGoTo Top

startup-module   module-name options &optional package-name[Function]

Purpose
Compile and load a GBBopen module, even if the Module Manager Facility is not yet loaded, and optionally set the current package.

Package   :common-lisp-user (not exported)

Module   Defined in initiate.lisp

Arguments and values

module-name     A keyword symbol naming a module
option     Any of the following keywords:

:create-dirs Creates any needed directories that are missing in the compiled-file tree
:noautorun Binds *autorun-modules* to nil during compilation and loading
:nopatches Do not compile or load any patches
:nopropagate Cancels (overrides) a specified :propagate option
:patches-only    Do not compile or load/reload any non-patch files (binds *patches-only* to t during compilation and loading)
:print Incrementally prints information during compilation and loading
:propagate Applies the specified options to all required modules
:recompile Compiles files even if the existing compiled file is newer than the source file
:reload Loads files even if they are already loaded
:source Loads from the source file even if the existing compiled file is newer than the source file (implies :reload)

package-name

     A package name (default is nil)

Errors
Module module-name has not been defined.
A relative directory specification contains a circularity.

Description
This function bootstraps GBBopen loading, if needed, before calling compile-module on module-name with options. Then, unless package-name is nil, the current package is set to the package named by package-name. The named package does not need to be defined before calling startup-module, but it must be defined at the conclusion of module compilation and loading.

Startup-module adds the option :propagate to the supplied options. If this propagation behavior is not desired, the :nopropagate option can be specified to override (cancel) propagation.

See also
    compile-module
    define-module
    define-repl-command

Example
Define a REPL command named :my-app that compiles and loads the module :my-app and sets the current package to the :gbbopen-user package:

  (define-repl-command :my-app (&rest options)
    "Compile and load my GBBopen application module"
    (startup-module :my-app options :gbbopen-user))


The GBBopen Project


funcall-in-packageStarting Upwith-system-namestartup-moduleGoTo Top