HTTP/1.1 -1 Read error in cache disk data: SuccessContent-Type: text/tab-separated-values; charset="utf-8" Last-Modified: Sat, 22 Jan 2022 07:46:47 GMT Content-length: 77014 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 none normal 3.8.0 2.11 new 11/28/21 #5210 How on EARTH Did She Manifest This? none normal 3.8.0