[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gcl-devel] Latest ansi-test fixes
From: |
Camm Maguire |
Subject: |
[Gcl-devel] Latest ansi-test fixes |
Date: |
05 Oct 2002 15:04:13 -0400 |
Greetings! I've just checked in some fixes bringing the number of
failed tests (for me) down to one. A few comments:
1) I cleared up a few compiler warnings for the built in .lsp files
in lsp/. I don't yet fully understand packages, so the changes
might still need some work.
a) Eliminated (in-package 'system) from defstruct.lsp.
b) Tried to move around the package functions in
defpackage.lsp to get a clean build but failed. The code somehow
needs to do (eval-when (load) (in-package 'USER)(unintern
'defpackage 'user)(use-package "defpackage")) at the end, which is
a "bad place" for the compiler. (The compiler expects all package
operations to precede non-package operations). I know Paul was
having some defpackage problems, as was Greg in his work with
ilisp. Can anyone shed some light on the problems?
c) Wrote temporary function definitions in destructuring_bind
for make-keyword and defmacro-error until I can go through the
file and find out how to do it right. This file was lifted
from cmulisp to get maxima cvs to build. We need to review it
carefully or write our own.
d) break-call takes only two args. Not quite sure about the
correct syntax in sys-proclaim.lisp, but used (PROCLAIM
'(FTYPE (FUNCTION (T T *) *) BREAK-CALL))
2) Many changes in predlib.lsp to fix type errors.
a) Apparently, the gcl-low.lisp hook used by pcl did not
define a structure-slotd-reader-function, only the writer. I
looked an the neighboring kcl-low.lisp and defined
accordingly, though I haven't verified myself that this is
right. I haven't yet discovered how the "slotd" argument list
is setup, so that 'third will return the reader and 'fourth
the writer. Anyone who can research and explain this would be
doing a great service.
b) typep will use pcl's own predicates for many of the new
types, like 'condition et.al., by parsing the passed
lambda-closure and rerunning typep on the '(satisfies
<predicate>) part. I don't see any efficient way to use these
for subtypep, so I added code to skip the normalization in
this case and parse the types originally passed as arguments
in place. Maybe there is a cleaner way.
c) the pcl/clcs stuff redefines the 'error symbol such that (eq
t1 'error) won't match (though it does in the "standard
non-ansi image"), forcing me to use the ugly (or (equal
(string t1) "ERROR") (eq t1 'error)). There has to be a
better way!
d) The one remaining failure I don't yet understand, and would
like some clarification:
Improper subtype: SIMPLE-BASE-STRING of SIMPLE-BIT-VECTOR
Improper subtype: SIMPLE-BASE-STRING of SIMPLE-VECTOR
Improper subtype: SIMPLE-BASE-STRING of BIT-VECTOR
Improper subtype: BASE-STRING of BIT-VECTOR
Test TYPES-4 failed
Form: (TYPES-4-BODY)
Expected value: 0
Actual value: 4.
What condition makes these improper? I looked at the test
code but don't understand it yet.
3) Are there some files recently included in the base lsp directory
(e.g. loop, destructuring_bind, defpackage, ...) which provide
functions already done for us in pcl? If so, should any of the
former be removed?
4) We seem to be moving at a reasonable clip in the ansi compliance
direction, though much work doubtlessly remains. We hadn't
targeted ansi-compliance for the 2.5.0 release. Is this work
nevertheless still the highest priority for most people? Is anyone
else having more severe troubles which should be addressed first?
Also, at the current rate, how far off is "reasonable"
ansi-compliance, in units of months?
Take care,
--
Camm Maguire address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens." -- Baha'u'llah