[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gcl-devel] asdf
From: |
Faré |
Subject: |
Re: [Gcl-devel] asdf |
Date: |
Fri, 15 Nov 2013 20:43:10 -0500 |
Dear Camm,
thanks again for your responsiveness. I'm hoping the next release of
ASDF can support GCL,
and the next release of GCL can sport ASDF.
>> One function that fails to return the same thing when compiled vs
>> interpreted is REDUCE/STRCAT from uiop/utility.lisp.
>
> Thanks! Should be fixed now.
>
Great. I'll look into further bugs.
>> Another function that behaves in a weird way is configure-asdf from
>> test/script-support.lisp,
>
> Thanks! No longer the case, perhaps resolved when the above was fixed.
>
Indeed, the same bug fix must have worked.
>> Can you look into it? There are other failures, but these are show stoppers.
>
> A few more tests pass now. Thanks for your reports!
>
Excellent.
> It would still be
> a bit easier if you could give me step by step instructions to reproduce
> a failure -- I don't know where any of these functions are, or what has
> to be loaded, etc.
>
Every test, when it fails, prints some instructions on how to reproduce it.
Just look at the logs. If the instructions are not correct, it's a bug
that we can fix.
I see it incorrectly specifies -batch, and I'll remove that.
So I see several kinds of failures.
Those I have investigated:
* a bug in handling directories in uiop:probe-file*;
I think I have a fix for that,
but direct support in GCL for the probe-file* interface would be great:
a function that given a pathname designator returns the pathname
to either the file or directory if it exists, and
only optionally resolve symlinks, and return NIL otherwise.
Also, GCL BUG: TRUENAME should return a FILE-ERROR, not just an ERROR.
Same for DELETE-FILE and probably a lot more other functions.
* In test1, test2, test3, test-around-compile, test-asdf,
test-builtin-source-file-type, test-compile-file-failure,
test-concatenate-source, test-deferred-warnings, test-force,
test-inline-methods, test-logical-pathname, test-missing-lisp-file,
test-module-depend, test-module-excessive-depend,
test-module-pathnames, test-multiple, test-redundant-recompile,
test-samedir-modules, test-source-file-type, test-stamp-propagation,
test-static-and-serial
TEST ABORTED: Condition in COMPILER::COMPILE-FILE1 [or a callee]:
INTERNAL-SIMPLE-PROGRAM-ERROR: Key :EXTERNAL-FORMAT :DEFAULT not
permitted
GCL BUG: compile-file fails to accept :EXTERNAL-FORMAT argument.
I'll be working around it in uiop/lisp-build for now.
I have not investigated these yet:
* test-run-program.script
TEST ABORTED: Condition in SYSTEM:STRCAT [or a callee]:
INTERNAL-SIMPLE-PROGRAM-ERROR: MULTIPLE-VALUE-CALL [or a callee]
requires less than sixty-seven arguments.
GCL BUG?
This looks like a GCL bug, since STRCAT and its callees
don't do anything magical with multiple values.
Is some optimization or rewrite causing an argument list
to expand beyond the limit?
* In duplicate-components-test, test8, test9, test-system-pathnames
TEST ABORTED: Condition in CONDITIONS::COERCE-TO-CONDITION [or a
callee]: INTERNAL-SIMPLE-TYPE-ERROR:
CONDITIONS::INTERNAL-SIMPLE-LOAD-SYSTEM-DEFINITION-ERROR is not of
type (SATISFIES CONDITIONS::CONDITION-CLASS-P): Not a condition type:
CONDITIONS::INTERNAL-SIMPLE-LOAD-SYSTEM-DEFINITION-ERROR
GCL BUG? I'm not sure what triggers the initial condition yet, but
it looks like GCL has an error in error handling and/or reporting.
* In test-retry-loading-component-1.script
SIMPLE-ERROR: The assertion RESTART failed.
GCL BUG? It looks like find-restart fails here. Does GCL support restarts?
* test-touch-system-1.script
INTERNAL-SIMPLE-TYPE-ERROR: NIL is not of type REAL:
Now, I've tried to add in script-support a #+gcl 0 for speed,
to speed up the compilation, and I find what I believe to be a bug in GCL,
whereby the form
(remove-if #'(lambda (x) (member x '("" ".") :test #'equal))
components)
from uiop/pathname is compiled with an error, with bogus complaint at runtime:
Error:
Signalled by COMMON-LISP:MEMBER.
Condition in COMMON-LISP:MEMBER [or a callee]:
INTERNAL-SIMPLE-PROGRAM-ERROR: Key COMMON-LISP:NIL #<function
00000000011dd250> not permitted
I put #+gcl 1 instead, hoping that this will improve things.
More to come, but that will give you stuff to work on already.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
If it's not worth doing, it's not worth doing well — Donald Hebb