__color__,__group__,ticket,summary,component,milestone,type,created,_description_,_changetime,_reporter
3,dukeleto,2003,Configure.pl from tools/dev/create_language.pl doesn't play nice with git,tools,,bug,2011-02-09T20:36:48Z,"The `Configure.pl` script generated by `tools/dev/create_language.pl` clones Parrot from GitHub, but it's not quite right. It still thinks `build/PARROT_REVISION` contains a numeric revision number, not a tag or checksum, which makes it emit this error:

`Argument ""RELEASE_3_0_0"" isn't numeric in addition (+) at Configure.pl line 25, <$REQ> line 1.`

The corresponding `build/gen_parrot.pl` has a similar problem:

`Argument ""RELEASE_3_0_0"" isn't numeric in addition (+) at build/gen_parrot.pl line 31, <$REQ> line 1.`

Perhaps the simplest way to fix this would be to adapt the solution used in Rakudo's `Configure.pl`.",2011-02-20T20:10:51Z,arnsholt
3,dukeleto,236,implement pdd14-numbers,core,,todo,2009-01-27T19:44:29Z,"add NaN/Inf to pdd, review spec against reality, implement what remains.",2010-10-13T00:34:28Z,particle
4,dukeleto,358,complex NaN,core,,bug,2009-02-19T09:14:33Z,"{{{
$ perl6
> say NaN*1i
NaNNaNi
}}}
All complex ops with NaN should return NaN.

Check the complex ops with NaN, add tests.",2011-10-19T17:34:21Z,rurban
4,dukeleto,1740,pbc_dump crashes on certain inputs,none,,bug,2010-08-13T17:51:50Z,"A number of bugs discovered in pbc_dump by Avalanche dynamic program analysis tool (http://code.google.com/p/avalanche/). 

pbc_dump crashes on certain exploit inputs (attached).
",2010-08-24T14:02:05Z,ild
4,dukeleto,922,Coding standard tests for examples/ directories without tests,coding_standards,,todo,2009-08-15T02:51:19Z,"A TODO test should be added for each directory in examples/ that does not have a corresponding file in t/examples . So the directory examples/foobar should have a corresponding test t/examples/foobar.t

Some important examples that fail this currently are SDL and OpenGL.

",2011-02-24T10:53:10Z,dukeleto
4,jkeenan,1044,Configure.pl relies too heavily on perl5 ccflags settings.,configure,,bug,2009-09-21T12:58:49Z,"See [http://rt.perl.org/rt3/Ticket/Display.html?id=38823 Original RT]
for more details.",2011-08-28T18:26:49Z,doughera
4,jkeenan,1726,Missing POD in .pmc files (and a couple of others),coding_standards,,todo,2010-08-01T18:51:51Z,"We recently completed an exercise whereby the coding standard test t/codingstd/c_function_docs.t and the associated documentation was fixed so that no TODO's remain for missing POD in c functions in parrot.

I had occasion to run make headerizer and found that it reported missing POD in some other files, mostly .pmc files and one .y file (plus 3 .c files from compilers/src/pirc not tested by c_function_docs.t).

It is suggested that .pmc files be included in c_function_docs.t or possibly in a new test.

