HTTP/1.1 -1 Read error in cache disk data: SuccessContent-Type: text/csv; charset="utf-8" Last-Modified: Sat, 22 Jan 2022 07:46:46 GMT Content-length: 77032 Connection: Close Proxy-Connection: Close X-Cache: HIT from web1.osuosl.org Server: ProxyTrack 0.5 (HTTrack 3.49.2) __color__,__group__,ticket,summary,component,version,owner,status,created,_changetime,_description,_reporter 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 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 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,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,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,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 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,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,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 (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,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 # NOTES: this is going to be platform dependent }}} Please implement tests of this functionality.",dukeleto 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,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 # 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 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,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 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,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, 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,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,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,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,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,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,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,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,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 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 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,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,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 1008 1009 Raises SELF to the Cth 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 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,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 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 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,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 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 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 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 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 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,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,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: {{{ Propose adding a PObj flag ""PObj_uses_malloc_attrs_FLAG"" to automatically deallocate Parrot_*_attribute structures in the GC. Thoughts? Alternative: smarten Pmc2C such that it automatically generates mark() and destroy() VTABLEs as necessary. 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,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 = < 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,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,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,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,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,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,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 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 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,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,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,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 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,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 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,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 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,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 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 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,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,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,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,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 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 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 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,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 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,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, 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,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 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,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 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 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,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,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,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 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,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,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,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,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,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, C, etc. This needs to be added to DEPRECATED.pod as an officially experimental feature and, more importantly, needs to be tested.",cotto 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,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 06/03/10 #1258 Method cache not always invalidated core closed wontfix 1.7.0 todo normal jkeenan 06/15/10