Re: [svn:parrot] r20101 - in trunk: . tools/build

2007-07-24 Thread Andy Lester


On Jul 23, 2007, at 7:21 PM, chromatic wrote:



I'm okay with that, but we should also decorate PANIC with
PARROT_DOES_NOT_RETURN, which I believe *should* help compilers.


I'm all over it, long ago.  PANIC just wraps do_panic which is so  
decorated.


--
Andy Lester = [EMAIL PROTECTED] = www.petdance.com = AIM:petdance






Re: [svn:parrot] r20101 - in trunk: . tools/build

2007-07-24 Thread Andy Lester


On Jul 23, 2007, at 5:57 PM, Kevin Tew wrote:

My thinking was that, should someone, someday change PANIC into a  
recoverable error, this will prevent leakage.

Ok its a stretch. :)


if it's unreachable, we need to get rid of it.  PANIC is a dead-end.

xoa

--
Andy Lester = [EMAIL PROTECTED] = www.petdance.com = AIM:petdance






[perl #44121] [BUG] What happened to tools/build/fingerprint_c.pl?

2007-07-24 Thread via RT
# New Ticket Created by  James Keenan 
# Please include the string:  [perl #44121]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=44121 


This file is still listed in the MANIFEST in trunk,

   [parrot] 518 $ grep -n fingerprint MANIFEST
   3183:tools/build/fingerprint_c.pl[]

... but when I svn updated, it was no longer found.  This causes 
Configure.pl to ack about a missing file and it causes the 
init::manifest step to fail.

   Checking MANIFEST...No such file: tools/build/fingerprint_c.pl

   Ack, some files were missing!  I can't continue running
   without everything here.  Please try to find the above
   files and then try running Configure again.


   step init::manifest failed: no result returned at Configure.pl line 395


What happened to it?

kid51


Re: [perl #44121] [BUG] What happened to tools/build/fingerprint_c.pl?

2007-07-24 Thread Paul Cochrane

On 24/07/07, via RT James Keenan [EMAIL PROTECTED] wrote:

# New Ticket Created by  James Keenan
# Please include the string:  [perl #44121]
# in the subject line of all future correspondence about this issue.
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=44121 


This file is still listed in the MANIFEST in trunk,

   [parrot] 518 $ grep -n fingerprint MANIFEST
   3183:tools/build/fingerprint_c.pl[]

... but when I svn updated, it was no longer found.  This causes
Configure.pl to ack about a missing file and it causes the
init::manifest step to fail.

   Checking MANIFEST...No such file: tools/build/fingerprint_c.pl

   Ack, some files were missing!  I can't continue running
   without everything here.  Please try to find the above
   files and then try running Configure again.


   step init::manifest failed: no result returned at Configure.pl line 395


What happened to it?


I believe this is an automatically generated file as part of Andy's
gcc sniffing stuff (it keeps coming up as a file of zero length on my
system).  It probably should be in MANIFEST.SKIP or something...

Paul


[perl #44125] [PATCH] Configure.pl: more consistent interface

2007-07-24 Thread via RT
# New Ticket Created by  James Keenan 
# Please include the string:  [perl #44125]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=44125 


In Configure.pl, some function/method calls take $args as an  
argument.  Other functions, for legacy reasons, take %args or $args 
{somekey} as an argument.  But %args is merely %$args.

Let's make this internally consistent.  The patch attached eliminates  
%args in favor of $args.

You should observe no change in functionality.  I'll apply this patch  
in a couple of days unless someone objects or beats me to it.

kid51
Index: Configure.pl
===
--- Configure.pl(revision 20150)
+++ Configure.pl(working copy)
@@ -324,7 +324,6 @@
 svnid   = '$Id$',
 } );
 exit(1) unless defined $args;
-my %args = %{$args};
 
 my $opttest = Parrot::Configure::Options::Test-new($args);
 # configuration tests will only be run if you requested them
@@ -332,7 +331,7 @@
 $opttest-run_configure_tests();
 
 # from Parrot::Configure::Messages
-print_introduction($parrot_version) unless exists $args{step};
+print_introduction($parrot_version) unless exists $args-{step};
 
 my $conf = Parrot::Configure-new;
 
@@ -340,15 +339,15 @@
 $conf-add_steps(get_steps_list());
 
 # from Parrot::Configure::Data
-$conf-options-set(%args);
+$conf-options-set(%{$args});
 
-if ( exists $args{step} ) {
+if ( exists $args-{step} ) {
 # from Parrot::Configure::Data
 $conf-data()-slurp();
 $conf-data()-slurp_temp()
-if $args{step} =~ /gen::makefiles/;
+if $args-{step} =~ /gen::makefiles/;
 # from Parrot::Configure
-$conf-runstep( $args{step} );
+$conf-runstep( $args-{step} );
 print \n;
 }
 else {
@@ -362,8 +361,7 @@
 $opttest-run_build_tests();
 
 # from Parrot::Configure::Messages
-print_conclusion($conf-data-get('make')) unless exists $args{step};
-
+print_conclusion($conf-data-get('make')) unless exists $args-{step};
 exit(0);
 
 ### DOCUMENTATION ###


[perl #44121] [BUG] What happened to tools/build/fingerprint_c.pl?

2007-07-24 Thread Will Coleda via RT
On Tue Jul 24 05:11:52 2007, ptc wrote:
 On 24/07/07, via RT James Keenan parrotbug-followup !-- x -- at
parrotcode.org wrote:
  # New Ticket Created by  James Keenan
  # Please include the string:  [perl #44121]
  # in the subject line of all future correspondence about this issue.
  # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=44121 
 
 
  This file is still listed in the MANIFEST in trunk,
 
 [parrot] 518 $ grep -n fingerprint MANIFEST
 3183:tools/build/fingerprint_c.pl[]
 
  ... but when I svn updated, it was no longer found.  This causes

This appears to be nothing more than someone forgetting to update
MANIFEST. The file was checked in at least a few revs ago, it was then
deleted.


Re: [perl #44121] [BUG] What happened to tools/build/fingerprint_c.pl?

2007-07-24 Thread Jonathan Worthington

Will Coleda via RT wrote:
This appears to be nothing more than someone forgetting to update 
MANIFEST. The file was checked in at least a few revs ago, it was then 
deleted.
Geck, that was me last night. Sorry all. (For those wondering where 
fingerprint_c.pl is going, I'm working on implementing PDD13 and it 
doesn't use fingerprints).


Fixed in r20153.

Jonathan





What I broke

2007-07-24 Thread Andy Lester

Here's what I know is broken because of changes I've made yesterday:

t/compilers/imcc/syn/file.t  255 6528013   16  1-13
t/library/test_builder_tester.t0 612   16  1-12
t/library/test_more.t  0 658  106  1-58
t/op/string.t  5  1280   160  155  1-37 39-70 72  
74-90 92-

   96 98-160
t/pmc/exporter.t   6  1536126  1-6
t/pmc/objects.t1   25678   77  1-6 8-78

--
Andy Lester = [EMAIL PROTECTED] = www.petdance.com = AIM:petdance






Re: What I broke

2007-07-24 Thread Andy Lester


On Jul 24, 2007, at 8:43 AM, Andy Lester wrote:


Here's what I know is broken because of changes I've made yesterday:

t/compilers/imcc/syn/file.t  255 6528013   16  1-13


This is still broken, as is shootout (of course).


t/library/test_builder_tester.t0 612   16  1-12
t/library/test_more.t  0 658  106  1-58
t/op/string.t  5  1280   160  155  1-37 39-70  
72 74-90 92-

   96 98-160
t/pmc/exporter.t   6  1536126  1-6
t/pmc/objects.t1   25678   77  1-6 8-78


All fixed.

xoxo,
andy

--
Andy Lester = [EMAIL PROTECTED] = www.petdance.com = AIM:petdance






[perl #44139] opcodes, warnings, and exceptions

2007-07-24 Thread via RT
# New Ticket Created by  Jerry Gay 
# Please include the string:  [perl #44139]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=44139 


the api for opcodes needs review, especially with regard to the
response to exceptional behavior. for example, the documentation for
Blength in src/ops/string.ops reads:

  =item Blength(out INT, in STR)

  Set result $1 to the length (in characters) of string $2.
  If $2 is NULL or zero length, zero is returned.

however, if a null string is passed in to length, the user should get
some notification of an exceptional condition. *at least* a warning,
and possibly a fatal exception.

~jerry


[perl #44101] Parrot 0.4.14 fails: src/pmc/object.c, line 153: void function cannot return value

2007-07-24 Thread via RT
# New Ticket Created by  Andy Dougherty 
# Please include the string:  [perl #44101]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=44101 


As of version 0.4.14, parrot no longer builds for me with Sun's Workshop 
compiler on Solaris 8/SPARC.  I get 66 errors of the form:

src/pmc/object.c, line 153: void function cannot return value

I tried browsing through the source history for lib/Parrot/Pmc2c 
via the SVN web interface, but kept getting errors of the form:

An Exception Has Occurred

Checkout view is disabled

HTTP Response Status

403 Forbidden

Python Traceback

Traceback (most recent call last):
  File /home/web/svn/viewvc/lib/viewcvs.py, line 3593, in main
request.run_viewcvs()
  File /home/web/svn/viewvc/lib/viewcvs.py, line 379, in run_viewcvs
self.view_func(self)
  File /home/web/svn/viewvc/lib/viewcvs.py, line 2114, in view_checkout
'403 Forbidden')
ViewCVSException: 403 Forbidden: Checkout view is disabled

I gave up trying to find the relevant change.

If this error isn't fixed, the following patch is needed for PLATFORMS:

--- parrot-0.4.14/PLATFORMS 2007-07-11 09:15:35.0 -0400
+++ parrot-andy/PLATFORMS   2007-07-23 13:04:17.0 -0400
@@ -26,7 +26,7 @@
 linux-x86_64-gcc4.1.0 4   Y-- Y   Y   YY/2   ?  
20060807
 linux-x86_64-gcc4.1.2 8   Y-- Y   Y   YY ?  
20070619
 openbsd-zaurus-gcc3.3.5   Y-- Y   Y   Y? ?  
20070309
-sol8-sparc-ccB--- -   -   -Y/441 ?  
20070427
+sol8-sparc-ccB--- -   -   -- ?  
20070723
 sol10-sparc-cc_5.8   BY-- Y   Y   YY/9   ?  
20060807
 sol10-sparc-gcc_4.0.2BY-- Y   Y   YY/9   ?  
20060807
 sol11-x86-cc_5.8  Y-- -   -   -- ?  
20070417

I fixed the error in src/pmc/object.c by changing all the 
return (void)NULL;
lines into simple
return;
but that will be lost once pmc2c is run again.  With that temporary fix
in place, I get 496 test failures (mostly out-of-memory errors in the
compilers/pge/p[56]regex/ tests) which is consistent with what I've been
seeing for a very long time.

-- 
Andy Dougherty  [EMAIL PROTECTED]


Tcl Assertion failures

2007-07-24 Thread Will Coleda

As of r20160, Tcl was generating a lot of assertion errors, ala:

src/inter_call.c:228: failed assertion `sig_pmc-vtable-base_type ==  
enum_class_FixedIntegerArray'


Turns out, this is directly attributable to runtime/hacks.pir - my  
attempt to store the results of compilation of tcl to pir as a frozen  
PMC. While this worked when it was checked in, at some point trying  
to read in, thaw, and invoke that PMC started generating these  
assertion errors (which are a result of something getting garbage  
collected that oughtn't.). Hopefully knowing which area of partcl was  
causing this will help track down the GC bug.


Given that this was purely a hack on my part to try to get a speedup  
during development, I'm going to comment this out of partcl for now.  
Anyone trying to track this down just needs to swap out runtime/ 
builtin/source.pir with the version from r20160, and run their copy  
of parrot twice. (once to generate the frozen PMC, once to invoke it.).


I think this might point to a bug that needs to be resolved... and it  
was a big enough speedup that I'd like to re-enable until our  
compiler is blazingly fast, even if it is a dirty hack.


In a related note, I've also disabled the default -G running on the  
test suite. This seems to expose a host of *new* GC failures. Help! =-)




[perl #43321] [TODO] config/init/defaults.pm: Write unit tests

2007-07-24 Thread James Keenan via RT
The basic functionality has been unit tested in 
t/configure/102-init_defaults.01.t and ...02.t.

Ticket cannot be closed until its dependencies are resolved.


[perl #43923] [TODO] Don't regenerate MANIFEST unnecessarily

2007-07-24 Thread James Keenan via RT
New files committed; patches applied in r20181.


Re: [svn:parrot] r20172 - trunk/src/ops

2007-07-24 Thread chromatic
On Tuesday 24 July 2007 15:37:54 [EMAIL PROTECTED] wrote:

 Modified: trunk/src/ops/var.ops
 ===
=== --- trunk/src/ops/var.ops   (original)
 +++ trunk/src/ops/var.ops   Tue Jul 24 15:37:53 2007
 @@ -105,8 +105,8 @@
  
  op get_namespace(out PMC, in PMC) {
      PMC * const cur_ns = CONTEXT(interp-ctx)-current_namespace;
 -    PMC *ns = Parrot_get_namespace_keyed(interp, cur_ns, $2);
 -    $1 = ns ? ns : PMCNULL;
 +    PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, $2);
 +    $1 = PMC_IS_NULL(ns) ? PMCNULL : ns;
      goto NEXT();
  }

How about:

$1 = Parrot_get_namespace_keyed(interp, cur_ns, $2);

I presume that the function always returns either PMCNULL or a NameSpace PMC, 
so checking if it's returned PMCNULL and returning PMCNULL in that case seems 
a little silly.

-- c


Re: [svn:parrot] r20172 - trunk/src/ops

2007-07-24 Thread Andy Lester


On Jul 24, 2007, at 8:56 PM, chromatic wrote:

I presume that the function always returns either PMCNULL or a  
NameSpace PMC,
so checking if it's returned PMCNULL and returning PMCNULL in that  
case seems

a little silly.


Because I'm trying to get all the C code to be NONNULL as much as  
possible.


--
Andy Lester = [EMAIL PROTECTED] = www.petdance.com = AIM:petdance






Re: [svn:parrot] r20172 - trunk/src/ops

2007-07-24 Thread chromatic
On Tuesday 24 July 2007 21:25:39 Andy Lester wrote:

 On Jul 24, 2007, at 8:56 PM, chromatic wrote:
  I presume that the function always returns either PMCNULL or a
  NameSpace PMC,
  so checking if it's returned PMCNULL and returning PMCNULL in that
  case seems
  a little silly.

 Because I'm trying to get all the C code to be NONNULL as much as
 possible.

The code was:

$1 = PMC_IS_NULL(ns) ? PMCNULL : ns;

If PMC_IS_NULL(ns) -- if it's PMCNULL -- then return PMCNULL.  Otherwise, 
return ns.  That is, return exactly what you were going to return anyway.

What am I missing here?

-- c


Re: [svn:parrot] r20172 - trunk/src/ops

2007-07-24 Thread Andy Lester


On Jul 24, 2007, at 9:43 PM, chromatic wrote:


$1 = PMC_IS_NULL(ns) ? PMCNULL : ns;

If PMC_IS_NULL(ns) -- if it's PMCNULL -- then return PMCNULL.   
Otherwise,
return ns.  That is, return exactly what you were going to return  
anyway.


What am I missing here?


Because PMCNULL can be (PMC)NULL or it can be PMCNULL, a special non- 
null variable.


See how it's defined in the header.

--
Andy Lester = [EMAIL PROTECTED] = www.petdance.com = AIM:petdance






Re: [svn:parrot] r20172 - trunk/src/ops

2007-07-24 Thread chromatic
On Tuesday 24 July 2007 21:50:55 Andy Lester wrote:

  What am I missing here?

 Because PMCNULL can be (PMC)NULL or it can be PMCNULL, a special non-
 null variable.

 See how it's defined in the header.

I thought we fixed it.  Let's fix it.

-- c