Hi all,
When I load CLX (from .cmucl-init) I get the following warning, and I
was wondering if this is normal or not:
;; Loading #p"/usr/lib/cmucl/subsystems/clx-library.x86f".
Warning: XLIB previously used the following packages:
(#<The LISP package, 1772/4161 internal, 978/1227 external>)
I can't think of any good reason why XLIB would "previously" have used
anything because it's being loaded for the first time. I am using
stock standard CMUCL 19a on Debian:
CMU Common Lisp CVS release-19a 19a-release-20040728 + minimal
debian patches
After processing .cmucl-init:
Loaded subsystems:
Python 1.1, target Intel x86
CLOS based on Gerd's PCL 2004/04/14 03:32:47
CLX X Library MIT R5.02
Thanks,
David
--
David Trudgett
http://www.zeta.org.au/~wpower/
But what good or useful thing can come of all these improvements, if
men do not speak and act in accordance with what they believe to be
the truth?
-- Leo Tolstoy, "The Kingdom of God is Within You"
David Trudgett <······@zeta.org.au.nospamplease> writes:
> When I load CLX (from .cmucl-init) I get the following warning, and I
> was wondering if this is normal or not:
>
> ;; Loading #p"/usr/lib/cmucl/subsystems/clx-library.x86f".
> Warning: XLIB previously used the following packages:
> (#<The LISP package, 1772/4161 internal, 978/1227 external>)
CMUCL has been displaying that warning for the past few versions, but
it's harmless.
Paolo
--
Why Lisp? http://wiki.alu.org/RtL%20Highlight%20Film
Recommended Common Lisp libraries/tools:
- ASDF/ASDF-INSTALL: system building/installation
- CL-PPCRE: regular expressions
- CFFI: Foreign Function Interface
Paolo Amoroso <·······@mclink.it> wrote:
+---------------
| David Trudgett <······@zeta.org.au.nospamplease> writes:
| > When I load CLX (from .cmucl-init) I get the following warning, and I
| > was wondering if this is normal or not:
| > ;; Loading #p"/usr/lib/cmucl/subsystems/clx-library.x86f".
| > Warning: XLIB previously used the following packages:
| > (#<The LISP package, 1772/4161 internal, 978/1227 external>)
|
| CMUCL has been displaying that warning for the past few versions,
| but it's harmless.
+---------------
Oddly enough, the Linux pre-built binaries have the problem, but
the FreeBSD pre-built binaries don't! This first case is on Linux --
note the PACKAGE-USE-LIST output before & after the REQUIRE:
$ cmucl-19c/bin/lisp -noinit -nositeinit
CMU Common Lisp 19c (19C), running on shambhala.org
With core: /usr/u/rpw3/src/cmd/cmucl-19c/lib/cmucl/lib/lisp.core
Dumped on: Thu, 2005-11-17 06:12:58-08:00 on lorien
See <http://www.cons.org/cmucl/> for support information.
Loaded subsystems:
Python 1.1, target Intel x86
CLOS based on Gerd's PCL 2004/04/14 03:32:47
* (package-use-list :xlib)
(#<The LISP package, 1827/3484 internal, 978/1227 external>)
* (require :clx)
; Loading #P"/usr/u/rpw3/src/cmd/cmucl-19c/lib/cmucl/lib/subsystems/clx-library.x86f".
Warning: XLIB previously used the following packages:
(#<The LISP package, 1827/3484 internal, 978/1227 external>)
("CLX")
* (package-use-list :xlib)
(#<The COMMON-LISP package, 0/4 internal, 978/1227 external>)
*
Now look at the same sequence on FreeBSD:
% cmucl-19c/bin/lisp -noinit -nositeinit
CMU Common Lisp 19c Release (19C), running on lisp.rpw3.org
With core: /u/rpw3/src/cmd/cmucl-19c/lib/cmucl/lib/lisp.core
Dumped on: Wed, 2005-11-16 17:18:11-08:00 on snapdragon.csl.sri.com
See <http://www.cons.org/cmucl/> for support information.
Loaded subsystems:
Python 1.1, target Intel x86
CLOS based on Gerd's PCL 2004/04/14 03:32:47
* (package-use-list :xlib)
(#<The COMMON-LISP package, 0/4 internal, 978/1227 external>)
* (require :clx)
; Loading #P"/u/rpw3/src/cmd/cmucl-19c/lib/cmucl/lib/subsystems/clx-library.x86f".
("CLX")
* (package-use-list :xlib)
(#<The COMMON-LISP package, 0/4 internal, 978/1227 external>)
*
Perhaps the current Linux builder(s) & FreeBSD builder(s) could
swap notes and see why the Linux versions have the wrong :USE in the
stub[1] XLIB package. [Compiler environment polluting the compilation
perhaps? And with CMUCL's parthenogenetic reproduction, such pollution
could persist for a *looonng* time... But why just Linux & not FreeBSD?]
-Rob
[1] David asked why this happens at all: The answer is that a couple
of XLIB symbols -- currently only XLIB::DISPLAY-INPUT-STREAM
and XLIB:EVENT-LISTEN -- are referenced by some CMUCL extensions
[but only when CLX is loaded], and are declared during the CMUCL
build process to avoid compiler warnings about undefined functions
[see files "cmucl/code/globals.lisp" and "cmucl/tools/setup.lisp"].
To keep the reader from blowing up on the "XLIB:" package prefix
in those declarations, there is also a stub DEFPACKAGE "XLIB"
somewhere in the base build. But the only ones I can find [including
a MAKE-PACKAGE under a #+BOOTSTRAP in "cmucl/src/tools/clxcom.lisp"]
all say to (:USE :COMMON-LISP), not (:USE :LISP). Go figure.
-----
Rob Warnock <····@rpw3.org>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607
On Wed, 14 Dec 2005 05:50:19 -0600, Rob Warnock wrote:
> [1] David asked why this happens at all: The answer is that a couple
> of XLIB symbols -- currently only XLIB::DISPLAY-INPUT-STREAM
> and XLIB:EVENT-LISTEN -- are referenced by some CMUCL extensions
> [but only when CLX is loaded], and are declared during the CMUCL
> build process to avoid compiler warnings about undefined functions
> [see files "cmucl/code/globals.lisp" and "cmucl/tools/setup.lisp"].
> To keep the reader from blowing up on the "XLIB:" package prefix
> in those declarations, there is also a stub DEFPACKAGE "XLIB"
> somewhere in the base build. But the only ones I can find [including
> a MAKE-PACKAGE under a #+BOOTSTRAP in "cmucl/src/tools/clxcom.lisp"]
> all say to (:USE :COMMON-LISP), not (:USE :LISP). Go figure.
The COMMON-LISP package used to contain a lot of extraneous
(unexported) implementation stuff; at some point (about 3 years ago)
that package was renamed LISP and a new COMMON-LISP package was added
to hold only the symbols required by the spec. I think what happens
is that since the XLIB package is defined during the build process,
the /old/ XLIB package that already exists in the build-time image
used the (old) COMMON-LISP package which is now named LISP, and it
isn't properly separated from the /new/ XLIB package which now only
uses (the new) COMMON-LISP, so you build a core containing the stub
XLIB referencing the LISP package, but the clx library does a
DEFPACKAGE using COMMON-LISP. Probably if you just add a
DELETE-PACKAGE early in the build process it'll come right, but my
sources are currently broken so I can't test that.
--
Quid enim est stultius quam incerta pro certis habere, falsa pro veris?
-- Cicero
(setq reply-to
(concatenate 'string "Paul Foley " "<mycroft" '(··@) "actrix.gen.nz>"))
>>>>> "Paul" == Paul Foley <<···@below.invalid> (http://public.xdi.org/=pf)> writes:
Paul> On Wed, 14 Dec 2005 05:50:19 -0600, Rob Warnock wrote:
>> [1] David asked why this happens at all: The answer is that a couple
>> of XLIB symbols -- currently only XLIB::DISPLAY-INPUT-STREAM
>> and XLIB:EVENT-LISTEN -- are referenced by some CMUCL extensions
>> [but only when CLX is loaded], and are declared during the CMUCL
>> build process to avoid compiler warnings about undefined functions
>> [see files "cmucl/code/globals.lisp" and "cmucl/tools/setup.lisp"].
>> To keep the reader from blowing up on the "XLIB:" package prefix
>> in those declarations, there is also a stub DEFPACKAGE "XLIB"
>> somewhere in the base build. But the only ones I can find [including
>> a MAKE-PACKAGE under a #+BOOTSTRAP in "cmucl/src/tools/clxcom.lisp"]
>> all say to (:USE :COMMON-LISP), not (:USE :LISP). Go figure.
Paul> The COMMON-LISP package used to contain a lot of extraneous
Paul> (unexported) implementation stuff; at some point (about 3 years ago)
Paul> that package was renamed LISP and a new COMMON-LISP package was added
Paul> to hold only the symbols required by the spec. I think what happens
Paul> is that since the XLIB package is defined during the build process,
Paul> the /old/ XLIB package that already exists in the build-time image
Paul> used the (old) COMMON-LISP package which is now named LISP, and it
Paul> isn't properly separated from the /new/ XLIB package which now only
Paul> uses (the new) COMMON-LISP, so you build a core containing the stub
Paul> XLIB referencing the LISP package, but the clx library does a
Paul> DEFPACKAGE using COMMON-LISP. Probably if you just add a
Paul> DELETE-PACKAGE early in the build process it'll come right, but my
Paul> sources are currently broken so I can't test that.
Thanks for the hint. (And for Rob for looking a bit more.)
A rebuild with the bootstrap snippet from clxcom.lisp took care of
this and it will be fixed in the next snapshot.
Ray