On Sat Sep 01 02:32:28 2007, bernhard wrote: > In languages/lisp/system.pir there are 4 unused PMCs declared. > Removing one of them breaks Lisp. > > Here is an example session: > > [EMAIL PROTECTED]:~/devel/Parrot/repos/parrot/languages/lisp$ svn diff > Index: system.pir > ========================================================= ========== > --- system.pir (Revision 20981) > +++ system.pir (Arbeitskopie) > @@ -24,7 +24,6 @@ > .local pmc dummy_1 > .local pmc dummy_2 > .local pmc dummy_3 > - .local pmc dummy_4 > > _init_reader_macros( package ) > > [EMAIL PROTECTED]:~/devel/Parrot/repos/parrot/languages/lisp$ ../../parrot > lisp.pbc t/arithmetics_1.l > wrong number of arguments to %GET-OBJECT-ATTRIBUTE > current instr.: '_error' pc 2065 (read.pir:194) > called from Sub '_get_object_attr' pc 7321 (system.pir:12) > called from Sub '_setq' pc 14048 (cl.pir:941) > called from Sub '_load' pc 7021 (system.pir:436) > called from Sub '_common_lisp' pc 17015 (lisp.pir:77) > [EMAIL PROTECTED]:~/devel/Parrot/repos/parrot/languages/lisp$ uname -a > Linux clou 2.6.20-16-386 #2 Thu Jun 7 20:16:13 UTC 2007 i686 GNU/Linux > [EMAIL PROTECTED]:~/devel/Parrot/repos/parrot/languages/lisp$ cat /etc/issue > Ubuntu 7.04 \n \l > > [EMAIL PROTECTED]:~/devel/Parrot/repos/parrot/languages/lisp$ > > > My guess is that this is GC-related, but I haven't verified or falsified > that yet.
Seems to have been a bug in the .FUNCTION macro, fixed in r23075: Index: include/macros/types.pir ========================================================= ========== --- include/macros/types.pir (revision 23064) +++ include/macros/types.pir (working copy) @@ -119,6 +119,8 @@ .F = new "LispFunction" # VALID_IN_PARROT_0_2_0 newsub _func, .Sub, .L # VALID_IN_PARROT_0_2_0 setattribute .F, "LispFunction\0body", .L + + .sym pmc _func .const .Sub _func = .L setattribute .F, "body", _func