Bytecode compiled functions can now be externalized in C compiled files

This commit is contained in:
jgarcia 2008-04-22 13:43:03 +00:00
parent 5243018392
commit 284ceaf244
4 changed files with 7 additions and 3 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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: ()