__color__	__group__	ticket	summary	component	version	owner	status	created	_changetime	_description	_reporter
2	 Release	2112	Improved documentation about NCI	docs	master		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	 Release	1801	Properly merge pools in GC MS2 when child interpreter destroyed.	GC	trunk	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
3	 Release	2128	Ability to build NCI thunks with Distutils	library	master		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	 Release	88	update pdd26-ast	docs		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	 Release	157	[TODO] Merge parrotblog.org into parrot.org	website		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	 Release	313	ignore print -0 test errors on win32	testing	trunk		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	 Release	339	msvc+mingw detection	configure	trunk		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	 Release	709	Pmc2c should generate mark and destroy VTABLES	core	1.2.0	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	 Release	787	add vtables for: get_pmc_keyed{_int,_str,}_lvalue ; and similarly for slice	core	1.3.0		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	 Release	847	Interpreter - 'exec' and 'spawn' should split own args	core	1.3.0		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	 Release	971	"Add ""current"" versions of Parrot_pcc_get_foo and Parrot_pcc_set_foo functions"	core	trunk		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	 Release	985	proper Configure.pl-time check for hires timers	profiling	1.5.0	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
4	 Release	1032	Document and test available HLL Mappings	docs	trunk		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	 Release	1041	pmc2c silently ignores bad code	build	trunk		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	 Release	1052	[TODO] Add --target=pbc to HLLCompiler	PCT	1.6.0	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	 Release	1082	test subclasses of core PMCS	testing	trunk		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	 Release	1094	Unify VTABLE_invoke semantics between PMC types	core	1.6.0		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	 Release	1154	Handle Pending Events More Frequently	none	trunk		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	 Release	1155	dynext - dll versioning	none			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	 Release	1157	Whitespace before/after the dot in a methodcall is disallowed	none	1.6.0		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	 Release	1158	t/op/01-parse_ops.t: figure out how to test parsing of pmc constant parameters	testing			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	 Release	1160	t/compilers/tge/grammar.t:  failure in 'two rules of the same name'	testing	1.6.0		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	 Release	1161	pdump - Dumping constants shouldn't unpack the constants	tools		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	 Release	1164	Update Tutorials in http://www.parrotblog.org/	website	1.6.0		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	 Release	1177	test buffer_size in t/pmc/parrotio.t	testing	1.7.0		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	 Release	1178	Test get_fd in t/pmc/parrotio.t	testing	1.7.0		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	 Release	1197	Need some way to copy/rename files from parrot.	core			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	 Release	1205	Test exporting MMD subroutines in t/pmc/exporter.t	testing	1.7.0		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	 Release	1206	Test more return values in t/pmc/io_iterator.t	testing	1.7.0		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	 Release	1223	Parrot_find_name_op() should walk up the scopes	core	1.7.0	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	 Release	1226	Increase code coverage of json	library	1.7.0	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	 Release	1228	src/pmc/integer.c:  Implement Complex and BigInt RHS values for the pow() functions	core	1.7.0		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	 Release	1229	src/pmc/fixedpmcarray.pmc:  get_repr() should use freeze/thaw	core	1.7.0		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	 Release	1233	t/pmc/exporter.t:  Refactor namespace getting code once make_namespace() has been implemented	testing	1.7.0		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	 Release	1238	SDL tests	none	1.7.0		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	 Release	1240	Explicitly clearing to be RO?	none	1.7.0		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	 Release	1241	implementation of is_docs_link() needs more thought	none	1.7.0		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	 Release	1242	t/pmc/io_iterator.t:  Overhaul tests	testing	1.7.0		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	 Release	1251	handle ARM mixed-endian doubles	core	1.7.0		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	 Release	1259	src/debug.c:  Correctly handle comparisons of PMCs with constants	core	1.7.0		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	 Release	1299	create tests for Config/JSON.pbc	testing			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	 Release	1316	t/pmc/timer.t:   add scheduler features to JIT	testing	1.8.0		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	 Release	1318	./t/pmc/complex.t:  Can SKIP-ped tests be unskipped?	testing	1.8.0		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	 Release	1320	./t/pmc/multidispatch.t:  Can test be un-TODO-ed?	testing	1.8.0		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	 Release	1323	t/compilers/imcc/syn/clash.t:  Is test complete?	imcc	1.8.0	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	 Release	1328	announce next release when announcing current release	docs			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
4	 Release	1389	[LHF] Add tests for Plumage's Util.nqp	plumage	1.9.0	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	 Release	1391	[TODO] Generate per-parrot-build GUID/UUID, stored in e.g. interpinfo	build	1.9.0		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	 Release	1437	pbc_dump: don't skip varargs words in -d mode	tools	2.0.0		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	 Release	1438	pbc_dump: Indicate sub/method boundaries in -d mode	tools	2.0.0		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	 Release	1439	pbc_dump: Mark branch targets in -d mode	tools	2.0.0		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	 Release	1442	Sub PMC should support getattribute	none	2.0.0		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
4	 Release	1476	t/compilers/pct/past.t:  Complete desired tests	testing	2.1.0		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	 Release	1479	Improve random-ness of Parrot_range_rand	testing	2.1.0		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	 Release	1615	t/pmc/class.t: implement todo-ed item: classes and methods	core	2.3.0		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	 Release	1617	t/library/p6object.t: implement todo-ed item:  ResizablePMCArray_obj	library	2.3.0		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	 Release	1618	t/oo/metamodel.t:  implement todo-ed item:  tail attribute type	core	2.3.0		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	 Release	1627	tests for Test::More::done_testing	testing	2.3.0		new	2010-05-10T13:40:28Z	2010-05-10T13:42:05Z	Write tests for this new function, added in r46472	dukeleto
4	 Release	1650	Parrot needs Date/DateTime Object	none	master	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	 Release	1683	Key clone and set_pmc are broken	none	2.5.0		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	 Release	1696	Pg.pir should supply error messages	library	2.5.0		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	 Release	1727	Rationalize get/set opcodes	none	2.6.0		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	 Release	1796	PIR heredocs and encodings	core	2.9.0		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	 Release	1805	GC threshold and other values need to be set during configuration	GC	2.8.0		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
4	 Release	1880	Parrot_new should not need to be passed previously-created interps	core	master	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	 Release	1962	:instanceof('Foo') is untested	imcc	2.11.0		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	 Release	2135	Parrot_compile_file should take a compiler argument	none	master		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
4	 Release	2174	Sharpen Support Policy for Windows, Then Implement It!	docs	3.6.0		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	 Release	2177	Access system properties	configure	3.6.0		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	 Release	2195	TODO: integrate ByteBuffer better with FileHandle and Socket	none	3.8.0		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
5	 Release	463	refactor PCT::HLLCompiler's detection of Test::Harness	tools		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	 Release	505	avoid 2038 bug	core			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	 Release	525	smolder: show which tests passed unexpectedly.	none			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	 Release	858	HLL exception handling	core	master	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	 Release	959	Auto-generate #include dependency graphs in docs/ at build.	docs	1.5.0		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
5	 Release	974	Mark publicly exposed functions in src/call/context.c with PARROT_EXPORT tag	core	master	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
5	 Release	1022	PGE::Glob needs docs.	docs	trunk		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	 Release	1150	test all parrot command line flags	testing	trunk	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
5	 Release	1300	sysinfo_s opcode incomplete	none			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
5	 Release	1418	t/src/checkdepend.t should verify PIR/PBC dependencies	testing	2.0.0	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
5	 Release	1830	docs.parrot.org should render POD in files that don't end in .pod	docs	2.8.0	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
7	 Release	220	editor/pir-mode.el should be a generated file	tools			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	 Release	322	Annoying cygwin/mingw cfg readline popup	configure			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
7	 Release	1043	create YAML::Emitter::Syck that does what Data::Dumper does.	none	trunk		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
4	2.6 Release	359	enable UUID for pbc	core			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
3	3.3 Release	2023	Improve triggering of GC in GMS.	GC	master		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	 Release	236	implement pdd14-numbers	core		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	 Release	922	Coding standard tests for examples/ directories without tests	coding_standards	1.4.0	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	 Release	955	need ability to create tempfile from PIR	testing		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	 Release	1282	OS.cwd returns platform specific slashes...	core	trunk	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	 Release	1284	Integer PMC missing math methods	core	master	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	 Release	1639	StringHandle should be updated to use StringBuilder internally.	core	trunk	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	 Release	1726	Missing POD in .pmc files (and a couple of others)	coding_standards	trunk	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
7	 Release	560	When we can't find a library, we shouldn't silently continue and give weird errors later	core	master	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
