Go to the first, previous, next, last section, table of contents.


Compilation Functions

Function: compile-form form
This function compiles the Lisp form form into a byte-code form which is returned.

(compile-form '(setq foo bar))
    => (jade-byte-code "F!" [bar foo] 2)

Command: compile-function function
This function replaces the uncompiled body of the function function (a symbol) with a compiled version, then returns function.

Command: compile-file file-name
This function compiles the file called file-name into a file of compiled Lisp forms whose name is file-name with `c' appended to it (i.e. if file-name is `foo.jl' it will be compiled to `foo.jlc').

If an error occurs while the file is being compiled any semi-written file will be deleted.

When called interactively this function will ask for the value of file-name.

Command: compile-directory directory &optional force exclude
Compiles all the Lisp files in the directory called directory which either haven't been compiled or whose compiled version is older than the source file (Lisp files are those ending in `.jl').

If the optional argument force is non-nil all Lisp files will be recompiled whatever the status of their compiled version.

The exclude argument may be a list of filenames, these files will not be compiled.

When this function is called interactively it prompts for the directory.

Function: compile-lisp-lib &optional force
Uses compile-directory to compile the library of standard Lisp files. If force is non-nil all of these files will be compiled.

The `autoloads.jl' is never compiled since it is often modified and wouldn't really benefit from compilation anyway.

Function: jade-byte-code byte-codes constants max-stack
Interprets the string of byte instructions byte-codes with the vector of constants constants. max-stack defines the maximum number of stack cells required to interpret the code.

This function is never called by hand. The compiler will produce calls to this function when it compiles a form or a function.

(setq x 1
      y 3)
    => 3
(setq comp (compile-form '(cons x y)))
    => (jade-byte-code "K" [x y] 2)
(eval comp)
    => (1 . 3)


Go to the first, previous, next, last section, table of contents.