at r48245 make headerizer furnishes the following output:
{{{
compilers/imcc/imcc.y: adv_named_set_u has no POD
compilers/pirc/src/main.c: process_file has no POD
compilers/pirc/src/pircompunit.c: set_sub_multi_types has no POD
compilers/pirc/src/pirparser.c: YYID  has no POD
src/pmc/bigint.pmc: bigint_init has no POD
src/pmc/bigint.pmc: bigint_clear has no POD
src/pmc/bigint.pmc: bigint_set has no POD
src/pmc/bigint.pmc: bigint_set_str has no POD
src/pmc/bigint.pmc: bigint_get_self has no POD
src/pmc/bigint.pmc: bigint_set_self has no POD
src/pmc/bigint.pmc: bigint_get_long has no POD
src/pmc/bigint.pmc: bigint_get_bool has no POD
src/pmc/bigint.pmc: bigint_get_string has no POD
src/pmc/bigint.pmc: bigint_get_double has no POD
src/pmc/bigint.pmc: bigint_add_bigint has no POD
src/pmc/bigint.pmc: bigint_add_bigint_int has no POD
src/pmc/bigint.pmc: bigint_sub_bigint has no POD
src/pmc/bigint.pmc: bigint_sub_bigint_int has no POD
src/pmc/bigint.pmc: bigint_mul_bigint has no POD
src/pmc/bigint.pmc: bigint_mul_bigint_int has no POD
src/pmc/bigint.pmc: bigint_pow_bigint_int has no POD
src/pmc/bigint.pmc: int_check_divide_zero has no POD
src/pmc/bigint.pmc: bigint_check_divide_zero has no POD
src/pmc/bigint.pmc: bigint_div_bigint has no POD
src/pmc/bigint.pmc: bigint_div_bigint_int has no POD
src/pmc/bigint.pmc: bigint_fdiv_bigint has no POD
src/pmc/bigint.pmc: bigint_fdiv_bigint_int has no POD
src/pmc/bigint.pmc: bigint_mod_bigint has no POD
src/pmc/bigint.pmc: bigint_mod_bigint_int has no POD
src/pmc/bigint.pmc: bigint_cmp has no POD
src/pmc/bigint.pmc: bigint_cmp_int has no POD
src/pmc/bigint.pmc: bigint_abs has no POD
src/pmc/bigint.pmc: bigint_neg has no POD
src/pmc/callcontext.pmc: ensure_positionals_storage has no POD
src/pmc/callcontext.pmc: ensure_positionals_storage_ap has no POD
src/pmc/callcontext.pmc: get_cell_at has no POD
src/pmc/callcontext.pmc: autobox_intval has no POD
src/pmc/callcontext.pmc: autobox_floatval has no POD
src/pmc/callcontext.pmc: autobox_string has no POD
src/pmc/callcontext.pmc: autobox_pmc has no POD
src/pmc/callcontext.pmc: get_hash has no POD
src/pmc/callcontext.pmc: mark_cell has no POD
src/pmc/callcontext.pmc: mark_positionals has no POD
src/pmc/callcontext.pmc: mark_hash has no POD
src/pmc/callcontext.pmc: get_named_names has no POD
src/pmc/class.pmc: pointer_compare has no POD
src/pmc/class.pmc: key_hash_pointer has no POD
src/pmc/class.pmc: cache_class_attribs has no POD
src/pmc/class.pmc: build_attrib_index has no POD
src/pmc/class.pmc: init_class_from_hash has no POD
src/pmc/class.pmc: initialize_parents has no POD
src/pmc/class.pmc: initialize_parents_pmc has no POD
src/pmc/class.pmc: make_class_name has no POD
src/pmc/class.pmc: calculate_mro has no POD
src/pmc/complex.pmc: int_check_divide_zero has no POD
src/pmc/complex.pmc: float_check_divide_zero has no POD
src/pmc/complex.pmc: complex_check_divide_zero has no POD
src/pmc/coroutine.pmc: print_sub_name has no POD
src/pmc/eval.pmc: clear_fixups has no POD
src/pmc/eval.pmc: get_sub has no POD
src/pmc/eval.pmc: mark_subs has no POD
src/pmc/fixedintegerarray.pmc: auxcmpfunc has no POD
src/pmc/hashiterator.pmc: advance_to_next has no POD
src/pmc/imageio.pmc: GET_VISIT_CURSOR has no POD
src/pmc/imageio.pmc: SET_VISIT_CURSOR has no POD
src/pmc/imageio.pmc: INC_VISIT_CURSOR has no POD
src/pmc/imageio.pmc: create_buffer has no POD
src/pmc/imageio.pmc: ensure_buffer_size has no POD
src/pmc/imageio.pmc: INFO_HAS_DATA has no POD
src/pmc/imageio.pmc: id_list_get has no POD
src/pmc/imageio.pmc: visit_todo_list_thaw has no POD
src/pmc/imageio.pmc: visit_todo_list_freeze has no POD
src/pmc/imageiosize.pmc: visit_todo_list_freeze has no POD
src/pmc/integer.pmc: maybe_throw_overflow_error has no POD
src/pmc/integer.pmc: upgrade_self_to_bignum has no POD
src/pmc/namespace.pmc: add_to_class has no POD
src/pmc/namespace.pmc: ns_insert_sub_keyed_str has no POD
src/pmc/namespace.pmc: maybe_add_sub_to_namespace has no POD
src/pmc/namespace.pmc: add_nci_to_namespace has no POD
src/pmc/namespace.pmc: add_multi_to_namespace has no POD
src/pmc/nci.pmc: pcc_params has no POD
src/pmc/nci.pmc: build_func has no POD
src/pmc/null.pmc: null_pmc_access has no POD
src/pmc/object.pmc: get_attrib_index has no POD
src/pmc/object.pmc: get_attrib_index_keyed has no POD
src/pmc/object.pmc: find_cached has no POD
src/pmc/object.pmc: cache_method has no POD
src/pmc/orderedhash.pmc: get_list_item has no POD
src/pmc/orderedhash.pmc: find_bounds has no POD
src/pmc/orderedhash.pmc: box_string has no POD
src/pmc/orderedhash.pmc: box_integer has no POD
src/pmc/orderedhash.pmc: box_number has no POD
src/pmc/packfile.pmc: copy_packfile_header has no POD
src/pmc/role.pmc: init_role_from_hash has no POD
src/pmc/sub.pmc: print_sub_name has no POD
src/pmc/threadinterpreter.pmc: stop_GC has no POD
Headerization complete.
}}}
",2010-10-31T15:13:07Z,mikehh
5,jkeenan,855,config/init/defaults.pm:  Profiling options are too specific to GCC,configure,,bug,2009-07-19T23:46:59Z,"This ticket was created in [http://rt.perl.org/rt3/Ticket/Display.html?id=41497 RT #41497] by Paul T Cochrane in February 2007.  I am moving it into the Trac system to raise its visibility.  I believe it could be moved toward resolution by someone -- a newcomer, perhaps -- who was willing to spend some time doing Internet searching on the profiling options of various C compilers.

