X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=jscl.lisp;h=7abeb3edcfe98a186576caf13201500665290184;hb=f59ca3bd7f7442215f9c3c31b00f9c8d3d2e2b69;hp=0f0e6be10e9bac82b1ad26121ea82591720ef50c;hpb=72a15805ea06efb88cf7d1dd5958617349aaf8f5;p=jscl.git diff --git a/jscl.lisp b/jscl.lisp index 0f0e6be..7abeb3e 100644 --- a/jscl.lisp +++ b/jscl.lisp @@ -27,17 +27,21 @@ ("compat" :host) ("utils" :both) ("numbers" :target) + ("char" :target) ("list" :target) - ("arrays" :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))) @@ -84,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*)) @@ -95,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*)))