X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=ecmalisp.lisp;h=ac6f02b7d0b8c820ceeae986bd321097014f2e71;hb=b0e60d593040ed49161ced44aa42fa4f170b9be0;hp=9a1080d2a2a77e9ff4654a3b3e50b3cfed593a08;hpb=2890060b5446322f3831a8d6fdcba189ac2877ff;p=jscl.git diff --git a/ecmalisp.lisp b/ecmalisp.lisp index 9a1080d..ac6f02b 100644 --- a/ecmalisp.lisp +++ b/ecmalisp.lisp @@ -588,18 +588,20 @@ ;; with the symbols built during bootstrap. (defun %intern-symbol (symbol) (let* ((package - (if (in "package" symbol) - (find-package-or-fail (oget symbol "package")) - *common-lisp-package*)) - (symbols (%package-symbols *common-lisp-package*))) + (if (in "package" symbol) + (find-package-or-fail (oget symbol "package")) + *common-lisp-package*)) + (symbols (%package-symbols package))) (oset symbol "package" package) + (when (eq package *keyword-package*) + (oset symbol "value" symbol)) (oset symbols (symbol-name symbol) symbol))) (defun find-symbol (name &optional (package *package*)) (let* ((package (find-package-or-fail package)) (symbols (%package-symbols package))) (if (in name symbols) - (values (oget symbols name) :interned) + (values (oget symbols name) t) (dolist (used (package-use-list package) (values nil nil)) (let ((exports (%package-external-symbols used))) (when (in name exports) @@ -1352,7 +1354,7 @@ (let ((package (symbol-package sexp))) (if (eq package (find-package "KEYWORD")) (concat "{name: \"" (escape-string (symbol-name sexp)) - "\", package: '" (package-name package) "'}") + "\", 'package': '" (package-name package) "'}") (concat "{name: \"" (escape-string (symbol-name sexp)) "\"}"))) #+ecmalisp (let ((package (symbol-package sexp)))