Original description:[[BR]]
'''The profiling options used in config/init/defaults.pm are specific to gcc. This should probably be specified in the relevant hints file.'''

The relevant code in ''config/init/defaults.pm'' is this:
{{{
    if ( $conf->options->get('profile') ) {
        $conf->data->set(
            cc_debug => "" -pg "",
            ld_debug => "" -pg "",
        );
    }
}}}
In the original ticket, Infinoid subsequently commented:  ''This flag convinces gcc to generate profiling code specifically for
the GNU profiler, `gprof`. I find it *extremely* unlikely that this
flag would be available and/or mean the same thing for other compilers ...''

In addition, Andy Dougherty commented:  ''[These options] are gcc-specific. A plain `-p` is common on Unix systems, but `-pg` is gcc-specific. For example, with Sun's C compiler, `-xpg` would be
the equivalent flag. (Though Sun's C compiler also has other profile
options selected by `-xprofile` ...)''

Could someone research profiling options on a variety of C compilers, including the principal C compilers for Windows?

Thank you very much.[[BR]]
kid51",2011-01-03T22:54:34Z,jkeenan
4,kthakore,1639,StringHandle should be updated to use StringBuilder internally.,core,,todo,2010-05-15T03:14:07Z,"Hello.

In immutable strings world current implementation of StringHandle is sub-optimal. It should be migrated to use StringBuilder internally instead of String.

-- 
Bacek",2010-12-01T00:01:29Z,bacek
4,NotFound,1996,Function Parrot_ext_try for extenders,embed/extend,,experimental,2011-02-04T14:43:28Z,"I'm going to add the experimental function Parrot_ext_try, to help handling exceptions from extension code.

