[Gsll-devel] status.text & clisp
Liam Healy
lhealy at common-lisp.net
Thu Aug 12 01:17:03 UTC 2010
On Tue, Aug 10, 2010 at 11:48 PM, Sam Steingold <sds at gnu.org> wrote:
> Hi Liam,
>
> On 8/10/10, Liam Healy <lhealy at common-lisp.net> wrote:
>>
>> On Tue, Aug 10, 2010 at 1:36 PM, Sam Steingold <sds at gnu.org> wrote:
>> > (symbol-plist (sys::closure-const (slot-value (nth 20
>> > (CLOS:GENERIC-FUNCTION-METHODS #'SET-ALL)) 'CLOS::$FAST-FUNCTION) 0))
>> > NIL
>> >
>> > i.e., the method FUNCALLs the property of the uninterned symbol which is NIL.
>>
>>
>> If I make a small modification to GSLL (attached) so that function
>> names like #:|gsl_vector_complex_float_set_all| are instead interned,
>> e.g. '|gsl_vector_complex_float_set_all|,
>> then I get all tests to pass in my (old) version of CLISP:
>> (lisp-unit:run-tests vector-set-all)
>> VECTOR-SET-ALL: 12 assertions passed, 0 failed.
>>
>> Now it seems to me that what FSBV is doing with symbols (set/get
>> properties) should work equally well on uninterned or interned
>> symbols, so the original should work fine. Is that correct?
>> Why does CLISP lose the property list binding when the symbol
>> is uninterned?
>
> because it is not the same symbol. :-(
> this is a very old bug:
> https://sourceforge.net/tracker/?func=detail&aid=836838&group_id=1355&atid=101355
> the workaround is to use `let' or `locally' instead of `progn',
>
Wow, "very old", you're not kidding; it was old already in 2003. I
guess that one has tenure now, so I've changed the definition in GSLL
to use let.
I can't get the new CLISP to build as it doesn't see libsigsegv and
libreadline are there no matter what I try. So on my old
Debian stable CLISP 2.44.1, I can run the individual tests
vector-set-all and matrix-set-all, but I can't run the comprehensive
test suite as it crashes out of CLISP a few tests in.
Liam
More information about the gsll-devel
mailing list