__color__	__group__	ticket	summary	component	version	type	owner	status	created	_changetime	_description	_reporter
3		236	implement pdd14-numbers	core		todo	dukeleto	assigned	2009-01-27T19:44:29Z	2010-10-13T00:34:28Z	add NaN/Inf to pdd, review spec against reality, implement what remains.	particle
4		88	update pdd26-ast	docs		todo	pmichaud	new	2008-12-24T04:38:02Z	2011-05-20T00:35:57Z	Verify that pdd26-ast is up to date with current implementation and design.	pmichaud
4		157	[TODO] Merge parrotblog.org into parrot.org	website		todo	Infinoid	new	2009-01-11T03:10:06Z	2010-09-19T12:27:49Z	"Before the 1.0 release, merge parrotblog.org into parrot.org. The tutorial posts should become regular pages in the developer section of the site. Other posts can be entered as news items (with the date set to match the original posting date).

(Anyone who had posting access on parrotblog.org should have access to post stories on parrot.org now, but if you don't, let us know.)"	allison
4		359	enable UUID for pbc	core		todo		new	2009-02-19T22:15:57Z	2010-03-02T15:34:58Z	"With r36890 I've enabled UUID stamping of pbc's for the t/native_pbc/ tests. tools/dev/pbc_header.pl --upd works now again.

In order to enable UUID's (uuid_type=1) for all PBC's I plan the following:

  - read the UUID, the md5 fingerprint of PBC_COMPAT with Parrot::BuildUtils::generate_pbc_fingerprint() at Configure.pl

  - uuid_size = 12, so that the new padding in the header will be 2 instead of 14 and the header size before the directory stay the same.

  - store the pbc_fingerprint as PBC_UUID in config.h for packfile.c

  - write every pbc with this UUID

  - check the UUID when reading pbc's and warn 
    when reading incompatible PBC's, different UUID's.

  - error on reading newer bytecode versions, 
    allow reading older versions. That was the original 
    intention at least.
 
"	rurban
4		955	need ability to create tempfile from PIR	testing		todo	whiteknight	assigned	2009-08-28T18:05:43Z	2011-07-07T19:29:50Z	"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."	coke
4		1155	dynext - dll versioning	none		todo		new	2009-10-28T03:12:47Z	2009-10-28T03:12:47Z	"Thanks to the Windows DLL Hell L<http://en.wikipedia.org/wiki/DLL_hell> 
and the impossibility of file hardlinks, windows dll names are hopefully 
versioned, so either the loadlib function or the various pir's needs 
more logic for maintainance convenience.

Keep the lib_paths and share_ext search, add more name munging for 
special platforms.

Either
1) add the version to each loadlib call, and stem the version from
POSIX versions within get_path().

loadlib lib, 'libSDL-1.2.so.0'

=> try: libSDL-1.2.so.0, libSDL-1.2.so

stemmed: libSDL.so
on WIN32: SDL-1.2.dll, SDL.dll
on cygwin: cygSDL-1.2.dll, cygSDL.dll

Maybe also detect the ""-1.2.so.0"" and convert it to ""-1.2.0.dll""

2) add an optional version argument to loadlib. (preferred)

loadlib lib, 'SDL', '1.2.0'

=> Try: first always prefix with ""lib""
libSDL-1.2.0.so, libSDL-1.2.so.0, libSDL-1.2.so, libSDL.so
other rules stay as they are. (lib_paths + share_ext)
on WIN32: no lib prefix and try versions.
SDL-1-2-0.dll, SDL-1-2.dll, SDL-1.2.0.dll, SDL-1.2.dll, SDL.dll
on cygwin: cyg prefix and try versions with '.' and '-'.
cygSDL-1.2.dll, cygSDL-1.2.0.dll, cygSDL-1-2-0.dll, cygSDL-1-2.dll

All the pir's for the latest packaged libraries are fixed with RT#51328.

RT#51328 also applies the addional lib => cyg dll logic, but does not 
help with versioned dll's, as for ncurses and SDL most prominently.

Examples what we want to avoid:

loadlib $P1, 'libform'
+if $P1 goto has_lib
+loadlib $P1, 'cygform-8'
+has_lib:

loadlib $P1, 'libncurses'
+if $P1 goto has_lib1
+loadlib $P1, 'cygncurses-8'
+has_lib1:

# third try
loadlib libsdl, 'libSDL-1.2.so.0'

+ loadlib libsdl, 'cygSDL-1-2-0'
+ $I0 = typeof libsdl
+ if $I0 != .Undef goto OK

loadlib image_lib, 'libSDL_image-1.2.so.0'
$I0 = typeof image_lib
if $I0 != .Undef goto OK_HINT2

+ loadlib image_lib, 'cygSDL_image-1-2-0'
+ $I0 = typeof image_lib
+ if $I0 != .Undef goto OK
+

See also other ffi's, such as cffi, how they do deal or not with this 
problem. Years ago I wrote an overview at 
http://autocad.xarch.at/lisp/ffis.html
-- 
Reini Urban
http://phpwiki.org/ http://murbreak.at/
http://helsinki.at/ http://spacemovie.mur.at/"	rurban
4		1158	t/op/01-parse_ops.t: figure out how to test parsing of pmc constant parameters	testing		todo		new	2009-10-28T14:54:58Z	2011-02-25T03:43:10Z	"r13601 added a test to check parsing of every parrot opcode. but those
that accept pmc constants are skipped, as i haven't figured out how to
test them yet.

see t/op/01-parse_ops.t
~jerry"	particle
4		1161	pdump - Dumping constants shouldn't unpack the constants	tools		todo	dukeleto	new	2009-10-30T00:55:58Z	2011-02-25T03:35:57Z	"Dumping constants shouldn't unpack the constants, but
just print out the segment.

(from the TODO file)"	coke
4		1197	Need some way to copy/rename files from parrot.	core		todo		new	2009-11-05T05:34:11Z	2009-11-07T03:09:54Z	"This was originally posted as ""OS.pmc - file copy"" in http://rt.perl.org/rt3/Ticket/Display.html?id=38146

We need some way to copy files, whether opcode, pmc method, PIR library...

A lot of discussion occurred on the original ticket that I can't easily summarize. No consensus was reached. Features still needs to be added somewhere."	coke
4		1299	create tests for Config/JSON.pbc	testing		todo		new	2009-11-17T16:06:58Z	2009-11-17T16:06:58Z	"Config/JSON was added in '07 without tests in response to  http://rt.perl.org/rt3/Ticket/Display.html?id=41870.

Tests are required."	coke
4		1328	announce next release when announcing current release	docs		todo		new	2009-11-23T15:28:05Z	2009-11-23T15:28:05Z	"Seen on the latest perl 5.11 announcement:

{{{
Jesse Vincent or a delegate will release Perl 5.11.3 on December 20, 2009. Ricardo Signes will release Perl 5.11.4 on January 20, 2010. Steve Hay will release Perl 5.11.5 on February 20, 2010.
}}}

We should crib this from them and put it in our release notes, make it part of the release process to insure we have at least the next 2 or 3 releases assigned."	coke
5		463	refactor PCT::HLLCompiler's detection of Test::Harness	tools		todo	dukeleto	new	2009-03-16T14:49:42Z	2011-02-02T03:10:43Z	"In order to facilitate using PCT::HLLCompiler with test harnesses,
the C<command_line> method of PCT::HLLCompiler object exits silently
if it detects that it is being run in a sample run from Perl's
Test::Harness.  Currently this detection is done by checking the
second command line argument for ""@INC""; future releases may
use a different detection mechanism or eliminate it altogether.

"	pmichaud
5		505	avoid 2038 bug	core		todo		new	2009-03-26T18:47:45Z	2011-02-25T17:52:19Z	"Original reported here: http://rt.perl.org/rt3/Ticket/Display.html?id=57728

{{{
>> we definitely need date/time pmc(s?) not only to have a common epoch
>> across platforms, but to deal with 2038. in particular, we should
>> leverage schwern's work on perl to address the 2038 bug.
>> ~jerry
>
> We definitely haven't already fixed this. Here's an easy test using
> libfaketime:
>
> $ cat time.pir
> .sub main :main
> .local int time_int
> time time_int
> say time_int
> .end
> $ ./parrot time.pir
> 1222213121
> $ LD_PRELOAD=/usr/src/libfaketime-0.8/libfaketime.so.1 FAKETIME=""+40y""
> ./parrot time.pir
> -1811314167

We can't make this example work. If you use an INTVAL, and the INTVAL
can be signed 32 bits, there is no way to have a more than 31 bits
unsigned stored on it as such.

-- 
Salu2
}}}

Since this is unlikely to get resolved shortly and only has a small amount of history, moving tracking of issue here."	coke
5		525	smolder: show which tests passed unexpectedly.	none		todo		new	2009-03-31T12:07:53Z	2010-11-22T15:58:58Z	smolder RFC: show which tests passed unexpectedly. Would be very helpful to see which tests we can potentially untodo.	coke
5		1300	sysinfo_s opcode incomplete	none		todo		new	2009-11-17T16:12:05Z	2009-11-17T16:12:18Z	"""src/interp/inter_misc.c"" defines the sysinfo_s function used by the similarly named opcode.

The docs define the following parameters:

{{{
    PARROT_OS
    PARROT_OS_VERSION
    PARROT_OS_VERSION_NUMBER
    CPU_ARCH
    CPU_TYPE
}}}

CPU_TYPE is not implemented."	coke
7		220	editor/pir-mode.el should be a generated file	tools		todo		new	2009-01-24T05:41:25Z	2010-10-12T23:12:15Z	"Rather than having to edit pir-mode to keep it up to date with existing PMC names, they (and any other bits than can be done at build time) should be done programmatically.

This is a reasonable perl5 task."	coke
7		322	Annoying cygwin/mingw cfg readline popup	configure		todo		new	2009-02-12T07:28:39Z	2010-09-22T21:54:02Z	"mingw with cygwin also installed but not in the path leads an annoying modal warning popup about the missing cygreadline dll, because the mingw libpath search also includes the cygwin /lib path.

auto::readline -      Does your platform support readline...Can't spawn "".\test_4744.exe"": Bad file descriptor at lib/Parrot/Configure/Utils.pm line 86.
.............done.

Either us a win32 trick to ignore this process invocation warning about a missing dll, or remove the wrong cygwin libpaths from the linker search path.

{{{
auto::readline -      Does your platform support readline...

gcc -Wl,--verbose test_892.o -lreadline -o test_892.exe  -lmsvcrt -lmoldname -kernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -version -lodbc32 -lodbccp32 -lgmp .\test_892.exe

...
attempt to open c:\strawberry\c\mingw32\bin\../lib\libreadline.a failed
...
attempt to open /mingw/lib\libreadline.a failed
attempt to open /usr/local/lib/libreadline.dll.a failed
attempt to open /usr/local/lib/readline.dll.a failed
attempt to open /usr/local/lib/libreadline.a failed
attempt to open /usr/local/lib/readline.lib failed
attempt to open /usr/local/lib/libreadline.dll failed
attempt to open /usr/local/lib/readline.dll failed
attempt to open /usr/local/lib\libreadline.a failed
attempt to open /lib/libreadline.dll.a succeeded
(/lib/libreadline.dll.a)d000367.o
(/lib/libreadline.dll.a)d000000.o
(/lib/libreadline.dll.a)d000584.o

}}}

/lib/libreadline.dll.a is a cygwin path, and mingw should not even know about that mountpoint
"	rurban
4	1.2.0	709	Pmc2c should generate mark and destroy VTABLES	core	1.2.0	todo	cotto	new	2009-05-26T18:57:27Z	2011-02-14T00:36:51Z	"Pending discussion today in #ps: 
{{{
<Whiteknight> Propose adding a PObj flag ""PObj_uses_malloc_attrs_FLAG"" to automatically deallocate Parrot_*_attribute structures in the GC. Thoughts?
<chromatic> Alternative: smarten Pmc2C such that it automatically generates mark() and destroy() VTABLEs as necessary.
<allison> prefer chromatic's solution
}}}

Pmc2c.pl should be smart enough to:
 - automatically generate a mark() vtable to mark all STRING and PMC attrs, unless the user has specifically provided one, and
 - automatically generate a destroy() vtable to deallocate the Parrot_*_attributes structure, unless the user has already provided one.

There are lots of good reasons to do this.
"	whiteknight
4	1.3.0	787	add vtables for: get_pmc_keyed{_int,_str,}_lvalue ; and similarly for slice	core	1.3.0	todo		new	2009-06-24T15:56:47Z	2009-10-23T15:13:24Z	"See discussion starting at:

    http://irclog.perlgeek.de/parrot/2009-06-23#i_1260446

In short, HLLs expect to be able to bind to an element (or slice) of a collection as an lvalue, even if that collection is implemented as a packed array of non-PMCs underneath the covers.  Indexing into a collection for rvalue return and for lvalue return are different operations; thus we need lvalue variants of get_pmc_keyed* to go along with the current rvalue variants, and the HLLs need to use the correct variant for the operation they wish to perform.
"	japhb
4	1.3.0	847	Interpreter - 'exec' and 'spawn' should split own args	core	1.3.0	todo		new	2009-07-18T13:40:07Z	2011-07-02T20:45:47Z	"This ticket formerly existed as [http://rt.perl.org/rt3/Ticket/Display.html?id=31144 RT #31144].  It was created by Coke on Aug 15 2004.  I am moving it to Trac at [http://wknight8111.blogspot.com/2009/07/parrot4newbies-platforms.html the suggestion of whiteknight on his blog], which is also available on [http://planet.parrotcode.org/ planet.parrotcode (July 17)].

Original ticket description:

'''Have exec and spawn split up their command-line arguments, rather than relying on the operating system shell to do this, which is unsafe.'''

Here are some files in our distribution that will be relevant to working on this ticket:
{{{
config/gen/platform.pm
config/gen/platform/ansi/exec.c
config/gen/platform/generic/exec.c
config/gen/platform/generic/memexec.c
config/gen/platform/openbsd/memexec.c
config/gen/platform/win32/exec.c
src/ops/sys.ops
tools/dev/pbc_to_exe.pir
t/op/spawnw.t
t/pmc/sys.t
docs/book/draft/ch10_opcode_reference.pod
docs/porting_intro.pod"	jkeenan
4	1.4.0	922	Coding standard tests for examples/ directories without tests	coding_standards	1.4.0	todo	dukeleto	assigned	2009-08-15T02:51:19Z	2011-02-24T10:53:10Z	"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.

"	dukeleto
4	1.5.0	985	proper Configure.pl-time check for hires timers	profiling	1.5.0	todo	cotto	new	2009-09-07T00:35:14Z	2011-03-12T11:53:15Z	"Currently parrot uses clock_gettime() unless the platform is darwin, in which it uses gettimeofday(). Any other esoteric platform that does not have clock_gettime() will currently not build on parrot. 

A proper check for each function should be done at Configure.pl-time for these. Devel::NYTProf2 has already solved most of these issues, we should emulate that."	dukeleto
5	1.5.0	959	Auto-generate #include dependency graphs in docs/ at build.	docs	1.5.0	todo		new	2009-08-30T15:41:16Z	2011-02-20T22:34:35Z	"I think it would be very helpful to have a script to automatically generate #include dependency graphs for parrot at build. This would be very helpful for new developers for getting an idea of how everything fits together.

One way this might be implemented would be to check to see if graphviz is installed during configure, and then if so, generating the graphs during make once everything has been generated by the build tools. If graphviz is not available, a simple indented text file would be nice.

Any reasons why this is unnecessary or impossible?"	jrtayloriv
4	1.6.0	1052	[TODO] Add --target=pbc to HLLCompiler	PCT	1.6.0	todo	bacek	new	2009-09-21T18:51:07Z	2011-02-01T23:47:44Z	"HLLCompiler should be able to produce bytecode files directly.  See RT #56186 for discussion.

Pm"	pmichaud
4	1.6.0	1094	Unify VTABLE_invoke semantics between PMC types	core	1.6.0	todo		new	2009-10-05T13:03:44Z	2010-06-13T04:07:51Z	"For most subs it simply sets up the environment for invocation, and selects the first opcode instruction of the sub as the next 'opcode_t *' for 'runops'. For NCI subs it actually invokes the function pointer. The disjoint means that NCI subs can't be invoked from C argument lists the same way as all the other subs (because the regular C argument list passing can only happen *after* VTABLE_invoke has been called to set up the environment, but NCI requires the arguments to be passed *before* the call to VTABLE_invoke).

See also the CallingConventionsTasklist"	whiteknight
4	1.6.0	1157	Whitespace before/after the dot in a methodcall is disallowed	none	1.6.0	todo		new	2009-10-28T13:14:31Z	2010-12-05T18:50:54Z	"From a tangential discussion at RT #57656.

IMCC currently allows the following syntax forms:

{{{
foo. bar()
foo .bar()
}}}

Notice the whitespace before and after the dot in the method call. These should be disallowed: No whitespace should be allowed before or after the dot in the method call. This helps to differentiate it from the dot as a concatenation operator."	whiteknight
4	1.6.0	1160	t/compilers/tge/grammar.t:  failure in 'two rules of the same name'	testing	1.6.0	todo		new	2009-10-29T23:05:15Z	2011-07-03T21:36:43Z	"This test was `TODO`-ed by allison in r14596.  However, it appears that no ticket was ever created to track it.  Doing so now.
{{{
prove -v t/compilers/tge/grammar.t
t/compilers/tge/grammar.t .. 
1..3
ok 1 - test compiling anonymous and named grammars
ok 2 - complete example: Branch/Leaf tree grammar
not ok 3 - two rules of the same name can apply to the same node, when called with a different dummy type # TODO unresolved bug

#   Failed (TODO) test 'two rules of the same name can apply to the same node, when called with a different dummy type'
#   at t/compilers/tge/grammar.t line 279.
#          got: 'in tiddlywinks
# in first twister
# '
#     expected: 'in tiddlywinks
# in first twister
# in second twister
# '
ok
All tests successful.
}}}"	jkeenan
4	1.6.0	1164	Update Tutorials in http://www.parrotblog.org/	website	1.6.0	todo		new	2009-10-30T13:31:22Z	2010-09-12T01:24:06Z	"http://www.reddit.com/r/coding/comments/9yobp/parrot_episode_1_introduction_building_a_compiler/

That's all folks!"	kthakore
4	1.7.0	1177	test buffer_size in t/pmc/parrotio.t	testing	1.7.0	todo		new	2009-11-02T05:22:09Z	2011-02-25T01:25:03Z	"This was RT#46841: [TODO] [Pir] Test buffer_size in t/pmc/parrotio.t

In t/pmc/parrotio.t there is the todo item:

# TODO
# L<PDD22/I\/O PMC API/=item buffer_size>
# NOTES: try setting positive, zero, negative int
# perform print and read ops
# change buffer size while it contains data
# try with all 'buffer_type' modes

Please do this."	dukeleto
4	1.7.0	1178	Test get_fd in t/pmc/parrotio.t	testing	1.7.0	todo		new	2009-11-02T05:24:07Z	2011-02-25T01:25:59Z	"This was RT#46843: [TODO] [Pir] Test get_fd in t/pmc/parrotio.t

In t/pmc/parrotio.t there is the todo item:
{{{
# TODO
# L<PDD22/I\/O PMC API/=item get_fd>
# NOTES: this is going to be platform dependent
}}}
Please implement tests of this functionality."	dukeleto
4	1.7.0	1205	Test exporting MMD subroutines in t/pmc/exporter.t	testing	1.7.0	todo		new	2009-11-05T06:44:13Z	2011-02-25T03:24:10Z	"Exporting of multimethod dispatch subroutines should be tested.

This used to be tracked at http://rt.perl.org/rt3/Public/Bug/Display.html?id=46861"	dukeleto
4	1.7.0	1206	Test more return values in t/pmc/io_iterator.t	testing	1.7.0	todo		new	2009-11-05T06:52:53Z	2009-11-05T06:52:53Z	"In t/pmc/io_iterator.t there is the todo item within the tests of the
C<shift> (opcode??):

# TODO test more return values, including end of file

Please do this.

This used to be tracked at http://rt.perl.org/rt3/Public/Bug/Display.html?id=46851"	dukeleto
4	1.7.0	1223	Parrot_find_name_op() should walk up the scopes	core	1.7.0	todo	whiteknight	new	2009-11-07T14:08:05Z	2011-07-06T02:27:18Z	"In src/global.c:Parrot_find_name_op() there is the todo item:

TODO - THIS IS BROKEN - it doesn't walk up the scopes yet - TODO


Previously tracked in RT#46171."	kjs
4	1.7.0	1226	Increase code coverage of json	library	1.7.0	todo	dukeleto	new	2009-11-07T14:23:07Z	2011-02-25T01:30:49Z	"In the file t/compilers/json/to_parrot.t there is the todo item:

# XXX Need many more tests, exercising all aspects of http://www.json.org/

Previously tracked in RT#44443."	kjs
4	1.7.0	1228	src/pmc/integer.c:  Implement Complex and BigInt RHS values for the pow() functions	core	1.7.0	todo		new	2009-11-07T21:58:04Z	2009-11-07T21:58:04Z	"This ticket tracks an item previously tracked in the RT system at [http://rt.perl.org/rt3/Ticket/Display.html?id=46631 RT #46631].

The following TODO item is found in ''src/pmc/integer.c'':
{{{
1007 =item C<void i_pow_int(INTVAL value)>
1008 
1009 Raises SELF to the C<value>th power.
1010 
1011 TODO:  RT #46631 Complex and BigInt rhs.
1012 
1013 =cut
}}}
In the original RT, Paul Cochrane commented:  ''This applies to all pow()-related functions, and means that the case when the right-hand-side value is complex or a BigInt needs to be implemented.''"	jkeenan
4	1.7.0	1229	src/pmc/fixedpmcarray.pmc:  get_repr() should use freeze/thaw	core	1.7.0	todo		new	2009-11-07T22:07:23Z	2009-11-07T22:07:23Z	"This ticket moves an item previously discussed in the RT system at [http://rt.perl.org/rt3/Ticket/Display.html?id=46673 RT 46673] to the TT system.

{{{
179 =item C<STRING *get_repr()>
180 
181 Returns a string representation of the array contents.
182 RT #46673 implement freeze/thaw and use that instead.
183 
184 =cut
185 
186 */
187 
188     VTABLE STRING *get_string() {
189         return Parrot_str_from_int(INTERP, SELF.elements());
190     }
191 
192     VTABLE STRING *get_repr() {
193         STRING *res    = CONST_STRING(INTERP, ""("");
194         const INTVAL n = VTABLE_elements(INTERP, SELF);
195         INTVAL  i;
196 
197         for (i = 0; i < n; ++i) {
198             PMC * const val = SELF.get_pmc_keyed_int(i);
199             if (i > 0)
200                 res = Parrot_str_append(INTERP, res, CONST_STRING(INTERP, "",     ""));
201 
202             res = Parrot_str_append(INTERP, res, VTABLE_get_repr(INTERP, val    ));
203         }
204 
205         res = Parrot_str_append(INTERP, res, CONST_STRING(INTERP, "")""));
206 
207         return res;
208     }

kid51"	jkeenan
4	1.7.0	1233	t/pmc/exporter.t:  Refactor namespace getting code once make_namespace() has been implemented	testing	1.7.0	todo		new	2009-11-07T22:52:36Z	2010-09-20T13:14:15Z	"This ticket moves into the Trac system discussion previously found in the RT system as [http://rt.perl.org/rt3/Ticket/Display.html?id=46859 RT #46859].

At 4 locations in ''t/pmc/exporter.t'', there are references to the ticket:
{{{
51-    # get a NameSpace PMC for testing
52:    # RT #46859 replace with make_namespace, when implemented
53-    .local pmc ns
54-    ns = get_namespace ['Eponymous']
55-
56-    $P0.'source'(ns)
57-    $P1 = $P0.'source'()
--
82-
83:# RT #46859 replace with make_namespace, when implemented
84-.namespace ['Eponymous']
85-.sub 'Eponymous' :anon
86-.end
87-CODE
88-ok 1 - source() returns PMCNULL upon Exporter init
--
109-    # get a NameSpace PMC for testing
110:    # RT #46859 replace with make_namespace, when implemented
111-    .local pmc ns
112-    ns = get_namespace ['Eponymous']
113-
114-    $P0.'destination'(ns)
115-    $P1 = $P0.'destination'()
--
140-
141:# RT #46859 replace with make_namespace, when implemented
142-.namespace ['Eponymous']
143-.sub 'Eponymous' :anon
144-.end
145-CODE
146-ok 1 - destination() with no args returns destination namespace
}}}
In the original RT, Paul Cochrane commented:  ''Once a make_namespace function/method/thingy is implemented, refactor these
tests to use it.''"	jkeenan
4	1.7.0	1238	SDL tests	none	1.7.0	todo		new	2009-11-08T12:57:25Z	2009-11-08T14:55:47Z	"Some of the SDL examples are still subject of bitrot. Especially the more
complex ones like tetris and minesweeper.

We need tests.

1) Basic tests for all SDL classes and interfaces. There's no GUI involved at
all at this step. Just a test if constructors, methods, or attribute
accessors are working/implemented as specced.

2) The more daunting task of testing full-fledged examples or even SDL
applications. We probably don't have serious GUI tests for a forseeable time,
but we can still test, if an application at least starts properly before
possibly entering the event handler loop.

E.g. sdl/mandel.pir can be started like this:

{{{

./parrot examples/sdl/mandel.pir --quit
}}}


It'll draw the default mandel set picture and terminate immediately.

We can of course mandate that any testable sdl example/app (i.e all ;) provide
processing of:


{{{
./parrot examples/sdl/mandel.pir --test_quit
}}}


or some such, which should spit out a single string ""test_ok\n"" to stdout.
This string result can be tested for with standard TAP means.

3) and future ... testing if the GUI of the app really works

Thanks,
leo

PREVIOUSLY tracked in RT#40367."	kjs
4	1.7.0	1240	Explicitly clearing to be RO?	none	1.7.0	todo		new	2009-11-08T13:03:53Z	2009-11-08T13:03:53Z	"In the file \lib\Parrot\Pmc2c\PMC\RO.pm there is the todo item:

# autogenerate for nonstandard types
# (XXX is this appropriate or do we want them to each be
explicitly cleared to have RO ?)

A decision needs to be made here as to what to do and either remove
the todo item from the code, or implement the explicit clearing.

PREVIOUSLY tracked in RT#44433."	kjs
4	1.7.0	1241	implementation of is_docs_link() needs more thought	none	1.7.0	todo		new	2009-11-08T13:05:50Z	2009-11-08T13:05:50Z	"In lib/Parrot/Docs/File.pm is the todo item:


{{{
# TODO - This needs more thought. I'm trying to work out which files
# it's sensible to link directly to. Suffixes other than txt are a
# problem (for me at least) because the browser thinks it should
# download the file.
}}}

PREVIOUSLY tracked in RT#43681.

The implemenation needs to be improved so that the links to text files
do the Right Thing."	kjs
4	1.7.0	1242	t/pmc/io_iterator.t:  Overhaul tests	testing	1.7.0	todo		new	2009-11-08T17:40:01Z	2010-06-09T03:07:47Z	"This ticket moves into the Trac system issues formerly discussed in '''two''' RT tickets:

1.  [http://rt.perl.org/rt3/Ticket/Display.html?id=46847 RT 46847]:  Replace dummy variable with an io object in iterator tests

In the original ticket Paul Cochrane commented:
{{{
In t/pmc/io_iterator.t there are many todo items which say:

$P99 = 1 # TODO replace with io object

Replace this dummy value with an actual io object.
}}}

2.  [http://rt.perl.org/rt3/Ticket/Display.html?id=46853 RT 46853]:  Setup i/o object with two lines in get_bool (vtable) test

In this ticket PTC commented:
{{{
In t/pmc/io_iterator.t there is the todo item:

# TODO setup i/o object with two lines

This is within the context of the tests for C<get_bool (vtable)>, 
although the reason isn't obvious to me from the code. Hopefully 
someone else can add enlightenment here to help whoever ends up 
working on this ticket.
}}}

I am combining the ticket into one because the issues are all found within the same file.

Do we have I/O iterator objects yet in Parrot?  If so, then someone knowledgeable in them should be able to update these tests rather easily.

Thank you very much.

kid51"	jkeenan
4	1.7.0	1251	handle ARM mixed-endian doubles	core	1.7.0	todo		new	2009-11-09T13:09:52Z	2010-09-20T00:48:03Z	"This ticket moves discussion into Trac from [http://rt.perl.org/rt3/Ticket/Display.html?id=37461 RT #37461].

Leopold Toetsch opened the ticket in October 2005:

Parrot bytecode (PBC) is designed to be portable. Therefore we need
some code to convert ARM-generated PBCs to machine-native doubles and
ARM architectures must be able to read other already supported float
types.

A PBC header has a 'floattype' field, which identifies known FLOATVAL
layouts.

We have currently:

0 ... 8 byte IEEE double
1 ... 12 byte IEEE double (both according to endianess)

We need additionally (at least and AFAIK):

2 ... 8 byte (ARM) mixed-endian

which is according to Nicholas a LE double with 2 BE arranged words.

And Nicholas Clark commented:

and totally legal IEEE.

(Mozilla thought that it could cheat. And it was wrong)

The mixed endian is the old soft float, as I understand it, and will be
replaced by something less surprising, but that's a C ABI change.

... and that's where things stand."	jkeenan
4	1.7.0	1259	src/debug.c:  Correctly handle comparisons of PMCs with constants	core	1.7.0	todo		new	2009-11-10T00:59:58Z	2010-08-29T15:23:51Z	"This ticket moves into Trac discussion of an issue originally discussed in RT at [http://rt.perl.org/rt3/Ticket/Display.html?id=46123 RT #46123].

In that RT, Paul Cochrane noted this TODO item in the file in question:
{{{
1545 PARROT_CAN_RETURN_NULL
1546 PDB_condition_t *
1547 PDB_cond(PARROT_INTERP, ARGIN(const char *command))
1548 {
...
1694         else if (condition->type & PDB_cond_pmc) {
1695             /* RT #46123 Need to figure out what to do in this case.
1696              * For the time being, we just bail. */
1697             Parrot_io_eprintf(
                    interp->pdb->debugger, ""Can't compare PMC with constant\n"");
1698             mem_sys_free(condition);
1699             return NULL;
1700         }
}}}

"	jkeenan
4	1.8.0	1316	t/pmc/timer.t:   add scheduler features to JIT	testing	1.8.0	todo		new	2009-11-21T13:29:26Z	2010-08-29T15:58:54Z	"I am transferring into Trac what was [http://rt.perl.org/rt3/Ticket/Display.html?id=49718 RT #49718].  That RT was closed when our JIT was deprecated, but a reference to RT #49718 remained in a `TODO`-ed test in ''t/pmc/timer.t''.  That `TODO` must be tracked in a Trac ticket.

In the original RT, chromatic noted:  ''""At least four tests fail with the new scheduler under the JIT ...  
I believe that this is because the JIT core doesn't emit instructions to call `Parrot_cx_handle_tasks()` often enough. These tests probably won't pass until this happens.""''

kid51"	jkeenan
4	1.8.0	1318	./t/pmc/complex.t:  Can SKIP-ped tests be unskipped?	testing	1.8.0	todo		new	2009-11-21T13:55:23Z	2009-12-02T13:30:37Z	"A variety of issues were discussed in [http://rt.perl.org/rt3/Ticket/Display.html?id=59630 RT #59630] and the ticket was resolved.  However, ''t/pmc/complex.t'' still has 3 `SKIP` tests where the skip message cites RT #59630.  This must now be followed in Trac.

Can the people who participated in the original RT take a look and see whether the tests can be unskipped?

Thank you very much.

kid51"	jkeenan
4	1.8.0	1320	./t/pmc/multidispatch.t:  Can test be un-TODO-ed?	testing	1.8.0	todo		new	2009-11-21T14:22:30Z	2010-08-29T16:07:37Z	"In the file in question, we see:
{{{
 726 pir_output_is( <<'CODE', <<'OUT', ""MMD on PMC types - Any"", todo => 'RT #41     374' );
 727 
 728 .sub main :main
 729     $P0 = new ['String']
 730     $P0 = ""ok 1\n""
 731     $P1 = new ['PerlInt']
 732     $P1 = ""ok 2\n""
 733     p($P0)
 734     p($P1)
 735     $P0 = new ['PerlInt']
 736     $P0 = 42
 737     p($P0)
 738     $P0 = new ['PerlInt']
 739     $P0 = 43
 740     q($P0)
 741 .end
}}}
[http://rt.perl.org/rt3/Ticket/Display.html?id=41374 RT #41374] was resolved without dealing with the ''todo'' in the test."	jkeenan
4	1.8.0	1323	t/compilers/imcc/syn/clash.t:  Is test complete?	imcc	1.8.0	todo	plobsing	new	2009-11-21T14:46:37Z	2010-10-16T22:47:18Z	"In the file in question we see this:
{{{
173 pir_error_output_like( <<'CODE', <<'OUTPUT', 'new with a native type, no str    ing constant', todo => 'RT #51662 not done yet' );
174 .sub test :main
175         $P1 = new INTVAL
176     print ""never\n""
177     end
178 .end
179 CODE
180 /error:imcc:syntax error, unexpected IDENTIFIER \('INTVAL'\)/
181 OUTPUT
}}}
[http://rt.perl.org/rt3/Ticket/Display.html?id=51662 RT #51662] was resolved, but the 'todo' reference was left in the test file.

This must be tracked in Trac."	jkeenan
4	1.9.0	1389	[LHF] Add tests for Plumage's Util.nqp	plumage	1.9.0	todo	japhb	new	2009-12-23T02:04:12Z	2009-12-26T06:02:07Z	"Plumage's test suite is sorely lacking, and I could really use help from anyone with basic NQP skills to greatly expand it.  Looking for some low hanging fruit to help Plumage and Parrot?  Here's some.  `:-)`

`t/03-util.t`, which tests `src/lib/Util.nqp`, is the first test file that should get this attention, as `Util.nqp` is used throughout the project -- and in fact some or all of it may eventually move to be part of NQP-rx.

The Plumage repository is at `http://gitorious.org/parrot-plumage/parrot-plumage` .  There are basic layout and naming guidelines in `t/docs/hacking/add-tests.pod` (it's short, don't worry).

If you're a Plumage committer, just go ahead and commit.  If you want to be one, contact `japhb` on `#parrot` to get your commitbit.  Otherwise, patches attached to this ticket work just as well.

THANKS IN ADVANCE!
"	japhb
4	1.9.0	1391	[TODO] Generate per-parrot-build GUID/UUID, stored in e.g. interpinfo	build	1.9.0	todo		new	2009-12-23T04:09:14Z	2009-12-23T04:09:14Z	"In order for Plumage to know that Parrot has been upgraded by some external method (manual build, system packages, binary installer, etc.), each build of parrot (note: build, *not* configure) should have a GUID/UUID that is readable from NQP/PIR -- this UUID might be available in interpinfo for instance.
"	japhb
4	2.0.0	1437	pbc_dump: don't skip varargs words in -d mode	tools	2.0.0	todo		new	2010-02-12T23:16:25Z	2011-07-09T01:42:32Z	"See #1425 for an example of this, but when pbc_dump is running in -d mode (disassemble opcodes), it silently skips over varargs parameters to the various call support ops. An example:
{{{
 0070:  00000023 00000022                                     set_args_pc
 0076:  00000024 0000000f                                     get_results_pc
}}}
But the pbc contains:
{{{
 0070:  00000023 00000022 00000001 0000001e 00000020 00000026 00000024 0000000f 
}}}
The varargs parameters (001, 01e, 020, 026) were silently omitted from the output in -d mode.
 
The best possible scenario would be to decode the op sufficiently to identify the meanings of the parameters -- this is P0, that is Constant-123, that is a string, etc. 
 
But even just including the data in-line would be helpful:
{{{
 0070:  00000023 00000022                                     set_args_pc
     :      00000001 0000001e                                   -- varargs data
     :      00000020 00000026                                   -- varargs data
 0076:  00000024 0000000f                                     get_results_pc
}}}
"	Austin_Hastings
4	2.0.0	1438	pbc_dump: Indicate sub/method boundaries in -d mode	tools	2.0.0	todo		new	2010-02-12T23:25:04Z	2011-07-09T01:44:58Z	"The disassembled output of pbc_dump run with -d is a long string of hex numbers and opcodes. To determine where a sub starts or ends requires a trip to the constants table, where the Sub constants have their starting and ending offsets recorded.
 
Please modify pbc_dump so that when dumping it emits indicators for the beginning/end of subs:
{{{
 0000:  000004c8 00000001 00000009 00000001                   get_hll_global_p_pc_sc
 0004:  00000021 00000001                                     capture_lex_p
 0006:  000004c8 00000001 00000009 00000001                   get_hll_global_p_pc_sc
 000a:  00000021 00000001                                     capture_lex_p
 000c:  00000023 00000006                                     set_args_pc
 000e:  00000024 00000003                                     get_results_pc
 0011:  0000001c 00000001                                     invokecc_p
 0013:  00000026 00000003                                     set_returns_pc
 0016:  00000020                                              returncc
 0017:  00000384 00000003 0000000b                            set_p_pc
 001a:  00000385 00000002 00000003                            set_p_p
 001d:  00000009 00000011                                     load_bytecode_sc
 001f:  000001d1 0000001b                                     say_sc
 0021:  000004c4 00000000 00000014                            get_hll_global_p_sc
 0024:  00000023 00000018                                     set_args_pc
 0028:  00000024 00000006                                     get_results_pc
 002a:  000002c4 00000000 0000001a                            callmethodcc_p_sc
 002d:  000004ce 00000001 0000001d 00000014                   get_root_global_p_pc_sc
 0031:  00000023 00000015                                     set_args_pc
 0037:  00000024 00000006                                     get_results_pc
 0039:  000002c4 00000001 0000000f                            callmethodcc_p_sc
 003c:  00000026 00000006                                     set_returns_pc
 003e:  00000020                                              returncc
 003f:  000004c8 00000002 00000025 00000023                   get_hll_global_p_pc_sc
 0043:  00000021 00000002                                     capture_lex_p
 0045:  00000384 00000000 00000039                            set_p_pc
 0048:  00000021 00000000                                     capture_lex_p
 004a:  000004c8 00000002 00000025 00000023                   get_hll_global_p_pc_sc
 004e:  00000021 00000002                                     capture_lex_p
 0050:  00000023 00000006                                     set_args_pc
 0052:  00000024 00000003                                     get_results_pc
 0055:  0000001c 00000002                                     invokecc_p
 0057:  00000026 00000003                                     set_returns_pc
 005a:  00000020                                              returncc
}}}
could become:
{{{
 ----: Begin sub '_block11' :subid('')
 0000:  000004c8 00000001 00000009 00000001                   get_hll_global_p_pc_sc
 0004:  00000021 00000001                                     capture_lex_p
 0006:  000004c8 00000001 00000009 00000001                   get_hll_global_p_pc_sc
 000a:  00000021 00000001                                     capture_lex_p
 000c:  00000023 00000006                                     set_args_pc
 000e:  00000024 00000003                                     get_results_pc
 0011:  0000001c 00000001                                     invokecc_p
 0013:  00000026 00000003                                     set_returns_pc
 0016:  00000020                                              returncc
 ----: End sub '_block11' :subid('')
 ----: Begin sub '' :subid('post15')
 0017:  00000384 00000003 0000000b                            set_p_pc
 001a:  00000385 00000002 00000003                            set_p_p
 001d:  00000009 00000011                                     load_bytecode_sc
 001f:  000001d1 0000001b                                     say_sc
 0021:  000004c4 00000000 00000014                            get_hll_global_p_sc
 0024:  00000023 00000018                                     set_args_pc
 0028:  00000024 00000006                                     get_results_pc
 002a:  000002c4 00000000 0000001a                            callmethodcc_p_sc
 002d:  000004ce 00000001 0000001d 00000014                   get_root_global_p_pc_sc
 0031:  00000023 00000015                                     set_args_pc
 0037:  00000024 00000006                                     get_results_pc
 0039:  000002c4 00000001 0000000f                            callmethodcc_p_sc
 003c:  00000026 00000006                                     set_returns_pc
 003e:  00000020                                              returncc
 ----: End sub '' :subid('post15')
 ----: Begin sub '_block13' :subid('')
 003f:  000004c8 00000002 00000025 00000023                   get_hll_global_p_pc_sc
 0043:  00000021 00000002                                     capture_lex_p
 0045:  00000384 00000000 00000039                            set_p_pc
 0048:  00000021 00000000                                     capture_lex_p
 004a:  000004c8 00000002 00000025 00000023                   get_hll_global_p_pc_sc
 004e:  00000021 00000002                                     capture_lex_p
 0050:  00000023 00000006                                     set_args_pc
 0052:  00000024 00000003                                     get_results_pc
 0055:  0000001c 00000002                                     invokecc_p
 0057:  00000026 00000003                                     set_returns_pc
 005a:  00000020                                              returncc
 ----: End sub '_block13' :subid('')
}}}

Note that a hypothetical future optimizer might arrange the bytecode so that subs are not discrete. Marking beginnings and endings separately should handle this."	Austin_Hastings
4	2.0.0	1439	pbc_dump: Mark branch targets in -d mode	tools	2.0.0	todo		new	2010-02-12T23:38:44Z	2011-07-09T01:44:34Z	"pbc_dump -d shows opcodes but does not indicate branch targets:
{{{
 012b:  0000001b 00000001 00000046                            unless_p_ic
 012e:  00000348 00000002 00000001                            shift_p_p
 0131:  00000023 00000004                                     set_args_pc
 0134:  00000024 00000004                                     get_results_pc
 0137:  000002c4 00000002 00000044                            callmethodcc_p_sc
 013a:  00000367 00000009 00000007                            iter_p_p
 013d:  0000001b 00000009 ffffffee                            unless_p_ic
 0140:  00000347 00000001 00000009                            shift_s_p
 0143:  000003d1 00000003 00000007 00000049                   set_p_p_kc
 0147:  000002d5 00000000 00000003 00000043                   isa_i_p_sc
 014b:  00000014 00000000 fffffff2                            if_i_ic
}}}

While backwards branching means that marking branch targets in the output stream as labels would be a two pass operation, it should be possible to do the match and indicate the target offset as part of the opcode:

{{{
 012b:  0000001b 00000001 00000046                            unless_p_ic 0171
 ...
 013d:  0000001b 00000009 ffffffee                            unless_p_ic 012b
 ...
 014b:  00000014 00000000 fffffff2                            if_i_ic 013d
}}}

Note: I make no guarantee those offsets are right."	Austin_Hastings
4	2.0.0	1442	Sub PMC should support getattribute	none	2.0.0	todo		new	2010-02-13T15:57:27Z	2010-03-23T10:19:11Z	"The Sub PMC identifies itself, under `class`, as being an instance of the Class class. 

Querying the Sub's Class for available attributes (`$class.inspect('attributes')`) returns a hash just chock full of goodness.

Sadly, attempting to request those attribute from the Sub doesn't work.

I believe that Sub should deliver on its promises, and provide the getattribute interface.

Alternatively, if Sub is going to require `inspect` to fetch the data, then the PMC class should not report those fields as attributes."	Austin_Hastings
5	2.0.0	1418	t/src/checkdepend.t should verify PIR/PBC dependencies	testing	2.0.0	todo	cotto	new	2010-01-26T02:53:42Z	2011-08-27T17:46:37Z	"We need to verify our .pir build dependencies in the same way way we do our .c deps.

(Some of this code was in the original version in {{{tools/dev/checkdepend.pl}}} but was removed as it was not fully baked.

Current version is testing (and passing) all c deps.
"	jkeenan
4	2.1.0	1476	t/compilers/pct/past.t:  Complete desired tests	testing	2.1.0	todo		new	2010-02-24T02:11:41Z	2010-06-11T23:40:43Z	"Two `TODO` comments were being flagged by ''perlcritic.t'' and are here being converted to tickets:
{{{
 75 ## TODO: test that return() is taken from the type 
       of value when not specified
 76 
 77 ## TODO: check the rest of the PAST::Var attributes
}}}"	jkeenan
4	2.1.0	1479	Improve random-ness of Parrot_range_rand	testing	2.1.0	todo		new	2010-02-25T00:15:48Z	2010-09-17T01:59:46Z	"Parrot_range_rand(min, max, ignored) returns a number between min and max, inclusive.
 
However, it does so by computing a floating point number, multiplying that be the integer difference, and adding it to the min.
 
The result of this, in C, is that truncating conversion introduces a bias away from max.
 
Consider a call `Parrot_range_rand(0, 10, 0)` - the result is min (0 in our case) plus (max-min) (10-0, or 10) times a random number in the range 0.0 ... 1.0.
 
But because of truncating conversion, 10*(rand) will convert to 0 about 10% of the time (0.000 ... 0.099), 1 about 10% of the time (0.100 ... 0.199), ..., and 9 about 10% of the time (0.900 ... 0.999). About 0% of the time (there is a change of hitting 1.0, but floats have a ''lot'' of decimal places...) the result will be 10.
"	Austin_Hastings
4	2.11.0	1962	:instanceof('Foo') is untested	imcc	2.11.0	todo		new	2011-01-13T22:08:17Z	2011-05-24T03:28:00Z	"imcc has a little-known sub modifier that causes a Sub to be created as an alternate PMC type.  The one place it's documented, PDD19, contains the following description:

The C<:instanceof> pragma is an experimental pragma that creates a sub as a PMC type other than 'Sub'.  However, as currently implemented it doesn't work well with C<:outer> or existing PMC types such as C<Closure>, C<Coroutine>, etc.

This needs to be added to DEPRECATED.pod as an officially experimental feature and, more importantly, needs to be tested."	cotto
4	2.3.0	1615	t/pmc/class.t: implement todo-ed item: classes and methods	core	2.3.0	todo		new	2010-05-08T12:32:00Z	2010-05-10T09:20:04Z	"Creating a ticket to track this todo-ed item:
{{{
t/pmc/class.t-275-t_class_meth:
t/pmc/class.t:276:    todo(0, 'add_method() invoking method added to class works', ""classes don't seem to call methods yet"")
t/pmc/class.t-277-
}}}"	jkeenan
4	2.3.0	1617	t/library/p6object.t: implement todo-ed item:  ResizablePMCArray_obj	library	2.3.0	todo		new	2010-05-08T13:02:01Z	2010-05-08T13:02:01Z	"Creating a ticket to track this todo-ed item:
{{{
t/library/p6object.t-140-    $I0 = $P0.'isa'(rpaobj, listproto)
t/library/p6object.t:141:    todo($I0, '< ResizablePMCArray_obj.^isa(List) >', 'UNIMPL?')
t/library/p6object.t-142-
}}}
"	jkeenan
4	2.3.0	1618	t/oo/metamodel.t:  implement todo-ed item:  tail attribute type	core	2.3.0	todo		new	2010-05-08T13:05:37Z	2010-05-08T13:05:37Z	"Creating a ticket to track this todo-ed item:
{{{
t/oo/metamodel.t-54-    $I0 = iseq $S1, 'Str'
t/oo/metamodel.t:55:    todo($I0, ""tail attribute has a type"", ""not implemented"")
t/oo/metamodel.t-56-#    is($S1,'Str', ""tail attribute has a type"")
}}}"	jkeenan
4	2.3.0	1627	tests for Test::More::done_testing	testing	2.3.0	todo		new	2010-05-10T13:40:28Z	2010-05-10T13:42:05Z	Write tests for this new function, added in r46472	dukeleto
4	2.5.0	1683	Key clone and set_pmc are broken	none	2.5.0	todo		new	2010-06-19T12:26:35Z	2010-06-19T12:46:19Z	"The VTABLEs clone and set_pmc in the Key PMC uses the function key_set_pmc, and that function just throws with a message referring to a nonexistent slice.pmc and has a comment: ""XXX leo - what for is this indirection?""

The key_set_pmc isn't used anywhere else and its name doesn't follow the naming convention, so is already deprecated. I'm going to delete it and replace its usage in Hash with throwing an exception with a message referring this ticket.
"	NotFound
4	2.5.0	1696	Pg.pir should supply error messages	library	2.5.0	todo		new	2010-06-29T09:31:08Z	2010-06-29T09:31:08Z	"The Pg.pir library should supply the error messages that postgres provides.

It might be enough to encapsulate PQerrorMessage as a .'last_error' method."	moritz
4	2.6.0	1727	Rationalize get/set opcodes	none	2.6.0	todo		new	2010-08-02T17:38:26Z	2010-08-02T17:38:26Z	"There are opcodes called: 
{{{
   get_class
   getattribute
   getprop
}}}
with (some) corresponding setters.

The signatures are:
{{{
   getattribute $PMC, 'name'
   getprop 'name', $PMC
}}}

I propose these be made rational by:

  1. Creating parallel opcodes with consistent names and signatures.
  2. Deprecating the irrational opcodes.
  3. Removing the irrational opcodes at the end of a deprecation cycle.

I propose that the rational form be:
  a. fully spelled out;
  b. with underscores;
  c. pmc, then name.

Thus:
{{{
   $P0 = get_class $PMC
   $P1 = get_attribute $PMC, 'attr'
   $P2 = get_property $PMC, 'prop'
}}}

and likewise for the setters, and any others I may have missed."	Austin
4	2.8.0	1805	GC threshold and other values need to be set during configuration	GC	2.8.0	todo		new	2010-09-26T14:38:20Z	2010-11-22T11:23:11Z	"Since the merge of the gc_massacre branch into trunk at r49269, we have experienced a number of problems during `make` and `make test`.  These have been discussed [http://news.gmane.org/find-root.php?message_id=%3ci7ku3k%24a2v%241%40dough.gmane.org%3e on parrot-dev] as well as on #parrot.  In the course of this discussion, attention was called to the fact that certain values affecting garbage collection are hard-coded deep inside ''.c'' source code files.

As a general rule, it is not a good idea to bury hard-coded values deep inside source code.  They should be made available for determination by the user during the configuration process.  We need to pull these values out of source code and make them more visible during Parrot configuration.

Here's a GC-amateur's list of GC-related values which appear to be hard-coded into our source code:
{{{
./src/gc/gc_ms2.c:626:        self->gc_threshold = 256 * 1024 * 1024;
./src/main.c:429:                if (interp->gc_threshold > 1000) {

src/gc/alloc_resources.c

 26 #define RECLAMATION_FACTOR 0.20
 27 #define WE_WANT_EVER_GROWING_ALLOCATIONS 0
 28 
 29 /* show allocated blocks on stderr */
 30 #define RESOURCE_DEBUG 0
 31 #define RESOURCE_DEBUG_SIZE 1000000
...
280 static void
281 check_fixed_size_obj_pool(ARGIN(const Fixed_Size_Pool *pool))
282 {
283     ASSERT_ARGS(check_fixed_size_obj_pool)
284     size_t total_objects;
285     size_t last_free_list_count;
286     Fixed_Size_Arena * arena_walker;
287     size_t free_objects;
288     size_t count;
289     GC_MS_PObj_Wrapper * pobj_walker;
290 
291     count = 10000000; /*detect unendless loop just use big enough number*/
...
328     count = 10000000;
...
357 static void
358 check_var_size_obj_pool(ARGIN(const Variable_Size_Pool *pool))
359 {
360     ASSERT_ARGS(check_var_size_obj_pool)
361     size_t count;
362     Memory_Block * block_walker;
363     count = 10000000; /*detect unendless loop just use big enough number*/
}}}
We currently have one configuration step, `auto::gc`, which configures configuration.  But since we currently only offer users one garbage collection system, this step (found in ''config/auto/gc.pm'' doesn't do much other than to identify ''src/gc/alloc_resources.c'' as the location where GC is determined.  `auto::gc` currently conducts no C probes of the user's machine.  It might as well be `init::gc` and its status as an 'automatic probe' configuration step merely reflects legacy settings.

(To recap how configuration works (oversimplified): `init::` steps take configuration values from Perl 5 `%Config` or other hard-coded locations; `inter::` steps work similarly but, on request, will offer the configurer several options; `auto` steps calculate settings, largely based on running C probes of the user's machine, that should not need user intervention; and `gen` steps take all the values discovered in the first three kinds of steps and writes Makefiles and other files needed for build and records the values in ''lib/Parrot/Config/Generated.pm'' and ''config_lib.pir''.)

The hard-coded values listed above should, at least in certain cases, be user-configurable.  That means that the configuration of garbage collection needs to be moved to some combination of `init::`, `inter::` and `auto::` steps.  For example, if we determine that on machines with 'small' physical memory the value of `gc_threshold` needs to be set an order of magnitude smaller than 256M, then we need to probe the machine for the size of its physical memory, then calculate an appropriate value for `gc_threshold`, then provide the user the option of confirming/altering this choice at a command-line prompt.

I can't yet propose specific modifications of the configuration system to handle GC values.  But I am convinced that some or all of these values need to be extracted from ''.c'' source code files and made explicit during configuration.

Thank you very much.

kid51"	jkeenan
5	2.8.0	1830	docs.parrot.org should render POD in files that don't end in .pod	docs	2.8.0	todo	brianwisti	new	2010-10-16T22:31:56Z	2011-03-27T14:23:55Z	For instance, the POD for the String::Utils PIR library is not on docs.parrot.org	dukeleto
4	2.9.0	1796	PIR heredocs and encodings	core	2.9.0	todo		new	2010-09-21T22:08:55Z	2010-09-23T02:20:05Z	"Currently, there is no way to specify the encoding of a heredoc in PIR. Every heredoc is converted to a string in the default ASCII encoding, but 8-bit chars a silently accepted. There are two tests that rely on that behavior:

{{{
t/compilers/imcc/syn/objects.t
t/library/mime_base64.t
}}}

It should be possible to create a heredoc with an encoding like this:

{{{
$S0 = <<utf8:""EOF""
utf8 text here
EOF
}}}
"	nwellnhof
4	3.6.0	2174	Sharpen Support Policy for Windows, Then Implement It!	docs	3.6.0	todo		new	2011-08-11T01:49:23Z	2011-08-17T02:08:17Z	"This ticket will track work on a concept which was discussed at the online Parrot Developers Summit on July 30 2011 but which did not receive enough support to be designated as a roadmap goal.

The rationale for sharpening our support policy for Parrot on Win32 was presented [http://lists.parrot.org/pipermail/parrot-dev/2011-July/006098.html in this post to parrot-dev], so I won't repeat it here.

Here is the action proposal that was presented at the PDS:

1. Establish a team of Parrot developers and users to work on this 
Roadmap Goal.  The team would be tasked with:

* Interviewing current Parrot developers and users who work on Windows to determine their needs and preferences.  (Yes, such people do exist!)

* Interviewing professional software developers who work in the Windows environment and who currently have no connection with Parrot to develop an understanding of what it would take for them to first smoke-test Parrot on Windows and later undertake Parrot/HLL development on Windows. 

Colloquially:  What would it take to get them into the Parrot showroom and have them kick the tires?

* Examine Smolder reports to see which Windows configurations get to PASS more often than others.

2. Develop a report to the Parrot project as a whole:

* Recommending Windows configurations we should target for testing.

* Recommending ways in which we can encourage Windows developers to 
explore Parrot.

3. At the very least, implement Smolder reports from recommended 
configurations.

Thank you very much.

kid51"	jkeenan
4	3.6.0	2177	Access system properties	configure	3.6.0	todo		new	2011-08-11T18:13:54Z	2011-08-12T00:22:18Z	"To achieve portable applications we need a set of system properties.
[[BR]]
[[BR]]
The most important ones are :[[BR]]
- User home directory[[BR]]
- User information (name ...)[[BR]]
- File path separator[[BR]]
- Temporary directory[[BR]]
- System locale[[BR]]
- System encoding[[BR]]
- System time zone[[BR]]
- System line separator (e.g., ""\n"" on UNIX, ""\r\n"" for Windows)[[BR]]
- Name of the operating system[[BR]]
- System architecture i386, x64 ...[[BR]]
"	Eclesia
4	3.8.0	2195	TODO: integrate ByteBuffer better with FileHandle and Socket	none	3.8.0	todo		new	2011-09-22T12:16:32Z	2011-09-22T12:16:32Z	"It would be nice if the ByteBuffer PMC was better integrated with other subsystems. In particular

 * the FileHandle has a read_bytes method, but no corresponding write_bytes (or .print() or whatever). Direct binary write operations on FileHandle would be most welcome.
 * the Socket PMC would benefit from a read_bytes method too (or return a ByteBuffer from read(), but that's not backwards compatible)
 * likewise writing a ByteBuffer to a Socket"	moritz
2	master	2112	Improved documentation about NCI	docs	master	todo		new	2011-05-15T00:20:25Z	2011-05-15T00:20:25Z	"We have a dearth of documentation about NCI and related mechanisms. We need more documentation about NCI (including recent changes to the system) and the way NCI works with PMC types like Ptr (and friends) and StructView.

We also need to review and update PDD16."	whiteknight
3	master	2023	Improve triggering of GC in GMS.	GC	master	todo		new	2011-02-20T10:23:43Z	2011-02-20T14:08:03Z	"Hello.

Currently triggering of GC in GMS GC is too naive and should be improved.

Obvious things to implement:
1. Triggering of nursery collection should be dynamically adjusted based on pause time and GC pressure.
2. Triggering of older generations can be based on amount of allocated memory in collection.

-- 
Bacek."	bacek
3	master	2128	Ability to build NCI thunks with Distutils	library	master	todo		new	2011-06-01T15:57:10Z	2011-06-01T15:57:10Z	"The ability for external projects to build their own NCI thunk libraries for adding custom signatures to Parrot's NCI is a key step in the roadmap for the NCI system. I'm sure this capability exists. However, I cannot find a way to do it that makes sense to me.

The ability to create new NCI thunks for extension projects should be easy. The process needs to be documented, and we should add the functionality to our current build infrastructure Distutils. By adding it to distutils, all projects which currently rely on that library for building will be able to make use of custom NCI thunks for their projects.

This is becoming a priority to help with GSoC."	whiteknight
4	master	1284	Integer PMC missing math methods	core	master	todo	whiteknight	assigned	2009-11-17T02:58:11Z	2011-05-16T16:58:13Z	"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"	coke
4	master	1650	Parrot needs Date/DateTime Object	none	master	todo	whiteknight	new	2010-05-20T15:40:52Z	2011-11-23T19:05:37Z	PL/Parrot would like to have a Date and DateTime object. This would be similar to http://github.com/moritz/Date but implemented as PMC or dynpmc, probably in PIR.	dukeleto
4	master	1880	Parrot_new should not need to be passed previously-created interps	core	master	todo	dukeleto	new	2010-12-03T18:08:34Z	2011-10-20T17:17:57Z	"Currently Parrot_new requires being passed in the 1st interp that was ever created to create subsequent interpreter objects.

In PL/Parrot, many interps must be created, some are trusted, some are not. But they all need to know about the 1st interp that was created, which, from a security standpoint, is suboptimal. Here is a snippet from PL/Parrot's plparrot.c :

{{{
    untrusted_interp = Parrot_new(NULL);

    /* Must use the first created interp as the parent of subsequently created interps */
    trusted_interp = Parrot_new(untrusted_interp);

}}}
"	dukeleto
4	master	2135	Parrot_compile_file should take a compiler argument	none	master	todo		new	2011-06-13T01:46:35Z	2011-06-13T01:46:35Z	"Parrot_compile_file assumes libparrot has a PASM or PIR compreg registered, and uses one of those to compile. Don't do this. Parrot_compile_file should take a PMC* argument for a compiler object to use, and the user should be able to either specify a default compiler to use, or should be able to set up a mapping between file-extension/mime-type -> compiler at the global/interpreter level.

Better yet, create a new function with a better name and the new signature, deprecate Parrot_compile_file, and migrate over time."	whiteknight
5	master	858	HLL exception handling	core	master	todo	whiteknight	new	2009-07-20T01:52:53Z	2011-01-10T14:45:48Z	"This TT replaces two tickets originally opened in the RT system:  [http://rt.perl.org/rt3/Ticket/Display.html?id=36261 HLL exception handling] and [http://rt.perl.org/rt3/Ticket/Display.html?id=47966 pdd23 doesn't list exception;death as a standard exception].  I am combining the two and moving them to Trac at Tene's suggestion.

Original description (RT 36261) by Coke (probably from an older TODO file):[[BR]]
'''Document how HLL languages can implement their own exception hierarchy, and perhaps define how they can have parrot reformat their exception output for them.'''

Original description (RT 49766) by pmichaud:[[BR]]
'''In the list of ""Standard Parrot Exceptions"" in pdd23, there's no item given for ""exception;death"" even though it's mentioned as part of the ""die"" opcode earlier in the text.  The same is true for the ""exception;exit"" type thrown by the exit opcode.  Also, ""die"" and ""exit"" aren't listed in the ""Opcodes that Throw Exceptions"" section a bit later in pdd23.'''

In the latter RT, Klaus-Jan Stol subsequently contributed a documentation patch, but Patrick Michaud continued:

'''... how exactly does one use `exception;death`, `exception;exit`, and the other exception types from PIR? I see them mentioned throughout pdd23, but I've never actually seen an example of how these constants (are they constants?) might appear in actual code, whether it's PIR, C, or otherwise.  The only ""types"" I'm aware of for exceptions are the severity values and exception type values in ''include/parrot/exceptions.h'' and ''runtime/parrot/include/except_*.pasm'', and none of these seem to have any real correspondence to the ""exception types"" given in pdd23.

Let's see if we can make some progress on these issues in the context of this ticket.

Thank you very much.

kid51"	jkeenan
5	master	974	Mark publicly exposed functions in src/call/context.c with PARROT_EXPORT tag	core	master	todo	whiteknight	new	2009-09-03T12:24:32Z	2011-05-22T01:43:19Z	"Hello.

There is some functions in src/call/context.c which marked as PARROT_EXPORT but shouldn't be exposed as PARROT_API. For example Parrot_pcc_get_context_struct must not be in public API, etc. Functions exposed as public should be marked as PUBLIC_API to avoid and confusion between internals and exposed API for 3rd party developers.

-- 
Bace"	bacek
7	master	560	When we can't find a library, we shouldn't silently continue and give weird errors later	core	master	todo	whiteknight	assigned	2009-04-17T09:47:54Z	2011-07-09T11:24:11Z	In particular, I'd argue that we should quit with an error, and show the path we searched.  	wayland
3	trunk	1801	Properly merge pools in GC MS2 when child interpreter destroyed.	GC	trunk	todo	bacek	new	2010-09-24T01:10:15Z	2010-09-24T03:52:47Z	Currently GC MS2 doesn't properly clean up in finalize mode due absence of merging pools functionality. It should be implemented.	bacek
4	trunk	313	ignore print -0 test errors on win32	testing	trunk	todo		new	2009-02-11T09:07:06Z	2010-08-03T21:58:46Z	"The win32 msvcrt has a special limitation not to print -0 as -0, instead it prints 0.

openbsd seems to have the same problem. cygwin is not affected, since it uses newlib, which is similar to the glibc in this regard.

For now I fixed the failing tests, but there should be a workaround.

{{{
t\pmc\complex.t:
not ok 380 - sinh of 0-2i
# Have: 0.000000-0.909297i
# Want: -0.000000-0.909297i
not ok 381 - sinh of 0+2i
# Have: 0.000000+0.909297i
# Want: -0.000000+0.909297i

t\pmc\float.t:
not ok 23 - neg 0
#   Failed test 'neg 0'
#   at t\pmc\float.t line 509
#                   '0'
#     doesn't match '/^-0/
# '

t\op\arithmetics.t:
not ok 7 - turn a native number into its negative
#   Failed test 'turn a native number into its negative'
#   at t\op\arithmetics.t line 175.
#          got: '0
# 0
# -123.456789
# 123.456789
# 0
# 0
# -123.456789
# 123.456789
# '
#     expected: '-0
# 0
# -123.456789
# 123.456789
# -0
# 0
# -123.456789
# 123.456789
# '
}}}

The internal numeric representation seems not to be affected.
In detail, this patch does not help. It's just the printer.
{{{
Index: parrot-svn/src/ops/math.ops
===================================================================
--- parrot-svn.orig/src/ops/math.ops
+++ parrot-svn/src/ops/math.ops
@@ -774,7 +774,17 @@ inline op neg(inout INT) :base_core {
 }
 
 inline op neg(inout NUM) :base_core {
+#ifdef WIN32
+  /* The msvcrt is broken for neg -0.0 */
+  if ($1 == -0.0) {
+    $1 = -0.0;
+  }
+  else {
+    $1 = - $1;
+  }
+#else
   $1 = - $1;
+#endif
 }
 
 inline op neg(invar PMC) :base_core {
@@ -786,7 +796,17 @@ inline op neg(out INT, in INT) :base_cor
 }
 
 inline op neg(out NUM, in NUM) :base_core {
+#ifdef WIN32
+  /* The msvcrt is broken for neg -0.0 */
+  if ($2 == -0.0) {
+    $1 = -0.0;
+  }
+  else {
+    $1 = - $1;
+  }
+#else
   $1 = - $2;
+#endif
 }
 
 inline op neg(out PMC, invar PMC) :base_core { 
}}}
"	rurban
4	trunk	339	msvc+mingw detection	configure	trunk	todo		new	2009-02-15T10:46:27Z	2010-03-02T15:34:41Z	"With r36750 I had to fix one more MSWin32 compiler detection (uppercase allowed), but there are several more instances of compiler special cases in the makefile templates and tests.

My proposal is to get that right in the first place, config/init/hints/mswin32.pm, and store it in the config as '''msvc''', '''mingw''', and maybe also icc or borland keys.

Use these keys in the makefile templates and testsuite then.

cc=""ccache cl"" for example might not be safe also.

The patch in TT #312 already contains the mingw and msvc keys, as they are the only one currently used."	rurban
4	trunk	971	"Add ""current"" versions of Parrot_pcc_get_foo and Parrot_pcc_set_foo functions"	core	trunk	todo		new	2009-09-03T12:12:25Z	2010-10-26T02:53:13Z	"Hello.

Many (or all for consistency sake) of Parrot_pcc_get_foo and set_foo functions can have Parrot_pcc_get_current_foo counterparts which will use current Context of Interp. This will simplify code which use CURRENT_CONTEXT macro

-- 
Bacek"	bacek
4	trunk	1032	Document and test available HLL Mappings	docs	trunk	todo		new	2009-09-21T03:59:04Z	2009-09-21T05:13:41Z	"See [http://rt.perl.org/rt3/Ticket/Display.html?id=40124 Original RT]

There should be a list somewhere in docs/ showing all the possible effects that calling the .hll_map() method on ParrotInterpreter can have  - list the given core PMC type, and then what changes will occur when registering a mapping for that type . (NB: Mappings can also be registered for PMCs with the 'maps' declaration.)

For example, mapping ResizablePMCArray overrides the PMC type used for :slurpy parameter args.

Grep for usages of Parrot_get_ctx_HLL_type in the source to get the current listing.

All usages need to have tests as well."	coke
4	trunk	1041	pmc2c silently ignores bad code	build	trunk	todo		new	2009-09-21T07:03:08Z	2009-09-21T07:03:08Z	"Originally reported in [http://rt.perl.org/rt3/Ticket/Display.html?id=39313 RT]

Summary of that ticket (quoting allison)

{{{
Pmc2c is just a series of regular expressions. It looks for specific 
patterns, and if it finds them, builds relevant C code out of them.

It has no ability to check for arbitrary syntax that *doesn't* match a 
pattern. It's a preprocessor (macro substitution), not a language parser.

What could be done is have it dump anything leftover after the 
extraction into the resulting C file. Then you'd get a C error on 
compilation.
}}}

"	coke
4	trunk	1082	test subclasses of core PMCS	testing	trunk	todo		new	2009-09-30T13:08:52Z	2009-09-30T13:08:52Z	"One of the common failure modes for partcl is that a subclass of a parrot core PMC causes a problem due to code in the PMC that assumes (accidentally) that it will never be subclassed.

So, one way to protect HLL authors is to, for each core PMC test, have a corresponding test file that runs similar/identical tests except with a subclass. (The subclass can be a basic subclass with no overrides.)

It would be nice if the testing framework did this automatically, so that test writers did not have to keep 2 files per PMC in sync whenever tests were added."	coke
4	trunk	1154	Handle Pending Events More Frequently	none	trunk	todo		new	2009-10-28T03:10:11Z	2009-10-28T03:10:11Z	"Currently, the concurrency and events system only handles pending events at 
specific points, depending on runcore and opcodes. (For example, when you 
use the sleep opcode, when you enter a new predereferenced section, or when 
you schedule a new event.)

We need to figure out exactly when, how, and how often to run our event loop 
more frequently.
"	chromatic
4	trunk	1282	OS.cwd returns platform specific slashes...	core	trunk	todo	Yuki`N	assigned	2009-11-17T02:34:48Z	2011-11-26T01:56:12Z	"... 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"	coke
4	trunk	1639	StringHandle should be updated to use StringBuilder internally.	core	trunk	todo	kthakore	assigned	2010-05-15T03:14:07Z	2010-12-01T00:01:29Z	"Hello.

In immutable strings world current implementation of StringHandle is sub-optimal. It should be migrated to use StringBuilder internally instead of String.

-- 
Bacek"	bacek
4	trunk	1726	Missing POD in .pmc files (and a couple of others)	coding_standards	trunk	todo	jkeenan	assigned	2010-08-01T18:51:51Z	2010-10-31T15:13:07Z	"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.
}}}
"	mikehh
5	trunk	1022	PGE::Glob needs docs.	docs	trunk	todo		new	2009-09-18T13:01:36Z	2011-01-26T14:17:24Z	"PGE::Glob should have POD docs explaining the specific matching language that is used. See Tcl::Glob for an example.

This will help clarify that there are two different syntaxes available."	coke
5	trunk	1150	test all parrot command line flags	testing	trunk	todo	darbelo	new	2009-10-27T22:43:33Z	2011-02-25T01:32:07Z	"Update t/run/options.t to test all command line flags, as well as some invalid ones.

See original ticket at http://rt.perl.org/rt3/Ticket/Display.html?id=42339
"	coke
7	trunk	1043	create YAML::Emitter::Syck that does what Data::Dumper does.	none	trunk	todo		new	2009-09-21T07:15:39Z	2009-09-21T07:15:39Z	"Originally reported in [http://rt.perl.org/rt3/Ticket/Display.html?id=38252 RT]

{{{
> [1:37p] audreyt : chromatic: there is already PIR binding for 
> libsyck's parsing part, fwiw
> [1:37p] chromatic : How about for emitting?
> [1:38p] audreyt : there is currently none
> [1:38p] chromatic : There's the TODO then!
}}}"	coke
3		607	ordered destruction	GC		roadmap		new	2009-04-28T22:56:44Z	2012-01-04T10:38:38Z	Extend or modify the existing GC and GC modules to allow ordered destruction (guarantee that the children of one PMC will all be destroyed before that PMC, etc).	allison
4		565	remove optional features from default config, refactor config probes	configure		roadmap		new	2009-04-21T13:29:50Z	2009-07-21T01:44:16Z	From https://trac.parrot.org/parrot/wiki/ParrotRoadmap.	coke
4		566	export conventions (cross hll)	hll_interop		roadmap		new	2009-04-21T13:30:21Z	2010-04-06T21:32:00Z	From https://trac.parrot.org/parrot/wiki/ParrotRoadmap.	coke
4		567	pdd31-hll interop	hll_interop		roadmap	whiteknight	new	2009-04-21T13:30:37Z	2010-11-22T15:51:46Z	From https://trac.parrot.org/parrot/wiki/ParrotRoadmap.	coke
4		568	hll interop	hll_interop		roadmap	whiteknight	new	2009-04-21T13:31:01Z	2010-11-22T15:51:51Z	From https://trac.parrot.org/parrot/wiki/ParrotRoadmap.	coke
4		592	Add documentation for parrot_debugger	docs		roadmap	allison	new	2009-04-28T21:03:28Z	2011-03-27T14:14:19Z	Add documentation for the PIR debugger, 'parrot_debugger'. We need more examples.	allison
4		593	standard seed libraries (postgres, opengl, etc)	none		roadmap		new	2009-04-28T21:09:03Z	2010-10-16T22:21:39Z	"Improve existing libraries for Postgres, OpenGL, etc, so they are reliable, and relatively feature complete.

Explore other libraries that we should provide by default in a full Parrot install.

The goal is to provide a small set of working libraries, both as an example to other library implementors, and to make it easier for average developers to tackle everyday tasks in Parrot. The set of seed libraries can be small, and libraries already implemented in an existing HLL are reasonable to satisfy the ""everyday tasks"" goal."	allison
4		598	bytecode migration tool	none		roadmap		new	2009-04-28T22:12:53Z	2010-03-30T21:12:29Z	"Write a tool to translate one bytecode format to another.

Extra advantage if the changes to make can be specified in a simple syntax, and if the translations can be chained. (That is, once you write a file that details the changes from 2.0 bytecode to 2.6 bytecode and another one with the details of 2.6 bytecode to 3.0 bytecode, the translation tool is smart enough to use the two files to translate 2.0 bytecode to 3.0 bytecode by translating it to 2.6 as an intermediate step.)

The tool will also have to give warnings about opcodes and PMCs that no longer exist, as these can't be mechanically translated. Tell the user to regenerate the bytecode from source instead."	allison
4		599	bytecode generation from post	none		roadmap	bacek	new	2009-04-28T22:14:30Z	2011-02-20T23:50:26Z	"Hello.

Yes, in PIRATE and nqp_pct branches there is some initial work on generating PBCs from POST. Not finished yet.

I'll probably jump on new NQP train and implement it there with future importing into parrot tree.

-- 
Bacek"	allison
4		600	bytecode testing framework	none		roadmap		new	2009-04-28T22:22:47Z	2010-03-30T21:13:21Z	A framework for directly testing bytecode examples. Somewhat similar to the PIR/PASM/C testing framework.	allison
4		616	compacting/copying gc	GC		roadmap		new	2009-04-28T23:30:41Z	2010-06-13T23:18:12Z	Implement a compacting/copying garbage collection module for Parrot. This will require some changes to the Parrot core to make it possible to move objects.	allison
4		622	serialize/resumable execution	core		roadmap		new	2009-04-29T00:17:35Z	2011-08-27T17:16:56Z	A wishlist feature for being able to save off the entire state of a currently executing interpreter and resume it later (or on a different machine).	allison
4		624	pluggable everything	core		roadmap	allison	new	2009-04-29T00:19:49Z	2012-01-04T10:40:43Z	A blanket wishlist item to change a substantial part of the core to dynamic extensions. The first step of the task is reviewing Parrot core to decide what parts might be good candidates for a pluggable architecture.	allison
4		1522	sweep-free gc	none		roadmap		new	2010-03-22T22:04:58Z	2010-04-06T21:41:14Z	Implement a sweep-free garbage collector. Useful, not high-priority.	allison
4		1525	improved NCI/FFI	none		roadmap		new	2010-03-22T22:28:06Z	2010-04-06T21:45:37Z	"The existing interface to and implementation of NCI needs refinement. See NCITasklist

This task does not depend on Lorito, but design and implementation should take the future of Lorito into consideration."	allison
4	2.2.0	1523	subroutine leave semantics/exit handlers	core	2.2.0	roadmap		new	2010-03-22T22:13:22Z	2010-10-16T22:18:47Z	Various HLLs need the ability to attach arbitrary handlers on subroutine/scope exit. (e.g. tcl's [trace])	allison
4		1165	need ability to dispatch to parent's method or vtable from PIR	none		RFC	allison	new	2009-10-30T17:25:29Z	2011-02-14T01:58:17Z	"If you write a class in PIR, you can access certain ancestral methods/vtables by getting the 'proxy' attribute for that ancestor, with two big limitations.

you need to know the name of the ancestor that implements the vtable (this isn't always your direct parent.)

that ancestor MUST be a PMC (not another class.)

Since there is no generic mechanism to invoke a vtable by name, we should probably continue to use a proxy object to access this functionality.

perhaps:

{{{
# INT values only!
.sub set_pmc_keyed :vtable
    .param pmc key
    .param pmc value
    $I0 = value
    .local pmc proxy
    proxy = get_proxy self
    proxy[key] = $I0
.end
}}}

Bikeshed away. Tcl needs this or something like it to fully implement the trace builtin. (which basically lets us run code before and after each vtable access.)"	coke
4		1196	'parrot foo' automatically finds and invokes foo.pbc	none		RFC		new	2009-11-05T05:26:56Z	2011-02-25T03:27:02Z	"I just recently committed examples/sdl/blue_rect.pl as an
example of exercising the SDL library using NQP. At the
beginning of the file the instructions read:

To run this file, execute the following command from
the Parrot directory:

$ ./parrot compilers/nqp/nqp.pbc examples/sdl/blue_rect.pl

Typing in that pathname is a bit of a pain -- what I'd really
like to be able to say is

$ ./parrot nqp examples/sdl/blue_rect.pl

and then since parrot can't immediately find anything called
'nqp' to execute, it looks for nqp.pbc in a standard location
or locations and invokes that. Similarly

$ ./parrot perl6 blue_rect.pl
$ ./parrot tgc --output=gen.pir PASTGrammar.tg
$ ./parrot abc
$ ./parrot tcl xyz.tcl
$ ./parrot pynie hello.py
etc.

Before we get too far, let me point out what I'm *not* asking for.
Specifically, I'm *not* asking for parrot to automatically select 
an appropriate compiler based on a file's signature or magic, as 
discussed in RT#32374. In other words, I'm *not* asking that

$ ./parrot examples/sdl/blue_rect.pl

be able to automatically determine an appropriate compiler
and invoke it on the script. While this is a very worthy and
important goal, at the moment there seem to be so many issues 
around ""how does Parrot register compilers and figure out which 
one to use"" that I fear it will be a while before this gets 
implemented. I want something sooner than that.

I'm also explicitly *not* asking to try to handle or resolve
things based on Unix shebang lines, so that a file starting with

#!/path/to/parrot nqp

will automatically be executed with nqp. Again, it's something
we will eventually want to consider, but given the vagaries
of dealing with shebangs in so many different languages and
platforms it's not what I'm aiming to get from this ticket.

All I'm really looking is to be able to place the .pbc file for
a compiler or other application into a standard location where it
can be invoked from Parrot without having to give a complete
path to the .pbc file.

This could also have the benefit of simplifying Makefiles as well.
For example, when I moved nqp from languages/ to compilers/ , I had
to change the Makefile from

$(PARROT) $(PARROT)/languages/nqp/nqp.pbc ....

to

$(PARROT) $(PARROT)/compilers/nqp/nqp.pbc ...

While it was easy to do for this one case -- imagine if we had 
10 or 20 applications that were using nqp as part of the 
build process. With the approach proposed here, the Makefile
can have

$(PARROT) nqp ...

and it all just works.

I would also be willing to accept an option-based version of
this, such as (pick an appropriate option name or letter):

$ ./parrot --prog=nqp blue_rect.pl


Comments, suggestions, and (most importantly) implementations welcomed.
Thanks,

Pm"	pmichaud
4		1212	.eof returns false if last read call read the last byte of the file, but not beyond	core		RFC	cotto	new	2009-11-05T17:37:27Z	2011-02-25T23:38:54Z	"Hi,

It seems that the .eof() method on file handles can sometimes return 
true even if there is nothing more to read. This occurs when you have 
read upto the last byte of a file (e.g. when a readline reads up to the 
end of a newline, and that newline is the last thing in the file), but 
not beyond (which seems to be what causes the EOF flag to be set). I'm 
thinking this is the wrong behaviour?

Thoughts and fixes welcome!

Jonathan"	jonathan
5		61	Investigate using an external hash library	library		RFC	cotto	new	2008-12-17T20:42:04Z	2011-02-02T19:27:58Z	"We spend a lot of cycles on our hand-rolled hashing, both in terms of developer effort and CPU.

It would be nice if we could use an off the shelf hash package.

Any package under consideration would have to have a compatible license, and work on our minimal core platforms."	coke
4	1.1.0	649	Should parrot_config report separate inst_ and build variables?	install	1.1.0	RFC	whiteknight	new	2009-05-08T12:42:22Z	2010-11-24T03:16:32Z	"Some discussion of this topic is on the parrot-dev mailling list, starting at: [http://lists.parrot.org/pipermail/parrot-dev/2009-April/002158.html]
(The thread continues into the beginning of the next month, here at
[http://lists.parrot.org/pipermail/parrot-dev/2009-May/002162.html] and [http://lists.parrot.org/pipermail/parrot-dev/2009-May/002172.html].)

I have tentatively assigned this ticket a milestone of 1.4, the next ""supported"" release.  If indeed version 1.4 is to be packaged and widely distributed, then it would be nice to clear up such issues beforehand."	doughera
4	1.2.0	707	[RFC] StringHandle interface	core	1.2.0	RFC	NotFound	assigned	2009-05-26T15:30:06Z	2011-01-15T13:11:22Z	"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.
"	NotFound
4	1.2.0	774	deprecate PMC multiple inheritance	pmc2c	1.2.0	RFC	cotto	new	2009-06-18T18:23:06Z	2010-12-02T09:13:49Z	"I'd like to deprecate the behavior of pmc2c which allows C-level PMC multiple inheritance.  The behavior needs supporting code which isn't properly tested in Parrot's test suite.  Any modification to pmc2c that deals with a PMC's parents also needs to take this behavior into account or risk causing failures in HLLs which may not be reported for some time.

Currently the only language I know of that uses MI is Lua (partcl no longer needs it), and coke claims that MI doesn't allow anything that can't be done in another way.  I've asked fperrad about how much work it would be for him to avoid MI.  If it's a big deal for him (or any other HLL devs) I don't mind continuing to support it.

Once I hear back from fperrad and don't get any other objections, I'll add a proper deprecation notice so this feature can be removed post-1.4."	cotto
4	1.4.0	905	[RFC] Deprecate Eval PMC	none	1.4.0	RFC		new	2009-08-07T03:55:51Z	2010-09-11T16:11:24Z	"The result of dynamically compiling a string of source code should be an ordinary Sub or Packfile object, not a custom Eval object.

This ticket was split out from TT #448."	allison
4	1.6.0	1156	add_sub should append to a MultSub	none	1.6.0	RFC		new	2009-10-28T13:02:27Z	2009-10-28T13:02:27Z	"add_sub can add a Sub and a MultiSub to a NameSpace. However, if we add_sub again with the same name, it does not append the sub to the existing MultiSub (and does not combine with an existing Sub to form a new MultiSub).

We need to determine what, if anything, needs to be done here.

This comes from RT #55308"	whiteknight
4	1.7.0	1188	[RFC] Modify build directories to more closely match the install directories	build	1.7.0	RFC		new	2009-11-03T00:50:37Z	2011-02-25T03:16:24Z	"To simplify building a language from a build tree or install tree, change the build directories to more closely match the install directories. This would mean standardizing on 

lib/
Holds the compiled libparrot. Holds what's currently in runtime/* as subdirectories under lib/parrot/. Holds what's currently in lib/ (Perl modules) as subdirectories under lib/parrot/tools.

bin/
Holds the compiled binaries for parrot, parrot_config, parrot_debugger, etc.

src/
Holds C source files, same as now. Add a 'parrot/' subdirectory to be the same as include/ and lib/ (either all should keep the subdirectory, or none  should).

include/
Holds C header files, same as now.

(The current blib/ directory just goes away.)"	allison
4	1.8.0	1339	document all control exception types.	docs	1.8.0	RFC		new	2009-11-29T02:37:43Z	2010-06-13T04:04:10Z	"These were meant to correspond to HLL flow control, like tcl's [break] and [continue], but it seems that CONTROL_LOOP_NEXT and CONTROL_LOOP_LAST were added as well (and those are in use by NQP, etc.).

I don't particularly care which pair we keep, but having both sets is wrong."	coke
4	1.8.0	1352	[RFC]: Realtime garbage collector for RTEMS	GC	1.8.0	RFC		new	2009-12-03T08:20:31Z	2011-03-27T14:42:05Z	"
Parrot works on RTEMS. I am not sure how our garbage collector
interacts with the real-time-ness of RTEMS, though. It probably needs to be
shut off currently (parrot -G), to retain realtime characteristics. I have been
doing research on realtime gc algorithms, there are a few implemented
on the JVM, JeRTY VM and Jikes RVM. The ""Tortured History
of Real-Time Garbage Collectors"" also seems like an interesting read.



http://leto.net/dukeleto.pl/2009/11/realtime-embedded-parrots.html

http://developers.sun.com/learning/javaoneonline/2007/pdf/TS-2901.pdf

http://www.computer.org/portal/web/csdl/doi/10.1109/ISORC.2005.45

http://www.research.ibm.com/people/d/dfb/papers/Bacon03Realtime.pdf

http://www.cs.wustl.edu/~mdeters/doc/slides/rtgc-history.pdf

Any changes to the GC API should take into account that a realtime GC algorithm should be possible.
"	dukeleto
4	1.8.0	1359	[RFC] Merge freeze/thaw with PBC	core	1.8.0	RFC	plobsing	new	2009-12-05T02:13:29Z	2010-01-25T23:21:34Z	"= Problems =

freeze/thaw and PBC are already inter-related:
 * PBC uses freeze/thaw for constants
 * freeze/thaw uses PBC's low level binary IO abstraction

freeze/thaw currently has issues related to subs. Specifically, the opcodes for the sub aren't frozen with the sub. The reason for this is that, when a sub is a constant in a PBC, the opcodes are stored elsewhere and the sub should be an index into the code segment.

Also, PBCs as they currently exist are more or less equivalent to frozen Eval PMCs (in function, not format).

The bottom line is we have 2 formats that are inter-dependant and have overlapping functionality.

= Proposed Solution =

Have freeze/thaw operate on a slight variant of PBC. That is, freeze returns a string containing the contents of a PBC file, and thaw would operate on such strings.

= Required Modifications to PBC =

Minimal. A new segment would need to be added for non-constant objects. For backwards compatibility, we could make the absence of this segment default to creating an Eval PMC.

= Required Modifications to freeze/thaw =

The IMAGE_IO object (or whatever we replace it with) would need to gain the concept of bytecode management. Sub PMCs would be responsible for adding their bytecode to the image on freeze and obtaining their bytecode on thaw. Eval PMCs would no longer manage the bytecode for all contained subs for freeze/thaw as these are now responsible for handling that themselves.

= Benefits =

 * Elimination of duplicated functionality.
 * Sub PMCs frozen/thawed sanely.
 * PBC becomes more flexible from PIR/HLL perspective:
   * compilation: just freeze an Eval PMC.
   * examination: thaw to Eval PMC and poke it
   * load_bytecode is something like:
{{{
.sub 'load_bytecode'
  .param string filename
  $S0 = slurp_file(filename)
  $P0 = thaw $S0
  $P0()
.end
}}}"	plobsing
4	2.0.0	1416	Unreasonably painful to add a method to all *Array PMCs	core	2.0.0	RFC		new	2010-01-25T19:22:30Z	2010-02-02T07:08:38Z	"Adding a method that works for all *Array PMCs (in either PIR or NQP) should be really easy, but it isn't.  If all *Array PMCs had a common ancestor (Array, say), you could do this:

{{{
module Array {
    method reverse () {
        my @reversed;
        for self { @reversed.unshift($_); }
        @reversed;
    }
}
}}}

Unfortunately, there is no such common ancestor.  Likewise, they 
share no common role, so that's not an in either.

One could copy and paste the above block for each *Array module, but that's just nuts.  Talk about a DRY violation.

It's possible one might create one method code object, then iterate over all the known *Array types and use add_method to add that code to them as a method, but this will fail if the list of *Array types changes, which it reasonably might.  Plus it's just ugly for what should be a simple task.
"	japhb
4	2.0.0	1421	[RFC] zero length FxA behaviour	none	2.0.0	RFC	plobsing	new	2010-01-28T17:29:45Z	2010-11-24T17:01:03Z	"FixedBooleanArray, FixedStringArray, FixedIntegerArray, and FixedFloatArray do not allow specifying a length of 0, giving a misleading error of ""Fixed${type}Array: can't resize"".

FixedPMCArray ignores being set to zero length, remaining uninitialized.

Allowing for zero lengthed arrays allows code that handles ""0 or more elements"" cases to avoid checking against the zero case. For example:

{{{

.sub 'fixed_ints_upto'
    .param int i
    .local pmc retv
    retv = new ['FixedIntegerArray']
    retv = i
    $I0 = 0
    loop:
         if $I0 >= i goto end_loop:
         retv[$I0] = $I0
         inc $I0
         goto loop
    end_loop:

    .return (retv)
.end

}}}

This will currently fail. To avoid failures, we would have to check for a zero valued argument and handle that case separately.

Zero is a valid length for an array, so I propose that we allow FxAs to be set to zero length (and not be subsequently resizable).

Alternatively, the behaviour could be to ignore setting the length to zero (as is done now in FPA). However, this can be seen as violating the set once property of FxA length."	plobsing
4	2.0.0	1433	Add a vtable function to get arithmetic mode	core	2.0.0	RFC		new	2010-02-10T17:20:04Z	2010-06-12T01:08:48Z	"After talking with Allison yesterday, I would like to suggest that we add a new VTABLE_get_numeric_mode(). This VTABLE would return a flag value to determine whether the PMC should be treated as an INTVAL or a FLOATVAL in an arithmetic calculation.

Currently we have a large series of mathematics vtables that are called from the math.ops. These mathematics vtables allow the PMC to determine how it participates in the operation. The downside to this setup is that we need a large number of vtables for all supported operations.

For every operation where we do not have a corresponding vtable, we must decide whether to treat the PMC as an INTVAL or a FLOATVAL, a decision which is going to create problems for some types.

Having a VTABLE interface that allows the PMC type to describe whether it is int-like or float-like will allow us to encapsulate more operations better, and make better decisions in more situations. Also, it will allow us to slim down the VTABLE structure to remove a few operations which are rarely used except in numerical types and only to make these decisions for us.

Alternatively to a new VTABLE function, we could have some sort of flag mechanism in the VTABLE structure and check it with a macro.

I suggest we need at least three outcomes: A PMC is either int-like, float-like, or non-numeric. Attempting to perform a non-overridden math op on a non-numeric PMC could throw a meaningful error instead of just falling back to the implementation in default.pmc.

Opinions and comments much appreciated

"	whiteknight
4	2.0.0	1434	Slim down selection of mathematics vtables	core	2.0.0	RFC		new	2010-02-10T17:28:38Z	2010-11-25T18:27:30Z	"We have far too many mathematics vtables for too many combinations of input arguments. I would like to make the following suggestions:

 - Convert all ""3-argument"" VTABLEs to ""2-argument"" ones. These are of the form ""PMC * foo(PMC *value, PMC *dest)"". VTABLEs of this form are extremely inconsistent throughout the codebase for the handling of the third ""dest"" argument. In many implementations the third argument is completely unused. I suggest they should all be changed to ""PMC *foo(PMC *value)"", and always return a new PMC that contains the resultant value.
 - Remove all ""i_*"" vtables. These are less frequently used and tend to be implemented internally in terms of the 3-argument vtables.

These changes will signficantly reduce bloat of the VTABLE structure and decrease Parrot's memory footprint and startup times. We'll also be able to have more consistent implementations of the math ops across all core types, and will have a much lower maintenance burden if we need to make changes to these operations."	whiteknight
4	2.1.0	1468	variadic opcodes make assembly/disassembly difficult	core	2.1.0	RFC		new	2010-02-18T19:00:26Z	2010-09-17T01:48:40Z	"opcodes that take a variadic number of arguments are difficult to work with. Some examples of these (maybe the only examples of them) are set_args, get_params, set_returns, and get_results. These ops take lists of values to pass/receive in a call. The first arg to the op is a string or an FIA that contains information about the number of ops that follow.

At the very least, these ops should be flagged to identify them as being special. This way a PIR-based disassembler can identify them and produce a better listing.

Far better idea, in my mind, would be refactoring these ops entirely so that they no longer take variadic lists of arguments. Instead, I suggest we could have IMCC build CallContext PMCs (or a new kind of proto-CallSignature PMC instead, depending on preprocessing requirements) at compile time and store them in the constants table. So set_args_p would change from taking an FIA with a series of flags and then a variadic argument list to taking a single ""CallArguments"" PMC which would contain all the same information, but in a form that was much easier to work with. Since information about the arguments to a function call are already stored as constants in the bytecode stream directly, we can easily convert this to a PMC constant with no loss of dynamicism. If anything we gain more dynamicism because we gain the ability to construct argument lists at runtime without having to explicitly use :flat.

These kinds of refactors would dovetail nicely with other PCC refactors currently planned.

Ideas?
"	whiteknight
4	2.1.0	1470	Create a get_numeric_pmc VTABLE	core	2.1.0	RFC		new	2010-02-19T16:23:59Z	2011-06-11T14:19:18Z	"the get_integer and get_number VTABLEs are limited because they return a particular numeric type without any indication for the preference of the PMC. For instance, some PMCs may prefer to be treated as an integer value or as a floating point value for mathematical calculations. Also, it is nonsensical to ask certain PMCs for a floating-point value or to ask other types for an integral value. 

If you look at a code example from an HLL like this:
{{{
$c = $a + $b
}}}
it is difficult to know how to treat the operation and whether to store an int-like or float-like value in $c. This is especially true when considering types that aren't typically used in equations, such as array types. When treated as a number, should ResizablePMCArray act like a float or an int? For example NQP treats all mathematic operations as float-point and requests values from PMCs accordingly. 

I would like to suggest the creation of a get_numeric_pmc VTABLE that would return a numeric PMC type that can be used as a stand-in for a non-numeric type in calculations and preserve information about whether the type should be treated as a float or an int. An RPA could return an Integer PMC as we expect, but other types that prefer it could return Float, BigInt, BigNum, or even Complex types as required. In this way we could get proper information about the use of a PMC in a mathematical context without having to shoehorn unnecessary and nonsensical get_number and get_integer vtables into all our types, an without requiring Parrot to make decisions about type conversion or type promotion. The HLLs should handle those kinds of decisions without Parrot making defaults.

In additon to the new VTABLE we would likely need a new opcode to expose it."	whiteknight
4	2.10.0	1864	[RFC] Change coding standard to avoid 2 space outdent.	coding_standards	2.10.0	RFC	jkeenan	new	2010-11-23T10:53:52Z	2011-08-27T17:38:53Z	"Hello.

Current coding standard requires 2 space indent on switch/case indent. I would like to propose to change it to 4 space and close #1547 as ""wontfix"".

Basically I speak about this patch:
{{{
diff --git a/docs/pdds/pdd07_codingstd.pod b/docs/pdds/pdd07_codingstd.pod
index 8741a1b..52dc866 100644
--- a/docs/pdds/pdd07_codingstd.pod
+++ b/docs/pdds/pdd07_codingstd.pod
@@ -110,11 +110,6 @@ the level of indenting to increase.
 
 =item *
 
-Labels (including case labels) must be outdented two columns relative to the
-code they label.
-
-=item *
-
 Closing braces for control structures must line up vertically with the
 start of the control structures; e.g. C<}> that closes an C<if> must
 line up with the C<if>.
}}}

Or at least change ""including"" to ""excluding"".

-- 
Bacek"	bacek
4	2.10.0	1867	RFC: optional fakecutable preamble	none	2.10.0	RFC		new	2010-11-23T21:26:04Z	2011-01-11T09:44:26Z	"Executables created by pbc_to_exe, better known as ""fakecutables"", don't have full access to parrot VM settings. We currently work around some of these problems with magic environment variables and flags on pbc_to_exe.

These solutions are crufty and inflexible.

I propose the option to add a second pbc which will be loaded *before* the main pbc and run. The results of this will be used as the settings with which to run the main pbc.

The intent of this secondary, preamble, pbc is to parse commandline arguments, environment variables, and config files to obtain parrot VM settings in a manner appropriate for the HLL."	plobsing
4	2.10.0	1921	RFC: decorate all functions in src/platform.c with PARROT_EXPORT	core	2.10.0	RFC	cotto	new	2011-01-01T00:12:50Z	2011-08-29T23:46:40Z	"I propose that we add PARROT_EXPORT to all functions in src/platform.c (i.e. all functions in all files used to generate src/platform.c).  This is necessary so that users of libparrot, in this case dynpmcs, can access platform-specific functions.  The problem that brought this up was that the OS pmc couldn't access Parrot_get_user_id, but I can imagine this cropping up in other places too.

I've created a gci task for this and rfw plans to work on it, but I want to make sure I'm not missing anything before I merge into master."	cotto
4	2.3.0	1641	iseq does not support the same type of operands as the math operators	imcc	2.3.0	RFC		new	2010-05-15T23:10:34Z	2010-05-15T23:14:21Z	"# Within a method ... This doesn't work.
{{{
$I0 = 1
$P0 = getattribute self, 'someIntField'
$I1 = iseq $I0, $P0
}}}

# Error message:
# error:imcc:The opcode 'iseq_i_i_p' (iseq<3>) was not found. Check the type and number of the arguments

There is already support for math operands with mixed types, so allowing iseq to have the same behavior is good for consistency:

{{{
# Test by bacek
~/src/parrot (ops_pct_local)$ cat t.pir 
.sub ""main""
    $N0 = 40.0
    $I0 = 2
    $N1 = $N0 + $I0
    say $N1
.end
~/src/parrot (ops_pct_local)$ ./parrot t.pir 
42
}}}"	shockwave
4	2.3.0	1644	[RFC] Text format serializer for PASM/PIR constants	imcc	2.3.0	RFC		new	2010-05-17T06:18:54Z	2011-08-27T16:57:03Z	"This would allow the freezing and thawing of arbitrary constants that can be held in PBC to and from PIR/PASM.

Attached is a proof of concept PMC to acheive the serialization/deserialization. Currently it only serializes, but it is based on the ImageIO API for object serialization/deserialization and mostly reuses existing tokens from PIR/PASM, so the deserializatoin shouldn't be terribly difficult.

New syntax would also have to be added to demarkate the beginings and ends of constant sections as well as to use constants in code sections. Perhaps '.begin_data(123)', '.end_data', and '$C123'.

I haven't put much work into what the punctuation should be and I'm not quite happy with it yet. I'd appreciate advice in this area especially.
"	plobsing
4	2.3.0	1645	Request for another overload to 'not' opcode.	none	2.3.0	RFC		new	2010-05-17T15:39:48Z	2011-11-20T10:05:38Z	"The docs page:
http://docs.parrot.org/parrot/latest/html/src/ops/cmp.ops.html

...mentions 2 overloads for opcode 'not':

{{{
not(out INT, in INT)
not(out PMC, invar PMC)
}}}


It would be sweet to have another overload for opcode 'not'.

{{{
not(out INT, invar PMC)
}}}


This would avoid the need for boxing of the operands in many cases."	shockwave
4	2.4.0	1662	Should NameSpace entries be available through a hash-like interface?	core	2.4.0	RFC		new	2010-05-27T23:57:46Z	2011-07-06T02:25:55Z	"Several notes I've run across make references to the fact that NameSpace PMCs should be searchable using a hash-like interface to find entries in the namespace. There aren't a lot of details in these spattered notes, so I don't know whether it suggests we should be able to lookup nested namespaces using such an interface, or NameSpace global entries, or both.

Here's an example of a note from src/global.c:

{{{
NOTE: At present the use of the {get, set}_global functions is mandatory due
      to the wacky namespace typing of the default Parrot namespace.
      Eventually it will be safe to just use the standard hash interface
      (if desired).
}}}

Let's figure out exactly what these notes mean, what we want the NameSpace interface to be, and make everything right."	whiteknight
4	2.6.0	1747	Switch shift and pop for reverse iterators	core	2.6.0	RFC		new	2010-08-19T22:01:22Z	2010-08-19T22:01:22Z	"Currently, you're supposed to use ""shift"" with normal iterators and ""pop"" with reverse iterators. I think that doesn't make sense. If I have a function that takes an iterator as argument, how does it know whether to use shift or pop? I think that shift and pop should be switched for reverse iterators."	nwellnhof
3	2.8.0	1825	How To Utilize The GCC Compile Farm	build	2.8.0	RFC	dukeleto	new	2010-10-13T00:55:18Z	2010-10-20T17:27:39Z	"Parrot now has access to the GCC Compile Farm, graciously hosted by the Free Software France organization. We need to figure out how best to use it i.e. installing BuildBot, TapTinder, smokers and benchmarkers across different configurations of Parrot, such as ICU/GMP/optimized/etc.

Here are some links to a presentation about the Compile Farm:

https://mail.gna.org/public/gcc-cfarm-users/2010-07/msg00025.html

This is the main wiki page: http://gcc.gnu.org/wiki/CompileFarm"	dukeleto
4	3.6.0	2167	Storable format breaks pmc2c when Perl is upgraded	pmc2c	3.6.0	RFC		new	2011-07-30T08:46:54Z	2011-08-08T23:22:25Z	"Downstream in Debian, the upgrade from Perl 5.10 to 5.12 broke Rakudo compiles, because the installed PMC .dump files were written using the 5.10 version of Storable, and could not be read using the 5.12 version of Storable. The upstream bugs (closed) related to this failure are:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=634105

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=634970

This is solved in the short-term, but in the longer-term, Storable is not a good format for installed, persistent metadata. (It was never intended to be installed, only to be a temporary build-process cache.)

We need to re-examine what metadata pmc2c actually needs for building PMCs that inherit from core Parrot PMCs. I suspect that it's actually much smaller than the current .dump files, and that installing some simple JSON metadata files for the core PMCs would actually be sufficient.

The work on M0 will eventually make this irrelevant, but that work would likely also benefit from some thought about abstracting the metadata needed to inherit from a PMC.
"	allison
3	master	1500	API to tell which opcode group an opcode is in	core	master	RFC	whiteknight	new	2010-03-06T03:57:05Z	2011-10-24T14:58:11Z	"I am currently hacking on PL/Parrot and one of the very important features that we need is disallowing certain operations, most notably file I/O. The motivation for this is that you do not want a stored procedure written in PIR to be able to modify the database via disk operations.

I talked with chromatic in #parrot about needing some security subsystem features and he agreed that we need an API for telling if an opcode is in a particular opcode group. This is talked about in PDD18 if you want to get the full background.

For instance, take the open opcode: 
{{{
inline op open(out PMC, in STR, in STR) :filesys_open {
/* etc... */
}
}}}

It is defined to be in the ""filesys_open"" opcode group. Currently there is no way to tell if a certain opcode is in a given group. The information does not seem to make it into op_info_t, but it is in lib/Parrot/OpLib/core.pm . I propose a public C API that will consist of at least these three functions:

{{{ Parrot_sec_opcode_is_in_group(string opcode_name, string group_name) }}}

This function would take an opcode name and opcode group name as argument and return true if the opcode is in the group, false otherwise.

{{{ Parrot_sec_opcodes_in_group(string opcode_group) }}}

This function takes a string argument of an opcode group name and returns a ResizableStringArray containing all opcodes in that group.

{{{ Parrot_sec_groups_containing_opcode(string opcode_name) }}}

This function takes a string argument of an opcode name and returns a ResizableStringArray listing all groups that contain the given opcode name.

Once an API in C is available to accomplish these things, then it should be straight forward to access this information from PIR.

"	dukeleto
4	master	1356	[TODO] add method FixedStringArray.sort()	core	master	RFC	whiteknight	assigned	2009-12-03T17:54:22Z	2011-05-26T23:54:21Z	"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."	fperrad
4	master	1885	Parrot_load_bytecode should only load bytecode	core	master	RFC	cotto	new	2010-12-09T15:09:03Z	2011-08-27T18:02:49Z	"The function src/packfile.c:Parrot_load_bytecode() is too magical. It not only loads bytecode, but it also does some rudimentary extension string matching to also allow it to load .pir and .pasm file. This is extremely magical and is not made clear through the function's name.

This function is exposed primarily through the load_bytecode PIR op, which has similar magical behavior.

I suggest that we eliminate the magical behavior of this function and the opcode that exposes it: load_bytecode and Parrot_load_bytecode should *only* load bytecode files under any extension. If the user wants to compile a PIR source file they should use the PIR compreg."	whiteknight
4	master	2133	src/extend.c Review	embed/extend	master	RFC	whiteknight	new	2011-06-13T00:57:37Z	2011-06-13T23:29:20Z	"The functions in extend.c and extend_vtable.c use the PARROT_CALLIN_START and PARROT_CALLIN_END macros to ensure the stacktop value is set for proper GC operation. This is unnecessary for two reasons:

1) We have an embedding API, and a clear distinction between embedding and extending situations. In an extending situation, the stacktop should always be set.

2) The functions in extend.c and extend_vtable.c represent only a small subset of what we currently consider the ""extending API"". Many extension libraries use other subsystem API functions directly, and some extension libraries never use any of the functions defined in extend.c or extend_vtable.c, which means those libraries would never see this protection (and they aren't any worse off for it).

If those two macros go away (And I suggest they should), there are a few functions in extend.c which can go away because they are nothing but wrappers around other functions:

 - Parrot_PMC_new (Parrot_pmc_new)
 - Parrot_free_cstring (Parrot_str_free_cstring)
 - Parrot_register_pmc and Parrot_unregister_pmc
 - Parrot_register_string and Parrot_unregister_string

Also, there are a few other functions which need to be re-considered:

 - Parrot_get_*reg and Parrot_set_*reg (These functions should take a PMC * for the context, because the *_REG macros are going to read from the current context, which in an extending or NCI context is likely to be worthless. Also, these functions don't do any bounds-checking)
 - All the Parrot_printf-related functions. We have similar functions in src/utils.c and elsewhere which integrate properly with the IO and String subsystems
 - Parrot_new_string (Should probably be moved to src/string/api.c, because it's just a wrapper around Parrot_str_new_init with some logic to lookup encodings by name)
 
Also, it would be very good if we had an ""official"" definition for what our extending API is. Is it, as is the de facto definition, the sum of the individual subsystem APIs, or is it something distinct?"	whiteknight
4	master	2163	Reconsider IGLOBALS_PBC_LIBS	core	master	RFC		new	2011-07-23T12:52:10Z	2011-07-26T01:15:33Z	"The global IGLOBALS_PBC_LIBS stores a mapping of file name to full path name for entries loaded with load_bytecode_s (Deprecated in #2146). Since load_bytecode_s can be used to load a .pbc, .pasm, or .pir file, and automatically compiles files if necessary, the mapping key is the filename without the extension.

With the new load_bytecode_p_s op, we can start to redesign this data item. The new op returns a PackfileView PMC when loaded and currently does not cache values. If you do ""$P0 = load_bytecode 'foo.pbc'"" twice, it will attempt to load the same file twice into two PMCs. I don't know if this is considered a bug, or something we want to keep. After all, it's entirely possible that a .pbc file could change during program execution, and re-loading it will return a packfile with different contents.

If we want to have a cache still, I suggest we repurpose IGLOBALS_PBC_LIBS to map full path name to PackfileView result. The user can, of course, get access to this hash and delete keys from it if she wants to reload it. Then, we can update the new load_bytecode_p_s op to use the repurposed cache.

Similarly, we can deprecate IGLOBALS_PBC_LIBS and replace it with a new cache so that both load_bytecode ops have a cache to use during the deprecation period.

If we do not want Parrot to contain an explicit hash, we can let IGLOBALS_PBC_LIBS be deprecated and removed when load_bytecode_s is. User code can keep track of the libraries they want to load themselves."	whiteknight
5	master	1448	Modify `throw` opcode to pass through pre-configured resume continuation	core	master	RFC	whiteknight	assigned	2010-02-16T01:10:15Z	2011-10-24T12:49:43Z	"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.)"	Austin_Hastings
5	master	2125	rename parrot.h to internals.h or private.h or equivalent	core	master	RFC		new	2011-05-26T22:57:41Z	2011-05-26T23:38:28Z	"Several lines at the beginning of parrot.h read:

{{{
/* Only parrot core files should include this file.
   Extensions should include <parrot/extend.h>.
   Programs embedding parrot should include <parrot/embed.h>.
*/
}}}

A far more effective approach would be to rename ""parrot.h"" to ""internals.h"" or ""private.h"" or something that makes it much more obvious that the contents are meant for internal use only.  People looking to Parrot source code for examples of how to write PMCs, dynpmcs or dynops are unlikely to read the contents of parrot.h and see the warning.

Pm"	pmichaud
5	master	2155	Additional README Files in Top-Level Directories	docs	master	RFC	soh_cah_toa	new	2011-07-17T23:02:20Z	2011-08-02T02:43:18Z	"In a recent [http://lists.parrot.org/pipermail/parrot-dev/2011-July/006010.html email] to parrot-dev, kid51 brought up the question of whether each top-level directory could benefit from a small README file describing their purpose.

A few of them already do but I think making this a consistent practice is a great idea. The purpose of these directories is not always self-evident and personally, I still don't know what they all are for. I don't see any immediate disadvantages to this other than a small increase in size. Even so, if the cost of further clarifying our directory structure is just a couple extra kilobytes, I say ""so what.""

The format of each README should be consistent and in plain text. Perhaps something like:

{{{
Directory: [name]
Summary: [short summary]

Description
-----------

[more verbose description]

Subdirectories
--------------

[name - short summary]
[name - short summary]
...
}}}
"	soh_cah_toa
7	master	2114	getprop  op is strange	core	master	RFC		new	2011-05-18T15:35:08Z	2011-05-19T15:13:29Z	"The getprop op is strange because it has a signature getprop_p_s_p. By analogy, the getattr opcode has signature getattr_p_p_s. setprop_p_s_p and setattr_p_s_p are similar and are not a problem.

getprop_p_s_p should be changed to getprop_p_p_s for symmetry with other ops.

Also, we should take some time to reconsider the whole properties mechanism, since I don't think it is used often. It *is* used, but not often and I'm not sure that it's the best mechanism for doing what we want to do with it."	whiteknight
3	trunk	777	.HLL should not case-mangle its arg	hll_interop	trunk	RFC		new	2009-06-19T17:16:44Z	2011-01-11T10:21:22Z	"In many cases, .HLL 'Donut' is the same as .HLL 'donut'; however, in some cases (e.g. ParrotInterpreter.hll_map()), it's not.

I recommend that to avoid any potential for confusion, we remove any case mangling and treat the HLL exactly specified in the directive.

If we get consensus on this, we can add a deprecation notice for 1.4 and change it immediately after release.

"	coke
4	trunk	903	[RFC] Deprecate Keys at all.	core	trunk	RFC		new	2009-08-05T21:20:58Z	2011-02-24T08:30:59Z	"Hello.

(Background: I've spent few months trying to make Keys and Iterators more sane)

There is excerpt from IRC log:
{{{
<bacek> chromatic: I've got excellent (fsvo) idea. Deprecate Keys at all.
<chromatic> What would replace them?
<bacek> Create NamespaceKey which will be used for Namespaces.
<bacek> Navigating over ""ordinary"" aggregates will be ""manual""
<chromatic> The idea has merit.
<bacek> indeed.
 No one uses $P0[foo;bar;baz]
 It's almost impossible to implement and used correctly.
 And behaviour is very dependant on HLL
<chromatic> It's not easy to manage in IMCC either.
<bacek> e.g. autovivify vs throwing exception.
 So, NamespaceKey will has-a RSA
 Simple, clean, comprehensible.
 Remove a lot of code in Hash and Array to support Keys.
 Simplify IMCC and future of PIRC (which doesn't support complex keys)
<chromatic> It's worth considering.
}}}

Actually NamespaceKey can be is-a RSA. Then creating it in pir will be something like
{{{
   $P0 = split ';', 'foo;bar;baz'
   $P1 = new [NamespaceKey]
   $P1 = $P0
}}}

-- 
Bacek"	bacek
4	trunk	1033	no args checking for a sub without params	imcc	trunk	RFC		new	2009-09-21T04:07:54Z	2011-08-27T16:54:14Z	"Originally reported in [http://rt.perl.org/rt3/Ticket/Display.html?id=39844 RT].

If no .params are given, no args checking is done on sub invocation.  From the original:

{{{
On Sat Jul 15 23:29:10 2006, mdiep wrote:
> I expect this to die with a ""too many args"" error, but it doesn't -- 
> it prints ""ok"":
> 
> .sub main :main
> test(""foo"", ""bar"")
> end
> .end
> 
> .sub test
> print ""ok\n""
> .return()
> .end
> 
> --
> Matt Diephouse
> 
}}}

2 sample patches to achieve this (both of which are declared to fail) are attached to the original ticket. Neither apply cleanly to trunk.

There is a question, however, as to whether or not the existing behavior is desirable - should we always check args? should we always check except for :main? (should we check for :main too and suggest that the programmer use .param args :slurpy to avoid any issues?)

There's a test already committed in t/op/calling.t"	coke
4	trunk	1190	Replace .globalconst/.const directives by .const/.localconst (respectively)	core	trunk	RFC		new	2009-11-03T16:01:44Z	2011-07-04T09:16:59Z	"This ticket replaces RT57634.


hi,

in PIR you can use the .globalconst directive in a sub to define a constant
that is globally accessible.
Likewise, you can use the .const directive in a sub that is local to that
sub.

.sub foo
.globalconst int answer = 42
.const num PI = 3.14

.end

answer in this case is globally accessible (in any other sub, that is parsed
AFTER the foo subroutine, I should note)
PI in this case is only accessible in this subroutine foo.


However, I question the need for .globalconst, as the .const directive can
also be used /outside/ of a subroutine, like so:

.const int answer = 42


Therefore, the .globalconst directive seems to be superfluous; why have 2
directives that do the same thing; if a .globalconst is accessible globally
anyway, there's no need to define it WITHIN a sub.

Therefore, my proposal is to remove the .globalconst directive;
whenever you need to have a global const, use .const outside of a
subroutine.
whenever you need to have a local const (in a sub), use .const inside a
subroutine.

comments welcome,
kjs
"	kjs
4		508	JSON libraries should be renamed to something less confusing	library		patch		reopened	2009-03-26T21:50:51Z	2010-05-10T13:19:50Z	"There are three JSON.pbc files currently:-

* compilers/json/JSON.pbc - for reading JSON.
* library/JSON.pbc - for writing JSON.
* library/Config/JSON.pbc for reading and writing config files containing JSON.

The supplied patch renames the purely read/write ones to library/JSONReader.pbc and library/JSONWriter.pbc.

However, what this patch misses is leaving a stub PBCs to manage a proper deprecation cycle."	bsdz
4	1.1.0	674	[doc] POD escape B<> is not handled in verbatim section	docs	1.1.0	patch		new	2009-05-16T12:05:23Z	2011-01-30T04:12:19Z	"in verbatim section, escape B<> is not handled.

for example, in docs/book/ch05_pge.pod :

{{{
Run the test script:

  $ B<parrot grammar_test.pir>
}}}

becomes in ch05_pge.pod.html

{{{
<p>Then compile the grammar:</p>

<pre>  $ B&#60;parrot Perl6Grammar.pbc &#45;&#45;output=Contacts.pir Contacts.pg&#62;</pre>
}}}

These escapes were recently added :

 * ch02_getting_started.pod in r38451
 * ch05_pge.pod in r38564

The attached patch removes them."	fperrad
4	1.3.0	850	Handle loadlib and libraries with '.' in the name	library	1.3.0	patch	whiteknight	new	2009-07-18T14:43:12Z	2010-01-25T23:02:41Z	"This ticket originally appeared in RT on Sep 23 2005 as [http://rt.perl.org/rt3/Ticket/Display.html?id=37258 RT #32758], a submission by Ross McFarland.  It has not been resolved.  chromatic looked at it in June 2008, noting that the latest version of the patch submitted by Ross did not synch up properly with our source code.

The original ticket cited [http://www.nntp.perl.org/group/perl.perl6.internals/2005/09/msg30979.html an extensive discussion on the old perl6-internals list].

This ticket was mentioned by [http://wknight8111.blogspot.com/2009/07/parrot4newbies-platforms.html Whiteknight in his blog], also available on [http://planet.parrotcode.org/ planet.parrotcode (July 17)].

I am moving this ticket to Trac.  I am attaching what I think was the last version of the patch submitted in the RT.

Could someone -- particularly someone on Win32 -- take a look at this and determine:

1.  Is there still a problem needing resolution?

2.  Can the patch be reworked to provide a solution?

Thank you very much.

kid51"	jkeenan
4	1.6.0	1056	inter::progs ought to be smarter about finding linker	configure	1.6.0	patch		new	2009-09-21T23:25:27Z	2009-09-21T23:25:27Z	"This issue was first discussed in [http://rt.perl.org/rt3/Ticket/Display.html?id=49558 RT #49558].  I'm quoting Andy Dougherty's original post in its entirety.

""This patch just notes a problem area. In order to pick the correct linker on platforms where there is more than one possibility (e.g. the vendor's cc and gcc), Configure.pl needs to know which compiler is being used. Both solaris.pm and dec_osf.pm (assuming my recent patch is applied) handle this with a callback -- immediately after $cc is set, they run a test program to see if $cc is really gcc. Duplicating this callback code in each hints file seems wrong. Configure really ought to do at least some of that guessing right away.

""(The ????? can be filled in with whatever tag RT assigns this.)""
{{{
diff -r -u parrot-current/config/inter/progs.pm parrot-andy/config/inter/progs.pm
--- parrot-current/config/inter/progs.pm 2008-01-02 08:59:40.000000000 -0500
+++ parrot-andy/config/inter/progs.pm 2008-01-09 08:55:50.000000000 -0500
@@ -91,6 +91,15 @@
if $ask;
$conf->data->set( cc => $cc );

+ # XXX [RT ????? ] Configure should do some intelligent guessing here.
+ # Which linker to pick may well depend on the compiler chosen.
+ # If the user picks 'gcc', then the linker should probably
+ # be either 'gcc' or 'g++'.
+ # If the user picks 'cc', then the linker should probably be
+ # the associated c++ compiler, known as 'c++', 'CC', or 'cxx',
+ # or perhaps something else.
+ # Currently, solaris and dec_osf handle this with callbacks.
+ #
$link = integrate( $conf->data->get('link'), $conf->options->get('link') );
$link = prompt( ""How about your linker?"", $link ) if $ask;
$conf->data->set( link => $link );
}}}
I don't know whether the patch would cleanly apply today.

Thank you very much.[[BR]]
kid51
"	jkeenan
5	1.6.0	1089	rewrite tests for resizableintegerarray as PIR, plus add new tests	testing	1.6.0	patch		new	2009-10-04T01:41:47Z	2010-08-21T18:59:47Z	"http://nopaste.snit.ch/18199

Also includes patch to make sure zero-fill always applies to new elements, although this behaviour could be debated. (IMO zero-fill belongs at the same semantic level as push, pop, shift and unshift. Since resizableintegerarray is (a) derived from fixedintegerarray and (b) does these other things, it seems to me a reasonable place to implement the zero-fill behaviour too.)"	kurahaupo
4	2.2.0	1559	ExtUtils::Command::cp broken [cpan #56666]	none	2.2.0	patch		new	2010-04-17T13:17:09Z	2010-08-27T04:52:54Z	"parrot can improve its makefiles by getting rid of the 
stupid chmod 755 *.dll calls then.
"	rurban
4	2.6.0	1724	Add getprotobyname to Socket PMCs	core	2.6.0	patch	nwellnhof	assigned	2010-08-01T13:15:14Z	2011-08-27T21:50:12Z	"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!"	ocharles
4	2.8.0	1819	mk_language_shell.pl generates broken PMC boilerplate	tools	2.8.0	patch	dukeleto	new	2010-10-08T00:45:59Z	2010-10-09T07:27:09Z	"When one runs mk_language_shell.pl --with-pmc, the resulting boilerplate .pmc file doesn't even compile. There's a ""property"" variable that's used uninitialized, and a mysterious ""shape"" variable that's never defined. What's up with that?

Patch attached.
"	ellefu
1	trunk	760	readline_interactive method no longer returns PMCNULL on eof	core	trunk	patch	whiteknight	new	2009-06-13T13:28:00Z	2011-03-03T17:46:00Z	"Sending EOF to the standard input (typically: hitting Control-G) does not make HLLCompiler end interactive sessions when readline is used.

To reproduce: take your favorite HLL written with HLLCompiler, and a Parrot with readline, and run it without any argument. This should start an interactive session (i.e., you get a prompt for the language), but hitting {{{^G}}} makes HLLCompiler display a new prompt instead of exiting.

This bug has two origins:

* the ""readline_interactive"" method of FileHandle always returns a string (that's because of its type: when it seems to return NULL, it is actually converted to the empty string). On the other hand, HLLCompiler tests if the value returned by ""readline_interactive"" is null to detect EOF: this test is always false... The fix is to test EOF using the ""get_bool"" vtable of FileHandle; and

* the method ""readline_interactive"" never sets the EOF flag when readline is activated.

The attached patch fixes this."	flh
4	2.0.0	1413	Convert planet.parrotcode.org to planet.parrot.org	website	2.0.0	meta	particle	new	2010-01-24T00:52:37Z	2011-06-11T14:23:20Z	"Over the past year we've been trying to move all our online activity from http://parrotcode.org to http://parrot.org.  However, our blog aggregator can still be found ''only'' at http://planet.parrotcode.org; http://planet.parrot.org/ gives a Page Load Error.

We should change this.  We should provide a redirect link that will provide a prompt to people to go to the new site.

Thank you very much.

kid51"	jkeenan
4		1290	Produce Single PBC from Multiple PIR Files with -o	core		feature		new	2009-11-17T04:10:49Z	2011-05-23T19:23:43Z	"After discussing the idea with Allison, we both believe that Parrot should be 
able to produce a single PBC file from a command like:

parrot -o all_files.pbc file1.pir file2.pir ... filen.pir

-- c
"	chromatic
4		1332	change get_string on FPA, RPA (et al?)	none		feature		new	2009-11-25T04:27:53Z	2011-01-14T03:53:59Z	"RPA inherits the get_string vtable from its parent, FPA, which says:

{{{
Returns the number of elements in the array as a Parrot string. (??? -leo)
}}}

??? indeed - why doesn't this return something more useful like, e.g.:  join("" "",@foo) ?

Anyone like the current functionality, or agree with the proposal?"	coke
5		67	Allow user to specify maximum size of GC allocation on command line	core		feature	whiteknight	new	2008-12-19T00:59:33Z	2011-05-19T23:14:40Z	We should have a command line option for parrot that allows us to specify the maximum amount of memory the GC is allowed to allocate	coke
5	1.1.0	659	CONST_STRING in a dynop	core	1.1.0	feature		new	2009-05-11T15:54:54Z	2011-04-30T03:28:09Z	"Hi,

CONST_STRING works nicely in dynpmcs, but today I tried to use it in a dynop and it doesn't seem to be available there (just says its an undefined symbol and fails to link). While my op isn't an especially performance critical one (I'm writing an op 'cus I need to get at guts more than for performance), so using string_from_literal isn't so bad, it would be nice to have been able to use CONST_STRING in there (and others may have an op that will run lots and not creating more short-lived GC-able objects is always a good thing).

Thanks,

Jonathan
"	jonathan
4	1.7.0	1192	[RFE] Redesign Parrot NCI callback functionality	none	1.7.0	feature		new	2009-11-03T20:12:39Z	2011-07-02T22:57:48Z	"This is a migration of RT #50360; original text follows:

Parrot's NCI callback subsystem design will not work (and cannot be
directly extended) for callbacks that do not carry an opaque user data pointer. Many existing callback-based APIs do not fit this description, including certain GUI toolkits such as GLUT.

Allison and others have brainstormed a few possible ideas, but none was fleshed out to the point of being implementable. The following threads on the parrot-porters mailing list covered part of this:

http://tinyurl.com/3crzpu
http://tinyurl.com/3886qw

Also, I've attached some IRC discussion of this (slightly edited as per participant's request).
"	japhb
4	1.9.0	1378	Hash or by-string interface to interp object / interpinfo / sysinfo	none	1.9.0	feature	cotto	new	2009-12-18T03:16:12Z	2009-12-23T07:59:41Z	"See http://irclog.perlgeek.de/parrot/2009-12-18#i_1850474 for details, but basically I would like an NQP- and introspection-friendly interface to sysinfo, interpinfo, and the object returned by getinterp.

Right now, you must index these three with magic integers; this is hidden somewhat through the use of PASM macro constants, but these are not available to NQP or other HLL code.

In addition, it is not possible to cleanly introspect these to find extensions (such as special sysinfo values available only on certain OSen).

An iterable string-keyed hash interface would probably work well for this task.
"	japhb
4	1.9.0	1381	Parrot-based project skeleton creation script	tools	1.9.0	feature	dukeleto	new	2009-12-18T18:56:09Z	2011-05-22T18:00:50Z	"Since not all Parrot projects are languages, it would be nice to have a project skeleton generator morally equivalent to Perl's Module::Starter.

Given `<project-builder> --module=Foo` (for one possible usage example), the following minimal layout might be generated:


    * Foo/
        * lib/
            * Foo.pir
        * t/
            * harness.pir
            * 00-sanity.t
        * setup.pir

setup.pir would manage primary tasks such as build, test, and install.

Extra credit items could include: a flag to define the project as mostly PIR or mostly NQP; a Foo/bin folder whose contents would go into an appropriate location (/usr/local/bin, $PARROT_BIN, whatever); other standard project files such as README."	brianwisti
4	2.10.0	1840	Config step to detect RTEMS	configure	2.10.0	feature	dukeleto	new	2010-10-24T22:41:04Z	2011-03-27T14:41:18Z	"We need a config step that checks for __rtems__ and sets the parrot_config key of 'rtems' to true or false, depending on whether the symbol is defined.
"	dukeleto
4	2.11.0	1958	Byte order of string encodings	core	2.11.0	feature		new	2011-01-12T22:02:19Z	2011-01-12T22:02:19Z	"String encodings that are based on units of more than one byte have different representations depending on byte order. It would be nice if we could support little and big endian at least at the FileHandle level.
"	nwellnhof
4	2.2.0	1516	Allow a build directory to be specified to Configure.pl	configure	2.2.0	feature		new	2010-03-17T23:47:01Z	2011-03-27T15:10:11Z	"To facilitate cross-compiling environments, it would be nice if we had something like

{{{ perl Configure.pl --builddir=/foo/build }}}

See http://lists.parrot.org/pipermail/parrot-dev/2010-March/003992.html for more details.

This feature would greatly help in porting Parrot to Embedded Linux distros as well as RTEMS.


"	dukeleto
4	2.2.0	1524	[RFC] model and implementation of lvalue semantics	none	2.2.0	feature		new	2010-03-22T22:21:55Z	2010-09-17T01:47:31Z	"Need an HLL-friendly model for lvalue semantics; see [wiki:WhyDoesNQPGenerateInefficientCode].
"	allison
4	2.2.0	1532	Dynloadable runcores	core	2.2.0	feature		new	2010-03-27T16:28:38Z	2011-01-31T05:57:41Z	"Some proposed GSoC projects may require creating new runcores with dynpmcs. Currently that is not possible but from the following conversation on #parrot, it seems that the groundwork is there:

{{{
dukeleto> whiteknight: what stands in the way up pluggable runcores right now?
whiteknight>	just hasn't been implemented, to my understanding
                        cotto and chromatic have done all the necessary encapsulation and prettification wok
chromatic> 	We needed pluggable runcores to make the profiling runcore work, but we didn't need 
                        dynloadable runcores so we didn't implement that.
whiteknight>	right, there wasn't a use-case until now
}}}"	dukeleto
4	2.8.0	1799	Allow for rw bffer to be passed by nci 'B' signature.	core	2.8.0	feature		new	2010-09-23T02:00:55Z	2010-09-23T02:18:20Z	"This came up in a discussion between me, the reporter, and whiteknight over IRC.  It appears that nci does not have a good way of passing a rw buffer of data to an external function and retrieving it later and whiteknight had some ideas about how to add the missing functionality.  The functionality provided by the nci 'B' signature comes close but will discard changes to the data before returning.

This ticket is being posted at Mr Whitworth's request and if I have any misunderstanding about what was wanted please feel free to add correction comments etc.  A link to the IRC discussion is here [http://irclog.perlgeek.de/parrot/2010-09-18#i_2840413]."	ronaldws
4	2.8.0	1828	Wanted: A User Tool For Handling Parrot Installations	install	2.8.0	feature		new	2010-10-15T17:51:38Z	2011-05-22T02:10:36Z	"I want to have multiple versions of Parrot available for testing, development, and general convenience. Wrangling these installations should be handled by a single command line tool. 

Sources of inspiration include perlbrew for Perl, rvm for Ruby, and virtualenv for Python. "	brianwisti
4	3.1.0	2045	How about generating man pages for downstream packaging?	docs	3.1.0	feature		new	2011-03-08T09:21:30Z	2011-03-08T09:21:30Z	"Hello

I'm working on updating parrot package for Debian. (parrot 3.0.0)

Debian policy requires that any exe file has its own man page. So man pages must be generated from pod doc during package build. 

I guess that other distro packagers will have to perform a similar task. 

How about providing these man pages upstream to avoid duplicated work downstream ?

All the best"	dod
4	master	1855	Add UINTPTR type into parrot.	core	master	feature		new	2010-11-18T02:33:19Z	2010-11-18T02:33:19Z	"Hello.

For bit manipulations on pointers we do need integral type to hold it. In C99 it's declared as uintval_t. Unfortunately we have to support C89 which doesn't have such declaration. Solution is to provide own define.

Example of usage is in parrot/parrot.h:
{{{
 * NOTE!  UINTVAL is incorrect below.  It should be UINTPTR or something like
 * that. The equivalent of C99's uintptr_t- a non-pointer data type that can
 * hold a pointer.
 */
#define D2FPTR(x) UINTVAL2PTR(funcptr_t, PTR2UINTVAL(x))
#define F2DPTR(x) UINTVAL2PTR(void *, PTR2UINTVAL((funcptr_t) (x)))
}}}"	bacek
3	trunk	1195	Add cross-compiling support to Configure.pl, such as --target=i386-rtems4.10	configure	trunk	feature	bubaflub	new	2009-11-05T03:54:55Z	2011-03-27T14:42:30Z	"Parrot is currently being ported to the RTEMS real-time OS. This means that we need to support cross-compiling.

More info here: 

http://leto.net/dukeleto.pl/2009/11/realtime-embedded-parrots.html"	dukeleto
4	2.10.0	1877	MappedByteArray experimental PMC	none	2.10.0	experimental		new	2010-11-30T22:50:06Z	2010-12-01T00:31:14Z	"The MappedByteArray PMC, developed in the mappedbytearraypmc, has landed in master and the branch is deleted. This PMC is experimental and this ticket track its status,

Its purpose is to give access files mapped in memory in a platform independent way (provided that platform support that feature).

As experimental, its name and interface are open to discussion and can change without previous notice."	NotFound
4	2.5.0	1691	Look into GCC -flto and -fwhole-program link options	none	2.5.0	experimental		new	2010-06-26T20:32:31Z	2010-06-26T20:32:31Z	"-flto is link-time optimization.

-fwhole-program is optimization for the entire program.

From http://lwn.net/Articles/387122/

When source files are compiled and linked using -flto, GCC applies optimizations as if all the source code were in a single file. This allows GCC to perform more aggressive optimizations across files, such as inlining the body of a function from one file that is called from a different file, and propagating constants across files. In general, the LTO framework enables all the usual optimizations that work at a higher level than a single function to also work across files that are independently compiled.

The LTO option works almost like any other optimization flag. First, one needs to use optimization (using one of the -O{1,2,3,s} options). In cases where compilation and linking are done in a single step, adding the option -flto is sufficient

    gcc -o myprog -flto -O2 foo.c bar.c

This effectively deprecates the old -combine option, which was too slow in practice and only supported for C.

With independent compilation steps, the option -flto must be specified at all steps of the process:

    gcc -c -O2 -flto foo.c

    gcc -c -O2 -flto bar.c

    gcc -o myprog -flto -O2 foo.o bar.o

An interesting possibility is to combine the options -flto and -fwhole-program. The latter assumes that the current compilation unit represents the whole program being compiled. This means that most functions and variables are optimized more aggressively. Adding -fwhole-program in the final link step in the example above, makes LTO even more powerful.

When using multiple steps, it is strongly recommended to use exactly the same optimization and machine-dependent options in all commands, because conflicting options during compilation and link-time may lead to strange errors. In the best case, the options used during compilation will be silently overridden by those used at link-time. In the worst case, the different options may introduce subtle inconsistencies leading to unpredictable results at runtime. This, of course, is far from ideal, and, hence, in the next minor release, GCC will identify such conflicting options and provide appropriate diagnostics. Meanwhile, some extra care should be taken when using LTO. "	petdance
4	3.0.0	1996	Function Parrot_ext_try for extenders	embed/extend	3.0.0	experimental	NotFound	assigned	2011-02-04T14:43:28Z	2011-02-04T14:59:33Z	"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.
"	NotFound
4	3.1.0	2034	Experimental Select PMC	core	3.1.0	experimental		new	2011-03-02T08:16:16Z	2011-09-22T02:31:31Z	tewk++ has contributed a Select PMC.  While the interface solidifies, it should be considered experimental.  This ticket exists to track its progress once it's been merged.  (If src/pmc/select.pmc exists, it's been merged.)	cotto
4	branch	2186	Add 6model to Parrot	core	branch	experimental	whiteknight	new	2011-08-27T17:13:06Z	2011-08-27T17:13:13Z	I've started the whiteknight/6model branch to start moving 6model from NQP to Parrot. When it is merged 6model will be considered experimental until it is fully integrated into Parrot core.	whiteknight
4	trunk	754	cross-HLL export/import is experimental	library	trunk	experimental		reopened	2009-06-12T17:42:17Z	2010-06-12T05:25:59Z	"The current method for loading libraries across HLLs, and importing symbols from them, is experimental both in design and implementation.  Because it may take more than one release to get the kinks ironed out, we want to make sure that any users are acutely aware of that experimental status, and don't come to rely on something we plan to change at will.
"	japhb
4	trunk	1581	GC_SYS_NAME option to interpinfo_s_i	core	trunk	experimental		new	2010-04-24T04:45:00Z	2011-07-06T02:56:24Z	"Ability to get the string name of the current GC core from the interpinfo_s_i.
See r43900 and r43904 for details.
"	coke
4	trunk	1582	NCI_FB_CB and NCI_FB_UD in iglobals	core	trunk	experimental		new	2010-04-24T04:46:12Z	2011-07-06T02:52:13Z	Hooks allowing a runtime-loadable dynamic frame builder	coke
4	trunk	1583	loadlib_p_s_p	core	trunk	experimental		new	2010-04-24T04:47:07Z	2011-07-06T02:48:28Z	Ability to use non-default dynamic loading behavior	coke
4	trunk	1598	Archive::Tar & Archive::Zip in parrot library	library	trunk	experimental		new	2010-04-29T13:09:48Z	2011-08-13T16:10:33Z	Track new experimental parrot runtime library module.	coke
4	trunk	1599	experimental packfiledebug PMC	core	trunk	experimental		new	2010-04-29T19:43:29Z	2011-07-06T16:15:01Z		coke
4	trunk	1637	experimental library: LWP, HTTP/Message, URI & URI::Escape	none	trunk	experimental		new	2010-05-14T12:39:57Z	2010-07-21T00:34:55Z		coke
4		218	change function of get_addr and set_addr	core		deprecation	whiteknight	reopened	2009-01-23T22:22:40Z	2010-11-18T19:09:17Z	"I would expect the following code to print out 'a' twice, once for each type.
This patch solves the ticket. But I'm not sure how ""kosher"" is it.
 
 {{{
.sub main
  sortme('ResizablePMCArray')

  $P1 = get_class 'ResizablePMCArray'
  $P0 = subclass $P1, 'RPA'

  sortme('RPA')

.end

.sub sortme
  .param string type
  $P0 = new type
  $P0[0]='z'
  $P0[1]='a'
  .local pmc comparator
  comparator = get_global 'ascii'
  $P0.'sort'(comparator)
  $S0 = $P0[0]
  say $S0
.end

.sub ascii
  .param string a
  .param string b
  $I0 = cmp_str a,b
  .return($I0)
.end
 }}}

Instead, it generates:

{{{
a
Method 'sort' not found for invocant of class 'RPA'
current instr.: 'sortme' pc 53 (foo.pir:21)
called from Sub 'main' pc 25 (foo.pir:10)
}}}

sort is a method on FixedPMCArray; it's inherited by esizablePMCArray. It is apparently then NOT inherited by my PIR level subclass."	coke
4	1.4.0	907	refactor Parrot_mmd_sort_candidates	core	1.4.0	deprecation		new	2009-08-07T18:18:36Z	2010-09-17T02:04:26Z	"The functions 'Parrot_mmd_get_cached_multi_sig', 'mmd_cvt_to_types' and 'mmd_distance', are only called from 'Parrot_mmd_sort_candidates' (in a chain). Those three monolithic functions need to be broken down into a set of smaller, saner, more maintainable static functions.

See http://rt.perl.org/rt3/Ticket/Display.html?id=60626 for the history.
"	allison
4	2.10.0	1868	[DEPRECATED] PIR compiler availability	core	2.10.0	deprecation	whiteknight	assigned	2010-11-23T22:05:33Z	2011-05-22T01:39:15Z	"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."	plobsing
4	2.10.0	1892	[DEPRECATED] Complex PMC	core	2.10.0	deprecation	whiteknight	new	2010-12-14T18:16:23Z	2011-08-27T17:47:02Z	"This PMC is large and neglected. It's implementation is inefficient for the sole purpose of supporting behaviours that are unintuitive. It's code coverage is poor, and some of its operations return incorrect results.

These problems prevent it from being useful to users, so it will be removed.

Users that care about complex math are encouraged to implent their own alternative and make it public for code sharing and cooperation. An implementation by someone who cares about complex math stands a much better chance of being correct and well supported."	plobsing
4	2.10.0	1896	[DEPRECATED] :init Sub flag	none	2.10.0	deprecation		new	2010-12-20T00:40:56Z	2010-12-24T03:41:47Z	"After the changes described in TT #1895, the :init Sub flag is a no-op.

The vestigial code supporting this flag will be removed (but no earlier than 3.4)."	plobsing
4	2.11.0	1961	[DEPRECATED] X-to-Y native pbcs	none	2.11.0	deprecation		new	2011-01-13T20:44:28Z	2011-01-14T04:06:31Z	"In the past, Parrot has voiced supported reading of PBC files created on, and optimized for other platforms.

In practice this usually only worked for PBC files created on x86-linux boxes.

This support will be removed in favour of a PBC format specifically designed for network transport and portability. Every Parrot, regardless of platform, shall be able to create and read PBC files in this format. Native-optimized PBC will still exist, but will not be readable on other platforms."	plobsing
4	2.2.0	1548	[DEPRECATION] new_callback_p_p_p_s	core	2.2.0	deprecation		new	2010-04-12T05:44:07Z	2011-02-26T22:27:17Z	"new_callback inserts data into the user provided userdata parameter.

This opcode will be replaced with one of identical function with the exception of a new output parameter that provides a wrapping userdata object so that parrot's callback system does not trample over user's objects."	plobsing
4	2.2.0	1551	[DEPRECATION] UnManagedStruct handling nested structure	none	2.2.0	deprecation		new	2010-04-12T06:49:43Z	2010-04-12T06:49:43Z	"UnManagedStruct is complicated by the need to handle nested structures. The need to consult nested structures for their shape, support for multi-element keyed lookup, etc...

These are a higher level concepts than ""view this buffer as a collection of these datatypes"", and as such do not belong in UnManagedStruct. Therefore the following aspects of unmanagedstruct are deprecated:
 * remembering structure of nested structured elements. These will now be treated as {{{ void * }}} or {{{ void (*)(void) }}} as appropriate
 * multi-level keyed access"	plobsing
4	2.2.0	1554	[DEPRECATION] ManagedStruct automatic resize on shape change	none	2.2.0	deprecation		new	2010-04-12T06:59:09Z	2010-04-12T06:59:09Z	"Changing the shape of a struct can occur for reasons other than the desire to reallocate, for example, when trying to view contents as different datatypes (emulating perl's pack/unpack).

Also reshapes can take several steps. Reallocating each step is suboptimal. In stead, an allocate/reallocate method should be called after the reshaping is complete to reallocate to the new desired shape."	plobsing
4	2.2.0	1565	[DEPRECATION] NCI signatures	none	2.2.0	deprecation		new	2010-04-20T04:33:03Z	2010-04-20T04:33:03Z	"These need work. More types, more consistency, etc...

This affects the dlfunc and new_callback opcodes as well as the interface NCI pmc exposes to set signatures directly.

See also http://trac.parrot.org/parrot/wiki/NCITasklist."	plobsing
4	2.9.0	1800	"[DEPRECATED] Current behaviour of ""timely destruction"" is deprecated."	GC	2.9.0	deprecation	whiteknight	new	2010-09-23T07:37:59Z	2010-11-24T16:57:07Z	"Current behaviour of ""timely destruction"" of PMC is proven to be unreliable and deprecated."	bacek
4	3.1.0	2028	pcre is deprecated	configure	3.1.0	deprecation		new	2011-02-22T20:59:11Z	2011-02-23T19:17:37Z	"The pcre module is deprecated from core. It will be moved to another repo if someone wants to take care of it, or just removed if not.

This is an early notice, waiting a few days before adding to api.yaml just in case someone has a good reason to keep it.
"	NotFound
4	3.1.0	2035	[DEPRECATED] Pointer, UnManagedStruct, ManagedStruct	none	3.1.0	deprecation		new	2011-03-02T16:31:17Z	2011-03-02T16:31:17Z	"Pointer, UnManagedStruct, and ManagedStruct are slated for removal. 

These have accrued complicated and, in some instances, poorly thought out, convenience functionality. Their replacements, Ptr, PtrBuf, PtrObj, and StructView, do not yet suffer from this, and it is hoped that they will be better guarded against such feature-creep."	plobsing
4	3.1.0	2042	Deprecate VTABLE_can	core	3.1.0	deprecation	cotto	new	2011-03-07T14:22:53Z	2011-07-19T05:55:28Z	"VTABLE_can is defined in two places: object.pmc and default.pmc. In both cases, it performs exactly this operation:

{{{
return !PMC_IS_NULL(VTABLE_find_method(interp, self, name));
}}}

Also, VTABLE_can is not able (yet) to be overridden from PIR code, which means that the vast majority of classes written by users will always have this same exact default behavior.

I suggest we deprecate and remove VTABLE_can. The ""can"" PIR op can remain, but should call VTABLE_find_method directly. "	whiteknight
4	3.5.0	2144	Deprecate do_sub_pragmas	core	3.5.0	deprecation		new	2011-07-07T01:37:19Z	2011-07-07T02:14:49Z	We want do delete the function do_sub_pragmas and stop using it. This is a BIG task and is not something we will be able to do soon. We are going to replace it by a function or functions that return a list of Subs with a given flag. The user can take these lists and choose to execute them or not, whenever they want. 	whiteknight
3	master	1906	[DEPRECATED] Passing non-const STRING* is deprecated.	core	master	deprecation		new	2010-12-26T01:15:28Z	2011-07-19T05:55:06Z	"Hello.

All [*] functions currently accepting naked {{{STRING*}}} argument will accept {{{const STRING*}}}. Which includes public-facing API functions, VTABLEs, etc.

This is for making parrot const-correct in immutable-string world.

(Actual milestone should be 3.3)

-- 
Bacek.

[*] Parrot_str_pin and Parrot_str_unpin will stay in current form."	bacek
3	master	1916	Deprecate freeze, thaw, and thawfinish VTABLEs	core	master	deprecation	cotto	new	2010-12-30T16:38:09Z	2011-08-27T17:08:29Z	"I would like to deprecate the freeze, thaw, and thawfinish vtables as they currently exist. freeze and thaw can both be implemented with the existing ""visit"" vtable. In many cases, freeze and thaw already redirect to visit. For consistency, I would like to rename thawfinish to ""visitfinish"". We do not need to modify thawfinish any further.

"	whiteknight
4	master	1697	Remove the open and close opcodes	core	master	deprecation	whiteknight	new	2010-06-29T18:08:26Z	2011-08-23T16:17:25Z	"The open and close opcodes are redundant and since the IO ops became dynops, have subtle problems, as found by PL/Parrot:

{{{ arg count mismatch: op #1119 'open' needs 17820 given 3 }}}

http://groups.google.com/group/parrot-dev/browse_thread/thread/d99dfeabda257cf1
http://groups.google.com/group/parrot-dev/browse_thread/thread/b8f6e3f2e0f285ff

Uses of the open/close opcode can easily be changed to use the open/close methods on the File or FileHandle PMC.


"	dukeleto
4	master	1870	Move OpenGL Bindings to their own project/repo	library	master	deprecation	whiteknight	new	2010-11-24T14:00:20Z	2011-07-09T11:09:11Z	"We currently have bindings to OpenGL included in the Parrot master repository. I suggest that these should be moved out into their own project. This could give these bindings more visibility, and help them to be treated like any other normal ecosystem project.

I suggested this idea yesterday at #parrotsketch and received very mild support for the idea. I'm opening this ticket as an RFC in an attempt to build more support for it. If we do decide to go this route we can change this to a deprecation and begin the process of moving the bindings out of the repo."	whiteknight
4	master	1969	Deprecate Eval PMC	core	master	deprecation	whiteknight	assigned	2011-01-15T16:00:00Z	2011-10-24T14:45:17Z	We should deprecate this PMC. compregs should return the packfile PMC, or maybe the Sub PMC, but not Eval.	whiteknight
4	master	2138	Deprecate unnecessary NameSpace methods	none	master	deprecation		new	2011-06-25T00:38:32Z	2011-06-25T00:38:32Z	"I have removed a few unnecessary method calls in src/oo.c that were eating up significant performance (coretest time on my system dropped from ~4:40 to ~3:40 by removing them). Now, I think the following methods on NameSpace are unused and should probably be deprecated/removed:

 - set_class
 - get_associated_methods
 - get_associated_vtable_methods

Removing these methods also helps work towards decoupling Class and NameSpace PMC types, which is a goal several devs have.  These methods are typically for internal use and are not typically used by users of Parrot directly, so I suspect we do not need to offer an alternative to any of these things"	whiteknight
4	master	2146	Deprecate load_bytecode op	core	master	deprecation		new	2011-07-09T11:22:13Z	2011-07-26T01:16:00Z	"The load_bytecode op has several problems, not the least of which is bad error-handling semantics (#560) and magical, confusing, unextendable behavior based on file extension. I am working to create a new load_bytecode op with improved semantics, which returns a PackfileView PMC with the loaded result. The new version is not in master yet, but should be shortly after 3.6

I would like to deprecate the old 1-argument form of load_bytecode, so that we can start upgrading users to the newer version over the coming months."	whiteknight
4	master	2168	Deprecate .file, .line, setline, and setfile	imcc	master	deprecation		new	2011-08-01T00:32:45Z	2011-08-01T00:32:45Z	"IMCC supports several syntaxes for setting line number and file name information. Among these are:

{{{
.file ""foo.pir""
.line 123
}}}

And another set:

{{{
setfile ""foo.pir""
setline 123
}}}

The first set are directives using normal directive syntax, but are not used anywhere that I can find in the docs or the test suite. The second set are also directives, even though they are made to look like opcodes. This is confusing. This second set is lightly tested.

I suggest we remove both. .annotate is the method we are using for identifying things like file number and line number information. These other things are mostly-forgotten relics.
"	whiteknight
5	master	1754	The Scalar PMC	core	master	deprecation	whiteknight	assigned	2010-08-23T01:00:14Z	2011-08-17T02:10:33Z	"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."	Paul C. Anagnostopoulos
7	master	2038	Singleton PMCs are deprecated	core	master	deprecation		new	2011-03-04T21:23:40Z	2011-07-19T05:54:05Z	"Parrot shouldn't be responsible for implementing the singleton contract for PMCs. Our current implementation of it is very bad anyway.

If HLLs or other projects want singletons, they should be able to implement the behavior themselves.

Types such as Env and OS don't have state so don't need to be singletons. They are basically just collections of methods, and it's very cheap for us to just create multiple copies of them if needed.

The scheduler is a different story. It does have state, so we need to only have one of those in the system at a time. There are ways to prevent users from creating a scheduler from PIR code. The scheduler reference is available (or should be) by introspecting the current interp PMC.

"	whiteknight
7	master	2111	new_s and new_s_i opcodes	core	master	deprecation		new	2011-05-13T17:55:01Z	2011-11-20T09:41:26Z	"We have two opcodes for creating new, empty strings: new_s and new_s_i (both in src/ops/string.ops). There is a note in that file: 

{{{
XXX: Do these ops make sense with immutable strings?
}}}

My answer is ""no"".

We should deprecate and remove these ops because they are worthless now."	whiteknight
4	trunk	1704	Implicit selection of main sub is deprecated.	imcc	trunk	deprecation	plobsing	new	2010-07-15T11:41:07Z	2011-08-27T16:59:18Z	"After 2.6 current behaviour of selecting main Sub will be changed. Instead of something like ""First sub in PIR file if there is no :main Sub"" we will use only first Sub marked with "":main"" modifier.

Main reason - enable args validation of 0-arity subs. See also http://irclog.perlgeek.de/parrotsketch/2010-07-13#i_2550626 for discussion.

Eligible in 2.7."	bacek
4	trunk	1705	0-args :main Subs will check passed arguments.	none	trunk	deprecation		new	2010-07-15T11:47:53Z	2010-07-15T11:47:53Z	"After 2.6 we'll enable check arguments of 0-args Subs which can break current :main Sub invocation. 

For example
{{{
.sub ""foo"" :main
   say ""Hello world""
.end
}}}
will throw an exception if command-line arguments passed.

For updating from current behaviour :main Sub should declare {{{.param pmc args :slurpy}}} to work with any numbers of arguments. 

See also #1033 for original ""0-args Subs"" ticket.

See also  http://irclog.perlgeek.de/parrotsketch/2010-07-13#i_2550626 for discussion."	bacek
4		357	Enable meaningful testing of t/native_pbc/*.t	testing		cage		new	2009-02-18T22:28:58Z	2011-02-26T12:56:32Z	"Version 0.9.1 was released with failing t/native_pbc/*.t tests.  If the tests are to be included in 1.0, it would be nice to have confidence that they will pass in the released version.

Offhand, I can think of three big problems that contributed to the failure.  I hasten to add that *all* of these were out of the control of the release manager -- they are inherent in the design of the tests.

1.  The tests act differently in ""DEVELOPING"" versus released directories, meaning all the tests done in an svn-checkout -- even those done just prior to release -- weren't necessarily relevant.

2.  The release procedure is difficult in practice.  It is not easy, on short notice, to get developers with all the requisite different platforms to run the appropriate scripts, commit the appropriate files, and re-run all the appropriate tests.  Also, because of item 1, even running all the appropriate tests does not ensure that the tests will actually pass in the released version.

3.  There was no meaningful code freeze prior to the release, making it essentially impossible to do the coordination necessary for item 2.

What to do?

First, if the tests are to be kept, they must be designed so that they can be meaningfully run well in advance of the release.  That way, new raw pbc files can be generated ahead of time, committed, and tested, and failures can be addressed.  If they cannot be redesigned this way, then I think they are too fragile to waste time on, and they should simply be deleted.

Second, I think the ideas of having a code freeze and issuing release candidates merit serious consideration prior to 1.0."	doughera
4		435	languages moved to examples need tests.	none		cage		new	2009-03-11T12:31:37Z	2010-10-13T02:58:35Z	"The tests for {{{examples/languages}}} should:

  1.  be run as part of {{{make examples_tests}}}
  1. Once covered, they should be skipped from {{{t/examples/catchall.t}}} (see line 34 of this file for another skip)

As it stands, the files in that directory are generating even more failures in examples_tests, because they aren't meant to be run from the top level directory, and {{{.include}}}s are failing."	coke
4		1181	make cover doesn't show coverage of *.ops files.	testing		cage		new	2009-11-02T14:29:18Z	2009-12-06T23:59:52Z	"e.g.:

http://tapir2.ro.vutbr.cz/cover/cover-results/42216/c_cover/src-ops-var-ops.html

shows zero coverage of these ops.

We need a way to report on ops coverage. (and if the coverage is displayed in other files, we shouldn't display the *.ops files.)"	coke
5		817	[pmc2c] don't require custom #defines for private flags	build		cage	cotto	new	2009-07-07T22:25:28Z	2010-10-16T22:48:42Z	"It'd be nice if pmc2c didn't require that custom private PObj flags be #defined, but rather provided a way to declare them as part of the pmclass declaration.  The syntax could look something like this:
{{{
pmclass FooClass
    group FooGroup
    extends FooBase {

    ATTR PMC    *foo;
    ATTR INTVAL *bar;

    FLAG FOO_IS_HAVING_A_GOOD_DAY;
    FLAG FOO_IS_WEARING_YELLOW;
}}}

This would be a good introductory task for someone wanting to get into Parrot since it's not urgent and wouldn't cause any compatibility breaks.  The majority of the code that would need to be changed is in lib/Parrot/Pmc2c/Parser.pm and lib/Parrot/Pmc2c/PMCEmitter.pm ."	cotto
4	1.1.0	650	Pmc2c requires major refactoring.	build	1.1.0	cage		new	2009-05-08T13:13:46Z	2011-03-28T01:15:22Z	"After working on #631 Pmc2c has changed and requires some refactorings. For example 

* PMC/RO.pm isn't used heavily anymore.

* Handling of %extra_vt in PMCEmitter.pm can be simplified.

* Code for support ""old"" style MMD should be removed.

* etc.

"	bacek
4	1.3.0	781	[CAGE] Copyedit docs/user/pir/*	docs	1.3.0	cage		new	2009-06-21T18:40:01Z	2009-07-21T01:32:37Z	"These introductory docs are in need of some cleanup, copyediting and so forth.  In particular:

* The docs claim to have last tested the example code with Parrot 0.8.1.  The example code should be tested with a current parrot, and the compatible version notices updated.

* Several places compare confusingly against the behavior of ancient Parrot or PASM as if the user knows the older behavior already.  As these are introductory docs with an audience of users first learning Parrot in the modern era, these comparisons should be removed where unnecessary.  Where the comparisons are still valuable (as when explaining what sugar PIR adds over raw PASM), they should be reworded with the target audience in mind.

* Some paragraphs and sections appear to have been only partially edited at various times, so that later sentences refer to wording that no longer exists in earlier sentences.  For example, I've already fixed one instance in which PMC is defined as ""Polymorphic Container"" and then a joke is made about M standing for ""Magic"".

* A few places refer to ""previous examples"" that don't exist in the document; if these refer to other documents that should be read first, this should be explicitly noted.

* Finally, a basic English prose copyediting pass should be done so that each document flows well.
"	japhb
4	1.4.0	883	Use the right PTR2INTVAL() macro, not (INTVAL) for type conversion	core	1.4.0	cage		new	2009-07-28T14:37:09Z	2010-12-06T07:08:05Z	"As discussed on #parrot, see http://irclog.perlgeek.de/parrot/2009-07-28#i_1349222 for more information.

We should change more place to use PTR2INTVAL() marco, not (INTVAL), see https://trac.parrot.org/parrot/changeset/40306/ for an example."	jimmy
4	1.6.0	1024	[CAGE] OpenGL deprecations in Mac OS 10.6	library	1.6.0	cage		new	2009-09-20T00:15:02Z	2011-07-02T21:40:00Z	"Here's the output from the OpenGL configuration step on Mac OS 10.6, with several relevant deprecation notices.

{{{
gen::opengl -         Generating OpenGL bindings...In OpenGL header '/System/Library/Frameworks/GLUT.framework/Headers/glut.h', can't parse canonicalized prototype for 'glutSurfaceTexture':
  void glutSurfaceTexture(int target, int internalformat, int surfacewin); AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5
Original prototype:
  extern void APIENTRY glutSurfaceTexture (GLenum target, GLenum internalformat, int surfacewin); AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5

In OpenGL header '/System/Library/Frameworks/OpenGL.framework/Headers/CGLIOSurface.h', prototype 'CGLTexImageIOSurface2D', can't handle type 'IOSurfaceRef'; original prototype:
  extern CGLError CGLTexImageIOSurface2D(CGLContextObj ctx, GLenum target, GLenum internal_format, GLsizei width, GLsizei height, GLenum format, GLenum type, IOSurfaceRef ioSurface, GLuint plane);

In OpenGL header '/System/Library/Frameworks/OpenGL.framework/Headers/OpenGL.h', can't parse canonicalized prototype for 'CGLSetFullScreen':
  int CGLSetFullScreen(void* ctx)DEPRECATED_IN_MAC_OS_X_VERSION_10_6_AND_LATER;
Original prototype:
  extern CGLError CGLSetFullScreen(CGLContextObj ctx) DEPRECATED_IN_MAC_OS_X_VERSION_10_6_AND_LATER;

......................done.
}}}"	allison
4	1.6.0	1120	[CAGE] More rigorous testing for constant tables across threads	testing	1.6.0	cage		new	2009-10-19T11:53:35Z	2011-07-02T22:30:54Z	"With the merge of the pcc_reapply branch, test 13 in t/pmc/threads.t will have 3 sections commented out (from r41939). These sections depend on a sub in the constants table being the same as the sub stored in the namespace. This is true for the main interpreter, but not always true for a thread.

Need more extensive testing of the constants table in threads. It could be argued that the constants table should be cloned, or that even direct sub access should be doing a lookup in the namespace for accuracy (with a possible hit in speed)."	allison
4	1.7.0	1175	Get external Perl5 modules out of the parrot repo	configure	1.7.0	cage		new	2009-11-02T03:04:58Z	2010-12-01T19:57:09Z	"I am moving into the Trac system [http://rt.perl.org/rt3/Ticket/Display.html?id=38262 RT 38262], originally created by Jerry Gay in January 2006.

Since that time various interpretations of what the ticket should accomplish have been advanced; see the original ticket for that discussion.   The most recent post in the original ticket was by Coke in February 2009:

''Summing up an IRC conversation with allison from today:''

''- Let's explicitly list which modules we are dual hosting from CPAN.''

''- building parrot (configure & make) shouldn't require anything outside of core perl.''

''- modules that are used for, e.g., 'make html' or other similar targets can be moved to the parrot developer bundle on CPAN.''
"	particle
4	1.7.0	1239	configuration: define MIN/MAX macros for all integral typedefs	none	1.7.0	cage		new	2009-11-08T12:59:53Z	2009-11-08T13:02:16Z	"It's great to have INTVAL and UINTVAL, but without MAX_INTVAL it's kind of
hard to work with them in some respects. All integral typedefs should have
min/max macros. Syntax not a big deal, it can be fixed later, just don't
break anything when introducing them.
-- 
Chip Salzenberg <chip@pobox.com>

PREVIOUSLY tracked in RT#39855"	kjs
4	2.0.0	1453	Improve <null> handling in Test::More.pir	library	2.0.0	cage		new	2010-02-17T02:47:55Z	2010-09-17T02:10:57Z	"I had occasion to pass some null values to Test::More's `is()` multisub, and got an unexpected fault - NULL pmc access, etc.

Bacek mentioned in the commit comments to cs# [43660] that discussion was needed on how Test::More handles null, so I have created this ticket to host that discussion.
 
To get started, I am committing a patch (cs# [44058]) that adds `is_null` as a test assertion, as well as adding support for null values to the various `is()` multisub elements.

I think that ""null happens"", which is especially vexing when calling from NQP to PIR. So I think that any assertion that accepts a PMC type must support the possibility that the PMC type will be null.
 
I have implemented ""null equivalence"" -- that is, null==null, for the assertions. I know this can be argued both ways.

Obvious leftovers include the creation of `isnt_null` and adding null support to the `isnt` assertions, as well as devising a null policy for the other assertions. The `is_deeply` seems to do something with null, but that's about it.
"	Austin_Hastings
5	2.11.0	1941	make warnings_tests:  Correct tests which run with warnings	testing	2.11.0	cage		new	2011-01-09T02:29:43Z	2011-02-18T01:06:43Z	"In the course of work on TT #1922 this evening, I had occasion to run `make warnings_tests` for the first time.  This target will `FAIL` test files which would otherwise `PASS` if they emit warnings.  We should fix all tests such that they run warnings-free.

Here are the files which failed due to warnings:
{{{
Test Summary Report
-------------------
t/compilers/imcc/syn/const.t      (Wstat: 1280 Tests: 35 Failed: 5)
  Failed tests:  15-18, 21
  Non-zero exit status: 5
t/compilers/imcc/syn/errors.t     (Wstat: 1280 Tests: 7 Failed: 5)
  Failed tests:  2-5, 7
  Non-zero exit status: 5
t/compilers/imcc/syn/macro.t      (Wstat: 512 Tests: 42 Failed: 2)
  Failed tests:  31-32
  Non-zero exit status: 2
t/compilers/imcc/syn/pasm.t       (Wstat: 256 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
t/compilers/imcc/syn/regressions.t (Wstat: 256 Tests: 21 Failed: 1)
  Failed test:  15
  Non-zero exit status: 1
t/op/basic.t                      (Wstat: 256 Tests: 23 Failed: 1)
  Failed test:  23
  Non-zero exit status: 1
t/pmc/exception-old.t             (Wstat: 256 Tests: 22 Failed: 1)
  Failed test:  16
  Non-zero exit status: 1
t/pmc/filehandle.t                (Wstat: 512 Tests: 27 Failed: 2)
  Failed tests:  3, 21
  Non-zero exit status: 2
t/pmc/nci.t                       (Wstat: 1280 Tests: 73 Failed: 5)
  Failed tests:  1-3, 60-61
  Non-zero exit status: 5
t/pmc/stringhandle.t              (Wstat: 256 Tests: 25 Failed: 1)
  Failed test:  9
  Non-zero exit status: 1
t/pmc/sub.t                       (Wstat: 768 Tests: 78 Failed: 3)
  Failed tests:  31-32, 44
  Non-zero exit status: 3
Files=205, Tests=7028, 66 wallclock secs ( 0.87 usr  0.39 sys +
 37.84 cusr 10.37 csys = 49.47 CPU)
Result: FAIL
make: *** [warnings_tests] Error 1
}}}"	jkeenan
4	2.5.0	1698	Investigate SAFECode	none	2.5.0	cage		new	2010-06-29T21:13:29Z	2010-06-29T21:13:29Z	"http://safecode.cs.illinois.edu/

The purpose of the SAFECode project is to enable program safety without garbage collection and with minimal run-time checks using static analysis when possible and run-time checks when necessary. SAFECode defines a code representation with minimal semantic restrictions designed to enable static enforcement of safety, using aggressive compiler techniques developed in this project.

SAFECode is designed to provide the following safety guarantees:

    * Array bounds checking (prevents pointers from overflowing from one memory object into another)
    * Loads and stores only access valid memory objects
    * Type safety for a subset of memory objects proven to be type-safe
    * Sound operational semantics in the face of dangling pointer errors (i.e., all safety guarantees hold even when dangling pointers are dereferenced).
    * Optional dangling pointer detection (induces more overhead)

"	petdance
7	3.2.0	2093	Remove :base_core modifier from *.ops files	core	3.2.0	cage	soh_cah_toa	new	2011-04-12T18:39:19Z	2011-04-12T18:56:24Z	"I've noticed that the {{{:base_core}}} modifier only appears in the *.ops files. ''cotto'' and ''benabik'' seem to think that this is just a leftover historical artifact that no longer has a purpose.

That being said, I think it's safe to remove {{{:base_core}}}.

I will take care of this within the next 2-3 days."	soh_cah_toa
5	master	676	Fix namespace pollution	core	master	cage	whiteknight	new	2009-05-17T05:16:07Z	2011-01-15T14:17:27Z	"This is the trac equivalent of RTs #40059 and #40060.

There are many global symbols we're exporting which don't have a ""Parrot_"" prefix.  This list might vary a bit depending on OS and platform, but I'll attach my current list.  By my count, there are currently 182 functions and 1 variable (PMCNULL) exported by default.

I think the idea is that these functions should be renamed from ""funcname"" to ""Parrot_funcname"", and some #defines should be left behind (inside an #ifdef PARROT_IN_CORE) so we don't need to fix up all the callers (and therefore, don't need a deprecation cycle).

I think it would be a good idea to make headerizer do this for us.
"	Infinoid
7	master	2113	FileHandle .puts and .print	core	master	cage		new	2011-05-17T17:29:49Z	2011-05-17T17:29:49Z	"The two methods .print and .puts on the FileHandle PMC are nearly identical.

.puts takes a STRING and .print takes a PMC and converts it to a string using VTABLE_get_string. However, Parrot's PCC system will automatically coerce a PMC argument to a STRING parameter using VTABLE_get_string, so these two sequences are identical. Both methods call Parrot_io_putps with the string value. The only significant difference is that .print returns nothing while .puts returns the return value from Parrot_io_putps.

I suggest we merge the two methods. I don't care which name we keep, although ""print"" seems a little bit more friendly and non-C than ""puts"" does. The method can take a STRING (relying on argument autoconversion) and can return the Parrot_io_putps status value.

The amount of work to merge these methods should be small. However, we are going to need a deprecation cycle to do it."	whiteknight
4	trunk	253	warn on possibly conflicting opengl headers	configure	trunk	cage		new	2009-01-28T18:31:27Z	2010-03-02T15:33:44Z	"a) warn if the opengl header parser finds more than one ""set"" of opengl headers which might lead to nci runtime conflicts.

b) support --with-opengl-include and --with-opengl-libs for disambiguation

per irc discussion with japhb and particle only warn, not fail.
http://irclog.perlgeek.de/parrot/2009-01-28#i_870777

"	rurban
4	trunk	446	[CAGE] Fixed a few warnings and a NCI example on Windows using MSVS	configure	trunk	cage	cotto	new	2009-03-14T12:01:04Z	2010-12-01T19:49:11Z	"Fixed '''warnings''' like unused variables, unreachable code in core.ops[[BR]]
config/gen/platform/win32/exec.c[[BR]]
config/gen/platform/win32/stat.c[[BR]]
include/parrot/encoding.h[[BR]]
src/embed.c[[BR]]
src/oo.c[[BR]]
src/ops/core.ops[[BR]]
src/packfile.c[[BR]]
src/spf_render.c[[BR]]
src/string/encoding.c[[BR]]
src/string/encoding/fixed_8.c[[BR]]
src/thread.c[[BR]]


also Fixed a '''NCI example'''[[BR]]
examples/nci/PQt.C[[BR]]
examples/nci/PQt.cpp[[BR]]
examples/nci/QtHelloWorld.pasm[[BR]]
examples/nci/QtHelloWorld.pir [[BR]]

this is a good way to get comfortable with code base :)[[BR]]


{{{
 CREDITS                          |    2
 config/gen/platform/win32/exec.c |    3
 config/gen/platform/win32/stat.c |    3
 examples/nci/PQt.C               |  149 --------------------------------------
 examples/nci/PQt.cpp             |  151 +++++++++++++++++++++++++++++++++++++++
 examples/nci/QtHelloWorld.pasm   |   22 ++---
 examples/nci/QtHelloWorld.pir    |   69 +++++++++++++++++
 include/parrot/encoding.h        |    8 +-
 src/embed.c                      |    2
 src/oo.c                         |    2
 src/ops/core.ops                 |   13 ++-
 src/packfile.c                   |    2
 src/spf_render.c                 |    3
 src/string/encoding.c            |   10 ++
 src/string/encoding/fixed_8.c    |    8 +-
 src/thread.c                     |    6 +
 16 files changed, 275 insertions(+), 178 deletions(-)
}}}



{{{
:
[FIXED]src\ops\core_ops.c
[FIXED]src\ops\core.ops(920) : warning C4189: 'resume' : local variable is initialized but not referenced
[FIXED]src\ops\core.ops(920) : warning C4189: 'resume' : local variable is initialized but not referenced
[FIXED]src\ops\core.ops(920) : warning C4189: 'resume' : local variable is initialized but not referenced
[FIXED]src\ops\core.ops(920) : warning C4189: 'resume' : local variable is initialized but not referenced
:
[NOT FIXED]src\ops\experimental.ops(52) : warning C4189: 'unused' : local variable is initialized but not referenced
:
:
[FIXED]f:\git\rakudo\parrot\src\ops\core.ops(1453) : warning C4702: unreachable code
[FIXED]f:\git\rakudo\parrot\src\ops\core.ops(1472) : warning C4702: unreachable code
[FIXED]f:\git\rakudo\parrot\src\ops\core.ops(1472) : warning C4702: unreachable code
src\ops\core_ops_switch.c
[FIXED]src\ops\core.ops(920) : warning C4189: 'resume' : local variable is initialized but not referenced
[FIXED]src\ops\core.ops(920) : warning C4189: 'resume' : local variable is initialized but not referenced
[FIXED]src\ops\core.ops(920) : warning C4189: 'resume' : local variable is initialized but not referenced
[FIXED]src\ops\core.ops(920) : warning C4189: 'resume' : local variable is initialized but not referenced
:
[FIXED]src\embed.c(1296) : warning C4189: 'pf' : local variable is initialized but not referenced
[FIXED]src\string\encoding.c
[FIXED]src\string\encoding.c(156) : warning C4646: function declared with __declspec(noreturn) has non-void return type
[FIXED]src\string\encoding.c(445) : warning C4646: function declared with __declspec(noreturn) has non-void return type
:
:
[FIXED]src\packfile.c(868) : warning C4189: 'pf' : local variable is initialized but not referenced
:
[FIXED]src\spf_render.c
[FIXED]src\spf_render.c(115) : warning C4005: 'snprintf' : macro redefinition
[FIXED]F:\git\rakudo\parrot\include\parrot/misc.h(28) : see previous definition of 'snprintf'
:
:
[FIXED]config/gen/platform/win32/stat.c(115) : warning C4244: '=' : conversion from 'time_t' to 'INTVAL', possible loss of data
[FIXED]config/gen/platform/win32/stat.c(118) : warning C4244: '=' : conversion from 'time_t' to 'INTVAL', possible loss of data
[FIXED]config/gen/platform/win32/stat.c(121) : warning C4244: '=' : conversion from 'time_t' to 'INTVAL', possible loss of data
[FIXED]config/gen/platform/win32/exec.c(218) : warning C4090: 'function' : different 'const' qualifiers
src\pmc_freeze.c
f:\git\rakudo\parrot\src\pmc_freeze.c(1725) : warning C4706: assignment within conditional expression
:
:
[FIXED]src\thread.c
[FIXED]f:\git\rakudo\parrot\src\thread.c(639) : warning C4701: potentially uninitialized local variable 'val_sub' used
[FIXED]f:\git\rakudo\parrot\src\thread.c(503) : warning C4700: uninitialized local variable 'interp' used
:
:
[FIXED]src\string\encoding\fixed_8.c
[FIXED]src\string\encoding\fixed_8.c(236) : warning C4646: function declared with __declspec(noreturn) has non-void return type
:


}}}
"	ujwal
4	trunk	869	[cage] t/pmc/iterator.t should be removed	testing	trunk	cage		new	2009-07-21T12:58:58Z	2010-11-05T01:42:57Z	"Hello.

{{{
new 'Iterator', aggregate
}}}
is deprecated and removed.

t/pmc/iterator.t should be removed. Aggregate-specific tests should go into aggregate specific test files. E.g. t/pmc/hashiterator.t and so on."	bacek
4	trunk	1139	Need tests for invoke_sigobject for Sub subclasses.	core	trunk	cage		new	2009-10-23T14:23:09Z	2009-10-23T14:23:09Z	"Hello.

In r42036 I added check to runops for Sub subclasses (bug spotted by fperrad++ in Lua). We need test for it.

-- 
Bacek"	bacek
4	trunk	1143	examples/benchmarks/overload.pir requires rewriting.	testing	trunk	cage		new	2009-10-24T21:31:53Z	2011-07-02T22:45:56Z	"Hello,

after fixing #452 examples/benchmarks/overload.pir doesn't test anything and requires rewriting to use classes inherited from Integer instead of direct use of Integer.

-- 
Bacek"	bacek
5	trunk	1386	Convert t/pmc/exporter.t to PIR	testing	trunk	cage		new	2009-12-21T23:44:54Z	2011-03-06T01:09:52Z		kurahaupo
4		132	Can't thaw a Sub (or a PIR subclass of a Sub)	core		bug	plobsing	new	2009-01-06T03:52:34Z	2010-05-12T05:48:35Z	"Code:

{{{
.sub main :main

  $P0 = get_class 'Sub'
  $P1 = subclass $P0, 'myProc'

  .local pmc pirC
  pirC = compreg 'PIR'

  .local string code
  code = <<""END_CODE""

.sub bar
  say ""hi""
.end
END_CODE

  .local pmc compiled
  compiled = pirC(code)
  compiled = compiled[0] # just want the first executable sub here.

  compiled() # works

  .local pmc sub
  sub = new 'myProc'
  assign sub, compiled
  sub() # works

  $S0 = freeze sub
  say ""frozen""
  $P2 = thaw $S0
  say ""thawed""
  $P2()
.end
}}}

Output:
{{{
hi
hi
frozen
Unsupported key type in Key.thaw
current instr.: 'main' pc 48 (borked.pir:30)
}}}

I'd expect to be able to thaw this PMC, and then invoke the sub after thaw.
"	coke
4		203	assign_pmc broken for pir subclasses?	core		bug		new	2009-01-21T16:05:00Z	2009-07-21T02:19:51Z	"{{{
.sub main

 $P1 = new 'Hash'
 .local pmc undef
 undef = new 'Undef'
 assign $P1, undef
 $S0 = typeof $P1
 say $S0

 $P1 = get_class 'Hash'
 $P2 = subclass $P1, 'myHash'

 $P1 = new 'myHash'
 .local pmc undef
 undef = new 'Undef'
 assign $P1, undef
 $S0 = typeof $P1
 say $S0

.end
}}}

this prints:

{{{
Undef
myHash
}}}

but I expect it to print

{{{
Undef
Undef
}}}

- this is blocking partcl."	coke
4		260	Build error on windows 2008 server	build		bug		new	2009-02-01T18:19:48Z	2011-01-26T02:56:43Z	"{{{
The build process doesn't complete on my windows 2008 server machine. I run activastate perl 5.10 and visual studio 2008 team system edition Version 9.0.21022.8 RTM.
I get a crash in the configure step in test_7304 ( determine JIT capability) as it seems that some executbale is being killed by the DEP ( Data Execution Prevention ) facility provided in windows 2008.

Nmake then manages to buid the parrot executable but doesn't complete correctly; I attach hereafter the last lines of the build log:

  Creating library dan_ops_switch.lib and object dan_ops_switch.exp
       C:\Perl\perlBins\bin\perl.exe -e ""chdir shift @ARGV;system 'nmake', '-no
logo', @ARGV; exit $? >> 8;"" compilers\pct
       ..\..\parrot.exe -o ..\..\runtime\parrot\library\PCT.pbc --output-pbc PC
T.pir
       ..\..\parrot.exe -o ..\..\runtime\parrot\library\PCT\PAST.pbc --output-p
bc src\PAST.pir
       ..\..\parrot.exe -o ..\..\runtime\parrot\library\PCT\Grammar.pbc --outpu
t-pbc src\PCT\Grammar.pir
       ..\..\parrot.exe -o ..\..\runtime\parrot\library\PCT\HLLCompiler.pbc --o
utput-pbc src\PCT\HLLCompiler.pir
       C:\Perl\perlBins\bin\perl.exe -e ""chdir shift @ARGV;system 'nmake', '-no
logo', @ARGV; exit $? >> 8;"" compilers\pge
       C:\Perl\perlBins\bin\perl.exe -MExtUtils::Command -e rm_f PGE.pbc ..\..\
runtime\parrot\library\PGE.pbc
       C:\Perl\perlBins\bin\perl.exe -e """" >PGE\builtins_gen.pir
       ..\..\parrot.exe -o PGE.pbc --output-pbc PGE.pir
       ..\..\parrot.exe ..\..\runtime\parrot\library\PGE\Perl6Grammar.pir  --ou
tput=PGE\builtins_gen.pir PGE\builtins.pg
NMAKE : fatal error U1077: '..\..\parrot.exe' : return code '0xc0000005'
Stop.
NMAKE : fatal error U1077: 'C:\Perl\perlBins\bin\perl.exe' : return code '0x2'
Stop.

}}}"	lucaregini@…
4		285	cmp/bitwise/other mmd vtable functions should not go through proxy pmc	core		bug		new	2009-02-06T23:25:20Z	2011-07-03T17:12:11Z	"In rakudo 1 <=> undef was doing the right thing while undef <=> 1 was failing.  The first case works because integer.pmc has a multi cmp_num for undef and the VTABLE_get_integer(INTERP, value) call on the Failure value was correctly calling the Failure get_integer vtable method.  When I tried to patch undef.pmcI noticed that I was having trouble getting a cmp_num vtable function in that file to call the Failure get_integer vtable method because the value for SELF was an undef pmc rather than a failure pmc.  After further digging I concluded that the cmp_num function was being called through a proxy pmc and cmp_num was behaving differently in that regard from add and subtract which did an mmd call through the default pmc.  The module lib/Parrot/Pmc2c/PMC/Object.pm generates the vtable forwarding functions and relies on the vtable_method_does_multi subroutine in lib/Parrot/Pmc2c/PMC.pm to decide which vtable methods go through a proxy and which don't.

After dropping by #parrot on Feb 5 I was advised that having bitwise and cmp functions go through a proxy pmc might be an oversight and I was asked to come up with an appropriate test if possible.

The patch included (not attached) below relies on the largely baseless assumption that none of the default pmc vtable mmd functions should go through a proxy from an object when I only seem to have been told that fewer of them should.  I thought at least parts of it might be useful if taken fwiw.

The attached patch to t/oo/vtableoverride.t should provide some testing for the desired behavior.

Cheers,
Ron

The fwiw parrot patch:
Index: lib/Parrot/Pmc2c/PMC.pm
===================================================================
--- lib/Parrot/Pmc2c/PMC.pm	(revision 36383)
+++ lib/Parrot/Pmc2c/PMC.pm	(working copy)
@@ -328,14 +328,27 @@
     return $self->vtable->attrs($methodname)->{write};
 }
 
+my $multi_cmp           = qr/cmp(?:_num|_string|_pmc)?/;
+my $multi_logical       = qr/logical_(?:or|and|xor)/;
+my $multi_bitwise       = qr/bitwise_(?:or|and|xor|shl|shr|lsr)/;
+my $multi_bitwise_str   = qr/bitwise_(?:or|and|xor)/;
+my $multi_arithmetic    = qr/add|subtract|multiply|divide|floor_divide|modulus|pow/;
+
+my $multi_bitwise_style         = qr/(?:$multi_bitwise|repeat)(?:_int)?/o;
+my $multi_bitwise_str_style     = qr/(?:$multi_bitwise|concat)(?:_str)?/o;
+my $multi_arithmetic_style      = qr/$multi_arithmetic(?:_int|_float)?/o;
+
+my $multi_bit_or_arith_style = qr/
+    (?:i_)?
+    (?:$multi_bitwise_style|$multi_bitwise_str_style|$multi_arithmetic_style)
+/xo;
+
 sub vtable_method_does_multi {
     my ( $self, $methodname ) = @_;
 
     return 1 if ($methodname =~ m/^
-                (?:i_)?
-                (?:add|subtract|multiply|divide|floor_divide|modulus)
-                (?:_int|_float)?
-              $/x);
+        (?:$multi_cmp|$multi_logical|$multi_bit_or_arith_style)
+    $/xo);
 }
 
 sub super_method {

"	ronaldws
4		304	Some files copyright Melvin Smith	none		bug	allison	new	2009-02-10T03:04:38Z	2010-07-27T21:19:46Z	"To resolve an outstanding copyright issue, the following files need to be updated to reflect a TPF or Parrot Foundation copyright.

The easiest way to do this is to get a CLA (http://www.parrot.org/files/parrot_cla.pdf) from Melvin Smith and update the copyright to the Parrot Foundation.

{{{
imcc/imcc.l
imcc/imcc.y
imcc/imclexer.c
imcc/imcparser.c
imcc/main.c
imcc/parser_util.c
}}}"	coke
4		358	complex NaN	core		bug	dukeleto	assigned	2009-02-19T09:14:33Z	2011-10-19T17:34:21Z	"{{{
$ perl6
> say NaN*1i
NaNNaNi
}}}
All complex ops with NaN should return NaN.

Check the complex ops with NaN, add tests."	rurban
4		378	Deprecation warnings in in config/gen/platform/darwin/dl.c in r37011	core		bug		new	2009-02-26T01:37:59Z	2009-12-18T01:49:21Z	"{{{
config/gen/platform/darwin/dl.c: In function ‘Parrot_dlopen’:
config/gen/platform/darwin/dl.c:129: warning: ‘NSCreateObjectFileImageFromFile’ is deprecated (declared at /usr/include/mach-o/dyld.h:145)
config/gen/platform/darwin/dl.c:133: warning: ‘NSLinkModule’ is deprecated (declared at /usr/include/mach-o/dyld.h:161)
config/gen/platform/darwin/dl.c:137: warning: ‘NSDestroyObjectFileImage’ is deprecated (declared at /usr/include/mach-o/dyld.h:147)
config/gen/platform/darwin/dl.c:144: warning: ‘NSAddImage’ is deprecated (declared at /usr/include/mach-o/dyld.h:230)
config/gen/platform/darwin/dl.c: In function ‘Parrot_dlsym’:
config/gen/platform/darwin/dl.c:218: warning: ‘NSIsSymbolNameDefined’ is deprecated (declared at /usr/include/mach-o/dyld.h:176)
config/gen/platform/darwin/dl.c:220: warning: ‘NSLookupAndBindSymbol’ is deprecated (declared at /usr/include/mach-o/dyld.h:179)
config/gen/platform/darwin/dl.c:226: warning: ‘NSIsSymbolNameDefinedInImage’ is deprecated (declared at /usr/include/mach-o/dyld.h:178)
config/gen/platform/darwin/dl.c:228: warning: ‘NSLookupSymbolInImage’ is deprecated (declared at /usr/include/mach-o/dyld.h:182)
config/gen/platform/darwin/dl.c:235: warning: ‘NSLookupSymbolInModule’ is deprecated (declared at /usr/include/mach-o/dyld.h:181)
config/gen/platform/darwin/dl.c:246: warning: ‘NSAddressOfSymbol’ is deprecated (declared at /usr/include/mach-o/dyld.h:188)
config/gen/platform/darwin/dl.c: In function ‘Parrot_dlclose’:
config/gen/platform/darwin/dl.c:272: warning: ‘NSUnLinkModule’ is deprecated (declared at /usr/include/mach-o/dyld.h:169)
}}}
"	dukeleto
4		411	RFC: Remove or fix SDL	testing		bug		new	2009-03-06T20:10:29Z	2010-07-27T21:08:43Z	"t/examples/catchall.t shows a lot of failures even trying to /compile/ the SDL examples/libraries, let alone run them.

I propose we remove the library and examples before the next supported release - it can go back into a release once it builds again.

Or someone could fix it."	coke
4		457	t/dynpmc/os.t has invalid stat() and lstat() tests.	testing		bug		new	2009-03-16T13:38:44Z	2010-09-23T22:50:48Z	"TT #325 incorrectly put a ""TODO"" on the stat() and lstat() tests for Solaris in t/pmc/os.t.  stat() and lstat() work fine on Solaris.  The problem is that the test is wrong.  It erroneously assumes that the st_dev value reported by one program (parrot, in this case) is necessarily the same as the st_dev value reported by another program (perl, in this case) that might have been compiled in a different mode.  Specifically, on Solaris, the default system perl is compiled in 32-bit mode.  If parrot is compiled in 64-bit mode, it will get a different 'st_dev' value.  That's not a problem because, according to the Solaris man page for stat(2):

{{{ Its value may be used as input to the ustat() function  to determine  more  information about this file system. No other meaning is associated with this value. }}}

The fix is ""simple"":  t/dynpmc/os.t should only compare the last 12 entries returned by stat, not all 13.  Alas, I don't know how to do that in PIR.

This problem is not necessarily specific to Solaris, though that's the platform where a mix of models is most likely to be encountered.

If no one has the time to fix the tests, they should probably be skipped.  Currently, it can result in spurious passing TODOs if perl and parrot happen to have been compiled in the same mode.

'''UPDATE''': Updated description 2010-09-20 to reflect movement of file from ''t/pmc/'' to ''t/dynpmc''."	doughera
4		540	installed versions of dynext/*.so still link to -lparrot in build directory	install		bug	jkeenan	reopened	2009-04-06T15:58:02Z	2011-05-23T00:32:01Z	"The installed *.so files in lib/parrot/<version>/dynext/ are linked to the version of -lparrot in the build directory.

Before changing them to link to the -lparrot in the installed directory, however, it is worth asking whether they should be linked with -lparrot at all.

Once this is all settled, TT #476 should be revisited because it strips all rpath usage to work around this bug."	doughera
4		545	PackFile_unpack followed by PackFile_pack produces wrong results.	core		bug		new	2009-04-08T12:19:51Z	2011-02-19T20:27:03Z	"PackFile_pack for previously unpacked PBC reuses old PackFile_Header which leads to creating incorrect PBC.
"	bacek
4		558	[doc] < is not always escaped in HTML generation	docs		bug		new	2009-04-16T10:07:21Z	2011-01-30T04:13:05Z	"in PIR block (=begin/end), the character < is not escaped to a valid HTML entity.

for example in book/ch03_pir.pod :

{{{
<pre>  .sub _main
      $I0 = 42
      $I1 = 43
      if $I0 < $I1 goto L1
      print ""never printed""
  L1:
      print ""after branch\n""
      end
  .end
</pre>
}}}
"	fperrad
4		559	[doc] POD escape E<> is not handled by HTML generation	docs		bug		new	2009-04-16T10:12:00Z	2011-01-30T04:22:00Z	"for example in book/ch09_pasm.pod,

POD E<#x3C0> is not transformed to HTML entity &#x3C0;

{{{
<pre>  set I0, 42        # set integer register #0 to the integer value 42
  set N3, 3.14159   # set number register #3 to an approximation of E<#x3C0>
}}}"	fperrad
4		579	build failure on Solaris/x86 with GCC and native assembler	core		bug		new	2009-04-24T12:09:21Z	2011-01-17T15:44:07Z		joernc
4		1018	pir compiler must be reentrant	imcc		bug		new	2009-09-17T15:16:52Z	2010-05-10T02:55:49Z	"This ticket can be closed either when IMCC is made re-entrant, or when PIRC (which is re-entrant but not fully functional) is the default pir compiler.

For full history, see the [http://rt.perl.org/rt3/Ticket/Display.html?id=39714 Original report]."	coke
4		1031	Free()ing of SymReg variables	core		bug		new	2009-09-21T03:46:33Z	2011-07-02T21:39:14Z	"From the [http://rt.perl.org/rt3/Ticket/Display.html?id=44993  Original RT]

On Mon, Aug 27, 2007 at 09:00:42AM -0700, Paul Cochrane wrote:

{{{
> In looking through some of the warnings that Coverity Prevent has
> thrown up one common thing has come up which I'd like some advice
> about. We are getting ""leaked storage"" errors often associated with
> variables declared as SymReg[1]. For example, in
> compilers/imcc/pbc.c, at line 1463, the variable 'r' is assigned and
> then goes out of scope a few lines afterwards. This Coverity picks up
> as being leaked storage. However, if I put C<mem_sys_free(r);> at the
> end of the relevant block, C<make test> fails. There are other
> instances as well compilers/imcc/imcparser.c:2964 (i.e.
> compilers/imcc/imcc.y:598) and compilers/imcc/imcparser.c:675,
> compilers/imcc/imcparser.c659 (this time with the variable 'r3').

There are definitely some memory leaks here. I've seen these in Valgrind reports for a while. My best explanation is that we stick these new pointers in memory somewhere, but don't free them appropriately.

I haven't been able to perform sufficient lifetime analysis to track down where they go and where to free them, yet. Patches welcome.

-- c
}}}

As a first step, it would be nice if someone with access to the Coverity reports could verify if this was still being reported as an issue.
"	coke
4		1162	Pg NCI Test Makes Unportable Connection	testing		bug		new	2009-10-30T01:10:23Z	2011-02-25T03:32:09Z	"t/library/pg.t fails pretty miserably on this line:

con = cl.'connectdb'('') # assume table = user is present

I have PostgreSQL installed, but this assumption doesn't work for me. I've 
checked in a skip for the remaining tests in this case, as there's no point 
in running them. (They cause NCI assertion failures, as the NULL connection 
isn't what NCI expects to pass to the Pg functions.)

This test needs another approach to run on multiple platforms successfully. 
Setting an environment variable for user name and password might work better.

-- c
"	chromatic
4		1171	Lexicals and :outer not Thawed Properly from PBC	none		bug		new	2009-11-01T16:42:19Z	2010-08-27T11:48:06Z	"Several tests in t/op/lexicals.t fail when run as PBC (or with parrot -r):

t/op/lexicals (Wstat: 1024 Tests: 47 Failed: 4)
Failed tests: 38, 40-41, 43

$ ./parrot t/op/lexicals_38.pbc
20
Bug: Context 811aee8 :outer points back to itself.
current instr.: '&g' pc 21 
(/home/chromatic/dev/parrot/t/op/lexicals_38.pir:17)
called from Sub '&main' pc 56 
(/home/chromatic/dev/parrot/t/op/lexicals_38.pir:26)

$ ./parrot t/op/lexicals_40.pbc
Null PMC access in get_string()
current instr.: '&g' pc 9 (/home/chromatic/dev/parrot/t/op/lexicals_40.pir:14)
called from Sub '&main' pc 33 
(/home/chromatic/dev/parrot/t/op/lexicals_40.pir:20)

$ ./parrot t/op/lexicals_41.pbc
Null PMC access in get_string()
current instr.: '&g' pc 9 (/home/chromatic/dev/parrot/t/op/lexicals_41.pir:15)
called from Sub '&main' pc 43 
(/home/chromatic/dev/parrot/t/op/lexicals_41.pir:22)

$ ./parrot t/op/lexicals_43.pbc
(hangs; interrupted)

I suspect these are all the same problem, and are related to RT #60650.

-- c"	chromatic
4		1173	NCI segfaults with null pcc_params_signature	core		bug		new	2009-11-01T16:49:45Z	2011-08-23T16:19:52Z	"changes in r32203 cause mod_parrot to segfault, as the param signature is 
an uninitialized string. specifically, the pcc_params_signature NCI 
attribute is null. not sure if this corresponds to a specific parrot 
test...

creating the signature as a constant string appears to cause this problem, 
as removing PObj_constant_FLAG from src/pmc/nci.pmc:82 ""fixes"" the issue, 
though that's most certainly not a solution.

chromatic thinks we need more COW: ""My theory is that the JIT STRING 
conversion needs a Parrot_make_COW_reference.""

tewk has a workaround: ""short-term comment tools/build/nativecall.pl:308 
to disable jitted NCI""

backtrace is included, now with more stack smashing!
{{{
Program received signal SIGSEGV, Segmentation fault.
0x40798304 in Parrot_init_arg_sig (interp_unused=0x81b7bf8, ctx=0x832fd78,
sig=0x0, ap=0x0, sti=0xbffff398) at src/inter_call.c:422
422 if (*sig) {
(gdb) bt
#0 0x40798304 in Parrot_init_arg_sig (interp_unused=0x81b7bf8, 
ctx=0x832fd78,
sig=0x0, ap=0x0, sti=0xbffff398) at src/inter_call.c:422
#1 0x40797f6c in Parrot_init_arg_nci (interp=0x81b7bf8, st=0xbffff36c,
sig=0x0) at src/inter_call.c:276
#2 0x082f6451 in ?? ()
#3 0x081b7bf8 in ?? ()
#4 0xbffff36c in ?? ()
#5 0x00000000 in ?? ()
#6 0x08193458 in ?? ()
#7 0x08310418 in ?? ()
#8 0x00000200 in ?? ()
#9 0x40cdd2d8 in ?? ()
#10 0x082dda10 in ?? ()
#11 0x0832fd78 in ?? ()
#12 0x00000001 in ?? ()
#13 0x00000000 in ?? ()
#14 0x00000000 in ?? ()
#15 0x00000000 in ?? ()
#16 0x00000000 in ?? ()
#17 0x081b7bf8 in ?? ()
#18 0x08193458 in ?? ()
#19 0x00000100 in ?? ()
#20 0x407a0bc3 in key_next (interp=0x81b7bf8, key=0x82e1f4c) at 
src/key.c:480
#21 0x40938a6e in Parrot_NCI_invoke (interp=0x81b7bf8, pmc=0x82e1f4c,
next=0x40cdd2ec) at nci.pmc:303
#22 0x40717116 in Parrot_invokecc_p (cur_opcode=0x40cdd2e4, 
interp=0x81b7bf8)
at core.ops:475
#23 0x407cd83c in runops_slow_core (interp=0x81b7bf8, pc=0x40cdd2e4)
at src/runops_cores.c:222
#24 0x4079edb9 in runops_int (interp=0x81b7bf8, offset=80)
at src/interpreter.c:938
#25 0x4079f65f in runops (interp=0x81b7bf8, offs=80) at 
src/inter_run.c:101
#26 0x4079f904 in runops_args (interp=0x81b7bf8, sub=0x82dd7fc, 
obj=0x8328fd4,
meth_unused=0x826cc5c, sig=0x40ad50e5 ""v"", ap=0xbffff594 ""\2172\b"")
at src/inter_run.c:236
#27 0x4079fc96 in Parrot_run_meth_fromc_args (interp=0x81b7bf8, 
sub=0x82dd7fc,
obj=0x8328fd4, meth=0x826cc5c, sig=0x40ad50e5 ""v"") at 
src/inter_run.c:426
#28 0x409a9042 in initialize_parents (interp=0x81b7bf8, object=0x8328fd4,
all_parents=0x8329108) at class.pmc:344
#29 0x409aaf7c in Parrot_Class_instantiate (interp=0x81b7bf8, 
pmc=0x832923c,
init=0x82c8028) at class.pmc:1131
#30 0x40736446 in Parrot_new_p_pc (cur_opcode=0x40c981b0, 
interp=0x81b7bf8)
at pmc.ops:130
#31 0x407cd83c in runops_slow_core (interp=0x81b7bf8, pc=0x40c981b0)
at src/runops_cores.c:222
#32 0x4079edb9 in runops_int (interp=0x81b7bf8, offset=2101)
at src/interpreter.c:938
#33 0x4079f65f in runops (interp=0x81b7bf8, offs=2101) at 
src/inter_run.c:101
#34 0x4079f904 in runops_args (interp=0x81b7bf8, sub=0x82e17f8, 
obj=0x82c8028,
meth_unused=0x0, sig=0x4043b4d5 ""IP"",
ap=0xbffff7ec 
""\2242\b-\btz,\b<-\bT\027.\b\024C@H\027ZC@{\033\b\001#\bIC@x\2242\b`<\bHO\223\025@-\b\2242\b0\2252\b("")
at src/inter_run.c:236
#35 0x4079fe56 in Parrot_runops_fromc_arglist_reti (interp=0x81b7bf8,
sub=0x82e17f8, sig=0x4043b4d5 ""IP"",
args=0xbffff7ec 
""\2242\b-\btz,\b<-\bT\027.\b\024C@H\027ZC@{\033\b\001#\bIC@x\2242\b`<\bHO\223\025@-\b\2242\b0\2252\b("")
at src/inter_run.c:527
#36 0x4078995c in Parrot_call_sub_ret_int (interp=0x81b7bf8, 
sub=0x82e17f8,
signature=0x4043b4d5 ""IP"") at src/extend.c:929
#37 0x4043834b in modparrot_call_sub_IP (interp=0x81b7bf8,
namespace=0x82301d0 ""PIR"", name=0x4043af49 
""post_read_request_handler"",
ret=0xbffff878, pmc=0x83294a4) at src/parrot_util.c:167
#38 0x40435a17 in modparrot_call_meta_handler (interp=0x81b7bf8,
hll=0x82301d0 ""PIR"", hook=0x4043af49 ""post_read_request_handler"",
ret=0xbffff878) at src/mod_parrot.c:233
#39 0x40435e91 in modparrot_meta_post_read_request_handler (r=0x83cab60)
at src/mod_parrot.c:382
}}}"	jhorwitz
4		1201	Parrot::Pmc2c::Emitter line # error	core		bug		new	2009-11-05T05:49:16Z	2011-02-25T03:16:28Z	"New ticket opened from comment on list in thread 'Re: Warnings on
Solaris, Pmc2c usage/design bug', from Andrew Johnson.

----

BTW, there is a fundamental problem with this very common usage of a
Parrot::Pmc2c::Emitter:

$e->emit( <<""END"", __FILE__, __LINE__ + 1 );
... code ...
END

In the above usage, __LINE__ returns the line number of the line containing
the ""END"" marker, not that of the line containing the ""emit"" call, so the
#line directive it emits points to the wrong place in the source file.
"	coke
4		1202	build - header file detection w/o perl5	configure		bug		new	2009-11-05T06:00:05Z	2010-09-20T00:07:07Z	"auto::headers uses the Config module to detect installed header files.
It's ok to get default values and the arch name from Config but it's not
OK to depend on it for probing the system as the Configure code will
liked be compiled down to PIR someday so it can be executed by
miniparrot and systems that don't have perl5 installed.
"	jhoblitt@…
4		1292	Correct destruction of PackFile objects	none		bug		new	2009-11-17T04:34:52Z	2009-11-17T04:34:52Z	"Originally opened as http://rt.perl.org/rt3/Ticket/Display.html?id=46687

{{{
In src/pmc/eval.pmc:thaw() there is the todo item (with some context):

/*
* XXX this isn't ok - it seems that the packfile
* gets attached to interp->code and is
* destroyed again during interpreter destruction
*/
/* PackFile_destroy(INTERP, pf); */

This issue needs correcting such that the PackFile object is cleanly
destroyed.
}}}

jonathan:
{{{
This problem will go away once packfiles are garbage collectable, as
specified in the bytecode PDD
}}}"	coke
5		277	revive examples/c/test_main	testing		bug	whiteknight	new	2009-02-06T07:14:47Z	2010-11-22T20:29:25Z	"Attached patch makes examples/c/test_main.c work again.

It is a useful example for 
  make exec EXEC=examples/c/test_main
So I also added $(EXEC).o as convenience dependency for make exec

"	rurban
4	1.0.0	476	Binaries should not contain rpath	install	1.0.0	bug		reopened	2009-03-19T20:14:26Z	2011-02-25T15:09:31Z	"Unfortunately I have to find out, that the created binaries of parrot contains rpath. According to the Fedora packaging guidelines binaries should not contain rpaths. Instead a separate `ld.so.conf` file should be used.

I was able to remove the rpaths with chrpath but this is not the preferred way to do this."	JSchmitt
4	1.0.0	555	perldoc detection fails if build runs as root	configure	1.0.0	bug		reopened	2009-04-14T22:37:53Z	2009-06-16T17:23:44Z	"If you build parrot as root, the detection of perldoc
will always fail.  The reason is that perldoc for security
reasons runs as either 'nobody', 'nouser' or uid -2.
Therefore, it cannot write to a file given as the argument
to perldoc's -d option, when that file is created by File::Temp,
since it's owned by root and has mode 0600.

It also appears to me that the first part of the perldoc
test is ... a little sketchy in how it should behave?
capture_output doesn't collect STDERR output, it captures
STDOUT output.

I know, using > instead of perldoc's -d option is possibly
port unfriendly to non-Unix systems, so a better way of
testing should probably be found.  In my case, I do this
for only Unix-y systems, so permit myself some leeway here.

Patch to be attached.

Regards,

- Håvard
"	heidnes
4	1.0.0	792	Bug in subroutine calling conventions	core	1.0.0	bug		new	2009-06-26T14:14:39Z	2010-04-20T21:13:59Z	"When running this code with the command 'parrot -':

    .sub 'main' :main
        'aux'(5, 'hello', ""b"" => 3.14)
    .end

    .sub 'aux' 
        .param int a

        .param num b :named(""b"")

        .param string c :optional

        .param int has_c :opt_flag

        say a

        say b

        say c
    .end

I get this error:

    FixedIntegerArray: index out of bounds!

    current instr.: 'aux' pc 16 (-:5)

    called from Sub 'main' pc 11 (-:2)"	Axle
4	1.2.0	697	"Parrot::Test ""language_output_is"" fails in installed parrot."	install	1.2.0	bug		new	2009-05-21T15:52:18Z	2011-07-02T22:24:16Z	"In [http://code.google.com/p/partcl/ partcl], any of the perl based tests are failing: 

{{{
$ prove t/cmd_cd.t
[17:47:47] t/cmd_cd.t .. 1/3
#   Failed test 'cd too many args'
#   at t/cmd_cd.t line 17.
#          got: ''
#     expected: 'wrong # args: should be ""cd ?dirName?""
# '
# '/usr/local/lib/parrot/1.2.0/tools/parrot  ........../tcl.pbc t/cmd_cd_1.tcl' failed with exit code -1
}}}

Looks like the path to parrot is wrong (This is on feather), and the path to tcl.pbc is wrong, assuming those ...'s are literal.
"	coke
4	1.3.0	800	Parrot assumes command line arguments are ASCII	core	1.3.0	bug	chromatic	new	2009-06-30T13:34:45Z	2011-02-21T14:17:38Z	"Currently Parrot (incorrectly) assumes that all command line arguments are ASCII:

{{{
$ cat x.pir
.sub 'main'
    .param pmc args

    $S0 = args[1]
    say $S0

    $I1 = charset $S0
    $S1 = charsetname $I1
    say $S1

    $I1 = encoding $S0
    $S1 = encodingname $I1
    say $S1

    $I1 = length $S0
    say $I1
.end
$ ./parrot x.pir 'say «hello»'
say «hello»
ascii
fixed_8
13
$ 
}}}

Most would expect the above to be a unicode/utf8 string of length 11.

If Parrot itself cannot be easily changed to accept unicode/utf8 command line arguments, then it would be nice to have a way to easily convert the ""ascii"" strings in args into proper unicode strings.  Thus far I've been unable to find a good way of doing that.

This ticket also relates to Rakudo RT #66364.

Pm"	pmichaud
4	1.3.0	802	freeze opcode segfaults on working bytecode from Rakudo	core	1.3.0	bug	whiteknight	new	2009-07-02T15:20:50Z	2011-08-27T16:50:29Z	"The following compiles bytecode from PIR and perl6 source strings and verifies that a subroutine works in both cases. The PIR example can be frozen (and thawed in other tests) but the perl6 example causes freeze to segfault. Tested only on linux/amd64. Fixing this would be assist a project to build a versioned module database for Rakudo (Synopsis 11).
{{{
# freeze-test.pir
# Assumes parrot was installed by Rakudo's Configure --gen-parrot
# - edit the load_bytecode line otherwise.

.sub 'testmain' :main
    .local string testPIRsource
    testPIRsource = <<'    testPIRsource_end'
        .sub test_PIR
            .param string x
            .local string result
            result = 'test PIR '
            result .= x
            .return ( result )
        .end
    testPIRsource_end
    .local pmc PIRcompiler, testPIRbytecode, parrotnamespace, test_PIR
    PIRcompiler = compreg 'PIR' # parrot/docs/pdds/draft/pdd06_pasm.pod
    testPIRbytecode = PIRcompiler( testPIRsource )
    parrotnamespace = get_root_namespace [ 'parrot' ]
    test_PIR = parrotnamespace.'find_sub' ('test_PIR')
    $S0 = test_PIR ( '10 b' ) # execute the generated bytecode
    print $S0
    say ' PIR code compiled, ready to be frozen'

    .local string testP6source
    testP6source = <<'    testP6source_end'
        sub test_P6 ( Str $x ) {
            return ""test P6 $x"";
        }
    testP6source_end
    # the next line assumes rakudo configured with --gen-parrot
    load_bytecode '../perl6.pbc' # adjust directory if different
    .local pmc P6compiler, testP6bytecode, P6namespace, test_P6
    # see similar code in .sub 'eval' in rakudo/src/builtins/control.pir
    P6compiler = compreg 'perl6'
    testP6bytecode = P6compiler.'compile' ( testP6source )
    P6namespace = get_root_namespace [ 'perl6' ]
    test_P6 = P6namespace.'find_sub' ('test_P6')
    $S0 = test_P6 ( '10 c' )
    print $S0
    say ' Perl 6 code compiles, ready to be frozen'

    .local string frozenPIR, filename
    frozenPIR = freeze testPIRbytecode
    filename  = ""/tmp/bytecode_from_PIR.frozen""
    .local pmc filehandle
    filehandle = open filename, ""w""
    print filehandle, frozenPIR
    close filehandle
    $I0 = stat filename, 1 # 1 means get file size
    print $I0
    say ' bytes frozen from PIR'

    .local string frozenP6
# Uncomment the next line to see the problem
#   frozenP6 = freeze testP6bytecode            # segfaults
    filename  = ""/tmp/bytecode_from_P6.frozen""
    filehandle = open filename, ""w""
    print filehandle, frozenP6
    close filehandle
    $I0 = stat filename, 1 # 1 means get file size
    print $I0
    say ' bytes frozen from Perl 6'

.end

# Original problem encountered in:
# http://gitorious.org/parrot-module-lib/main/blobs/master/t/10-make-bytecode.t
}}}"	mberends
4	1.3.0	816	PMC 'Undef' does not support logical_not	core	1.3.0	bug		new	2009-07-06T19:25:27Z	2009-09-14T10:19:30Z	"This code in Close:
{{{
   ok(!(o.flat()), ""flat: New object (undef flat) is false"");
}}}
compiles to:
{{{
    $P51 = o.""flat""()
    not $P52, $P51
    ""ok""($P52, ""flat: New object (undef flat) is false"")
}}}
And then fails, with:
{{{
logical_not() not implemented in class 'Undef'
}}}

Grepping for logical_not in *.pmc gives back only scalar.pmc.
 
  * While I know that Perl's Undef has 0/nil/false/"""" behavior, is that right for Parrot? (To what extent is Undef just a safe Null?)
 
  * Should there even be a 'not' opcode? We've got isfalse.

  * Should other pmc types be implementing logical_not? 

  * Should Undef be a subclass of scalar, and so inherit?
"	Austin_Hastings
4	1.3.0	848	'spawnw' return value:  make it OS-independent	core	1.3.0	bug		new	2009-07-18T13:49:05Z	2009-07-18T13:49:05Z	"This ticket formerly existed as RT #36619. It was entered into RT by particle on 21 Jul 2005. I am moving it to Trac at [http://wknight8111.blogspot.com/2009/07/parrot4newbies-platforms.html the suggestion of whiteknight on his blog], which is also available on [http://planet.parrotcode.org/ planet.parrotcode (July 17)].

Original ticket description:

'''the return value from 'spawnw' is highly system dependent as currently implemented. instead, 'spawnw' should return something object-like, that wraps the platform-specific semantics.'''

Here are some files in our distribution that will be relevant to working on this ticket:
{{{
config/gen/platform.pm
config/gen/platform/ansi/exec.c
config/gen/platform/generic/exec.c
config/gen/platform/generic/memexec.c
config/gen/platform/openbsd/memexec.c
config/gen/platform/win32/exec.c
src/ops/sys.ops
tools/dev/pbc_to_exe.pir
t/op/spawnw.t
t/pmc/sys.t
docs/book/draft/ch10_opcode_reference.pod
docs/porting_intro.pod
}}}
Cf. also TT #847.

"	jkeenan
4	1.3.0	864	on Win32 binary install, parrot_config.exe contains false installation path	install	1.3.0	bug		new	2009-07-20T14:39:58Z	2010-09-07T20:42:42Z	"Parrot was downloaded and installed as a binary from sourceforge. 
After installation, it doesn't register the correct installation path:

PS D:\Erez\dev\Parrot-1.3.0\bin> .\parrot_config.exe build_dir
C:/fperrad/Parrot/RELEASE_1_3_0

Attached full parrot_config.exe --dump"	erez
5	1.3.0	799	Configure should explicitly check for symbolic link capability on Linux	configure	1.3.0	bug		new	2009-06-28T23:46:01Z	2011-07-02T20:42:13Z	"I'm running linux for Parrot work, but the underlying filesystem is NTFS, mounted r/w. This means that Configure.pl will detect my system as being linux, but it also means that symlinks don't work in the build area (ironically, they DO work in /usr/**, but not in /home/austin/parrot).
 
When evaluating capabilities, Configure.pl should check to ensure that symlinks work. Presently, the build fails when trying to link a versioned .so to an unversioned on inside blib/lib. (I work around this by cp'ing it, and restart the make.)"	Austin_Hastings
5	1.3.0	855	config/init/defaults.pm:  Profiling options are too specific to GCC	configure	1.3.0	bug	jkeenan	assigned	2009-07-19T23:46:59Z	2011-01-03T22:54:34Z	"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"	jkeenan
4	1.4.0	879	isa does not take (correctly) namespace, pmcarray,stringarray	core	1.4.0	bug		new	2009-07-28T08:35:10Z	2009-07-28T19:36:24Z	"When running this code isa returns true while it should return false

$P1 = #object of type 'FOO::BAR::TEST'

$P3 = get_hll_namespace [ 'FOO';'BAR2';'Object']

$I1 = isa $P1,$P3

returns true must be false

$P3 = string array with elements ""FOO"",""BAR"",""TEST""

$I1 = isa $P1,$P3

returns fasle must be true

I solved this problem by replacing the    

 VTABLE INTVAL isa_pmc(PMC *lookup) 

function with the following code

    VTABLE INTVAL isa_pmc(PMC *lookup) {

       Hash   * const isa_hash = SELF->vtable->isa_hash;

+      PMC    *classobj;

       STRING *pmc_name;

       if (PMC_IS_NULL(lookup))

            return 0;
            
+      classobj = Parrot_oo_get_class(interp, lookup);

+      if (PMC_IS_NULL(classobj))

+         return 0;

-+     pmc_name = VTABLE_get_string(interp, classobj);

       if (!isa_hash)

         return Parrot_str_equal(interp, SELF->vtable->whoami, pmc_name);

       /* RT #46665 - walk mro */

       return parrot_hash_exists(INTERP, isa_hash, (void*)pmc_name);

    }

I'am not sure it's completely correct, because i do not know how the mro isa_hash is build up.

Adding this code will make 2 test failing in the t/tests/objects.t test set, because there are more bugs present, I made seperate ticket for that one

"	jessevdam
4	1.4.0	880	"class associated to namespace [""parrot"";""Class""] gets overridden"	core	1.4.0	bug		new	2009-07-28T09:05:09Z	2009-07-28T12:10:11Z	"When running the following code the the class associated to the [""parrot"";""Class""] namespace gets overridden by the Foo9 class obj
   
newclass $P1, ""Foo9""

typeof $P6, $P1

$P3 = get_root_namespace [""parrot"";""Class""] 

$P4 = get_class $P3

print $P4

return ""Foo9"" instead of the expected ""Class""

the function get_class in the default.pmc calls the pmc_new_init(interp, enum_class_PMCProxy, type_num); 
where the self object points to the Foo9 class obj.

In init_pmc in pmcproxy.pmc the interp->vtables[self->type_num = 102 in my case]->_namespace; points to the parrot;class namespace. Because this function effectually calls 
Parrot_PCCINVOKE(interp, interp->vtables[self->type_num]->_namespace = parrot;Class, CONST_STRING(interp, ""set_class""), ""P->"", SELF = class of Foo9);
the class associated to the parrot;Class namespace gets overridden.

I solved this problem by adding following line to init_class_from_hash in the class.pmc
new_vtable->_namespace        = new_namespace; 

But I don't know for what reason the interp->vtables[type_num]->_namespace is different from the interp->vtables[type_num]->pmc_class->_namespace

So I do not know whether this is the right solution to this problem.

But I added a special ticket for this because there is another bug.

''Test''

The test in t/pmc/objects.t fails to detect this condition because of the bug described in ticket #879. 
But adding a special test with the code described above would be good thing to do.


"	jessevdam
4	1.4.0	919	On Mac OS X 10.5.8, Configure.pl : lazy symbol binding failed	configure	1.4.0	bug	Util	assigned	2009-08-14T19:41:13Z	2011-06-11T01:11:37Z	"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
}}}
"	jgabr
4	1.4.0	924	OpenGL examples not working on OS X	none	1.4.0	bug		new	2009-08-15T07:47:41Z	2010-11-28T06:50:43Z	"{{{
$ ./parrot examples/opengl/shapes.pir
Could not find a suitable GL shared library!
current instr.: 'parrot;OpenGL;_load_lib_with_fallbacks' pc 172 (runtime/parrot/library/OpenGL.pir:176)
called from Sub 'parrot;OpenGL;_load_opengl_libs' pc 57 (runtime/parrot/library/OpenGL.pir:117)
called from Sub 'parrot;OpenGL;_opengl_init' pc 9 (runtime/parrot/library/OpenGL.pir:92)
called from Sub 'init_glut' pc 131 (examples/opengl/shapes.pir:71)
called from Sub 'main' pc 26 (examples/opengl/shapes.pir:40)
}}}
This is after OpenGL is detected by Configure.pl :
{{{
$ perl Configure.pl 
Parrot Version 1.4.0 Configure 2.0
Copyright (C) 2001-2009, Parrot Foundation.

Hello, I'm Configure. My job is to poke and prod your system to figure out
how to build Parrot. The process is completely automated, unless you passed in
the `--ask' flag on the command line, in which case I'll prompt you for a few
pieces of info.

Since you're running this program, you obviously have Perl 5--I'll be pulling
some defaults from its configuration.

init::manifest -      Check MANIFEST.....................................done.
init::defaults -      Set Configure's default values.....................done.
init::install -       Set up installation paths..........................done.
init::hints -         Load platform and local hints files................done.
init::headers -       Find header files distributed with Parrot..........done.
inter::progs -        Determine what C compiler and linker to use........done.
inter::make -         Is make installed...................................yes.
inter::lex -          Is lex installed................................skipped.
inter::yacc -         Is yacc installed...............................skipped.
auto::gcc -           Is your C compiler actually gcc................yes, 4.0.
auto::glibc -         Is GNU libc installed................................no.
auto::backtrace -     Does libc have the backtrace* functions.............yes.
auto::msvc -          Is your C compiler actually Visual C++..........skipped.
auto::attributes -    Detect compiler attributes.........................done.
auto::warnings -      Detect supported compiler warnings..........set for gcc.
init::optimize -      Enable optimization..................................no.
inter::shlibs -       Determine flags for building shared libraries......done.
inter::libparrot -    Should parrot link against a shared library.........yes.
inter::charset -      Which charset files should be compiled in..........done.
inter::encoding -     Which encoding files should be compiled in.........done.
inter::types -        What types should Parrot use.......................done.
auto::ops -           Which opcode files should be compiled in...........done.
auto::pmc -           Which pmc files should be compiled in..............done.
auto::alignptrs -     Determine your minimum pointer alignment........ 1 byte.
auto::headers -       Probe for C headers................................done.
auto::sizes -         Determine some sizes...............................done.
auto::byteorder -     Compute native byteorder for wordsize.....little-endian.
auto::va_ptr -        Test the type of va_ptr...........................stack.
auto::format -        What formats should be used for sprintf............done.
auto::isreg -         Does your C library have a working S_ISREG..........yes.
auto::arch -          Determine CPU architecture and OS..................done.
auto::jit -           Determine JIT capability.............................no.
auto::cpu -           Generate CPU specific stuff........................done.
auto::funcptr -       Does compiler support function pointer casts.......done.
auto::cgoto -         Does your compiler support computed goto............yes.
auto::inline -        Does your compiler support inline...................yes.
auto::gc -            Determine allocator to use.........................done.
auto::memalign -      Does your C library support memalign........already set.
auto::signal -        Determine some signal stuff........................done.
auto::socklen_t -     Determine whether there is socklen_t................yes.
auto::neg_0 -         Determine whether negative zero can be printed......yes.
auto::env -           Does your C library have setenv / unsetenv.........both.
auto::thread -        Does your system has thread.........................yes.
auto::gmp -           Does your platform support GMP......................yes.
auto::readline -      Does your platform support readline.................yes.
auto::gdbm -          Does your platform support gdbm....................done.
auto::pcre -          Does your platform support pcre................yes, 7.7.
auto::opengl -        Does your platform support OpenGL....yes, MacOSX_GLUT 5.
auto::crypto -        Does your platform support crypto...........yes, 0.9.8h.
auto::gettext -       Does your configuration include gettext.............yes.
auto::snprintf -      Test snprintf......................................done.
auto::perldoc -       Is perldoc installed................................yes.
auto::pod2man -       Is pod2man installed................................yes.
auto::ctags -         Is (exuberant) ctags installed......................yes.
auto::revision -      Determine Parrot's revision......................r40554.
auto::icu -           Is ICU installed....................................yes.
gen::config_h -       Generate C headers.................................done.
gen::core_pmcs -      Generate core pmc list.............................done.
gen::crypto -         Generate Digest PMC files..........................done.
gen::parrot_include - Generate runtime/parrot/include....................done.
gen::opengl -         Generating OpenGL bindings.........................done.
gen::call_list -      Generate NCI signature list........................done.
gen::makefiles -      Generate makefiles and other build files...........done.
gen::platform -       Move platform files into place.....................done.
gen::config_pm -      Record configuration data for later retrieval......done.
Okay, we're done!

You can now use `gmake' to build your Parrot.
After that, you can use `gmake test' to run the test suite.

Happy Hacking,
        The Parrot Team
}}}"	dukeleto
4	1.4.0	928	Probable edge-condition bug in PBC file generation	none	1.4.0	bug		new	2009-08-16T17:48:59Z	2009-08-16T17:48:59Z	"For some time now (weeks), I've been dealing with an intermittent bug (apparently) with PBC file generation at the bottom of the PGE/NQP tool chain.

I'm working on a language compiler, using PGE+NQP with the generated language directory structure provided by the standard scripts.

At odd intervals, I'll make my compiler, and when I try to run ""close.pbc"" I'll get something like this:

{{{
CONSTANT_close.pir: Size in directory 231772 doesn't match size 0 at offset 0x38010
PackFile_unpack segment 'FIXUP_close.pir' directory length 6236 length in file 6236 needed 6224 for unpack
PackFile_unpack segment 'CONSTANT_close.pir' directory length 0 length in file 0 needed 8 for unpack
PackFile_unpack segment 'PIC_idx_close.pir' directory length 0 length in file 0 needed 4 for unpack
PackFile_unpack segment 'BYTECODE_close.pir_DB' directory length 0 length in file 0 needed 8 for unpack
Illegal fixup offset (2) in enum_fixup_sub
}}}

Except that the integer literals are usually different.

== Workaround ==

I have noticed that the problem seems to relate to the code being assembled. As a result, I find that if I doubly-include some .pir file the problem goes away - until the next time.
 
I have a set of library modules that I jam together into a single file for final assembly:
{{{
COMPILER_LIBS_PIR := \
	library/close/Compiler/Array.pir			\
	library/close/Compiler/Config.pir			\
	library/close/Compiler/Dumper.pir		\
	library/close/Compiler/Lookups.pir		\
	library/close/Compiler/Messages.pir		\
	library/close/Compiler/MessageVisitor.pir	\
	library/close/Compiler/Namespaces.pir		\
	library/close/Compiler/Node.pir			\
	library/close/Compiler/PrettyPrintVisitor.pir	\
	library/close/Compiler/Scopes.pir			\
	library/close/Compiler/String.pir			\
	library/close/Compiler/SymbolLookupVisitor.pir	\
	library/close/Compiler/SymbolResolutionVisitor.pir	\
	library/close/Compiler/Symbols.pir		\
	library/close/Compiler/TypeResolutionVisitor.pir\
	library/close/Compiler/Types.pir			\
	library/close/Compiler/Types.pir			\
	library/close/Compiler/Visitor.pir
}}}

These files are concatenated into a single `src/gen_library.pir` that is included into my close.pir compiler driver.

If I pick one - Types.pir in this case - and double-include it, it pretty consistently changes whatever is happening enough that the generated .PBC file becomes valid again.
 
It is for this reason that I suspect the problem is some kind of ""edge case"" - maybe a page boundary, or some 16-bit -ism. I have no real evidence, though.

"	Austin_Hastings
5	1.4.0	923	Make RNG algorithm used by rand dynop pluggable	core	1.4.0	bug		new	2009-08-15T04:27:03Z	2011-07-02T22:35:39Z	"Parrot's current PRNG is an old-style LCG: decent speed, but relatively poor randomness characteristics.  According to http://en.wikipedia.org/wiki/Mersenne_twister at least PHP, Python, and Ruby use the more advanced (but still not cryptographically secure) Mersenne Twister in their standard libraries.  Users from those languages will expect the higher-quality PRNG, so we should do at least as well -- either by switching to a free Mersenne Twister implementation, or by choosing an even more advanced algorithm instead.

"	japhb
4	1.5.0	943	Real counterparts of some trig functions not defined	core	1.5.0	bug	Paul C. Anagnostopoulos	new	2009-08-24T08:14:22Z	2010-09-16T23:00:51Z	"The Complex PMC defines cot, acot, coth, etc but they are not defined for real numbers.

All trig/hyperbolic functions that get defined for the Complex PMC should have real counterparts."	dukeleto
4	1.5.0	946	Order-of-destruction error with Scheduler PMC	GC	1.5.0	bug		new	2009-08-25T23:16:23Z	2011-02-01T23:48:07Z	"An order-of-destruction bug has appeared in the scheduler shortly after 1.5.0. The Scheduler PMC is being swept during finalization before the tasks that depend on it. In r40799 I commented out a line in the VTABLE_destroy of the scheduler that prevents the scheduler mutex from being destroyed, which seems to prevent the problem.

We need a real fix for this issue."	whiteknight
4	1.5.0	987	Make breakpoints actually work in parrot_debugger	tools	1.5.0	bug	Paul C. Anagnostopoulos	assigned	2009-09-07T05:52:55Z	2011-03-27T14:05:42Z	"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."	dukeleto
4	1.6.0	1015	clone_p_p segfaults with self-referential Hash pmc.	core	1.6.0	bug	whiteknight	new	2009-09-17T06:11:01Z	2011-02-25T01:36:06Z	"If a complex data structure, built with Hash and Array structures, is self-referencing, running clone_p_p on it will quickly segfault.

{{{
our %Global_hash;

sub bsu() {
	say(""BSU: starting."");
	%Global_hash<key><key2> := 1;
	%Global_hash<key><loop> := %Global_hash;
	
	my %local := %Global_hash;
	
	my $result := Q:PIR {{
		$P0 = find_lex '%local'
		%r = clone $P0
	}};
	
	say(""BSU: returning."");
	return $result;
	
}

bsu();
}}}

The solution here is likely to be involved -- perhaps disabling the GC and using the mark bit to track what has been cloned. But segmentation fault is not a parrot exception, which is what a memory problem should become.

Dukeleto confirms this problem exists on Darwin, and his Linux box.

FYI: I discovered this because PCT clones the symbol table of PAST::Block nodes."	Austin_Hastings
4	1.6.0	1044	Configure.pl relies too heavily on perl5 ccflags settings.	configure	1.6.0	bug	jkeenan	assigned	2009-09-21T12:58:49Z	2011-08-28T18:26:49Z	"See [http://rt.perl.org/rt3/Ticket/Display.html?id=38823 Original RT]
for more details."	doughera
4	1.6.0	1045	parrot needs a shared library even if configured with --parrot_is_shared=0.	configure	1.6.0	bug		new	2009-09-21T13:31:08Z	2011-03-06T01:44:19Z	"This problem still persists.  At least on Linux, running
{{{
perl Configure.pl --parrot_is_shared=0
}}}
builds a miniparrot that requires a shared libparrot.so.

See [http://rt.perl.org/rt3/Ticket/Display.html?id=53494 Original RT]
for more details."	doughera
4	1.6.0	1046	Configure.pl allows sizeof(INTVAL) != sizeof(void *), but parrot requires them to be equal.	configure	1.6.0	bug		new	2009-09-21T13:43:34Z	2010-10-16T22:13:30Z	"See [http://rt.perl.org/rt3/Ticket/Display.html?id=56484 Original RT]
for more details.

On Linux/x86, the problem can be reproduced by running
{{{
perl Configure.pl --intval=""long long int"" --opcode=""long long int""
}}}
"	doughera
4	1.6.0	1048	[TODO] Configure.pl needs a has_function() function.	configure	1.6.0	bug		new	2009-09-21T17:38:47Z	2009-09-21T17:38:47Z	"Configure.pl needs a better infrastructure for detecting functions and passing along that information to parrot (and other programs that might embed or extend parrot).
 
See [http://rt.perl.org/rt3/Ticket/Display.html?id=51232 Original RT]
for more details."	doughera
4	1.6.0	1050	[TODO] [C] Use strerror_r instead of strerror	core	1.6.0	bug		new	2009-09-21T17:57:58Z	2011-07-02T22:01:10Z	"This is still probably a good idea.  There are several generations of patches in RT, but the interface to strerror_r varies enough among platforms that it will take a bit of Configure.pl magic to get everything working smoothly.

See [http://rt.perl.org/rt3/Ticket/Display.html?id=46681 Original RT]
for more details"	doughera
4	1.6.0	1054	Some documents at docs.parrot.org are missing data.	website	1.6.0	bug		new	2009-09-21T21:34:53Z	2011-07-09T01:03:07Z	"This page has a line at the bottom directing the user to a ""table"" of information:
http://docs.parrot.org/parrot/latest/html/docs/book/pir/ch07_objects.pod.html


The page doesn't have the table, but the pod documentation does. The script that's extracting that info might not be working correctly."	shockwave
4	1.6.0	1055	t/pmc/complex.t:  sinh_of_complex_numbers:  some tests fail on Win32	core	1.6.0	bug		new	2009-09-21T23:01:58Z	2010-09-24T00:18:11Z	"This ticket is being opened to transfer '''one''' of the issues discussed in [http://rt.perl.org/rt3/Ticket/Display.html?id=52198 RT #52198] to Trac.

In ''t/pmc/complex.t'', two tests are failing on Win32 and are TODO-ed out.  As best as I can determine, they are generated by line 1052 inside `sinh_of_complex_numbers`.
{{{
.sub sinh_of_complex_numbers
    .local pmc config_hash, interp
    .local string has_negative_zero
    interp = getinterp
    config_hash = interp[.IGLOBALS_CONFIG_HASH]
    has_negative_zero = config_hash[""has_negative_zero""]

    .complex_op_is(""-2+0i"", ""-3.626860+0.000000i"", 'sinh' )
[snip]
    .complex_op_is(""-2-3i"", ""3.590565-0.530921i"", 'sinh' ) # line 1052
}}}
Note:  Since I don't have access to Win32, I have to rely on Smolder reports.  At the current time, we are receiving steady Smolder reports on Win32 from only one reporter.  We would benefit from additional smoke testers on Win32.

Thank you very much.[[BR]]
kid51
"	jkeenan
4	1.6.0	1074	Parrot fails to build with gcc when using --optimize on OpenSolaris	configure	1.6.0	bug		new	2009-09-29T09:13:05Z	2010-04-20T21:14:12Z	"Parrot will not build on OpenSolaris with GCC if --optimize is used. This happens with both gcc 3.4.3 (the default gcc package on Solaris) and gcc 4.3.2.

The output is a bit unwieldy (and I'm not sure what's relevant and what isn't) so I have pasted the output in a pastebin:

[http://paste2.org/p/443346 Parrot's Configure errors][[BR]]

[http://paste2.org/p/443353 Parrot's make errors][[BR]]

[http://paste2.org/p/443358 Configure working as expected without --optimize]"	carlin
4	1.6.0	1078	Parrot goes into infinite loop when attempting to test exceptions with throws_like()	testing	1.6.0	bug		new	2009-09-30T06:29:29Z	2009-11-07T20:18:20Z	"This code causes Parrot to sing the never ending story:

{{{
    throws_like(<<'CODE','blah','invalid attr')
    .sub main
        $P0 = new 'ExceptionHandler'
        set_addr $P0, _handler
        push_eh $P0
        throw $P0
    _handler:
        get_results ""0"", $P0
        getattribute $P5, $P0, 'foo'
    .end
CODE
}}}

I ran into this while attempting to convert the exceptions tests to PIR. "	dukeleto
4	1.6.0	1086	[BUG]  Test::More doesn't support plan('no_plan')	testing	1.6.0	bug	chromatic	new	2009-10-02T15:48:44Z	2010-11-22T11:03:33Z	"The documentation for Test::More (runtime/parrot/library/Test/More.pir:77) says that one can specify ""no_plan"" as a value to the plan() function, but it doesn't appear to work:

{{{
$ cat x.t
#!./parrot

.sub 'main' :main
    load_bytecode 'Test/More.pbc'

    .local pmc exports, curr_namespace, test_namespace
    curr_namespace = get_namespace
    test_namespace = get_namespace ['Test';'More']
    exports        = split ' ', 'plan diag ok nok is todo'
    test_namespace.'export_to'(curr_namespace, exports)

    plan('no_plan')

    ok(1, 'because I said so')
.end

$ prove x.t
x.t .. All 1 subtests passed 

Test Summary Report
-------------------
x.t (Wstat: 0 Tests: 1 Failed: 0)
  Parse errors: No plan found in TAP output
Files=1, Tests=1,  0 wallclock secs ( 0.03 usr  0.01 sys +  0.02 cusr  0.00 csys =  0.06 CPU)
Result: FAIL
$ ./parrot x.t
ok 1 - because I said so
$ 
}}}
"	pmichaud
4	1.6.0	1088	Multidispatch 'concatenate_str' does not handle LHS undef	core	1.6.0	bug		new	2009-10-03T01:23:12Z	2009-10-03T01:24:49Z	"This NQP code prints one line, then fails.
{{{
my $x;
my $z := '>' ~ $x;
say($z);
my $y := $x ~ '<';
say($y);
}}}
The error:
{{{
Multiple Dispatch: No suitable candidate found for 'concatenate_str', with signature 'PSP->P'
current instr.: '_block11' pc 50 (EVAL_3:27)
called from Sub 'parrot;PCT;HLLCompiler;eval' pc 982 (src/PCT/HLLCompiler.pir:548)
}}}

The generated PIR is `concat $P0, $P1, $P2` for the constant-on-the-left case. But NQP generates `concat $P0, $P1, '<'` for the constant-on-the-right case. It is this case, with an undef first argument, that fails.

Changing the constant to a register does not affect the behavior. Storing an empty string in place of the left-hand undef does resolve the problem. I believe the multidispatch doesn't know what to do with undef."	Austin_Hastings
4	1.6.0	1108	"Subs in ""built-in PMC"" namespaces are treated as PMC methods"	none	1.6.0	bug		new	2009-10-13T20:30:07Z	2009-10-13T20:30:07Z	"A sub that is declared in a namespace that matches the name of a builtin PMC is automatically dispatched as a method:
{{{
$ cat x.pir
.sub main
    $P0 = new 'Integer'
    $P0.'foo'()
.end

.namespace ['Integer']

.sub 'foo'
    say 'foo'
.end

$ ./parrot x.pir
foo
$ 
}}}

While this *does* make it possible to override builtin methods,
it also makes it impossible to write ""class methods"" that translate behaviors, since the presence or absence of the `:method` attribute on the sub is ignored.

This behavior does not happen with non-builtin classes:
{{{
$ cat y.pir
.sub main
    $P1 = newclass ['XYZ']
    $P0 = new ['XYZ']
    $P0.'foo'()
.end

.namespace ['XYZ']

.sub 'foo'
    say 'foo'
.end

$ ./parrot y.pir
Method 'foo' not found for invocant of class 'XYZ'
current instr.: 'main' pc 11 (y.pir:4)
$ 
}}}"	Austin_Hastings
4	1.6.0	1109	MultiSub PMC does not support get_namespace method	none	1.6.0	bug		new	2009-10-13T20:50:29Z	2009-10-13T20:50:29Z	"A multisub PMC cannot be said to ""subclass"" the sub PMC, since they don't support the same methods.

In my case, calling `get_namespace` to discover the origin of the PMC, fails on multisubs.

Looking in the code, the multisub.pmc seems to be ""a ResizablePMCArray that supports invocation"" rather than ""a sub that supports dispatch""."	Austin_Hastings
4	1.6.0	1112	Subject: Draft Parrot Book chapters no longer available on docs.parrot.org	docs	1.6.0	bug		new	2009-10-15T17:34:28Z	2011-01-30T03:44:26Z	"At one point, the Parrot Book Directives Reference was accessible via http://docs.parrot.org/parrot/latest/html/docs/book/ch11_directive_reference.pod.html but somewhere between the time I posted my first babystep and today it has been placed in the drafts directory and not exported to the HTML Parrot documentation.

dukeleto has mentioned that he will attempt to get the draft directory transformed to HTML, but can't make any promises about when he can make this change.
"	brianwisti
4	1.7.0	1168	PMC to Float conversion not working as documented	core	1.7.0	bug		new	2009-11-01T01:40:31Z	2009-11-01T02:07:22Z	"Here are lines 1101-1104 of ''docs/book/pir/ch04_variables.pod'':
{{{
  $P1 = box ""5 birds""
  $S1 = $P1           # the string ""5 birds""
  $I1 = $P1           # the integer 5
  $N1 = $P1           # the number 5.0
}}}
On the basis of the comments, if I were to `say` each of the 4 variables receiving assignment, I would expect the output to be:
{{{
5 birds
5 birds
5
5.0
}}}
This is not the case.
{{{
[study] 511 $ cat 5birds.pir 
.sub main :main
    $P1 = box ""5 birds""
    $S1 = $P1
    $I1 = $P1
    $N1 = $P1
    say $P1
    say $S1
    say $I1
    say $N1
.end
[study] 512 $ ./parrot 5birds.pir 
5 birds
5 birds
5
0
}}}
Is this merely a documentation error?  Or is it something more serious?

Thank you very much.

kid51 (working his way thru the PIR book)"	jkeenan
4	1.7.0	1176	Configure-time check for whether to use powl() or pow(), since powl() is an optional posix extension	build	1.7.0	bug		new	2009-11-02T03:32:07Z	2010-06-13T04:04:24Z	"This site lists powl() as an optional POSIX extension:

http://www.mers.byu.edu/docs/standardC/math.html

We should have a Configure-time check for whether it exists.

This is currently blocking the porting of Parrot to the RTEMS real-time embedded operating system, which only implements the the mandatory core of POSIX."	dukeleto
4	1.7.0	1204	Implement all TODO comments in t/pmc/parrotio.t	testing	1.7.0	bug		new	2009-11-05T06:37:13Z	2011-02-25T01:24:23Z	"There are many things like:
{{{
$P1 = # TODO create a callback here
}}}

in the code. Write proper tests for these TODO comments.

If you close this ticket, coke++ will buy you beer."	dukeleto
4	1.7.0	1237	docs/parrotbyte.pod && docs/pdds/pdd13_bytecode.pod are either incorrect/unclear	none	1.7.0	bug		new	2009-11-08T12:52:42Z	2011-02-25T03:10:02Z	"{{{
fixup_unpack() in src/packfile.c contains the following code:

for (i = 0; i < self->fixup_count; i++) {
PackFile_FixupEntry * const entry =
self->fixups[i] =
mem_allocate_typed(PackFile_FixupEntry);
entry->type = PF_fetch_opcode(pf, &cursor);
switch (entry->type) {
case enum_fixup_label:
case enum_fixup_sub:
entry->name = PF_fetch_cstring(pf, &cursor);
entry->offset = PF_fetch_opcode(pf, &cursor);
break;
case enum_fixup_none:
break;
default:
PIO_eprintf(interp,
""PackFile_FixupTable_unpack: Unknown fixup type
%d!\n"",
entry->type);
return NULL;
}
}
}}}



And include/parrot/packfile.h has the following:


{{{
typedef enum {
enum_fixup_none,
enum_fixup_label,
enum_fixup_sub
} enum_fixup_t;
}}}



When walking through fixup_unpack() in GDB, I get the following:

{{{

Breakpoint 4, fixup_unpack (interp=0x805f7e0, seg=0x825c5d8,
cursor=0x9d570120) at src/packfile.c:3043
...
...
3072 entry->type = PF_fetch_opcode(pf, &cursor);
(gdb) n
3073 switch (entry->type) {
(gdb) p entry->type
$13 = 2
}}}



However, the docs -- namely docs/pdds/pdd13_bytecode.pod (in the section
titled ""Fixup Segment"") and docs/parrotbyte.pod (in the section ""Fixup
segment"") say that the type for a subroutine fixup should be 0x01, not 0x02
...

This should either be corrected if wrong, or the docs should be cleared up a
bit otherwise to make the meaning more clear.

Thanks,
Jesse Taylor

PREVIOUSLY tracked by RT#51634."	kjs
4	1.7.0	1243	"Parrot::Test with --run-exec assumes ""."" is in $PATH"	testing	1.7.0	bug		new	2009-11-08T18:11:20Z	2011-02-26T03:46:14Z	"This ticket moves into the Trac system discussion of an issue previously found in the RT system as [http://rt.perl.org/rt3/Ticket/Display.html?id=49258 RT #49258].  In that ticket, Bob Rogers provided test file ''pbc.t'' which is here attached.

Running that test file in the original RT, Bob posted this output:
{{{
The attached test case will illustrate the problem (but be sure to
check that $PATH does not contain ""."" first):

rogers@rgrjr> perl pbc.t
1..1
not ok 1 - .const of null string
# Failed test (pbc.t at line 18)
# got: ''
# expected: 'ok
# '
# Looks like you failed 1 test of 1.
rogers@rgrjr> PATH="".:$PATH"" perl pbc.t
1..1
ok 1 - .const of null string
rogers@rgrjr>

I think the right thing would be to mangle $exe_f to start with 
""./"", but I don't know how to do that portably.
}}}
Re-running it today, I got a failure -- but different output:
{{{
prove -v pbc.t
pbc.t .. 
1..1
not ok 1 - .const of null string

#   Failed test '.const of null string'
#   at pbc.t line 18.
#          got: 'error:imcc:syntax error, unexpected DOT, 
           expecting INTV or FLOATV or STRINGV or PMCV ('.')
#       in file '/topdir/work/parrot/pbc_1.pir' line 3
# error:imcc:syntax error, unexpected IDENTIFIER, 
           expecting '(' ('empty')
#       in file '/topdir/work/parrot/pbc_1.pir' line 4
# error:imcc:syntax error, unexpected STRINGC, 
           expecting '(' ('""ok\n""')
#       in file '/topdir/work/parrot/pbc_1.pir' line 5
# '
#     expected: 'ok
# '
# Looks like you failed 1 test of 1.
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests 

Test Summary Report
-------------------
pbc.t (Wstat: 256 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
Files=1, Tests=1,  0 wallclock secs 
  ( 0.02 usr  0.01 sys +  0.05 cusr  0.00 csys =  0.08 CPU)
Result: FAIL
}}}
gdb had this to say:
{{{
(gdb) run pbc_1.pir
Starting program: /topdir/work/parrot/parrot pbc_1.pir
[Thread debugging using libthread_db enabled]
warning: Lowest section in /usr/lib/libicudata.so.36 is .hash at 000000b4
error:imcc:syntax error, unexpected DOT, expecting INTV or 
        FLOATV or STRINGV or PMCV ('.')
        in file 'pbc_1.pir' line 3
error:imcc:syntax error, unexpected IDENTIFIER, expecting '(' ('empty')
        in file 'pbc_1.pir' line 4
error:imcc:syntax error, unexpected STRINGC, expecting '(' ('""ok\n""')
        in file 'pbc_1.pir' line 5

Program exited with code 01.
(gdb) bt
No stack.
}}}"	jkeenan
4	1.7.0	1246	Extra libraries on CC build command	configure	1.7.0	bug		new	2009-11-09T02:47:30Z	2011-05-21T02:28:51Z	"This ticket moves to the Trac system discussion of issues originally raised as [http://rt.perl.org/rt3/Ticket/Display.html?id=53610 RT 53610].  In that RT, Alberto Simões stated:
{{{
As discussed on the mailing list, currently parrot is being
linked with a bunch of libraries that will be just used by 
dynamic loading.

For instante:

[ambs@rachmaninoff parrot]$ ldd parrot
parrot:
/Users/ambs/Projects/parrot/blib/lib/libparrot.dylib 
  (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 111.0.0)
/opt/local/lib/libicuuc.38.dylib (compatibility version 38.0.0, current
version 38.1.0)
/opt/local/lib/libicudata.38.dylib (compatibility version 38.0.0,
current version 38.1.0)
/usr/lib/libutil.dylib (compatibility version 1.0.0, current version 1.0.0)
/opt/local/lib/libgmp.3.dylib (compatibility version 8.0.0, current
version 8.2.0)
/opt/local/lib/libreadline.5.2.dylib (compatibility version 5.0.0,
current version 5.2.0)
/opt/local/lib/libpcre.0.dylib (compatibility version 1.0.0, current
version 1.1.0)
/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
(compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/GLUT.framework/Versions/A/GLUT
(compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libcrypto.0.9.7.dylib (compatibility version 0.9.7, current
version 0.9.7)
/opt/local/lib/libintl.8.dylib (compatibility version 9.0.0, current
version 9.2.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current
version 7.4.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version
1.0.0)

From these, I am sure GLUT/GL and pcre should not be there. 
Some others might be in excess as well, like readline (?).

So, the CC line used to build parrot should be cleaned up 
from these extra libraries.
}}}
Note:  Though I too am on Darwin (albeit an older version), I apparently don't have the `ldd` command, so I could not produce a more recent report on that platform.  It's not clear to me whether this is a Darwin-specific issues or one that applies regardless of platform.

kid51"	jkeenan
4	1.7.0	1253	[BUG] hash iterator interface changed, needs errata or deprecation notice	core	1.7.0	bug		new	2009-11-09T21:21:40Z	2010-10-16T21:52:49Z	"The following code worked in Parrot 1.0.0 (r37535) and Parrot 1.3.0 (r39599):

{{{
$ cat hash-1.pir
.sub 'main'
    .local pmc hash, hash_it
    hash = new ['Hash']
    hash['1'] = 'a' 
    hash['2'] = 'b'
    hash['3'] = 'c'

    hash_it = iter hash
  loop:
    unless hash_it goto done
    $P0 = shift hash_it
    $P1 = concat $P0, 'x'
    say $P1
    goto loop
  done:
.end

$ 37535/parrot hash-1.pir
1x
2x
3x
$ 39599/parrot hash-1.pir
1x
2x
3x
}}}

The same code fails in 1.4.0 (r40185) and current trunk:

{{{
$ 40185/parrot hash-1.pir
Multiple Dispatch: No suitable candidate found for 'concatenate_str', with signature 'PSP->P'
current instr.: 'main' pc 24 (hash-1.pir:12)
$ trunk/parrot hash-1.pir
Multiple Dispatch: No suitable candidate found for 'concatenate_str', with signature 'PSP->P'
current instr.: 'main' pc 24 (hash-1.pir:13)
$ 
}}}

The problem is not limited to the concat opcode -- other opcodes cause problems also:

{{{
$ cat hash-2.pir
.sub 'main'
    .local pmc hash, hash_it
    hash = new ['Hash']
    hash['1'] = 'a' 
    hash['2'] = 'b'
    hash['3'] = 'c'

    hash_it = iter hash
  loop:
    unless hash_it goto done
    $P0 = shift hash_it
    $P1 = add $P0, 100
    say $P1
    goto loop
  done:
.end

$ 37535/parrot hash-2.pir
101
102
103
$ 39599/parrot hash-2.pir
101
102
103
$ 40185/parrot hash-2.pir
Multiple Dispatch: No suitable candidate found for 'add_int', with signature 'PIP->P'
current instr.: 'main' pc 24 (hash-2.pir:12)
$ trunk/parrot hash-2.pir
Multiple Dispatch: No suitable candidate found for 'add_int', with signature 'PIP->P'
current instr.: 'main' pc 24 (hash-2.pir:13)
$ 
}}}

The underlying problem appears to be that starting with the 1.4.0 release, hash iterators began returning HashIteratorKey PMCs instead of String PMCs:

{{{
$ cat hash-3.pir
.sub 'main'
    .local pmc hash, hash_it
    hash = new ['Hash']
    hash['1'] = 'a' 
    hash['2'] = 'b'
    hash['3'] = 'c'

    hash_it = iter hash
  loop:
    unless hash_it goto done
    $P0 = shift hash_it
    $P1 = typeof $P0
    say $P1
    goto loop
  done:
.end

$ 37535/parrot hash-3.pir
String
String
String
$ 39599/parrot hash-3.pir
String
String
String
$ 40185/parrot hash-3.pir
HashIteratorKey
HashIteratorKey
HashIteratorKey
$ trunk/parrot hash-3.pir
HashIteratorKey
HashIteratorKey
HashIteratorKey
$ 
}}}

It seems to me that a change of this sort should have been preceded by a deprecation notice -- as far as I can tell no such notice was given.  Regardless, returning a HashIteratorKey PMC would seem to be the least usable or useful of any of the options available.

Pm"	pmichaud
4	1.7.0	1254	Update PIR Book with new (post 1.4.0) HashIteratorKey Syntax and Semantics	docs	1.7.0	bug		new	2009-11-09T23:31:53Z	2010-10-16T21:49:34Z	The Hash Key and Iterator refactorings before Parrot 1.4.0 changed what hash iteration returned; now it returns a HIK instead of a Key PMC.  The PIR book needs review of prose and examples to match the current behavior.	chromatic
4	1.7.0	1306	Various failures on bogus string used as argname (1.7)	none	1.7.0	bug		new	2009-11-18T03:24:17Z	2009-11-18T03:24:17Z	"I've got the following test setup (using Kakapo libs):
{{{
method test_initializer() {
	my $obj := Kakapo::Test::Aclass.new(:a('albatross'), :b('byzantine'), :c('chrysanthemum'));

	self.assert_that('test object.a', $obj.a, is(""albatross""));
	self.assert_that('test object.b', $obj.b, is(""byzantine""));
}

module Kakapo::Test::Aclass;
use(		'P6object');
extends(	 'Kakapo::Object');
has(		'b a');
}}}

The upshot of this is that accessor methods called Kakapo::Test::Aclass::a() and ...b() are mechanically generated and compiled (using plain old NQP+PIR in 1.7).

The Kakapo::Object base class contains, among other things, this code:
{{{
method new(*@pos, *%named) {
say(""New!"");
Dumper::DUMP_(self, @pos, %named);
	my $class := Opcode::getattribute(self.HOW, 'parrotclass');
	my $new_object := Opcode::new($class);

	# NB: I'm not flattening the params, because that forces
	# everybody to do call_method or in-line pir to pass
	# along flat args.
	$new_object.init_(@pos, %named);
	return $new_object;
}
}}}
As far as I can tell, the standard P6object functionality is working. The class is set up by Kakapo as a child of Kakapo::Object, and the Kakapo::Object::new() method is being called. Here is the output:
{{{
New class: Aclass parent: Kakapo::Object
Done
New!
""$VAR"" => ResizablePMCArray (size:3) [
    undef,
    ResizablePMCArray (size:0) [
    ],
    Hash {
        ""(0x0011)"" => ""albatross"",
        ""Global"" => ""byzantine"",
        ""new"" => ""chrysanthemum""
    }
]
No accessor defined for attribute 'Global'.
current instr.: 'parrot;Opcode;die' pc 28248 (library/kakapo_test.pir:11177)
called from Sub 'parrot;Kakapo;Object;_block307' pc 8792 (library/kakapo_test.pir:3423)
called from Sub 'parrot;Kakapo;Object;_block285' pc 8745 (library/kakapo_test.pir:3403)
called from Sub 'parrot;Kakapo;Object;init_' pc 8620 (library/kakapo_test.pir:3347)
called from Sub 'parrot;Kakapo;Object;new' pc 9090 (library/kakapo_test.pir:3531)
called from Sub 'parrot;Kakapo;Test;Class;Attributes;test_initializer' pc 462 (t/Classes/Attributes.pir:128)
}}}
Until today, the failure was not ""No accessor defined"" but rather an assert failure on an invalid string.

This is the generated PIR for the `new` call:
{{{
    .lex ""self"", self
    get_hll_global $P50, [""Kakapo"";""Test""], ""Aclass""
    $P51 = $P50.""new""(""albatross"" :named(""a""), ""byzantine"" :named(""b""), ""chrysanthemum"" :named(""c""))
    .lex ""$obj"", $P51
}}}

I don't have a good steps-to-reproduce, because the Kakapo library is somewhat large, and a bit of a nest of snakes as far as isolating behaviors.

What's more, the aberrant behavior appears to be related somehow to calling with named parameters. Since 1.8 is the pcc refactor release, I think I can predict the response of the dev team. But I wanted to document this now, just in case."	Austin_Hastings
4	1.8.0	1302	PIR todo() is frequently misused	testing	1.8.0	bug		new	2009-11-17T18:40:54Z	2011-06-11T14:20:40Z	"In pure PIR .t tests that use the test_more harness, the todo() function either:
    * is constant todo(0, ...), preventing ""unexpected success"" info from ever printing, or
    * is constant todo(1, ...), causing confusing ""unexpected success"" to always happen on TODOed platforms, or
    * is conditioned todo($I0, ...), causing duplication of code or inability to use is() and friends.
This is a result of the todo() function's documentation and API.

Further analysis to follow...
"	Util
4	1.8.0	1308	NQPrx does not vivify globals in all cases	nqp	1.8.0	bug	pmichaud	new	2009-11-18T10:12:46Z	2011-10-19T20:15:11Z	"This code:
{{{
module Z;
our $Global;
sub zzz() {
        unless $Global {
                say(""Not set"");
        }
}
INIT {
        zzz();
}

module A;

sub aaa() {
	our $G2;

	unless $G2 {
		say(""Not set"");
	}
}
}}}

generates:
{{{
    get_global $P21, ""$Global""
    unless $P21, unless_20
}}}

for the access code in `sub zzz`. There is no guard for null. But in the access code in `sub aaa` there is this:
{{{
    get_global $P31, ""$G2""
    unless_null $P31, vivify_17
}}}
Apparently the scope isn't being looked up correctly, or something?
"	Austin_Hastings
4	1.8.0	1309	perl Configure.pl finds icu but doesn't set it up	build	1.8.0	bug		new	2009-11-19T00:24:20Z	2011-05-20T02:07:24Z	"perl Configure.pl finds icu during config but doesn't set you up to use it.

perl Configure.pl says:
...
auto::icu -          Is ICU installed....................................yes.

But during make, the following error is reported:
Invoking Parrot to generate runtime/parrot/include/config.fpmc --cross your fingers
./miniparrot config_lib.pasm > runtime/parrot/include/config.fpmc
./miniparrot: error while loading shared libraries: libicuuc.so.42: cannot open shared object file: No such file or directory
gmake: *** [runtime/parrot/include/config.fpmc] Error 127"	getpsimon
4	1.8.0	1340	Parrot may end up calling dlclose() twice with the same handle, ref. t/pmc/threads.t test 14	none	1.8.0	bug		new	2009-11-30T15:23:58Z	2009-12-01T14:19:54Z	"I have been puzzled by why the last test in t/pmc/threads.t (number 14 at last count) fails on all the NetBSD systems I'm testing on.

It turns out that the reason is that this particular test causes parrot to call dlclose() twice with the same handle value, and ld.elf_so has a check for whether the given handle is ""valid"", which it isn't in the second instance, causing spurious output from the test, which in turns causes the test to fail, like so:


{{{
not ok 14 - CLONE_CODE|CLONE_GLOBALS|CLONE_HLL|CLONE_LIBRARIES - TT \# 1250
#   Failed test 'CLONE_CODE|CLONE_GLOBALS|CLONE_HLL|CLONE_LIBRARIES - TT \# 1250'
#   at t/pmc/threads.t line 831.
#          got: 'in thread:
# 0
# ok (equal)
# 42
# in main:
# 0
# ok (equal)
# 42
# Invalid shared object handle 0xeffed600
# '
#     expected: 'in thread:
# 0
# ok (equal)
# 42
# in main:
# 0
# ok (equal)
# 42
# '
# Looks like you failed 1 test of 14.
}}}

The following GDB session shows that this is the problem:


{{{
granny-smith: {130} gdb ./parrot
GNU gdb 6.5
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type ""show copying"" to see the conditions.
There is absolutely no warranty for GDB.  Type ""show warranty"" for details.
This GDB was configured as ""powerpc--netbsd""...
(gdb) b dlclose
Function ""dlclose"" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y

Breakpoint 1 (dlclose) pending.
(gdb) r t/pmc/threads_14.pir
Starting program: /usr/users/he/parrot/parrot t/pmc/threads_14.pir
Breakpoint 2 at 0xefff594c
Pending breakpoint ""dlclose"" resolved
in thread:
0
ok (equal)
42

Breakpoint 2, 0xefff594c in dlclose () from /usr/libexec/ld.elf_so
(gdb) where
#0  0xefff594c in dlclose () from /usr/libexec/ld.elf_so
#1  0xefd65f30 in Parrot_dlclose (handle=0xeffed600)
    at config/gen/platform/generic/dl.c:96
#2  0xefe6e274 in Parrot_ParrotLibrary_destroy (interp=0xee8031e0, 
    pmc=0xee7d3e60) at ./src/pmc/parrotlibrary.pmc:65
#3  0xefd6a204 in Parrot_pmc_destroy (interp=0xee8031e0, pmc=0xee7d3e60)
    at src/pmc.c:116
#4  0xefd092d0 in free_pmc_in_pool (interp=0xee8031e0, pool_unused=0xee710150, 
    p=0xee7d3e60) at src/gc/mark_sweep.c:602
#5  0xefd083d8 in Parrot_gc_sweep_pool (interp=0xee8031e0, pool=0xee710150)
    at src/gc/mark_sweep.c:331
#6  0xefd071f0 in gc_ms_finalize (interp=0xee8031e0, mem_pools=0xee807f60)
    at src/gc/gc_ms.c:232
#7  0xefd07490 in gc_ms_mark_and_sweep (interp=0xee8031e0, flags=4)
    at src/gc/gc_ms.c:161
#8  0xefd03e74 in Parrot_gc_mark_and_sweep (interp=0xee8031e0, flags=4)
    at src/gc/api.c:856
#9  0xefd1aab8 in Parrot_really_destroy (interp=0xee8031e0, 
    exit_code_unused=0, arg_unused=0x0) at src/interp/inter_create.c:337
#10 0xefd79e58 in pt_thread_join (parent=0xee803100, tid=1)
    at src/thread.c:1383
#11 0xeff16fc8 in Parrot_ParrotRunningThread_nci_join (interp=0xee803100, 
    pmc=0xee8afbac) at ./src/pmc/parrotrunningthread.pmc:108
#12 0xefe7d4a0 in Parrot_NCI_invoke (interp=0xee803100, pmc=0xee8afbac, 
    next=0xee7193d0) at ./src/pmc/nci.pmc:338
#13 0xefc5719c in Parrot_callmethodcc_p_sc (cur_opcode=0xee7193c4, 
    interp=0xee803100) at src/ops/object.ops:74
#14 0xefd6e3f4 in runops_slow_core (interp=0xee803100, runcore=0xee8ee5c0, 
    pc=0xee7193c4) at src/runcore/cores.c:848
#15 0xefd6bae8 in runops_int (interp=0xee803100, offset=64)
    at src/runcore/main.c:546
#16 0xefd1c8bc in runops (interp=0xee803100, offs=64) at src/call/ops.c:99
#17 0xefd1225c in Parrot_pcc_invoke_from_sig_object (interp=0xee803100, 
    sub_obj=0xee8b1d94, call_object=0xee8b1dbc) at src/call/pcc.c:297
#18 0xefd123c4 in Parrot_pcc_invoke_sub_from_c_args (interp=0xee803100, 
    sub_obj=0xee8b1d94, sig=0xeff83ea0 ""P->"") at src/call/pcc.c:76
#19 0xefceba2c in Parrot_runcode (interp=0xee803100, argc=1, argv=0xffffd870)
    at src/embed.c:825
#20 0xeff51a58 in imcc_run_pbc (interp=0xee803100, obj_file=0, 
    output_file=0x0, argc=1, argv=0xffffd870) at compilers/imcc/main.c:790
#21 0xeff51e10 in imcc_run (interp=0xee803100, 
    sourcefile=0xffffe998 ""t/pmc/threads_14.pir"", argc=1, argv=0xffffd870)
    at compilers/imcc/main.c:1073
#22 0x01800be8 in main (argc=1, argv=0xffffd870) at src/main.c:60
(gdb) c
Continuing.
in main:
0
ok (equal)
42

Breakpoint 2, 0xefff594c in dlclose () from /usr/libexec/ld.elf_so
(gdb) where
#0  0xefff594c in dlclose () from /usr/libexec/ld.elf_so
#1  0xefd65f30 in Parrot_dlclose (handle=0xeffed600)
    at config/gen/platform/generic/dl.c:96
#2  0xefe6e274 in Parrot_ParrotLibrary_destroy (interp=0xee803100, 
    pmc=0xee8e5ec4) at ./src/pmc/parrotlibrary.pmc:65
#3  0xefd6a204 in Parrot_pmc_destroy (interp=0xee803100, pmc=0xee8e5ec4)
    at src/pmc.c:116
#4  0xefd092d0 in free_pmc_in_pool (interp=0xee803100, pool_unused=0xee84c150, 
    p=0xee8e5ec4) at src/gc/mark_sweep.c:602
#5  0xefd083d8 in Parrot_gc_sweep_pool (interp=0xee803100, pool=0xee84c150)
    at src/gc/mark_sweep.c:331
#6  0xefd071f0 in gc_ms_finalize (interp=0xee803100, mem_pools=0xee807080)
    at src/gc/gc_ms.c:232
#7  0xefd07490 in gc_ms_mark_and_sweep (interp=0xee803100, flags=4)
    at src/gc/gc_ms.c:161
#8  0xefd03e74 in Parrot_gc_mark_and_sweep (interp=0xee803100, flags=4)
    at src/gc/api.c:856
#9  0xefd1aab8 in Parrot_really_destroy (interp=0xee803100, 
    exit_code_unused=0, arg_unused=0x0) at src/interp/inter_create.c:337
#10 0xefcf1038 in Parrot_exit (interp=0xee803100, status=0) at src/exit.c:90
#11 0x01800c04 in main (argc=1, argv=0xffffd870) at src/main.c:65
(gdb) c
Continuing.
Invalid shared object handle 0xeffed600

Program exited normally.
(gdb) 
}}}

Note that the handle= value in the call preceding dlclose() is the same in the two cases.

Parrot should not be calling dlclose() with the same handle value in a row, without the second one being the result of a dlopen(), which isn't the case here.  OK, that's not proven by the above, but this one does:


{{{
(gdb) b dlopen
Breakpoint 3 at 0xefff5d60
(gdb) r
Starting program: /usr/users/he/parrot/parrot t/pmc/threads_14.pir
...
Breakpoint 3, 0xefff5d60 in dlopen () from /usr/libexec/ld.elf_so
(gdb) c
Continuing.
in thread:
0
ok (equal)
42

Breakpoint 2, 0xefff594c in dlclose () from /usr/libexec/ld.elf_so
(gdb) c
Continuing.
in main:
0
ok (equal)
42

Breakpoint 2, 0xefff594c in dlclose () from /usr/libexec/ld.elf_so
(gdb) c
Continuing.
Invalid shared object handle 0xeffed600

Program exited normally.
(gdb) 
}}}

"	heidnes
4	1.8.0	1342	[RFC] make a test_core.pir that tests which are part of coretest use, instead of test_more.pir	testing	1.8.0	bug		new	2009-12-02T07:33:21Z	2009-12-02T07:33:21Z	"Tests that are in {{{make coretest}}} cannot use PGE, but there is nothing enforcing this, so they end up being added and then the first poor sap that types {{{make corevm; make coretest}}} gets something like
{{{
# test_fetch_keyed_pmc
# test_fetch_keyed_int
# test_fetch_keyed_str
""load_bytecode"" couldn't find file 'PGE.pbc'
current instr.: 'parrot;Test;More;like' pc 1662 (runtime/parrot/library/Test/More.pir:1085)
called from Sub 'test_atan' pc 1170 (t/op/inf_nan.t:224)
called from Sub 'main' pc 137 (t/op/inf_nan.t:34)
""load_bytecode"" couldn't find file 'PGE.pbc'
current instr.: 'parrot;Test;More;like' pc 1662 (runtime/parrot/library/Test/More.pir:1085)
called from Sub 'test_sqrt_n_n' pc 3976 (t/op/number.t:798)
called from Sub 'main' pc 389 (t/op/number.t:62)
# test_vivify_keyed_pmc
# test_vivify_keyed_int
# test_vivify_keyed_str
""load_bytecode"" couldn't find file 'PGE.pbc'
current instr.: 'parrot;Test;More;like' pc 1662 (runtime/parrot/library/Test/More.pir:1085)
called from Sub 'test_digest' pc 205 (t/dynpmc/md2.t:72)
called from Sub 'main' pc 68 (t/dynpmc/md2.t:33)
""load_bytecode"" couldn't find file 'PGE.pbc'
current instr.: 'parrot;Test;More;like' pc 1662 (runtime/parrot/library/Test/More.pir:1085)
called from Sub 'test_digest' pc 205 (t/dynpmc/md4.t:72)
called from Sub 'main' pc 68 (t/dynpmc/md4.t:33)
""load_bytecode"" couldn't find file 'PGE.pbc'
current instr.: 'parrot;Test;More;like' pc 1662 (runtime/parrot/library/Test/More.pir:1085)
called from Sub 'test_digest' pc 205 (t/dynpmc/md5.t:72)
called from Sub 'main' pc 68 (t/dynpmc/md5.t:33)
""load_bytecode"" couldn't find file 'PGE.pbc'
current instr.: 'parrot;Test;More;like' pc 1662 (runtime/parrot/library/Test/More.pir:1085)
called from Sub 'test_digest' pc 205 (t/dynpmc/ripemd160.t:72)
called from Sub 'main' pc 68 (t/dynpmc/ripemd160.t:33)
""load_bytecode"" couldn't find file 'PGE.pbc'
current instr.: 'parrot;Test;More;like' pc 1662 (runtime/parrot/library/Test/More.pir:1085)
called from Sub 'test_digest' pc 205 (t/dynpmc/sha.t:72)
called from Sub 'main' pc 68 (t/dynpmc/sha.t:33)
""load_bytecode"" couldn't find file 'PGE.pbc'
current instr.: 'parrot;Test;More;like' pc 1662 (runtime/parrot/library/Test/More.pir:1085)
called from Sub 'test_digest' pc 205 (t/dynpmc/sha1.t:72)
called from Sub 'main' pc 68 (t/dynpmc/sha1.t:33)
""load_bytecode"" couldn't find file 'PGE.pbc'
current instr.: 'parrot;Test;More;like' pc 1662 (runtime/parrot/library/Test/More.pir:1085)
called from Sub 'test_digest' pc 205 (t/dynpmc/sha256.t:72)
called from Sub 'main' pc 68 (t/dynpmc/sha256.t:33)
""load_bytecode"" couldn't find file 'PGE.pbc'
current instr.: 'parrot;Test;More;like' pc 1662 (runtime/parrot/library/Test/More.pir:1085)
called from Sub 'test_digest' pc 205 (t/dynpmc/sha512.t:72)
called from Sub 'main' pc 68 (t/dynpmc/sha512.t:33)
# no extension recognized for t/perl/testlib/hello
# no extension recognized for t/perl/testlib/hello
# no extension recognized for t/perl/testlib/hello
make: *** [coretest] Error 1
}}}

The proposal is to have a test_core.pir which only imports the subset of function from test_more.pir that are valid for making the corevm target happy.

For reference, this is the current output of ""make coretest"" on trunk. "	dukeleto
4	1.9.0	1379	Port Perl 5 built-in times() to PIR	profiling	1.9.0	bug	cotto	new	2009-12-18T07:24:16Z	2009-12-18T07:24:16Z	"It would be nice to be able to have something like Perl 5's times() builtin in PIR for calculating user time:

{{{
       times   Returns a four‐element list giving the user and system times,
               in seconds, for this process and the children of this process.

                   ($user,$system,$cuser,$csystem) = times;

               In scalar context, ""times"" returns $user.

               Note that times for children are included only after they
               terminate.

}}}"	dukeleto
4	1.9.0	1390	Configure doesn't check for a 'curses' lib in the readline test	configure	1.9.0	bug		new	2009-12-23T02:51:34Z	2010-09-18T00:16:32Z	"Parrot doesn't build with readline support on OpenSolaris because readline needs tgetnum et al. from Solaris' ""curses"" lib. The configure script tries to fall back to ""ncurses"" which still fails on OSOL."	carlin
4	2.0.0	1422	t/perl/Parrot_IO.t: 'not modified_since' test failing on some Win32 and Cygwin	testing	2.0.0	bug		new	2010-01-31T18:13:18Z	2010-02-06T01:12:37Z	"In Smolder reports and discussion on #parrot, the following test failure has been reported by a Win32 user and a Cygwin user:
{{{
not ok 47 - not modified_since

#   Failed test 'not modified_since'
#   at t/perl/Parrot_IO.t line 160.

}}}
This appears to be the relevant code:
{{{
     96 # Create a file in a directory that does not exist.
     97 my $f3 = Parrot::IO::File->new
        ( tmp_file_path( 't', 'one', 'two', 'file3        .bar' ) );
     98 ok( $f3, 'file new' );
...
    158 # Status (stat info)
    159 my $time = time;
    160 ok( !$f3->modified_since($time), 'not modified_since' );
}}}
Could someone working on Win32 or Cygwin try to diagnose this?

Thank you very much.

kid51"	jkeenan
4	2.0.0	1424	Parrot will not parse PIR missing newline at EOF	imcc	2.0.0	bug	plobsing	new	2010-02-06T21:06:48Z	2011-07-18T01:43:49Z	"This script:
{{{
perl -e 'print "".sub foo\n\tsay \""Hello, world\""\n.end\n# Last line""' > x.pir 
}}}

produces a .pir file with no newline at the end. (Vim really WANTS to add a trailing newline, so beware how you look at it.)

You can check with
{{{
od -tx1z x.pir
}}}
which outputs something like:
{{{
0000000 2e 73 75 62 20 66 6f 6f 0a 09 73 61 79 20 22 48  >.sub foo..say ""H<
0000020 65 6c 6c 6f 2c 20 77 6f 72 6c 64 22 0a 2e 65 6e  >ello, world""..en<
0000040 64 0a 23 20 4c 61 73 74 20 6c 69 6e 65           >d.# Last line<
0000055
}}}

At any rate, feeding that input to parrot (v2.0) produces:
{{{
austin@andLinux:~/kakapo$ parrot --output x.pbc x.pir
error:imcc:syntax error, unexpected $undefined, expecting $end (' ')
	in file 'x.pir' line 4
}}}

Appending a newline satisfies the parser."	Austin_Hastings
3	2.1.0	1496	Parrot_String-related functions are only available from parrot/parrot.h	core	2.1.0	bug		new	2010-03-04T15:47:17Z	2010-09-17T16:43:48Z	"As reported by Joshua Tolley:
{{{
 I'm calling Parrot_compile_string(), which as one
of its arguments takes a pointer to a Parrot_String object, where apparently
it puts error messages should the string I'm compiling happen not to compile.
Presumably in order to test the resulting string for NULL, convert it to a C
string, etc., I should use the stuff declared in string_funcs.h. The problem
is that everything in string_funcs.h is defined only if PARROT_IN_CORE is
defined. PARROT_IN_CORE, in turn, is defined only if I include parrot.h
}}}

Since only parrot internals should include parrot/parrot.h, these functions need to be made available from parrot/embed.h and parrot/extend.h"	dukeleto
4	2.1.0	1471	http://www.parrot.org/dev/examples doesn't use color coding.	website	2.1.0	bug		new	2010-02-19T22:23:27Z	2010-02-19T22:29:45Z	"The child pages have color coding as expected, but the sample examples do not.

GArrow++ for reporting the issue."	coke
4	2.1.0	1475	[Pmc2c] make METHOD and MULTI consistent in terms of how PCC is done	build	2.1.0	bug		new	2010-02-22T23:46:29Z	2010-10-16T22:35:06Z	"Currently, pmc2c generates the boilerplate to do PCC stuff in methods. However, if the method is multi, pmc2c uses NCI to do PCC.

There are likely advantages and disadvantages to both approaches (duplicate code vs potential object system bootstrapping issues). One thing is clear to me: whichever mechanism is used, these should be doing things the same way."	plobsing
4	2.1.0	1480	Preprocessing using parrot -E fails	none	2.1.0	bug		new	2010-02-25T10:36:11Z	2010-05-14T22:19:41Z	"In revision 44472 preprocessing fails
$ echo "".HLL 'test1'"" | ./parrot -E -
Segmentation fault


In revision 44371 (used by rakudo) preprocessing seems to replace .HLL keyword with garbage (I could be wrong):
$ (echo "".HLL 'test1'""; echo "".HLL 'test2'""; echo "".HLL 'test3'"") | ./parrot -E -
��� 'test1' 
'test1' 'test2' 
'test2' 'test3' 
"	uniejo
4	2.1.0	1481	P6metaclass.register does not catch second registration of PMC Class	none	2.1.0	bug		new	2010-02-26T02:25:48Z	2010-08-09T10:37:33Z	"Registering a PMC class works. Registering the same class a second time does not produce a diagnostic - although attempting to register a non-PMC class twice does.

Also, the second register produces some horrible results.

{{{
main();

sub main() {
	pir::load_bytecode('dumper.pbc');
	pir::load_bytecode('P6object.pbc');
	my $nsp;
	
	
	$nsp := Q:PIR {
		%r = get_hll_namespace ['Key']
	};
	_dumper($nsp);
	
	P6metaclass.register('Key');

	$nsp := Q:PIR {
		%r = get_hll_namespace ['Key']
	};
	_dumper($nsp);

	
	P6metaclass.register('Key');

	$nsp := Q:PIR {
		%r = get_hll_namespace ['Key']
	};
	_dumper($nsp);
}
}}}"	Austin_Hastings
4	2.1.0	1487	Object.find_method fails if PIR 'find_method' vtable override returns null	core	2.1.0	bug		new	2010-02-28T14:36:23Z	2010-09-17T11:51:34Z	"If I override the 'find_method' vtable for a class, the object.pmc code correctly locates the override and calls it.

However, the same code assumes that any overridden find_method will automatically succeed.

This is inconsistent with the way the default behavior is implemented, which allows a class to return null and then passes on to the next class in the MRO.

(I can see where it might be desirable to ""block"" method lookup from parent classes. But I think it's more likely that some kind of AUTOLOAD behavior is going to match-these-names or pass to the ancestor. Blocking can be implemented with a sub that dies, or Undef.)"	Austin_Hastings
4	2.1.0	1491	mk_language_shell.pl and create_language.pl cause confusion	tools	2.1.0	bug	dukeleto	new	2010-03-03T04:30:06Z	2011-08-03T02:23:39Z	It's confusing to have two scripts that appear to do the same thing without a clear indication why they both exist.  We need to differentiate the documentation of these scripts to the point where a potential HLL dev can look the inline POD of both of them and easily decide which one is appropriate for his or her needs.	cotto
4	2.1.0	1492	Get_class <namespace> confuses NSes that have same final name.	core	2.1.0	bug	whiteknight	assigned	2010-03-03T15:06:09Z	2010-11-21T20:13:19Z	"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.
"	Austin_Hastings
4	2.1.0	1510	NQP-rx doesn't create PMC for string // expressions	nqp	2.1.0	bug	pmichaud	assigned	2010-03-16T03:35:45Z	2011-10-19T21:23:43Z	"{{{
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."	Austin_Hastings
4	2.1.0	1512	NQP-rx generates bad access code for non-twigiled attribute	nqp	2.1.0	bug	pmichaud	new	2010-03-16T12:28:13Z	2011-02-02T02:16:01Z	"This code, with twigil:
{{{
austin@andLinux:~/kakapo$ cat test.nqp
method foo() {
	has @!attr;

	for my @a {
		say(@!attr);
	}
}
}}}
Generates this pir:
{{{
.annotate ""line"", 5
    find_lex $P24, ""self""
    getattribute $P25, $P24, ""@!attr""
    unless_null $P25, vivify_14
    new $P25, ""ResizablePMCArray""
  vivify_14:
}}}
Whereas this code, sans twigil:
{{{
austin@andLinux:~/kakapo$ cat test.nqp
method foo() {
	has @attr;

	for my @a {
		say(@attr);
	}
}
}}}
Generates this output:
{{{
.annotate ""line"", 5
    getattribute $P24, self, ""@attr""
    $P25 = ""say""($P24)
.annotate ""line"", 4
}}}

Because the sub is a nested block, it has no method declaration and so must do a find-lex lookup to get 'self'. This is not happening.
 
Since the grammar does not support '.' as a twigil, which I think it should, I'm not sure if an attribute with no twigil is or isn't valid. If it's not valid, then the `has @attr` declaration should throw an error. If it's valid, then the access code should work."	Austin_Hastings
4	2.10.0	1834	Confusing error message on dynop version mismatch	core	2.10.0	bug		new	2010-10-21T23:44:55Z	2010-10-21T23:44:55Z	"A recent Rakudo compilation produces this error message:

{{{
Incompatible versions of `perl6_ops' oplib. Found 2.8.0 but loaded 2.9.1
}}}

If it loaded 2.9.1, it must have found it first. Why does it complain about another version being found? Why does it even continue searching if it loaded one version?"	moritz
4	2.10.0	1838	a ticket about the ticket system	website	2.10.0	bug		new	2010-10-24T14:25:02Z	2011-01-30T18:38:01Z	"If there is a WWW-cache between the web-client and trac.parrot.org it
is not possible to login."	gerd
4	2.10.0	1857	Change remaining deprecated usages of set/get _addr to set/get _label	core	2.10.0	bug		new	2010-11-18T19:07:00Z	2011-10-20T22:25:22Z	"TT #218 deprecates several usages of set_addr and establishes set_label as its replacement. However there are still remaining usages of the deprecated form in our tests, possibly in other parts of the repo and in HLLs.

I'm opening this new ticket as a remainder and as help in order to solve TT #218.

Please add comments here about the status of relevant HLLs.
"	NotFound
4	2.10.0	1884	don't cache .parrot_current_git_describe	configure	2.10.0	bug		new	2010-12-09T01:26:40Z	2011-03-27T16:02:47Z	"When configuring parrot, the value for ""git-describe"" is taken from the cache file if it is present.

Here's a not-uncommon workflow that breaks in this case:

 * realclean 
 * build
 * git pull
 * configure # XXX This does not update the sha1-describe.
 * build

Unless there's a super compelling reason to cache this file, the value shouldn't even be stored on disk - it should go into the config hash and be calculated every time you run configure.

(similar arguments may cover other newly generated .parrot files.)"	coke
4	2.10.0	1891	Problems with acosh, asech, atanh and acoth  in Complex PMC	core	2.10.0	bug	Util	assigned	2010-12-14T17:19:30Z	2011-07-21T05:02:56Z	"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"	fbrito
3	2.11.0	1943	Failure due to missing external definition of inlined functions	configure	2.11.0	bug		new	2011-01-10T04:41:27Z	2011-01-19T19:52:59Z	"As of version RELEASE_2_11_0-902-gdce9186, attempting to build parrot with Sun's compiler under Linux fails with the following errors:
{{{
/tmp/parrot/blib/lib/libparrot.so: undefined reference to `Parrot_pmc_box_integer'
/tmp/parrot/blib/lib/libparrot.so: undefined reference to `Parrot_pmc_box_string'
/tmp/parrot/blib/lib/libparrot.so: undefined reference to `Parrot_pmc_box_number'
}}}

The problem is a reappearance of TT #1646.  There really seem to be three separate issues:

1.  The config::auto inline test does not test the inline keyword in the way that parrot ultimately uses it.  (It specifies neither static nor external, and is in the same file as it is ultimately used.)  It is relevant to note that gcc -std=c99 won't accept the current inline test files either.  A correct test would test the way that inline is intended to actually be used.  If parrot wants to assume that inline functions also have external linkage, then the tests should be written to test for this.  Note that traditional GNU inline behavior is different from C99 behavior.
A good discussion of these issues is at 
[http://www.greenend.org.uk/rjk/2003/03/inline.html].  (In perl 5, we test for and use only {{{ static inline }}}.  Feel free to copy those tests.)

2.  The result of the configure test is, in some cases, ignored anyway.  Specifically, if the compiler passes the second test for {{{ __inline }}}, the following code in {{{ config/gen/config_h/feature_h.in }}} unconditionally uses a plain {{{ inline }}} anyway, even though Configure determined that didn't work:
{{{
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#  define PARROT_INLINE inline
#  define PARROT_HAS_INLINE
#else
#  define PARROT_INLINE
#endif
}}}

3.  The functions above are never declared 'extern'."	doughera
4	2.11.0	1929	incorrect null-return from method calls	core	2.11.0	bug		new	2011-01-03T03:06:27Z	2011-08-27T17:04:40Z	"Calling a method expecting one return value when the method returns none does not work as expected. The register should be filled with PMCNULL, or an exception should be thrown.

In stead, the register is filled with the invocant. While this allows for a nifty chaining accidental feature, this is not what is expected in these situations."	plobsing
4	2.11.0	1932	rakudo on parrot RELEASE_2_11_0-656-g27c0799 executes main body twice	none	2.11.0	bug		new	2011-01-04T11:14:42Z	2011-01-07T18:23:43Z	"{{{
$ ./perl6 -e 'say 3'
3
3
}}}

likewise all test files confuse the test harness.

This didn't happen on RELEASE_2_11_0-478-gd69dbbc for example, and in the mean time rakudo didn't change signficantly."	moritz
4	2.11.0	1946	Smolder parrot feed incorrect URLS.	website	2.11.0	bug		new	2011-01-11T05:01:47Z	2011-05-22T02:26:16Z	"{{{
given the smolder feed:

http://smolder.parrot.org/app/projects/feed/1/failed

I get links to, e.g.:

http://140.211.167.206:8081/app/public_projects/smoke_report/2181

Which eventually times out. The link for that report should be:

http://smolder.parrot.org/app/projects/report_details/2181

-- 
Will ""Coke"" Coleda

}}}
"	coke
3	2.2.0	1520	P6metaclass cannot derive from already-`register`ed PMC type	library	2.2.0	bug		new	2010-03-21T03:50:20Z	2010-03-21T03:50:20Z	"Registering a PMC-proxy seems to be enough to prevent its use as a parent class.
{{{
austin@andLinux:~/kakapo$ cat test.nqp
INIT {
	P6metaclass.register('Hash');
}

class Foo is Hash {
	INIT { say(""Hello, Foo""); }
}
austin@andLinux:~/kakapo$ parrot-nqp test.nqp
Could not build C3 linearization: ambiguous hierarchy
current instr.: 'parrot;P6metaclass;register' pc 532 (runtime/parrot/library/P6object.pir:408)
called from Sub '' pc -1 ((unknown file):-1)
called from Sub 'parrot;PCT;HLLCompiler;evalpmc' pc 972 (compilers/pct/src/PCT/HLLCompiler.pir:538)
... call repeated 1 times
called from Sub 'parrot;PCT;HLLCompiler;compile' pc 388 (compilers/pct/src/PCT/HLLCompiler.pir:287)
called from Sub 'parrot;PCT;HLLCompiler;eval' pc 992 (compilers/pct/src/PCT/HLLCompiler.pir:556)
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)
}}}

I suspect (based on scanning a trace, but not based on ''poring over'' the trace) that the problem lies in the `get_parrotclass` method.

The '''major''' impact for me is interoperation between the Kakapo library, which registers a large collection of PMC types, and the PCT/PGE tools, which build many of their classes as subtypes of Hash."	Austin_Hastings
4	2.2.0	1515	Duplicate named args cause fatal error in subs	none	2.2.0	bug	whiteknight	new	2010-03-17T21:18:45Z	2011-01-30T04:45:26Z	"Calling a sub with duplicate named args:
{{{
.sub main :main
	foo( 1 :named('a'), 2 :named('a') )
.end
}}}
triggers an error:
{{{
duplicate named argument in call
current instr.: 'main' pc 0 (test.pir:4)
}}}

Unfortunately, this means that setting defaults in a hash, then flattening the hash together with any explicit named args, is no longer a valid way to handle argument defaulting.
 
Given that, either (1) this is a bug, and duplicate named args should be permitted; or (2) this is the official new way, in which case what is the model for arg-defaulting?
"	Austin_Hastings
4	2.2.0	1527	Despite pdd15, add_role ignores role attributes	none	2.2.0	bug		new	2010-03-23T12:41:28Z	2010-03-23T12:41:28Z	"PDD15 promises that role attributes are merged into any class the role is composed into.

However, class.pmc calls Parrot_ComposeRole, which only deals with methods and updates the 'roles' list."	Austin
4	2.2.0	1542	HLLs sometimes leak into loaded modules	core	2.2.0	bug	whiteknight	new	2010-04-04T06:29:12Z	2010-11-21T15:53:17Z	"{{{
stefan@stefans:~$ perl6 -e 'pir::load_bytecode(""/usr/local/lib/parrot/2.2.0-devel/languages/nqp/nqp.pbc"")'
Parent isn't a Class.
current instr.: 'parrot;P6metaclass;add_parent' pc 224 (runtime/parrot/library/P6object.pir:232)
called from Sub 'parrot;P6metaclass;register' pc 532 (runtime/parrot/library/P6object.pir:408)
called from Sub 'perl6;PCT;Grammar;onload' pc -1 ((unknown file):-1)
called from Sub 'perl6;PCT;__onload' pc 0 (compilers/pct/PCT.pir:18)
... call repeated 1 times
}}}

I'm not sure what's going on here or how to start debugging it.  Austin thinks that Rakudo is redefining something somewhere, but that wouldn't explain the fact that PCT has somehow become loaded into the perl6 top level namespace.  I suspect a Parrot bug somewhere.
"	sorear
4	2.2.0	1546	Env.pmc fails to link dll in Windows VC build, and probably doesn't work	none	2.2.0	bug		new	2010-04-09T00:35:52Z	2010-09-07T20:48:52Z	"Compiling and linking on windows, using the instructions for the MS VS 2k8 compiler found on the http://trac.parrot.org/parrot/wiki/Platforms/Windows page, I had a problem with the AR_CR= make variable. Setting this to ""lib.exe"" corrects the problem, but the step of making the shared library (.dll in Windows parlance) fails because of an external reference to `__environ` in Env.pmc.

Inspecting env.pmc leads to the conclusion that there is probably a set of -Defines that will work for MSVS to get the code to link correctly, but also to the conclusion that any Windows dll, and probably any *nix shared lib, that is built in this way is going to fail.

Shared libraries generally have a ""separate life"" in process-space, so that two applications that both link to the shared library will only cause one instance of the library to appear in memory. In this regard, shared libraries act very much like a program running as a daemon.
 
But such a program, if it tries to interact with the ""system"" on behalf of a client, has to take special precautions. For example, if it writes to stdout, which stdout should it write to? The stdout of the shared library, or of the client program?
 
Similarly, references to environment variables are subject to the same question. And for the specific case of environment variables, the answer is probably always ""use the client program's environment.""

References to `environ` don't do this. Instead, they reference the environment that was available when the shared library was loaded. The potential bug should be obvious.
 
For Windows, my research has led me to an API call named 'GetEnvironmentStrings'. I'm not at all clear on the corresponding call for Unix, if there even is such a thing.
 
Also, it is unclear to me what the protocol for highly-OS-specific code is, w.r.t. PMCs. Parrot is chock full of PMCs that are nothing but wrappers for the various src/foo.c modules, for whatever reason(s).
 
At any rate, someone smarter than me about Windows, and about Parrot's cross-platform coding approach, will need to take a look at this. (Which is likely to be ""anyone with a pulse and a keyboard."")"	Austin_Hastings
4	2.2.0	1552	[DEPRECATION] UnManagedStruct initializer structure	none	2.2.0	bug		new	2010-04-12T06:53:48Z	2011-03-27T02:53:20Z	"The Array or OrderedHash of triples is inelegant to say the least. This will be replaced with an interface accepting an Array of flags or a signature String containing the same information.

This affects the following vtables:
 * init_pmc
 * set_pmc"	plobsing
4	2.2.0	1553	[DEPRECATION] UnManagedStruct get_integer, set_integer_native	none	2.2.0	bug		new	2010-04-12T06:56:23Z	2010-04-12T06:56:23Z	These will be repurposed from setting/getting byte-length (which should really be handled by setting the shape of the struct), to handling the number of times the struct is considered to be repeated as an array of structs.	plobsing
4	2.2.0	1557	pbc_disassemble fails on large PBCs	none	2.2.0	bug		new	2010-04-14T00:49:38Z	2010-08-27T04:56:19Z	"PBC disassemble complains about encoding or flat out segfaults when dealing with large PBC files. Good choices are perl6.pbc from rakudo, nqp-rx.pbc, etc

{{{
> /home/pitr/parrot-trunk/bin/pbc_disassemble perl6.pbc
zsh: segmentation fault  /home/pitr/parrot-trunk/bin/pbc_disassemble perl6.pbc
}}}
{{{
> ./pbc_disassemble parrot-nqp.pbc
...
000000000750-000000002197 000707: 	index_i_sc_s I8,""\t Invalid character for UTF-8 encoding

current instr.: 'parrot;NQP;Compiler;main' pc 76066 (ext/nqp-rx/src/stage0/NQP-s0.pir:20736)
}}}"	plobsing
2	2.3.0	1589	Move . to the end of the library search path	core	2.3.0	bug	soh_cah_toa	new	2010-04-24T05:39:42Z	2011-06-11T01:10:19Z	"Here's a snippet of strace output after I accidentally ran parrot-nqp in a directory with a Regex.pbc file:

{{{
stat64(""./Regex.pbc"", {st_mode=S_IFREG|0644, st_size=100432, ...}) = 0
open(""./Regex.pbc"", O_RDONLY|O_LARGEFILE) = 3
stat64(""./P6object.pbc"", 0xbf9ee9bc)    = -1 ENOENT (No such file or directory)
stat64(""./P6object.pir"", 0xbf9ee9bc)    = -1 ENOENT (No such file or directory)
stat64(""./P6object.pasm"", 0xbf9ee9bc)   = -1 ENOENT (No such file or directory)
stat64(""./P6object.pbc"", 0xbf9ee9bc)    = -1 ENOENT (No such file or directory)
stat64(""/usr/local/./P6object.pbc"", 0xbf9ee9bc) = -1 ENOENT (No such file or directory)
stat64(""/usr/local/./P6object.pir"", 0xbf9ee9bc) = -1 ENOENT (No such file or directory)
stat64(""/usr/local/./P6object.pasm"", 0xbf9ee9bc) = -1 ENOENT (No such file or directory)
stat64(""/usr/local/./P6object.pbc"", 0xbf9ee9bc) = -1 ENOENT (No such file or directory)
stat64(""/usr/local/lib/parrot/2.3.0-devel/library/P6object.pbc"", {st_mode=S_IFREG|0644, st_size=18448, ...}) = 0
stat64(""/usr/local/lib/parrot/2.3.0-devel/library/P6object.pbc"", {st_mode=S_IFREG|0644, st_size=18448, ...}) = 0
stat64(""/usr/local/lib/parrot/2.3.0-devel/library/P6object.pbc"", {st_mode=S_IFREG|0644, st_size=18448, ...}) = 0
stat64(""/usr/local/lib/parrot/2.3.0-devel/library/P6object.pbc"", {st_mode=S_IFREG|0644, st_size=18448, ...}) = 0
open(""/usr/local/lib/parrot/2.3.0-devel/library/P6object.pbc"", O_RDONLY|O_LARGEFILE) = 3
}}}

Parrot has taken Regex.pbc in the current directory before even checking for it in the standard libraries.  The same behavior occurs with all other Parrot-based programs which use installed libraries.  This provides an attack vector against Parrot users:

 1. Wait for Perl6-on-Parrot to hit the big time.
 1. Distribute a shady tarball containing a malicious P6Regex.pbc inside it.
 1. The victim unpacks the tarball and attempts to analyze the contents.
 1. The user runs his Perl 6 based editor.
 1. Rakudo loads Perl6.pbc from the current directory.  My code is now running.

It's probably best to follow Perl 5's example here:

{{{
$ perl -V
...
  @INC:
    /usr/local/lib/perl5/site_perl/5.12.0/i686-linux-thread-multi
    /usr/local/lib/perl5/site_perl/5.12.0
    /usr/local/lib/perl5/5.12.0/i686-linux-thread-multi
    /usr/local/lib/perl5/5.12.0
    .
}}}

With the current directory at the end, installed programs which use only installed libraries will never be tricked into running code in the current directory.  Hopefully it is not too common for installed programs to reference nonexistant libraries.
"	sorear
4	2.3.0	1611	t/library/pg.t fails with PostgreSQL 8.4.3 on ubuntu 9.10	testing	2.3.0	bug		new	2010-05-05T09:53:59Z	2010-08-17T09:03:45Z	"{{{
$ prove -v t/library/pg.t 
t/library/pg.t .. 
1..43
ok 1 - load_bytecode
ok 2 - load_bytecode Pg
ok 3 - Pg class exists
ok 4 - con isa Pg;Conn
ok 5 - con is true after connect
ok 6 - con.status() == CONNECTION_OK 
ok 7 - status(PGconn) == CONNECTION_OK 
ok 8 - exec BEGIN called
ok 9 - res isa Pg;Result
ok 10 - res.resultStatus() == PGRES_COMMAND_OK 
ok 11 - notice receiver called
ok 12 - notice callback got a struct
not ok 13 - notice result is still ok
ok 14 - table created PGRES_COMMAND_OK 
ok 15 - insert row PGRES_COMMAND_OK 
ok 16 - select * PGRES_TUPLES_OK 
ok 17 - res.ntuples == 1
ok 18 - res.nfields == 3
ok 19 - res.fname(1) == ""foo""
ok 20 - res.fname(1) == ""bar""
ok 21 - res.fnumber(""id"") == 0
ok 22 - res.fnumber(""bar"") == 2
ok 23 - res.fnumber(""no_such_col_name"") == -1
ok 24 - getvalue(0, 1) == ""a""
ok 25 - getvalue(0, 2) == ""b""
ok 26 - insert w execParams PGRES_COMMAND_OK 
ok 27 - res.ntuples == 2
ok 28 - getvalue(1, 1) == ""c""
ok 29 - getvalue(1, 2) == ""d""
ok 30 - prepare PGRES_COMMAND_OK 
ok 31 - execPrepared PGRES_COMMAND_OK 
ok 32 - res.ntuples == 3
ok 33 - execPrepared PGRES_COMMAND_OK 
ok 34 - res.ntuples == 4
ok 35 - insert row PGRES_COMMAND_OK 
ok 36 - res.ntuples == 5
ok 37 - getvalue(4, 1) == ""i""
ok 38 - getvalue(4, 2) == """"
ok 39 - getisnull(4, 1) == 0
ok 40 - getisnull(4, 2) == 1
ok 41 - ABORT succeeded
ok 42 - con.finish()
ok 43 - con is false after finish
Failed 1/43 subtests 

Test Summary Report
-------------------
t/library/pg.t (Wstat: 0 Tests: 43 Failed: 1)
  Failed test:  13
Files=1, Tests=43,  0 wallclock secs ( 0.01 usr  0.02 sys +  0.01 cusr  0.00 csys =  0.04 CPU)
Result: FAIL
}}}"	dukeleto
4	2.4.0	1652	Line numbers in a particular IMCC stack trace are all wrong	imcc	2.4.0	bug	plobsing	reopened	2010-05-20T19:18:03Z	2011-07-06T02:28:55Z	"To reproduce:

please check out commit 93b60203b806a0303f8f7981469102ea90ce5b54 of Rakudo, configure rakudo with r46819 of parrot, and then run 'make'

{{{
$ make
...
/home/moritz/rakudo/parrot_install/bin/parrot  -o src/gen/perl6.pbc src/Perl6/Compiler.pir
error:imcc:syntax error, unexpected DOT, expecting $end ('.')
        in file 'src/builtins/EnumMap.pir' line 92
        included from 'src/gen/builtins.pir' line 92
        included from 'src/Perl6/Compiler.pir' line 1
error:imcc:syntax error ... somewhere
        in file 'src/builtins/EnumMap.pir' line 92
        included from 'src/gen/builtins.pir' line 92
        included from 'src/Perl6/Compiler.pir' line 1
make: *** [src/gen/perl6.pbc] Error 1
}}}

Files EnumMap.pir and bulitins.pir are 36 and 59 lines long, respectively, and line 1 in src/Perl6/Compiler.pir is a comment. So all these line numbers in the backtrace have no obvious connection to reality"	moritz
4	2.4.0	1657	Make it so that Parrot on RTEMS does not call the system exit()	core	2.4.0	bug	bubaflub	new	2010-05-25T23:45:47Z	2011-03-27T14:40:37Z	"There are various ways to make this happen, and various levels of configurability, such as allowing a custom exit handler, but for starters, we just want Parrot on RTEMS to unconditionally not call the system exit() when shutting down, as this causes RTEMS to reboot.

Other tickets can be opened for a more features in the future.
"	dukeleto
4	2.4.0	1664	OS PMC should use stat.pasm equivalent indices for stat buffer	none	2.4.0	bug		new	2010-05-28T08:58:26Z	2010-05-28T08:58:26Z	"The stat dynop and OS.stat (dynpmc) use inconsistent indices.

OS.stat also does not provide symbolic constants to index into the returned array.

Either the array returned by OS.stat should be re-ordered, or the indices in stat.pasm should reflect the current ordering of the stat buffer as returned by OS.stat and the stat op should be modified."	plobsing
4	2.4.0	1769	"Getting get_integer() not implemented in class 'XXXXX' when using ""morph"""	none	2.4.0	bug		reopened	2010-09-04T02:09:30Z	2010-09-05T14:54:24Z	"Using the following code its enough to trigger the get_integer error:


{{{
.namespace[]

.sub main
     .local pmc obja, objb
     $P0 = newclass 'Object1'
     $P1 = newclass 'Object2'
     obja = new $P0
     objb = new $P1
     morph obja, objb
     .return()
.end
}}}
"	bluescreen
4	2.5.0	1690	Overriding one signature of  a multi-method in a subclass prevents access to the other signatures	core	2.5.0	bug		new	2010-06-25T00:23:00Z	2010-06-25T00:23:00Z	"If a class defines a multi-method with multiple signature, a sub-class cannot override only some signatures of the multi-method and still inherit the remaining signatures.

For an example:

{{{
class A {
    our multi method foo (Integer $i) {
        self.foo(~$i);
    }

    our multi method foo (String $s) {
        say($s);
    }
}

class B is A {
    our multi method foo (Integer $i) {
        self.foo(~($i + 1));
    }
}

A.new.foo(1);

B.new.foo(1);
}}}


And the output of running it:

{{{
$ ./parrot-nqp test.nqp 
1
No applicable candidates found to dispatch to for 'foo'
current instr.: 'parrot;B;foo' pc 329 (EVAL_1:33777434)
called from Sub '_block11' pc 97 (EVAL_1:33777341)
called from Sub 'parrot;HLL;Compiler;_block465' pc 23452 (ext/nqp-rx/src/stage0/HLL-s0.pir:7654)
called from Sub 'parrot;HLL;Compiler;eval' pc 23332 (ext/nqp-rx/src/stage0/HLL-s0.pir:7622)
called from Sub 'parrot;PCT;HLLCompiler;evalfiles' pc 1500 (compilers/pct/src/PCT/HLLCompiler.pir:761)
called from Sub 'parrot;PCT;HLLCompiler;command_line' pc 1702 (compilers/pct/src/PCT/HLLCompiler.pir:869)
called from Sub 'parrot;NQP;Compiler;main' pc 83871 (ext/nqp-rx/src/stage0/NQP-s0.pir:23065)
}}}"	tcurtis
4	2.5.0	1692	postgres libraries don't work from foreign HLLs	library	2.5.0	bug		reopened	2010-06-28T11:21:00Z	2010-06-28T20:00:51Z	"This works without error:

{{{
.sub main :main
    load_bytecode 'Pg.pir'
    $P0 = new 'Pg'
    $P1 = $P0.'connectdb'('')
.end
}}}

But this dies:
{{{
.HLL 'foo'
.sub main :main
    load_bytecode 'Pg.pir'
    $P0 = new 'Pg'
    $P1 = $P0.'connectdb'('')
.end
}}}

Error:

{{{
Null PMC access in invoke()
current instr.: 'foo;Pg;Conn;status' pc 137 (/home/moritz/rakudo/parrot_install/lib/2.5.0-devel/library/Pg.pir:150)
called from Sub 'foo;Pg;connectdb' pc 55 (/home/moritz/rakudo/parrot_install/lib/2.5.0-devel/library/Pg.pir:86)
called from Sub 'main' pc 12 (foo.pir:5)
}}}

Either Pg should be in the 'parrot' HLL, and needs explicit calling, or it should work anywhere it is included."	moritz
4	2.5.0	1693	`make install` doesn't install all files necessary to build Rakudo on Cygwin	install	2.5.0	bug		new	2010-06-28T12:23:53Z	2010-09-07T15:18:26Z	"When building Parrot 2.5.0 on Cyqwin, `make install` doesn't copy the files 'cygparrot2_5_0.dll' and 'libparrot.dll.a' to directories where the Rakudo build can find them.

Manually moving 'cygparrot2_5_0.dll' to '/usr/local/bin' and 'libparrot.dll.a' to '/usr/local/lib' solves the problem."	cygx
4	2.5.0	1695	Segmentation fault when calling .finish on unopend postgres connection	library	2.5.0	bug		new	2010-06-29T08:20:21Z	2010-06-29T08:20:21Z	"{{{
.HLL 'perl6'
.sub main :main
    load_bytecode 'Pg.pir'
    $P0 = new 'Pg'
    $P1 = $P0.'connectdb'('username=fantasy password=values')
    $I0 = $P1.'status'()
    say $I0
    $P1.'finish'()
.end
}}}

The fantasy connection parameters cause the connect to fail, and then calling the finish method results in hilarity:

{{{
(gdb) run foo.pir
Starting program: /nocrypt-home/moritz/source/rakudo/parrot_install/bin/parrot foo.pir
[Thread debugging using libthread_db enabled]
warning: Lowest section in /usr/lib/libicudata.so.36 is .hash at 0000000000000120
[New Thread 0x7fe533a146f0 (LWP 8529)]
12319936
*** glibc detected *** /nocrypt-home/moritz/source/rakudo/parrot_install/bin/parrot: free(): invalid pointer: 0x0000000000c54958 ***
======= Backtrace: =========
/lib/libc.so.6[0x7fe5315039a8]
/lib/libc.so.6(cfree+0x76)[0x7fe531505ab6]
/lib/libc.so.6(freeaddrinfo+0x28)[0x7fe531547f88]
/usr/lib/libpq.so[0x7fe530b119bd]
/usr/lib/libpq.so(PQfinish+0xe)[0x7fe530b11b3e]
/home/moritz/rakudo/parrot_install/lib/libparrot.so.2.5.0[0x7fe5334bbd48]
/home/moritz/rakudo/parrot_install/lib/libparrot.so.2.5.0[0x7fe5334f92c1]
/home/moritz/rakudo/parrot_install/lib/libparrot.so.2.5.0[0x7fe5334d5931]
/home/moritz/rakudo/parrot_install/lib/libparrot.so.2.5.0[0x7fe5334d4ead]
/home/moritz/rakudo/parrot_install/lib/libparrot.so.2.5.0[0x7fe5334ac45c]
/home/moritz/rakudo/parrot_install/lib/libparrot.so.2.5.0(Parrot_pcc_invoke_from_sig_object+0x101)[0x7fe5334a83a1]
/home/moritz/rakudo/parrot_install/lib/libparrot.so.2.5.0(Parrot_pcc_invoke_sub_from_c_args+0xeb)[0x7fe5334a849b]
/nocrypt-home/moritz/source/rakudo/parrot_install/bin/parrot[0x40185e]
/lib/libc.so.6(__libc_start_main+0xe6)[0x7fe5314ae1a6]
/nocrypt-home/moritz/source/rakudo/parrot_install/bin/parrot[0x4011c9]
======= Memory map: ========
00400000-00409000 r-xp 00000000 08:07 10078770                           /nocrypt-home/moritz/source/rakudo/parrot_install/bin/parrot
00609000-0060a000 rw-p 00009000 08:07 10078770                           /nocrypt-home/moritz/source/rakudo/parrot_install/bin/parrot
00b25000-00c9d000 rw-p 00000000 00:00 0                                  [heap]
7fe528000000-7fe528021000 rw-p 00000000 00:00 0 
7fe528021000-7fe52c000000 ---p 00000000 00:00 0 
7fe52e654000-7fe52e6b9000 r-xp 00000000 08:01 398415                     /usr/lib/libgcrypt.so.11.4.4
7fe52e6b9000-7fe52e8b8000 ---p 00065000 08:01 398415                     /usr/lib/libgcrypt.so.11.4.4
7fe52e8b8000-7fe52e8bb000 rw-p 00064000 08:01 398415                     /usr/lib/libgcrypt.so.11.4.4
7fe52e8bb000-7fe52e8ca000 r-xp 00000000 08:01 398445                     /usr/lib/libtasn1.so.3.0.15
7fe52e8ca000-7fe52eaca000 ---p 0000f000 08:01 398445                     /usr/lib/libtasn1.so.3.0.15
7fe52eaca000-7fe52eacb000 rw-p 0000f000 08:01 398445                     /usr/lib/libtasn1.so.3.0.15
7fe52eacb000-7fe52eb72000 r-xp 00000000 08:01 402186                     /usr/lib/libgnutls.so.26.4.6
7fe52eb72000-7fe52ed72000 ---p 000a7000 08:01 402186                     /usr/lib/libgnutls.so.26.4.6
7fe52ed72000-7fe52ed7d000 rw-p 000a7000 08:01 402186                     /usr/lib/libgnutls.so.26.4.6
7fe52ed7d000-7fe52ed96000 r-xp 00000000 08:01 397607                     /usr/lib/libsasl2.so.2.0.22
7fe52ed96000-7fe52ef96000 ---p 00019000 08:01 397607                     /usr/lib/libsasl2.so.2.0.22
7fe52ef96000-7fe52ef97000 rw-p 00019000 08:01 397607                     /usr/lib/libsasl2.so.2.0.22
7fe52ef97000-7fe52efa5000 r-xp 00000000 08:01 398439                     /usr/lib/liblber-2.4.so.2.1.0
7fe52efa5000-7fe52f1a5000 ---p 0000e000 08:01 398439                     /usr/lib/liblber-2.4.so.2.1.0
7fe52f1a5000-7fe52f1a6000 rw-p 0000e000 08:01 398439                     /usr/lib/liblber-2.4.so.2.1.0
7fe52f1a6000-7fe52f1b6000 r-xp 00000000 08:01 413433                     /lib/libresolv-2.7.so
7fe52f1b6000-7fe52f3b6000 ---p 00010000 08:01 413433                     /lib/libresolv-2.7.so
7fe52f3b6000-7fe52f3b8000 rw-p 00010000 08:01 413433                     /lib/libresolv-2.7.so
7fe52f3b8000-7fe52f3ba000 rw-p 00000000 00:00 0 
7fe52f3ba000-7fe52f3bc000 r-xp 00000000 08:01 413691                     /lib/libkeyutils-1.2.so
7fe52f3bc000-7fe52f5bb000 ---p 00002000 08:01 413691                     /lib/libkeyutils-1.2.so
7fe52f5bb000-7fe52f5bc000 rw-p 00001000 08:01 413691                     /lib/libkeyutils-1.2.so
7fe52f5bc000-7fe52f5c3000 r-xp 00000000 08:01 396932                     /usr/lib/libkrb5support.so.0.1
7fe52f5c3000-7fe52f7c3000 ---p 00007000 08:01 396932                     /usr/lib/libkrb5support.so.0.1
7fe52f7c3000-7fe52f7c4000 rw-p 00007000 08:01 396932                     /usr/lib/libkrb5support.so.0.1
7fe52f7c4000-7fe52f7e8000 r-xp 00000000 08:01 397242                     /usr/lib/libk5crypto.so.3.1
7fe52f7e8000-7fe52f9e8000 ---p 00024000 08:01 397242                     /usr/lib/libk5crypto.so.3.1
7fe52f9e8000-7fe52f9ea000 rw-p 00024000 08:01 397242                     /usr/lib/libk5crypto.so.3.1
7fe52f9ea000-7fe52fa00000 r-xp 00000000 08:01 397696                     /usr/lib/libz.so.1.2.3.3
7fe52fa00000-7fe52fc00000 ---p 00016000 08:01 397696                     /usr/lib/libz.so.1.2.3.3
7fe52fc00000-7fe52fc01000 rw-p 00016000 08:01 397696                     /usr/lib/libz.so.1.2.3.3
7fe52fc01000-7fe52fc46000 r-xp 00000000 08:01 402194                     /usr/lib/libldap_r-2.4.so.2.1.0
7fe52fc46000-7fe52fe45000 ---p 00045000 08:01 402194                     /usr/lib/libldap_r-2.4.so.2.1.0
7fe52fe45000-7fe52fe48000 rw-p 00044000 08:01 402194                     /usr/lib/libldap_r-2.4.so.2.1.0
7fe52fe48000-7fe52fe4a000 rw-p 00000000 00:00 0 
7fe52fe4a000-7fe52fe75000 r-xp 00000000 08:01 396916                     /usr/lib/libgssapi_krb5.so.2.2
7fe52fe75000-7fe530074000 ---p 0002b000 08:01 396916                     /usr/lib/libgssapi_krb5.so.2.2
7fe530074000-7fe530076000 rw-p 0002a000 08:01 396916                     /usr/lib/libgssapi_krb5.so.2.2
7fe530076000-7fe530079000 r-xp 00000000 08:01 411320                     /lib/libcom_err.so.2.1
7fe530079000-7fe530278000 ---p 00003000 08:01 411320                     /lib/libcom_err.so.2.1
7fe530278000-7fe530279000 rw-p 00002000 08:01 411320                     /li
Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7fe533a146f0 (LWP 8529)]
0x00007fe5314c1ed5 in raise () from /lib/libc.so.6
}}}



{{{
(gdb) bt
#0  0x00007fe5314c1ed5 in raise () from /lib/libc.so.6
#1  0x00007fe5314c33f3 in abort () from /lib/libc.so.6
#2  0x00007fe5314fe408 in ?? () from /lib/libc.so.6
#3  0x00007fe5315039a8 in ?? () from /lib/libc.so.6
#4  0x00007fe531505ab6 in free () from /lib/libc.so.6
#5  0x00007fe531547f88 in freeaddrinfo () from /lib/libc.so.6
#6  0x00007fe530b119bd in ?? () from /usr/lib/libpq.so
#7  0x00007fe530b11b3e in PQfinish () from /usr/lib/libpq.so
#8  0x00007fe5334bbd48 in pcf_v_p (interp=0xb25080, nci=<value optimized out>, self_unused=<value optimized out>)
    at src/nci/extra_thunks.c:375
#9  0x00007fe5334f92c1 in Parrot_NCI_invoke (interp=0xb25080, _self=0xc69e00, next=0xc82650) at ./src/pmc/nci.pmc:379
#10 0x00007fe5334d5931 in runops_slow_core (interp=0xb25080, runcore_unused=<value optimized out>, pc=0xc82640)
    at src/runcore/cores.c:647
#11 0x00007fe5334d4ead in runops_int (interp=0xb25080, offset=0) at src/runcore/main.c:237
#12 0x00007fe5334ac45c in runops (interp=0xb25080, offs=<value optimized out>) at src/call/ops.c:127
#13 0x00007fe5334a83a1 in Parrot_pcc_invoke_from_sig_object (interp=0xb25080, sub_obj=0xbb6520, call_object=<value optimized out>)
    at src/call/pcc.c:366
#14 0x00007fe5334a849b in Parrot_pcc_invoke_sub_from_c_args (interp=0xb25080, sub_obj=0xbb6520, sig=<value optimized out>)
    at src/call/pcc.c:87
#15 0x000000000040185e in main (argc=1, argv=0x7fffe5973048) at src/main.c:149
}}}"	moritz
4	2.5.0	1702	Cannot resume dead coroutine	none	2.5.0	bug		new	2010-07-03T16:30:10Z	2010-07-21T07:14:56Z	"{{{

.sub 'MyCoro'
    .yield(1)
    .yield(2)
    .yield(3)
    .return(4)
.end

.sub 'main' :main
    $I0 = MyCoro()
    say $I0
    $I0 = MyCoro()
    say $I0
    $I0 = MyCoro()
    say $I0
    $I0 = MyCoro()
    say $I0
    $I0 = MyCoro()
    say $I0
    $I0 = MyCoro()
    say $I0
    $I0 = MyCoro()
    say $I0
.end
}}}

prints:

{{{
1
2
3
4
Cannot resume dead coroutine.
current instr.: 'main' pc 35 (coro.pir:11)
}}}

on parrot-2.5.0-devel on Mac OS X 10.5.8.

I think the subroutine should restart, since the user of the sub doesn't care whether it's a coroutine or not."	hanekomu
4	2.5.0	1710	[BUG]  exit of a Coroutine affects all of its sister clones	none	2.5.0	bug		new	2010-07-21T07:12:46Z	2010-07-22T14:50:00Z	"If any clone of a Coroutine dies, then it exits all of the clones.  The best way to illustrate is with code:

{{{
$ cat coro.pir 
.sub 'main' :main
    .const 'Sub' $P99 = 'coro'

    .local pmc three, four, five
    three = clone $P99
    four  = clone $P99
    five  = clone $P99

    three(3)
    four(4)
    five(5)

    three()
    four()
    five()

    three()
.end

.sub '' :anon :subid('coro')
    .param int x
    print x
    say '.0'
    .yield (x)

    print x
    say '.1'
    .yield (x)

    print x
    say '.done'
.end
$ ./parrot coro.pir 
3.0
4.0
5.0
3.1
4.1
5.1
3.done
4.done
5.done
Cannot resume dead coroutine.
current instr.: 'main' pc 37 (coro.pir:11)
$ 
}}}

Note that calling the 'three' clone the final time is sufficient to make the 'four' and 'five' clones to also resume + exit (without being explicitly invoked), and leads to the ""Cannot resume dead coroutine"" exception.

This is very likely to be strongly related to TT #1702.

One possible workaround is to make sure that a coroutine never exits; e.g., by entering an infinite ""yield"" loop at the end of the Coroutine.  This is what PGE has apparently done for quite some time.

Pm"	pmichaud
4	2.5.0	1713	helper script to find committers.	none	2.5.0	bug		new	2010-07-21T22:19:23Z	2010-12-04T07:18:00Z	"when generating the 2.6.0 release announcement, I did an svn log on trunk to the release corresponding to the 2.5.0 release, pulled out all the unique committer names, looked up their Name in CREDITS, then alphabetized by last name. I also grabbed all ""courtesy of"" and in one case, had to look up on a trac ticket to find out who submitted the patch was used (there was ""patch applied"" note. When applying other people's patches, IWBNI you named them specifically)

I also did a diffstat to find out how many files were touched. (I didn't bother with LOC due to the # of generated files)

IWBNI if this was automated for the next release manager.

Low priority given a pending move from svn to git."	coke
4	2.5.0	1718	`NameSpace.add_sub($name, &sub)` does not honor given name for methods	none	2.5.0	bug		new	2010-07-25T16:42:44Z	2010-07-25T16:42:44Z	"The namespace.add_sub method accepts a name parameter for the sub object.

When passed a sub object that has the :method flag set, the given name parameter is ignored in favor of the name compiled into the sub object.
{{{
(git:master) ~/kakapo$ cat src/Pmc/test.nqp
module A {
	method a() { say(""a""); }
	
}

class B {
	INIT {
		my $A := pir::get_hll_namespace__pp( pir::split('::', 'A') );
		my &a := pir::inspect__pps($A, 'methods')<a>;
		
		my $B := pir::get_hll_namespace__pp( pir::split('::', 'B') );
		$B.add_sub('foo', &a);
	}
}

my $b := B.new;
$b.a;
$b.foo;(git:master) ~/kakapo$ parrot-nqp src/Pmc/test.nqp 
a
Method 'foo' not found for invocant of class 'B'
current instr.: '_block11' pc 95 (EVAL_1:34)
called from Sub 'parrot;HLL;Compiler;_block470' pc 24271 (ext/nqp-rx/src/stage0/HLL-s0.pir:7848)
called from Sub 'parrot;HLL;Compiler;eval' pc 24151 (ext/nqp-rx/src/stage0/HLL-s0.pir:0)
called from Sub 'parrot;PCT;HLLCompiler;evalfiles' pc 1500 (compilers/pct/src/PCT/HLLCompiler.pir:761)
called from Sub 'parrot;PCT;HLLCompiler;command_line' pc 1702 (compilers/pct/src/PCT/HLLCompiler.pir:869)
called from Sub 'parrot;NQP;Compiler;main' pc 88625 (ext/nqp-rx/src/stage0/NQP-s0.pir:24151)
}}}

See in particular the code at [http://trac.parrot.org/parrot/browser/tags/RELEASE_2_6_0/src/pmc/namespace.pmc#L173 namespace.pmc, line 173] which I think is a bug."	Austin
4	2.6.0	1731	Assumption made about buffer header alignment	core	2.6.0	bug	Paul C. Anagnostopoulos	assigned	2010-08-05T19:28:23Z	2010-08-13T14:19:01Z	"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.
"	Paul C. Anagnostopoulos
4	2.6.0	1732	"[PATCH] Parrot Configure can't find pod2man and perldoc under a 	versiononly perl"	configure	2.6.0	bug		new	2010-08-06T18:18:14Z	2010-08-27T05:28:39Z	"{{{
Summary: [PATCH] Parrot Configure can't find pod2man and perldoc under
a versiononly perl
Reported by: avarab@gmail.com
---
Parrot can't find pod2man and perldoc under a versiononly perl. Which
will e.g. be installed by perlbrew.

I have a patch that fixes this in my GitHub fork of Parrot:
http://github.com/avar/parrot/compare/master...configure-versiononly.patch

Note that that may not cover some other bizarre cases. CPANPLUS has
some more tests at the bottom of its Makefile.PL that might be
interesting as reference for further work in this area.


---
osname= linux
osvers= 2.6.32.12-x86_64-linode12
arch=   x86_64-linux
cc=     cc
---
Flags:
    category=core
    severity=low
    ack=no
---
Summary of my parrot 2.6.0 (r48160) configuration:
  configdate='Thu Jul 22 13:57:33 2010 GMT'
  Platform:
    osname=linux, archname=x86_64-linux
    jitcapable=0, jitarchname=nojit,
    jitosname=linux, jitcpuarch=amd64
    execcapable=0
    perl=/home/v-perlbrew/perl5/perlbrew/perls/perl-5.13.2/bin/perl5.13.2
  Compiler:
    cc='cc', ccflags=' -pipe -fstack-protector -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -DHASATTRIBUTE_CONST
-DHASATTRIBUTE_DEPRECATED  -DHASATTRIBUTE_MALLOC
-DHASATTRIBUTE_NONNULL  -DHASATTRIBUTE_NORETURN  -DHASATTRIBUTE_PURE
-DHASATTRIBUTE_UNUSED  -DHASATTRIBUTE_WARN_UNUSED_RESULT
-DHASATTRIBUTE_HOT  -DHASATTRIBUTE_COLD  -DHAS_GETTEXT',
  Linker and Libraries:
    ld='cc', ldflags=' -fstack-protector -L/usr/local/lib',
    cc_ldflags='',
    libs='-lnsl -ldl -lm -lcrypt -lutil -lpthread -lrt -lreadline '
  Dynamic Linking:
    share_ext='.so', ld_share_flags='-shared -O2 -L/usr/local/lib
-fstack-protector -fPIC',
    load_ext='.so', ld_load_flags='-shared -O2 -L/usr/local/lib
-fstack-protector -fPIC'
  Types:
    iv=long, intvalsize=8, intsize=4, opcode_t=long, opcode_t_size=8,
    ptrsize=8,  byteorder=12345678,
    nv=double, numvalsize=8, doublesize=8, longdoublesize=16

---
Environment:
    HOME =/home/avar
    LANG =en_US.utf8
    LANGUAGE =en_US:en
    LD_LIBRARY_PATH  (unset)
    LOGDIR  (unset)
    PATH =/home/v-perlbrew/perl5/perlbrew/bin:/home/v-perlbrew/perl5/perlbrew/perls/current/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:/home/avar/g/misc-scripts:/home/avar/g/rtmpdump:/home/avar/src/dl/rakudo-star-2010.07/install/bin
    PERLDOC =-MPod::Text::Ansi
    SHELL =/bin/bash

}}}
"	Ævar Arnfjörð Bjarmason <avarab@…>
4	2.6.0	1735	Pmc2c line numbering confuses gdb	tools	2.6.0	bug	dukeleto	new	2010-08-10T06:14:56Z	2011-11-20T09:54:58Z	"Using the default configuration, gdb is unable to step through vtables, giving messages such as:

{{{

0x00007ffff7a90ae4 in Parrot_OpLib_init_pmc (
    interp=0x60a080, _self=0x789770, 
    name_pmc=0x7892d0)
   from /home/pitr/dev/parrot/dynop_mapping/blib/lib/libparrot.so.2.6.0
(gdb) n
Single stepping until exit from function Parrot_OpLib_init_pmc, 
which has no line number information.
Parrot_pmc_new_init (interp=0x60a080, base_type=37, 
    init=0x7892d0) at src/pmc.c:551
551	        return pmc;

}}}

This is a significant drag because much Parrot functionality is inside vtables.

Reconfiguring with --no-line-directives, which disables line directive generation from tools such as pmc2c, the vtables become steppable."	plobsing
4	2.6.0	1740	pbc_dump crashes on certain inputs	none	2.6.0	bug	dukeleto	assigned	2010-08-13T17:51:50Z	2010-08-24T14:02:05Z	"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).
"	ild
4	2.6.0	1743	N<note> formatting code is unsupported in HTML output	docs	2.6.0	bug		new	2010-08-14T22:29:11Z	2011-01-30T04:21:26Z	"The N<footnote> formatting code, used in PIR and PCT books and other drafts, is currently rendered as unmarked inline text. The use of this code comes from its support in PseudoPOD. It is also supported in POD 6.

I think this tag should be rendered either as:
 a. a tooltip
 b. at the end of the section which it is defined
 c. at the end of the page

I like the section note option best. I feel like having these at the end of the page makes them difficult to use, since most chapters are many screens long."	dafrito
4	2.6.0	1744	"load_language ""nqp"" fails"	install	2.6.0	bug		new	2010-08-15T13:15:05Z	2010-08-16T23:33:55Z	"{{{
.sub ""main"" :main
    load_language ""nqp""
.end
}}}

this fails with error message

{{{
""load_language"" couldn't find a compiler module for the language 'nqp'
}}}

calling the opcode with the argument ""nqp-rx"" does no better. Since NQP is a language compiler, and since it ships with Parrot, I would expect it to be loadable using this mechanism, somehow.

the load_language opcode calls src/packfile.c:Parrot_load_language(), which expects to find a ""languages/nqp/nqp.pbc"" or ""library/nqp/nqp.pbc"" in the installation directory. The NQP PBC is instead located at ""library/nqp-rx.pbc"".

To make this work and keep compatibility with the current setup, I suggest that nqp-rx.pbc be copied (or symlinked, where supported) to ""languages/nqp/nqp.pbc"". Necessary supporting files can be copied/symlinked in that same directory too."	whiteknight
4	2.7.0	1790	r48965 changes Boolean :multi dispatch from 2.6.0 behavior	core	2.7.0	bug		new	2010-09-13T22:08:11Z	2010-09-14T16:36:00Z	"The change of Boolean in r48965 changes multidispatch w/o a deprecation notice:

{{{
pmichaud@orange:/zip/parrot$ cat bool-1.pir
.sub 'main' :main
    $P0 = new ['Boolean']
    'foo'($P0)
.end


.sub 'foo' :multi(Integer)
    say 'foo(Integer)'
.end

.sub 'foo' :multi(_)
    say 'foo(_)'
.end
   
pmichaud@orange:/zip/parrot$ RELEASE_2_6_0/parrot bool-1.pir
foo(Integer)
pmichaud@orange:/zip/parrot$ trunk/parrot bool-1.pir
foo(_)
pmichaud@orange:/zip/parrot$ trunk/parrot_config revision
48981
pmichaud@orange:/zip/parrot$ 
}}}


This causes at least one Rakudo spectest to fail where it previously succeeded (S03-operators/short-circuit.t test 20).

Pm"	pmichaud
4	2.7.0	1795	pcre_compile picked wrong function signature letter.	library	2.7.0	bug		new	2010-09-19T22:42:31Z	2010-09-21T01:53:12Z	"The pcre_compile library function takes a const char ** parameter which SHOULD have been matched by a capital 'V' in the signature but a somewhat similar capital 'B' was picked instead resulting in the error string not being passed back properly.

The patches have been tested on windows and ubuntu.  Note that the changes to src/nci/extra_thunks.c are generated by tools/dev/mk_nci_thunks.pl but are included here as the .c file is under version control and I don't think it's genned by the Makefile.

See also the irc discussion here: [http://irclog.perlgeek.de/parrot/2010-09-18#i_2840413]
"	ronaldws
3	2.8.0	1802	PMC Creation Functions Can Cause Segfaults	embed/extend	2.8.0	bug		new	2010-09-24T05:42:39Z	2010-12-02T21:49:14Z	"The exported Parrot_pmc_new(), Parrot_pmc_new_noinit(), Parrot_pmc_new_init(), Parrot_pmc_new_init_int(), Parrot_pmc_new_constant_noinit(), Parrot_pmc_new_constant(), Parrot_pmc_new_constant_init(), and Parrot_pmc_new_constant_init() functions all take an INTVAL base_type parameter.  The functions use this parameter as an index into the given interpreter's vtable array to determine which PMC to create.

These functions perform no appropriate checking to determine if the base_type is positive or within the appropriate range of values for the known vtable types.  Any extension could crash Parrot by passing in an invalid value.

We should consider changing the type of the base_type to UINTVAL, but we should also perform bounds checking against interp->n_vtable_alloced in all of these functions (probably with a static function)."	chromatic
4	2.8.0	1816	Graph images on smolder.parrot.org are corrupted	website	2.8.0	bug		new	2010-10-05T18:14:31Z	2010-10-05T18:14:31Z	"[http://smolder.parrot.org/app/graphs/start/5 Example]

I've poked at the images a bit to try and figure out what's wrong - there's a \x0D\x0A sequence missing at the start of the PNG (manually putting these in made the image display correctly) and there's some HTTP header junk at the bottom (probably related):

{{{
IEND
HTTP/1.1 500 Internal Server Error
Connection: close
Date: Tue, 05 Oct 2010 18:02:59 GMT
Content-Length: 1
}}}
"	flussence
4	2.8.0	1833	Incompatible bytecode error lacks file name of offending file	core	2.8.0	bug	whiteknight	new	2010-10-19T10:22:09Z	2011-02-09T09:03:14Z	"{{{
PackFile_unpack: This Parrot cannot read bytecode files with version 9.0.

PackFile header failed during unpack
}}}

This error message should include the name of the file that caused this error; otherwise it is very hard to figure out which file caused the problem.

(Happens on amd64 linux, with gcc 4.4.5)"	moritz
3	3.0.0	2003	Configure.pl from tools/dev/create_language.pl doesn't play nice with git	tools	3.0.0	bug	dukeleto	assigned	2011-02-09T20:36:48Z	2011-02-20T20:10:51Z	"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`."	arnsholt
4	3.0.0	1978	possible problem with g++ --optimize (t/pmc/float.t failure)	build	3.0.0	bug		reopened	2011-01-18T16:04:01Z	2011-04-28T05:19:55Z	"In testing t/pmc/float.t it failed a test when built with g++-4.5 with --optimize.

Failed test:  102 - comparison ops: cmp_p_p: equality (passes g++ without --optimize and gcc - Ubuntu 10.10 i386)

kid51 reported that the test passed for him using g++ v4.3.2

I did some further tests with Ubuntu 10.04 i386 and Ubuntu 10.10 i386 and it failed (g++ --optimize only) with g++ v4.4.3 and v4.5.1

NotFound and cotto both managed to reproduce the error using g++ v4.4.5

NotFound proposed a patch, which fixed the problem and cotto committed
{{{
diff --git a/src/pmc/float.pmc b/src/pmc/float.pmc
index e31cf55..dc8e06e 100644
--- a/src/pmc/float.pmc
+++ b/src/pmc/float.pmc
@@ -285,8 +285,9 @@ Returns the result of comparing the number with C<*value>.
     }
 
     MULTI INTVAL cmp_num(DEFAULT value) {
-        const FLOATVAL diff =
-                SELF.get_number() - VTABLE_get_number(INTERP, value);
+        volatile FLOATVAL n1 = SELF.get_number();
+        volatile FLOATVAL n2 = VTABLE_get_number(INTERP, value);
+        const FLOATVAL diff = n1 - n2;
         return diff > 0 ? 1 : diff < 0 ? -1 : 0;
     }

}}}

this fixed the failure.

The main reason for creating the ticket (apart from cotto asking me to) is that we had a failure with g++ --optimize 32 bit (later versions) that did not occur without --optimize or with gcc.  The test did not fail on 64 bit (perhaps because of different ways of handling floating point).
"	mikehh
4	3.0.0	1989	t/pmc/socket_ipv6.t: new test failures	testing	3.0.0	bug		new	2011-01-26T00:11:46Z	2011-02-20T21:03:41Z	"Observed on linux/i386.  Also reported earlier to day on parrot-dev by Andy Dougherty.
{{{
gethostbyname failure [::1]
gethostbyname failure [::1]
gethostbyname failure [::1]
gethostbyname failure [::1]
getaddrinfo failure: Name or service not known
Null PMC access in clone()
current instr.: 'test_bind' pc 142 (t/pmc/socket_ipv6.t:51)
called from Sub 'main' pc 83 (t/pmc/socket_ipv6.t:36)
t/pmc/socket_ipv6.t .. 
1..18
# This Parrot is IPv6-aware
ok 1 - A TCP ipv6 sockaddr to localhost was set isa Sockaddr
ok 2 - A TCP ipv6 sockaddr to ::1 was set isa Sockaddr
ok 3 - A raw TCP ipv6 sockaddr to localhost was set: isa Sockaddr
ok 4 - A raw TCP ipv6 sockaddr to ::1 was set: isa Sockaddr
ok 5 - A UDP ipv6 sockaddr to localhost was set: isa Sockaddr
ok 6 - A UDP ipv6 sockaddr to ::1 was set: isa Sockaddr
ok 7 - A raw UDP ipv6 sockaddr to localhost was set:  isa Sockaddr
ok 8 - A raw UDP ipv6 sockaddr to ::1 was set:  isa Sockaddr
not ok 9 - bind ok (IPv6 localhost)
# Have: -1
# Want: 0
Dubious, test returned 1 (wstat 256, 0x100)
Failed 10/18 subtests 

Test Summary Report
-------------------
t/pmc/socket_ipv6.t (Wstat: 256 Tests: 9 Failed: 1)
  Failed test:  9
  Non-zero exit status: 1
  Parse errors: Bad plan.  You planned 18 tests but ran 9.
Files=1, Tests=9,  0 wallclock secs ( 0.02 usr  0.00 sys +  0.01 cusr  0.00 csys =  0.03 CPU)
Result: FAIL
}}}"	jkeenan
4	3.0.0	1992	[NCI] callback sub parameter definition isn't unified with  callback definition in the C lib.	core	3.0.0	bug		new	2011-01-30T08:25:49Z	2011-02-02T18:56:39Z	"Hello,
   see https://github.com/parrot/parrot/blob/master/src/nci_test.c#-115 , there are two define here.


{{{
typedef void (*cb_C1_func)(const char*, void*);
PARROT_DYNEXT_EXPORT void nci_cb_C1(cb_C1_func, void*);
}}}


the callback is created by:

{{{
     cb_wrapped = new_callback cb, user_data, ""vtU""
}}}


which means it's first parameter is external_data, and the two is user_data. that is, the callback function should be defined as this one:

{{{
.sub _call_back
  .param string external_data
  .param pmc user_data
  print ""user data: ""
  print u
  print ""\n""
  print ""external data: ""
  print s
  print ""\n""
.end
}}}


but actually in t/pmc/nci.t, it's defined as:

{{{
.sub _call_back
  .param pmc user_data
  .param string external_data
  print ""user data: ""
  print u
  print ""\n""
  print ""external data: ""
  print s
  print ""\n""
.end

}}}


according to t/pmc/nci.t it seems that no matter user_data is the first parameter or two, the callback sub must be defined as:

{{{
.sub _call_back
  .param pmc user_data
  .param string external_data
.end
}}}


then I took a look at PDD16, and it's said user_data should be defined in the second parameter:


{{{
.sub _call_back
  .param string external_data
  .param pmc user_data
.end

}}}

which is right."	jimmy
4	3.1.0	2024	t/library/pcre.t: Not honoring '--without-pcre' configuration flag	testing	3.1.0	bug		new	2011-02-20T13:26:29Z	2011-02-22T21:01:17Z	"Poking around in Smolder reports, I noticed one from Coke where failures in multiple files included ''t/library/pcre.t''.  This was surprising, because in this run Parrot was configured without PCRE.
{{{
Configure args
  ""--cc=ccache cc"" ""--ccflags=-g"" ""--without-gettext"" 
  ""--without-gmp"" ""--without-libffi"" ""--without-extra-nci-thunks"" 
  ""--without-opengl"" ""--without-readline"" ""--without-pcre"" 
  ""--without-zlib"" ""--without-threads"" ""--without-icu"" ""--cc=g++"" 
  ""--link=g++"" ""--ld=g++"" 
  ""--prefix=/Users/coke/sandbox/parrot-smoker/installed_parrot""
}}}
Looking at ''t/library/pcre.t'', I see that it never bothers to check `$PConfig{HAS_PCRE}` and so proceeds to run the tests.  There's a lot of code that appears to predate ''config/auto/pcre.pm'' which attempts to determine whether PCRE is present.
{{{
# if we keep pcre, we need a config test
my $cmd = ( $^O =~ /MSWin32/ )
  ? ""pcregrep --version"" : ""pcre-config --version"";
my $has_pcre = !Parrot::Test::run_command( 
  $cmd, STDOUT => File::Spec->devnull ,
  STDERR => File::Spec->devnull, );
my $pcre_libpath = '';

# It's possible that libpcre is installed in 
# some non-standard path...
if ($has_pcre && ($^O !~ /MSWin32/)) {
    # Extract the library path for non-windows platforms 
    # (in case it isn't in
    # the normal lookup locations)
    my $outfile = 'pcre-config.out';
    Parrot::Test::run_command('pcre-config --prefix', 
       STDOUT => $outfile);
    my $out = Parrot::Test::slurp_file($outfile);
    unlink $outfile;
    chomp $out;
    $pcre_libpath = ""$out/lib"";
}
}}}
The value of `$pcre_libpath` is set in this block and used subsequently in tests.  Not surprisingly, since no value is ever assigned when on Windows, the tests have to be skipped for Windows.

This is clearly not a satisfactory situation.  By the time we get this far into testing, we should unambiguously know whether we have PCRE or not.  If we need to know a library path, we should also determine that during configuration as well.

Questions:

1. Is there anything of value in the way ''t/library/pcre.t'' tests for the presence of PCRE that ought to be incorporated into ''config/auto/pcre.pm''?

2. The tests in this file presume we know the non-empty-string value of `$pcre_libpath`.  Should we be determining that during configuration time as well.

Am cc-ing some people who helped with TT #1401.

Thank you very much.

kid51"	jkeenan
4	3.1.0	2031	Configure.pl bug in Gentoo	configure	3.1.0	bug		new	2011-02-28T02:29:24Z	2011-06-30T15:56:25Z	"{{{
donp@tower ~/src/parrot/parrot-3.1.0 $ perl Configure.pl

auto::byteorder - Compute native byteorder for wordsize.....little-endian.
auto::va_ptr - Test the type of va_ptr...
step auto::va_ptr died during execution: Unknown va_ptr type at config/auto/va_ptr.pm line 41.

 at Configure.pl line 77

auto::format - What formats should be used for sprintf............done.

}}}

Related bug?
http://rt.perl.org/rt3//Public/Bug/Display.html?id=47313"	dukeleto
4	3.1.0	2039	Failures in uploading to Smolder	none	3.1.0	bug		new	2011-03-05T11:03:24Z	2011-03-05T11:03:24Z	"There have been quite a few problems with make smoke/smolder recently.

I have frequently been getting:
{{{
...
Result: PASS

TAP Archive created at /home/mhk/parrot/parrot_test_run.tar.gz
Could not upload report to Smolder at http://smolder.parrot.org
HTTP CODE: 500 (Internal Server Error)
make: *** [smolder_test] Error 255
}}}

Today I successfully re-sent using:
{{{
mhk@mhk-desktop:~/parrot$ date
Sat Mar  5 09:55:39 GMT 2011
mhk@mhk-desktop:~/parrot$ perl -Ilib -MParrot::Harness::Smoke -e'Parrot::Harness::Smoke::send_archive_to_smolder(Parrot::Harness::Smoke::collect_test_environment_data())'
Test report successfully sent to Smolder at
http://smolder.parrot.org/app/projects/report_details/11515
You can see other recent reports at
http://smolder.parrot.org/app/projects/smoke_reports/1 .
}}}

A few days ago I tried multiple times to re-send, but all attempts failed then.

Looking at the reports:

[http://smolder.parrot.org/app/projects/smoke_reports/1]

I noticed that report #11514 was incomplete (the time corresponds to the time the report was uploaded [failed above])

I also noticed a number of other failed uploads.

In its previous incarnation on plusthree.com this situation was fixed AFAIR by increasing the server-side timeout.  I don't know if this has been attempted, but if it has the timeout needs to be increased further, or perhaps there is another problem.

Cheers Michael (mikehh)

"	mikehh
4	3.1.0	2048	cmp_pmc vtable acting wonky	embed/extend	3.1.0	bug	whiteknight	new	2011-03-12T06:00:12Z	2011-11-20T09:43:35Z	"This commit: https://github.com/parrot/parrot/compare/cmp_pmc

gives this error:

{{{

not ok 63 - Parrot_PMC_cmp_pmc

#   Failed test 'Parrot_PMC_cmp_pmc'
#   at t/src/extend_vtable.t line 1098.
#          got: 'Failed!
# Exception is: type 44 severity 2 message 'Multiple Dispatch: No suitable candidate found for 'cmp_pmc', with signature 'PP->P''
# '
#     expected: '1
# -1
# 0
# Done!
# '
# './t/src/extend_vtable_63' failed with exit code 0

}}}

Anybody know what is going on?"	dukeleto
1	3.2.0	2087	Register allocator and lexicals bug	imcc	3.2.0	bug		new	2011-04-06T21:50:48Z	2011-04-28T05:16:34Z	"Code:

{{{
.sub ''
$P42 = new ['Integer']
.lex 'i', $P42
$P69 = new ['Integer']
.lex 'j', $P69
.lex 'foo', $P10
.lex 'bar', $P11
.lex 'baz', $P12
$P3 = new ['String']
.lex 'k', $P3

$P100 = new ['String']
$P100 = ""oh no""
store_lex 'foo', $P100
$P101 = find_lex 'bar'
say $P101
.end
}}}

Should be a null PMC access, but prints ""oh no"". It looks like

{{{
.lex 'foo', $P0
}}}

isn't considered an instruction, but just saying ""this lexical goes in this register"". If that's the only mention of $P0, then there's no ""first instruction"". It builds a du-chain, then based on that throws away $P0 from the ""needs allocation"" list because it confuses it with an unused register (e.g. it thinks it got optimized out, which is not the case at all here).

This patch makes the issue go away:

{{{
diff --git a/compilers/imcc/reg_alloc.c b/compilers/imcc/reg_alloc.c
index de0f3e0..300216d 100644
--- a/compilers/imcc/reg_alloc.c
+++ b/compilers/imcc/reg_alloc.c
@@ -391,6 +391,9 @@ reg_sort_f(ARGIN(const void *a), ARGIN(const void *b))
     const SymReg * const ra = *(const SymReg * const *)a;
     const SymReg * const rb = *(const SymReg * const *)b;
 
+    if (!ra->first_ins || !rb->first_ins)
+        return 0;
+    
     if (ra->first_ins->index < rb->first_ins->index)
         return -1;
 
@@ -473,7 +476,7 @@ build_reglist(PARROT_INTERP, ARGMOD(IMC_Unit *unit))
 
     /* we might have unused symbols here, from optimizations */
     for (i = count = unused = 0; i < n_symbols; i++) {
-        if (!unit->reglist[i]->first_ins)
+        if (!unit->reglist[i]->first_ins && !(unit->reglist[i]->usage & U_LEXICAL))
             unused++;
         else if (i == count)
             count++;
@@ -716,7 +719,7 @@ vanilla_reg_alloc(PARROT_INTERP, ARGMOD(IMC_Unit *unit))
         SymReg *r;
         for (r = hsh->data[i]; r; r = r->next) {
             /* TODO Ignore non-volatiles */
-            if (REG_NEEDS_ALLOC(r) && r->use_count)
+            if (REG_NEEDS_ALLOC(r))
                 r->color = -1;
         }
     }
@@ -732,7 +735,7 @@ vanilla_reg_alloc(PARROT_INTERP, ARGMOD(IMC_Unit *unit))
             for (r = hsh->data[i]; r; r = r->next) {
                 if (r->set != reg_set)
                     continue;
-                if (REG_NEEDS_ALLOC(r) && (r->color == -1) && r->use_count) {
+                if (REG_NEEDS_ALLOC(r) && (r->color == -1)) {
                     if (set_contains(avail, first_reg))
                         first_reg = first_avail(interp, unit, reg_set, NULL);
 
}}}

But it's kinda hacky. OTOH, so is the register allocator as a whole, and this is blocking me on NQP, so provided we can be sure we don't make the quicksort of symbols to allocate unstable I'd be OK with something like this going in. Will leave it until tomorrow to see if anyone has any better ideas.

"	jonathan
4	3.2.0	2085	Eliminate reliance during build on 'tempdir' in config settings	configure	3.2.0	bug		new	2011-04-02T18:08:42Z	2011-04-02T19:29:14Z	"This ticket addresses an issue which came to dominate discussion in TT #1544 and supersedes that ticket.

As noted by Benabik and Coke 12 months ago, the value for `tempdir` in ''config_lib.pir'' and ''lib/Parrot/Config/Generated.pm'' can be dramatically different on different OSes and on different versions on the same OS.  For example, on my older Mac OS X 10.4.11, the results are straightforward and very Unix-ish:
{{{
$ grep -n tempdir config_lib.pir lib/Parrot/Config/Generated.pm 
config_lib.pir:272:    set $P0[""tempdir""], ""/tmp""
lib/Parrot/Config/Generated.pm:371:  'tempdir' => '/tmp',
}}}
But on later versions of Mac OS X, it can appear as something much more, errrm, clever:
{{{
set P0[""tempdir""], ""/var/folders/Bh/BhrBssnnHYqX6SDI8N3S1U+++TM/-Tmp-""
}}}
As Coke put it in TT #1544, it ""like it's intended to be a one-time use tempdir, not something that we can save and reuse elsewhere.""  Benabik speculated that ""I'm guessing ''launchd'' creates a new per-user temp dir at login. The problem here is that we're caching `TMPDIR` and there's no guarantee that it will be stable.'' 

In each case, `tempdir` is simply picked up from Perl 5 early in the configuration process:
{{{
$ grep -n tempdir config/init/defaults.pm
255:        tempdir => File::Spec->tmpdir,
}}}
No magic there, but it suggests that it is the '''environment''' in which Perl 5 is built on different OS versions that controls what Perl 5 gets and what, in turn, Parrot gets.

Two courses of action are conceivable:  One is to find some clever, Parrot-specific way of populating `tempdir`.  The other is simply to extirpate any instance where `tempdir` is used in our build or test systems.

A bit of data on the latter option:  Here are the locations in our source code where I can see something what the problem is:
{{{
$ find . -type f | xargs grep -n 'config.*tempdir'
./runtime/parrot/library/ProfTest/PIRProfile.nqp:66:
    my $tmp_pir   := %config<tempdir> ~ %config<slash> ~ 'test.pir';
./runtime/parrot/library/ProfTest/PIRProfile.nqp:67:
    my $tmp_pprof := %config<tempdir> ~ %config<slash> ~ 'test.pprof';
}}}
Another datum:  We have functions `tempdir()` and `tmpdir()` in '' ./runtime/parrot/library/osutils.pir''.  Would they be of any use?

Thank you very much.

kid51"	jkeenan
4	3.2.0	2090	Parrot underestimates memory on OS X	core	3.2.0	bug		new	2011-04-11T05:55:06Z	2011-05-15T18:09:00Z	"On OS X, Parrot uses the HW_PHYSMEM sysctl to determine the amount of memory on the system.  Unfortunately, the value returned from it is a signed 32b integer, so we will never know if a system has more than 2GiB of RAM.  The sysctl man page suggests using HW_MEMSIZE to get a full 64-bit value.

This doesn't break anything, but as-is, Rakudo spends about 60% of the time building Rakudo's core.pir in gc_gmc_mark_and_sweep, which is triggered when 10% of total memory is allocated.  On my system, it would trigger literally half as often if parrot knew much RAM my laptop really had.

Of course, this is complicated by the fact that we previously changed from MEMSIZE to PHYSMEM already in SVN r49633 (git 5977674) due to build errors.  Does anyone know what version of Darwin MEMSIZE was introduced in?  Perhaps we should check if the HW_MEMSIZE macro exists and only use PHYSMEM if it doesn't?"	benabik
4	3.2.0	2094	ResizablePMCArray doesn't respond to the defined_keyed() VTABLE via the extend_vtable API	core	3.2.0	bug		new	2011-04-14T18:17:30Z	2011-04-14T18:22:22Z	"{{{
t/src/extend_vtable.t .. 
1..90
ok 1 - Parrot_PMC_exists_keyed_int
ok 2 - Parrot_PMC_exists_keyed
not ok 3 - Parrot_PMC_defined_keyed

#   Failed test 'Parrot_PMC_defined_keyed'
#   at t/src/extend_vtable.t line 170.
#          got: 'Failed!
# Exception is: type 36 severity 2 message 'defined_keyed() not implemented in class 'ResizablePMCArray''
# '
#     expected: '0
# Done!
# '
# './t/src/extend_vtable_3' failed with exit code 0
}}}
"	dukeleto
4	3.2.0	2102	test failure in latest macport.	testing	3.2.0	bug		new	2011-04-25T12:50:55Z	2011-05-23T00:10:08Z	https://trac.macports.org/ticket/29238	coke
4	3.2.0	2103	cmp_pmc not working in extend_vtable	core	3.2.0	bug		new	2011-04-28T04:43:58Z	2011-06-25T00:41:14Z	"The error
{{{
#   Failed test 'Parrot_PMC_cmp_pmc'
#   at t/src/extend_vtable.t line 155.
#          got: 'Failed!
# Exception is: type 44 severity 2 message 'Multiple Dispatch: No suitable candidate found for 'cmp_pmc', with signature 'PP->P''
# '
#     expected: '1
# -1
# 0
# Done!
# '
}}}
is produced, even though the signature of cmp_pmc is PP->P as far as I can tell:
{{{
src/pmc/default.pmc:1850:    VTABLE PMC *cmp_pmc(PMC *value) {
src/pmc/default.pmc-1851-        PMC *retval;
src/pmc/default.pmc-1852-
src/pmc/default.pmc-1853-        /* Don't multidispatch if you've got two pointers to the same PMC. They
src/pmc/default.pmc-1854-         * are equal. */
src/pmc/default.pmc-1855-        if (SELF == value)
src/pmc/default.pmc-1856-            return NULL;
src/pmc/default.pmc-1857-
src/pmc/default.pmc-1858-        Parrot_mmd_multi_dispatch_from_c_args(INTERP,
src/pmc/default.pmc:1859:                ""cmp_pmc"", ""PP->P"", SELF, value, &retval);
src/pmc/default.pmc-1860-
src/pmc/default.pmc-1861-        return retval;
}}}
"	dukeleto
4	3.3.0	2108	document how to open tickets via email.	docs	3.3.0	bug		reopened	2011-05-11T20:55:19Z	2011-07-02T20:23:46Z	Which is to send an email to tickets at parrot dot org.	coke
4	3.3.0	2109	Can't find asm/errno.h	build	3.3.0	bug		new	2011-05-12T01:30:32Z	2011-05-12T02:47:51Z	"I just upgraded my laptop to Ubuntu 11.04, and immediately there is a problem building Parrot.

{{{
In file included from src/datatypes.c:23:
In file included from ./include/parrot/parrot.h:35:
In file included from /usr/include/errno.h:36:
In file included from /usr/include/bits/errno.h:25:
/usr/include/linux/errno.h:4:10: fatal error: 'asm/errno.h' file not found
}}}

errno.h used to be in /usr/include/asm/errno.h, but as of Ubuntu 11.04 it appears in these locations:

{{{
> locate errno.h
/opt/intel/Compiler/11.1/064/Documentation/en_US/compiler_c/main_cls/copts/common_options/option_fmath_errno.htm
/opt/intel/Compiler/11.1/064/Documentation/ja_JP/compiler_c/main_cls/copts/common_options/option_fmath_errno.htm
/usr/include/errno.h
/usr/include/asm-generic/errno.h
/usr/include/bits/errno.h
/usr/include/linux/errno.h
/usr/include/sys/errno.h
/usr/lib/syslinux/com32/include/errno.h
}}}

So it looks like it's in /usr/include/errno.h (""#include <errno.h>"") or in /usr/include/asm-generic/errno.h (""#include <asm-generic/errno.h>""). What's weird is that the two files are not the same, and don't define the same constants. It looks like Parrot will build with /usr/include/asm-generic/errno.h, but fails with a symbol undefined error with /usr/include/errno.h. I don't know if this is a ""bug"" as far as Ubuntu is concerned or not. It certainly seems undesired to me.

I can, as a temporary fix, use a symlink to put the files in the correct places. However, For completeness, I wonder if we should do any of the following:

 - Try to avoid using asm/errno.h in our code, if possible
 - Add a configure probe to search for the correct errno.h
 - Yell at Ubuntu until they fix this.

Any of these are fine, I just want to get some opinions about it. If more people upgrade ubuntu and run into these problems, we will be getting more reports about it."	whiteknight
4	3.3.0	2110	mingw build fails while building opsc	build	3.3.0	bug		new	2011-05-12T21:10:07Z	2011-05-13T01:00:03Z	"I don't have the tuits to investigate this right now, but I want to make sure it doesn't escape notice.  I didn't use any special arguments to Configure.pl.  The build completes successfully if I use ms2 by passing --gc=ms2 to Configure.pl.

{{{
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e mkpath runtime/parrot/languages/data_json
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e cp compilers/data_json/data_json.pbc runtime/parrot/languages/data_json/data_json.pbc
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e mkpath runtime/parrot/languages/JSON
.\parrot-nqp.exe --target=pir compilers/data_json/JSON.nqp > runtime/parrot/languages/JSON/JSON.pir
.\parrot-nqp.exe --target=pir --output=compilers/opsc/gen/Ops/Compiler.pir  compilers/opsc/src/Ops/Compiler.pm
.\parrot-nqp.exe --target=pir --output=compilers/opsc/gen/Ops/Compiler/Actions.pir compilers/opsc/src/Ops/Compiler/Actions.pm
gmake: *** [compilers/opsc/gen/Ops/Compiler/Actions.pir] Error -1073741819

C:\src\parrot-mingw>
}}}"	cotto
2	3.4.0	2107	"""Failed to load libpcre"" during build"	configure	3.4.0	bug		new	2011-05-11T20:42:39Z	2011-08-12T01:46:04Z		colomon
4	3.4.0	2126	Parrot_PMC_morph acting odd	embed/extend	3.4.0	bug	whiteknight	new	2011-05-28T18:24:18Z	2011-05-28T18:24:18Z	"The commit here:

https://github.com/parrot/parrot/commit/e8495b86f1c5aec8b050104fdd43f12f96174349

morphs a PMC and then checks the name of it, and it returns ""default"". Is that expected?"	dukeleto
4	3.4.0	2129	pbc_to_exe:  missing runtime dependency	build	3.4.0	bug		new	2011-06-07T17:15:32Z	2011-06-16T17:41:08Z	"when running make, pbc_to_exe occasionally fails with the following error:

{{{
PackFile_unpack: Buffer length 0 is shorter than PACKFILE_HEADER_BYTES 18.
current instr.: 'handle_args' pc 223 (tools/dev/pbc_to_exe.pir:233)
make: *** [pbc_to_exe] Error 1
make: *** Waiting for unfinished jobs....
}}}

i've not been able to reproduce this consistently, but i think it occurs when pmc_to_exe is invoked as part of the build process, and tries to load Getopt/Obj.pbc before it's been fully compiled.  the file exists so open() doesn't fail, but is still zero-length.
"	ligne
4	3.4.0	2130	Cannot run examples/library/ncurses_life.pir	library	3.4.0	bug	bubaflub	new	2011-06-08T12:18:44Z	2011-06-23T21:57:04Z	"{{{
<masak> getting this error when trying to run ncurses_life.pir on a freshly
        checked-out and built Parrot: https://gist.github.com/1014297
<masak> :(
<moritz> ticket it!
* masak tickets it
}}}

For completeness, here are the contents of the gist:

{{{
$ ./parrot examples/library/ncurses_life.pir examples/library/acorn.life
Unknown param Signature 3

current instr.: '__ncurses_init' pc 41 (runtime/parrot/library/ncurses.pir:1)
called from Sub '_MAIN' pc 0 (examples/library/ncurses_life.pir:57)
... call repeated 1 times
}}}"	masak
4	3.5.0	2153	Memory leak in compile_file functions	imcc	3.5.0	bug		new	2011-07-14T02:52:06Z	2011-07-30T15:18:44Z	"{{{
$ valgrind --leak-check=full ./parrot t/compilers/tge/basic.t 
==29055== Memcheck, a memory error detector
==29055== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==29055== Using Valgrind-3.6.1 and LibVEX; rerun with -h for copyright info
==29055== Command: ./parrot t/compilers/tge/basic.t
==29055== 
1..11
ok 1 - build up a basic rule in a grammar
ok 2 - build up a basic rule in a grammar
ok 3 - build up a basic rule in a grammar
ok 4 - agid hash
ok 5 - agid hash
ok 6 - agid hash
ok 7 - agid hash
ok 8 - agid hash
ok 9 - agid hash
ok 10 - agid hash
ok 11 - ""Malformed string"" in r11890 under Linux i386
==29055== 
==29055== HEAP SUMMARY:
==29055==     in use at exit: 2,439,605 bytes in 6,345 blocks
==29055==   total heap usage: 12,953 allocs, 6,608 frees, 2,790,512 bytes allocated
==29055== 
==29055== 2,044 (12 direct, 2,032 indirect) bytes in 1 blocks are definitely lost in loss record 918 of 1,129
==29055==    at 0x4023796: calloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==29055==    by 0x410CA3B: gc_gms_allocate_memory_chunk_zeroed (gc_gms.c:1854)
==29055==    by 0x4102D57: Parrot_gc_allocate_memory_chunk_with_interior_pointers (api.c:667)
==29055==    by 0x4268E26: e_pbc_open (pbc.c:455)
==29055==    by 0x425F587: emit_open (instructions.c:671)
==29055==    by 0x425953D: imcc_compile_buffer_safe (imcc.l:1370)
==29055==    by 0x425AF27: imcc_run_compilation_internal (main.c:574)
==29055==    by 0x425AD63: imcc_run_compilation_reentrant (main.c:527)
==29055==    by 0x425ACC6: imcc_compile_file (main.c:504)
==29055==    by 0x41F5E7B: Parrot_IMCCompiler_nci_compile_file (imccompiler.c:372)
==29055==    by 0x41FD24E: Parrot_NativePCCMethod_invoke (nativepccmethod.c:124)
==29055==    by 0x4117888: Parrot_pcc_invoke_from_sig_object (pcc.c:329)
==29055== 
==29055== 4,589 (12 direct, 4,577 indirect) bytes in 1 blocks are definitely lost in loss record 1,069 of 1,129
==29055==    at 0x4023796: calloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==29055==    by 0x410CA3B: gc_gms_allocate_memory_chunk_zeroed (gc_gms.c:1854)
==29055==    by 0x4102D57: Parrot_gc_allocate_memory_chunk_with_interior_pointers (api.c:667)
==29055==    by 0x4268E26: e_pbc_open (pbc.c:455)
==29055==    by 0x425F587: emit_open (instructions.c:671)
==29055==    by 0x425953D: imcc_compile_buffer_safe (imcc.l:1370)
==29055==    by 0x425AF27: imcc_run_compilation_internal (main.c:574)
==29055==    by 0x425AD63: imcc_run_compilation_reentrant (main.c:527)
==29055==    by 0x425ACC6: imcc_compile_file (main.c:504)
==29055==    by 0x411D6A5: Parrot_compile_file (inter_misc.c:243)
==29055==    by 0x4156E87: compile_file (api.c:1983)
==29055==    by 0x4157858: Parrot_load_bytecode (api.c:2218)
==29055== 
==29055== LEAK SUMMARY:
==29055==    definitely lost: 24 bytes in 2 blocks
==29055==    indirectly lost: 6,609 bytes in 140 blocks
==29055==      possibly lost: 0 bytes in 0 blocks
==29055==    still reachable: 2,432,972 bytes in 6,203 blocks
==29055==         suppressed: 0 bytes in 0 blocks
==29055== Reachable blocks (those to which a pointer was found) are not shown.
==29055== To see them, rerun with: --leak-check=full --show-reachable=yes
==29055== 
==29055== For counts of detected and suppressed errors, rerun with: -v
==29055== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 37 from 8)
}}}

The mem leak happens in

{{{
e_pbc_open(pbc.c:455): imcc->globals = mem_gc_allocate_zeroed_typed(imcc->interp, imcc_globals);
}}}"	Felipe
4	3.5.0	2157	FileHandles aren't flushed and closed on program exit	core	3.5.0	bug		new	2011-07-18T15:51:34Z	2011-07-18T15:51:34Z	"From discussion in parrot-dev, FileHandles are not automatically flushed and closed upon program exit.

{{{
    pmichaud at kiwi:~/nom$ cat fh.pir
    .sub 'main' :main
        $P0 = new ['FileHandle']
        $P1 = $P0.'open'('test.txt', 'w')
        $P1.'print'(""Hello\n"")
    .end
    
    pmichaud at kiwi:~/nom$ install/bin/parrot fh.pir
    pmichaud at kiwi:~/nom$ cat test.txt
    pmichaud at kiwi:~/nom$ ls -l test.txt
    -rw-r--r-- 1 pmichaud pmichaud 0 2011-07-17 09:57 test.txt
}}}

See the thread at http://lists.parrot.org/pipermail/parrot-dev/2011-July/006013.html .

Pm"	pmichaud
5	3.5.0	2147	"ops2c and a variable with ""return"" in its name"	tools	3.5.0	bug	dukeleto	new	2011-07-09T12:40:11Z	2011-10-19T17:32:09Z	"{{{
15:00 <@jnthn__> So it turns out that if you have a variable called returns or
                 return_type in an ops file, ops2c goes and wraps it up in an
                 extra level of parens, causing an innevitable C syntax error.
                 WTF.
15:01 <@jnthn__> foo->return_type ends up coming out as foo->(return_type)
15:01 <@jnthn__> Rename that to rtype and it works
15:01 <@jnthn__> :/
}}}"	jonathan
3	3.6.0	2173	parrot_debugger --help coredumps	tools	3.6.0	bug		new	2011-08-06T16:44:44Z	2011-08-18T12:25:02Z	"This is pretty sad:
{{{
$ ./parrot_debugger --help
Segmentation fault (core dumped)
}}}"	dukeleto
4	3.6.0	2164	Error detecting attributes (g++-3.3)	configure	3.6.0	bug		new	2011-07-26T17:56:52Z	2011-07-27T12:14:28Z	"{{{
I'm forwarding this to Trac so it doesn't get lost.  The original problem 
manifested itself on the openbsd smoker in the gcc compile farm, but is 
likely more general than that.

-- 
    Andy Dougherty		doughera@lafayette.edu

---------- Forwarded message ----------
Date: Mon, 25 Jul 2011 19:53:31 -0400 (EDT)
From: Andy Dougherty <doughera@lafayette.edu>
To: Jonathan ""Duke"" Leto <jonathan@leto.net>
Cc: parrot-dev <parrot-dev@lists.parrot.org>
Subject: Re: compile error on openbsd with g++

On Sat, 23 Jul 2011, Andy Dougherty wrote:

> On Fri, 22 Jul 2011, Jonathan ""Duke"" Leto wrote:
> 
> > gcc (GCC) 3.3.5 (propolice)

> > On Fri, Jul 22, 2011 at 10:49 AM, Jonathan ""Duke"" Leto
> > <jonathan@leto.net> wrote:
> > > Howdy,
> > >
> > > Just got the openbsd smoker in the farm working again, and it hit a
> > > compile error:
> > >
> > > https://gist.github.com/1099956
> 
> Without seeing both the output of Configure.pl --verbose and the 
> preprocessed output of src/string/api.c, it's hard to be sure, but this 
> looks like the sort of thing you get when parrot's detection of attributes 
> is wrong.
> 
> In particular, the gcc-3.3/HASATTRIBUTE_UNUSED combination is tricky:  It 
> works in gcc-3.3, but fails in g++-3.3.

I haven't tested this at all, but I suspect that the issue is that the 
Configure.pl probe doesn't use the attribute in the same way as parrot 
does.  (The inline probe has the same problem.  See TT #1943).

It's likely that a rather trivial patch like the one below will fix this 
immediate problem, but since my last 2 attempts to do something useful for 
attribute detection were rejected, I'm unwilling to work any harder at it.

diff --git a/config/auto/attributes/test_c.in b/config/auto/attributes/test_c.in
index eb5262c..896da8b 100644
--- a/config/auto/attributes/test_c.in
+++ b/config/auto/attributes/test_c.in
@@ -42,7 +42,7 @@ coldfunc(int x);
 
 
 static int
-useless(void) { int x __attribute__unused__; return 0; }
+useless(int x __attribute__unused__) { int y __attribute__unused__; return 0; }
 
 
 /* as long as the file compiles, everything is okay */



-- 
    Andy Dougherty		doughera@lafayette.edu

}}}
"	Andy Dougherty <doughera@…>
4	3.6.0	2166	pbc_disassemble with no arguments is not useful	tools	3.6.0	bug		new	2011-07-29T17:13:16Z	2011-08-17T02:10:04Z	"This is LTA:

{{{
$ pbc_disassemble 
Error during disassembly
Can't stat -, code 2.

}}}"	dukeleto
4	3.6.0	2172	Archive.Zip : missing convenient method to unpack archive	library	3.6.0	bug		new	2011-08-04T20:20:22Z	2011-08-09T08:53:26Z	"The Archive.Zip pmc provides method to create an archive but does not offer function to unpack an existing zip file.

available functions should look like :

{{{
String[] listFiles(String archivePath)
}}}
provide a quick view of what contains the archive.

{{{
extract(String archivePath, String outputDirectory, Optional String[] filesToExtract, Hash hints)
}}}
hints are generaly here to offer the possibility to extra only a few files."	Eclesia
4	3.6.0	2178	Parrot lacks a boolean type	core	3.6.0	bug		new	2011-08-16T12:36:55Z	2011-08-24T06:52:53Z	"And instead, boolean contexts fall back to expecting ints. This is not semantically correct, and leads to issues, especially when trying to expose a HLL's object system to the rest of parrot.


In my specific case, I implemented get_bool on Python objects, but Rosella's is_true and winxed's if coerce to int. Rosella and Winxed are doing the least wrong thing possible with that they've got.

Implementing get_integer to return 0 for false, 1 for true and the value for Python ints is simply incorrect. At least in python 0 is falsy, which makes it possible to have this workaround, in other languages it would be required to simply not implement get_bool or get_integer, to not break things.


The workaround in Winxed is the ternary operator (bla ? 1 : 0), which ends up calling bla.get_bool."	lucian
4	3.7.0	2180	examples/nci/ls.pir broken	none	3.7.0	bug		new	2011-08-17T03:18:58Z	2011-08-17T07:09:57Z	"Running the example as it is currently gives:

{{{
Unknown param Signature t

current instr.: '_main' pc 3 (examples/nci/ls.pir:24)
}}}

With the applied patch (that fixes the problem with the t parameter) gives:

{{{
..
book

q.pod
on.pod
o#WInvalid character for UTF-8 encoding

current instr.: '_main' pc 117 (examples/nci/ls.pir:62)
}}}

Which I believe is a problem with the OrderedHash and how we are accessing the name of the directory being viewed.

A second problem is that it assumes we are running it from the root parrot directory and attempts to open the docs/ directory - if it is run from another directory it will segfault when trying to open a that non-existent directory."	bubaflub
4	3.7.0	2181	Bug in HashIteratorKey .value method when used with LexPad PMC	core	3.7.0	bug		new	2011-08-18T08:50:06Z	2011-08-18T08:50:06Z	"When iterating a LexPad PMC, the .value method of the pairs (HashIteratorKey) returned from the iterator returns register offsets instead of the actual value.  Code follows:

{{{
$ cat a.pir
.sub 'main' :main
    .lex '$a', $P99
    $P99 = box 54321

    .local pmc lexpad, lexiter
    $P0 = getinterp
    lexpad = $P0['lexpad']

    lexiter = iter lexpad
  loop:
    unless lexiter goto done
    .local pmc item, key, value
    item = shift lexiter
    key = item.'key'()
    value = item.'value'()
    print ""item.key         = ""
    say key
    print ""item.value       = ""
    say value
    print ""lexpad[item.key] = ""
    $P0 = lexpad[key]
    say $P0
    goto loop
  done:
.end

$ ./parrot a.pir
item.key         = $a
item.value       = 23
lexpad[item.key] = 54321
$ 
}}}

item.value above should be 54321 (the value of $a).

Pm"	pmichaud
4	3.7.0	2187	"""Constant Table"" is misleading"	core	3.7.0	bug		new	2011-08-30T20:36:55Z	2011-08-30T23:41:03Z	"There are multiple senses of constant when it comes to Parrot:
 * an item declared as const in the source
 * an item that is readonly
 * an object whose lifetime is eternal
 * an item whose reference does not change (but whose dereferenced value may change)
 * ...

These differing senses confound us when discussing or reasoning about something refered to as ""constant"". Therefore, we should drop the use of the term constant where possible, and ""constant table"" is one place I think we could.

Various alternatives have been proposed:
 * object table
 * pmc table (string table for strings, num table for nums)
 * object pool
 * packfile store
 * packfile $x (always be explicit about the packfile)

More suggestions are welcome."	plobsing
4	3.7.0	2193	tailcall to Class.new fails with overriden init	core	3.7.0	bug		new	2011-09-19T21:57:04Z	2011-09-19T22:00:53Z	"Looking at winxed issue 7 in github:

https://github.com/NotFound/winxed/issues/7

I've found that the problem lies in parrot, as this pure pir code shows:
{{{
.namespace ['Foo']

.sub 'init' :method :vtable
    say 'Foo.init'
.end

.sub 'init_pmc' :method :vtable
    .param pmc value
    say 'Foo.init'
.end

.sub hello :method
    say 'Foo.hello'
.end

.sub attrs1
    .param pmc clazz
    say 'attrs1'
    .local pmc at
    at = clazz.'attributes'()
    .return(at)
.end

.sub attrs2
    .param pmc clazz
    say 'attrs2'
    .tailcall clazz.'attributes'()
.end

.sub newinstance1
    .param pmc clazz
    say 'newinstance1'
    .local pmc instance
    instance = clazz.'new'()
    .return(instance)
.end

.sub newinstance2
    .param pmc clazz
    say 'newinstance2'
    .tailcall clazz.'new'()
.end

.sub main :main
    .local pmc clazz, at1, at2, instance1, instance2
    newclass clazz, ['Foo']
    addattribute clazz, 'bar'

    null at1
    at1 = attrs1(clazz)
    at1 = at1['bar']
    at1 = at1['name']
    say at1
    null instance1
    instance1 = newinstance1(clazz)
    instance1.'hello'()

    null at2
    at2 = attrs2(clazz)
    at2 = at2['bar']
    at2 = at2['name']
    say at2
    null instance2
    instance2 = newinstance2(clazz)
    instance2.'hello'()

.end
}}}
Tailcall to other method in Class (attributes in this example) works, but tailcall to new fails, it gets null instead of the newly created instance.

If the class does not override the 'init' vtable, it works.

The same happens with init_pmc tailcalling new with non empty argument list.
"	NotFound
4	3.8.0	2194	Alignment errors on Solaris/SPARC since 3.7.0	core	3.8.0	bug		new	2011-09-21T13:19:19Z	2011-09-22T21:27:43Z	"{{{
On Solaris/SPARC I now see bus errors where I didn't before in 3.7.0.

Curiously, the exact failures seem to depend on the compiler used
(Sun's cc vs. gcc).  Accordingly, git bisect finds different ""bad""
commits.

#############

Here are the results from Sun's compiler:

git bisect start
# good: [9114095c0442b9b07954d0a6d621954b507946eb] prep for release 3.7.0
git bisect good 9114095c0442b9b07954d0a6d621954b507946eb
# bad: [dd3f6b86f1ba5a21684444b520859b5dc77c74fd] Fix g++ build errors
git bisect bad dd3f6b86f1ba5a21684444b520859b5dc77c74fd
# good: [f9b416751ba15043364a39fd56a36e44d16d03f4] Merge branch 'all-hll-test'
git bisect good f9b416751ba15043364a39fd56a36e44d16d03f4
# good: [3803c5c107c7da58198d74e8359507c3c0f1fd26] inform about missing program name from prt0
git bisect good 3803c5c107c7da58198d74e8359507c3c0f1fd26
# good: [554effb10a60b032ece2557621ae639527446073] Merge branch 'whiteknight/frontend_parrot2'
git bisect good 554effb10a60b032ece2557621ae639527446073
# good: [d74dbbe0c7c5bfba3bbda3efc159d7cdb249bbb8] manually import into api.yaml several previously missed deprecations
git bisect good d74dbbe0c7c5bfba3bbda3efc159d7cdb249bbb8
# skip: [e54106bb8406f198f974ec3dbe5cc748ec458dc5] first stab at a gc is_pmc_ptr optimization from jnthn__++. Parrot mostly builds and is only a little segfaulty. I need to double-check some logic
git bisect skip e54106bb8406f198f974ec3dbe5cc748ec458dc5
# skip: [594464e6f18e9e50e703550f12e0a89d82ae3725] a few small changes. Parrot seems to be less segfaulty now
git bisect skip 594464e6f18e9e50e703550f12e0a89d82ae3725
# good: [8b78a4f3ad8b65bf4a6088e1cffccce51db1114d] fix api.yaml
git bisect good 8b78a4f3ad8b65bf4a6088e1cffccce51db1114d
# bad: [1b0e041e79c81ef6626f77bd1a791c8af48506f3] misc cleanups
git bisect bad 1b0e041e79c81ef6626f77bd1a791c8af48506f3
# good: [633ac86535f1418ae55e7a126a1ce27ae5c42746] Update NEWS for whiteknight/frontend_parrot2 merge. Probably needs better wording
git bisect good 633ac86535f1418ae55e7a126a1ce27ae5c42746
There are only 'skip'ped commits left to test.
The first bad commit could be any of:
594464e6f18e9e50e703550f12e0a89d82ae3725
e54106bb8406f198f974ec3dbe5cc748ec458dc5
1b0e041e79c81ef6626f77bd1a791c8af48506f3

Unfortunately, the ""skip'ed"" commits are ones that wouldn't compile
due to various errors, so I haven't narrowed it down further.

The first ""bad"" commit that builds is 1b0e041e79c81ef6626f77bd1a791c8af48506f3
which crashes on pbc_to_exe.  Here's the debugger output:

Reading symbolic information for pbc_to_exe
core file header read successfully
Reading symbolic information for rtld /usr/lib/ld.so.1
Reading symbolic information for libparrot.so
Reading symbolic information for libsocket.so.1
Reading symbolic information for libnsl.so.1
Reading symbolic information for libdl.so.1
Reading symbolic information for libm.so.1
Reading symbolic information for libpthread.so.1
Reading symbolic information for librt.so.1
Reading symbolic information for libintl.so.1
Reading symbolic information for libw.so.1
Reading symbolic information for libc.so.1
Reading symbolic information for libmp.so.2
Reading symbolic information for libaio.so.1
Reading symbolic information for libc_psr.so.1
Reading symbolic information for libthread.so.1
Reading symbolic information for os.so
detected a multithreaded program
t@1 (l@1) terminated by signal BUS (invalid address alignment)
Current function is Parrot_pa_is_owned
  147           if (PTR2UINTVAL(ref) > PTR2UINTVAL(chunk) + CHUNK_SIZE)
(dbx) print chunk
chunk = (nil)
(dbx) where
current thread: t@1
=>[1] Parrot_pa_is_owned(interp = 0x2c790, self = 0x2ca30, orig = 0xce140, ref = 0xce13d), line 147 in ""pointer_array.c""
  [2] gc_gms_is_pmc_ptr(interp = 0x2c790, ptr = (nil)), line 1487 in ""gc_gms.c""
  [3] trace_mem_block(interp = 0x2c790, mem_pools = (nil), lo_var_ptr = 4290706076U, hi_var_ptr = 4290703980U), line 487 in ""system.c""
  [4] trace_system_stack(interp = 0x10d968, mem_pools = 0x1), line 243 in ""system.c""
  [5] trace_system_areas(interp = 0x2, mem_pools = 0x1), line 212 in ""system.c""
  [6] Parrot_gc_trace_root(interp = 0x2c790, mem_pools = 0x2c940, trace = 182808), line 183 in ""mark_sweep.c""
  [7] gc_gms_mark_and_sweep(interp = (nil), flags = 4290704572U), line 805 in ""gc_gms.c""
  [8] gc_gms_allocate_string_header(interp = (nil), flags_unused = 0), line 1523 in ""gc_gms.c""
  [9] Parrot_gc_new_string_header(interp = 0x2c790, flags = 6745628U), line 365 in ""api.c""
  [10] Parrot_str_new_init(interp = 0x103f80, buffer = 0x2000 """", len = 5U, encoding = 0x10ad28, flags = 4281100032U), line 653 in ""api.c""
  [11] Parrot_str_from_uint(interp = 0x2c790, tc = 0xffbef5fc """", num = 0, base = 10U, minus = 0), line 3220 in ""api.c""
  [12] Parrot_str_from_int_base(interp = 0x2c790, tc = 0xffbef5fc """", num = 52LL, base = 10U), line 3250 in ""api.c""
  [13] Parrot_str_from_int(interp = 0x2c790, i = 1277804), line 2123 in ""api.c""
  [14] Parrot_set_s_i(cur_opcode = 0x2c790, interp = 0xe80a8), line 19754 in ""core_ops.c""
  [15] runops_fast_core(interp = 0x2c790, runcore_unused = 0xda2c8, pc = 0xe38d0), line 504 in ""cores.c""
  [16] runops_int(interp = 0x2c790, offset = 0), line 218 in ""main.c""
  [17] runops(interp = 0x2c790, offs = 0), line 126 in ""ops.c""
  [18] Parrot_pcc_invoke_from_sig_object(interp = 0xff2453f0, sub_obj = 0xffbef914, call_object = 0xffbef910), line 337 in ""pcc.c""
  [19] Parrot_pcc_invoke_sub_from_c_args(interp = 0x2c790, sub_obj = 0xe7144, sig = 0xff2453f0 ""P->"", ...), line 139 in ""pcc.c""
  [20] Parrot_pf_execute_bytecode_program(interp = 0x112cc, pbc = 0xffbefa38, sysargs = 0x11290, progargs = (nil)), line 2864 in ""api.c""
  [21] Parrot_api_run_bytecode(interp_pmc = 0xd6908, pbc = 0xe806c, sysargs = 0xdbfa4, progargs = (nil)), line 163 in ""bytecode.c""
  [22] main(argc = 0, argv = (nil)), line 689 in ""pbc_to_exe.c""


In other runs, I encountered a crash at the same spot with chunk==0x1.

#############

Here are the results from gcc-4.1.0:

git bisect start
# bad: [ba4bd62fd6ff8275f02dabadde3767d2eb4d9ee4] Don't try to return a function that returns void
git bisect bad ba4bd62fd6ff8275f02dabadde3767d2eb4d9ee4
# good: [dd3f6b86f1ba5a21684444b520859b5dc77c74fd] Fix g++ build errors
git bisect good dd3f6b86f1ba5a21684444b520859b5dc77c74fd
# bad: [91bf0271eca95e9795b4c4ecc4960cde2e84822c] [codingstd] c_arg_assert
git bisect bad 91bf0271eca95e9795b4c4ecc4960cde2e84822c
# bad: [00fe23d2b65bcab16c70602e6aedf8e7f9846bee] Don't increment line numbers on .annotate directives. This fixes some line number disparities and places where the line number is reported as 0. mls++
git bisect bad 00fe23d2b65bcab16c70602e6aedf8e7f9846bee
# bad: [f7a12d13d6ce9f185ef1c9789cee8e9febd4a1d8] Remove the horribly out-dated and unused Parrot::Test::PIR_PGE
git bisect bad f7a12d13d6ce9f185ef1c9789cee8e9febd4a1d8
# good: [6f57d171a1d76fb1c9c3337c76b8fff9f6da13f8] Merge remote-tracking branch 'gerdr/whiteknight/pmc_is_ptr'
git bisect good 6f57d171a1d76fb1c9c3337c76b8fff9f6da13f8
# bad: [a7ec805b1b38929ca6eaa3a694995fa53bb69fb5] forgot add top_arena
git bisect bad a7ec805b1b38929ca6eaa3a694995fa53bb69fb5
# skip: [88f0795224551220a0766f3924c36907a6089999] revert some cleanups which is wrong
git bisect skip 88f0795224551220a0766f3924c36907a6089999
# bad: [5f6ccb2a8a29e78c38e5e2441905e0640066a15c] various cleanup to fixed_allocator
git bisect bad 5f6ccb2a8a29e78c38e5e2441905e0640066a15c
# bad: [5f6ccb2a8a29e78c38e5e2441905e0640066a15c] various cleanup to fixed_allocator
git bisect bad 5f6ccb2a8a29e78c38e5e2441905e0640066a15c


This bisect points to 5f6ccb2a8a29e78c38e5e2441905e0640066a15c

That version crashes wwhen trying to run miniparrot.  For some reason,
gcc doesn't leave as much helpful information lying around, so the
stack trace is less helpful.

Reading symbolic information for miniparrot
core file header read successfully
Reading symbolic information for rtld /usr/lib/ld.so.1
Reading symbolic information for libparrot.so
Reading symbolic information for libsocket.so.1
Reading symbolic information for libnsl.so.1
Reading symbolic information for libdl.so.1
Reading symbolic information for libm.so.1
Reading symbolic information for libpthread.so.1
Reading symbolic information for librt.so.1
Reading symbolic information for libintl.so.1
Reading symbolic information for libc.so.1
Reading symbolic information for libmp.so.2
Reading symbolic information for libaio.so.1
Reading symbolic information for libc_psr.so.1
Reading symbolic information for libthread.so.1
detected a multithreaded program
t@1 (l@1) terminated by signal BUS (invalid address alignment)
(dbx) where
current thread: t@1
=>[1] Parrot_CallContext_unshift_pmc_orig(0x25be8, 0xe0df0, 0xe0db4, 0xe0e04, 0x0, 0x0), at 0xff23ec20
  [2] Parrot_CallContext_unshift_pmc(0x25be8, 0xe0df0, 0xe0db4, 0xffbef888, 0x0, 0x0), at 0xff23ed3c
  [3] Parrot_pcc_add_invocant(0x25be8, 0xe0df0, 0xe0db4, 0xffbef888, 0x0, 0xff0000), at 0xff156dc4
  [4] Parrot_pcc_invoke_method_from_c_args(0x25be8, 0xe0db4, 0xda5c4, 0xff3302e8, 0xda57c, 0xffbef91c), at 0xff156e88
  [5] imcc_compile_file_api(0xdada4, 0xe0db4, 0xda57c, 0xffbef9d8, 0x0, 0x0), at 0xff3039c4
  [6] run_imcc(0xdada4, 0xda57c, 0xffbefa68, 0xffbefa98, 0xffbefa90, 0xffbefa68), at 0x125d4
  [7] main(0x3, 0xffbefb24, 0xffbefb34, 0x25160, 0x0, 0x0), at 0x129d8


For all of the ""bad"" revisions I checked, the crash was in the same
spot.

-- 
    Andy Dougherty		doughera@lafayette.edu

}}}
"	Andy Dougherty <doughera@…>
4	3.8.0	2196	cygwin build fails	build	3.8.0	bug		new	2011-10-01T00:04:18Z	2011-10-01T01:09:56Z	"{{{
I was trying to reproduce
https://rt.perl.org/rt3/Public/Bug/Display.html?id=64032
on cygwin using a fresh clone of rakudo, and ran the usual perl
Configure.pl --gen-parrot

and it failed with the following error (sorry for the wrapped lines):

gcc-4 -o pbc_disassemble.exe \
        frontend/pbc_disassemble/main.o \
        src/longopt.o \
         -L/cygdrive/c/Users/mwilson/src/rakudo/parrot -lparrot -lpthread -lm
-L/usr/lib  -licuuc -licudata -lpthread -lm    -lcrypt -lintl -Wl,--enable-auto-
import -Wl,--export-all-symbols -Wl,--stack,8388608 -Wl,--enable-auto-image-base
 -fstack-protector -L/usr/local/lib
./parrot.exe -o pbc_to_exe.pbc tools/dev/pbc_to_exe.pir
./parrot.exe pbc_to_exe.pbc pbc_to_exe.pbc
gcc-4 -o pbc_to_exe.o -I""/cygdrive/c/Users/mwilson/src/rakudo/parrot/include"" -U
__STRICT_ANSI__ -g3  -pipe -fstack-protector -I/usr/local/include -DHASATTRIBUTE
_CONST  -DHASATTRIBUTE_DEPRECATED  -DHASATTRIBUTE_MALLOC  -DHASATTRIBUTE_NONNULL
  -DHASATTRIBUTE_NORETURN  -DHASATTRIBUTE_PURE  -DHASATTRIBUTE_UNUSED  -DHASATTR
IBUTE_WARN_UNUSED_RESULT  -DHASATTRIBUTE_HOT  -DHASATTRIBUTE_COLD  -DDISABLE_GC_
DEBUG=1 -DNDEBUG -DHAS_GETTEXT -O3 -c pbc_to_exe.c
      1 [main] parrot 164924 exception::handle: Exception: STATUS_ACCESS_VIOLATI
ON
    841 [main] parrot 164924 open_stackdumpfile: Dumping stack trace to parrot.e
xe.stackdump
      1 [main] parrot 143664 exception::handle: Exception: STATUS_ACCESS_VIOLATI
ON
    445 [main] parrot 143664 open_stackdumpfile: Dumping stack trace to parrot.e
xe.stackdump
      1 [main] parrot 167144 exception::handle: Exception: STATUS_ACCESS_VIOLATI
ON
    444 [main] parrot 167144 open_stackdumpfile: Dumping stack trace to parrot.e
$
      1 [main] parrot 163884 exception::handle: Exception: STATUS_ACCESS_VIOLATI
ON
    445 [main] parrot 163884 open_stackdumpfile: Dumping stack trace to parrot.e
xe.stackdump
      1 [main] parrot 167188 exception::handle: Exception: STATUS_ACCESS_VIOLATI
ON
    445 [main] parrot 167188 open_stackdumpfile: Dumping stack trace to parrot.e
xe.stackdump
      1 [main] parrot 103664 exception::handle: Exception: STATUS_ACCESS_VIOLATI
ON
    447 [main] parrot 103664 open_stackdumpfile: Dumping stack trace to parrot.e
xe.stackdump
      1 [main] parrot 146588 fork: child -1 - died waiting for longjmp before in
itialization, retry 0, exit code 0x600, errno 11
Can't spawn child process
current instr.: 'compile_file' pc 1140 (tools/dev/pbc_to_exe.pir:716)
called from Sub 'main' pc 171 (tools/dev/pbc_to_exe.pir:210)
make: *** [pbc_to_exe.exe] Error 1
Command failed (status 512): make install-dev

}}}
"	Matthew Wilson <diakopter@…>
4	3.8.0	2198	Add Configure.pl check for <stdint.h>	none	3.8.0	bug		new	2011-10-17T16:55:17Z	2011-10-17T20:00:17Z	"{{{
This patch adds (and uses) a Configure.pl check for <stdint.h>.
It is needed on systems that don't have <stdint.h>.

diff --git a/config/auto/headers.pm b/config/auto/headers.pm
index 907b365..2d7eb68 100644
--- a/config/auto/headers.pm
+++ b/config/auto/headers.pm
@@ -96,7 +96,7 @@ sub _list_extra_headers {
     # hence add sys/types.h to the reprobe list, and have 2 goes at getting
     # the header.
     my @extra_headers = qw(malloc.h fcntl.h setjmp.h pthread.h signal.h
-        sys/types.h sys/socket.h netinet/in.h arpa/inet.h
+        stdint.h sys/types.h sys/socket.h netinet/in.h arpa/inet.h
         sys/stat.h sysexit.h limits.h sys/sysctl.h);
 
     # more extra_headers needed on mingw/msys; *BSD fails if they are present
diff --git a/include/parrot/runcore_subprof.h b/include/parrot/runcore_subprof.h
index ef2b345..646bedf 100644
--- a/include/parrot/runcore_subprof.h
+++ b/include/parrot/runcore_subprof.h
@@ -8,7 +8,9 @@
 #define PARROT_RUNCORE_SUBPROF_H_GUARD
 
 
-#include <stdint.h>
+#ifdef PARROT_HAS_HEADER_STDINT
+#  include <stdint.h>
+#endif /* PARROT_HAS_HEADER_STDINT */
 #include ""pmc/pmc_sub.h""
 
 typedef struct subprofile subprofile;

-- 
    Andy Dougherty		doughera@lafayette.edu

}}}
"	Andy Dougherty <doughera@…>
4	3.8.0	2201	This product has only a moose, not a pony	none	3.8.0	bug	petdance	assigned	2011-10-25T04:51:41Z	2011-10-25T05:42:43Z	This is a scratch ticket for Andy's testing.	petdance
4	3.8.0	2202	PLEASE NO, LET TRAC BE READ-ONLY!!!!	none	3.8.0	bug		new	2012-01-12T04:21:53Z	2012-01-12T04:21:53Z		dukeleto
2	master	1886	set_string_native() not implemented in class 'TclString'	none	master	bug	whiteknight	assigned	2010-12-10T17:31:07Z	2011-10-20T01:53:24Z	"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
}}}
"	coke
2	master	2150	t/library/nciutils.t fails on windows	testing	master	bug		new	2011-07-12T13:25:02Z	2011-07-20T16:34:15Z	"t/library/nciutils.t is failing on windows. This is because of a particular expected behavior that is not supported on that platform. On windows, passing a NULL handle to GetProcAddress returns a null function pointer (equivalent operations on linux, a NULL library handle will look up the function in the current process).

I fixed a related failure in #2148 by checking in src/platform/win32/dl.c:Parrot_dlsym for a NULL handle, and calling GetModuleHandle(""libparrot""). That call looks up the libparrot binary in the current executing process, and returns a handle to it. Passing that handle to GetProcAddress allows us to find function in libparrot. That works (so long as the module is called ""libparrot"", which might be a little bit brittle, but that's another issue)

t/library/nciutils.t uses a null library handle to look up functions from libc, which works on linux because a null handle looks up in the current process. My fix on windows only looks up the function in the libparrot module. I don't know if there is a way to look up a function in an entire process, but I haven't been able to find such a method yet.

There are two options:

 - Change the test to explicitly load a library by name, instead of using a null library PMC and hoping the magic behavior just works in a cross-platform way
 - Mark the test TODO on windows, and keep searching for a way to make it work the same way as it does on Linux."	whiteknight
4	master	1903	tailcall method invocation pops exception handlers	none	master	bug	whiteknight	new	2010-12-24T16:34:29Z	2011-01-11T15:53:21Z	Tailcalling a function call leaves the exception handlers created for the current frame active. Tailcalling a method invocation does not.	plobsing
4	master	2044	Subclassing FileHandle	core	master	bug		new	2011-03-08T07:08:06Z	2011-03-08T07:08:06Z	"This PIR:
{{{
.sub test :main
    $P0 = subclass 'FileHandle', 'TempFileHandle'
    $P1 = new 'TempFileHandle'
.end
}}}
Produces:
{{{
Handle cannot be instantiated directly.
}}}
(from Handle.pmc:42)
"	ShaneC
4	master	2086	dynoplibs test failures on OS X	none	master	bug		new	2011-04-03T15:34:11Z	2011-04-04T13:24:41Z	"Mac OS X 10.6.6, 64bit kernel.

{{{
$ gcc --version
i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664)
}}}

Output
{{{

dynoplibs/bit...................dubious
	Test returned status 2 (wstat 512, 0x200)
dynoplibs/debug.................1..12
not ok 1 - getline, getfile
not ok 2 - debug_print
not ok 3 - debug_print without debugger
not ok 4 - debug_backtrace
not ok 5 - debug_break
not ok 6 - debug backtrace - Null PMC access
not ok 7 - debug backtrace - method not found
not ok 8 - debug backtrace - division by 0
not ok 9 - debug backtrace - recursion 1
not ok 10 - debug backtrace - recursion 2
not ok 11 - setfile and setline
not ok 12 - setfile and setline
dubious
	Test returned status 12 (wstat 3072, 0xc00)
DIED. FAILED tests 1-12
	Failed 12/12 tests, 0.00% okay
dynoplibs/io-old................1..4
not ok 1 - 32bit seek: exception (ops)
not ok 2 - 64bit seek: exception (ops)
not ok 3 - peek (ops)
not ok 4 - peek on an empty file (ops)
dubious
	Test returned status 4 (wstat 1024, 0x400)
DIED. FAILED tests 1-4
	Failed 4/4 tests, 0.00% okay
dynoplibs/io....................dubious
	Test returned status 2 (wstat 512, 0x200)
dynoplibs/math..................dubious
	Test returned status 2 (wstat 512, 0x200)
dynoplibs/obscure...............dubious
	Test returned status 2 (wstat 512, 0x200)
dynoplibs/pmc_pow...............dubious
	Test returned status 2 (wstat 512, 0x200)
dynoplibs/string_pmc_bitwise....dubious
	Test returned status 2 (wstat 512, 0x200)
dynoplibs/sysinfo...............1..16
not ok 1 - PASM sysinfo  integer size
not ok 2 - PIR sysinfo  integer size
not ok 3 - PASM sysinfo  float size
not ok 4 - PIR sysinfo  float size
not ok 5 - PASM sysinfo  pointer size
not ok 6 - PIR sysinfo  pointer size
not ok 7 - PASM sysinfo  osname
not ok 8 - PIR sysinfo  osname
not ok 9 - PASM sysinfo  CPU Arch Family
not ok 10 - PIR sysinfo  CPU Arch Family
ok 11 # skip Tests only meaningful on Win32
ok 12 # skip Tests only meaningful on Win32
not ok 13 - sysinfo CPU Model # TODO not currently implemented in parrot

#   Failed (TODO) test 'sysinfo CPU Model'
#   at dynoplibs/sysinfo.t line 180.
# Exited with error code: [SIGNAL 5]
# Received:
# dyld: Library not loaded: /usr/local/lib/libparrot.dylib
#   Referenced from: /Users/lucian/Prog/parrot/./parrot
#   Reason: image not found
# 
# Expected:
# darwin-thread-multi-2leveldarwin-thread-multi-2level
ok 14 # skip Testing only in some known platforms
not ok 15 - INTVAL min and max coherence
not ok 16 - bad sysinfo codes
dubious
	Test returned status 12 (wstat 3072, 0xc00)
DIED. FAILED tests 1-10, 15-16
	Failed 12/16 tests, 25.00% okay (less 3 skipped tests: 1 okay, 6.25%)
dynoplibs/time..................dubious
	Test returned status 2 (wstat 512, 0x200)
dynoplibs/time_old..............1..1
not ok 1 - decodelocaltime
dubious
	Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 1
	Failed 1/1 tests, 0.00% okay
dynoplibs/trans-infnan..........dubious
	Test returned status 2 (wstat 512, 0x200)
dynoplibs/trans-old.............1..13
not ok 1 - sinh
not ok 2 - tanh
not ok 3 - sech
not ok 4 - atan2
not ok 5 - atan, part 2
not ok 6 - log2
not ok 7 - log10
not ok 8 - ln
not ok 9 - exp
not ok 10 - pow
not ok 11 - sqrt
not ok 12 - pow_n_n_ic
not ok 13 - pow_n_n_i
dubious
	Test returned status 13 (wstat 3328, 0xd00)
DIED. FAILED tests 1-13
	Failed 13/13 tests, 0.00% okay
dynoplibs/trans.................dubious
	Test returned status 2 (wstat 512, 0x200)
Failed Test                    Stat Wstat Total Fail  List of Failed
-------------------------------------------------------------------------------
dynoplibs/bit.t                   2   512    ??   ??  ??
dynoplibs/debug.t                12  3072    12   12  1-12
dynoplibs/io-old.t                4  1024     4    4  1-4
dynoplibs/io.t                    2   512    ??   ??  ??
dynoplibs/math.t                  2   512    ??   ??  ??
dynoplibs/obscure.t               2   512    ??   ??  ??
dynoplibs/pmc_pow.t               2   512    ??   ??  ??
dynoplibs/string_pmc_bitwise.t    2   512    ??   ??  ??
dynoplibs/sysinfo.t              12  3072    16   12  1-10 15-16
dynoplibs/time.t                  2   512    ??   ??  ??
dynoplibs/time_old.t              1   256     1    1  1
dynoplibs/trans-infnan.t          2   512    ??   ??  ??
dynoplibs/trans-old.t            13  3328    13   13  1-13
dynoplibs/trans.t                 2   512    ??   ??  ??
3 subtests skipped.
Failed 14/14 test scripts. 42/46 subtests failed.
Files=14, Tests=46,  1 wallclock secs ( 0.48 cusr +  0.40 csys =  0.88 CPU)
}}}"	lucian
4	master	2124	Including extend.h without first including parrot.h blows up in Rakudo	embed/extend	master	bug	whiteknight	new	2011-05-26T22:19:49Z	2011-05-26T23:42:02Z	"{{{
15:15:49     @pmichaud | NotFound: http://gist.github.com/994223   # results of including extend.h without first including parrot.h          
}}}

Sample:
{{{
cd src/binder && cc -c -o bind.o -I../../src/pmc -I/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel -I/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/pmc -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHASATTRIBUTE_CONST -DHASATTRIBUTE_DEPRECATED -DHASATTRIBUTE_MALLOC -DHASATTRIBUTE_NONNULL -DHASATTRIBUTE_NORETURN -DHASATTRIBUTE_PURE -DHASATTRIBUTE_UNUSED -DHASATTRIBUTE_WARN_UNUSED_RESULT -DHASATTRIBUTE_HOT -DHASATTRIBUTE_COLD -DDISABLE_GC_DEBUG=1 -DNDEBUG -DHAS_GETTEXT -fPIC -falign-functions=16 -funit-at-a-time -fexcess-precision=standard -maccumulate-outgoing-args -W -Wall -Waggregate-return -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wdisabled-optimization -Wdiv-by-zero -Wenum-compare -Wendif-labels -Wextra -Wformat -Wformat-extra-args -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimplicit -Wimport -Winit-self -Winline -Winvalid-pch -Wjump-misses-init -Wlogical-op -Wmissing-braces -Wmissing-field-initializers -Wno-missing-format-attribute -Wmissing-include-dirs -Wmultichar -Wpacked -Wparentheses -Wpointer-arith -Wpointer-sign -Wreturn-type -Wsequence-point -Wsign-compare -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default -Wtrigraphs -Wundef -Wno-unused -Wunknown-pragmas -Wvariadic-macros -Wwrite-strings -Wc++-compat -Wdeclaration-after-statement -Werror=declaration-after-statement -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wnonnull -Wold-style-definition -Wstrict-prototypes -fvisibility=hidden bind.c
In file included from /home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/extend.h:19:0,
                 from bind.c:8:
/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/interpreter.h:557:34: error: expected ‘)’ before ‘(’ token
In file included from /home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/extend.h:55:0,
                 from bind.c:8:
/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/extend_vtable.h:17:47: error: expected ‘)’ before ‘(’ token
/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/extend_vtable.h:18:42: error: expected ‘)’ before ‘(’ token
/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/extend_vtable.h:19:46: error: expected ‘)’ before ‘(’ token
/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/extend_vtable.h:20:48: error: expected ‘)’ before ‘(’ token
/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/extend_vtable.h:21:46: error: expected ‘)’ before ‘(’ token
/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/extend_vtable.h:22:43: error: expected ‘)’ before ‘(’ token
/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/extend_vtable.h:23:43: error: expected ‘)’ before ‘(’ token
/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/extend_vtable.h:24:41: error: expected ‘)’ before ‘(’ token
/home/pmichaud/rakudo/parrot_install/include/3.4.0-devel/parrot/extend_vtable.h:25:52: error: expected ‘)’ before ‘(’ token
}}}"	dukeleto
4	master	2131	pbc_merge discards annotations	tools	master	bug	dukeleto	new	2011-06-10T01:09:05Z	2011-06-10T01:09:05Z	"bytecode files output from pbc_merge do not contain any annotation information. HLLs that use annotations for debugging can't use pbc_merge.

pbc_merge should be updated to maintain annotation information, if possible."	whiteknight
4	master	2160	.git doesn't imply git executable	build	master	bug		new	2011-07-19T22:17:51Z	2011-07-20T23:10:34Z	"On windows, I have ""git bash"" and ""visual studio command shell"", and they're separate. When I run 'nmake smoke' (et al.), it's complaining that

{{{
'git' is not recognized as an internal....
}}}

So, while -d .git is an easy check, we can't assume that is sufficient to be able to run `git`.


"	coke
4	master	2165	Coredumping Parrot with only 2 lines of PASM for fun and profit	core	master	bug		new	2011-07-28T18:05:54Z	2011-08-12T00:22:51Z	"{{{
(sarkomand)(~/git/linguist master* )$ parrot_config sha1
7b9fa1943a02630840e861fe709c01c28120bc08
(sarkomand)(~/git/linguist master* )$ cat hello.pasm 
.pcc_sub :main main:
    say ""Hello!""
(sarkomand)(~/git/linguist master* )$ parrot hello.pasm 
Hello!

Segmentation fault (core dumped)
}}}
The backtrace is:

{{{
Program terminated with signal 11, Segmentation fault.
#0  0x00007f1bcd9d8a47 in runops_fast_core (interp=0xb54050, runcore_unused=0xc3c1c0, pc=0xc4f1b0) at src/runcore/cores.c:504
504	        DO_OP(pc, interp);
(gdb) bt
#0  0x00007f1bcd9d8a47 in runops_fast_core (interp=0xb54050, runcore_unused=0xc3c1c0, pc=0xc4f1b0) at src/runcore/cores.c:504
#1  0x00007f1bcd9d7e97 in runops_int (interp=0xb54050, offset=0) at src/runcore/main.c:218
#2  0x00007f1bcd9abe60 in runops (interp=0xb54050, offs=0) at src/call/ops.c:126
#3  0x00007f1bcd9a4982 in Parrot_pcc_invoke_from_sig_object (interp=0xb54050, sub_obj=0xc409b0, call_object=0xc40ac8) at src/call/pcc.c:337
#4  0x00007f1bcd9a40d5 in Parrot_pcc_invoke_sub_from_c_args (interp=0xb54050, sub_obj=0xc409b0, sig=0x7f1bcdb618e5 ""P->"") at src/call/pcc.c:139
#5  0x00007f1bcd9ed15a in Parrot_pf_execute_bytecode_program (interp=0xb54050, pbc=0xc40988, args=0xc407d0) at src/packfile/api.c:2738
#6  0x00007f1bcd981415 in Parrot_api_run_bytecode (interp_pmc=0xc34b78, pbc=0xc40988, mainargs=0xc407d0) at src/embed/bytecode.c:162
#7  0x00000000004019e0 in main (argc=2, argv=0x7fff63a4d778) at frontend/parrot/main.c:226
}}}"	dukeleto
4	master	2171	Archive.Zip Errors	library	master	bug		new	2011-08-04T20:14:06Z	2011-08-09T08:46:35Z	"The current Zip class fails to create a simple archive , bug can be reproduce with the following winxed code :

{{{
var archive = new [""Archive"",""Zip""];
archive.addFile(""README.txt"");
archive.writeToFileNamed(""output.zip"");
}}}

error message is :
{{{
current instr.: 'parrot;Archive;Zip;Base;pack_V' pc 145 (runtime/parrot/library/Archive/Zip.pir:104)
called from Sub 'parrot;Archive;Zip;Member;_writeLocalFileHeader' pc 807 (runtime/parrot/library/Archive/Zip.pir:305)
called from Sub 'parrot;Archive;Zip;Member;_writeToFileHandle' pc 1802 (runtime/parrot/library/Archive/Zip.pir:528)
called from Sub 'parrot;Archive;Zip;writeToFileHandle' pc 2509 (runtime/parrot/library/Archive/Zip.pir:796)
called from Sub 'parrot;Archive;Zip;writeToFileNamed' pc 2416 (runtime/parrot/library/Archive/Zip.pir:762)
called from Sub 'parrot;model_parser;FileUtilities;readZip' pc 76 (target-pir/model_parser/FileUtilities.pir:0) (lib-0/model_parser/FileUtilities.wx:27)
called from Sub 'main' pc 132 (target-pir/Executor.pir:78) (lib-0/Executor.wx:79)
}}}"	Eclesia
5	master	1930	t/op/number.t: one test fails under --optimize on Darwin/PPC	testing	master	bug		new	2011-01-03T19:53:14Z	2011-07-29T01:10:36Z	"Configuring with:
{{{
perl Configure.pl --optimize
}}}
on Darwin/PPC, I got the following test failure, which I do not get when I configure without optimization:
{{{
t/op/number.t .. 
1..126
...
not ok 50 - mod_n
# Have: -0
# Want: 0
}}}
Note: I have rarely configured with `--optimize` on this platform, so I don't know whether this test failure has always been there or when it appeared.  (I was working on a different ticket where I needed to see what difference `--optimize` made in `%PConfig`.)

Given what some would consider the antiquity of this platform, this is hardly a deal-breaker.   Still, a bug is a bug, and it would be worthwhile if someone could speculate on why optimization made this bug manifest and how it might be fixed.

Thank you very much.

kid51"	jkeenan
5	master	2012	osutils does not play nice with nqp-setting	library	master	bug		new	2011-02-14T14:47:27Z	2011-02-14T14:47:27Z	"runtime/parrot/library/osutils.pir does not using namespacing. Neither does nqp-setting. Attempting to use both libraries in the same project (which is very possible if using distutils from an NQP-rx script) causes naming conflicts. Specifically, the problem I am having is that distutils is attempting to call the ""slurp"" method from osutils, but is going to the ""slurp"" method in nqp-setting instead. The one in nqp-setting has different semantics and doesn't allow you to specify the encoding.

I would like to add proper namespacing to osutils, but that's going to require some changes to distutils and maybe other languages. I don't know how well-used that library is. Another alternative would be to add NQP setting functions to a namespace (""NQP::Setting""?). I don't know how well that change would be received either."	whiteknight
2	trunk	562	subclassing basic number types fails to inherit basic ops like add, sub, mul and div	core	trunk	bug	kjs	new	2009-04-18T11:05:14Z	2009-12-05T23:00:15Z	"When subclassing base types like Integer, Float and Complex. The ops sub, add, mul and div are not properly inherited by the derived class.

A basic example is provided by the following code: -

{{{
.sub '' :main
    $P0 = subclass 'Integer', 'FooInt'
    
    print 'Integer: 10 - 1 = '
    $P0 = new 'Integer'
    $P0 = 10
    sub $P1, $P0, 1
    say $P1
 
    print 'FooInt: 10 - 1 = '
    $P0 = new 'FooInt'
    $P0 = 10
    #$P1 = new 'FooInt' # uncommenting here does not help
    sub $P1, $P0, 1
    say $P1 
.end
}}}

outputs the following: -

{{{
Integer: 10 - 1 = 9
FooInt: 10 - 1 = Multiple Dispatch: No suitable candidate found for 'subtract_int', with signature 'PIP->P'
...
}}}

This appears to be related to RT http://rt.perl.org/rt3/Public/Bug/Display.html?id=59630 which outlines the problem for a specific case of a Complex type.

The attached script proves the bug also affects add, sub, mul, div for Integer, Float and Complex. It could be used as a test case."	bsdz
3	trunk	326	win32 Wide API needed . 'make smoke' failed 63 tests.	core	trunk	bug	fperrad	new	2009-02-13T15:38:38Z	2011-02-21T14:21:13Z	"It failed 63 tests.

see http://smolder.plusthree.com/app/public_projects/report_details/17984

parrot fails to load:
.\parrot.exe -o C:/DOCUME~1/ÃÂ¢Â»Â¨ÃÃÃÃ/LOCALS~1/Temp/tySepN24eO

The Windows Wide API is not enabled.

As workaround $TEMP could be checked to point to a pure ascii path."	jimmy
3	trunk	775	Simplify makefile rules on windows.	configure	trunk	bug		new	2009-06-18T22:01:39Z	2010-06-13T03:58:51Z	"Windows XP Professional, ActivePerl 5.10.0.1005-MSWin32, dmake 4.11

Trying to build Parrot using dmake results in the following error:

{{{
dmake:  makefile:  line 126:  Warning: -- Macro `O' redefined after use
dmake:  makefile:  line 130:  Warning: -- Macro `A' redefined after use
dmake:  makefile:  line 3236:  Warning: -- Found non-white space character after '[' in [[ -d parrot-$(VERSION) ] || ln -s $(CUR_DIR) parrot-$(VERSION)].
dmake:  makefile:  line 3340:  Error: -- Incomplete rule recipe group detected
}}}

(See attached Makefile)
Especially for Strawberry Perl users this might be a blocker, as afaik Strawberry Perl ships only dmake by default, so someone should probably document this somewhere."	MoC
4	trunk	205	r35872 test fails on solaris	core	trunk	bug		new	2009-01-21T20:39:05Z	2010-08-13T14:10:55Z	"Test Summary Report
-------------------
t/op/trans                              (Wstat: 256 Tests: 22 Failed: 1)
  Failed test:  14
  Non-zero exit status: 1
Files=395, Tests=11826, 574 wallclock secs ( 3.10 usr  1.83 sys + 89.02 cusr 30.35 csys = 124.30 CPU)
Result: FAIL
make: *** [test] Error 1

I'm not sure what else you need, so here are some random things.

uname -a
SunOS web01-dev 5.10 Generic_127112-11 i86pc i386 i86pc Solaris

./parrot -V
This is parrot version 0.9.0-devel built for nojit.
Copyright (C) 2001-2008, The Perl 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.


"	jsut
4	trunk	228	t/pmc/sub fails with runcore PBC	core	trunk	bug		new	2009-01-26T05:05:58Z	2009-12-19T02:58:57Z	"perl t/harness --gc-debug --running-make-test -r t/pmc/sub.t     

{{{
t/pmc/sub....NOK 63/64                                                       
#   Failed test ':outer with identical sub names'
#   at t/pmc/sub.t line 1462.
# Exited with error code: 1
# Received:
# ABC::outer
# ABC::inner
# Null PMC in say
# current instr.: 'parrot;ABC;inner' pc 47 (/local/scratch/dmajnem2/parrot/t/pmc/sub_63.pir:20)
# called from Sub 'parrot;ABC;outer' pc 37 (/local/scratch/dmajnem2/parrot/t/pmc/sub_63.pir:14)
# called from Sub 'main' pc 9 (/local/scratch/dmajnem2/parrot/t/pmc/sub_63.pir:3)
# 
# Expected:
# ABC::outer
# ABC::inner
# ABC lex
# DEF::outer
# DEF::inner
# DEF lex
# 
# Looks like you failed 1 test of 64.
t/pmc/sub....dubious                                                         
        Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 63
        Failed 1/64 tests, 98.44% okay
Failed Test Stat Wstat Total Fail  List of Failed
-------------------------------------------------------------------------------
t/pmc/sub.t    1   256    64    1  63
Failed 1/1 test scripts. 1/64 subtests failed.
Files=1, Tests=64,  2 wallclock secs ( 1.54 cusr +  0.46 csys =  2.00 CPU)
Failed 1/1 test programs. 1/64 subtests failed.
}}}

icc --version
{{{
icc (ICC) 10.1 20080801
Copyright (C) 1985-2008 Intel Corporation.  All rights reserved.
}}}

svn info
{{{
Path: .
URL: https://svn.perl.org/parrot/trunk
Repository Root: https://svn.perl.org/parrot
Repository UUID: d31e2699-5ff4-0310-a27c-f18f2fbe73fe
Revision: 36011
Node Kind: directory
Schedule: normal
Last Changed Author: Whiteknight
Last Changed Rev: 36011
Last Changed Date: 2009-01-25 17:09:07 -0600 (Sun, 25 Jan 2009)
}}}
"	dmajnemer
4	trunk	370	Rounding Inf and NaN	core	trunk	bug	Paul C. Anagnostopoulos	new	2009-02-24T08:52:42Z	2010-09-09T20:31:59Z	"$ ./perl6
> say ceiling(NaN)
-2147483648
> say floor(NaN)
-2147483648
> say floor(Inf)
-2147483648
> say ceiling(Inf)
-2147483648
"	dukeleto
4	trunk	706	Out of mem (PASM, compreg, invokecc)	core	trunk	bug		new	2009-05-26T12:32:49Z	2010-09-08T21:39:41Z	"Attached test use compreg P1, ""PASM"" and invokecc it 100,000 times.
On i386-MSWin32 (mingw32) it consumes 66MB of RAM with r39159 (107 MB of RAM with r11704).

If you replace ""lt I20, 100000, NEXT"" to ""lt I20, 10000000, NEXT"" it fails with ""Parrot VM: PANIC: Out of mem! C file src\gc\alloc_memory.c, line 142"".

{{{
set S28, """"
concat S28, "".pcc_sub :anon _indi:\n""
concat S28, "" get_params \""(0,0,0)\"", I0, I1, I2\n""
concat S28, "" set I3, 23\n""
concat S28, "" set_returns \""(0)\"", I3\n""
concat S28, "" returncc\n""

compreg P1, ""PASM""
set I20, 0

NEXT:
set_args ""(0)"",S28
get_results ""(0)"", P0
invokecc P1

needs_destroy P0
sweep 0

inc I20
lt I20, 100000, NEXT

# sleep 10

end
}}}


"	mj41
4	trunk	748	memory leak in IMCC	imcc	trunk	bug	chromatic	new	2009-06-09T14:17:20Z	2011-03-03T04:08:42Z	"From a valgrind run against partcl (r440) on parrot (r39470) using

parrot tcl.pbc -e ""puts hi""

{{{
==12199== 25,242 bytes in 1,120 blocks are definitely lost in loss record 48 of 48
==12199==    at 0x402601E: malloc (vg_replace_malloc.c:207)
==12199==    by 0x40D78B3: mem_sys_allocate (alloc_memory.c:47)
==12199==    by 0x4136C0B: str_dup (primitives.c:357)
==12199==    by 0x43210B9: yylex_skip (imcc.l:859)
==12199==    by 0x431F527: yylex (imcc.l:416)
==12199==    by 0x431649E: yyparse (imcparser.c:3117)
==12199==    by 0x431C03D: compile_string (imcc.l:1351)
==12199==    by 0x4338A84: imcc_compile (parser_util.c:683)
==12199==    by 0x4338D2D: imcc_compile_pir_ex (parser_util.c:876)
==12199==    by 0x439708C: ???
==12199==    by 0x426112B: Parrot_NCI_invoke (nci.pmc:326)
==12199==    by 0x4061835: Parrot_invokecc_p (core.ops:504)
==12199==    by 0x413124F: runops_slow_core (cores.c:462)
==12199==    by 0x412FE4D: runops_int (main.c:987)
==12199==    by 0x40EC710: runops (ops.c:107)
==12199==    by 0x40ECB03: runops_args (ops.c:256)
==12199==    by 0x40ED9B5: Parrot_runops_fromc_args (ops.c:325)
==12199==    by 0x40CA856: Parrot_runcode (embed.c:1014)
==12199==    by 0x4322A5E: imcc_run_pbc (main.c:801)
==12199==    by 0x432365B: imcc_run (main.c:1092)
==12199==    by 0x8048967: main (main.c:61)
}}}

This is 82% of the leaked memory.
"	coke
4	trunk	806	Test.readdir is not skipped on Win32 even though it appears that it should be	core	trunk	bug		new	2009-07-03T17:06:34Z	2009-12-19T00:36:58Z	"t/pmc/os.t:270:
{{{
skip 'not implemented on windows yet', 1 if ( $MSWin32 && $MSVC );
}}}

It seems like the message doesn't agree with the if clause, because you can also use GCC (MinGW) to compile on Windows. If you compile Parrot on Windows XP SP3 with GCC 4.4 this test will fail (see attached log and smolder report at [http://smolder.plusthree.com/app/public_projects/report_details/24454]). However I'm not sure wether the if clause is responsible for this error or GCC 4.4 since other Windows builds compiled with GCC 3.4 pass this test according to smolder (see http://smolder.plusthree.com/app/public_projects/report_details/24452)."	MoC
4	trunk	867	Implicit NameSpace Creation Does Not Respect Compile-time HLL Map	core	trunk	bug		new	2009-07-21T02:42:42Z	2009-07-21T02:42:42Z	"From an example by Coke:

{{{
.HLL 'tcl'

.sub 'foo' :anon :init
  $P1 = get_class 'NameSpace'
  $P2 = subclass $P1, 'BSNS'
  $P0 = getinterp
  $P0.'hll_map'($P1, $P2)
.end

.namespace ['a';'b';'c']

.sub 'hi'
  noop
.end

.namespace []

.sub 'blah' :main
  $P1 = get_hll_namespace ['a';'b';'c']
  $S0 = typeof $P1
  print 'ok 1 - '
  say $S0
.end
}}}

I believe this should print {{{ ok 1 - BSNS }}}.

Making this work is not trivial."	chromatic
4	trunk	899	heredocs in a macro argument broken.	core	trunk	bug		new	2009-08-02T18:17:09Z	2011-07-02T21:22:52Z	"{{{
.macro qq(code)
    .code
.endm

.sub main :main
    say 'hi'

    say <<'FOO'
hi
FOO 

    .qq({
        say ""hi""
    })

=for FAIL
    .qq({
        say <<""FOO""
hi
FOO
    }) 
    
=cut

.end

}}}

If you remove the pod comments, you get:
{{{
parrot foo.pir
error:imcc:The opcode 'say' (say<0>) was not found. Check the type and number of the arguments        in macro '.qq' line 3        included from 'foo.pir' line 1
}}}

I'd expect non-POD'd version to print out 'hi' 4 times (modulo whitespace)

"	coke
4	trunk	1040	inplace math on subclasses failing (MMD/vtable)	none	trunk	bug		new	2009-09-21T06:47:52Z	2010-03-23T12:18:48Z	"Originally posted in [http://rt.perl.org/rt3/Ticket/Display.html?id=60036 RT] by pmichaud.

{{{
$ cat y.pir;./parrot y.pir
.sub main :main
$P1 = new 'Integer'
assign $P1, 4
$P1 *= 3
say $P1

$P0 = subclass 'Integer', 'MyInt'
$P1 = new 'MyInt'
assign $P1, 4
$P1 *= 3
say $P1

.end


12
Multiple Dispatch: No suitable candidate found for 'i_multiply_int',
with signature 'PI'
current instr.: 'main' pc 21 (y.pir:9)
}}}"	coke
4	trunk	1071	Intermittent failure with t/pmc/os.t test 9	testing	trunk	bug		new	2009-09-28T10:35:00Z	2010-09-20T08:52:39Z	"I am getting an intermittent failure with t/pmc/os.t - test 9 on Ubuntu 9.04 amd64.

It has failed twice for me recently - pretty much in the same way (see below) but in both cases when I re-ran the test it PASSed.

In fact in the last couple of days I have run the test many times (considering that it is run 7 times for each of my test runs, once in smoke and 6 times (once for each core) in fulltest.  As I have logged 6 test runs since the first failure (+ other runs not recorded) I have run the test more than 50 times with 2 failures.

At r41542 from [http://smolder.plusthree.com/app/public_projects/report_details/28233]: 
{{{
1..16
ok 1 - Test cwd
ok 2 - Test chdir
ok 3 - Test mkdir
ok 4 - Test rm call in a directory
ok 5 - Test that rm removed the directory
ok 6 - Test OS.stat
ok 7 - Test OS.readdir
ok 8 - Test OS.rename
not ok 9 - Test OS.lstat

#   Failed test 'Test OS.lstat'
#   at t/pmc/os.t line 314.
#          got: '0x00000811
# 0x00a1b82f
# 0x000081a4
# 0x00000001
# 0x000003e8
# 0x000003e8
# 0x00000000
# 0x00000004
# 0x4ac081ae
# 0x4ac081ad
# 0x4ac081ad
# 0x00001000
# 0x00000008
# '
#     expected: '0x00000811
# 0x00a1b82f
# 0x000081a4
# 0x00000001
# 0x000003e8
# 0x000003e8
# 0x00000000
# 0x00000004
# 0x4ac081ad
# 0x4ac081ad
# 0x4ac081ad
# 0x00001000
# 0x00000008
# '
ok 10 - Test rm call in a file
ok 11 - Test that rm removed file
ok 12 - Test symlink
ok 13 - symlink was really created
ok 14 - Test link
ok 15 - hard link to file was really created
ok 16 - Test dirlink
# Looks like you failed 1 test of 16.

}}}

At r41534 make fulltest - make testr:
{{{
#   Failed test 'Test OS.lstat'
#   at t/pmc/os.t line 314.
#          got: '0x00000811
# 0x009e0109
# 0x000081a4
# 0x00000001
# 0x000003e8
# 0x000003e8
# 0x00000000
# 0x00000004
# 0x4abfaa1d
# 0x4abfaa1c
# 0x4abfaa1c
# 0x00001000
# 0x00000008
# '
#     expected: '0x00000811
# 0x009e0109
# 0x000081a4
# 0x00000001
# 0x000003e8
# 0x000003e8
# 0x00000000
# 0x00000004
# 0x4abfaa1c
# 0x4abfaa1c
# 0x4abfaa1c
# 0x00001000
# 0x00000008
# '

}}}

Note that the failure (0x4ac081ae expected 0x4abfaa1d) and (0x4ac081ad expected 0x4abfaa1c) in the 9th line of output seems to be the same failure.

I am investigating this further."	mikehh
4	trunk	1084	Bus error when running 'parrot -t something.pbc' on MacOSX	language	trunk	bug		new	2009-10-02T00:43:22Z	2011-07-04T18:52:59Z	"Using parrot trunk @r41607
Proto-language at http://github.com/cconstantine/Reason

MacOSX: 10.5.7; MacBookPro3,1 (Core 2 Duo);  

While attempting to debug my proto-language I attempted to run my compiler with 'parrot -t reason.pbc'.  Output is attached.

"	cconstantine
4	trunk	1087	Various tests fail on DragonFly/amd64	testing	trunk	bug		new	2009-10-02T21:29:50Z	2011-11-15T14:05:10Z	"Since DragonFly BSD 2.4 there is an amd64 version of the system. While my experiences on the x86 version were pretty good the amd64 port causes various errors when running a smoke test. It's a SMP enabled system (Phenom II, X2 545) btw, if this does matter.

Summary:
http://smolder.plusthree.com/app/public_projects/report_details/28463

t/op/inf_nan.t:
http://smolder.plusthree.com/app/public_projects/tap_stream/28463/103

t/src/atomic.t
http://smolder.plusthree.com/app/public_projects/tap_stream/28463/269

t/src/basic.t:
http://smolder.plusthree.com/app/public_projects/tap_stream/28463/270

t/src/embed.t
http://smolder.plusthree.com/app/public_projects/tap_stream/28463/271

t/src/exit.t
http://smolder.plusthree.com/app/public_projects/tap_stream/28463/272

t/src/extend.t
http://smolder.plusthree.com/app/public_projects/tap_stream/28463/273

t/src/warnings.t
http://smolder.plusthree.com/app/public_projects/tap_stream/28463/274

t/perl/Parrot_Test.t:
http://smolder.plusthree.com/app/public_projects/tap_stream/28463/278"	reezer
4	trunk	1275	failure with eq_num op in t/op/comp.t with g++ 4.4.1 --optimized build	testing	trunk	bug	mikehh	new	2009-11-16T09:01:02Z	2010-09-20T00:41:12Z	"I switched to Ubuntu 9.10 i386 and eventually got parrot to build with g++ ver 4.4.1 (about two weeks ago) I started getting an error with t/op/comp.t on an optimized build with g++ on i386 - the error did not effect the build without --optimize and the gcc build passes the test both with and without --optimize.  The test also passed with all four options on amd64, both on Ubuntu 9.04 amd64 and Ubuntu 9.10 amd64 (gcc/g++ 4.4.1 and 4.3.4) respectively) - I had upgraded my Ubuntu 9.04 i386 to Ubuntu 9.10 i386 so could no longer test there.  NotFound++ did test on that platform and it passed, however when he installed Ubuntu 9.10 i386 on his laptop he got the same results with g++ and --optimize.

see comments by NotFound and mikehh on TT #1176.

I was working on converting the test to .pir from .pasm when bubaflub++ posted a patch to do this in TT #1269 - I applied this in r42518 - the test is now sub-test 17

I was on amd64 at the time, but when I re-booted to i386 the test still gave a failure with the eq_num op on i386 with an --optimize build with g++. (PASSes on all my other platform/options.)

Specifically the code:
{{{
.sub test_eq_num
    new $P0, 'Float'
    set $P0, -1.2
    new $P1, 'String'
    set $P1, ""-1.2""
    eq_num $P0, $P1, OK
    ok(0, ""not eq_num"")
    .return()
  OK:
    ok(1, ""eq_num"")
.end

}}}
the eq_num $P0, $P1, OK does not take the OK branch

if I change to set P1, ""-1.2000000000"" the test passes (with all options on i386), fewer zeros still fail (more ok).

if I set POW to powl (as per TT #1176) the test also passes (with $P1 as ""-1.2"")

'''Analysis'''

What is happening here is that with g++ 4.4.1 (with --optimize) actually uses higher precision in intermediate code (as allowed by the standard)

On further consideration I decided that although this is related to TT #1176 it is actually a different problem in that as we are not specifying use of long double POW would be set to pow rather than powl in this case.

I have serious doubts as to the validity of using the eq_num op in comparing float to string, certainly when using binary floats as opposed to decimal floats. see [http://speleotrove.com/decimal/]

excuse the excessive verbosity in the post, but I felt explanations were necessary, (and I cut out quite a bit)

We can get the test to pass using the set P1, ""-1.2000000000"" as it also passes with the normally passing tests (at least on i386, will check on amd64 in a bit).
"	mikehh
4	trunk	1286	method overload in pir subclass of pmc pccmethod leaves object undefined	library	trunk	bug		new	2009-11-17T03:15:19Z	2010-09-23T02:20:34Z	"while creating a subclass of Exporter to test inter-language exports,
i stumbled across a bug that i can't seem to fix.

i've created a subclass of Exporter called MyExporter. MyExporter has
an overridden 'add_global' method, which adds a '&' sigil to each
global specified by the user and calls the method in the superclass.

i've also created a high-level language that uses the '&' sigil on
subs, and i import and aim to call the hll sub. however, the code
never finishes 'add_method', as it segfaults inside the supermethod
with an undefined 'exp' object. that is, from src/pmc/exporter.pmc,
line 260:

Parrot_Exporter *exp = PARROT_EXPORTER(SELF);

after this line, 'exp' is NULL, but 'SELF' (or after macro expansion
'pmc') is not. this is not the case when 'add_method' has not been
overridden. here's the pir code that exposes the bug:

.sub 'main' :main
.local pmc exp, ns

exp = new 'MyExporter'

ns = get_root_namespace ['foo']
exp.'source'( ns )

exp.'add_global'('bar')

say ""NEVER REACHES HERE""

exp.'import'()

'&bar'() ## THIS WILL SUCCEED!
'bar'() ## THIS WILL FAIL!
## THAT'S NOT WHAT I WANT!!!
.end


## create a subclass of Exporter that overrides 'add_global'
## it adds a '&' sigil to each requested global
.namespace ['MyExporter']
.sub 'onload' :load :init :anon
.local pmc class
class = subclass 'Exporter', 'MyExporter'
.return ()
.end


.sub 'add_global' :method
.param string glb :optional
.param int has_glb :opt_flag

.local pmc args, super
args = new .Hash
super = new .Super, self

unless has_glb goto no_global
glb = concat '&', glb
.return super.'add_global'( glb )
no_global:
.return super.'add_global'()
.end


# create a high-level language that uses '&' sigil for sub names
.HLL 'foo', ''
.sub '&bar'
say 'hello, world!'
.end


note that switching from a tail method call to a regular method call
has no effect.

also note that my code also exposes a problem with the current
Exporter implementation: the imported sub name does not match the
requested name. i have yet to address this as the current bug is
blocking progress.

~jerry"	particle
4	trunk	1288	Limit the required interface for PMCs	none	trunk	bug		new	2009-11-17T03:21:16Z	2009-11-17T03:21:16Z	"{{{
In the pdd03 design document there is the todo item (with context):

=item 5 C<FLAT> (P only)

If this bit is set on a PMC value, then the PMC must be an aggregate. The
contents of the aggregate, rather than the aggregate itself, will be passed.

If the C<NAMED> bit is also set, the aggregate will be used as a hash; its
contents, as key/value pairs, will be passed as named parameters. The PMC
must implement the full hash interface. {{ TODO: Limit the required
interface. }}

What is the required interface? How should it be limited? This, I
suspect, needs to be discussed and decided upon, and then documented
in the PDD.
}}}

Originally reported in http://rt.perl.org/rt3/Ticket/Display.html?id=45367"	coke
4	trunk	1485	runtime/parrot/library/SDL/*.pir  bitrot	library	trunk	bug		new	2010-02-28T05:52:51Z	2010-02-28T05:54:53Z	"{{{
$ make runtime/parrot/library/SDL/StopWatch.pbc./parrot -o runtime/parrot/library/SDL/StopWatch.pbc runtime/parrot/library/SDL/StopWatch.pir
error:imcc:The opcode 'setattribute_p_i_p' (setattribute<3>) was not found. Check the type and number of the arguments
        in file 'runtime/parrot/library/SDL/StopWatch.pir' line 78
make: *** [runtime/parrot/library/SDL/StopWatch.pbc] Error 2
$ make runtime/parrot/library/SDL/Surface.pbc./parrot -o runtime/parrot/library/SDL/Surface.pbc runtime/parrot/library/SDL/Surface.pir
error:imcc:syntax error, unexpected DOT ('.')
        in file 'runtime/parrot/library/SDL/Surface.pir' line 148
error:imcc:syntax error, unexpected DOT ('.')
        in file 'runtime/parrot/library/SDL/Surface.pir' line 152
error:imcc:syntax error, unexpected DOT ('.')
        in file 'runtime/parrot/library/SDL/Surface.pir' line 156
make: *** [runtime/parrot/library/SDL/Surface.pbc] Error 1
}}}

---
looks like none of the SDL pir files are built by default, or this would have been caught much sooner."	coke
4	trunk	1486	rewrite examples/ to use hierarchical namespaces instead of flat ::-style	none	trunk	bug		new	2010-02-28T06:24:18Z	2010-02-28T06:24:18Z	"Tetris::
Mines::EventHandler
MoveLogo::EventHandler

(or just remove these SDL examples entirely)"	coke
4	trunk	1494	factorial example in languages/squaak gives incorrect result	none	trunk	bug		new	2010-03-04T05:48:50Z	2010-08-17T21:15:08Z	"[squaak]% cat examples/factorial.sq 
# Copyright (C) 2008, Parrot Foundation.
# $Id: factorial.sq 36833 2009-02-17 20:09:26Z allison $

print(""Please enter number: "")
x = read()

sub factorial(n)
    ## test for < 2 because all numbers are represented by
    ## floating-point numbers, and equality checks on those
    ## do not work (yet?)
    if n < 2 then
        return 1
    else
        return n * factorial(n - 1)
    end
end

print(""factorial of "", x, "" is: "", factorial(x))


[squaak]% ./installable_squaak examples/factorial.sq 
Please enter number: 
10
factorial of 10
 is: 1
[squaak]% ./installable_squaak examples/factorial.sq
Please enter number: 
10
factorial of 10
 is: 1
[squaak]% pwd
/home/parthm/src/parrot-2.1.1/examples/languages/squaak
[squaak]% which parrot
/home/parthm/src/parrot-2.1.1/parrot
[squaak]%

It seems (n < 2) is always returning true. Below are the results with prints added.

[squaak]% cat fac2.sq 
# Copyright (C) 2008, Parrot Foundation.
# $Id: factorial.sq 36833 2009-02-17 20:09:26Z allison $

print(""Please enter number: "")
x = read()

print(""you entered:"", x)

sub factorial(n)
    ## test for < 2 because all numbers are represented by
    ## floating-point numbers, and equality checks on those
    ## do not work (yet?)

    print(""got: "", n)
    print(""is n < 2:"", n < 2)

    if n < 2 then
        print(""return 1"")
        return 1
    else
        print(""return n * fac(n-1)"")
        return n * factorial(n - 1)
    end
end

print(""factorial of "", x, "" is: "", factorial(x))


[squaak]% ./installable_squaak fac2.sq
Please enter number: 
10
you entered:10

got: 10

is n < 2:1
return 1
factorial of 10
 is: 1
[squaak]%

"	parthm
4	trunk	1631	Exception handler throwing exception in NQP-rx causes segfault	nqp	trunk	bug	pmichaud	assigned	2010-05-13T08:57:43Z	2010-07-13T18:52:33Z	"{ 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.
"	sorear
4	trunk	1765	Memory leak in allocate_interpreter	core	trunk	bug	bluescreen	reopened	2010-09-01T21:00:04Z	2011-08-27T17:20:53Z	"{{{
$ valgrind --leak-check=full ./parrot --leak-test t/op/interp_2.pir
[...]
==4748== 131,364 (216 direct, 131,148 indirect) bytes in 1 blocks are definitely lost in loss record 184 of 184
==4748==    at 0x402328F: calloc (vg_replace_malloc.c:467)
==4748==    by 0x40F262B: mem_sys_allocate_zeroed (alloc_memory.c:82)
==4748==    by 0x4108184: allocate_interpreter (inter_create.c:123)
==4748==    by 0x410813A: make_interpreter (inter_create.c:91)
==4748==    by 0x416FFED: create_interp (parrotinterpreter.pmc:182)
==4748==    by 0x41708C8: Parrot_ParrotInterpreter_init (parrotinterpreter.pmc:251)
==4748==    by 0x413BCAB: Parrot_pmc_new (pmc.c:163)
==4748==    by 0x40B8F13: Parrot_new_p_sc (core_ops.c:20494)
==4748==    by 0x413E780: runops_slow_core (cores.c:646)
==4748==    by 0x413D7F9: runops_int (main.c:218)
==4748==    by 0x41098EE: runops (ops.c:126)
==4748==    by 0x4103CCA: Parrot_pcc_invoke_from_sig_object (pcc.c:323)
}}}
"	nwellnhof
4	trunk	1766	n_regs_used in PBC files isn't checked	core	trunk	bug		new	2010-09-02T13:29:21Z	2010-09-02T13:29:21Z	One can make Parrot crash by setting n_regs_used to a bogus value.	nwellnhof
4	trunk	1787	OS X --m=32 doesn't work in snow leopard	configure	trunk	bug	ash	new	2010-09-13T15:37:23Z	2010-09-21T02:46:33Z	"In OS X, if you try to build parrot as 32 bit using --m=32 it has no effect. 

Also, it would be nice if there was a configuration option for building a universal binary in OS X (which means configuring for 32-bit, 64-bit x86 and possibly ppc, and ppc64)."	ash
4	trunk	1831	config problem with glui library on ubuntu 10.04	configure	trunk	bug		new	2010-10-16T23:33:12Z	2010-10-16T23:33:12Z	"If I have the glui libraries (include files) installed on my ubuntu 10.04 system, the $ perl configure.pl shell command makes the following complaint/warning:
{{{
gen::opengl -         Generating OpenGL bindings...In OpenGL header '/usr/include/GL/glui.h', can't parse canonicalized prototype for '':
  GLUI_String& glui_format_str(GLUI_String &str, char* fmt, ...);
Original prototype:
  GLUIAPI GLUI_String& glui_format_str(GLUI_String &str, const char* fmt, ...);

......................done.
}}}

this appears to come from the header file parser in parrot/config/gen/opengl.pm throwing out the ""const"" prefix for a ""char *""
argument:

{{{
cc179ba1 (japhb     2008-06-01 03:02:27 +0000  695)             s/\bconst\b\s*//g;
}}}
"	wagle
4	trunk	1971	Oplib paths are truncated in PBC files	tools	trunk	bug	dukeleto	new	2011-01-16T19:31:11Z	2011-05-22T02:07:59Z	"The problem seems to be that IMCC uses the correct path to load the oplib object file when compiling, but drops all directory information when producing the packfile, so that loading the PBC file fails to find the library.

1.  Unpack the attached test case tarball, and edit the PARROT-HOME macro in the makefile to point to a local Parrot working copy.

2.  Run ""make"" to build and run the test.  Here's what the output looks like on my machine (GNU/Linux, openSUSE 11.3):

    rogers@rgr> make
    /usr/src/parrot/ops2c --dynamic dynops/kea_cl.ops --quiet
    cc -I/usr/src/parrot/include -I/usr/src/parrot/include/pmc \
		    -o dynops/kea_cl_ops.o -c dynops/kea_cl_ops.c
    ld -o dynops/kea_cl_ops.so dynops/kea_cl_ops.o -shared
    /usr/src/parrot/parrot -o test.pbc test.pir
    /usr/src/parrot/parrot -o aux.pbc aux.pir
    /usr/src/parrot/parrot test.pbc
    Could not load oplib `kea_cl_ops'
    current instr.: 'main' pc 0 (test.pir:4)
    make: *** [test] Error 1
    rogers@rgr> 

3.  Apply parrot-lib-debugging.patch to the Parrot working copy, do ""make parrot"", and rerun the test:

    rogers@rgr> make clean
    rm -f *.pbc *.dump *.dis dynops/kea_cl_ops.*
    rogers@rgr> make
    /usr/src/parrot/ops2c --dynamic dynops/kea_cl.ops --quiet
    Got path '/usr/src/parrot/runtime/parrot/dynext/os.so' for os
    cc -I/usr/src/parrot/include -I/usr/src/parrot/include/pmc \
		    -o dynops/kea_cl_ops.o -c dynops/kea_cl_ops.c
    ld -o dynops/kea_cl_ops.so dynops/kea_cl_ops.o -shared
    /usr/src/parrot/parrot -o test.pbc test.pir
    Got path 'dynops/kea_cl_ops.so' for dynops/kea_cl_ops
    /usr/src/parrot/parrot -o aux.pbc aux.pir
    Got path 'dynops/kea_cl_ops.so' for dynops/kea_cl_ops
    /usr/src/parrot/parrot test.pbc
    Got path '' for kea_cl_ops
    Could not load oplib `kea_cl_ops'
    current instr.: 'main' pc 0 (test.pir:4)
    make: *** [test] Error 1
    rogers@rgr> 

This shows that IMCC is looking for ""dynops/kea_cl_ops"" (as you would expect), but the PBC file is looking for ""kea_cl_ops"" at load time and failing.  Indeed, if you do ""strings aux.pbc"", you will find the latter but not the former.  (As an aside, pbc_dump and pbc_disassemble do not work on aux.pbc.  Unless you copy dynops/kea_cl_ops.so to runtime/parrot/dynext/ in the Parrot working copy, where it will be found.)

4.  Change the aux.pir source to use the absolute pathname.  This does not help:

    rogers@rgr> make
    /usr/src/parrot/parrot -o aux.pbc aux.pir
    Got path '/home/rogers/projects/kea2/bug/dynops/kea_cl_ops.so' for /home/rogers/projects/kea2/bug/dynops/kea_cl_ops
    /usr/src/parrot/parrot test.pbc
    Got path '' for kea_cl_ops
    Could not load oplib `kea_cl_ops'
    current instr.: 'main' pc 0 (test.pir:4)
    make: *** [test] Error 1
    rogers@rgr> 

As before, just ""kea_cl_ops"" is stored in the PBC file.

FWIW, Parrot has never had this problem with dynamic PMC classes; the exact pathname used in the .loadlib directive makes it into the PBC file.
"	rgrjr
5	trunk	364	ptr_alignment 8 not honored, sparc 64bit broken	core	trunk	bug		new	2009-02-20T18:10:42Z	2010-03-02T15:36:52Z	"Sparc 64bit with strict ptr_alignment=8 breaks when reading frozen pmc's because of misalignment.

Any 64bit big-endian cpu with strict alignment is broken without '''-xmemalign=4s''' (the immediate workaround)
The default for all v9 architectures is '''-xmemalign=8s'''.

However, our goal should be to allow fast aligned code and not to skip this with a compiler relaxement.

{{{
t@1 (l@1) stopped in PF_fetch_integer at line 1076 in file ""pf_items.c""
 1076       ASSERT_ARGS(PF_fetch_integer)
(dbx) step
t@1 (l@1) stopped in PF_fetch_integer at line 1078 in file ""pf_items.c""
 1078       if (!pf || pf->fetch_iv == NULL)
(dbx) print *(*stream)
**stream = 4
(dbx) step
t@1 (l@1) stopped in PF_fetch_integer at line 1079 in file ""pf_items.c""
 1079           return *(*stream)++;
(dbx) print *(*stream) 
**stream = 4
(dbx) step
t@1 (l@1) signal BUS (invalid address alignment) in PF_fetch_integer at line 1079 in file ""pf_items.c""
 1079           return *(*stream)++;
(dbx) print *(*stream) 
**stream = 35
(dbx) print *stream
*stream = 0x100000dec
}}}

'''0x100000dec''' is not properly aligned. It must be '''0x100000df0'''.

Sparc cc manpage:[[BR]]
-xmemalign[=<a><b>] Controls memory alignment, <a>={1|2|4|8|16}, b={f|i|s}.[[BR]]
Accepted values for b are:[[BR]]
i Interpret access and continue execution.[[BR]]
s Raise signal SIGBUS. [[BR]]
f For variants of -xarch=v9 only. [reduced i] [[BR]]

Thanks to Rolf Grossmann for coming up with all this info and debugging, and to Andy Dougherty for correcting my wrong first analysis.

The fix for 1.0 will be a hints file update to add -xmemalign=4s to cc_flags, the goal for 2.6 will be a --64bitcompat argument to parrot to create 8-byte aligned values on 32-bit, not 4-byte as now.
"	rurban
5	trunk	486	"When using struct array of size 1 get ""Non existent array element in struct: count = 1 max=1"""	core	trunk	bug		new	2009-03-22T13:34:49Z	2011-01-26T03:11:14Z	"When creating an array of structs with only one element char_offset_key does not recognize the pmc as an array. This looks like it is because it uses an internal var called max and assumes arrays always have size greater than 1.

A workaround is to force an array of size 1 to be of size 2.

An example test.pir to be attached."	bsdz
4	3.8.0	2197	404 not found on docs.parrot.org	none	3.8.0			new	2011-10-13T18:11:00Z	2011-10-13T18:11:00Z	"{{{
lateau: 404 not found on
""http://docs.parrot.org/parrot/latest/html/docs/book/pct/TODO""
Coke: lateau: where was it linked to from?
lateau: I founded this in
""http://docs.parrot.org/parrot/latest/html/docs/book/pct/ch04_pge.pod.html"".
Link name is ""Assertions""
Coke: interesting. the source there is L<Assertions>
Coke: (and there is an Assertions section)
Coke: I suspct the pod2html is tagging that with a TODO somehow.
Coke: I don't see an easy fix: please send an email to
tickets@parrot.org to open a trac ticket. Thanks.
lateau: ok, thanks

--
Daehyub Kim

}}}
"	Daehyub Kim <lateau@…>
4	3.8.0	2200	gms issues on powerpc (OpenBSD)	none	3.8.0			new	2011-10-21T18:41:16Z	2011-10-21T18:41:16Z	"{{{
The gms garbage collector apparently still has issues on the powerpc
platform.  This one can be triggered while compiling rakudo (star) with
a parrot using gms, while building the Math::Model module:

/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/Math/Model.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/
local/lib/parrot/3.6.0/languages/perl6/lib/Math/Model.pm
src/gc/gc_gms.c:1100: failed assertion 'PObj_constant_TEST(pmc) || (int)POBJ2GE
N(pmc) == i'


It works fine when using ms2.  Unfortunately, I can't provide much more
information because I don't own a powerpc myself, but it shouldn't be
hard to reproduce.


Full build log:

cd rakudo && /usr/bin/perl Configure.pl --parrot-config=/usr/local/bin/parrot_c
onfig && make

Reading configuration information from /usr/local/bin/parrot_config ...
Verifying Parrot installation...

Creating Makefile ...
Creating config.status ...
Cleaning up ...

You can now use 'gmake' to build Rakudo Perl.
After that, you can use 'gmake test' to run some local tests,
or 'gmake spectest' to check out (via git) a copy of the Perl 6
official test suite and run its tests.

/usr/local/bin/parrot-nqp --output=src/gen/Attribute.pir --encoding=utf8  --tar
get=pir src/metamodel/Attribute.nqp
/usr/local/bin/parrot-nqp --output=src/gen/RoleToRoleApplier.pir --encoding=utf
8  --target=pir src/metamodel/RoleToRoleApplier.nqp
/usr/local/bin/parrot-nqp --output=src/gen/RoleToClassApplier.pir --encoding=ut
f8  --target=pir src/metamodel/RoleToClassApplier.nqp
/usr/local/bin/parrot-nqp --output=src/gen/RoleToInstanceApplier.pir --encoding
=utf8  --target=pir src/metamodel/RoleToInstanceApplier.nqp
/usr/bin/perl build/gen_builtins_pir.pl src/glue/contextuals.pir  src/glue/disp
atch.pir  src/glue/enum.pir  src/glue/phasers.pir  src/glue/regex.pir  src/glue
/role.pir  src/glue/run.pir  src/glue/types.pir  src/builtins/Mu.pir  src/metam
odel/ClassHOW.pir  src/builtins/Any.pir  src/gen/Attribute.pir  src/builtins/Co
ol.pir  src/metamodel/RoleHOW.pir  src/gen/RoleToRoleApplier.pir  src/gen/RoleT
oClassApplier.pir  src/gen/RoleToInstanceApplier.pir  src/metamodel/GrammarHOW.
pir  src/builtins/Role.pir  src/builtins/ConcreteRole.pir  src/builtins/Positio
nal.pir  src/builtins/Iterable.pir  src/builtins/Iterator.pir  src/builtins/EMP
TY.pir  src/builtins/List.pir  src/builtins/ParrotIter.pir  src/builtins/ListIt
er.pir  src/builtins/MapIter.pir  src/builtins/GatherIter.pir  src/builtins/Par
cel.pir  src/builtins/ParcelIter.pir  src/builtins/Bool.pir  src/builtins/Int.p
ir  src/builtins/Num.pir  src/builtins/Str.pir  src/builtins/Enum.pir  src/buil
tins/Pair.pir  src/builtins/Code.pir  src!
 /builtins/Block.pir  src/builtins/Routine.pir  src/builtins/Multi.pir  src/bui
ltins/Sub.pir  src/builtins/Method.pir  src/builtins/Submethod.pir  src/builtin
s/Regex.pir  src/builtins/Associative.pir  src/builtins/Array.pir  src/builtins
/Seq.pir  src/builtins/Proxy.pir  src/builtins/ContainerDeclarand.pir  src/buil
tins/Exception.pir  src/builtins/Failure.pir  src/builtins/Signature.pir  src/b
uiltins/Junction.pir  src/builtins/Capture.pir  src/builtins/assign.pir  src/bu
iltins/metaops.pir  src/builtins/control.pir  src/builtins/Cursor.pir > src/gen
/builtins.pir
/usr/bin/perl build/gen_uprop_pir.pl > src/gen/uprop-cheats.pir
/usr/bin/perl build/gen_cheats_pir.pl src/cheats/constants.pir  src/cheats/perl
6-compiler.pir  src/cheats/autoincrement.pir  src/cheats/fail.pir  src/cheats/o
bject.pir  src/cheats/int-ops.pir  src/cheats/num-ops.pir  src/cheats/str-ops.p
ir  src/cheats/relops.pir  src/cheats/only_infix_redispatcher.pir  src/cheats/i
mport.pir  src/cheats/want-caller-side-callsig.pir  src/cheats/parrot-role-quir
ks.pir  src/cheats/parrot/attriter.pir  src/cheats/parrot/Protoobject.pir  src/
cheats/parrot/P6metaclass.pir  src/cheats/parrot/P6role.pir  src/cheats/parrot/
Sub.pir  src/gen/uprop-cheats.pir  src/cheats/parrot/register.pir > src/gen/che
ats.pir
/usr/local/bin/parrot-nqp --output=src/gen/signature_pm.pir --encoding=utf8  --
target=pir src/Perl6/Compiler/Signature.pm
/usr/local/bin/parrot-nqp --output=src/gen/parameter_pm.pir --encoding=utf8  --
target=pir src/Perl6/Compiler/Parameter.pm
/usr/local/bin/parrot-nqp --output=src/gen/package_pm.pir --encoding=utf8  --ta
rget=pir src/Perl6/Compiler/Package.pm
/usr/local/bin/parrot-nqp --output=src/gen/module_pm.pir --encoding=utf8  --tar
get=pir src/Perl6/Compiler/Module.pm
/usr/local/bin/parrot-nqp --output=src/gen/role_pm.pir --encoding=utf8  --targe
t=pir src/Perl6/Compiler/Role.pm
/usr/local/bin/parrot-nqp --output=src/gen/locator_pm.pir --encoding=utf8  --ta
rget=pir src/Perl6/Module/Locator.pm
/usr/local/bin/parrot-nqp --output=src/gen/versiondetectionactions_pm.pir --enc
oding=utf8  --target=pir src/Perl6/Module/VersionDetectionActions.pm
/usr/local/bin/parrot-nqp --output=src/gen/loader_pm.pir --encoding=utf8  --tar
get=pir src/Perl6/Module/Loader.pm
/usr/local/bin/parrot-nqp --output=src/gen/backtraceprinter_pm.pir --encoding=u
tf8  --target=pir src/Perl6/BacktracePrinter.pm
/usr/local/bin/parrot-nqp --target=pir --output=src/gen/perl6-grammar.pir --enc
oding=utf8  src/Perl6/Grammar.pm
/usr/local/bin/parrot-nqp --target=pir --output=src/gen/perl6-actions.pir --enc
oding=utf8  src/Perl6/Actions.pm
/usr/bin/perl -I/usr/local/lib/parrot/3.6.0/tools/lib build/gen_objectref_pmc.p
l src/pmc/objectref_pmc.template  src/pmc/objectref.pmc
/usr/bin/perl /usr/local/lib/parrot/3.6.0/tools/build/pmc2c.pl --no-lines --dum
p --include src/pmc --include /usr/local/src/parrot/3.6.0 --include /usr/local/
src/parrot/3.6.0/pmc src/pmc/objectref.pmc
/usr/bin/perl /usr/local/lib/parrot/3.6.0/tools/build/pmc2c.pl --no-lines --dum
p --include src/pmc --include /usr/local/src/parrot/3.6.0 --include /usr/local/
src/parrot/3.6.0/pmc src/pmc/perl6str.pmc src/pmc/objectref.pmc  src/pmc/perl6s
calar.pmc src/pmc/mutablevar.pmc  src/pmc/perl6multisub.pmc src/pmc/p6invocatio
n.pmc  src/pmc/p6opaque.pmc src/pmc/p6role.pmc  src/pmc/p6lowlevelsig.pmc
/usr/bin/perl /usr/local/lib/parrot/3.6.0/tools/build/pmc2c.pl --no-lines --c -
-include src/pmc --include /usr/local/src/parrot/3.6.0 --include /usr/local/src
/parrot/3.6.0/pmc src/pmc/perl6str.pmc src/pmc/objectref.pmc  src/pmc/perl6scal
ar.pmc src/pmc/mutablevar.pmc  src/pmc/perl6multisub.pmc src/pmc/p6invocation.p
mc  src/pmc/p6opaque.pmc src/pmc/p6role.pmc  src/pmc/p6lowlevelsig.pmc
/usr/bin/perl /usr/local/lib/parrot/3.6.0/tools/build/pmc2c.pl --no-lines --lib
rary perl6_group --c src/pmc/perl6str.pmc src/pmc/objectref.pmc  src/pmc/perl6s
calar.pmc src/pmc/mutablevar.pmc  src/pmc/perl6multisub.pmc src/pmc/p6invocatio
n.pmc  src/pmc/p6opaque.pmc src/pmc/p6role.pmc  src/pmc/p6lowlevelsig.pmc
cc -c -o perl6_group.o -Isrc/pmc -I/usr/local/include/parrot/3.6.0 -I/usr/local
/include/parrot/3.6.0/pmc -fno-delete-null-pointer-checks -pipe -fstack-protect
or -I/usr/local/include -pthread -DHASATTRIBUTE_CONST  -DHASATTRIBUTE_DEPRECATE
D  -DHASATTRIBUTE_MALLOC  -DHASATTRIBUTE_NONNULL  -DHASATTRIBUTE_NORETURN  -DHA
SATTRIBUTE_PURE  -DHASATTRIBUTE_UNUSED  -DHASATTRIBUTE_WARN_UNUSED_RESULT  -DPI
C -fPIC  -g -falign-functions=16 -funit-at-a-time -W -Wall -Waggregate-return -
Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wdisabled-optimization -Wd
iv-by-zero -Wendif-labels -Wextra -Wformat -Wformat-extra-args -Wformat-nonlite
ral -Wformat-security -Wformat-y2k -Wimplicit -Wimport -Winit-self -Winline -Wi
nvalid-pch -Wmissing-braces -Wmissing-field-initializers -Wno-missing-format-at
tribute -Wmissing-include-dirs -Wmultichar -Wpacked -Wparentheses -Wpointer-ari
th -Wpointer-sign -Wreturn-type -Wsequence-point -Wsign-compare -Wstrict-aliasi
ng -Wstrict-aliasing=2 -Wswitch -Wswitch-!
 default -Wtrigraphs -Wundef -Wno-unused -Wunknown-pragmas -Wvariadic-macros -W
write-strings -Wc++-compat -Wdeclaration-after-statement -Werror=declaration-af
ter-statement -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-d
eclarations -Wmissing-prototypes -Wnested-externs -Wnonnull -Wold-style-definit
ion -Wstrict-prototypes -fvisibility=hidden perl6_group.c
cd src/pmc && cc -c -I/usr/local/include/parrot/3.6.0 -I/usr/local/include/parr
ot/3.6.0/pmc -fno-delete-null-pointer-checks -pipe -fstack-protector -I/usr/loc
al/include -pthread -DHASATTRIBUTE_CONST  -DHASATTRIBUTE_DEPRECATED  -DHASATTRI
BUTE_MALLOC  -DHASATTRIBUTE_NONNULL  -DHASATTRIBUTE_NORETURN  -DHASATTRIBUTE_PU
RE  -DHASATTRIBUTE_UNUSED  -DHASATTRIBUTE_WARN_UNUSED_RESULT  -DPIC -fPIC  -g -
falign-functions=16 -funit-at-a-time -W -Wall -Waggregate-return -Wcast-align -
Wcast-qual -Wchar-subscripts -Wcomment -Wdisabled-optimization -Wdiv-by-zero -W
endif-labels -Wextra -Wformat -Wformat-extra-args -Wformat-nonliteral -Wformat-
security -Wformat-y2k -Wimplicit -Wimport -Winit-self -Winline -Winvalid-pch -W
missing-braces -Wmissing-field-initializers -Wno-missing-format-attribute -Wmis
sing-include-dirs -Wmultichar -Wpacked -Wparentheses -Wpointer-arith -Wpointer-
sign -Wreturn-type -Wsequence-point -Wsign-compare -Wstrict-aliasing -Wstrict-a
liasing=2 -Wswitch -Wswitch-default -Wtri!
 graphs -Wundef -Wno-unused -Wunknown-pragmas -Wvariadic-macros -Wwrite-strings
 -Wc++-compat -Wdeclaration-after-statement -Werror=declaration-after-statement
 -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-declarations -
Wmissing-prototypes -Wnested-externs -Wnonnull -Wold-style-definition -Wstrict-
prototypes -fvisibility=hidden *.c
perl6multisub.c: In function 'Parrot_Perl6MultiSub_destroy':
perl6multisub.c:955: warning: empty body in an if-statement
perl6multisub.c:958: warning: empty body in an if-statement
perl6multisub.c: In function 'Parrot_Perl6MultiSub_push_pmc_orig':
perl6multisub.c:1470: warning: empty body in an if-statement
perl6multisub.c:1475: warning: empty body in an if-statement
cd src/binder && cc -c -o bind.o -I../../src/pmc -I/usr/local/include/parrot/3.
6.0 -I/usr/local/include/parrot/3.6.0/pmc -fno-delete-null-pointer-checks -pipe
 -fstack-protector -I/usr/local/include -pthread -DHASATTRIBUTE_CONST  -DHASATT
RIBUTE_DEPRECATED  -DHASATTRIBUTE_MALLOC  -DHASATTRIBUTE_NONNULL  -DHASATTRIBUT
E_NORETURN  -DHASATTRIBUTE_PURE  -DHASATTRIBUTE_UNUSED  -DHASATTRIBUTE_WARN_UNU
SED_RESULT  -DPIC -fPIC  -g -falign-functions=16 -funit-at-a-time -W -Wall -Wag
gregate-return -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wdisabled-
optimization -Wdiv-by-zero -Wendif-labels -Wextra -Wformat -Wformat-extra-args 
-Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimplicit -Wimport -Winit-s
elf -Winline -Winvalid-pch -Wmissing-braces -Wmissing-field-initializers -Wno-m
issing-format-attribute -Wmissing-include-dirs -Wmultichar -Wpacked -Wparenthes
es -Wpointer-arith -Wpointer-sign -Wreturn-type -Wsequence-point -Wsign-compare
 -Wstrict-aliasing -Wstrict-aliasing=2 -W!
 switch -Wswitch-default -Wtrigraphs -Wundef -Wno-unused -Wunknown-pragmas -Wva
riadic-macros -Wwrite-strings -Wc++-compat -Wdeclaration-after-statement -Werro
r=declaration-after-statement -Wimplicit-function-declaration -Wimplicit-int -W
main -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wnonnull -Wo
ld-style-definition -Wstrict-prototypes -fvisibility=hidden bind.c
cc -o src/pmc/perl6_group.so perl6_group.o src/pmc/*.o src/binder/bind.o -Wl,-E
  -fstack-protector -L/usr/local/lib -shared -fPIC  -fstack-protector  -lm -lut
il -lreadline -lncurses  -pthread -lm   -L/usr/local/lib -licui18n -licuuc -lic
udata  -pthread -lm
cd src/ops && /usr/local/bin/ops2c C --dynamic perl6.ops
# Parsing perl6.ops...
# Parsed perl6.ops in 47.773 seconds; found 77 ops.
# Ops parsed in 47.948 seconds.
cd src/ops && cc -c -o perl6_ops.o -I/usr/local/include/parrot/3.6.0 -I/usr/loc
al/include/parrot/3.6.0/pmc -fno-delete-null-pointer-checks -pipe -fstack-prote
ctor -I/usr/local/include -pthread -DHASATTRIBUTE_CONST  -DHASATTRIBUTE_DEPRECA
TED  -DHASATTRIBUTE_MALLOC  -DHASATTRIBUTE_NONNULL  -DHASATTRIBUTE_NORETURN  -D
HASATTRIBUTE_PURE  -DHASATTRIBUTE_UNUSED  -DHASATTRIBUTE_WARN_UNUSED_RESULT  -D
PIC -fPIC  -g -falign-functions=16 -funit-at-a-time -W -Wall -Waggregate-return
 -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wdisabled-optimization -
Wdiv-by-zero -Wendif-labels -Wextra -Wformat -Wformat-extra-args -Wformat-nonli
teral -Wformat-security -Wformat-y2k -Wimplicit -Wimport -Winit-self -Winline -
Winvalid-pch -Wmissing-braces -Wmissing-field-initializers -Wno-missing-format-
attribute -Wmissing-include-dirs -Wmultichar -Wpacked -Wparentheses -Wpointer-a
rith -Wpointer-sign -Wreturn-type -Wsequence-point -Wsign-compare -Wstrict-alia
sing -Wstrict-aliasing=2 -Wswitch -Wswitc!
 h-default -Wtrigraphs -Wundef -Wno-unused -Wunknown-pragmas -Wvariadic-macros 
-Wwrite-strings -Wc++-compat -Wdeclaration-after-statement -Werror=declaration-
after-statement -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing
-declarations -Wmissing-prototypes -Wnested-externs -Wnonnull -Wold-style-defin
ition -Wstrict-prototypes -fvisibility=hidden perl6_ops.c
cd src/ops && cc -o perl6_ops.so perl6_ops.o -Wl,-E  -fstack-protector -L/usr/l
ocal/lib -shared -fPIC  -fstack-protector  -lm -lutil -lreadline -lncurses  -pt
hread -lm   -L/usr/local/lib -licui18n -licuuc -licudata  -pthread -lm
/usr/bin/perl -MExtUtils::Command -e cp src/pmc/perl6_group.so src/ops/perl6_op
s.so dynext
/usr/bin/perl -MExtUtils::Command -e chmod 755 dynext/perl6_group.so
/usr/bin/perl -MExtUtils::Command -e chmod 755 dynext/perl6_ops.so
/usr/bin/perl -e """" > src/gen/core.pir
/usr/bin/perl build/gen_version.pl > src/gen/version.pir
/usr/local/bin/parrot  -o src/gen/perl6.pbc src/Perl6/Compiler.pir
/usr/bin/perl build/gen_core_pm.pl src/core/Positional.pm  src/core/Associative
.pm  src/core/Callable.pm  src/core/Abstraction.pm  src/core/traits.pm  src/cor
e/metaops.pm  src/core/operators.pm  src/glue/handles.pm  src/glue/subset.pm  s
rc/glue/enum.pm  src/cheats/trait-export.pm  src/cheats/num.pm  src/cheats/eval
.pm  src/core/Mu.pm  src/core/Bool.pm  src/core/Order.pm  src/core/Parcel.pm  s
rc/core/Any.pm  src/core/Any-list.pm  src/core/Code.pm  src/core/Cool.pm  src/c
ore/Cool-num.pm  src/core/Cool-str.pm  src/core/List.pm  src/core/Set.pm  src/c
ore/Array.pm  src/core/Numeric.pm  src/core/Real.pm  src/core/Int.pm  src/core/
Iterable.pm  src/core/Iterator.pm  src/core/Num.pm  src/core/Rat.pm  src/core/C
omplex.pm  src/core/Stringy.pm  src/core/Buf.pm  src/core/Str.pm  src/core/What
ever.pm  src/core/Pair.pm  src/core/RangeIter.pm  src/core/Range.pm  src/core/E
numMap.pm  src/core/Hash.pm  src/core/Enum.pm  src/core/IO.pm  src/core/IO/ArgF
iles.pm  src/core/IO/Socket.pm  src/core/!
 IO/Socket/INET.pm  src/core/IO/Stat..pm  src/core/Parameter.pm  src/core/Signa
ture.pm  src/core/Block.pm  src/core/WhateverCode.pm  src/core/Routine.pm  src/
core/Regex.pm  src/core/Junction.pm  src/core/Grammar.pm  src/core/system.pm  s
rc/cheats/process.pm  src/core/tai-utc.pm  src/core/Duration.pm  src/core/Insta
nt.pm  src/core/Temporal.pm  src/core/Match.pm  src/core/Attribute.pm  src/core
/CallFrame.pm  src/core/Capture.pm  src/core/MAIN.pm  src/core/YOU_ARE_HERE.pm 
> src/gen/core.pm
/usr/local/bin/parrot  src/gen/perl6.pbc --target=pir   src/gen/core.pm > src/g
en/core.pir
/usr/bin/perl build/gen_version.pl > src/gen/version.pir
/usr/local/bin/parrot  -o perl6.pbc src/Perl6/Compiler.pir
/usr/local/bin/pbc_to_exe perl6.pbc
cc -o perl6.o -I""/usr/local/include/parrot/3.6.0""  -fno-delete-null-pointer-che
cks -pipe -fstack-protector -I/usr/local/include -pthread -DHASATTRIBUTE_CONST 
 -DHASATTRIBUTE_DEPRECATED  -DHASATTRIBUTE_MALLOC  -DHASATTRIBUTE_NONNULL  -DHA
SATTRIBUTE_NORETURN  -DHASATTRIBUTE_PURE  -DHASATTRIBUTE_UNUSED  -DHASATTRIBUTE
_WARN_UNUSED_RESULT   -c perl6.c
Compiled: perl6.o
g++ -o perl6 ""perl6.o"" ""/usr/local/lib/parrot/3.6.0/parrot_config.o"" -Wl,-R""/us
r/local/lib"" -L/usr/local/lib -lparrot -Wl,-R/usr/libdata/perl5/powerpc-openbsd
/5.12.2/CORE -Wl,-E  -fstack-protector -lm -lutil -lreadline -lncurses  -pthrea
d -lm   -L/usr/local/lib -licui18n -licuuc -licudata  -pthread -lm   
/usr/local/lib/libparrot.so.3.0: warning: vsprintf() is often misused, please u
se vsnprintf()
/usr/local/lib/libparrot.so.3.0: warning: strcpy() is almost always misused, pl
ease use strlcpy()
/usr/local/lib/libparrot.so.3.0: warning: sprintf() is often misused, please us
e snprintf()
/usr/local/lib/libparrot.so.3.0: warning: strcat() is almost always misused, pl
ease use strlcat()
Linked: perl6
/usr/local/bin/parrot  perl6.pbc  --target=pir --output=Test.pir Test.pm
===> lang/rakudo
===>  Faking installation for rakudo-2011.07
cd rakudo && make install
/usr/bin/perl -MExtUtils::Command -e mkpath                     /usr/ports/pobj
/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib
/usr/bin/perl -MExtUtils::Command -e cp     perl6.pbc           /usr/ports/pobj
/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/languages/perl6
/usr/bin/perl -MExtUtils::Command -e cp     Test.pm             /usr/ports/pobj
/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib
/usr/bin/perl -MExtUtils::Command -e cp     Test.pir            /usr/ports/pobj
/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib
/usr/bin/perl -MExtUtils::Command -e mkpath                     /usr/ports/pobj
/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/dynext
/usr/bin/perl -MExtUtils::Command -e cp     src/pmc/perl6_group.so src/ops/perl
6_ops.so /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/
dynext
/usr/bin/perl -MExtUtils::Command -e mkpath                     /usr/ports/pobj
/rakudo-2011.07/fake-macppc/usr/local/bin
/usr/bin/perl -MExtUtils::Command -e cp     perl6        /usr/ports/pobj/rakudo
-2011.07/fake-macppc/usr/local/bin
/usr/bin/perl -MExtUtils::Command -e chmod  755                 /usr/ports/pobj
/rakudo-2011.07/fake-macppc/usr/local/bin/perl6
/usr/bin/perl -MExtUtils::Command -e mkpath 		      /usr/ports/pobj/r
akudo-2011.07/fake-macppc/usr/local/share/doc/rakudo
/usr/bin/perl -MExtUtils::Command -e mkpath 		      /usr/ports/pobj/r
akudo-2011.07/fake-macppc/usr/local/share/doc/rakudo/announce
/usr/bin/perl -MExtUtils::Command -e cp     README CREDITS LICENSE docs/*      
       /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/share/doc/rakudo
/usr/bin/perl -MExtUtils::Command -e cp     README CREDITS LICENSE docs/*/annou
nce    /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/share/doc/rakudo/an
nounce
/usr/bin/perl -MExtUtils::Command -e mkpath /usr/ports/pobj/rakudo-2011.07/fake
-macppc/usr/local/man/man1
/usr/bin/pod2man docs/running.pod --name=perl6 > /usr/ports/pobj/rakudo-2011.07
/fake-macppc/usr/local/man/man1/perl6.1
/usr/bin/pod2man docs/running.pod --name=rakudo > /usr/ports/pobj/rakudo-2011.0
7/fake-macppc/usr/local/man/man1/rakudo.1
/usr/bin/perl -MExtUtils::Command -e cp /usr/ports/pobj/rakudo-2011.07/fake-mac
ppc/usr/local/bin/perl6 .
/usr/bin/perl -MExtUtils::Command -e chmod 755 perl6
Installing 'ufo'
/usr/bin/perl -MExtUtils::Command -e cp    modules/ufo/bin/ufo /usr/ports/pobj/
rakudo-2011.07/fake-macppc/usr/local/bin/ufo
/usr/bin/perl -MExtUtils::Command -e chmod 755                 /usr/ports/pobj/
rakudo-2011.07/fake-macppc/usr/local/bin/ufo
/usr/bin/perl build/module-install.pl /usr/ports/pobj/rakudo-2011.07/fake-macpp
c/usr/local/bin/perl6 /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/
parrot/3.6.0/languages/perl6/lib modules/zavolaj  modules/xml-writer  modules/s
vg  modules/svg-plot  modules/Math-RungeKutta  modules/Math-Model  modules/perl
6-Config-INI  modules/perl6-Term-ANSIColor  modules/Algorithm-Viterbi  modules/
test-mock  modules/Perl6-MIME-Base64  modules/perl6-lwp-simple  modules/json  m
odules/perl6-digest-md5  modules/perl6-File-Tools  modules/panda  modules/http-
server-simple
modules/zavolaj/lib/NativeCall.pm6 => /usr/ports/pobj/rakudo-2011.07/fake-macpp
c/usr/local/lib/parrot/3.6.0/languages/perl6/lib/NativeCall.pm6
modules/xml-writer/lib/XML/Writer.pm => /usr/ports/pobj/rakudo-2011.07/fake-mac
ppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/XML/Writer.pm
modules/svg/lib/SVG.pm => /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/
lib/parrot/3.6.0/languages/perl6/lib/SVG.pm
modules/svg-plot/lib/SVG/Box.pm => /usr/ports/pobj/rakudo-2011.07/fake-macppc/u
sr/local/lib/parrot/3.6.0/languages/perl6/lib/SVG/Box.pm
modules/svg-plot/lib/SVG/Plot.pm => /usr/ports/pobj/rakudo-2011.07/fake-macppc/
usr/local/lib/parrot/3.6.0/languages/perl6/lib/SVG/Plot.pm
modules/svg-plot/lib/SVG/Plot/Pie.pm => /usr/ports/pobj/rakudo-2011.07/fake-mac
ppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/SVG/Plot/Pie.pm
modules/svg-plot/lib/SVG/Plot/Positioned.pm => /usr/ports/pobj/rakudo-2011.07/f
ake-macppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/SVG/Plot/Positioned.p
m
modules/svg-plot/lib/SVG/Plot/Data/Series.pm => /usr/ports/pobj/rakudo-2011.07/
fake-macppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/SVG/Plot/Data/Series
.pm
modules/svg-plot/lib/SVG/Plot/Data/Marker.pm => /usr/ports/pobj/rakudo-2011.07/
fake-macppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/SVG/Plot/Data/Marker
.pm
modules/Math-RungeKutta/lib/Math/RungeKutta.pm => /usr/ports/pobj/rakudo-2011.0
7/fake-macppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/Math/RungeKutta.pm
modules/Math-Model/lib/Math/Model.pm => /usr/ports/pobj/rakudo-2011.07/fake-mac
ppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/Math/Model.pm
modules/perl6-Config-INI/lib/Config/INI.pm => /usr/ports/pobj/rakudo-2011.07/fa
ke-macppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/Config/INI.pm
modules/perl6-Config-INI/lib/Config/INI/Writer.pm => /usr/ports/pobj/rakudo-201
1.07/fake-macppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/Config/INI/Writ
er.pm
modules/perl6-Term-ANSIColor/lib/Term/ANSIColor.pm => /usr/ports/pobj/rakudo-20
11.07/fake-macppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/Term/ANSIColor
.pm
modules/Algorithm-Viterbi/lib/Algorithm/Viterbi.pm => /usr/ports/pobj/rakudo-20
11.07/fake-macppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/Algorithm/Vite
rbi.pm
modules/test-mock/lib/Test/Mock.pm => /usr/ports/pobj/rakudo-2011.07/fake-macpp
c/usr/local/lib/parrot/3.6.0/languages/perl6/lib/Test/Mock.pm
modules/Perl6-MIME-Base64/lib/MIME/Base64.pm6 => /usr/ports/pobj/rakudo-2011.07
/fake-macppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/MIME/Base64.pm6
modules/perl6-lwp-simple/lib/LWP/Simple.pm => /usr/ports/pobj/rakudo-2011.07/fa
ke-macppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/LWP/Simple.pm
modules/json/lib/JSON/Tiny.pm => /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr
/local/lib/parrot/3.6.0/languages/perl6/lib/JSON/Tiny.pm
modules/json/lib/JSON/Tiny/Actions.pm => /usr/ports/pobj/rakudo-2011.07/fake-ma
cppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/JSON/Tiny/Actions.pm
modules/json/lib/JSON/Tiny/Grammar.pm => /usr/ports/pobj/rakudo-2011.07/fake-ma
cppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/JSON/Tiny/Grammar.pm
modules/perl6-digest-md5/lib/Digest/MD5.pm => /usr/ports/pobj/rakudo-2011.07/fa
ke-macppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/Digest/MD5.pm
modules/perl6-File-Tools/lib/File/Copy.pm => /usr/ports/pobj/rakudo-2011.07/fak
e-macppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/File/Copy.pm
modules/perl6-File-Tools/lib/File/Mkdir.pm => /usr/ports/pobj/rakudo-2011.07/fa
ke-macppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/File/Mkdir.pm
modules/perl6-File-Tools/lib/File/Find.pm => /usr/ports/pobj/rakudo-2011.07/fak
e-macppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/File/Find.pm
modules/perl6-File-Tools/lib/Shell/Command.pm => /usr/ports/pobj/rakudo-2011.07
/fake-macppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/Shell/Command.pm
modules/panda/lib/Pies.pm => /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/loc
al/lib/parrot/3.6.0/languages/perl6/lib/Pies.pm
modules/panda/lib/Panda.pm => /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/lo
cal/lib/parrot/3.6.0/languages/perl6/lib/Panda.pm
modules/panda/lib/Panda/Resources.pm => /usr/ports/pobj/rakudo-2011.07/fake-mac
ppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/Panda/Resources.pm
modules/panda/lib/Panda/Tester.pm => /usr/ports/pobj/rakudo-2011.07/fake-macppc
/usr/local/lib/parrot/3.6.0/languages/perl6/lib/Panda/Tester.pm
modules/panda/lib/Panda/Installer.pm => /usr/ports/pobj/rakudo-2011.07/fake-mac
ppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/Panda/Installer.pm
modules/panda/lib/Panda/Ecosystem.pm => /usr/ports/pobj/rakudo-2011.07/fake-mac
ppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/Panda/Ecosystem.pm
modules/panda/lib/Panda/Fetcher.pm => /usr/ports/pobj/rakudo-2011.07/fake-macpp
c/usr/local/lib/parrot/3.6.0/languages/perl6/lib/Panda/Fetcher.pm
modules/panda/lib/Panda/Common.pm => /usr/ports/pobj/rakudo-2011.07/fake-macppc
/usr/local/lib/parrot/3.6.0/languages/perl6/lib/Panda/Common.pm
modules/panda/lib/Panda/Builder.pm => /usr/ports/pobj/rakudo-2011.07/fake-macpp
c/usr/local/lib/parrot/3.6.0/languages/perl6/lib/Panda/Builder.pm
modules/http-server-simple/lib/HTTP/Server/Simple.pm6 => /usr/ports/pobj/rakudo
-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/HTTP/Server
/Simple.pm6
modules/http-server-simple/lib/HTTP/Server/Simple/PSGI.pm6 => /usr/ports/pobj/r
akudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/HTTP/S
erver/Simple/PSGI.pm6
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/NativeCall.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/
local/lib/parrot/3.6.0/languages/perl6/lib/NativeCall.pm6
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/XML/Writer.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/
local/lib/parrot/3.6.0/languages/perl6/lib/XML/Writer.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/SVG.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/l
ib/parrot/3.6.0/languages/perl6/lib/SVG.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/SVG/Box.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/loc
al/lib/parrot/3.6.0/languages/perl6/lib/SVG/Box.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/SVG/Plot.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/lo
cal/lib/parrot/3.6.0/languages/perl6/lib/SVG/Plot.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/SVG/Plot/Pie.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/us
r/local/lib/parrot/3.6.0/languages/perl6/lib/SVG/Plot/Pie.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/SVG/Plot/Positioned.pir /usr/ports/pobj/rakudo-2011.07/fake-ma
cppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/SVG/Plot/Positioned.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/SVG/Plot/Data/Series.pir /usr/ports/pobj/rakudo-2011.07/fake-m
acppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/SVG/Plot/Data/Series.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/SVG/Plot/Data/Marker.pir /usr/ports/pobj/rakudo-2011.07/fake-m
acppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/SVG/Plot/Data/Marker.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/Math/RungeKutta.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc
/usr/local/lib/parrot/3.6.0/languages/perl6/lib/Math/RungeKutta.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/Math/Model.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/
local/lib/parrot/3.6.0/languages/perl6/lib/Math/Model.pm
src/gc/gc_gms.c:1100: failed assertion 'PObj_constant_TEST(pmc) || (int)POBJ2GE
N(pmc) == i'
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/Config/INI.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/
local/lib/parrot/3.6.0/languages/perl6/lib/Config/INI.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/Config/INI/Writer.pir /usr/ports/pobj/rakudo-2011.07/fake-macp
pc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/Config/INI/Writer.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/Term/ANSIColor.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/
usr/local/lib/parrot/3.6.0/languages/perl6/lib/Term/ANSIColor.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/Algorithm/Viterbi.pir /usr/ports/pobj/rakudo-2011.07/fake-macp
pc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/Algorithm/Viterbi.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/Test/Mock.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/l
ocal/lib/parrot/3.6.0/languages/perl6/lib/Test/Mock.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/MIME/Base64.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr
/local/lib/parrot/3.6.0/languages/perl6/lib/MIME/Base64.pm6
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/LWP/Simple.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/
local/lib/parrot/3.6.0/languages/perl6/lib/LWP/Simple.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/JSON/Tiny.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/l
ocal/lib/parrot/3.6.0/languages/perl6/lib/JSON/Tiny.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/JSON/Tiny/Actions.pir /usr/ports/pobj/rakudo-2011.07/fake-macp
pc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/JSON/Tiny/Actions.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/JSON/Tiny/Grammar.pir /usr/ports/pobj/rakudo-2011.07/fake-macp
pc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/JSON/Tiny/Grammar.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/Digest/MD5.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/
local/lib/parrot/3.6.0/languages/perl6/lib/Digest/MD5.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/File/Copy.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/l
ocal/lib/parrot/3.6.0/languages/perl6/lib/File/Copy.pm
===SORRY!===
File::Copy is now deprecated, please use Rakudo's IO.copy() instead
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/File/Mkdir.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/
local/lib/parrot/3.6.0/languages/perl6/lib/File/Mkdir.pm
===SORRY!===
File::Mkdir is now deprecated, please use Shell::Command mkpath() instead
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/File/Find.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/l
ocal/lib/parrot/3.6.0/languages/perl6/lib/File/Find.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/Shell/Command.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/u
sr/local/lib/parrot/3.6.0/languages/perl6/lib/Shell/Command.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/Pies.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/
lib/parrot/3.6.0/languages/perl6/lib/Pies.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/Panda.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local
/lib/parrot/3.6.0/languages/perl6/lib/Panda.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/Panda/Resources.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc
/usr/local/lib/parrot/3.6.0/languages/perl6/lib/Panda/Resources.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/Panda/Tester.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/us
r/local/lib/parrot/3.6.0/languages/perl6/lib/Panda/Tester.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/Panda/Installer.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc
/usr/local/lib/parrot/3.6.0/languages/perl6/lib/Panda/Installer.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/Panda/Ecosystem.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc
/usr/local/lib/parrot/3.6.0/languages/perl6/lib/Panda/Ecosystem.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/Panda/Fetcher.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/u
sr/local/lib/parrot/3.6.0/languages/perl6/lib/Panda/Fetcher.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/Panda/Common.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/us
r/local/lib/parrot/3.6.0/languages/perl6/lib/Panda/Common.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/Panda/Builder.pir /usr/ports/pobj/rakudo-2011.07/fake-macppc/u
sr/local/lib/parrot/3.6.0/languages/perl6/lib/Panda/Builder.pm
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/HTTP/Server/Simple.pir /usr/ports/pobj/rakudo-2011.07/fake-mac
ppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/HTTP/Server/Simple.pm6
/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/perl6 --target=pir --o
utput=/usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/local/lib/parrot/3.6.0/lan
guages/perl6/lib/HTTP/Server/Simple/PSGI.pir /usr/ports/pobj/rakudo-2011.07/fak
e-macppc/usr/local/lib/parrot/3.6.0/languages/perl6/lib/HTTP/Server/Simple/PSGI
.pm6
Installing 'ufobuilder'
/usr/bin/perl -MExtUtils::Command -e cp    modules/panda/bin/ufobuilder /usr/po
rts/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/ufobuilder
/usr/bin/perl -MExtUtils::Command -e chmod 755                         /usr/por
ts/pobj/rakudo-2011.07/fake-macppc/usr/local/bin/ufobuilder
Installing 'panda'
/usr/bin/perl -MExtUtils::Command -e cp    modules/panda/bin/panda /usr/ports/p
obj/rakudo-2011.07/fake-macppc/usr/local/bin/panda
/usr/bin/perl -MExtUtils::Command -e chmod 755                    /usr/ports/po
bj/rakudo-2011.07/fake-macppc/usr/local/bin/panda
cd /usr/ports/pobj/rakudo-2011.07/rakudo-star-2011.07/docs && install -c -o roo
t -g bin -m 444 UsingPerl6-draft.pdf  cheatsheet.txt /usr/ports/pobj/rakudo-201
1.07/fake-macppc/usr/local/share/doc/rakudo
cd /usr/ports/pobj/rakudo-2011.07/rakudo-star-2011.07/docs/announce && install 
-c -o root -g bin -m 444 *  /usr/ports/pobj/rakudo-2011.07/fake-macppc/usr/loca
l/share/doc/rakudo/announce
===> lang/rakudo
`/usr/ports/pobj/rakudo-2011.07/fake-macppc/.fake_done' is up to date.

}}}
"	pstumpf
4	3.8.0	2203	Invitation - Please Complete Your Profile	none	3.8.0			new	2013-03-24T03:34:08Z	2013-03-24T03:34:08Z	"{{{
Hello,

As you are more than likely aware, you were recently selected 
for inclusion in the new 2013 edition of the Who's Who Among 
Executives and Professionals.

Despite our efforts, we have not yet received confirmation of 
your biographical profile, and are reaching out to you again 
in an effort to do so.

Click the link below to verify and confirm your profile:

http://www.reachaddress.com/link.php?M=579550&N=101&L=8&F=T

The tradition of the Who's Who reaches back more than 
100 years to a time when the prestigious and accomplished 
were featured in a yearly publication that defined high society.

Today, the Who's Who provides a useful resource where business 
professionals, academics, and Executives are both recognized for 
their achievements and provided with an unparalleled networking 
resource. Using our database, you can make global contacts, 
discuss current events and happenings with your peers, and 
establish yourself as either a mentor to aspiring professionals or 
further your business network.

Our goal is to seek out the premier executives and professionals 
throughout the world. There is absolutely no cost or obligation 
for your biographical profile. Simply click the link below to fill 
out the appropriate biographical fields:

http://www.reachaddress.com/link.php?M=579550&N=101&L=8&F=T


Sincerely,

JT Richards
Managing Director
Who's Who Among Executives and Professionals
http://www.reachaddress.com/link.php?M=579550&N=101&L=8&F=T



To change your communication options please click this link

http://www.reachaddress.com/link.php?M=579550&N=101&L=6&F=T

or write to:

3635 S. Fort Apache Rd, Suite 200 - 637
Las Vegas, NV 89147

}}}

[attachment:""untitled-part.html""]
"	"""JT Richards"" <jtrichards@…>"
