X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=jscl.lisp;h=7abeb3edcfe98a186576caf13201500665290184;hb=e4c2519634054d349af11ced07011e1178b764f6;hp=01f75c6973f0e1b802dc601644d2e7c670145572;hpb=a916130a15418d819e4585786eafd51a57818685;p=jscl.git diff --git a/jscl.lisp b/jscl.lisp index 01f75c6..7abeb3e 100644 --- a/jscl.lisp +++ b/jscl.lisp @@ -26,16 +26,22 @@ '(("boot" :target) ("compat" :host) ("utils" :both) + ("numbers" :target) + ("char" :target) ("list" :target) + ("array" :target) ("string" :target) ("sequence" :target) + ("stream" :target) ("print" :target) ("package" :target) - ("ffi" :target) ("misc" :target) + ("ffi" :both) ("read" :both) ("defstruct" :both) ("lambda-list" :both) + ("backquote" :both) + ("compiler-codegen" :both) ("compiler" :both) ("toplevel" :target))) @@ -82,7 +88,8 @@ (defun dump-global-environment (stream) (flet ((late-compile (form) - (write-string (ls-compile-toplevel form) stream))) + (let ((*standard-output* stream)) + (write-string (ls-compile-toplevel form))))) ;; We assume that environments have a friendly list representation ;; for the compiler and it can be dumped. (dolist (b (lexenv-function *environment*)) @@ -93,8 +100,8 @@ ;; not collide with the compiler itself. (late-compile `(progn - ,@(mapcar (lambda (s) `(%intern-symbol (%js-vref ,(cdr s)))) - (remove-if-not #'symbolp *literal-table* :key #'car)) + (progn ,@(mapcar (lambda (s) `(%intern-symbol (%js-vref ,(cdr s)))) + (remove-if-not #'symbolp *literal-table* :key #'car))) (setq *literal-table* ',*literal-table*) (setq *variable-counter* ,*variable-counter*) (setq *gensym-counter* ,*gensym-counter*))) @@ -102,7 +109,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