It takes as parameters an interpreter a function to call, a handler function and a pointer for data.

The main function is called with the interpreter and the data.

The handler function, if not null, is called if an exception is thrown during the main call, passing to it the interpreter, the exception and the data.

The data pointer is opaque, the caller and the functions used can use it for any purpose.
",2011-02-04T14:59:33Z,NotFound
4,NotFound,707,[RFC] StringHandle interface,core,,RFC,2009-05-26T15:30:06Z,"There some points in the StringHandle pmc that needs clarification:

- Read/Write mode: Must it works the same as FileHandle? Several tests use read methods in a StringHanlde opened for writing. IMO will be better to have methods to get/set the string content, use the get_string/set_string/native vtable functions, or both, and have the read methods throw exceptions when not opened for read.

- Mode when reopened without second argument: must use the flags used on the previous open, or use the 'r' default? Several tests assume the second, but works only because of the first issue.
",2011-01-15T13:11:22Z,NotFound
4,nwellnhof,1724,Add getprotobyname to Socket PMCs,core,,patch,2010-08-01T13:15:14Z,"I couldn't see any implementation of getprotobyname which seems like a standard function that should be available. This adds it to Socket PMCs.

I'm not entirely sure this is the correct approach - because normally you'd call this before creating a socket object. For PIR this is OK, but in something like Perl 6 this will create a Socket object to call getprotobyname, then destroy it, then probably create another one straight after.

Anyway, this is the best I could come up with given my extremely limited knowledge of Parrot - please advise!",2011-08-27T21:50:12Z,ocharles
4,Paul C. Anagnostopoulos,987,Make breakpoints actually work in parrot_debugger,tools,,bug,2009-09-07T05:52:55Z,"Currently, you can add and delete breakpoints, but they don't actually stop the program flow.

A failing test for this would be a good start.",2011-03-27T14:05:42Z,dukeleto
4,Paul C. Anagnostopoulos,1731,Assumption made about buffer header alignment,core,,bug,2010-08-05T19:28:23Z,"Various memory management routines (e.g., `gc_ms_allocate_buffer_storage`) assume that the size of a buffer header is equal to the size of a pointer. This is probably true throughout the system as it stands, but those same routines take pains not to make that assumption in other places.

Here is a line from the above routine:
{{{
    Buffer_buflen(buffer)   = new_size - sizeof (void *);
}}}
If the size of a pointer is less than the buffer header size, the value stored in `buflen` will be too big. `new_size` includes the entire size of the buffer header, which may include alignment padding in addition to the pointer.
",2010-08-13T14:19:01Z,Paul C. Anagnostopoulos
4,petdance,2201,"This product has only a moose, not a pony",none,,bug,2011-10-25T04:51:41Z,This is a scratch ticket for Andy's testing.,2011-10-25T05:42:43Z,petdance
4,pmichaud,1510,NQP-rx doesn't create PMC for string // expressions,nqp,,bug,2010-03-16T03:35:45Z,"{{{
austin@andLinux:~/kakapo$ cat test.nqp

my %hash;
%hash<key> := 1;

#my $x := ~ %hash<key>;
my $y := ~ %hash<key> // 'r';
}}}
Produces:
{{{
austin@andLinux:~/kakapo$ parrot-nqp test.nqp
Null PMC access in set_string_native()
current instr.: '_block11' pc 0 (EVAL_1:6)
called from Sub 'parrot;PCT;HLLCompiler;eval' pc -1 ((unknown file):-1)
called from Sub 'parrot;PCT;HLLCompiler;evalfiles' pc 1303 (compilers/pct/src/PCT/HLLCompiler.pir:707)
called from Sub 'parrot;PCT;HLLCompiler;command_line' pc 1489 (compilers/pct/src/PCT/HLLCompiler.pir:794)
called from Sub 'parrot;NQP;Compiler;main' pc -1 ((unknown file):-1)
austin@andLinux:~/kakapo$ 
}}}
The bad part of the code seems to be:
{{{
    vivify_13:
    set $S21, $P20
    set $P18, $S21
    defined $I23, $P18
    if $I23, default_22
    new $P24, ""String""
    assign $P24, ""r""
    set $P18, $P24
}}}
Note here the use of $P18, which has never been initialized.",2011-10-19T21:23:43Z,Austin_Hastings
4,pmichaud,1631,Exception handler throwing exception in NQP-rx causes segfault,nqp,,bug,2010-05-13T08:57:43Z,"{ pir::die(""""); CATCH { pir::die(""""); } }

