'(("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)))
(when (plusp (length compilation))
(write-string compilation out)))))))
-
(defun dump-global-environment (stream)
(flet ((late-compile (form)
(write-string (ls-compile-toplevel form) stream)))
;; 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