[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gcl-devel] Issue on in-package from gcl-2.4.4 to gcl-2.5.2, correct

From: Paul F. Dietz
Subject: Re: [Gcl-devel] Issue on in-package from gcl-2.4.4 to gcl-2.5.2, correct fix? where to dig?
Date: Sat, 26 Apr 2003 10:47:42 -0500
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225

David MENTRE wrote:

The advice from tim[2] is to change each (in-package ...) in
"(make-package ...) (in-package ...)".

Is it the right fix for gcl-2.5.2?

In an attempt to apply this fix, I observed a strange behaviour (to me
;-) that I could not explain[3] :

If I do:
-- --
gcl> (compile-file "/path-to/boothdr.lisp" :output-file "/tmp/boothdr.o")
-- --
it fails on (in-package ...) S-expr.

I don't know if this is your problem, but it often has come up elsewhere.

IN-PACKAGE has also been changed to be a macro that does NOT evaluate
its argument, so if the argument was a quoted symbol it will not work.

(in-package 'foo) should be changed to one of:

  (in-package "FOO"), or
  (in-package :foo), or
  (in-package :FOO)

(the keyword symbols evaluate to themselves, so they need not be

Note that symbols that print in lower case are stored internally in
upper case, so (in-package "foo") is wrong.

IN-PACKAGE also does not create the package.  You should use DEFPACKAGE
for that, not MAKE-PACKAGE.  If you are compiling the file the MAKE-PACKAGE
expression will only be evaluated when you load the fasl file, which is
probably not what you want.  Expressions at the top level may need
an EVAL-WHEN form to be evaluated at compile time (those various DEF* macros
often expand to forms that have an EVAL-WHEN wrapper.)

I usually put the DEFPACKAGE form in another file, btw.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]