The NQP-rx generated exception handler does not call pop_eh in the handler path, which apparently it should, according to bacek.
",2010-07-13T18:52:33Z,sorear
4,Util,919,"On Mac OS X 10.5.8, Configure.pl : lazy symbol binding failed",configure,,bug,2009-08-14T19:41:13Z,"Hi,

I'm running Mac OS X 10.5.8 with the dev tools installed.

I just downloaded parrot 1.4.0, unpacked it into my `~/opt/src` directory,
and ran `perl Configure.pl --prefix=/Users/john/opt`.

Although the configure seemed to succeed, it complained thusly:

{{{
auto::readline -      Does your platform support readline...dyld: lazy symbol binding failed: Symbol not found: _rl_get_keymap
  Referenced from: /Users/john/opt/src/parrot-1.4.0/./test_2640
  Expected in: dynamic lookup

dyld: Symbol not found: _rl_get_keymap
  Referenced from: /Users/john/opt/src/parrot-1.4.0/./test_2640
  Expected in: dynamic lookup

.............done.
}}}

At the end, it reported:

{{{
Okay, we're done!

You can now use `make' to build your Parrot.
After that, you can use `make test' to run the test suite.

Happy Hacking,
        The Parrot Team
}}}

Here is some other info that was in the output from running parrotbug:

{{{
---
osname= darwin
osvers= 9.0
arch=   darwin-thread-multi-2level
cc=     cc
---
Flags:
    category=install
    severity=medium
    ack=no
---
Summary of my parrot 1.4.0 (r0) configuration:
  configdate='Fri Aug 14 19:11:27 2009 GMT'
  Platform:
    osname=darwin, archname=darwin-2level
    jitcapable=0, jitarchname=nojit,
    jitosname=darwin, jitcpuarch=i386
    execcapable=0
    perl=perl
  Compiler:
    cc='/usr/bin/gcc-4.0', ccflags='-fno-common -I/opt/local/include -no-cpp-precomp  -pipe -I/opt/local/include -pipe -fno-common -Wno-long-double  -DHASATTRIBUTE_CONST  -DHASATTRIBUTE_DEPRECATED  -DHASATTRIBUTE_MALLOC  -DHASATTRIBUTE_
NONNULL  -DHASATTRIBUTE_NORETURN  -DHASATTRIBUTE_PURE  -DHASATTRIBUTE_UNUSED  -DHASATTRIBUTE_WARN_UNUSED_RESULT  -falign-functions=16 -fvisibility=hidden -funit-at-a-time -maccumulate-outgoing-args -W -Wall -Waggregate-return -Wcast-ali
gn -Wcast-qual -Wchar-subscripts -Wcomment -Wdisabled-optimization -Wendif-labels -Wextra -Wformat -Wformat-extra-args -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimplicit -Wimport -Winit-self -Winline -Winvalid-pch -Wmissing-b
races -Wmissing-field-initializers -Wno-missing-format-attribute -Wmissing-include-dirs -Wpacked -Wparentheses -Wpointer-arith -Wreturn-type -Wsequence-point -Wno-shadow -Wsign-compare -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wsw
itch-default -Wtrigraphs -Wundef -Wunknown-pragmas -Wno-unused -Wvariadic-macros -Wwrite-strings -Wbad-function-cast -Wdeclaration-after-statement -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-declarations -Wmissing-pr
ototypes -Wnested-externs -Wnonnull',
  Linker and Libraries:
    ld='c++', ldflags='-L/opt/local/lib -L/Users/john/opt/src/parrot-1.4.0/blib/lib',
    cc_ldflags='',
    libs='-lm -lutil -lgmp -lreadline'
  Dynamic Linking:
    share_ext='.dylib', ld_share_flags='-dynamiclib -undefined dynamic_lookup',
    load_ext='.bundle', ld_load_flags='-undefined dynamic_lookup -bundle'
  Types:
    iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4,
    ptrsize=4, ptr_alignment=1 byteorder=1234, 
    nv=double, numvalsize=8, doublesize=8, longdoublesize=16

---
Environment:
    DYLD_LIBRARY_PATH  (unset)
    HOME =/Users/john
    LANG =en_US.UTF-8
    LANGUAGE  (unset)
    LD_LIBRARY_PATH  (unset)
    LOGDIR  (unset)
    PATH =/opt/local/bin:/opt/local/sbin:/usr/local/mysql/bin:/Users/john/.cabal/bin:/Users/john/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
    SHELL =/bin/bash
}}}
",2011-06-11T01:11:37Z,jgabr
4,Util,1891,"Problems with acosh, asech, atanh and acoth  in Complex PMC",core,2.11,bug,2010-12-14T17:19:30Z,"Hello,

