[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
6.17.6 Loading Scheme Code from File
- Scheme Procedure: load filename [reader]
Load filename and evaluate its contents in the top-level environment.
reader if provided should be either
#f
, or a procedure with the signature(lambda (port) …)
which reads the next expression from port. If reader is#f
or absent, Guile’s built-inread
procedure is used (see section Reading Scheme Code).The reader argument takes effect by setting the value of the
current-reader
fluid (see below) before loading the file, and restoring its previous value when loading is complete. The Scheme code inside filename can itself change the current reader procedure on the fly by settingcurrent-reader
fluid.If the variable
%load-hook
is defined, it should be bound to a procedure that will be called before any code is loaded. See documentation for%load-hook
later in this section.
- Scheme Procedure: load-compiled filename
Load the compiled file named filename.
Compiling a source file (see section Reading and Evaluating Scheme Code) and then calling
load-compiled
on the resulting file is equivalent to callingload
on the source file.
- Scheme Procedure: primitive-load filename
- C Function: scm_primitive_load (filename)
Load the file named filename and evaluate its contents in the top-level environment. filename must either be a full pathname or be a pathname relative to the current directory. If the variable
%load-hook
is defined, it should be bound to a procedure that will be called before any code is loaded. See the documentation for%load-hook
later in this section.
- C Function: SCM scm_c_primitive_load (const char *filename)
scm_primitive_load
, but taking a C string instead of anSCM
.
- Variable: current-reader
current-reader
holds the read procedure that is currently being used by the above loading procedures to read expressions (from the file that they are loading).current-reader
is a fluid, so it has an independent value in each dynamic root and should be read and set usingfluid-ref
andfluid-set!
(see section Fluids and Dynamic States).Changing
current-reader
is typically useful to introduce local syntactic changes, such that code following thefluid-set!
call is read using the newly installed reader. Thecurrent-reader
change should take place at evaluation time when the code is evaluated, or at compilation time when the code is compiled:(eval-when (compile eval) (fluid-set! current-reader my-own-reader))
The
eval-when
form above ensures that thecurrent-reader
change occurs at the right time.
- Variable: %load-hook
A procedure to be called
(%load-hook filename)
whenever a file is loaded, or#f
for no such call.%load-hook
is used by all of the loading functions (load
andprimitive-load
, andload-from-path
andprimitive-load-path
documented in the next section).For example an application can set this to show what’s loaded,
(set! %load-hook (lambda (filename) (format #t "Loading ~a ...\n" filename))) (load-from-path "foo.scm") -| Loading /usr/local/share/guile/site/foo.scm ...
- Scheme Procedure: current-load-port
- C Function: scm_current_load_port ()
Return the current-load-port. The load port is used internally by
primitive-load
.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on April 20, 2013 using texi2html 5.0.