X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=jscl.lisp;h=e5b658274a21a6c2b54219d893bf9139100f064a;hb=e2040ea9a5d5794b68a34277d459d52b475d6eff;hp=76d2c84df38384e7f5eef4ab355192a6493b0141;hpb=6de39415127640d8647b6ef8a5dc6ecb49407194;p=jscl.git diff --git a/jscl.lisp b/jscl.lisp index 76d2c84..e5b6582 100644 --- a/jscl.lisp +++ b/jscl.lisp @@ -23,17 +23,25 @@ (in-package :jscl) (defvar *source* - '(("boot" :target) - ("compat" :host) - ("utils" :both) - ("list" :target) - ("string" :target) - ("print" :target) - ("package" :target) - ("ffi" :target) - ("read" :both) - ("compiler" :both) - ("toplevel" :target))) + '(("boot" :target) + ("compat" :host) + ("utils" :both) + ("numbers" :target) + ("char" :target) + ("list" :target) + ("array" :target) + ("string" :target) + ("sequence" :target) + ("print" :target) + ("package" :target) + ("misc" :target) + ("ffi" :both) + ("read" :both) + ("defstruct" :both) + ("lambda-list" :both) + ("backquote" :both) + ("compiler" :both) + ("toplevel" :target))) (defun source-pathname (filename &key (directory '(:relative "src")) (type nil) (defaults filename)) @@ -76,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))) @@ -84,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. @@ -99,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