[Top][All Lists]

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

[Gcl-devel] non-conforming symbols in package :CL

From: Faré
Subject: [Gcl-devel] non-conforming symbols in package :CL
Date: Sun, 25 Mar 2007 01:31:28 -0400

I believe that GCL and ECL are wrong about the symbols exported or not
exported from package :CL. The symptom is that the below cryptic form
works in clisp, cmucl, sbcl and allegro, but not in gcl (gclcvs
2.7.0-64.2 from debian i386) or ecl (0.9i-2 from debian i386).

(map()(lambda(n l)(princ(subseq #.(format nil "(~{~A~#[~:;
~]~})~%"(let(r)(do-external-symbols(x :cl)(push x r))(sort r #'string<
:key #'string))) n (+ n l))))'(875 949 8 6010 4863 371 11)'(4 3 5 5 3
2 2))

The form depends on the fact that the ANSI standard pretty much
mandates which symbols are external in the CL package in section Conforming implementations are free to have more symbols in
other packages, and to have packages that include the symbols in CL in
addition to many others, but the list of symbols in CL is pretty much
a universal constant (at least until the standard is revised).

You can diff the result of the following form between implementations
to see where the results diverge. ECL non-conformingly exports just
the symbol *OPTIMIZE-SLOT-ACCESS*, whereas GCL non-conformingly
exports a whole lot of symbols.

(format t "~{~A~%~}"(let(r)(do-external-symbols(x :cl)(push x r))(sort
r #'string< :key #'string)))

[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
(map()(lambda(x)(format t"~31R "x))'(595756 9556552524 643802 496307950))

reply via email to

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