X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=jscl.lisp;h=4b2ac4aa12a8a51fa83af28e85ca9bb6766bbb08;hb=b2de12c4e1a6e77e7f3f22d056adcfeda79d085b;hp=47899f0bd1b4b96bebbc32e234a3c5771f078f49;hpb=a5dfb70307cb6fd93263e155309038a2229ff6a1;p=jscl.git diff --git a/jscl.lisp b/jscl.lisp index 47899f0..4b2ac4a 100644 --- a/jscl.lisp +++ b/jscl.lisp @@ -26,14 +26,20 @@ '(("boot" :target) ("compat" :host) ("utils" :both) + ("numbers" :target) + ("char" :target) ("list" :target) + ("array" :target) ("string" :target) + ("sequence" :target) ("print" :target) ("package" :target) ("ffi" :target) + ("misc" :target) ("read" :both) ("defstruct" :both) ("lambda-list" :both) + ("backquote" :both) ("compiler" :both) ("toplevel" :target))) @@ -78,7 +84,6 @@ (when (plusp (length compilation)) (write-string compilation out))))))) - (defun dump-global-environment (stream) (flet ((late-compile (form) (write-string (ls-compile-toplevel form) stream))) @@ -86,7 +91,7 @@ ;; for the compiler and it can be dumped. (dolist (b (lexenv-function *environment*)) (when (eq (binding-type b) 'macro) - (push *magic-unquote-marker* (binding-value b)))) + (setf (binding-value b) `(,*magic-unquote-marker* ,(binding-value b))))) (late-compile `(setq *environment* ',*environment*)) ;; Set some counter variable properly, so user compiled code will ;; not collide with the compiler itself. @@ -101,7 +106,8 @@ (defun bootstrap () - (let ((*package* (find-package "JSCL"))) + (let ((*features* (cons :jscl *features*)) + (*package* (find-package "JSCL"))) (setq *environment* (make-lexenv)) (setq *literal-table* nil) (setq *variable-counter* 0