[Gsll-devel] status.text & clisp

Sam Steingold sds at gnu.org
Wed Aug 11 03:48:12 UTC 2010


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',

-- 
Sam Steingold <http://sds.podval.org>




More information about the gsll-devel mailing list