diff --git a/src/CHANGELOG b/src/CHANGELOG index 054556b24..ab726ef7b 100644 --- a/src/CHANGELOG +++ b/src/CHANGELOG @@ -136,6 +136,8 @@ ECL 0.9k: - Building without GMP is again supported. + - Bytecode functions can now be externalized in C compiled files. + * System design: - We introduce a new kind of lisp objects, the stack frames. These are objects diff --git a/src/clos/print.lsp b/src/clos/print.lsp index 7f022a6f7..d7c9a2cdd 100644 --- a/src/clos/print.lsp +++ b/src/clos/print.lsp @@ -64,6 +64,9 @@ printer and we should rather use MAKE-LOAD-FORM." ((consp object) (recursive-test (car object)) (setf object (rest object))) + ((and (compiled-function-p object) + (nth-value 2 (si::bc-split object))) + (return nil)) (t (throw 'need-to-make-load-form t)))))) (catch 'need-to-make-load-form diff --git a/src/cmp/cmpwt.lsp b/src/cmp/cmpwt.lsp index 695772fb6..1b2c6de5b 100644 --- a/src/cmp/cmpwt.lsp +++ b/src/cmp/cmpwt.lsp @@ -153,6 +153,7 @@ (*print-case* :downcase) (*print-gensym* t) (*print-array* t) + (*print-readably* t) (*read-default-float-format* 'single-float) (sys::*print-package* (find-package "CL")) (sys::*print-structure* t) @@ -201,8 +202,6 @@ (defun add-object (object &key (duplicate nil) (permanent (or (symbolp object) *permanent-data*))) - (when (and (not *compiler-constants*) (typep object '(or function package))) - (error "Object ~S cannot be externalized" object)) ;; FIXME! Currently we have two data vectors and, when compiling ;; files, it may happen that a constant is duplicated and stored ;; both in VV and VVtemp. This would not be a problem if the diff --git a/src/lsp/config.lsp.in b/src/lsp/config.lsp.in index 30959efbf..0cdd922c9 100644 --- a/src/lsp/config.lsp.in +++ b/src/lsp/config.lsp.in @@ -46,7 +46,7 @@ Returns, as a string, the location of the machine on which ECL runs." (defun lisp-implementation-version () "Args:() Returns the version of your ECL as a string." - "@PACKAGE_VERSION@ (CVS 2008-04-22 15:00)") + "@PACKAGE_VERSION@ (CVS 2008-04-22 15:39)") (defun machine-type () "Args: ()