[Openmcl-devel] importing COMMON-LISP:NIL

Ron Garret ron at flownet.com
Sat Jan 23 08:03:18 UTC 2010


The first argument to IMPORT can be either a symbol or a list of symbols.  When you import NIL, it's treated as the empty list.  To import the symbol NIL you have to make it unambiguous:

? (make-package :foo :use nil)
#<Package "FOO">
? (import '(nil) :foo)
T
? foo::nil
NIL

rg

On Jan 22, 2010, at 11:51 PM, Taoufik Dachraoui wrote:

> Hi
> 
> I am implementing a packaging tool and I found the following issue:
> 
> > *package*
> #<Package "COMMON-LISP">
> > (defvar *x* 123)
> *X*
> > (make-package 'temp :use nil)
> #<Package "TEMP">
> >(import 'x 'temp)
> T
> >temp::x
> 123
> >(import 'nil 'temp)
> T
> >temp::nil
> > Error: Unbound variable: TEMP::NIL
> > While executing: CCL::TOPLEVEL-EVAL, in process listener(1).
> > Type :GO to continue, :POP to abort, :R for a list of available restarts.
> > If continued: Retry getting the value of TEMP::NIL.
> > Type :? for other options.
> 1 > 
> 
> 
> Why I cannot import 'NIL into TEMP package?
> 
> 
> I am trying to  implement a package system that can be used as follows:
> 
> ;; in package APP
> @::use (common-lisp ccl utils)
> 
> @::use will import all external symbols of COMMON-LISP into APP, then
> import all external symbols of CCL into APP, and finally
> import all external symbols of UTILS into APP
> 
> All imports are done using shadowing-import.
> 
> The issue is that it appears that when I use NIL in the package APP I receive
> the "Unbound variable NIL" error (I cannot import COMMON-LISP:NIL to APP).
> 
> 
> Thank you for your help and explanations.
> 
> Taoufik
> 
> 
> 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel




More information about the Openmcl-devel mailing list