[perl #42609] [BUG] make html vs. DEVELOPING
# New Ticket Created by Will Coleda # Please include the string: [perl #42609] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=42609 In a release tarball, 'make html' is still trying to process the file DEVELOPING which doesn't exist. This file should be conditionally checked - if it's not present, no error or warning should occur during 'make html' and it should not generate a dead link in the generated HTML. -- Will Coke Coleda [EMAIL PROTECTED]
Re: [perl #42430] [PATCH] make :vtable imply :method
On Apr 18, 2007, at 3:48 PM, chromatic wrote: On Wednesday 18 April 2007 13:34, Alek Storm wrote: Vtable methods defined in C are visible from C. Of course, otherwise nothing would be able to call them. Therefore, it makes sense that vtable methods defined in PIR are visible from PIR, at least by default. That makes no sense to me. Are you saying that vtable methods defined in a specific language should be visible to that language by default? If that's true, then users have to *know* the implementation details of vtable methods. Is it in C code or is it in PIR code? That's precisely what vtable methods protect against! That's why they're in vtables. That's why they're *not* visible as methods to PIR code. Making :vtable imply :anon might be unintuitive to users. Besides that, there's still the problem of :method meaning two different things with that implementation. Basically, in a non-vtable sub, there is the :anon flag to detach it from the namespace, but in a vtable sub, it's detached by default, and the :method flag attaches it to the namespace. Reversal bad. Continuity good. I can't honestly think of a case where you want :vtable AND :method on a vtable method, with the caveat that right now you *must* do that because :vtable doesn't cause Parrot to include the invocant in the proper register on calls. Fixing that makes these problems all go away. -- c And if vtables are anonymous by default, it'll make it possible to have a vtable and a method, with the same name. I think it's more likely to be a good thing than a bad thing, but I imagine it will at some point cause a problem for someone, other than confusion. No one ever said the logic of a virtual machine intending to support all dynamic languages would be simple.
Re: [perl #38957] hash test failures (core dump)
The test t/src/hash_6.c is still dumping core for me. I haven't tried debugging in detail beyond the information already in the RT ticket. -- Andy Dougherty [EMAIL PROTECTED]
[perl #42616] Parrot won't build with perl-5.6.
# New Ticket Created by Andy Dougherty # Please include the string: [perl #42616] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=42616 What version of perl is supposed to be required to build parrot? According to README, You'll also need Perl 5.6.1 or above to run various configure and build scripts. According to Configure, use 5.006_001; But if you actually try it with perl-5.6.2, the build proceeds for a while and then dies with perl5.6 tools/build/pmc2c.pl --vtable longmess is not exported by the Carp module at /home/doughera/src/parrot/parrot-andy/tools/build/../../lib/Parrot/Pmc2c/PCCMETHOD.pm line 8 Can't continue after import errors at /home/doughera/src/parrot/parrot-andy/tools/build/../../lib/Parrot/Pmc2c/PCCMETHOD.pm line 8 BEGIN failed--compilation aborted at /home/doughera/src/parrot/parrot-andy/tools/build/../../lib/Parrot/Pmc2c/PCCMETHOD.pm line 8. Compilation failed in require at /home/doughera/src/parrot/parrot-andy/tools/build/../../lib/Parrot/Pmc2c.pm line 29. BEGIN failed--compilation aborted at /home/doughera/src/parrot/parrot-andy/tools/build/../../lib/Parrot/Pmc2c.pm line 29. Compilation failed in require at /home/doughera/src/parrot/parrot-andy/tools/build/../../lib/Parrot/Pmc2c/Library.pm line 29. BEGIN failed--compilation aborted at /home/doughera/src/parrot/parrot-andy/tools/build/../../lib/Parrot/Pmc2c/Library.pm line 29. Compilation failed in require at /home/doughera/src/parrot/parrot-andy/tools/build/../../lib/Parrot/Pmc2c/Utils.pm line 9. BEGIN failed--compilation aborted at /home/doughera/src/parrot/parrot-andy/tools/build/../../lib/Parrot/Pmc2c/Utils.pm line 9. Compilation failed in require at tools/build/pmc2c.pl line 12. BEGIN failed--compilation aborted at tools/build/pmc2c.pl line 12. *** Error code 255 make: Fatal error: Command failed for target `vtable.dump' What is the actual intent? Requiring builders to run at least perl-5.8 does not seem unreasonable to me, but neither would requiring developers to stick with perl-5.6 seem unreasonable. Parrot should, however, be consistent. -- Andy Dougherty [EMAIL PROTECTED]
[perl #42615] [PATCH] C89 doesn't allow non-constant initializers
# New Ticket Created by Andy Dougherty # Please include the string: [perl #42615] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=42615 This patch works around the following error message: src/inter_call.c, line 1350: non-constant initializer: op U src/inter_call.c, line 1350: non-constant initializer: op U src/inter_call.c, line 1351: non-constant initializer: op NAME src/inter_call.c, line 1351: non-constant initializer: op NAME diff -ru parrot-current/src/inter_call.c parrot-andy/src/inter_call.c --- parrot-current/src/inter_call.c Sun Apr 15 03:15:15 2007 +++ parrot-andy/src/inter_call.cThu Apr 19 10:26:02 2007 @@ -1347,8 +1347,8 @@ PMC* save_current_object; /* temporary state vars for building PCC index and PCC signature arrays. */ -opcode_t *indexes[2] = { arg_indexes, result_indexes }; -PMC *sigs[2] = { args_sig, results_sig }; +opcode_t *indexes[2]; /* = { arg_indexes, result_indexes }; */ +PMC *sigs[2]; /* = { args_sig, results_sig }; */ int arg_ret_cnt[2] = { 0, 0 }; /* # of arg args, # of result args */ int max_regs[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; /* INSP args, INSP results */ int seen_arrow = 0; @@ -1359,6 +1359,11 @@ va_list list; va_start(list, signature); + +indexes[0] = arg_indexes; +indexes[1] = result_indexes; +sigs[0] = args_sig; +sigs[1] = results_sig; /* account for passing invocant in-band */ if (pmc) { -- Andy Dougherty [EMAIL PROTECTED]
Re: [perl #42616] Parrot won't build with perl-5.6.
On Thursday 19 April 2007 11:24, Andy Dougherty wrote: But if you actually try it with perl-5.6.2, the build proceeds for a while and then dies with perl5.6 tools/build/pmc2c.pl --vtable longmess is not exported by the Carp module at /home/doughera/src/parrot/parrot-andy/tools/build/../../lib/Parrot/Pmc2c/PC CMETHOD.pm line 8 What is the actual intent? Requiring builders to run at least perl-5.8 does not seem unreasonable to me, but neither would requiring developers to stick with perl-5.6 seem unreasonable. Parrot should, however, be consistent. It looks like we could replace that longmess call in the WARN handler with Carp::cluck() instead without changing the intent. Does that get you further, Andy? -- c
[perl #42617] t/pmc/threads_7.pir hangs indefinitely
# New Ticket Created by Andy Dougherty # Please include the string: [perl #42617] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=42617 While trying to run 'make test' today, t/pmc/threads_7.pir hung, gobbling up 100% of the CPU. This was on Solaris 8/SPARC, compiled with Sun's compiler. -- Andy Dougherty [EMAIL PROTECTED]
[perl #42619] t/stm/llqueue_2.pir sometimes hangs
# New Ticket Created by Andy Dougherty # Please include the string: [perl #42619] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=42619 While trying to run 'make test' today, t/stm/llqueue_2.pir hung and had to be killed manually. Trying it again, I got an out-of-memory error t/stm/llqueue # Failed (TODO) test (t/stm/llqueue.t at line 59) # got: 'Parrot VM: PANIC: Out of mem! # C file src/gc/memory.c, line 48 # Parrot file (not available), line (not available) # # We highly suggest you notify the Parrot team if you have not been working on # Parrot. Use parrotbug (located in parrot's root directory) or send an # e-mail to [EMAIL PROTECTED] # Include the entire text of this error message and the text of the script that # generated the error. If you've made any modifications to Parrot, please # describe them as well. # # Version : 0.4.11-devel # Configured : Thu Apr 19 13:05:49 2007 GMT # Architecture: nojit # JIT Capable : No # Interp Flags: (no interpreter) # Exceptions : (missing from core) # # Dumping Core... # Quit # ' # expected: 'sum is 4950 # ' # './parrot -D40 --gc-debug /home/doughera/src/parrot/parrot-andy/t/stm/llqueue_2.pir' failed with exit code 131 ok The hanging behavior appears to be intermittent. I haven't been able to identify conditions under which it reliably occurs. I realize this is a TODO test, but it shouldn't hang. Perhaps it should just be skipped. This is on Solaris 8/SPARC, with Sun's compiler. -- Andy Dougherty [EMAIL PROTECTED]
[perl #42620] PGE 'Out of memory' panics.
# New Ticket Created by Andy Dougherty # Please include the string: [perl #42620] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=42620 Both t/compilers/pge/p5regex/p5rx.t and t/compilers/pge/p6regex/01-regex.t are failing with the following error message: t/compilers/pge/p5regex/p5rx.Parrot VM: PANIC: Out of mem! C file src/gc/memory.c, line 97 Parrot file (not available), line (not available) We highly suggest you notify the Parrot team if you have not been working on Parrot. Use parrotbug (located in parrot's root directory) or send an e-mail to [EMAIL PROTECTED] Include the entire text of this error message and the text of the script that generated the error. If you've made any modifications to Parrot, please describe them as well. Version : 0.4.11-devel Configured : Thu Apr 19 13:05:49 2007 GMT Architecture: nojit JIT Capable : No Interp Flags: (no interpreter) Exceptions : (missing from core) Dumping Core... dubious Test returned status 0 (wstat 3, 0x3) DIED. FAILED tests 399-960 Failed 562/960 tests, 41.46% okay (less 143 skipped tests: 255 okay, 26.56%) The summaries for those tests read as follows: Failed Test Stat Wstat Total Fail Failed List of Failed t/compilers/pge/p5regex/p5rx.t 0 3 960 1124 117.08% 399-960 t/compilers/pge/p6regex/01-regex.0 3?? ?? % ?? By further reducing the amount of memory available (with ulimit) I can make the tests die a little earlier. It seems like parrot's memory footprint keeps growing while processing the test file. I don't know if it's a garbage collection issue or if pge is expected to take ever-growing amounts of memory. This is under Solaris 8/SPARC with Sun's cc compiler. I have just 128 MB of RAM in this system. This should be easily reproducible on other Unix-ish platforms: Just set ulimit -v to some smaller value (e.g. 96 MB). Observe how the point of failure moves around in the p5rx file as you increase or decrease the available memory. -- Andy Dougherty [EMAIL PROTECTED]
[perl #42618] t/configure/01-options finds incorrect directory
# New Ticket Created by Andy Dougherty # Please include the string: [perl #42618] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=42618 t/configure/01-options fails if there is a directory with the substring 'parrot' located earlier in the working directory. For example, I have my source in $HOME/src/parrot/parrot-current but t/configure/01-options skips up past the 'parrot-current' part and prints out: t/configure/01-options...Unable to open handle to /home/doughera/src/parrot/Configure.pl: No such file or directory at t/configure/01-options.t line 45 -- Andy Dougherty [EMAIL PROTECTED]
Re: [perl #42619] t/stm/llqueue_2.pir sometimes hangs
On Thursday 19 April 2007 11:35, Andy Dougherty wrote: While trying to run 'make test' today, t/stm/llqueue_2.pir hung and had to be killed manually. Trying it again, I got an out-of-memory error The hanging behavior appears to be intermittent. I haven't been able to identify conditions under which it reliably occurs. I realize this is a TODO test, but it shouldn't hang. Perhaps it should just be skipped. Probably so. I have an idea what it is, but I haven't quite fixed it yet. Does the attached patch make the test pass, or at least not take up so much memory? Does it help with RT #42617 too? -- c === src/pmc/parrotthread.pmc == --- src/pmc/parrotthread.pmc (revision 3249) +++ src/pmc/parrotthread.pmc (local) @@ -47,12 +47,10 @@ static void stop_GC(Interp* parent, Interp *thread) { -#if 0 Parrot_block_DOD(parent); Parrot_block_DOD(thread); Parrot_block_GC(parent); Parrot_block_GC(thread); -#endif } /* XXX FIXME probably not the best interface [see also list post of
Re: [perl #42620] PGE 'Out of memory' panics.
On Thu, Apr 19, 2007 at 11:47:55AM -0700, Andy Dougherty wrote: # New Ticket Created by Andy Dougherty # Please include the string: [perl #42620] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=42620 Both t/compilers/pge/p5regex/p5rx.t and t/compilers/pge/p6regex/01-regex.t are failing with the following error message: t/compilers/pge/p5regex/p5rx.Parrot VM: PANIC: Out of mem! C file src/gc/memory.c, line 97 Parrot file (not available), line (not available) I believe that both of these tests are currently being run with the -G flag, which should mean that Parrot is not doing any garbage collection: $ head -2 t/compilers/pge/p5regex/p5rx.t #!./parrot -G # Copyright (C) 2001-2006, The Perl Foundation. $ head -2 t/compilers/pge/p6regex/01-regex.t #!./parrot -G # Copyright (C) 2001-2007, The Perl Foundation. Given the number of tests that run, I'm not too surprised that they run out of memory when -G is present. This does prompt the question of removing -G from the tests, but the last time I looked into doing this (about a month ago) Parrot still had intermittent GC errors that would cause random failures in the tests. After a lot of discussion on the mailing list and in #parrot I think it was decided that running the tests with -G was preferable to having random test failures showing up in the pge tests due to GC problems in Parrot. Hope this helps, and thanks for the report! (Should we close this ticket?) Pm
Re: [perl #42615] [PATCH] C89 doesn't allow non-constant initializers
On Thu, Apr 19, 2007 at 11:24:43AM -0700, Andy Dougherty wrote: # New Ticket Created by Andy Dougherty # Please include the string: [perl #42615] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=42615 This patch works around the following error message: src/inter_call.c, line 1350: non-constant initializer: op U src/inter_call.c, line 1350: non-constant initializer: op U src/inter_call.c, line 1351: non-constant initializer: op NAME src/inter_call.c, line 1351: non-constant initializer: op NAME diff -ru parrot-current/src/inter_call.c parrot-andy/src/inter_call.c --- parrot-current/src/inter_call.c Sun Apr 15 03:15:15 2007 +++ parrot-andy/src/inter_call.c Thu Apr 19 10:26:02 2007 @@ -1347,8 +1347,8 @@ PMC* save_current_object; /* temporary state vars for building PCC index and PCC signature arrays. */ -opcode_t *indexes[2] = { arg_indexes, result_indexes }; -PMC *sigs[2] = { args_sig, results_sig }; +opcode_t *indexes[2]; /* = { arg_indexes, result_indexes }; */ +PMC *sigs[2]; /* = { args_sig, results_sig }; */ int arg_ret_cnt[2] = { 0, 0 }; /* # of arg args, # of result args */ int max_regs[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; /* INSP args, INSP results */ int seen_arrow = 0; @@ -1359,6 +1359,11 @@ va_list list; va_start(list, signature); + +indexes[0] = arg_indexes; +indexes[1] = result_indexes; +sigs[0] = args_sig; +sigs[1] = results_sig; /* account for passing invocant in-band */ if (pmc) { Cool! I meant to look into this one since it also breaks Borland C++ and causes warnings under -ansi -pedantic. Steve Peters [EMAIL PROTECTED]
Re: [perl #42615] [PATCH] C89 doesn't allow non-constant initializers
On Thursday 19 April 2007 11:24, Andy Dougherty wrote: This patch works around the following error message: src/inter_call.c, line 1350: non-constant initializer: op U src/inter_call.c, line 1350: non-constant initializer: op U src/inter_call.c, line 1351: non-constant initializer: op NAME src/inter_call.c, line 1351: non-constant initializer: op NAME Thanks, applied as r18288, with some minor formatting updates. -- c