(index ("define-system" 0) ("load-system" 450) ("compile-system" 1023) ("clean-system" 1434) ("build-system" 1657) ("file" 2319) ("scheme-file" 2319) ("compiled-scheme-file" 2319))
(def (sig (syntax "(define-system NAME COMPONENT ...)" (id define-system))) (p "Defines a system with the given name and components. This form expands roughly into:") (highlight scheme "(define NAME\n  (make <system> ...))") (p (tt "NAME") " should be a symbol, " (tt "COMPONENT") " should either be an instance of " (tt "<file>") " (or one of its subclasses) or a string or symbol, which is an abbreviation of " (tt "(scheme-file COMPONENT)") "."))
(def (sig (procedure "(load-system SYSTEM #!key quiet force)" (id load-system))) (p "Loads changed components in " (tt "SYSTEM") ". If the system hasn't been loaded before, all components will be loaded, in the order given in the " (tt "define-system") " form, possibly modified by interdependencies between components. By default components of class " (tt "<scheme-file>") " will not be compiled, only loaded. Components of class " (tt "<compiled-scheme-file>") " will always be compiled and loaded, if necessary. Components of class " (tt "<file>") " will be ignored."))
(def (sig (procedure "(compile-system SYSTEM #!key quiet force)" (id compile-system))) (p "Compiles components of " (tt "SYSTEM") " that are components of class " (tt "<scheme-file>") " or one of its subclasses using " (tt "compile-file") " and loads them after successfull compilation unless a compiled version of the component is already loaded and none of its dependencies or included files have changed."))
(def (sig (procedure "(clean-system SYSTEM)" (id clean-system))) (p "Clears the state of all files in " (tt "SYSTEM") ", so a following " (tt "load-system") " or " (tt "compile-system") " will reload/compile everything."))
(def (sig (procedure "(build-system SYSTEM)" (id build-system))) (p "Compiles components that are subclasses of " (tt "<scheme-file>") " to dynamically loadable object files (using " (tt "csc -s ...") "). Note that these files are ignored by " (tt "load-system") " or " (tt "compile-system") ", since these are not re-loadable on all supported platforms.") (p "Use this operation for building compiled code that is installed as an extension or explicitly loaded by an application or Scheme script. In such a situation, " (tt "build-system") " is similar to the " (tt "make(1)") " tool or the " (tt "make") " macro provided by the " (tt "setup-api") " module."))
(def (sig (procedure "(file NAME #!key depends includes path)" (id file)) (procedure "(scheme-file NAME #!key depends includes path options)" (id scheme-file)) (procedure "(compiled-scheme-file NAME #!key depends includes path options)" (id compiled-scheme-file))) (p "Construct instances of " (tt "<file>") ", " (tt "<scheme-file>") " and " (tt "compiled-scheme-file") ", respectively.") (p (tt "depends") " may be a list of files or strings holding filenames.") (p (tt "includes") " refers to a single file or filenames that will be included by the component (and thus create a dependency).") (p (tt "path") " overrides the actual path of the source file, which defaults to " (tt "NAME.scm") ".") (p (tt "options") " specifies a list of strings that should be passed to " (tt "csc") " when the file is compiled."))
