Index: gnu/commonlisp/lang/ChangeLog =================================================================== --- gnu/commonlisp/lang/ChangeLog (revision 7773) +++ gnu/commonlisp/lang/ChangeLog (working copy) @@ -1,3 +1,7 @@ +2014-02-05 Charles Turner + + * CommonLisp.java: Expose *package* variable to the CL language. + 2013-11-10 Per Bothner * defun.java: Update for new 'formStack' and scanDefinitions API. Index: gnu/commonlisp/lang/CommonLisp.java =================================================================== --- gnu/commonlisp/lang/CommonLisp.java (revision 7773) +++ gnu/commonlisp/lang/CommonLisp.java (working copy) @@ -156,6 +156,7 @@ defProcStFld("princ", "gnu.commonlisp.lisp.PrimOps"); defProcStFld("prin1", "gnu.commonlisp.lisp.PrimOps"); + defAliasStFld("*package*", "gnu.kawa.lispexpr.LispPackage", "currentPackage"); defProcStFld("=", "gnu.commonlisp.lang.CommonLisp", "numEqu"); defProcStFld("<", "gnu.commonlisp.lang.CommonLisp", "numLss"); defProcStFld(">", "gnu.commonlisp.lang.CommonLisp", "numGrt"); Index: gnu/kawa/lispexpr/ChangeLog =================================================================== --- gnu/kawa/lispexpr/ChangeLog (revision 7773) +++ gnu/kawa/lispexpr/ChangeLog (working copy) @@ -1,3 +1,8 @@ +2014-02-05 Charles Turner + + * LispPackage.java: Manage Lisp packages explicity in the + namespace map. + 2014-01-05 Per Bothner * Makefile.am: Merge into ../../../gnu/Makefile.am and remove. Index: gnu/kawa/lispexpr/LispPackage.java =================================================================== --- gnu/kawa/lispexpr/LispPackage.java (revision 7773) +++ gnu/kawa/lispexpr/LispPackage.java (working copy) @@ -152,7 +152,18 @@ */ public static LispPackage valueOf (String name) { - return (LispPackage) Namespace.valueOf(name); + if (name == null) + name = ""; + + synchronized (nsTable) { + Namespace ns = (Namespace) nsTable.get(name); + if (ns != null) + return (LispPackage) ns; + ns = new LispPackage(); + ns.setName(name.intern()); + Namespace.nsTable.put(name, ns); + return (LispPackage) ns; + } } public static Namespace valueOfNoCreate (String name)