[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