#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