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
