Bernhard Schmalhofer (via RT) wrote:
> # New Ticket Created by  Bernhard Schmalhofer 
> # Please include the string:  [perl #45109]
> # in the subject line of all future correspondence about this issue. 
> # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=45109 >
> 
> 
> 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.

I've had a first look at this and I think it's a problem in the compiler.

Here's a disassembly comparison between the current version, with the
workaround, and a version without ".local pmc dummy_4," as in the diff
above.


--- lisp.pbc.workaround 2007-09-01 17:02:22.000000000 +0200
+++ lisp.pbc.bad        2007-09-01 17:02:05.000000000 +0200
@@ -1308,8 +1308,8 @@
0fc1:  00000025 00000015                                     get_results_pc
0fc3:  00000262 00000006 00000177
callmethodcc_p_sc
0fc6:  000002bb 00000003 00000045                            new_p_sc
0fc9:  0000032f 00000012 000001c0                            set_p_pc
0fcc:  000002a6 00000003 00000047 00000012
setattribute_p_sc_p
0fc9:  0000032f 00000013 000001c0                            set_p_pc
> + 0fcc:  000002a6 00000003 00000047 00000013                   
> setattribute_p_sc_p
>   0fd0:  000002bb 0000001a 00000035                            new_p_sc
>   0fd3:  00000336 0000001a 00000168                            set_p_sc
>   0fd6:  00000024 0000000d                                     set_args_pc
> @@ -1325,8 +1325,8 @@
>   0ff6:  00000025 00000015                                     get_results_pc
>   0ff8:  00000262 00000006 0000008f                            
> callmethodcc_p_sc
>   0ffb:  000002bb 00000003 00000045                            new_p_sc
> - 0ffe:  0000032f 00000011 000001c4                            set_p_pc
> - 1001:  000002a6 00000003 00000047 00000011                   
> setattribute_p_sc_p
> + 0ffe:  0000032f 00000012 000001c4                            set_p_pc
> + 1001:  000002a6 00000003 00000047 00000012                   
> setattribute_p_sc_p
>   1005:  000002bb 0000001a 00000035                            new_p_sc
>   1008:  00000336 0000001a 00000169                            set_p_sc
>   100b:  00000024 0000000d                                     set_args_pc
> @@ -1342,7 +1342,7 @@
>   102b:  00000025 00000015                                     get_results_pc
>   102d:  00000262 00000006 0000008f                            
> callmethodcc_p_sc
>   1030:  000002bb 00000003 00000045                            new_p_sc
> - 1033:  0000032f 00000013 000001b2                            set_p_pc
> + 1033:  0000032f 00000011 000001b2                            set_p_pc
>   1036:  000002a6 00000003 00000047 00000013                   
> setattribute_p_sc_p
>   103a:  000002bb 0000001a 00000035                            new_p_sc
>   103d:  00000336 0000001a 00000161                            set_p_sc

Reply via email to