HTTP/1.1 -1 Read error in cache disk data: SuccessContent-Type: application/rss+xml; charset="utf-8" Last-Modified: Sat, 22 Jan 2022 05:42:01 GMT Content-length: 78863 Connection: Close Proxy-Connection: Close X-Cache: HIT from web1.osuosl.org Server: ProxyTrack 0.5 (HTTrack 3.49.2) Parrot: {1} Active Tickets http://trac.parrot.org/parrot/report/1 Trac Report - * List all active tickets by TT#. * Color each row based on type. en-us Parrot http://trac.parrot.org/parrot/chrome/site/parrot_logo.png http://trac.parrot.org/parrot/report/1 Trac v0.11.7 #555: perldoc detection fails if build runs as root Tue, 14 Apr 2009 22:37:53 GMT Tue, 16 Jun 2009 17:23:44 GMT <p> If you build parrot as root, the detection of perldoc will always fail. The reason is that perldoc for security reasons runs as either 'nobody', 'nouser' or uid -2. Therefore, it cannot write to a file given as the argument to perldoc's -d option, when that file is created by File::Temp, since it's owned by root and has mode 0600. </p> <p> It also appears to me that the first part of the perldoc test is ... a little sketchy in how it should behave? capture_output doesn't collect STDERR output, it captures STDOUT output. </p> <p> I know, using &gt; instead of perldoc's -d option is possibly port unfriendly to non-Unix systems, so a better way of testing should probably be found. In my case, I do this for only Unix-y systems, so permit myself some leeway here. </p> <p> Patch to be attached. </p> <p> Regards, </p> <p> - Håvard </p> http://trac.parrot.org/parrot/ticket/555 http://trac.parrot.org/parrot/ticket/555 Report #565: remove optional features from default config, refactor config probes Tue, 21 Apr 2009 13:29:50 GMT Tue, 21 Jul 2009 01:44:16 GMT <p> From <a href="https://trac.parrot.org/parrot/wiki/ParrotRoadmap">https://trac.parrot.org/parrot/wiki/ParrotRoadmap</a>. </p> http://trac.parrot.org/parrot/ticket/565 http://trac.parrot.org/parrot/ticket/565 Report #806: Test.readdir is not skipped on Win32 even though it appears that it should be Fri, 03 Jul 2009 17:06:34 GMT Sat, 19 Dec 2009 00:36:58 GMT <p> t/pmc/os.t:270: </p> <pre class="wiki">skip 'not implemented on windows yet', 1 if ( $MSWin32 &amp;&amp; $MSVC ); </pre><p> It seems like the message doesn't agree with the if clause, because you can also use GCC (MinGW) to compile on Windows. If you compile Parrot on Windows XP SP3 with GCC 4.4 this test will fail (see attached log and smolder report at <a class="ext-link" href="http://smolder.plusthree.com/app/public_projects/report_details/24454"><span class="icon"> </span>http://smolder.plusthree.com/app/public_projects/report_details/24454</a>). However I'm not sure wether the if clause is responsible for this error or GCC 4.4 since other Windows builds compiled with GCC 3.4 pass this test according to smolder (see <a class="ext-link" href="http://smolder.plusthree.com/app/public_projects/report_details/24452"><span class="icon"> </span>http://smolder.plusthree.com/app/public_projects/report_details/24452</a>). </p> http://trac.parrot.org/parrot/ticket/806 http://trac.parrot.org/parrot/ticket/806 Report #816: PMC 'Undef' does not support logical_not Mon, 06 Jul 2009 19:25:27 GMT Mon, 14 Sep 2009 10:19:30 GMT <p> This code in Close: </p> <pre class="wiki"> ok(!(o.flat()), "flat: New object (undef flat) is false"); </pre><p> compiles to: </p> <pre class="wiki"> $P51 = o."flat"() not $P52, $P51 "ok"($P52, "flat: New object (undef flat) is false") </pre><p> And then fails, with: </p> <pre class="wiki">logical_not() not implemented in class 'Undef' </pre><p> Grepping for logical_not in *.pmc gives back only scalar.pmc. </p> <ul><li>While I know that Perl's Undef has 0/nil/false/"" behavior, is that right for Parrot? (To what extent is Undef just a safe Null?) </li></ul><p> </p> <ul><li>Should there even be a 'not' opcode? We've got isfalse. </li></ul><ul><li>Should other pmc types be implementing logical_not? </li></ul><ul><li>Should Undef be a subclass of scalar, and so inherit? </li></ul> http://trac.parrot.org/parrot/ticket/816 http://trac.parrot.org/parrot/ticket/816 Report #781: [CAGE] Copyedit docs/user/pir/* Sun, 21 Jun 2009 18:40:01 GMT Tue, 21 Jul 2009 01:32:37 GMT <p> These introductory docs are in need of some cleanup, copyediting and so forth. In particular: </p> <p> * The docs claim to have last tested the example code with Parrot 0.8.1. The example code should be tested with a current parrot, and the compatible version notices updated. </p> <p> * Several places compare confusingly against the behavior of ancient Parrot or PASM as if the user knows the older behavior already. As these are introductory docs with an audience of users first learning Parrot in the modern era, these comparisons should be removed where unnecessary. Where the comparisons are still valuable (as when explaining what sugar PIR adds over raw PASM), they should be reworded with the target audience in mind. </p> <p> * Some paragraphs and sections appear to have been only partially edited at various times, so that later sentences refer to wording that no longer exists in earlier sentences. For example, I've already fixed one instance in which PMC is defined as "Polymorphic Container" and then a joke is made about M standing for "Magic". </p> <p> * A few places refer to "previous examples" that don't exist in the document; if these refer to other documents that should be read first, this should be explicitly noted. </p> <p> * Finally, a basic English prose copyediting pass should be done so that each document flows well. </p> http://trac.parrot.org/parrot/ticket/781 http://trac.parrot.org/parrot/ticket/781 Report #579: build failure on Solaris/x86 with GCC and native assembler Fri, 24 Apr 2009 12:09:21 GMT Mon, 17 Jan 2011 15:44:07 GMT http://trac.parrot.org/parrot/ticket/579 http://trac.parrot.org/parrot/ticket/579 Report #1088: Multidispatch 'concatenate_str' does not handle LHS undef Sat, 03 Oct 2009 01:23:12 GMT Sat, 03 Oct 2009 01:24:49 GMT <p> This NQP code prints one line, then fails. </p> <pre class="wiki">my $x; my $z := '&gt;' ~ $x; say($z); my $y := $x ~ '&lt;'; say($y); </pre><p> The error: </p> <pre class="wiki">Multiple Dispatch: No suitable candidate found for 'concatenate_str', with signature 'PSP-&gt;P' current instr.: '_block11' pc 50 (EVAL_3:27) called from Sub 'parrot;PCT;HLLCompiler;eval' pc 982 (src/PCT/HLLCompiler.pir:548) </pre><p> The generated PIR is <tt>concat $P0, $P1, $P2</tt> for the constant-on-the-left case. But NQP generates <tt>concat $P0, $P1, '&lt;'</tt> for the constant-on-the-right case. It is this case, with an undef first argument, that fails. </p> <p> Changing the constant to a register does not affect the behavior. Storing an empty string in place of the left-hand undef does resolve the problem. I believe the multidispatch doesn't know what to do with undef. </p> http://trac.parrot.org/parrot/ticket/1088 http://trac.parrot.org/parrot/ticket/1088 Report #1089: rewrite tests for resizableintegerarray as PIR, plus add new tests Sun, 04 Oct 2009 01:41:47 GMT Sat, 21 Aug 2010 18:59:47 GMT <p> <a class="ext-link" href="http://nopaste.snit.ch/18199"><span class="icon"> </span>http://nopaste.snit.ch/18199</a> </p> <p> Also includes patch to make sure zero-fill always applies to new elements, although this behaviour could be debated. (IMO zero-fill belongs at the same semantic level as push, pop, shift and unshift. Since resizableintegerarray is (a) derived from fixedintegerarray and (b) does these other things, it seems to me a reasonable place to implement the zero-fill behaviour too.) </p> http://trac.parrot.org/parrot/ticket/1089 http://trac.parrot.org/parrot/ticket/1089 Report #928: Probable edge-condition bug in PBC file generation Sun, 16 Aug 2009 17:48:59 GMT Sun, 16 Aug 2009 17:48:59 GMT <p> For some time now (weeks), I've been dealing with an intermittent bug (apparently) with PBC file generation at the bottom of the PGE/NQP tool chain. </p> <p> I'm working on a language compiler, using PGE+NQP with the generated language directory structure provided by the standard scripts. </p> <p> At odd intervals, I'll make my compiler, and when I try to run "close.pbc" I'll get something like this: </p> <pre class="wiki">CONSTANT_close.pir: Size in directory 231772 doesn't match size 0 at offset 0x38010 PackFile_unpack segment 'FIXUP_close.pir' directory length 6236 length in file 6236 needed 6224 for unpack PackFile_unpack segment 'CONSTANT_close.pir' directory length 0 length in file 0 needed 8 for unpack PackFile_unpack segment 'PIC_idx_close.pir' directory length 0 length in file 0 needed 4 for unpack PackFile_unpack segment 'BYTECODE_close.pir_DB' directory length 0 length in file 0 needed 8 for unpack Illegal fixup offset (2) in enum_fixup_sub </pre><p> Except that the integer literals are usually different. </p> <h2 id="Workaround">Workaround</h2> <p> I have noticed that the problem seems to relate to the code being assembled. As a result, I find that if I doubly-include some .pir file the problem goes away - until the next time. I have a set of library modules that I jam together into a single file for final assembly: </p> <pre class="wiki">COMPILER_LIBS_PIR := \ library/close/Compiler/Array.pir \ library/close/Compiler/Config.pir \ library/close/Compiler/Dumper.pir \ library/close/Compiler/Lookups.pir \ library/close/Compiler/Messages.pir \ library/close/Compiler/MessageVisitor.pir \ library/close/Compiler/Namespaces.pir \ library/close/Compiler/Node.pir \ library/close/Compiler/PrettyPrintVisitor.pir \ library/close/Compiler/Scopes.pir \ library/close/Compiler/String.pir \ library/close/Compiler/SymbolLookupVisitor.pir \ library/close/Compiler/SymbolResolutionVisitor.pir \ library/close/Compiler/Symbols.pir \ library/close/Compiler/TypeResolutionVisitor.pir\ library/close/Compiler/Types.pir \ library/close/Compiler/Types.pir \ library/close/Compiler/Visitor.pir </pre><p> These files are concatenated into a single <tt>src/gen_library.pir</tt> that is included into my close.pir compiler driver. </p> <p> If I pick one - Types.pir in this case - and double-include it, it pretty consistently changes whatever is happening enough that the generated .PBC file becomes valid again. It is for this reason that I suspect the problem is some kind of "edge case" - maybe a page boundary, or some 16-bit -ism. I have no real evidence, though. </p> http://trac.parrot.org/parrot/ticket/928 http://trac.parrot.org/parrot/ticket/928 Report #864: on Win32 binary install, parrot_config.exe contains false installation path Mon, 20 Jul 2009 14:39:58 GMT Tue, 07 Sep 2010 20:42:42 GMT <p> Parrot was downloaded and installed as a binary from sourceforge. After installation, it doesn't register the correct installation path: </p> <p> PS D:\Erez\dev\Parrot-1.3.0\bin&gt; .\parrot_config.exe build_dir C:/fperrad/Parrot/RELEASE_1_3_0 </p> <p> Attached full parrot_config.exe --dump </p> http://trac.parrot.org/parrot/ticket/864 http://trac.parrot.org/parrot/ticket/864 Report #787: add vtables for: get_pmc_keyed{_int,_str,}_lvalue ; and similarly for slice Wed, 24 Jun 2009 15:56:47 GMT Fri, 23 Oct 2009 15:13:24 GMT <p> See discussion starting at: </p> <blockquote> <p> <a class="ext-link" href="http://irclog.perlgeek.de/parrot/2009-06-23#i_1260446"><span class="icon"> </span>http://irclog.perlgeek.de/parrot/2009-06-23#i_1260446</a> </p> </blockquote> <p> 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. </p> http://trac.parrot.org/parrot/ticket/787 http://trac.parrot.org/parrot/ticket/787 Report #1795: pcre_compile picked wrong function signature letter. Sun, 19 Sep 2010 22:42:31 GMT Tue, 21 Sep 2010 01:53:12 GMT <p> The pcre_compile library function takes a const char ** parameter which SHOULD have been matched by a capital 'V' in the signature but a somewhat similar capital 'B' was picked instead resulting in the error string not being passed back properly. </p> <p> The patches have been tested on windows and ubuntu. Note that the changes to src/nci/extra_thunks.c are generated by tools/dev/mk_nci_thunks.pl but are included here as the .c file is under version control and I don't think it's genned by the Makefile. </p> <p> See also the irc discussion here: <a class="ext-link" href="http://irclog.perlgeek.de/parrot/2010-09-18#i_2840413"><span class="icon"> </span>http://irclog.perlgeek.de/parrot/2010-09-18#i_2840413</a> </p> http://trac.parrot.org/parrot/ticket/1795 http://trac.parrot.org/parrot/ticket/1795 Report #706: Out of mem (PASM, compreg, invokecc) Tue, 26 May 2009 12:32:49 GMT Wed, 08 Sep 2010 21:39:41 GMT <p> Attached test use compreg P1, "PASM" and invokecc it 100,000 times. On i386-MSWin32 (mingw32) it consumes 66MB of RAM with r39159 (107 MB of RAM with r11704). </p> <p> If you replace "lt I20, 100000, NEXT" to "lt I20, 10000000, NEXT" it fails with "Parrot VM: PANIC: Out of mem! C file src\gc\alloc_memory.c, line 142". </p> <pre class="wiki">set S28, "" concat S28, ".pcc_sub :anon _indi:\n" concat S28, " get_params \"(0,0,0)\", I0, I1, I2\n" concat S28, " set I3, 23\n" concat S28, " set_returns \"(0)\", I3\n" concat S28, " returncc\n" compreg P1, "PASM" set I20, 0 NEXT: set_args "(0)",S28 get_results "(0)", P0 invokecc P1 needs_destroy P0 sweep 0 inc I20 lt I20, 100000, NEXT # sleep 10 end </pre> http://trac.parrot.org/parrot/ticket/706 http://trac.parrot.org/parrot/ticket/706 Report #697: Parrot::Test "language_output_is" fails in installed parrot. Thu, 21 May 2009 15:52:18 GMT Sat, 02 Jul 2011 22:24:16 GMT <p> In <a class="ext-link" href="http://code.google.com/p/partcl/"><span class="icon"> </span>partcl</a>, any of the perl based tests are failing: </p> <pre class="wiki">$ prove t/cmd_cd.t [17:47:47] t/cmd_cd.t .. 1/3 # Failed test 'cd too many args' # at t/cmd_cd.t line 17. # got: '' # expected: 'wrong # args: should be "cd ?dirName?" # ' # '/usr/local/lib/parrot/1.2.0/tools/parrot ........../tcl.pbc t/cmd_cd_1.tcl' failed with exit code -1 </pre><p> Looks like the path to parrot is wrong (This is on feather), and the path to tcl.pbc is wrong, assuming those ...'s are literal. </p> http://trac.parrot.org/parrot/ticket/697 http://trac.parrot.org/parrot/ticket/697 Report #1480: Preprocessing using parrot -E fails Thu, 25 Feb 2010 10:36:11 GMT Fri, 14 May 2010 22:19:41 GMT <p> In revision 44472 preprocessing fails $ echo ".HLL 'test1'" | ./parrot -E - Segmentation fault </p> <p> In revision 44371 (used by rakudo) preprocessing seems to replace .HLL keyword with garbage (I could be wrong): $ (echo ".HLL 'test1'"; echo ".HLL 'test2'"; echo ".HLL 'test3'") | ./parrot -E - ��� 'test1' 'test1' 'test2' 'test2' 'test3' </p> http://trac.parrot.org/parrot/ticket/1480 http://trac.parrot.org/parrot/ticket/1480 Report #1109: MultiSub PMC does not support get_namespace method Tue, 13 Oct 2009 20:50:29 GMT Tue, 13 Oct 2009 20:50:29 GMT <p> A multisub PMC cannot be said to "subclass" the sub PMC, since they don't support the same methods. </p> <p> In my case, calling <tt>get_namespace</tt> to discover the origin of the PMC, fails on multisubs. </p> <p> Looking in the code, the multisub.pmc seems to be "a ResizablePMCArray that supports invocation" rather than "a sub that supports dispatch". </p> http://trac.parrot.org/parrot/ticket/1109 http://trac.parrot.org/parrot/ticket/1109 Report #1108: Subs in "built-in PMC" namespaces are treated as PMC methods Tue, 13 Oct 2009 20:30:07 GMT Tue, 13 Oct 2009 20:30:07 GMT <p> A sub that is declared in a namespace that matches the name of a builtin PMC is automatically dispatched as a method: </p> <pre class="wiki">$ cat x.pir .sub main $P0 = new 'Integer' $P0.'foo'() .end .namespace ['Integer'] .sub 'foo' say 'foo' .end $ ./parrot x.pir foo $ </pre><p> While this *does* make it possible to override builtin methods, it also makes it impossible to write "class methods" that translate behaviors, since the presence or absence of the <tt>:method</tt> attribute on the sub is ignored. </p> <p> This behavior does not happen with non-builtin classes: </p> <pre class="wiki">$ cat y.pir .sub main $P1 = newclass ['XYZ'] $P0 = new ['XYZ'] $P0.'foo'() .end .namespace ['XYZ'] .sub 'foo' say 'foo' .end $ ./parrot y.pir Method 'foo' not found for invocant of class 'XYZ' current instr.: 'main' pc 11 (y.pir:4) $ </pre> http://trac.parrot.org/parrot/ticket/1108 http://trac.parrot.org/parrot/ticket/1108 Report #1718: `NameSpace.add_sub($name, &sub)` does not honor given name for methods Sun, 25 Jul 2010 16:42:44 GMT Sun, 25 Jul 2010 16:42:44 GMT <p> The namespace.add_sub method accepts a name parameter for the sub object. </p> <p> When passed a sub object that has the :method flag set, the given name parameter is ignored in favor of the name compiled into the sub object. </p> <pre class="wiki">(git:master) ~/kakapo$ cat src/Pmc/test.nqp module A { method a() { say("a"); } } class B { INIT { my $A := pir::get_hll_namespace__pp( pir::split('::', 'A') ); my &amp;a := pir::inspect__pps($A, 'methods')&lt;a&gt;; my $B := pir::get_hll_namespace__pp( pir::split('::', 'B') ); $B.add_sub('foo', &amp;a); } } my $b := B.new; $b.a; $b.foo;(git:master) ~/kakapo$ parrot-nqp src/Pmc/test.nqp a Method 'foo' not found for invocant of class 'B' current instr.: '_block11' pc 95 (EVAL_1:34) called from Sub 'parrot;HLL;Compiler;_block470' pc 24271 (ext/nqp-rx/src/stage0/HLL-s0.pir:7848) called from Sub 'parrot;HLL;Compiler;eval' pc 24151 (ext/nqp-rx/src/stage0/HLL-s0.pir:0) called from Sub 'parrot;PCT;HLLCompiler;evalfiles' pc 1500 (compilers/pct/src/PCT/HLLCompiler.pir:761) called from Sub 'parrot;PCT;HLLCompiler;command_line' pc 1702 (compilers/pct/src/PCT/HLLCompiler.pir:869) called from Sub 'parrot;NQP;Compiler;main' pc 88625 (ext/nqp-rx/src/stage0/NQP-s0.pir:24151) </pre><p> See in particular the code at <a class="ext-link" href="http://trac.parrot.org/parrot/browser/tags/RELEASE_2_6_0/src/pmc/namespace.pmc#L173"><span class="icon"> </span>namespace.pmc, line 173</a> which I think is a bug. </p> http://trac.parrot.org/parrot/ticket/1718 http://trac.parrot.org/parrot/ticket/1718 Report #1309: perl Configure.pl finds icu but doesn't set it up Thu, 19 Nov 2009 00:24:20 GMT Fri, 20 May 2011 02:07:24 GMT <p> perl Configure.pl finds icu during config but doesn't set you up to use it. </p> <p> perl Configure.pl says: ... auto::icu - Is ICU installed....................................yes. </p> <p> But during make, the following error is reported: Invoking Parrot to generate runtime/parrot/include/config.fpmc --cross your fingers ./miniparrot config_lib.pasm &gt; runtime/parrot/include/config.fpmc ./miniparrot: error while loading shared libraries: libicuuc.so.42: cannot open shared object file: No such file or directory gmake: *** [runtime/parrot/include/config.fpmc] Error 127 </p> http://trac.parrot.org/parrot/ticket/1309 http://trac.parrot.org/parrot/ticket/1309 Report #959: Auto-generate #include dependency graphs in docs/ at build. Sun, 30 Aug 2009 15:41:16 GMT Sun, 20 Feb 2011 22:34:35 GMT <p> 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. </p> <p> 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. </p> <p> Any reasons why this is unnecessary or impossible? </p> http://trac.parrot.org/parrot/ticket/959 http://trac.parrot.org/parrot/ticket/959 Report #883: Use the right PTR2INTVAL() macro, not (INTVAL) for type conversion Tue, 28 Jul 2009 14:37:09 GMT Mon, 06 Dec 2010 07:08:05 GMT <p> As discussed on #parrot, see <a class="ext-link" href="http://irclog.perlgeek.de/parrot/2009-07-28#i_1349222"><span class="icon"> </span>http://irclog.perlgeek.de/parrot/2009-07-28#i_1349222</a> for more information. </p> <p> We should change more place to use PTR2INTVAL() marco, not (INTVAL), see <a href="https://trac.parrot.org/parrot/changeset/40306/">https://trac.parrot.org/parrot/changeset/40306/</a> for an example. </p> http://trac.parrot.org/parrot/ticket/883 http://trac.parrot.org/parrot/ticket/883 Report #879: isa does not take (correctly) namespace, pmcarray,stringarray Tue, 28 Jul 2009 08:35:10 GMT Tue, 28 Jul 2009 19:36:24 GMT <p> When running this code isa returns true while it should return false </p> <p> $P1 = #object of type 'FOO::BAR::TEST' </p> <p> $P3 = get_hll_namespace [ 'FOO';'BAR2';'Object'] </p> <p> $I1 = isa $P1,$P3 </p> <p> returns true must be false </p> <p> $P3 = string array with elements "FOO","BAR","TEST" </p> <p> $I1 = isa $P1,$P3 </p> <p> returns fasle must be true </p> <p> I solved this problem by replacing the </p> <blockquote> <p> VTABLE INTVAL isa_pmc(PMC *lookup) </p> </blockquote> <p> function with the following code </p> <blockquote> <p> VTABLE INTVAL isa_pmc(PMC *lookup) { </p> </blockquote> <blockquote> <blockquote> <p> Hash * const isa_hash = SELF-&gt;vtable-&gt;isa_hash; </p> </blockquote> </blockquote> <p> + PMC *classobj; </p> <blockquote> <p> STRING *pmc_name; </p> </blockquote> <blockquote> <p> if (PMC_IS_NULL(lookup)) </p> </blockquote> <blockquote> <blockquote> <p> return 0; </p> </blockquote> </blockquote> <p> + classobj = Parrot_oo_get_class(interp, lookup); </p> <p> + if (PMC_IS_NULL(classobj)) </p> <p> + return 0; </p> <p> -+ pmc_name = VTABLE_get_string(interp, classobj); </p> <blockquote> <p> if (!isa_hash) </p> </blockquote> <blockquote> <blockquote> <p> return Parrot_str_equal(interp, SELF-&gt;vtable-&gt;whoami, pmc_name); </p> </blockquote> </blockquote> <blockquote> <p> /* RT <a class="missing ticket">#46665</a> - walk mro */ </p> </blockquote> <blockquote> <p> return parrot_hash_exists(INTERP, isa_hash, (void*)pmc_name); </p> </blockquote> <blockquote> <p> } </p> </blockquote> <p> I'am not sure it's completely correct, because i do not know how the mro isa_hash is build up. </p> <p> Adding this code will make 2 test failing in the t/tests/objects.t test set, because there are more bugs present, I made seperate ticket for that one </p> http://trac.parrot.org/parrot/ticket/879 http://trac.parrot.org/parrot/ticket/879 Report #1494: factorial example in languages/squaak gives incorrect result Thu, 04 Mar 2010 05:48:50 GMT Tue, 17 Aug 2010 21:15:08 GMT <p> [squaak]% cat examples/factorial.sq # Copyright (C) 2008, Parrot Foundation. # $Id: factorial.sq 36833 2009-02-17 20:09:26Z allison $ </p> <p> print("Please enter number: ") x = read() </p> <p> sub factorial(n) </p> <blockquote> <p> ## test for &lt; 2 because all numbers are represented by ## floating-point numbers, and equality checks on those ## do not work (yet?) if n &lt; 2 then </p> <blockquote> <p> return 1 </p> </blockquote> <p> else </p> <blockquote> <p> return n * factorial(n - 1) </p> </blockquote> <p> end </p> </blockquote> <p> end </p> <p> print("factorial of ", x, " is: ", factorial(x)) </p> <p> [squaak]% ./installable_squaak examples/factorial.sq Please enter number: 10 factorial of 10 </p> <blockquote> <p> is: 1 </p> </blockquote> <p> [squaak]% ./installable_squaak examples/factorial.sq Please enter number: 10 factorial of 10 </p> <blockquote> <p> is: 1 </p> </blockquote> <p> [squaak]% pwd /home/parthm/src/parrot-2.1.1/examples/languages/squaak [squaak]% which parrot /home/parthm/src/parrot-2.1.1/parrot [squaak]% </p> <p> It seems (n &lt; 2) is always returning true. Below are the results with prints added. </p> <p> [squaak]% cat fac2.sq # Copyright (C) 2008, Parrot Foundation. # $Id: factorial.sq 36833 2009-02-17 20:09:26Z allison $ </p> <p> print("Please enter number: ") x = read() </p> <p> print("you entered:", x) </p> <p> sub factorial(n) </p> <blockquote> <p> ## test for &lt; 2 because all numbers are represented by ## floating-point numbers, and equality checks on those ## do not work (yet?) </p> </blockquote> <blockquote> <p> print("got: ", n) print("is n &lt; 2:", n &lt; 2) </p> </blockquote> <blockquote> <p> if n &lt; 2 then </p> <blockquote> <p> print("return 1") return 1 </p> </blockquote> <p> else </p> <blockquote> <p> print("return n * fac(n-1)") return n * factorial(n - 1) </p> </blockquote> <p> end </p> </blockquote> <p> end </p> <p> print("factorial of ", x, " is: ", factorial(x)) </p> <p> [squaak]% ./installable_squaak fac2.sq Please enter number: 10 you entered:10 </p> <p> got: 10 </p> <p> is n &lt; 2:1 return 1 factorial of 10 </p> <blockquote> <p> is: 1 </p> </blockquote> <p> [squaak]% </p> http://trac.parrot.org/parrot/ticket/1494 http://trac.parrot.org/parrot/ticket/1494 Report #799: Configure should explicitly check for symbolic link capability on Linux Sun, 28 Jun 2009 23:46:01 GMT Sat, 02 Jul 2011 20:42:13 GMT <p> I'm running linux for Parrot work, but the underlying filesystem is NTFS, mounted r/w. This means that Configure.pl will detect my system as being linux, but it also means that symlinks don't work in the build area (ironically, they DO work in /usr/**, but not in /home/austin/parrot). When evaluating capabilities, Configure.pl should check to ensure that symlinks work. Presently, the build fails when trying to link a versioned .so to an unversioned on inside blib/lib. (I work around this by cp'ing it, and restart the make.) </p> http://trac.parrot.org/parrot/ticket/799 http://trac.parrot.org/parrot/ticket/799 Report #1816: Graph images on smolder.parrot.org are corrupted Tue, 05 Oct 2010 18:14:31 GMT Tue, 05 Oct 2010 18:14:31 GMT <p> <a class="ext-link" href="http://smolder.parrot.org/app/graphs/start/5"><span class="icon"> </span>Example</a> </p> <p> I've poked at the images a bit to try and figure out what's wrong - there's a \x0D\x0A sequence missing at the start of the PNG (manually putting these in made the image display correctly) and there's some HTTP header junk at the bottom (probably related): </p> <pre class="wiki">IEND HTTP/1.1 500 Internal Server Error Connection: close Date: Tue, 05 Oct 2010 18:02:59 GMT Content-Length: 1 </pre> http://trac.parrot.org/parrot/ticket/1816 http://trac.parrot.org/parrot/ticket/1816 Report #1799: Allow for rw bffer to be passed by nci 'B' signature. Thu, 23 Sep 2010 02:00:55 GMT Thu, 23 Sep 2010 02:18:20 GMT <p> This came up in a discussion between me, the reporter, and whiteknight over IRC. It appears that nci does not have a good way of passing a rw buffer of data to an external function and retrieving it later and whiteknight had some ideas about how to add the missing functionality. The functionality provided by the nci 'B' signature comes close but will discard changes to the data before returning. </p> <p> This ticket is being posted at Mr Whitworth's request and if I have any misunderstanding about what was wanted please feel free to add correction comments etc. A link to the IRC discussion is here <a class="ext-link" href="http://irclog.perlgeek.de/parrot/2010-09-18#i_2840413"><span class="icon"> </span>http://irclog.perlgeek.de/parrot/2010-09-18#i_2840413</a>. </p> http://trac.parrot.org/parrot/ticket/1799 http://trac.parrot.org/parrot/ticket/1799 Report #1769: Getting get_integer() not implemented in class 'XXXXX' when using "morph" Sat, 04 Sep 2010 02:09:30 GMT Sun, 05 Sep 2010 14:54:24 GMT <p> Using the following code its enough to trigger the get_integer error: </p> <pre class="wiki">.namespace[] .sub main .local pmc obja, objb $P0 = newclass 'Object1' $P1 = newclass 'Object2' obja = new $P0 objb = new $P1 morph obja, objb .return() .end </pre> http://trac.parrot.org/parrot/ticket/1769 http://trac.parrot.org/parrot/ticket/1769 Report #777: .HLL should not case-mangle its arg Fri, 19 Jun 2009 17:16:44 GMT Tue, 11 Jan 2011 10:21:22 GMT <p> In many cases, .HLL 'Donut' is the same as .HLL 'donut'; however, in some cases (e.g. ParrotInterpreter.hll_map()), it's not. </p> <p> I recommend that to avoid any potential for confusion, we remove any case mangling and treat the HLL exactly specified in the directive. </p> <p> If we get consensus on this, we can add a deprecation notice for 1.4 and change it immediately after release. </p> http://trac.parrot.org/parrot/ticket/777 http://trac.parrot.org/parrot/ticket/777 Report #1743: N<note> formatting code is unsupported in HTML output Sat, 14 Aug 2010 22:29:11 GMT Sun, 30 Jan 2011 04:21:26 GMT <p> The N&lt;footnote&gt; formatting code, used in PIR and PCT books and other drafts, is currently rendered as unmarked inline text. The use of this code comes from its support in PseudoPOD. It is also supported in POD 6. </p> <p> I think this tag should be rendered either as: </p> <ol class="loweralpha"><li>a tooltip </li><li>at the end of the section which it is defined </li><li>at the end of the page </li></ol><p> I like the section note option best. I feel like having these at the end of the page makes them difficult to use, since most chapters are many screens long. </p> http://trac.parrot.org/parrot/ticket/1743 http://trac.parrot.org/parrot/ticket/1743 Report #1527: Despite pdd15, add_role ignores role attributes Tue, 23 Mar 2010 12:41:28 GMT Tue, 23 Mar 2010 12:41:28 GMT <p> PDD15 promises that role attributes are merged into any class the role is composed into. </p> <p> However, class.pmc calls Parrot_ComposeRole, which only deals with methods and updates the 'roles' list. </p> http://trac.parrot.org/parrot/ticket/1527 http://trac.parrot.org/parrot/ticket/1527 Report #1702: Cannot resume dead coroutine Sat, 03 Jul 2010 16:30:10 GMT Wed, 21 Jul 2010 07:14:56 GMT <pre class="wiki"> .sub 'MyCoro' .yield(1) .yield(2) .yield(3) .return(4) .end .sub 'main' :main $I0 = MyCoro() say $I0 $I0 = MyCoro() say $I0 $I0 = MyCoro() say $I0 $I0 = MyCoro() say $I0 $I0 = MyCoro() say $I0 $I0 = MyCoro() say $I0 $I0 = MyCoro() say $I0 .end </pre><p> prints: </p> <pre class="wiki">1 2 3 4 Cannot resume dead coroutine. current instr.: 'main' pc 35 (coro.pir:11) </pre><p> on parrot-2.5.0-devel on Mac OS X 10.5.8. </p> <p> I think the subroutine should restart, since the user of the sub doesn't care whether it's a coroutine or not. </p> http://trac.parrot.org/parrot/ticket/1702 http://trac.parrot.org/parrot/ticket/1702 Report #1645: Request for another overload to 'not' opcode. Mon, 17 May 2010 15:39:48 GMT Sun, 20 Nov 2011 10:05:38 GMT <p> The docs page: <a class="ext-link" href="http://docs.parrot.org/parrot/latest/html/src/ops/cmp.ops.html"><span class="icon"> </span>http://docs.parrot.org/parrot/latest/html/src/ops/cmp.ops.html</a> </p> <p> ...mentions 2 overloads for opcode 'not': </p> <pre class="wiki">not(out INT, in INT) not(out PMC, invar PMC) </pre><p> It would be sweet to have another overload for opcode 'not'. </p> <pre class="wiki">not(out INT, invar PMC) </pre><p> This would avoid the need for boxing of the operands in many cases. </p> http://trac.parrot.org/parrot/ticket/1645 http://trac.parrot.org/parrot/ticket/1645 Report #1306: Various failures on bogus string used as argname (1.7) Wed, 18 Nov 2009 03:24:17 GMT Wed, 18 Nov 2009 03:24:17 GMT <p> I've got the following test setup (using Kakapo libs): </p> <pre class="wiki">method test_initializer() { my $obj := Kakapo::Test::Aclass.new(:a('albatross'), :b('byzantine'), :c('chrysanthemum')); self.assert_that('test object.a', $obj.a, is("albatross")); self.assert_that('test object.b', $obj.b, is("byzantine")); } module Kakapo::Test::Aclass; use( 'P6object'); extends( 'Kakapo::Object'); has( 'b a'); </pre><p> The upshot of this is that accessor methods called Kakapo::Test::Aclass::a() and ...b() are mechanically generated and compiled (using plain old NQP+PIR in 1.7). </p> <p> The Kakapo::Object base class contains, among other things, this code: </p> <pre class="wiki">method new(*@pos, *%named) { say("New!"); Dumper::DUMP_(self, @pos, %named); my $class := Opcode::getattribute(self.HOW, 'parrotclass'); my $new_object := Opcode::new($class); # NB: I'm not flattening the params, because that forces # everybody to do call_method or in-line pir to pass # along flat args. $new_object.init_(@pos, %named); return $new_object; } </pre><p> As far as I can tell, the standard P6object functionality is working. The class is set up by Kakapo as a child of Kakapo::Object, and the Kakapo::Object::new() method is being called. Here is the output: </p> <pre class="wiki">New class: Aclass parent: Kakapo::Object Done New! "$VAR" =&gt; ResizablePMCArray (size:3) [ undef, ResizablePMCArray (size:0) [ ], Hash { "(0x0011)" =&gt; "albatross", "Global" =&gt; "byzantine", "new" =&gt; "chrysanthemum" } ] No accessor defined for attribute 'Global'. current instr.: 'parrot;Opcode;die' pc 28248 (library/kakapo_test.pir:11177) called from Sub 'parrot;Kakapo;Object;_block307' pc 8792 (library/kakapo_test.pir:3423) called from Sub 'parrot;Kakapo;Object;_block285' pc 8745 (library/kakapo_test.pir:3403) called from Sub 'parrot;Kakapo;Object;init_' pc 8620 (library/kakapo_test.pir:3347) called from Sub 'parrot;Kakapo;Object;new' pc 9090 (library/kakapo_test.pir:3531) called from Sub 'parrot;Kakapo;Test;Class;Attributes;test_initializer' pc 462 (t/Classes/Attributes.pir:128) </pre><p> Until today, the failure was not "No accessor defined" but rather an assert failure on an invalid string. </p> <p> This is the generated PIR for the <tt>new</tt> call: </p> <pre class="wiki"> .lex "self", self get_hll_global $P50, ["Kakapo";"Test"], "Aclass" $P51 = $P50."new"("albatross" :named("a"), "byzantine" :named("b"), "chrysanthemum" :named("c")) .lex "$obj", $P51 </pre><p> I don't have a good steps-to-reproduce, because the Kakapo library is somewhat large, and a bit of a nest of snakes as far as isolating behaviors. </p> <p> What's more, the aberrant behavior appears to be related somehow to calling with named parameters. Since 1.8 is the pcc refactor release, I think I can predict the response of the dev team. But I wanted to document this now, just in case. </p> http://trac.parrot.org/parrot/ticket/1306 http://trac.parrot.org/parrot/ticket/1306 Report #1164: Update Tutorials in http://www.parrotblog.org/ Fri, 30 Oct 2009 13:31:22 GMT Sun, 12 Sep 2010 01:24:06 GMT <p> <a class="ext-link" href="http://www.reddit.com/r/coding/comments/9yobp/parrot_episode_1_introduction_building_a_compiler/"><span class="icon"> </span>http://www.reddit.com/r/coding/comments/9yobp/parrot_episode_1_introduction_building_a_compiler/</a> </p> <p> That's all folks! </p> http://trac.parrot.org/parrot/ticket/1164 http://trac.parrot.org/parrot/ticket/1164 Report #1641: iseq does not support the same type of operands as the math operators Sat, 15 May 2010 23:10:34 GMT Sat, 15 May 2010 23:14:21 GMT <p> # Within a method ... This doesn't work. </p> <pre class="wiki">$I0 = 1 $P0 = getattribute self, 'someIntField' $I1 = iseq $I0, $P0 </pre><p> # Error message: # error:imcc:The opcode 'iseq_i_i_p' (iseq&lt;3&gt;) was not found. Check the type and number of the arguments </p> <p> There is already support for math operands with mixed types, so allowing iseq to have the same behavior is good for consistency: </p> <pre class="wiki"># Test by bacek ~/src/parrot (ops_pct_local)$ cat t.pir .sub "main" $N0 = 40.0 $I0 = 2 $N1 = $N0 + $I0 say $N1 .end ~/src/parrot (ops_pct_local)$ ./parrot t.pir 42 </pre> http://trac.parrot.org/parrot/ticket/1641 http://trac.parrot.org/parrot/ticket/1641 Report #1340: Parrot may end up calling dlclose() twice with the same handle, ref. t/pmc/threads.t test 14 Mon, 30 Nov 2009 15:23:58 GMT Tue, 01 Dec 2009 14:19:54 GMT <p> I have been puzzled by why the last test in t/pmc/threads.t (number 14 at last count) fails on all the NetBSD systems I'm testing on. </p> <p> It turns out that the reason is that this particular test causes parrot to call dlclose() twice with the same handle value, and ld.elf_so has a check for whether the given handle is "valid", which it isn't in the second instance, causing spurious output from the test, which in turns causes the test to fail, like so: </p> <pre class="wiki">not ok 14 - CLONE_CODE|CLONE_GLOBALS|CLONE_HLL|CLONE_LIBRARIES - TT \# 1250 # Failed test 'CLONE_CODE|CLONE_GLOBALS|CLONE_HLL|CLONE_LIBRARIES - TT \# 1250' # at t/pmc/threads.t line 831. # got: 'in thread: # 0 # ok (equal) # 42 # in main: # 0 # ok (equal) # 42 # Invalid shared object handle 0xeffed600 # ' # expected: 'in thread: # 0 # ok (equal) # 42 # in main: # 0 # ok (equal) # 42 # ' # Looks like you failed 1 test of 14. </pre><p> The following GDB session shows that this is the problem: </p> <pre class="wiki">granny-smith: {130} gdb ./parrot GNU gdb 6.5 Copyright (C) 2006 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "powerpc--netbsd"... (gdb) b dlclose Function "dlclose" not defined. Make breakpoint pending on future shared library load? (y or [n]) y Breakpoint 1 (dlclose) pending. (gdb) r t/pmc/threads_14.pir Starting program: /usr/users/he/parrot/parrot t/pmc/threads_14.pir Breakpoint 2 at 0xefff594c Pending breakpoint "dlclose" resolved in thread: 0 ok (equal) 42 Breakpoint 2, 0xefff594c in dlclose () from /usr/libexec/ld.elf_so (gdb) where #0 0xefff594c in dlclose () from /usr/libexec/ld.elf_so #1 0xefd65f30 in Parrot_dlclose (handle=0xeffed600) at config/gen/platform/generic/dl.c:96 #2 0xefe6e274 in Parrot_ParrotLibrary_destroy (interp=0xee8031e0, pmc=0xee7d3e60) at ./src/pmc/parrotlibrary.pmc:65 #3 0xefd6a204 in Parrot_pmc_destroy (interp=0xee8031e0, pmc=0xee7d3e60) at src/pmc.c:116 #4 0xefd092d0 in free_pmc_in_pool (interp=0xee8031e0, pool_unused=0xee710150, p=0xee7d3e60) at src/gc/mark_sweep.c:602 #5 0xefd083d8 in Parrot_gc_sweep_pool (interp=0xee8031e0, pool=0xee710150) at src/gc/mark_sweep.c:331 #6 0xefd071f0 in gc_ms_finalize (interp=0xee8031e0, mem_pools=0xee807f60) at src/gc/gc_ms.c:232 #7 0xefd07490 in gc_ms_mark_and_sweep (interp=0xee8031e0, flags=4) at src/gc/gc_ms.c:161 #8 0xefd03e74 in Parrot_gc_mark_and_sweep (interp=0xee8031e0, flags=4) at src/gc/api.c:856 #9 0xefd1aab8 in Parrot_really_destroy (interp=0xee8031e0, exit_code_unused=0, arg_unused=0x0) at src/interp/inter_create.c:337 #10 0xefd79e58 in pt_thread_join (parent=0xee803100, tid=1) at src/thread.c:1383 #11 0xeff16fc8 in Parrot_ParrotRunningThread_nci_join (interp=0xee803100, pmc=0xee8afbac) at ./src/pmc/parrotrunningthread.pmc:108 #12 0xefe7d4a0 in Parrot_NCI_invoke (interp=0xee803100, pmc=0xee8afbac, next=0xee7193d0) at ./src/pmc/nci.pmc:338 #13 0xefc5719c in Parrot_callmethodcc_p_sc (cur_opcode=0xee7193c4, interp=0xee803100) at src/ops/object.ops:74 #14 0xefd6e3f4 in runops_slow_core (interp=0xee803100, runcore=0xee8ee5c0, pc=0xee7193c4) at src/runcore/cores.c:848 #15 0xefd6bae8 in runops_int (interp=0xee803100, offset=64) at src/runcore/main.c:546 #16 0xefd1c8bc in runops (interp=0xee803100, offs=64) at src/call/ops.c:99 #17 0xefd1225c in Parrot_pcc_invoke_from_sig_object (interp=0xee803100, sub_obj=0xee8b1d94, call_object=0xee8b1dbc) at src/call/pcc.c:297 #18 0xefd123c4 in Parrot_pcc_invoke_sub_from_c_args (interp=0xee803100, sub_obj=0xee8b1d94, sig=0xeff83ea0 "P-&gt;") at src/call/pcc.c:76 #19 0xefceba2c in Parrot_runcode (interp=0xee803100, argc=1, argv=0xffffd870) at src/embed.c:825 #20 0xeff51a58 in imcc_run_pbc (interp=0xee803100, obj_file=0, output_file=0x0, argc=1, argv=0xffffd870) at compilers/imcc/main.c:790 #21 0xeff51e10 in imcc_run (interp=0xee803100, sourcefile=0xffffe998 "t/pmc/threads_14.pir", argc=1, argv=0xffffd870) at compilers/imcc/main.c:1073 #22 0x01800be8 in main (argc=1, argv=0xffffd870) at src/main.c:60 (gdb) c Continuing. in main: 0 ok (equal) 42 Breakpoint 2, 0xefff594c in dlclose () from /usr/libexec/ld.elf_so (gdb) where #0 0xefff594c in dlclose () from /usr/libexec/ld.elf_so #1 0xefd65f30 in Parrot_dlclose (handle=0xeffed600) at config/gen/platform/generic/dl.c:96 #2 0xefe6e274 in Parrot_ParrotLibrary_destroy (interp=0xee803100, pmc=0xee8e5ec4) at ./src/pmc/parrotlibrary.pmc:65 #3 0xefd6a204 in Parrot_pmc_destroy (interp=0xee803100, pmc=0xee8e5ec4) at src/pmc.c:116 #4 0xefd092d0 in free_pmc_in_pool (interp=0xee803100, pool_unused=0xee84c150, p=0xee8e5ec4) at src/gc/mark_sweep.c:602 #5 0xefd083d8 in Parrot_gc_sweep_pool (interp=0xee803100, pool=0xee84c150) at src/gc/mark_sweep.c:331 #6 0xefd071f0 in gc_ms_finalize (interp=0xee803100, mem_pools=0xee807080) at src/gc/gc_ms.c:232 #7 0xefd07490 in gc_ms_mark_and_sweep (interp=0xee803100, flags=4) at src/gc/gc_ms.c:161 #8 0xefd03e74 in Parrot_gc_mark_and_sweep (interp=0xee803100, flags=4) at src/gc/api.c:856 #9 0xefd1aab8 in Parrot_really_destroy (interp=0xee803100, exit_code_unused=0, arg_unused=0x0) at src/interp/inter_create.c:337 #10 0xefcf1038 in Parrot_exit (interp=0xee803100, status=0) at src/exit.c:90 #11 0x01800c04 in main (argc=1, argv=0xffffd870) at src/main.c:65 (gdb) c Continuing. Invalid shared object handle 0xeffed600 Program exited normally. (gdb) </pre><p> Note that the handle= value in the call preceding dlclose() is the same in the two cases. </p> <p> Parrot should not be calling dlclose() with the same handle value in a row, without the second one being the result of a dlopen(), which isn't the case here. OK, that's not proven by the above, but this one does: </p> <pre class="wiki">(gdb) b dlopen Breakpoint 3 at 0xefff5d60 (gdb) r Starting program: /usr/users/he/parrot/parrot t/pmc/threads_14.pir ... Breakpoint 3, 0xefff5d60 in dlopen () from /usr/libexec/ld.elf_so (gdb) c Continuing. in thread: 0 ok (equal) 42 Breakpoint 2, 0xefff594c in dlclose () from /usr/libexec/ld.elf_so (gdb) c Continuing. in main: 0 ok (equal) 42 Breakpoint 2, 0xefff594c in dlclose () from /usr/libexec/ld.elf_so (gdb) c Continuing. Invalid shared object handle 0xeffed600 Program exited normally. (gdb) </pre> http://trac.parrot.org/parrot/ticket/1340 http://trac.parrot.org/parrot/ticket/1340 Report #2045: How about generating man pages for downstream packaging? Tue, 08 Mar 2011 09:21:30 GMT Tue, 08 Mar 2011 09:21:30 GMT <p> Hello </p> <p> I'm working on updating parrot package for Debian. (parrot 3.0.0) </p> <p> Debian policy requires that any exe file has its own man page. So man pages must be generated from pod doc during package build. </p> <p> I guess that other distro packagers will have to perform a similar task. </p> <p> How about providing these man pages upstream to avoid duplicated work downstream ? </p> <p> All the best </p> http://trac.parrot.org/parrot/ticket/2045 http://trac.parrot.org/parrot/ticket/2045 Report #2044: Subclassing FileHandle Tue, 08 Mar 2011 07:08:06 GMT Tue, 08 Mar 2011 07:08:06 GMT <p> This PIR: </p> <pre class="wiki">.sub test :main $P0 = subclass 'FileHandle', 'TempFileHandle' $P1 = new 'TempFileHandle' .end </pre><p> Produces: </p> <pre class="wiki">Handle cannot be instantiated directly. </pre><p> (from Handle.pmc:42) </p> http://trac.parrot.org/parrot/ticket/2044 http://trac.parrot.org/parrot/ticket/2044 Report #1831: config problem with glui library on ubuntu 10.04 Sat, 16 Oct 2010 23:33:12 GMT Sat, 16 Oct 2010 23:33:12 GMT <p> If I have the glui libraries (include files) installed on my ubuntu 10.04 system, the $ perl configure.pl shell command makes the following complaint/warning: </p> <pre class="wiki">gen::opengl - Generating OpenGL bindings...In OpenGL header '/usr/include/GL/glui.h', can't parse canonicalized prototype for '': GLUI_String&amp; glui_format_str(GLUI_String &amp;str, char* fmt, ...); Original prototype: GLUIAPI GLUI_String&amp; glui_format_str(GLUI_String &amp;str, const char* fmt, ...); ......................done. </pre><p> this appears to come from the header file parser in parrot/config/gen/opengl.pm throwing out the "const" prefix for a "char *" argument: </p> <pre class="wiki">cc179ba1 (japhb 2008-06-01 03:02:27 +0000 695) s/\bconst\b\s*//g; </pre> http://trac.parrot.org/parrot/ticket/1831 http://trac.parrot.org/parrot/ticket/1831 Report #1386: Convert t/pmc/exporter.t to PIR Mon, 21 Dec 2009 23:44:54 GMT Sun, 06 Mar 2011 01:09:52 GMT http://trac.parrot.org/parrot/ticket/1386 http://trac.parrot.org/parrot/ticket/1386 Report #1087: Various tests fail on DragonFly/amd64 Fri, 02 Oct 2009 21:29:50 GMT Tue, 15 Nov 2011 14:05:10 GMT <p> Since DragonFly BSD 2.4 there is an amd64 version of the system. While my experiences on the x86 version were pretty good the amd64 port causes various errors when running a smoke test. It's a SMP enabled system (Phenom II, X2 545) btw, if this does matter. </p> <p> Summary: <a class="ext-link" href="http://smolder.plusthree.com/app/public_projects/report_details/28463"><span class="icon"> </span>http://smolder.plusthree.com/app/public_projects/report_details/28463</a> </p> <p> t/op/inf_nan.t: <a class="ext-link" href="http://smolder.plusthree.com/app/public_projects/tap_stream/28463/103"><span class="icon"> </span>http://smolder.plusthree.com/app/public_projects/tap_stream/28463/103</a> </p> <p> t/src/atomic.t <a class="ext-link" href="http://smolder.plusthree.com/app/public_projects/tap_stream/28463/269"><span class="icon"> </span>http://smolder.plusthree.com/app/public_projects/tap_stream/28463/269</a> </p> <p> t/src/basic.t: <a class="ext-link" href="http://smolder.plusthree.com/app/public_projects/tap_stream/28463/270"><span class="icon"> </span>http://smolder.plusthree.com/app/public_projects/tap_stream/28463/270</a> </p> <p> t/src/embed.t <a class="ext-link" href="http://smolder.plusthree.com/app/public_projects/tap_stream/28463/271"><span class="icon"> </span>http://smolder.plusthree.com/app/public_projects/tap_stream/28463/271</a> </p> <p> t/src/exit.t <a class="ext-link" href="http://smolder.plusthree.com/app/public_projects/tap_stream/28463/272"><span class="icon"> </span>http://smolder.plusthree.com/app/public_projects/tap_stream/28463/272</a> </p> <p> t/src/extend.t <a class="ext-link" href="http://smolder.plusthree.com/app/public_projects/tap_stream/28463/273"><span class="icon"> </span>http://smolder.plusthree.com/app/public_projects/tap_stream/28463/273</a> </p> <p> t/src/warnings.t <a class="ext-link" href="http://smolder.plusthree.com/app/public_projects/tap_stream/28463/274"><span class="icon"> </span>http://smolder.plusthree.com/app/public_projects/tap_stream/28463/274</a> </p> <p> t/perl/Parrot_Test.t: <a class="ext-link" href="http://smolder.plusthree.com/app/public_projects/tap_stream/28463/278"><span class="icon"> </span>http://smolder.plusthree.com/app/public_projects/tap_stream/28463/278</a> </p> http://trac.parrot.org/parrot/ticket/1087 http://trac.parrot.org/parrot/ticket/1087 Report #1084: Bus error when running 'parrot -t something.pbc' on MacOSX Fri, 02 Oct 2009 00:43:22 GMT Mon, 04 Jul 2011 18:52:59 GMT <p> Using parrot trunk @r41607 Proto-language at <a class="ext-link" href="http://github.com/cconstantine/Reason"><span class="icon"> </span>http://github.com/cconstantine/Reason</a> </p> <p> MacOSX: 10.5.7; MacBookPro3,1 (Core 2 Duo); </p> <p> While attempting to debug my proto-language I attempted to run my compiler with 'parrot -t reason.pbc'. Output is attached. </p> http://trac.parrot.org/parrot/ticket/1084 http://trac.parrot.org/parrot/ticket/1084 Report #1693: `make install` doesn't install all files necessary to build Rakudo on Cygwin Mon, 28 Jun 2010 12:23:53 GMT Tue, 07 Sep 2010 15:18:26 GMT <p> When building Parrot 2.5.0 on Cyqwin, <tt>make install</tt> doesn't copy the files 'cygparrot2_5_0.dll' and 'libparrot.dll.a' to directories where the Rakudo build can find them. </p> <p> Manually moving 'cygparrot2_5_0.dll' to '/usr/local/bin' and 'libparrot.dll.a' to '/usr/local/lib' solves the problem. </p> http://trac.parrot.org/parrot/ticket/1693 http://trac.parrot.org/parrot/ticket/1693 Report #1390: Configure doesn't check for a 'curses' lib in the readline test Wed, 23 Dec 2009 02:51:34 GMT Sat, 18 Sep 2010 00:16:32 GMT <p> Parrot doesn't build with readline support on OpenSolaris because readline needs tgetnum et al. from Solaris' "curses" lib. The configure script tries to fall back to "ncurses" which still fails on OSOL. </p> http://trac.parrot.org/parrot/ticket/1390 http://trac.parrot.org/parrot/ticket/1390 Report #880: class associated to namespace ["parrot";"Class"] gets overridden Tue, 28 Jul 2009 09:05:09 GMT Tue, 28 Jul 2009 12:10:11 GMT <p> When running the following code the the class associated to the ["parrot";"Class"] namespace gets overridden by the Foo9 class obj newclass $P1, "Foo9" </p> <p> typeof $P6, $P1 </p> <p> $P3 = get_root_namespace ["parrot";"Class"] </p> <p> $P4 = get_class $P3 </p> <p> print $P4 </p> <p> return "Foo9" instead of the expected "Class" </p> <p> the function get_class in the default.pmc calls the pmc_new_init(interp, enum_class_PMCProxy, type_num); where the self object points to the Foo9 class obj. </p> <p> In init_pmc in pmcproxy.pmc the interp-&gt;vtables[self-&gt;type_num = 102 in my case]-&gt;_namespace; points to the parrot;class namespace. Because this function effectually calls Parrot_PCCINVOKE(interp, interp-&gt;vtables[self-&gt;type_num]-&gt;_namespace = parrot;Class, CONST_STRING(interp, "set_class"), "P-&gt;", SELF = class of Foo9); the class associated to the parrot;Class namespace gets overridden. </p> <p> I solved this problem by adding following line to init_class_from_hash in the class.pmc new_vtable-&gt;_namespace = new_namespace; </p> <p> But I don't know for what reason the interp-&gt;vtables[type_num]-&gt;_namespace is different from the interp-&gt;vtables[type_num]-&gt;pmc_class-&gt;_namespace </p> <p> So I do not know whether this is the right solution to this problem. </p> <p> But I added a special ticket for this because there is another bug. </p> <p> <i>Test</i> </p> <p> The test in t/pmc/objects.t fails to detect this condition because of the bug described in ticket <a class="new ticket" href="http://trac.parrot.org/parrot/ticket/879" title="bug: isa does not take (correctly) namespace, pmcarray,stringarray (new)">#879</a>. But adding a special test with the code described above would be good thing to do. </p> http://trac.parrot.org/parrot/ticket/880 http://trac.parrot.org/parrot/ticket/880 Report #1559: ExtUtils::Command::cp broken [cpan #56666] Sat, 17 Apr 2010 13:17:09 GMT Fri, 27 Aug 2010 04:52:54 GMT <p> parrot can improve its makefiles by getting rid of the stupid chmod 755 *.dll calls then. </p> http://trac.parrot.org/parrot/ticket/1559 http://trac.parrot.org/parrot/ticket/1559 Report #1828: Wanted: A User Tool For Handling Parrot Installations Fri, 15 Oct 2010 17:51:38 GMT Sun, 22 May 2011 02:10:36 GMT <p> I want to have multiple versions of Parrot available for testing, development, and general convenience. Wrangling these installations should be handled by a single command line tool. </p> <p> Sources of inspiration include perlbrew for Perl, rvm for Ruby, and virtualenv for Python. </p> http://trac.parrot.org/parrot/ticket/1828 http://trac.parrot.org/parrot/ticket/1828 Report #1727: Rationalize get/set opcodes Mon, 02 Aug 2010 17:38:26 GMT Mon, 02 Aug 2010 17:38:26 GMT <p> There are opcodes called: </p> <pre class="wiki"> get_class getattribute getprop </pre><p> with (some) corresponding setters. </p> <p> The signatures are: </p> <pre class="wiki"> getattribute $PMC, 'name' getprop 'name', $PMC </pre><p> I propose these be made rational by: </p> <ol><li>Creating parallel opcodes with consistent names and signatures. </li><li>Deprecating the irrational opcodes. </li><li>Removing the irrational opcodes at the end of a deprecation cycle. </li></ol><p> I propose that the rational form be: </p> <ol class="loweralpha"><li>fully spelled out; </li><li>with underscores; </li><li>pmc, then name. </li></ol><p> Thus: </p> <pre class="wiki"> $P0 = get_class $PMC $P1 = get_attribute $PMC, 'attr' $P2 = get_property $PMC, 'prop' </pre><p> and likewise for the setters, and any others I may have missed. </p> http://trac.parrot.org/parrot/ticket/1727 http://trac.parrot.org/parrot/ticket/1727 Report #486: When using struct array of size 1 get "Non existent array element in struct: count = 1 max=1" Sun, 22 Mar 2009 13:34:49 GMT Wed, 26 Jan 2011 03:11:14 GMT <p> When creating an array of structs with only one element char_offset_key does not recognize the pmc as an array. This looks like it is because it uses an internal var called max and assumes arrays always have size greater than 1. </p> <p> A workaround is to force an array of size 1 to be of size 2. </p> <p> An example test.pir to be attached. </p> http://trac.parrot.org/parrot/ticket/486 http://trac.parrot.org/parrot/ticket/486 Report #508: JSON libraries should be renamed to something less confusing Thu, 26 Mar 2009 21:50:51 GMT Mon, 10 May 2010 13:19:50 GMT <p> There are three JSON.pbc files currently:- </p> <p> * compilers/json/JSON.pbc - for reading JSON. * library/JSON.pbc - for writing JSON. * library/Config/JSON.pbc for reading and writing config files containing JSON. </p> <p> The supplied patch renames the purely read/write ones to library/JSONReader.pbc and library/JSONWriter.pbc. </p> <p> However, what this patch misses is leaving a stub PBCs to manage a proper deprecation cycle. </p> http://trac.parrot.org/parrot/ticket/508 http://trac.parrot.org/parrot/ticket/508 Report