On Tue, Aug 10, 2010 at 11:48 PM, Sam Steingold <[email protected]> wrote:
> Hi Liam,
>
> On 8/10/10, Liam Healy <[email protected]> wrote:
>>
>>  On Tue, Aug 10, 2010 at 1:36 PM, Sam Steingold <[email protected]> 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

_______________________________________________
Gsll-devel mailing list
[email protected]
http://common-lisp.net/cgi-bin/mailman/listinfo/gsll-devel

Reply via email to