#715: [bug] various operations create (incorrect) PMCProxy objects in HLL
namespaces
----------------------+-----------------------------------------------------
 Reporter:  pmichaud  |       Owner:       
     Type:  bug       |      Status:  new  
 Priority:  blocker   |   Milestone:       
Component:  core      |     Version:  1.2.0
 Severity:  high      |    Keywords:       
     Lang:  tcl       |       Patch:       
 Platform:            |  
----------------------+-----------------------------------------------------
 I'm opening this ticket from the thread starting at
 http://lists.parrot.org/pipermail/parrot-dev/2009-May/002297.html .
 Essentially, there are a variety of operations that can cause PMCProxy
 objects to be incorrectly generated in HLL namespaces.

 Here's an example:

 {{{
 $ ./parrot --version
 This is Parrot version 1.2.0-devel built for i386-linux.
 Copyright (C) 2001-2009, Parrot Foundation.

 This code is distributed under the terms of the Artistic License 2.0.
 For more details, see the full text of the license in the LICENSE file
 included in the Parrot source tree.

 $ cat x.pir
 .HLL 'foo'

 .sub 'main' :main
     $P0 = new 'Class'
     $I0 = isa $P0, 'Sub'

     $P1 = get_root_global ['foo'], 'Sub'
     say $P1
 .end

 $ ./parrot x.pir
 Sub
 $
 }}}

 Clearly an entry for 'Sub' should not be made in the ['foo'] HLL
 namespace.

 This behavior did not exist in 1.0.0 (which means we need to correct it
 prior to 1.4 release).

 {{{
 $ ./parrot --version
 This is Parrot version 1.0.0-devel built for i386-linux.
 Copyright (C) 2001-2009, Parrot Foundation.

 This code is distributed under the terms of the Artistic License 2.0.
 For more details, see the full text of the license in the LICENSE file
 included in the Parrot source tree.

 $ cat x.pir
 .HLL 'foo'

 .sub 'main' :main
     $P0 = new 'Class'
     $I0 = isa $P0, 'Sub'

     $P1 = get_root_global ['foo'], 'Sub'
     say $P1
 .end

 $ ./parrot x.pir
 Null PMC in say
 current instr.: 'main' pc 11 (x.pir:8)
 $
 }}}

 I suspect that ultimately the bug is that Parrot_oo_get_class and
 Parrot_oo_get_class_str are creating PMCProxy objects in namespaces they
 have no business creating things in.

 IIUC, partcl is currently blocking on this ticket.

 Pm

-- 
Ticket URL: <https://trac.parrot.org/parrot/ticket/715>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets

Reply via email to