Merge pull request #126 from orodley/max-min
[jscl.git] / jscl.lisp
index 47899f0..e5b6582 100644 (file)
--- a/jscl.lisp
+++ b/jscl.lisp
   '(("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)
+    ("ffi"              :both)
     ("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.
 
 
 (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