Package Documentation

Object: GDL-APP (The :GENDL Package)
Mixins: GDL-APP-SCRIPTS-MIXIN, VANILLA-MIXIN

Author

Dave Cooper, Genworks International

Description

This object serves as the driver for the build process for GDL runtime applications. There is also an undocumented function called make-gdl-app; in order to perform a runtime build process, simply make an instance of this object with the appropriate input values, and invoke (the make!) on it, or call make-gdl-app with the same arguments as the input-slot you give to this object.


Input Slots (optional)

APPLICATION-FASLS list of pathnames

This list should contain the pre-compiled fasls for your GDL application, in correct load order. These can be produced, for example, by calling genworks:cl-lite with the :create-fasl? keyword argument set to t. If you are using the ASDF build management system, note that ASDF3 is now capable of producing a single fasl file for your application including its ASDF/Quicklisp dependencies, using

         (asdf:operate 'asdf:monolithic-compile-bundle-op :your-application-system-name)
         (asdf:output-file 'asdf:monolithic-compile-bundle-op :your-application-system-name)
See the ASDF documentation for details.


APPLICATION-NAME string

The name which will be used for your application's executable and possibly image file. Defaults to "gdl-test-runtime".


DESTINATION-DIRECTORY pathname

Indicates the directory to be created or overwritten for producing the runtime distribution. Defaults to a directory called (the application-name) in the system temporary directory, returned by (glisp:temporary-folder).


GDLINIT-CONTENT string

The contents of this string will be copied to a file gdlinit.cl and placed in the destination-directory. Default is empty string.


HIDDEN? [from VANILLA-MIXIN*] boolean

Indicates whether the object should effectively be a hidden-object even if specified in :objects. Default is nil.


LISP-HEAP-SIZE number

The size of the reserved space which will be requested from the OS when the produced application starts up. Defaults to 800000000 (eight hundred million) bytes.


OVERWRITE-VALIDATION-FUNCTION function, t, or nil

Validates the target of overwrite? before deleting. T is unconditional "yes" - use at your own risk.


OVERWRITE? boolean

Indicates whether a build will overwrite a previously existing destination directory. Defaults to nil.


POST-LOAD-FORM lisp expression

This form will be evaluated in the image being built, after the loading of application-fasls is complete. Defaults to nil.


POST-MAKE-FUNCTION lisp function of zero arguments

. This function will be run in the initiating image after the build is complete.


PRE-LOAD-FORM lisp expression

This form will be evaluated in the image being built, before the loading of application-fasls begins, but after the GDL runtime modules are loaded. Defaults to nil.


PRE-MAKE-FUNCTION lisp function of zero arguments

. This function will be run in the initiating image before the build is begun.


RESTART-APP-FUNCTION

Lambda expression with empty argument list or symbol naming a function with no arguments. This will be run when the runtime application starts up. The alternative to using this to achieve initializations is to put expressions in a gdlinit.cl or .gdlinit.cl in the application directory or user home directory. Defaults to nil.


RESTART-INIT-FUNCTION

Lambda expression with empty argument list or symbol naming a function with no arguments. This will be run when the runtime application starts up. The alternative to using this to achieve initializations is to put expressions in a gdlinit.cl or .gdlinit.cl in the application directory or user home directory. Defaults to nil.


ROOT [from VANILLA-MIXIN*] gdl instance

The root-level node in this object's ``tree'' (instance hierarchy).


SAFE-CHILDREN [from VANILLA-MIXIN*] list of gdl instances

All objects from the :objects specification, including elements of sequences as flat lists. Any children which throw errors come back as a plist with error information


STRINGS-FOR-DISPLAY [from VANILLA-MIXIN*] string or list of strings

Determines how the name of objects of this type will be printed in most places. This defaults to the name-for-display (generally the part's name as specified in its parent), followed by an index number if the part is an element of a sequence.


VISIBLE-CHILDREN [from VANILLA-MIXIN*] list of gdl instances

Additional objects to display in Tatu tree. Typically this would be a subset of hidden-children. Defaults to NIL.



GDL Functions

MAKE! void

Does the application build and creates or replaces (the destination-directory) .


Examples


 (in-package :gdl-user)

 (make-gdl-app :application-name "moon-shot" :destination-directory  "/tmp/moon-shot/"
               :overwrite? t :application-fasls (list "/fasl-home/booster-rocket.fasl"
                                                      "/fasl-home/lunar-module.fasl"))

Package Documentation