X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=jscl.lisp;h=5e393d6f3273dd6ba6a9c2db484da2f4e735bc8a;hb=e095cf1b6567eb71f7386c724c1aa504a9d2bcfb;hp=47899f0bd1b4b96bebbc32e234a3c5771f078f49;hpb=a5dfb70307cb6fd93263e155309038a2229ff6a1;p=jscl.git diff --git a/jscl.lisp b/jscl.lisp index 47899f0..5e393d6 100644 --- a/jscl.lisp +++ b/jscl.lisp @@ -28,9 +28,11 @@ ("utils" :both) ("list" :target) ("string" :target) + ("sequence" :target) ("print" :target) ("package" :target) ("ffi" :target) + ("misc" :target) ("read" :both) ("defstruct" :both) ("lambda-list" :both) @@ -78,7 +80,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 +87,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 +102,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