[perl #42609] [BUG] make html vs. DEVELOPING

2007-04-19 Thread via RT
# 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

2007-04-19 Thread Joshua Isom


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)

2007-04-19 Thread Andy Dougherty
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.

2007-04-19 Thread via RT
# 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

2007-04-19 Thread via RT
# 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.

2007-04-19 Thread chromatic
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

2007-04-19 Thread via RT
# 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

2007-04-19 Thread via RT
# 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.

2007-04-19 Thread via RT
# 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

2007-04-19 Thread via RT
# 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

2007-04-19 Thread chromatic
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.

2007-04-19 Thread Patrick R. Michaud
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

2007-04-19 Thread Steve Peters
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

2007-04-19 Thread chromatic
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