While doing [http://www.google-melange.com/gci/task/show/google/gci2010/parrot_perl_foundations/t129193205977 this GCI task] I had some problems with ""acosh"".

Here is the output of tests that I wrote:
{{{
not ok 529 - acosh of 0-1i
# Have: -0.881374+1.570796i
# Want: 0.881374-1.570796i

not ok 530 - acosh of 0-0.5i
# Have: -0.481212+1.570796i
# Want: 0.481212-1.570796i

not ok 535 - acosh of 2-3i
# Have: -1.983387+1.000144i
# Want: 1.983387-1.000144i

not ok 537 - acosh of -2-3i
# Have: -1.983387+2.141449i
# Want: 1.983387-2.141449i
}}}

The ""want"" values were taken from WolframAlpha (ex [http://www.wolframalpha.com/input/?i=acosh(2-3i)]).

Some other methods that relies on ""acosh"" are also returning a wrong value, like ""asech"".

{{{
not ok 587 - asech of 0.5+0i
# Have: -1.316958+0.000000i
# Want: 1.316958+0.000000i

not ok 593 - asech of 0+0.5i
# Have: -1.443635+1.570796i
# Want: 1.443635-1.570796i

not ok 594 - asech of 0+1i
# Have: -0.881374+1.570796i
# Want: 0.881374-1.570796i

not ok 595 - asech of 0+2i
# Have: -0.481212+1.570796i
# Want: 0.481212-1.570796i

not ok 596 - asech of 2+3i
# Have: -0.231335+1.420411i
# Want: 0.231335-1.420411i

not ok 598 - asech of -2+3i
# Have: -0.231335+1.721182i
# Want: 0.231335-1.721182i
}}}

I also found some errors in  ""atanh"" and ""acoth"":
{{{
not ok 538 - atanh of -2+0i
# Have: -0.549306-1.570796i
# Want: -0.549306+1.570796i

not ok 554 - acoth of -0.5+0i
# Have: -0.549306-1.570796i
# Want: -0.549306+1.570796i
}}}

The tests that I wrote can be found here: https://github.com/fernandobrito/parrot/commits/gci_tests

Environment: Ubuntu 10.10, Parrot 2.10.1 (master branch), Perl 5.10.1 i686-linux-gnu-thread-multi, cc (gcc 4.4), i386, linux",2011-07-21T05:02:56Z,fbrito
2,whiteknight,1886,set_string_native() not implemented in class 'TclString',none,,bug,2010-12-10T17:31:07Z,"This error has cropped up in the last few months in partcl-nqp. (No changes in partcl, just upgrading parrot was sufficient to gen the error)

In one case, there was a concat operation in our src/Partcl/commands/time.pm ; prefixing the first element with a ~ avoided the error. (but should have been unnecessary.)

There is another location where this error occurs, triggered by the following tcl:

{{{
$ cat error.tcl
for {set i 0} {$i < 2} {set i [expr $i+1]} {puts $i}
$ ./partcl error.tcl
0
1
set_string_native() not implemented in class 'TclString'
    while executing
eval
    (file ""<unknown file>"" line 7)
for
    (file ""<unknown file>"" line 12)
HLL::Compiler::eval
    (file ""<unknown file>"" line 151)
PCT::HLLCompiler::evalfiles
    (file ""<unknown file>"" <unknown line>)
PCT::HLLCompiler::command_line
    (file ""<unknown file>"" <unknown line>)
main
    (file ""<unknown file>"" line 1)
}}}

In eval (src/Partcl/commands/eval.pm) the error is occurring when invoking the sub generated by:

{{{
my &sub := Partcl::Compiler.compile($code);
&sub(); #BOOM
}}}

In any case, TclString should in fact have a set_string_native, inherited from its parent class of String; it's declared in an nqp file as:

{{{
class TclString is String
}}}
",2011-10-20T01:53:24Z,coke
4,whiteknight,1492,Get_class <namespace> confuses NSes that have same final name.,core,,bug,2010-03-03T15:06:09Z,"Having already created a class ""Matcher"", I was trying in NQP to create a related class Mimus::CallSignature::Matcher. (Note the last name.)
 
Far too many hours later, it appears that the get_class op on a namespace apparently returns invalid results when the namespace shares a last name with an already-extant class.

This code, inspired by the `get_parrotclass` method in P6object.pir, looks up (and tries to create, if needed) two classes with different namespace paths but the same class name (last name in the nsp), one called P and the other N::S::P :
{{{
.sub foo :main
	.local pmc class_p
	.local int addr_p

	.local pmc class_nsp
	.local int addr_nsp

	class_p = newclass [ 'P' ]
	addr_p = get_addr class_p
	

	$S0 = 'N::S::P'		# Change to ..Q and it changes
	$P0 = split '::', $S0

	$P1 = get_hll_namespace $P0
	unless null $P1 goto have_ns
	
	die ""Namespace was null""
have_ns:
	
	class_nsp = get_class $P1
	$P2 = class_nsp
	addr_nsp = get_addr class_nsp

	print ""Addr of class 'P' is: ""
	say addr_p

	print ""Addr of 'N::S::P' is: ""
	say addr_nsp

	unless addr_p == addr_nsp goto end
	say ""*** The addrs are the same. I think that's wrong.""

	goto end

got_class:
	say ""Got the class. I didn't see that coming.""
end:
.end

.namespace ['N';'S';'P']

.sub bar :method
	.return (1)
.end


.namespace ['N';'S';'Q']

.sub bar :method
	.return (1)
.end
}}}

The effect of this seems to be that any code which relies on P6object cannot create classes that have the same name.

The workaround is, trivially, to make sure that class names are distinct. Anyone who has ever coded C89 should be okay.
",2010-11-21T20:13:19Z,Austin_Hastings
4,whiteknight,1868,[DEPRECATED] PIR compiler availability,core,2.11,deprecation,2010-11-23T22:05:33Z,"PIR as a language is currently always available in parrot. This privileged status is part of why PIR is a growing pain for Parrot (usually experienced as hatred for IMCC).

PIR will become no different to parrot than any language. It will not be baked-in to libparrot and be always available. In stead, PIR will become a separately loadable component.

PIR will remain available to Parrot programs, however it will require loading before use (via the load_language instruction).

A separate executable (tentatively named ""parrot-imcc"") will be made available for compiling and running PIR programs as the main parrot executable does today.",2011-05-22T01:39:15Z,plobsing
4,whiteknight,1969,Deprecate Eval PMC,core,,deprecation,2011-01-15T16:00:00Z,"We should deprecate this PMC. compregs should return the packfile PMC, or maybe the Sub PMC, but not Eval.",2011-10-24T14:45:17Z,whiteknight
4,whiteknight,1356,[TODO] add method FixedStringArray.sort(),core,,RFC,2009-12-03T17:54:22Z,"Add the method sort in the FixedStringArray PMC.

Currently, the method sort is only implemented in FixedPMCArray (and inherited by ResizablePMCArray).

This method uses the C function Parrot_quicksort (in src/utils.c) which handles only PMC and not STRING.",2011-05-26T23:54:21Z,fperrad
4,whiteknight,955,need ability to create tempfile from PIR,testing,,todo,2009-08-28T18:05:43Z,"to fully convert tests from Perl to PIR, we need a PIR-level analog to:

{{{
    use Parrot::Test::Util 'create_tempfile';
}}}

... I'm not sure if we can automatically delete; that would be nice, but a manual deletion at program exit is sufficient.",2011-07-07T19:29:50Z,coke
4,whiteknight,1284,Integer PMC missing math methods,core,,todo,2009-11-17T02:58:11Z,"IMO, this code:

{{{
.sub main
  $P1 = box 1.0
  $N1 = $P1.'exp'()
  say $N1
  $P1 = box 1
  $N1 = $P1.'exp'()
  say $N1
.end
}}}

should print 
2.71828182845905
2.71828182845905

... but it dies with:

{{{
2.71828182845905
Method 'exp' not found for invocant of class 'Integer'
}}}

Clearly, exp isn't defined on Integer, but IMO, all the math methods defined on Float should be defined on Integer. (otherwise, given an arbitrary numeric PMC, we have to jump through hoops.

(Alternatively, we can remove these methods from the Float PMC and rely on the opcodes.)

This becomes even more confusing when you take in the morphing of the core types - a PMC that was a Float can morph into an Integer which is then unable to invoke the various methods.

This issue was originally opened as http://rt.perl.org/rt3/Ticket/Display.html?id=38896",2011-05-16T16:58:13Z,coke
5,whiteknight,1754,The Scalar PMC,core,,deprecation,2010-08-23T01:00:14Z,"The Scalar PMC is quite confusing. Why do some scalars inherit from it and others don't? What exactly does it provide? For example, it appears to be the only PMC providing logical_not. Why does it mean to `provide scalar` and why does PDD17 say that Foo is the only PMC to do it?

Perhaps the Scalar PMC should be eliminated, or perhaps it should be refactored with the Default class. At least it should be clearly documented.",2011-08-17T02:10:33Z,Paul C. Anagnostopoulos
5,whiteknight,1448,Modify `throw` opcode to pass through pre-configured resume continuation,core,,RFC,2010-02-16T01:10:15Z,"Presently, the throw opcode creates and sets a resume continuation on the exception being thrown. 

Since 'resume' is an attribute of the Exception, throw should check first for a preconfigured continuation, and if one exists should preserve it.

(Of course, if unset it should continue to do what it does.)",2011-10-24T12:49:43Z,Austin_Hastings
7,whiteknight,560,"When we can't find a library, we shouldn't silently continue and give weird errors later",core,,todo,2009-04-17T09:47:54Z,"In particular, I'd argue that we should quit with an error, and show the path we searched.  ",2011-07-09T11:24:11Z,wayland
4,Yuki`N,1282,OS.cwd returns platform specific slashes...,core,,todo,2009-11-17T02:34:48Z,"... but some languages need a way to get agnostic slashes. Rather than have every HLL implement this, there should be some way to canonicalize the path, and a way to get the platform-specific path. (This will allow hlls to pick whichever method they prefer.)

I don't particularly care about the implementation, as long as I can make

{{{
C:\Tcl\bin>tclsh
% puts [pwd]
C:/Tcl/bin
}}}

work.

This issue originally opened as http://rt.perl.org/rt3/Ticket/Display.html?id=39853",2011-11-26T01:56:12Z,coke
