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






Reply via email to