Re: [perl #39714] [TODO] Refactor IMCC to remove static globals

2009-02-12 Thread jerry gay
On Thu, Feb 12, 2009 at 15:53, Will Coleda w...@coleda.com wrote:
 On Thu, Feb 12, 2009 at 6:09 PM, kjstol parrotc...@gmail.com wrote:
 On Thu, Feb 12, 2009 at 9:22 PM, Will Coleda via RT 
 parrotbug-follo...@parrotcode.org wrote:

 On Tue Jul 04 19:30:44 2006, autri...@gmail.com wrote:
  IMCC currently relies on a lot of static globals to carry state, and
  cannot reliably restore them when an error occurs. (grep for
  static and FIXME global in the IMCC tree.)
 
  Allison had ruled that reentrancy should be possible for IMCC, and
  this would be a good refactoring project.

 We've rejected a lot of clean up IMCC tickets with the thought that we
 eventually want PIRC to take over. Anyone think this falls into the same
 category?


 I would like to indicate that while most of PIRC's done, it's not finished
 yet. Major issue now is the bug with STRING and FLOATVAL constants bug
 (there's 1 or 2 tickets on that). I haven't really had the energy or time to
 work on that recently. The rest is just a matter of test+fix cycle; I'm sure
 there's all sorts of cases that should be tested more properly than I've
 done. So, although I'm confident that together we can fix PIRC, don't throw
 out imcc just yet..

 kjs

 To be clear, I'm not saying throw out IMCC, I'm saying, Let's not
 bother trying to fix tricky bits of IMCC if we're just going to throw
 it out later.

i want to go into production (1.0) knowing what's broken in imcc
rather than hiding the broken things in closed/rejected tickets. what
do we get by hiding bugs? surprises. i could use fewer of those--my
teeth still hurt from that surprise trip to the dentist this week.

~jerry


Re: [perl #36330] [TODO] Create a BigNum PMC

2009-02-05 Thread jerry gay
On Thu, Feb 5, 2009 at 08:26, Andrew Whitworth via RT
parrotbug-follo...@parrotcode.org wrote:
 1) Are we going to be relying on libraries to handle our BigInt/BigNum
 implementations, or are we intending to roll our own?

we can't rely on external libraries, whether for bignum, unicode, gc,
or anything else. we can detect and use them, however, if they exist.

~jerry


Re: [perl #36330] [TODO] Create a BigNum PMC

2009-02-05 Thread jerry gay
On Thu, Feb 5, 2009 at 08:45, Andrew Whitworth via RT
parrotbug-follo...@parrotcode.org wrote:
 On Thu Feb 05 08:40:47 2009, particle wrote:
 On Thu, Feb 5, 2009 at 08:26, Andrew Whitworth via RT
 parrotbug-follo...@parrotcode.org wrote:
  1) Are we going to be relying on libraries to handle our BigInt/BigNum
  implementations, or are we intending to roll our own?

 we can't rely on external libraries, whether for bignum, unicode, gc,
 or anything else. we can detect and use them, however, if they exist.

 ~jerry


 Okay, maybe rely was the wrong word to use. Current implementation of
 BigInt.pmc uses GMP if it's available, else it throws exceptions that
 there is no bug number library present to implement the behavior. Same
 is true of the unicode charset and ICU. We don't require ICU or GMP to
 build parrot, but we don't implement these behaviors without them.

but we do implement these behaviors, at least some of them. for
example, i don't have icu installed, but i can still use french quotes
in rakudo. i'll get an exception if i try to downcase a string of
japanese text (a silly example, but it won't throw if i have icu)
because not all unicode functionality has been implemented natively
*yet*.

 Question is: Are we going to do this same thing for BigNum (use a
 library if present, throw sane exceptions otherwise), or are we going to
 roll our own BigNum implementation?

we will roll our own bignum, and give users the ability to use gmp or
another external library at configure time. until we do roll our own,
we should provide a default implementation that throws descriptive
exceptions.

~jerry


Re: [perl #37993] [BUG] optimized parrot behaves differently than non-optimized (win32-msvc)

2009-02-05 Thread jerry gay
On Thu, Feb 5, 2009 at 10:44, Reini Urban via RT
parrotbug-follo...@parrotcode.org wrote:
 On Thu Jan 29 06:05:13 2009, Whiteknight wrote:
 On Wed Dec 24 05:39:54 2008, Whiteknight wrote:
  On Tue Dec 23 19:02:17 2008, jk...@verizon.net wrote:
   On Sat Jun 14 17:15:32 2008, jk...@verizon.net wrote:
Would it be possible to test Parrot on Win32 non-optimized and
 optimized
so as to see whether this is still a bug?

 This neg -0 = 0 error is observable on msvc and mingw.

 It is caused by the msvcrt.dll (aka the libc) for windows and is
 therefore parrot and compiler independent.
 cygwin is not affected, since newlib has this correct.

 We could work around it in the op for neg (DWIM) or keep it
 as expected platform semantics.
 I would vote for platform unity, and fix the neg -0 case.

+1 for fixing -0 to work the same everywhere.
~jerry


Re: [perl #36330] [TODO] Create a BigNum PMC

2009-02-05 Thread jerry gay
On Thu, Feb 5, 2009 at 10:23, Will Coleda w...@coleda.com wrote:
 On Thu, Feb 5, 2009 at 1:12 PM, chromatic chroma...@wgz.org wrote:
 On Thursday 05 February 2009 08:57:18 jerry gay wrote:

 we will roll our own bignum, and give users the ability to use gmp or
 another external library at configure time.

 That sounds like a fantastic recipe for hard-to-debug configuration problems
 and all of the joys of fixing copious amounts of bugs we don't even know
 about.

 We're pretty decent at writing VMs and compiler tools and languages.  If we
 were also good at writing transcendental and arbirtrary precision math
 libraries, we'd probably already have written one.

 -- c

 My 2 cents: it's ok to rely on external libraries. If they don't exist
 on our core platforms, we could do something crazy like help port
 them.

 We do not need to reinvent every wheel. We're already reinventing
 several as it stands.

silly me. i keep getting caught up in old-think lately. of course,
we've changed direction on this point, and the new-think is that we
do plan on relying on external libraries where it makes sense. we need
sane overflow semantics for our numeric pmcs if gmp isn't found, and
sane exceptions for unicode operations if icu isn't available.

a big warning in the configure output if icu or gmp isn't found would
certainly be a nice addition, so users know what they're in store for
if they don't have the (all but)? required external libraries
installed.

sorry for the confusion.
~jerry


Re: [perl #59790] t/stm/basic_mt.t #4 hangs on several platforms

2009-01-31 Thread jerry gay
On Sat, Jan 31, 2009 at 16:06, James Keenan via RT
parrotbug-follo...@parrotcode.org wrote:
 The t/stm/*.t tests have gone away (when or whence I do not know), so I
 propose we close this ticket.  Any objections?

the STM subsystem has been removed. close the ticket, and all other
STM-related tickets.
~jerry


Re: [svn:parrot] r36057 - in trunk: . config/auto config/auto/format config/gen/config_h include/parrot src t/compilers/imcc/syn t/op

2009-01-27 Thread jerry gay
On Tue, Jan 27, 2009 at 10:58, Nicholas Clark nw...@colon.colondot.net wrote:
 On Tue, Jan 27, 2009 at 10:24:46AM -0800, parti...@cvs.perl.org wrote:

 -gen_sprintf_call(tc, info, ch);
 -ts = cstr2pstr(tc);
 +/* check for Inf and NaN values */
 +if (thefloat == PARROT_FLOATVAL_INF_POSITIVE) {
 +ts = cstr2pstr(PARROT_CSTRING_INF_POSITIVE);
 +}
 +else if (thefloat == 
 PARROT_FLOATVAL_INF_NEGATIVE) {
 +ts = cstr2pstr(PARROT_CSTRING_INF_NEGATIVE);
 +}
 +/* XXX for some reason, this comparison isn't 
 working
 +else if (thefloat == PARROT_FLOATVAL_NAN_QUIET) 
 {

 No, it is working :-)

 NaN != NaN.

 Hence why = has 4 possible return values.

 +ts = cstr2pstr(PARROT_CSTRING_NAN_QUIET);
 +}
 +*/
 +else if (thefloat != thefloat) {

 The above is the valid test for a NaN.

 Note, Intel chose that the default optimiser setting on their compiler should
 be buggy. (Advice from Klortho #11912). The perl 5 Linux hints file suggests
 that one needs to add -we147 to enable correct floating point behaviour.

 The best test that I'm aware of for is it NaN or Inf? is val != val * 0;
 Then, NaN is val != val, +Inf is val  0, -Inf is val  0;

thanks! patched up in r36071 and r36072.
~jerry


Re: [perl #62010] [PATCH] fix PARROT_EXPORT visibility=default for gcc other than 4.x

2009-01-08 Thread jerry gay
On Thu, Jan 8, 2009 at 15:42, Mark Glines m...@glines.org wrote:
 donald.hun...@gmail.com wrote:

 I was pretty averse to adding an additional configure step myself. The
 problem is that warnings.pm checks specifically for supported compiler flags
 and I didn't want to include other things there. The bug is that gcc.pm is
 hardcoded for version 4.x rather than checking. I didn't want to add a
 duplicate check for -fvisibility=hidden in this file.

 As I understand it, -fvisibility=hidden goes hand in hand with
 __attribute__((visibility(default) so a single check covers both. If you
 want to implement the fix as an explicit check for
 __attribute__((visibility(default) in gcc.pm then that would work.

 Perhaps the simplest thing to do is just move my check into warnings.pm
 after all. My guess is that it's never right to use -fvisibility=hidden
 without also using __attribute__ ... so if one is used then the other needs
 to be as well. That seems to be the best argument for keeping them in the
 same place.

 Is there any version of gcc which accepts -fvisibility=hidden but not
 __attribute__((visibility(default)))?  If not, then I'm worrying about
 nothing, and we can probably just use the existing check for both.  But I
 agree, neither of these features makes much sense without the other.

decoupling is usually a good thing, but here i don't think it's worth
it. stick this functionality in an existing configure step.
~jerry


Re: [perl #57492] [CAGE] Explore possible speedups of t/configure/*.t tests

2008-11-23 Thread jerry gay
On Sun, Nov 23, 2008 at 13:26, James Keenan via RT
[EMAIL PROTECTED] wrote:
 On Mon Sep 08 18:43:49 2008, [EMAIL PROTECTED] wrote:
 On Tue Aug 19 19:28:43 2008, [EMAIL PROTECTED] wrote:
  A net total of 5 t/configure/*.t files were eliminated tonight as part
  of r30368 (RT 57780).

 And I've been able to consolidate a few more over the past few weeks.
 We now have 47 tests, down from a high of about 61.

 If anyone wants to suggest specific t/configure/*.t tests which could be
 merged (in the sense that their individual tests could logically sit
 within the same file), please speak up.  Otherwise, I will resolve this
 ticket within 7 days.

the use_ok tests can all go in one file, so they're only run once.
~jerry


Re: [perl #60624] [DEPRECATED] PARROT_API changes to PARROT_EXPORT

2008-11-18 Thread jerry gay
On Tue, Nov 18, 2008 at 05:16, Andrew Whitworth [EMAIL PROTECTED]wrote:

 On Mon, Nov 17, 2008 at 9:50 PM, via RT Jerry Gay
 [EMAIL PROTECTED] wrote:
  # New Ticket Created by  Jerry Gay
  # Please include the string:  [perl #60624]
  # in the subject line of all future correspondence about this issue.
  # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=60624 
 
 
  from DEPRECATED.pod:
 
   =item PARROT_API changes to PARROT_EXPORT [post 0.8.1]
 
   The PARROT_API name suggests something that is not the case yet.  This
  will
   become PARROT_EXPORT after November 2008 release.  (We will reintroduce
   PARROT_API on specific functions where appropriate post 1.0.0.)
 
  this is the rt tracking ticket. the work has begun in the api2export
 branch.

 Is this the only purpose of the branch, to change PARROT_API to
 PARROT_EXPORT? If so, it seems like it could be done in a single sed
 job and not need an entire branch for it.

 --Andrew Whitworth


yes, that's the purpose. however, it can't be done until after release, it
must be tested on multiple platforms since it affects the build, and some
files (like NEWS and DEPRECATED.pod) don't change. the branch will likely be
merged with trunk today or tomorrow. it builds on windows, and i will test
it on linux now.

branches are cheap.
~jerry


Re: [perl #60566] Broken link to Debian packages

2008-11-16 Thread jerry gay
On Sat, Nov 15, 2008 at 23:37, via RT Matt Kraai 
[EMAIL PROTECTED] wrote:

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


 Howdy,

 The link to the Debian packages on http://www.parrot.org/download is
 broken, apparently because line preceding it is a partial copy.  The
 attached patch may make the issue clearer.

 --
 Matt http://ftbfs.org/

 --- download~   2008-11-15 23:35:15.0 -0800
 +++ download2008-11-15 23:35:23.0 -0800
 @@ -107,7 +107,6 @@
  !--
  lia href=http://ftp.debian.org/debian/pool/main/p/parrot/;Debian
 Packages/a/li
  p--/p
 -lia href=http://alioth.debian.org/projects/pkg-parrot/
  lia href=http://alioth.debian.org/projects/pkg-parrot/;Debian
 Packages/a/li
  lia href=http://www.gentoo-portage.com/dev-lang/parrot
 Gentoo/a/li
  lia href=http://www.freebsd.org/cgi/ports.cgi?query=parrot
 Freebsd/a/li

 fixed at http://www.parrot.org/download. thanks for reporting.
~jerry


Re: [perl #60568] Re: Broken link to Debian packages

2008-11-16 Thread jerry gay
On Sat, Nov 15, 2008 at 23:39, via RT Matt Kraai 
[EMAIL PROTECTED] wrote:

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


 On Sat, Nov 15, 2008 at 11:37:20PM -0800, Matt Kraai wrote:
  The link to the Debian packages on http://www.parrot.org/download is
  broken, apparently because line preceding it is a partial copy.  The
  attached patch may make the issue clearer.

 I forgot to add that it would be nice if there was a link on each page
 indicating how and where to report problems.  It took me a bit of
 searching before I finally found instructions on the How to Get
 Involved page.

 --
 Matt http://ftbfs.org/


good point, but not related to this ticket. i've added #60578 to track this
issue.
~jerry


Re: [perl #60098] [BUG] load_bytecode couldn't find file 'P6object.pbc'

2008-10-24 Thread jerry gay
On Fri, Oct 24, 2008 at 8:49 AM, via RT Canol Gökel
[EMAIL PROTECTED] wrote:
 # New Ticket Created by  Canol Gökel
 # Please include the string:  [perl #60098]
 # in the subject line of all future correspondence about this issue.
 # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=60098 


 After doing the Windows installation via setup-parrot-0.8.0.exe I cannot run 
 the perl 6 compiler. When I do for example:

 perl6 example.pl

 It gives this error:

 load_bytecode couldn't find file 'P6object.pbc'
 current instr.: 'onload' pc 0 (src/gen_builtins.pir:28)
 called from Sub 'parrot;Perl6;Compiler;main' pc -1 ((unknown file):-1)

this seems to be a bug, perhaps in the code that generates the perl6
executable. in the meantime, you can remove perl6.exe (in the bin/
dir) and create perl6.cmd (same dir) with the following contents:

  @echo off
  rem adjust the path below to suit your environment
  set PARROT_ROOTDIR=c:\parrot-0.8.0
  %PARROT_ROOTDIR%\bin\parrot.exe %PARROT_ROOTDIR%\languages\perl6\perl6.pbc %*

~jerry


Re: [perl #60070] [BUG] make opsrenumber causes build to fail

2008-10-23 Thread jerry gay
On Wed, Oct 22, 2008 at 10:49 PM, Patrick R. Michaud (via RT)
[EMAIL PROTECTED] wrote:
 # New Ticket Created by  Patrick R. Michaud
 # Please include the string:  [perl #60070]
 # in the subject line of all future correspondence about this issue.
 # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=60070 


 In the lex branch I'm trying to add a new opcode, but
 I'm running into a build issue with opcode renumbering --
 after adding an opcode and running make opsrenumber,
 attempting to rebuild parrot fails with:

 /usr/bin/perl tools/build/ops2pm.pl src/ops/core.ops src/ops/bit.ops 
 src/ops/cmp.ops src/ops/debug.ops src/ops/experimental.ops src/ops/io.ops 
 src/ops/math.ops src/ops/object.ops src/ops/pic.ops src/ops/pmc.ops 
 src/ops/set.ops src/ops/stm.ops src/ops/string.ops src/ops/sys.ops 
 src/ops/var.ops
 skipped opcode is also in src/ops/ops.num at lib/Parrot/Ops2pm.pm line 145, 
 $op line 11.
 make: *** [lib/Parrot/OpLib/core.pm] Error 9

 In fact, this failure appears even if a new opcode isn't added --
 simply performing make opsrenumber followed by make results in
 the same error:

 $ svn up
 At revision 32122.
 $ make opsrenumber
 /usr/bin/perl tools/dev/opsrenumber.pl src/ops/core.ops src/ops/bit.ops 
 src/ops/cmp.ops src/ops/debug.ops src/ops/experimental.ops src/ops/io.ops 
 src/ops/math.ops src/ops/object.ops src/ops/pic.ops src/ops/pmc.ops 
 src/ops/set.ops src/ops/stm.ops src/ops/string.ops src/ops/sys.ops 
 src/ops/var.ops
 $ make
 [...]
 /usr/bin/perl tools/build/ops2pm.pl src/ops/core.ops src/ops/bit.ops 
 src/ops/cmp.ops src/ops/debug.ops src/ops/experimental.ops src/ops/io.ops 
 src/ops/math.ops src/ops/object.ops src/ops/pic.ops src/ops/pmc.ops 
 src/ops/set.ops src/ops/stm.ops src/ops/string.ops src/ops/sys.ops 
 src/ops/var.ops
 skipped opcode is also in src/ops/ops.num at lib/Parrot/Ops2pm.pm line 145, 
 $op line 11.
 make: *** [lib/Parrot/OpLib/core.pm] Error 9
 $

 Since a number of steps have changed since the last time I worked
 with adding/removing opcodes (April 2008), and I have little idea
 what might be causing this, I'm filing this ticket in hopes that
 someone can clear things up for me.

this is definitely fallout from the mmd branch merge. seems ops.skip
hasn't been modified, and make opsrenumber was never run after opcodes
were modified.

i wrote a hack that suggests all ops from ops.skip should be removed:
#!perl
use strict;
use warnings;

open my($NUM), '', 'ops.num'
or die $!;

open my($SKIP), '', 'ops.skip'
or die $!;

my $seen = {};

while ($SKIP) {
next unless m/^(\w+)/;
$seen-{$1}++;
}

while ($NUM) {
next unless m/^(\w+)/;
--$seen-{$1}
if defined $seen-{$1};
}

print $seen-{$_} ? ($_,$/) : ()
for keys %$seen;


=
c:\usr\local\parrot\main\src\opsseen.pl

c:\usr\local\parrot\main\src\ops
=

it returns no results, suggesting that all ops be removed from ops.skip.
indeed, after this, i am able to rebuild parrot, even with an added
opcode to core.ops (and running make opsrenumber).

however, i'm too tired to wait for the test suite to finish running,
so i'm reporting this before i hit the sack and will pick it up on the
morrow if nobody beats me to it.
~jerry


Re: Fw: Running Perl 6 Tests

2008-10-20 Thread jerry gay
On Mon, Oct 20, 2008 at 8:55 AM, Ovid
[EMAIL PROTECTED] wrote:
 It would help if I sent this to the correct mailing list.  Oops.

 Cheers,
 Ovid

 --- On Mon, 20/10/08, Ovid [EMAIL PROTECTED] wrote:

 I've been doing some work integrating Perl 6 into vim
 and now I'm trying to figure out how to run individual
 Perl 6 tests.  It appears that the incantation is along the
 lines of:

   perl t/harness --verbosity 1 t/01-sanity/02-counter.t

 However, in digging further, I found this:

   perl t/harness --verbosity 1 t/02-test-pm/1-basic.t

 That starts off with Statement not terminated
 properly at line 87, near (\Hello
 Wo and goes downhill from there.

 In fact, in reading through the Makefile, I don't see
 that this gets run unless you do 'make testtest'
 (added by particle back in Dec 2007).  This doesn't
 appear to be documented.  Is it supposed to be run?  Should
 those Perl 6 tests be valid?

testtest and 02-test-pm/ should either be ripped out or heavily modified.
it was intended to be tests required to pass in order to run pugs' Test.pm.
rakudo never did use pugs' Test.pm, and no longer attempts to.
these tests are failing, and not run by default.
i'd like to see requirements for rakudo's Test.pm tested instead.

 Also, the way that t/00-parrot/06-op-inplace.t is written
 forces the test numbers to be out of sequence.  This causes
 make test to fail, even though it's merely a
 parse error.  The Test.pm module appears to work (I've
 only checked it superficially), so why not use that to make
 some of these tests a bit easier to write?  Are we trying to
 avoid loading modules while testing core features?

yes, 00-parrot tests are prerequisites to running Test.pm.
they can't use the module to perform their tests.
it does indeed look like the test numbers are out of order.
...time passes...
it seems infix:**= is broken. the fix isn't obvious to me.
perplexing... doubly so as t/spec/S03-operators/assign.t passes these.
~jerry

~jerry


Re: [perl #48549] [DEPRECATED] [PDD19] Let .namespace (no args) have empty brackets

2008-10-20 Thread jerry gay
On Thu, Oct 16, 2008 at 6:49 AM, jerry gay [EMAIL PROTECTED] wrote:
 On Wed, Oct 15, 2008 at 11:42 AM, Andrew Whitworth via RT
 [EMAIL PROTECTED] wrote:
 On Wed Jul 30 11:57:39 2008, coke wrote:
 PDD19 lists this as deprecated now, changing from an [RFC] to
 [DEPRECATED], re-opening from stalled.

 The big hangup for this ticket is that various parts of PCT and the
 CodeString PMC do not support empty brackets, and therefore PCT does not
 emit .namespace [] in these situations. Since PCT is one of the
 biggest producers of PIR code, we obviously can't move forward on the
 deprecation of this feature until CodeString is updated to emit [] for
 an empty namespace instead of just saying .namespace.

 I know pmichaud was talking about a major rewrite of PGE in the future,
 maybe this change could be included in the laundry list of things to do
 during that time?

 since .namespace  and .namespace [] mean the same thing, i don't
 see a reason this can't be converted in trunk and piecemeal. it's
 already listed as deprecated, so it's just a matter of tuits. i think
 i have some. am i alone?

i've committed one-line changes to pge and tge that seem to have
modified the behavior of .namespace with the root namespace to emit
empty brackets in r32051. if this can be verified independently, this
ticket can be closed.
~jerry


Re: [perl #59940] [patch] convert perl tests to parrot

2008-10-18 Thread jerry gay
On Fri, Oct 17, 2008 at 4:00 PM, Mark Grimes [EMAIL PROTECTED] wrote:
 The attached patch now includes the pir/pasm_error_output* tests in
 pir. I have also added t/pmc/complex.t. Couple of issues:

 1) I am not sure how to deal with pcc_sub's so I put them into
 t/pmc/objects-pcc_sub.t
 2) There appears to be a bug that shows up in complex.t -
 complex_divide_by_zero_*(). I have skip'ed those tests and will submit
 a simplified bug report and test.

 This drops the test run time for these from 24 seconds to less than 2.
 Also, this patch should hopefully apply cleanly. I had to make some
 changes to the $Id: line in the patch by hand.

 -Mark

 On Fri, Oct 17, 2008 at 10:35 AM, Mark Grimes [EMAIL PROTECTED] wrote:
 On Fri, Oct 17, 2008 at 12:39 AM, Christoph Otto via RT
 [EMAIL PROTECTED] wrote:
 You can fix the foo_error_bar tests by using an exception handler to
 catch the (appropriate type of) exception.
 The simplest way is to use push_eh with a label.  If the exception is
 raised, control will jump to that label.  t/pmc/resizablestringarray.t
 uses this style.

 Thanks Christoph. That is pretty straight forward. I'll update and
 send a new patch.

 when I was on my PIRifying binge, but I didn't have nearly enough
 patience at the time.

 Agreed. Takes quite a bit of patients, but I have put together a vim
 function and perl script that takes care of some of the more common
 test idioms automatically. I'll make it public after I clean it up a
 bit more.

 Any suggestion on how to deal the the .pcc_sub tests. I admit, I don't
 quite understand what pcc_sub are, and I get an error whenever they
 are included:

  error:imcc:syntax error, unexpected PCC_SUB, exprint $end ('.pcc_sub')

 There are two tests in object.t that use them.

s/\.pcc_sub/\.sub/g; ##  this will fix it
~jerry


Re: [perl #48549] [DEPRECATED] [PDD19] Let .namespace (no args) have empty brackets

2008-10-16 Thread jerry gay
On Wed, Oct 15, 2008 at 11:42 AM, Andrew Whitworth via RT
[EMAIL PROTECTED] wrote:
 On Wed Jul 30 11:57:39 2008, coke wrote:
 PDD19 lists this as deprecated now, changing from an [RFC] to
 [DEPRECATED], re-opening from stalled.

 The big hangup for this ticket is that various parts of PCT and the
 CodeString PMC do not support empty brackets, and therefore PCT does not
 emit .namespace [] in these situations. Since PCT is one of the
 biggest producers of PIR code, we obviously can't move forward on the
 deprecation of this feature until CodeString is updated to emit [] for
 an empty namespace instead of just saying .namespace.

 I know pmichaud was talking about a major rewrite of PGE in the future,
 maybe this change could be included in the laundry list of things to do
 during that time?

since .namespace  and .namespace [] mean the same thing, i don't
see a reason this can't be converted in trunk and piecemeal. it's
already listed as deprecated, so it's just a matter of tuits. i think
i have some. am i alone?

~jerry


Re: [perl #36249] [TODO] Document policy on breakage, er, backward compatibility.

2008-10-16 Thread jerry gay
On Thu, Oct 16, 2008 at 10:12 AM, Andrew Whitworth via RT
[EMAIL PROTECTED] wrote:
 On Sat Jun 11 13:08:49 2005, chip wrote:
 Short version: Up through version 0.8 or so, we promise to break
 everything constantly (but not until we have a good reason).  After
 that, we will establish version number thresholds below which
 individual APIs will not change.

 For example, only on a major version change are we allowed to even
 consider breaking the embedding API.  On the other hand, we may break
 pasm somewhat more frequently: humans should only write pir, not pasm,
 and it's not against the law to abuse silicon-based life forms.

 Has anybody put any thought into this? Do we have any documents or
 drafts which address this issue? We are getting close enough to the 0.8
 release that's mentioned here as a specific milestone for getting this done.

replace 0.8 with 0.50 or so. we're not close enough to release at 0.8
to worry about this yet.
~jerry


Re: [perl #59658] Build failure in src/pmc/float.c -- non-constant intiializer

2008-10-14 Thread jerry gay
On Tue, Oct 14, 2008 at 7:23 AM, Andy Dougherty [EMAIL PROTECTED] wrote:

 On Sat, 11 Oct 2008, Allison Randal via RT wrote:

  jerry gay wrote:
  
 .\src\pmc\float.c(3340) : warning C4204: nonstandard extension used
   : non-constant aggregate initializer
  
   there are now hundreds of these warnings in that build. we do have
   warnings ratcheted up pretty high, but i don't think it's worth
   relaxing them for this construct unless it's very difficult to change
   the code generator--i assume this is generated code, since it's in so
   many pmc .c files. i may get a chance to investigate further this
   evening, if somebody hasn't beaten me to it.
 
  Yes, that's generated code, it's part of the initialization of MULTIs
  declared in a PMC. I was hoping to avoid all those C strings. But, try
  r31879.

 Yes, that works fine.

works fine here, too. thanks.
~jerry


Re: [svn:parrot] r31791 - trunk/t/pmc

2008-10-08 Thread jerry gay
On Wed, Oct 8, 2008 at 1:59 PM, Nicholas Clark [EMAIL PROTECTED] wrote:
 On Wed, Oct 08, 2008 at 01:48:17PM -0700, chromatic wrote:

 In general, filesystems are case-insensitive, not platforms.  I believe Mac 
 OS
 X's Hateful File System Plus is one offender, though you can use UFS instead.

 HFS+ itself can be set to case sensitive. I have a machine partitioned so that
 it has a case sensitive partition, as well as a boot partition with the
 default.

 I have no idea whether NTFS can be set to case sensitive. I wouldn't be
 surprised if it can, and that that would thoroughly surprise most programs :-)

 Likewise, *nix can mount file systems from machines that are not case
 sensitive. You just can't know.

i believe ntfs 5.0 can be set case sensitive--i haven't been crazy
enough to try.

give me a method of detecting the file system upon which these tests
are running,
and i'll give you a box of doughnuts. i might even modify the test.
~jerry


Re: [perl #59658] Build failure in src/pmc/float.c -- non-constant intiializer

2008-10-07 Thread jerry gay
On Mon, Oct 6, 2008 at 12:00 PM, via RT Andy Dougherty
[EMAIL PROTECTED] wrote:
 # New Ticket Created by  Andy Dougherty
 # Please include the string:  [perl #59658]
 # in the subject line of all future correspondence about this issue.
 # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=59658 


 Trying to compile today's parrot on:
SunOS xxx 5.8 Generic_117350-02 sun4u sparc SUNW,Ultra-5_10
 with Sun's compiler:
cc: WorkShop Compilers 4.2 30 Oct 1996 C 4.2

 it failed with the following errors:

 src/pmc/float.c

 /home/doughera/src/parrot/parrot-cc/tools/build/../../lib/Parrot/Pmc2c/PCCMETHOD.pm,
  line 465: warning: statement not reached
[ repeated 17 times ]
./src/pmc/float.c, line 3340: non-constant initializer: op U*
./src/pmc/float.c, line 3341: non-constant initializer: op U*
./src/pmc/float.c, line 3342: non-constant initializer: op U*
[ 21 more similar errors ]
./src/pmc/float.c, line 3454: cannot recover from previous errors

 Looking at src/pmc/float.c, the first lines in question are:

const  multi_func_list _temp_multi_func_list[] = {
{ CONST_STRING(interp, is_equal),/* line 3340 */
  CONST_STRING(interp, IJPP),/* line 3341 */
  CONST_STRING(interp, Float,Float), /* line 3342 */
  (funcptr_t) Parrot_Float_multi_is_equal_Float },

 which ultimately expand to:

const  multi_func_list _temp_multi_func_list[] = {
{  ( interp ) - const_cstring_table [ 515 ],
   ( interp ) - const_cstring_table [ 84 ],
   ( interp ) - const_cstring_table [ 639 ],
  (funcptr_t) Parrot_Float_multi_is_equal_Float },

 which indeed are non-constant initializers.  GNU cc accepts this, as do
 more modern compilers from Sun (such as version 5.9).  I'm guessing it's
 a C99 thing, but I don't actually know.

 What to do about it?  I suppose I could go in and rewrite those statements
 (and similar ones that crop up in other PMCs)  but I certainly won't
 have any time to do that any time soon.

 Should anyone care?  It's certainly an old compiler, but it's the only
 Sun compiler I have available on SPARC, and SPARC has often been a very
 helpful platform for debugging alignment and endian issues in parrot.

msvc 9.0 (the most recent version) also complains:

  .\src\pmc\float.c(3340) : warning C4204: nonstandard extension used
: non-constant aggregate initializer

there are now hundreds of these warnings in that build. we do have
warnings ratcheted up pretty high, but i don't think it's worth
relaxing them for this construct unless it's very difficult to change
the code generator--i assume this is generated code, since it's in so
many pmc .c files. i may get a chance to investigate further this
evening, if somebody hasn't beaten me to it.

~jerry


Re: [perl #59374] [BUG] pmc2c produces incorrect code for RETURN(INTVAL -1)

2008-09-26 Thread jerry gay
On Fri, Sep 26, 2008 at 9:11 AM, Patrick R. Michaud (via RT)
[EMAIL PROTECTED] wrote:
 # New Ticket Created by  Patrick R. Michaud
 # Please include the string:  [perl #59374]
 # in the subject line of all future correspondence about this issue.
 # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=59374 


 Summary:  pmc2c produces incorrect code for returning negative
 integer constants, as in RETURN(INTVAL -1)


 Longer description:  In the set_readline_interactive method of the
 ParrotIO PMC line 200 reads

RETURN(INTVAL -1);

 This is supposed to return a value of -1 when the method is called
 and the readline library is not present.  However, when run this is
 actually returning 1 (readline is not present in the example below):

$ cat z.pir
.sub main :main
.local pmc stdin

stdin = getstdin
$I0 = stdin.'set_readline_interactive'(1)
say $I0
.end
$ ./parrot z.pir
1

 Looking at the code generated in src/pmc/parrotio.c (line 775 on my
 system), we see:

/*BEGIN RETURN INTVAL -1 */
/*BEGIN GENERATED ACCESSORS */
 #line 777 ./src/pmc/parrotio.pmc
CTX_REG_INT(_ctx, 0) = 1;

 I think somewhere the minus sign is being lost when the code is being
 generated.  This also occurs earlier in the method for a couple
 of instances of RETURN(INTVAL -2):

/*BEGIN RETURN INTVAL -2 */
/*BEGIN GENERATED ACCESSORS */
 #line 722 ./src/pmc/parrotio.pmc
CTX_REG_INT(_ctx, 0) = 2;

 Pm


indeed. the code in parse_p_args_string in
lib/Parrot/Pmc2c/PCCMETHOD.pm was losing the minus sign. i've
committed a fix in r31441.

after the change:
  [EMAIL PROTECTED]:~/parrot/trunk$ ./parrot z.pir
  -1

~jerry


Re: [svn:parrot] r31385 - trunk/docs/book

2008-09-24 Thread jerry gay
On Wed, Sep 24, 2008 at 4:31 PM, chromatic [EMAIL PROTECTED] wrote:
 On Wednesday 24 September 2008 11:22:22 [EMAIL PROTECTED] wrote:

 Modified:
trunk/docs/book/ch04_pir_subroutines.pod
trunk/docs/book/ch09_hlls.pod

 Log:
 [Book] Add some basic info about VTables and HLL namespaces.

 Modified: trunk/docs/book/ch04_pir_subroutines.pod
 --- trunk/docs/book/ch04_pir_subroutines.pod  (original)
 +++ trunk/docs/book/ch04_pir_subroutines.pod  Wed Sep 24 11:22:22 2008
 @@ -490,6 +490,63 @@

  =head3 VTABLE Methods

 They're not really methods in any PIR or C sense though (I usually use the
 term entry), as they're not really inherited nor invoked through a dispatch
 scheme and they're stored elseways from methods on classes and PMCs, and I've
 never seen them spelled other than VTABLE in the source and vtable in
 discussion.  Otherwise, the information here is correct.

i believe (without looking) that the pmc pdd calls them vtable functions.

i really wish the vtable methods meme would die. they're not
methods. they are a collection functions which define the api to
access the pmc, parrot's abstract data type.
~jerry


Re: [svn:parrot] r31049 - in trunk: include/parrot languages/perl6/src/builtins languages/perl6/src/parser languages/perl6/t

2008-09-18 Thread jerry gay
On Thu, Sep 18, 2008 at 8:37 AM, Geoffrey Broadwell [EMAIL PROTECTED] wrote:
 On Thu, 2008-09-18 at 07:34 -0500, Patrick R. Michaud wrote:
  Aggregating coroutine and aggregating yield aren't nearly as zippy
  as 'gather' and 'take', but they're more meaningful to a broader
  audience, which may help the feature spread.

 I don't buy this.  The Perl 6 terms are well chosen, and as soon as you
 know what they mean in the context of programming, you won't forget.
 The other versions ... well, let's leave it at easy to forget.  (OK,
 one more thing -- the word coroutine scares people.  Gather does
 not.)

 I'm rather hoping and expecting that gather and take become
 the meaningful names for this feature, much like grep started
 out as a Unix shell command but is now the language-agnostic term for
 extract things from a list matching a pattern.

 Now *this* I agree with.  The first system to make a feature standard
 gets first try at standardizing the name.  If they've chosen the name
 well, there's a decent chance it will stick.

what's the difference between gather and aggregating coroutine?
lipstick.

but seriously, folks,

what some refer to as traits, perl 6 calls roles.

what some refer to as associative arrays, perl calls hashes.
but aren't hashes that funny key on your phone you type after you've
entered your credit card info? oh, right, that's pound. huh? i
thought that's an outdated form of currency.
let's call it octothorpe. wait, what? you store your dispatch table
in an octothorpe?

we need to be precise in naming constructs, rather than using common names.
scientists call a chanterelle mushroom by its proper name,
Cantharellus cibarius.

we should call gather and take by their proper names where they're
defined. aggregating coroutine is more precise and descriptive than
is gather, however gather is much easier to say in polite company,
and is therefore a better name to use at the language level.

a related point: wherever these constructs are defined, they need to
be documented. you may think CONTROL_RETURN is obviously for
return statements, but many will find it quite strange that return
is an Exception at all.

~jerry


Re: [svn:parrot] r31049 - in trunk: include/parrot languages/perl6/src/builtins languages/perl6/src/parser languages/perl6/t

2008-09-18 Thread jerry gay
On Thu, Sep 18, 2008 at 10:21 AM, Patrick R. Michaud [EMAIL PROTECTED] wrote:
 On Thu, Sep 18, 2008 at 09:06:44AM -0700, jerry gay wrote:
 On Thu, Sep 18, 2008 at 8:37 AM, Geoffrey Broadwell [EMAIL PROTECTED] 
 wrote:
  On Thu, 2008-09-18 at 07:34 -0500, Patrick R. Michaud wrote:
   Aggregating coroutine and aggregating yield aren't nearly as zippy
   as 'gather' and 'take', but they're more meaningful to a broader
   audience, which may help the feature spread.
 
  I don't buy this.  The Perl 6 terms are well chosen, and as soon as you
  know what they mean in the context of programming, you won't forget.
  The other versions ... well, let's leave it at easy to forget.  (OK,
  one more thing -- the word coroutine scares people.  Gather does
  not.)
 
  I'm rather hoping and expecting that gather and take become
  the meaningful names for this feature, much like grep started
  out as a Unix shell command but is now the language-agnostic term for
  extract things from a list matching a pattern.
 
  Now *this* I agree with.  The first system to make a feature standard
  gets first try at standardizing the name.  If they've chosen the name
  well, there's a decent chance it will stick.

 what some refer to as traits, perl 6 calls roles.

 what some refer to as associative arrays, perl calls hashes.
 [...]
 we need to be precise in naming constructs, rather than using common names.
 scientists call a chanterelle mushroom by its proper name,
 Cantharellus cibarius.

 Other languages have adopted the Perl shortname of hash as well,
 including Ruby and this odd little creature known as Parrot.  Perhaps
 we should rename Parrot's Hash class to AssociativePMCArray?  1/2 ;-)

 we should call gather and take by their proper names where they're
 defined. aggregating coroutine is more precise and descriptive than
 is gather, however gather is much easier to say in polite company,
 and is therefore a better name to use at the language level.

 By this reasoning, we should also change the other exceptions:

.CONTROL_RETURN   =   .CONTROL_SUB_RETURN   (or .CONTROL_SUB_EXIT)
.CONTROL_BREAK=   .CONTROL_LOOP_EXIT
.CONTROL_CONTINUE =   .CONTROL_LOOP_NEXT

 and perhaps add .CONTROL_LOOP_REPEAT there as well.  Note that I'm not at
 all opposed to this -- if we're going to do it for one, we really
 ought to do it for all.

agreed. precision is of little benefit unless it's consistent across
related functionality.

~jerry


Re: [perl #58866] calling a PIR sub with 206 params segfaults parrot

2008-09-17 Thread jerry gay
On Tue, Sep 16, 2008 at 11:45 PM, Christoph Otto via RT
[EMAIL PROTECTED] wrote:
 On Tue Sep 16 15:00:24 2008, [EMAIL PROTECTED] wrote:
 On Tuesday 16 September 2008 14:47:58 NotFound wrote:

   It certainly shouldn't segfault. But, the question is: why does it
   segfault at 206 parameters? Throwing an exception to avoid an
 error we
   don't understand isn't good for the long-term health of the VM.
 
  The problem is located inside compilers/imcc/pcc.c:pcc_get_args
 function.
 
  It has the comment /* XXX check avail len */ just at the point where
  the segfault happens. char buf[1024] is the variable overrunned.

 That sounds like a bog-standard static variable overflow, where each
 parameter
 requires five bytes of storage.  If that's a good rule of thumb, we
 could
 malloc/free that buffer instead, and then beat anyone who uses more
 than a
 dozen parameters.

 -- c



 Looking at the code, it's 5n+1.  r31200 changes the static buffer to a
 dynamic one of the correct size.  The original PIR code now runs without
 segfaulting, as does a version with 20,000 int params.  make test also
 passes, so nothing new appears to be broken.

 With the assumption that the said beatings will be a manual process, I'm
 marking this resolved.


you didn't mention it, but i sincerely hope you committed a test with
20,000 params that proves this and makes sure we don't regress in a
future revision. parrot needs much more stress testing like this, and
it would be a shame to miss this opportunity.
~jerry


Re: [perl #58742] [TODO] Marker for RTs re SmartLinks

2008-09-16 Thread jerry gay
On Tue, Sep 16, 2008 at 5:14 AM, James Keenan via RT
[EMAIL PROTECTED] wrote:
 On Tue Sep 16 00:08:29 2008, [EMAIL PROTECTED] wrote:
 On Monday 15 September 2008 20:06:11 James Keenan via RT wrote:

  See patch attached.  The patch eliminates smartlink-related code from
  Parrot, but does not touch anything in languages/.

 It contains some commented out code that should probably just go away.
 Otherwise, +1.


 Yes, this was a first version of the patch which I rushed out largely to
 see what effect deleting the code would have on the Parrot and Perl 6
 'make test' suites.  (Answer:  none, accounting for deleted tests.)  My
 plan is to fine tune it by also deleting some comments referring to
 smartlinks in other tests such as t/pmc/object.t.

parrot needs a way for us to measure spec coverage in our test suite.
i started the current smartlinks code as an experiment in using moose,
and as a reaction to the mess of smartlink code that's in the pugs
repo. however, i'm not married to the code, so rip it out if you
like--i never completed it, anyway.

a few things about the smartlink code currently in pugs that needs to
be addressed to work well with parrot:
* parrot both follows the parrot design documents, and the perl 6 spec
docs (mainly pge). this is not possible in pugs' system
* it should be well-tested. if pugs' system is used, hopefully the
tests can be used there as well
* it should be easily maintainable. i don't find the pugs' code easy to read.

i'd *love* to see smartlinks working in parrot. one of the big
problems in the parrot test suite is our lack of ability to measure
the test coverage of both code and spec. although smartlinks likely
won't offer us solid quantitative metrics, it will provide important
visual qualitative measures.

oh, one other thing--there was a comment about a perl 6 syntax for
smartlinks somewhere. that's outside the scope of this project, as all
the spec/design docs are written in perl 5 pod. it's something to
think about, but something we'll only address when we have a need
(perhaps when/if the spec docs are rewritten in perl 6 pod?)

~jerry


Re: [perl #58934] [CAGE] 'make fulltest' says PASS at the end, although some tests failed

2008-09-16 Thread jerry gay
On Tue, Sep 16, 2008 at 12:27 PM, via RT Moritz Lenz
[EMAIL PROTECTED] wrote:
 # New Ticket Created by  Moritz Lenz
 # Please include the string:  [perl #58934]
 # in the subject line of all future correspondence about this issue.
 # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=58934 


 'make fulltest' runs several chunks of tests, and does not show a final
 summary. So although some tests in some chunks fail, the last thing that
 the tester sees is something along these lines:

 ===(  35
 )==All tests
 successful.
 Files=10, Tests=108, 29 wallclock secs ( 0.04 usr  0.02 sys + 19.55 cusr
  1.44 csys = 21.05 CPU)
 Result: PASS
 make[1]: Leaving directory `/home/moritz/src/parrot'

 If only the last chunk succeeded.

 This is very misleading, and probably dangerous.

 At the very least it should say something like WARNING: not all tests
 were successful, scroll up to find out which failed.
 This could be done by collecting the return values from the various
 'make test*' calls.

 Even better would be real summary at the end listing the failed tests.

 (Observed with perl-5.10.0 and Test::Harness 3.11, parrot as of
 shortly-before 0.7.1)

 Moritz
 --
 Moritz Lenz
 http://moritz.faui2k3.org/ |  http://perl-6.de/


parrot's fulltest runs the harness multiple times without a very clear
distinction. as i understand, this behavior can now be changed, as we
require T::H 3. the fulltest target must be modified to report the
results from each harness run together at the end, rather than
seperately after each harness run.

~jerry


Re: [perl #43857] [TODO] Refactor config probes that are used only by language implementation

2008-09-11 Thread jerry gay
On Thu, Sep 11, 2008 at 4:47 PM, James Keenan via RT
[EMAIL PROTECTED] wrote:
 I'm trying to see if we can move this ticket toward resolution.  I think
 that it has remained unresolved for so long because the original post
 originally called for two steps:  (a) removal from Configure.pl of
 configuration steps which probed for features only used in specific
 language implementations; (b) development of a way to conduct such
 language-specific probes in the language directory trees after 'perl
 Configure.pl' and 'make' have been run.

 There were two specific steps cited for removal per (a):  auto::python
 and auto::m4.  By June of this year I had removed both of those from
 Parrot configuration.

 So that leaves us with (b).  particle wrote:  languages/dotnet/ has its
 own configure.pl, and m4, plumhead, etc. should follow that model.
 Barney responded:  One thing that held me back from using something
 like 'dotnet/Configure.pl' was that 'dotnet/Configure.pl' currently
 needs to be explicitly called after the main 'Configure.pl' has run.
 This is bad for universal languages testing.

 And that's where discussion left off three months ago.  I am
 recommending the following:

 (1) Mark this ticket resolved.
 (2) Conduct discussion on list or IRC as to the best architecture/model
 for language-specific probes.
 (3) Once we've come to such resolution on (2), open a new RT to
 implement what we've decided.

 particle, Barney:  Any objections?

's fine with me.
~jerry


Re: Why Some MMD Tests Fail

2008-09-08 Thread jerry gay
On Mon, Sep 8, 2008 at 1:09 AM, Allison Randal [EMAIL PROTECTED] wrote:
 a) Do abstract base classes as currently implemented in Parrot serve any
 useful purpose? If not, eliminate them.

can they be replaced by roles?

~jerry


Re: [perl #39117] [TODO] Using v?snprintf/strlcpy/strlcat when useful

2008-09-07 Thread jerry gay
On Sun, Sep 7, 2008 at 2:07 PM, Andy Dougherty [EMAIL PROTECTED] wrote:
 On Sat, 6 Sep 2008, Christoph Otto via RT wrote:

 On Wed May 10 11:01:34 2006, stmpeters wrote:
 
  I'm taking a look at it.  I should have something working this evening
  for the configs.  Adding the HAS_BLAH's will take some additional time.
 
  Steve Peters
  [EMAIL PROTECTED]


 when useful is vague does not indicate why the extra configuration
 machinery is justified by whatever benefit we'd get from using these
 functions.  If someone would like to make the requirements a little
 tighter or make the case for implementing this request (or even
 implement it), they'd be encouraged.  Otherwise this ticket isn't very
 useful.
 It would be good to either go somewhere with this or reject this request.

 These functions are typically used in place of the plain sprintf and
 strcat family as a way to be explicitly careful about buffer overflows.
 Plain sprintf and strcat are both widely used in the parrot source.
 Replacing them when it would ease future maintenance and help ensure
 parrot is not susceptible to buffer overflows is a quite sensible path
 forward.

 As you correctly observe, no one has actually done anything about it yet.
 That doesn't mean it's not worth doing, however.

 I'd say it should simply stay as an open ticket.

+1
~jerry


Re: [perl #56382] [RFC] Making Test::Harness 3 available without including it in core parrot.

2008-09-07 Thread jerry gay
On Tue, Jul 1, 2008 at 7:17 AM, Will Coleda via RT
[EMAIL PROTECTED] wrote:
 On Thu Jun 26 11:01:00 2008, [EMAIL PROTECTED] wrote:
 chromatic wrote:

  T::H 3 is only a requirement for people who want to type 'make
 smolder' (and
  eventually I hope 'make smoke'), so probing for it without bundling
 it seems
  eminently sensible to me.

 Agreed. That's what we do with TAP::Harness::Archive.


 Based on recent emails to the list, apparently 'make test' in trunk
 seems to now require T::H 3. (not just for 'make smolder').

 If we can do without T::H 3 for simple 'make test', that would be nice.
 If we need it, then we need to have a graceful exit message on make test
 and not the error we get now.

T::H 3 has been listed as a required dependency for many test-related
enhancements, such as parallel testing, aggregated testing, and smoke
testing. let's make it a requirement, rather than an optional
dependency. if it proves too burdensome for folks to upgrade, we can
rollback.

 We also need to add a config probe to test for the version of T:H
 available, and if it is NOT the minimum version, warn the user that
 'make test' will fail to work for them.

 We also need to see if we can require a specific version in
 Bundle::Parrot. I'm not sure that's possible. particle?

yes, it's possible. easy, even. it's done is svn, and i can release to
cpan on short notice.

 I don't particularly mind requiring T::H 3 even for 'make test', but we
 definitely need to be careful about it. We should probably declare this
 in our requirements in the tarball we post to CPAN as well so that don't
 automatically fail most of our cpan testers.

that's what Makefile.PL is for. if we require Bundle::Parrot there, we
can make sure cpan testers have what they need. if we do the same in
Configure.pl, then we can make sure svn users have what they need,
too.

something like:
eval { require Bundle::Parrot };
if ($@) {
die Bundle::Parrot has not been installed, Configure.pl cannot continue.;
}

that is, if Bundle:: modules get registered with perl. i'm not sure
that's the case. anyone know better?
~jerry


Re: [svn:parrot-pdd] r30569 - trunk/docs/pdds

2008-09-05 Thread jerry gay
On Fri, Sep 5, 2008 at 2:36 AM, Klaas-Jan Stol [EMAIL PROTECTED] wrote:
 On Tue, Sep 2, 2008 at 12:43 PM, Allison Randal [EMAIL PROTECTED] wrote:

 Klaas-Jan Stol wrote:


 This must make the following syntax rule illegal:

  target = null

 because if null is declared as a .local, you can't know whether you want
 to nullify target, or want to set target's value to that of the .local
 variable null.

 I take it this is no problem; just stick to

  null target

 if you actually want to set target to 0/null.


 Yes, that's reasonable. The syntactic sugar was confusing in that case
 anyway. (Seemed like you were assigning a null value to the destination
 register, rather than nullifying the PMC in the destination register.)

 This belongs in a general category of opcodes where the standard
 transformation of call the opcode with the first argument stuck before an
 '=' sign doesn't really make sense.

 Allison


 the problem seems to be a bit bigger than I had foreseen. The issue is that
 ops with the first operand marked as 'OUT' may be rewritten as:
 target = op [operand [, operand]*]?

 However, consider the following:

 .local pmc getstdin

 $P0 = getstdin

 How should this be resolved? is the opcode 'getstdin' meant here, or is it
 the value of the .local getstdin. This problem occurrs with all ops, not
 only with single-operand ops.

 kjs

the sugar for what can be on the left side of an equals sign needs to
be changed. simply having a first parameter with OUT isn't enough. the
same thing happens for
  $P0 = push $S1
which is legal pir syntax, but obscure at best.

ops must have some means of specifying (perhaps an attribute like
C:returns or C:rvalue?) that allows them to be on the right side
of the equals. only this class of ops allows the syntax described
above.

in the case of
  .local pmc getstdin
  ...
  $P0 = getstdin

this can be resolved because the (now) compiler knows (either during
parsing or semantic analysis) that the Cgetstdin op is not allowed
to be an rvalue and lookup Cgetstdin in the list of C.locals as a
fallback.
~jerry


Re: [perl #58610] [ PATCH ] Broken link on parrotcode.org dev page - list item Parrot Testing Status

2008-09-05 Thread jerry gay
On Fri, Sep 5, 2008 at 9:59 AM, via RT Ronald Schmidt
[EMAIL PROTECTED] wrote:
 # New Ticket Created by  Ronald Schmidt
 # Please include the string:  [perl #58610]
 # in the subject line of all future correspondence about this issue.
 # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=58610 


 I applied for an account and built what seems to me to be an appropriate
 Parrot Testing Status page.  My proposed link target is
 http://www.parrot.org/wiki/some-testing-status-tools .  If someone wants
 to set me up as a site editor I will fix the link myself otherwise the
 page is available for someone else to fix the link.

you're now an editor. have at it!
~jerry


Re: My Parrot 0.7.0 patches (cygwin)

2008-08-26 Thread jerry gay
On Tue, Aug 26, 2008 at 2:34 AM, Reini Urban [EMAIL PROTECTED] wrote:
 I'll go now for something like

 #IF(key1|key2(key3!key4))
 #IFNOT(key1|key2(key3!key4))

 And probably a shortcut for the negative else clause, like
 #IF(cygwin):
 #ELSE:

 #+ and #- is lisp so I don't want to destroy #+ the syntax rules.
 #IF(): is quite short and easy to read.

i know it was all caps before, but do we need to continue that trend?
i find it ugly.

stealing the markers from perl 6's test suite compiler directives, and
using lower case and full english words, i suggest:

#?if(foo|bar) ...
#?else if(baz) ...
#?else ...
#?unless(quux) ...

~jerry


Re: 57548-CONDITIONED_LINE_enh

2008-08-26 Thread jerry gay
On Tue, Aug 26, 2008 at 9:16 AM, Reini Urban [EMAIL PROTECTED] wrote:
 jerry gay schrieb:

 On Tue, Aug 26, 2008 at 2:34 AM, Reini Urban [EMAIL PROTECTED] wrote:

 I'll go now for something like

 #IF(key1|key2(key3!key4))
 #IFNOT(key1|key2(key3!key4))

 I went for #UNLESS(expr): here.
 Also #ELSIF(expr):

 And probably a shortcut for the negative else clause, like
 #IF(cygwin):
 #ELSE:

 #+ and #- is lisp so I don't want to destroy #+ the syntax rules.
 #IF(): is quite short and easy to read.

 i know it was all caps before, but do we need to continue that trend?
 i find it ugly.

 stealing the markers from perl 6's test suite compiler directives, and
 using lower case and full english words, i suggest:

 #?if(foo|bar) ...
 #?else if(baz) ...
 #?else ...
 #?unless(quux) ...

 Okay, also fine.
 With or without the ending double-colon?

the colon is unnecessary. the ending paren and a mandatory whitespace is enough.
~jerry


Re: My Parrot 0.7.0 patches (cygwin)

2008-08-26 Thread jerry gay
On Tue, Aug 26, 2008 at 11:00 AM, Allison Randal [EMAIL PROTECTED] wrote:
 jerry gay wrote:

 #+ and #- is lisp so I don't want to destroy #+ the syntax rules.
 #IF(): is quite short and easy to read.

 i know it was all caps before, but do we need to continue that trend?
 i find it ugly.

 All-caps is the Parrot coding standard for macros and #defines, and these
 fall in the same general category.

in c code, i agree.

this is not c, however. it is for a makefile template, where the
makefile macro names (e.g. CP=$(PERL) -M...) are in all-caps. i think
it would be easier to distinguish the makefile template generator
macros from the makefile macros if they weren't the same case.

#?else IFCONFIG=bar
over
#?ELSE IFCONFIG=bar

i suppose it's just paint, though. i can live with either way, so i'll
defer to you.
~jerry


Re: [perl #53976] [PATCH] Remove tools/dev/ops_renum.mak

2008-08-22 Thread jerry gay
On Fri, Aug 22, 2008 at 7:20 PM, Will Coleda [EMAIL PROTECTED] wrote:
 On Sat, Aug 16, 2008 at 11:39 PM, James Keenan via RT
 4.  Parrot::OpsRenumber::renum_op_map_file() has been revised so that it
 will behave properly before Parrot 1.0 -- when deletion of opcodes is
 still permitted -- and after 1.0 -- when no deletions are permitted.
 This flexibility is attained by providing it with the Parrot major
 version as an argument.  This before-and-after functionality is tested
 in a heavily revised t/tools/ops2pm/05-renum_op_map_file.t.  Several new
 sample files used in testing have been added to the distribution.

 I know you were implementing Jerry's requirement here, and that's good.

 I do wonder what the plan is for opcodes that are marked deprecated
 (which we can do today.) ; once they go past deprecated (before 1.0,
 we'd just delete them), what will happen when they are executed? will
 we add a :removed pragma on the opcode definition that will simply
 throw an exception when they are invoked? Will we just silently
 translate them to a noop?

 What about the case when we experimentally add an opcode between
 official releases, but back it out before the next release? What
 counts as an official release? How are we going to number the
 intervening releases? Do we have a version indicator to mark as
 stable/unstable/experimental/Don't Touch This Without A Hazmat Suit?

 What about experimental.ops? is that going to survive with its special
 treatment into post-1.0?

 I apologize for not asking these questions immediately following
 Jerry's original post, but I thought I had until version 0.99 to think
 about it. =-)

 These questions asked... I'm don't think they block application of the
 patch at all; I think these are all questions that should be answered
 in a new docs/project/release_strategy.pod which can then spawn TODOs
 as necessary.

agreed. we still have time to address these questions. it would be
nice if they weren't lost, though. i suggest a wiki page rather than a
mess of rt tickets for better tracking at this point. seems to me that
the wiki approach will allow us to collect and organize these thoughts
as they occur, and serve as a solid draft when we formalize them
later.

 5.  The name of the program that invokes Parrot::OpsRenumber is changed
 from tools/dev/ops_renum.mak to tools/dev/opsrenumber.pl.  It is, after
 all, a Perl 5 program, so we provide it with a file name extension
 consistent with other programs in tools/dev/.

 6.  A new makefile target, renumberops, invokes tools/dev/opsrenumber.pl.

 Please review, particularly lib/Parrot/OpsRenumber.pm and
 t/tools/ops2pm/05-renum_op_map_file.t, which is where most of the really
 new stuff is found and/or demonstrated.

 I don't have any questions regarding these tests that are unique to
 these particular tests.

it strikes me that the makefile target and the script name should be
the same. there's still too much irregularity in parrot's naming
conventions across the board--opcodes, pir syntax, makefiles, scripts,
directories, filenames, c functions, etc.

we'll concentrate on this in earnest as we approach our first general
availability release (whether we call that release 1.0 or 2009R1 or
Ball of Mud), however there's no reason to hold off. if anybody sees
anything that looks a bit out of place (e.g. dynops vs. dynoplibs)
take note of it by opening a CAGE ticket in rt. it may take some
project team input to settle upon the preferred naming convention, but
implementing that work can be done by any contributor and applied by
any committer.

~jerry


Re: [CAGE] clean up stray test files

2008-08-20 Thread jerry gay
On Wed, Aug 20, 2008 at 2:32 PM, Allison Randal [EMAIL PROTECTED] wrote:
 Running 'make test' now fills the main directory of the repository with junk
 files like:

  test_98093.out
  test_37653.c
  test_98093.ldo
  test_97159.c

 The offending tests need to be modified to clean up after themselves.

make sure to use File::Temp for any files created via Perl 5. these
files should be written to an appropriate temp directory for the
platform, not to the root of the parrot source directory.

~jerry


Re: Parrot 0.7.0 Severe Macaw - permissions

2008-08-19 Thread jerry gay
On Tue, Aug 19, 2008 at 1:13 PM, Jesse Vincent [EMAIL PROTECTED] wrote:
 [List-CC changed]

 On Aug 19, 2008, at 4:10 PM, Reini Urban wrote:

 Bob Rogers schrieb:

 On behalf of the Parrot team, I'm proud to announce Parrot 0.7.0 Severe
 Macaw.  Parrot (http://parrotcode.org/) is a virtual machine aimed at
 running all dynamic languages.

 There are several module permissions missing for rgrjr
 See http://search.cpan.org/~rgrjr/parrot-0.7.0/
 so that http://search.cpan.org/dist/parrot still shows 0.6.4


 Wasn't there a plan to add all the various Parrot:: classes to the 'noindex'
 list?

 Can the owner or someone from modules please add these:
 Parrot::Configure::Options::Test::Prepare
 Parrot::Harness::DefaultTests
 Parrot::Harness::Options
 Parrot::Harness::Smoke
 Parrot::Pmc2c::Attribute
 Parrot::Pmc2c::PMC::PrintTree
 Parrot::SearchOps
 Parrot::Test::Util::Runloop

 --
 Reini Urban
 http://phpwiki.org/  http://murbreak.at/


i'd rather we don't index any perl modules in the distro. the no_index
directive in META.yml should probably read something like:
  no_index:
  directory:
  - lib

but that won't fix this release.
~jerry


Re: unified languages-test

2008-08-18 Thread jerry gay
On Mon, Aug 18, 2008 at 11:41 AM, Will Coleda [EMAIL PROTECTED] wrote:
 On Mon, Aug 18, 2008 at 2:29 PM, Michael Peters [EMAIL PROTECTED] wrote:
 Will Coleda wrote:

 The eventual goal of this cleanup is to get these tests running via
 smolder to give core developers more feedback on their commits. The
 aborted test in this file can be TODOd if we can't fix the root cause
 before release.

 To this end, how would we like this to be done. I've been thinking about
 creating a separate project for Rakudo and then having it's full test suite,
 spec test and spec_test_regression all going as separate tags so they can be
 viewed separately.

 Rakudo would, at the moment, need its own version anyway, since you
 can't run rakudo via the unified harness.

 I could create a separate project for each built-in language (might be too
 many) or just have a misc-languages project. But it might be helpful to have
 each big language (Rakudo, pipp, cardinal) have their own projects so that
 they have their own RSS feeds.

 I am of two minds:

 - the tcl developer in me wants a feed for my language so I can easily track 
 it.
 - the parrot developer wants an aggregated feed that shows all the
 languages so I can easily see if I broke something.

 Can we start with the fine-grained version and provide an aggregated
 version? We can decide on the aggregated version later, if necessary.
 (just languages? just some of them? all of them -and- core parrot?)

yes, please. this is what rss aggregation is for. before parrot's
general availability release, we will be moving many if not most of
the languages out of the parrot repository. this will make
languages-smolder (or a similar parrot make target) less relevant, and
rss aggregation more important.

anyone know of an aggregated feed generator, so one can build a
personalized feed of feeds and subscribe to that? we can host it at
parrot.org once we have that infrastructure set up.
~jerry


Re: unified languages-test

2008-08-18 Thread jerry gay
On Mon, Aug 18, 2008 at 11:51 AM, Will Coleda [EMAIL PROTECTED] wrote:
 On Mon, Aug 18, 2008 at 2:50 PM, jerry gay [EMAIL PROTECTED] wrote:
 On Mon, Aug 18, 2008 at 11:41 AM, Will Coleda [EMAIL PROTECTED] wrote:
 On Mon, Aug 18, 2008 at 2:29 PM, Michael Peters [EMAIL PROTECTED] wrote:
 Will Coleda wrote:

 The eventual goal of this cleanup is to get these tests running via
 smolder to give core developers more feedback on their commits. The
 aborted test in this file can be TODOd if we can't fix the root cause
 before release.

 To this end, how would we like this to be done. I've been thinking about
 creating a separate project for Rakudo and then having it's full test 
 suite,
 spec test and spec_test_regression all going as separate tags so they can 
 be
 viewed separately.

 Rakudo would, at the moment, need its own version anyway, since you
 can't run rakudo via the unified harness.

 I could create a separate project for each built-in language (might be too
 many) or just have a misc-languages project. But it might be helpful to 
 have
 each big language (Rakudo, pipp, cardinal) have their own projects so 
 that
 they have their own RSS feeds.

 I am of two minds:

 - the tcl developer in me wants a feed for my language so I can easily 
 track it.
 - the parrot developer wants an aggregated feed that shows all the
 languages so I can easily see if I broke something.

 Can we start with the fine-grained version and provide an aggregated
 version? We can decide on the aggregated version later, if necessary.
 (just languages? just some of them? all of them -and- core parrot?)

 yes, please. this is what rss aggregation is for. before parrot's
 general availability release, we will be moving many if not most of
 the languages out of the parrot repository. this will make
 languages-smolder (or a similar parrot make target) less relevant, and
 rss aggregation more important.

 anyone know of an aggregated feed generator, so one can build a
 personalized feed of feeds and subscribe to that? we can host it at
 parrot.org once we have that infrastructure set up.
 ~jerry


 We are running one now: http://planet.parrotcode.org/

i don't think you caught my meaning. i want to give users the ability
to create a feed of tcl's tests, rakudo's spectest_regression, and
parrot's testj target from the gsoc_nci branch, and have that made
available to them for subscription.

as far as i'm aware, with planet.parrotcode, the administrator picks
the feeds that are aggregated.
~jerry


Re: [perl #57942] [BUG] Smolder failure [linelength, compilers/pirc]

2008-08-15 Thread jerry gay
On Fri, Aug 15, 2008 at 9:39 AM, Bob Rogers
[EMAIL PROTECTED] wrote:
   From: Geoffrey Broadwell [EMAIL PROTECTED]
   Date: Fri, 15 Aug 2008 09:07:46 -0700

   . . .

   It seems then that we have two remaining options:

 1. Don't run codingstd as part of smolder.

 2. Differentiate a codingstd failure and a real failure in smolder.

   . . .

 Seems to me that codingstd should give the same result on all platforms.
 If so, it ought to be run separately, on a single designated platform.

true only if platform-specific generated files are excluded from
coding standards checking.
i'm not certain (without looking) whether this is the case.
~jerry


Re: [perl #53976] [PATCH] Remove tools/dev/ops_renum.mak

2008-08-10 Thread jerry gay
On Sat, Aug 9, 2008 at 3:50 PM, James Keenan via RT
[EMAIL PROTECTED] wrote:
 On Sat Aug 09 10:31:37 2008, [EMAIL PROTECTED] wrote:
 On Saturday 09 August 2008 06:33:46 James Keenan via RT wrote:

   What purpose remains, then, for either tools/dev/ops_renum.mak or
 my
   alternative, tools/dev/opsrenumber.pl?  Is such a program only
 intended
   to provide a number for newly added opcodes?



 Hm, I missed the question the first time.  The program renumbers
 opcodes when
 adding or removing one or more opcodes.  (Removing is less likely as
 time
 goes by, but we reserve the right to do so for the forseeable future.)


 Hmm ... it appears to me that particle took a harder line earlier in
 this RT against removal:  in an attempt to keep bytecode compatible
 across versions of parrot, opcodes can never be deleted.

 Do we have a disagreement there?  If not, I'd like to know whether my
 replacement script DTRT or needs fixing ('cause I'm more confused than
 when i started).

let me clarify: after 1.0, in order to allow bytecode to be work
across parrot releases (where there may be new or deprecated opcodes),
opcode numbers can never be reused. before parrot is production ready
(before 1.0) we have not made any promise of bytecode compatibility
across releases, other than that it'd be great if we can do it (which
means we can reuse opcode numbers if we want to, but i still find it
unlikely as it's counter-cultural.

i don't see any disagreement between myself and chromatic.
~jerry


Re: [perl #57636] [TODO][PDD19] Document the reason for :unique_reg flag

2008-08-07 Thread jerry gay
On Thu, Aug 7, 2008 at 5:44 AM, Jonathan Worthington [EMAIL PROTECTED] wrote:
 Klaas-Jan Stol wrote:

 I think basically the question remans; is there any way we could do
 without the :unique_reg?

 Yes:

 1) Add the reference-taking op and register reference PMC to the Parrot
 core.

 2) Make IMCC specially aware of this op so that it never re-uses this
 register.

also, if i understand satisfy patrick's use case in pge,

3) add the ability to select the register allocator used, or disable
it, within a sub.

a programmer who knows what he's doing should have the ability to
disable the register allocator and manage registers himself. the scope
of the action must be limited to make the intent clear and to ease
maintenance programming; it must occur at the sub level rather than at
the file level.

~jerry


Re: Reason for attributes.t fail

2008-08-07 Thread jerry gay
On Thu, Aug 7, 2008 at 3:26 AM, Jonathan Worthington [EMAIL PROTECTED] wrote:
 Hi,

 Rakudo is currently failing t\spec\S12-class\attributes.t. This turns out
 not to be an issue with attributes, but rather exceptions. The test does:

 my $c = Counter.new();
 try {
   $c.x
 }
 ok($!, 'no public accessor for private attribute');

 And fails because the Exception PMC does not implement the get_bool vtable
 method (which I'm guessing must have changed when we merged pdd25cx). I'm
 not sure what the best solution for this is...in the meantime, I have fudged
 that test, so the rest of attributes.t passes again now.

seems to me this is trying to test whether there's a defined value in
$!. however, you've jumped straight into blaming parrot's Exception
PMC, without considering the expected perl 6 behavior. does Exception
inherit from Object, and if so, doesn't Object's .true method by
default return .defined? if so, then we should be wrapping Exception
PMCs in perl 6 objects, and the inherited .true method will make this
test work.

of course, this is purely conjecture based on my fuzzy recollections.
maybe someone with more confidence on this topic can speak to it?
~jerry


Re: time op inconsistent on Win32

2008-08-07 Thread jerry gay
On Thu, Aug 7, 2008 at 12:40 PM, Ron Blaschke [EMAIL PROTECTED] wrote:
 Jonathan Worthington wrote:

 Hi,

 I've just been looking at the time op, and what it returns is somewhat
 platform specific.

 * On Win32, it's the number of seconds since January 1, 1601

 If I remember correctly, some parts of Windows use 100ns ticks since 1601 to
 represent time.  Not sure if computers were in common use in the 17th
 century, though.

 * In other codepaths, it appears to be the number of seconds since January
 1, 1970.

 I'm thinking we should correct the Win32 version to do the same as the
 others for consistency? Or should we keep these platform specific and make
 code that cares check what OS we are on and work it out (don't like this
 option so much, since we're meant to be abstracting the OS away...)

 Opinions?

 +1 for using seconds since 1970.  I can adjust this if you guys agree.

we definitely need date/time pmc(s?) not only to have a common epoch
across platforms, but to deal with 2038. in particular, we should
leverage schwern's work on perl to address the 2038 bug.
~jerry


Re: Branching

2008-08-05 Thread jerry gay
On Tue, Aug 5, 2008 at 1:47 PM, Geoffrey Broadwell [EMAIL PROTECTED] wrote:
 On Tue, 2008-08-05 at 16:19 -0400, Michael Peters wrote:
 We also need to think about deprecation cycles. If you deprecate a
 feature in 1 version and then it disappears in the next then the time
 between when my code works and when it doesn't is only 6 months. Some
 distros provide support for several years.

 Which reminds me: chromatic, what was your reasoning for major releases
 being every three months, instead of four or six?

 I agree we don't want to go much beyond six months for our major
 releases, but with at least two major distros that aim for decent
 freshness (Ubuntu and Fedora) using six month release cycles, I'm
 curious what we gain with a shorter cycle than that.

 A six month release cycle makes deprecation-and-removal a one year
 affair, which isn't too bad.  And we can fairly tell users who want more
 stability than that to use the slow distro that matches each fast
 distro we aim for -- Debian instead of Ubuntu, RHEL/CentOS instead of
 Fedora, for example.

 (Separately, I agree that one month point releases seem to work well for
 us.  I don't see any reason to change that.)

please start a new thread as this has moved off-topic.
~jerry


Re: [perl #56716] [TODO]: speed up the configure tests

2008-07-30 Thread jerry gay
On Wed, Jul 30, 2008 at 4:25 PM, James Keenan via RT
[EMAIL PROTECTED] wrote:
 On Tue Jul 29 11:01:12 2008, particle wrote:



 the failing test:
 t/steps/auto_ctags-01ok 1/31
 #   Failed test 'Got expected result'
 #   at t/steps/auto_ctags-01.t line 65.
 t/steps/auto_ctags-01NOK 17/31#  got:
 'yes'
 # expected: 'no'
 # Looks like you failed 1 test of 31.
 t/steps/auto_ctags-01dubious
 Test returned status 1 (wstat 256, 0x100)
 DIED. FAILED test 17
 Failed 1/31 tests, 96.77% okay

 the source looks like:
 is($step-result(), q{no}, Got expected result);


 I modified the test in r29891.  Could you svn up and reconfigure and let
 me know your results on Win32?

i got three unexpectedly succeeding tests in t/steps/auto_ctags-01.t (16-18).

i removed the TODO block in r29901.
~jerry


Re: [perl #56716] [TODO]: speed up the configure tests

2008-07-29 Thread jerry gay
On Tue, Jul 29, 2008 at 4:28 AM, James Keenan via RT
[EMAIL PROTECTED] wrote:
 I have prepared a patch which represents an 'svn diff' between trunk and
 the 'parallel' branch at the point of the branch's inception.  Rather
 than swamp your inboxes, I'm posting it here:

 http://thenceforward.net/parrot/diff.trunk.parallel.txt

 This patch is more for review than application.  Because the number of
 t/steps/*.t test files has been reduced from 227 to 74, there's been a
 tremendous amount of text movement.  So it's not surprising that when I
 do the 'svn merge', I'll have plenty of conflicts to resolve.  And I
 doubt that 'patch' will apply the patch cleanly.

 For those of you who are interested in benchmarking the difference, I
 recommend you do a checkout of the parallel branch and run 'perl
 Configure.pl --test=configure', as I've included a line reporting the
 elapsed time.  Then do a fresh checkout from trunk, copy the version of
 lib/Parrot/Configure/Options/Test.pm found in 'parallel' into trunk and
 running Configure.pl there in the same way.  Since, as I said in a
 previous post, there is considerable variance in the time Configure.pl
 takes, you should probably configure in each branch 3 times to get a
 good idea of any speed improvements.

i haven't reviewed the patch, but i have run the tests. here's the
results from both branches, synchronized to r29844.

trunk:
All tests successful, 16 tests skipped.
Files=287, Tests=3946, 145 wallclock secs ( 0.00 cusr +  0.00 csys =  0.00 CPU)

All tests successful, 16 tests skipped.
Files=287, Tests=3946, 140 wallclock secs ( 0.00 cusr +  0.00 csys =  0.00 CPU)

All tests successful, 16 tests skipped.
Files=287, Tests=3946, 142 wallclock secs ( 0.00 cusr +  0.00 csys =  0.00 CPU)

c:\usr\local\parrot\trunkack -af t\configure t\steps | wc -l
301


branches/parallel:
Files=133, Tests=3332, 76 wallclock secs ( 0.00 cusr +  0.00 csys =  0.00 CPU)
Failed 1/133 test programs. 1/3332 subtests failed.

Files=133, Tests=3332, 76 wallclock secs ( 0.00 cusr +  0.00 csys =  0.00 CPU)
Failed 1/133 test programs. 1/3332 subtests failed.

Files=133, Tests=3332, 75 wallclock secs ( 0.00 cusr +  0.00 csys =  0.00 CPU)
Failed 1/133 test programs. 1/3332 subtests failed.

c:\usr\local\parrot\parallelack -af t\configure t\steps | wc -l
147


the failing test:
t/steps/auto_ctags-01ok 1/31
#   Failed test 'Got expected result'
#   at t/steps/auto_ctags-01.t line 65.
t/steps/auto_ctags-01NOK 17/31#  got: 'yes'
# expected: 'no'
# Looks like you failed 1 test of 31.
t/steps/auto_ctags-01dubious
Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 17
Failed 1/31 tests, 96.77% okay

the source looks like:
is($step-result(), q{no}, Got expected result);

this test assumes i don't have ctags installed, but i do. of course,
configure knows better than any tester, so it's better to test that
the 'result' method returns one of the allowed values, and doesn't
assume one or the other. something like:
like($step-result(), qr/(yes|no)/, Got allowed value from
'result' method);

i expect there may be similar tests of -result() that need
modification, though i haven't verified that.

overall, i'm impressed at the 50% speedup. given that these are
relatively fast tests, it makes sense that since there are half as
many files (and therefore half as many invocations of perl), the tests
take half the time to run. other than my concern about the testing
strategy that led to my failing test, i think it's ready for trunk.

it seems that only files in t/steps/ have been refactored, and that
t/configure/ has been left alone. is that correct, and if so, can it
be similarly refactored? another 50% speedup would put these tests in
the 30-40s range, which is much nicer than the 2+ minutes it takes in
trunk today.

~jerry


Re: [perl #57358] Enable parallel testing

2008-07-28 Thread jerry gay
On Mon, Jul 28, 2008 at 10:27 AM, Eric Wilhelm
[EMAIL PROTECTED] wrote:
 # from Moritz Lenz
 # on Monday 28 July 2008 09:52:

 That's not -just- with the patch, though, is it? I presume you've
 set TEST_JOBS to be something other than '1' ...

I've set it to 2, and obeserve the errors below. With serial testing I
get a PASS (r29828).

 Yes.  TEST_JOBS=1 doesn't change anything.

 It looks like most of the tests in t/steps might potentially conflict.

 To smoke out the resource conflicts in the test suite, one would have to
 run $n jobs -- but that will forkbomb your system.  Another check is to
 run each against each other with `prove -j 2 $test_n $test_i`

 Tests need to be written defensively for arbitrary parallelization to be
 possible.  If that's too much coding, the non-optimal serial within a
 directory scheme (or other forms of work division) would have to be
 used.

i encourage you to try this out in the 'parallel' branch of the
repository. it's not synchronized with the latest changes to trunk,
but you can do that locally (for a refresher, read
docs/project/committer_guide.pod). work has been done to consolidate
the test files in that branch, and although they may not address all
the requirements for parallel testing to succeed, that is a related
goal and seems like a good place to achieve them.
~jerry


Re: [perl #57344] [TODO] Change runtime/parrot/* to runtime/*

2008-07-27 Thread jerry gay
On Sun, Jul 27, 2008 at 1:56 PM, Patrick R. Michaud [EMAIL PROTECTED] wrote:
 On Sun, Jul 27, 2008 at 10:08:06AM -0700, Geoffrey Broadwell wrote:
 In the source repository, the 'parrot' in runtime/parrot/foo is
 pointless.  It's a singleton directory, and it's redundant.

 I think that the point of runtime/parrot/ is that we may also
 someday have runtime/perl6/, runtime/pynie/, runtime/cardinal/,
 etc. directories, which will be the canonical location for
 language-specific runtime libraries.

yes, that was the point at the time it was introduced. however, it
confuses the source tree with the install tree, and goes against a
parrot policy.

in the source tree (a.k.a. your working copy), we've set up the
infrastructure for runtime/ to contain multiple language-level subdirs
for runtime components (library, include, pmc, etc.) the intent is
precisely as you suggest above.

however, the project team has set a clear policy which states that in
the source tree, languages must be self-contained. this policy is in
place so it will be easy to transition any language from the parrot
repository to an external repository. we still have some work to do to
make this policy both true and easy for hll developers to implement,
which will happen before parrot 1.0. following the policy, the intent
is that each language in the source tree have its own runtime
directory under the language root directory (e.g.
languages/perl6/runtime/).

if it is determined that installations of the parrot vm and parrot
hlls will use a common prefix for a runtime root directory (e.g.
/usr/lib/parrot/runtime/), then runtime components for both the vm and
hlls may be installed to that shared location. that's an install tree
policy, and as far as i'm concerned, it hasn't been addressed yet
(along with many other install-related policies.)

~jerry


Re: [perl #46681] [TODO] [C] Use strerror_r instead of strerror

2008-07-18 Thread jerry gay
On Thu, Jul 17, 2008 at 7:44 PM, Christoph Otto via RT
[EMAIL PROTECTED] wrote:
 On Thu Jul 17 15:53:12 2008, julianalbo wrote:
 On Thu, Jul 17, 2008 at 9:59 PM, Christoph Otto via RT
 [EMAIL PROTECTED] wrote:

  With this patch, the new tests still pass on Linux/x86.  The patch uses
  STRING-strstart to avoid leaking a malloc'd buffer when throwing an
  exception, which may or may not be considered kosher in this situation.

 Can't you use real_exception(interp, NULL, E_SystemError, %Ss,
 errmsg_pstring); ?

 Using internal details of parrot strings must be avoided.


 I agree.  I just didn't know real_exception was smart enough to do that
 trick.  The attached patch (v5) properly fixes the problem on my system.
  There shouldn't be any remaining issues, but the patch ought to be
 tested on a another *nix and Windows.

iirc we shouldn't be assuming interp in macros (it should always be passed).
i could be wrong, so i've copied the man with the feathered broom for
an official ruling.
~jerry


Re: .parrot_current_rev

2008-07-15 Thread jerry gay
On Tue, Jul 15, 2008 at 6:52 AM, Reini Urban [EMAIL PROTECTED] wrote:
 The file .parrot_current_rev is missing in the Release, and also the
 revision is nowhere
 mentioned in any Release Note, not the ChangeLog and not in news.
 This is annoying, because you don't know if a particular bugfix is
 included or not.

 Worse, the logic the set the current revision for svn updates is
 wrong. (NotMuch brought this up yesterday on #parrot)
 .parrot_current_rev is not updated on a svn up, it is just the cache
 for $Parrot::Revision::current,
 but the cache is not ensured to be cleared when doing a Configure.pl.
 Only a make realclean will
 get you a correct revision in bugreports.

 Configure should enforce a fresh cache update if there's a .svn subdir
 available, otherwise
 you'll get false bugreports.
 --
.parrot_current_rev should be (re)generated every time Configure.pl is
successfully run.
if this is not the current behavior, it's broken.
~jerry


Re: CPAN-Permissions for Perl 5 Modules

2008-07-15 Thread jerry gay
i seem to recall that we agreed instead to noindex the Parrot::
modules... Nobody is expected to use them outside parrot anyway.

On 7/15/08, chromatic [EMAIL PROTECTED] wrote:
 On Tuesday 15 July 2008 17:23:20 James E Keenan wrote:

 Bernhard Schmalhofer wrote:

  for Parrot 0.6.4 following Perl 5 modules were not indexed:
 
  Parrot::Configure::Options::Test::Prepare
  Parrot::Pmc2c::PMC::PrintTree

 Barney:  I know that I wrote the two modules above (or, at least,
 refactored them into their current form).  What, if anything, should I
 have done when I wrote/committed them.

 It's only a CPAN indexing issue.  Whenever a release manager uploads a new
 bundle, he or she needs to change permissions for all new indexed modules to
 allow the PARROTRE group to upload new versions.  Unless/until you're a
 release manager yourself, you can safely ignore this.

 (The implication is that Bernhard should go into PAUSE right now and check
 that he's not listed as the primary first-come, first-served maintainer for
 any Parrot modules.)

 -- c


-- 
Sent from Gmail for mobile | mobile.google.com


Re: [svn:parrot] r28816 - trunk/languages/perl6/tools

2008-07-03 Thread jerry gay
On Wed, Jul 2, 2008 at 11:06 PM, chromatic [EMAIL PROTECTED] wrote:
$ parrot perl6.pbc --output=buggy.pir --trace=PIR buggy.p6

s/trace/target/


Re: [perl #53976] [PATCH] Remove tools/dev/ops_renum.mak

2008-07-02 Thread jerry gay
On Wed, Jul 2, 2008 at 4:03 AM, James Keenan via RT
[EMAIL PROTECTED] wrote:
 Second, two notes about the branch:

 In a fresh checkout, if I 'make renumberops' with no local
 modifications, src/ops/ops.num changes.
 If I rename the op store_lex to barf_lex, and run 'make renumberops',
 the opcode barf_lex doesn't show up in src/ops/ops.num. (But,
 store_lex vanishes)


 I have found the code which causes (at least the) 2nd problem Coke
 describes and know how to fix it.  See the opsrenum branch.

 But whether my fix is correct or not depends on two questions:

 (1) Is the following passage from the inline comments in src/ops/ops.num
 still valid?

 # once an opcode is added to this file it should never be
 # removed. Opcodes that are in here but that have no corresponding
 # function backing them (because, for example, they've been deleted,
 # which shouldn't ever happen once we hit production) should be mapped
 # by the ops processing programs to an exception op

 If it *is* valid, then any renaming of an opcode should leave that op's
 *current* name and number in number.ops unchanged.  The *new* name for
 the opcode should presumably be pushed on to the end of the list.

 But this runs counter to the generally programming principle that we
 should get rid of old, unused code.  Why is this case different?

 Which leads to the next question:

 (2) Why do we maintain number.ops as a *static file of source code at
 all*?  Why is it in the repository?  If a given Parrot developer, for a
 given instance of Parrot configuration and build, renumbers the opcodes
 (either because the list of opcodes has changed or just for the hell of
 it), why must that renumbering be inflicted on all other Parrot
 developers -- which it would be as the result of 'svn ci'?

 Thank you very much.
 kid51

opcodes are the very heart of bytecode. if the opcodes change, then
the bytecode is invalid. if opcode #1 (noop) was changed to something
like (delete_harddisk), and parrot is rebuilt, than any existing
bytecode (.pbc file) that contains a noop instruction will instead
perform delete_harddisk. that's *never* the right thing to do--it
means bytecode can never be shared reliably across parrot builds.
portable bytecode is one of the main goals of parrot.

therefore, in an attempt to keep bytecode compatible across versions
of parrot, opcodes can never be deleted. instead, if opcodes are
deprecated, their function bodies should throw an exception explaining
that the opcode is no longer supported.

like the comment says, this will be strictly enforced after parrot
1.0, but is a good rule to follow now as well. the design team
reserves the right to make architectural changes that impact the
opcode numbers, of course, until we have a production-ready product.

~jerry


Re: [perl #56310] [Patch] unset $(PERLDOC) breaks building on OS X

2008-06-25 Thread jerry gay
On Tue, Jun 24, 2008 at 7:15 PM, via RT Seneca Cunningham
[EMAIL PROTECTED] wrote:
 # New Ticket Created by  Seneca Cunningham
 # Please include the string:  [perl #56310]
 # in the subject line of all future correspondence about this issue.
 # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=56310 


 The switch to using $(PERLDOC) in docs/Makefile without defining
 PERLDOC anywhere breaks my build.  The attached patch resolves this by
 adding the definition of PERLDOC to config/gen/makefiles/docs.in.

 End of run with broken Makefile:
 herodotus:build-20080624 seneca$ make -j2
 [...]
 make -C docs
 perl -MExtUtils::Command -e mkpath ops
 perldoc -ud packfile-c.pod ../src/packfile.c
 Perldoc (Pod::Perldoc::ToPod) output saved to packfile-c.pod
 ud ops/bit.pod ../src/ops/bit.ops
 make[1]: ud: Command not found
 make[1]: [ops/bit.pod] Error 127 (ignored)
 perl -MExtUtils::Command -e ExtUtils::Command::chmod 0644 ops/bit.pod
 Cannot chmod 0644 ops/bit.pod:No such file or directory at
 /System/Library/Perl/5.8.8/ExtUtils/Command.pm line 241.
 make[1]: *** [ops/bit.pod] Error 2
 make: *** [docs.dummy] Error 2
 make: *** Waiting for unfinished jobs
 jit2c: JITed 144 (+ 141 vtable) of 1243 ops
 herodotus:build-20080624 seneca$

 --
 Seneca Cunningham
 [EMAIL PROTECTED]

 Index: config/gen/makefiles/docs.in
 ===
 --- config/gen/makefiles/docs.in(revision 28692)
 +++ config/gen/makefiles/docs.in(working copy)
 @@ -6,6 +6,7 @@
  RM_F   = @rm_f@
  MKPATH = @mkpath@
  CHMOD  = @chmod@
 +PERLDOC  = @perldoc@

  # long list of .pod files
  POD = @pod@



thanks, applied as r28693.
~jerry


Re: [perl #43857] [TODO] Refactor config probes that are used only by language implementation

2008-06-22 Thread jerry gay
On Sun, Jun 22, 2008 at 3:38 AM, Bernhard Schmalhofer
[EMAIL PROTECTED] wrote:
 James Keenan via RT schrieb:

 On Fri Jul 13 09:58:33 2007, bernhard wrote:


 There are several config probes that are only used for language
 implementations.
 Examples are config/auto/m4.pm and config/auto/python.pm.



 Please find attached two files.  The first greps the repository for
 mentions of 'm4'.  The second is a patch which eliminates
 config/auto/m4.pm and the associated test file and updates the MANIFEST.

 Configure.pl, make and make test all perform without error after this
 config step is eliminated.  When I switch into languages/m4, then call
 'make' and 'make test', I get the same test failures in
 t/regex/002_tokens.t either way.  So my belief is that removing this
 step causes no harm to the m4 language implementation itself.

 I will apply this patch to trunk in about 2 days if there is no objection.

 Thank you very much.

 kid51



 AFAIK 'languages/m4/config/makefiles/root.in' is the only place where the
 config entry 'has_gnu_m4' is used.
 It is meant as a doublecheck of the 'm4' tests. If 'GNU m4' is available
 then the m4 tests should be run with 'GNU m4' as well.
 This should make sure that the Parrot implementation behaves the same way as
 the reference implementation.

 So 'has_gnu_m4' is not essential to the implementation of 'Parrot m4'. In
 r28633 I removed the use of 'has_gnu_m4' and the config step auto::m4.pm can
 now be removed.

 But the real scope of ticket RT#43857 is something different. Language
 implementations may need config probes that
 are only relevant for that particular language. Therefore there should be
 some kind of infrastructure set up,
 so that those probes can be placed within the language dir. Taking
 'Plumhead' as an example,
 I would have liked to set up probes checking for 'phc', 'antlr' and
 'xsltproc'. I didn't do so because I didn't want to clutter the Parrot
 config.

languages/dotnet/ has its own configure.pl, and m4, plumhead, etc.
should follow that model. if there are things that can be done to make
the process of developing a language-specific configure engine easier,
i'd love to hear them.

~jerry


Re: [perl #56020] [OK]: Report on Parrot Build Fest at YAPC

2008-06-19 Thread jerry gay
On Thu, Jun 19, 2008 at 9:34 AM, Ovid
[EMAIL PROTECTED] wrote:
 --- Packy Anderson [EMAIL PROTECTED] wrote:

 On Jun 18, 2008, at 11:51 AM, Parrot via RT wrote:
  Successful parrot build on ancient Debian/i386 system, most of the
  way through make test (it's taking _forever_, mostly because this
  is a PII 266 system)
 
  $ uname -a
  Linux daffy 2.2.19pre17 #1 Tue Mar 13 22:37:59 EST 2001 i686
 unknown

 ... and make test finished:

 All tests successful (1 subtest UNEXPECTEDLY SUCCEEDED), 30 tests and

 595 subtests skipped.
 Files=585, Tests=11192, 2674 wallclock secs (2176.58 cusr + 203.55
 csys = 2380.13 CPU)

 This looks like you're using an older version of Test::Harness.  If you
 upgrade, it will break things down further, including telling you which
 test in which test program unexpectedly succeeded.

thanks for pointing that out. we're in the process of requiring TH3,
so we can get smolder working with parrot. the default test summary
report is harder for us to use in development (since it contains
multiple lines per file, it's not easy to highlight the filenames in
the terminal and get them to open in an editor for examination), but
we'll work with it until we find or create something better.

the benefits of better todo/skip/failure reporting and working with
smolder outweigh the rest.
~jerry


Re: Parrot and Smolder

2008-06-17 Thread jerry gay
On Tue, Jun 17, 2008 at 10:31 AM, Michael Peters [EMAIL PROTECTED] wrote:
 I've got this working pretty well on my checkout (except that the current
 revision, #28476, doesn't build). You can do a make smolder_test and have 
 the
 results sent to the Smolder server. I talked with chromatic and some others
 about removing some of the old existing smoke stuff, but I'll do that later.

 So now the question is how do I send this as a patch. It touches several files
 and adds new ones. Is a simple svn diff good enough? If so, it's attached.

excellent! this came together quickly and simply, by the looks of it.
the patch format is fine, especially for a first patch (for more
details of our precise requirements you can read
docs/submissions.pod). one gotcha, you've got 'use Config;' which
pulls info from perl, when you should be using Parrot::Config instead.
it should be an easy switch from $Config{myarchname} to
$PConfig{archname}, if i understand correctly.

as far as i'm concerned, with that simple change this patch can be
applied--and anyone familiar with perl can make that change, it
doesn't have to be michael.
~jerry


Re: [perl #52776] [PATCH] Allow @foo@ syntax when setting config data.

2008-06-07 Thread jerry gay
On Sat, Jun 7, 2008 at 3:26 AM, Bernhard Schmalhofer
[EMAIL PROTECTED] wrote:

 On Fri, Jun 06, 2008 at 11:17:33PM -0700, Will Coleda via RT wrote:


  Let's borrow the syntax from the makefile generation itself, and  just
 have RM_F's definition be:

 +rm_f  = '@perl@ -MExtUtils::Command -e rm_f',

 [...]


 Sound good to me.

 Additionally (though it won't help the original problem, it will help
 remove a ton of boilerplate), we can also eliminate all the RM_F = @rm_f@
 boilerplate in the makefiles, and simply use @rm_f@ where we now use $(RM_F)



 Actually I don't mind having things like

 RM_F = /home/coke/bin/perl -MExtUtils::Command -e rm_f

 defined on top of Makefiles. It is standard Makfile syntax.
 When editing the generated Makefile, for testing and development, it easier
 to change
 the global definition of a variable than to change all ocurrances.

agreed. so how about we generate a makefile that is full of all the
macros we need RM_F, PERL, CP, etc, and include it in all makefiles as
they're generated?
~jerry


Re: [perl #55304] [PATCH] eval_(dies|lives)_ok methods for rakudo's Test.pm, and more tests

2008-06-06 Thread jerry gay
On Fri, Jun 6, 2008 at 7:34 PM, Vasily Chekalkin [EMAIL PROTECTED] wrote:
 jerry gay wrote:

 On Wed, Jun 4, 2008 at 2:46 PM, Moritz Lenz [EMAIL PROTECTED]
 wrote:

 Oops, forgot to attach patch. Now it's really there.

 thanks, applied as of r28074.
 ~jerry

 This is wrong patch. eval() shouldn't throws any exceptions.

 Correct patch for 'eval()' and Test.pm attached.

would you reformat this in universal diff format please? my patch
program doesn't speak git.
~jerry


Re: [perl #55332] [BUG] can't build parrot on win32 + strawberry perl

2008-06-05 Thread jerry gay
On Thu, Jun 5, 2008 at 3:16 AM, Klaas-Jan Stol [EMAIL PROTECTED] wrote:
 somehow a fresh checkout has resolved the problem

 (but my other sandbox was still up to date according to svn status...)

 anyhow, this ticket can be rejected.

 kjs

i had this same problem, and it was resolved the same way, for
win32+msvc. dunno if it's a missing make dep or svn foolishness or
what, but it distracted me from parrot work for hours.

~jerry


Re: [perl #55304] [PATCH] eval_(dies|lives)_ok methods for rakudo's Test.pm, and more tests

2008-06-04 Thread jerry gay
On Wed, Jun 4, 2008 at 2:46 PM, Moritz Lenz [EMAIL PROTECTED] wrote:
 Oops, forgot to attach patch. Now it's really there.

thanks, applied as of r28074.
~jerry


[CAGE] STICKY_FILES is a poor name

2008-05-22 Thread jerry gay
in parrot's main makefile (config/gen/makefiles/root.in) there's a
variable named STICKY_FILES that collects all the files that should be
removed during 'make realclean'. it's an awful name. something more
descriptive, like CONFIGURE_GENERATED_FILES or similar would be
better.

a general going-over of the variable names in the makefile template
might be nice, but that may be another ticket.
~jerry


Re: Create a sub of a particular type

2008-05-16 Thread jerry gay
On Fri, May 16, 2008 at 5:31 PM, Bob Rogers
[EMAIL PROTECTED] wrote:
   From: Jonathan Worthington [EMAIL PROTECTED]
   Date: Sat, 17 May 2008 01:38:46 +0200

   Bob Rogers wrote:
It is a good idea.  I think I would call it :class, though.

   I did ponder that, and then worried that people would confuse it with
   putting a method into a certain class, which isn't what this is for...

   Jonathan

 Good point.  And :sub_class or :sub_type would probably be even more
 confusing.  And :invokable_class is probably too verbose (and probably
 also too general).  :use_class?

   From: Will Coleda [EMAIL PROTECTED]
   Date: Fri, 16 May 2008 20:20:32 -0400

   It could be a pmc instead of a class. How about :type ?

 Perhaps we want to save that for declaring return types?  But,
 considering Jonathan's point, :type is probably better for this after
 all.

is this limited to subclasses of Sub? if not, perhaps :pmctype is more
descriptive. if so... :invokeable_type? :type seems too easy to get
confused about. anyway, good idea, jonathan!

~jerry


Re: New Committer: Andrew Whitworth

2008-05-09 Thread jerry gay
On Fri, May 9, 2008 at 6:03 AM, Will Coleda [EMAIL PROTECTED] wrote:
 After some administrative snafus, we've finally gotten Andrew's commit
 bit assigned!

 I have assigned him several tickets in RT as penance. ^_^

wonderful! as a point of introduction, andrew has provided a number of
quality patches in the recent months over a number of subsystems and
hlls, and has been accepted by Google Summer of Code to create the
garbage collector specified in PDD09.

welcome, and good luck on your project!
~jerry


Re: [perl #53916] [PATCH] Rewrite of docs/book/Chapter1

2008-05-09 Thread jerry gay
On Fri, May 9, 2008 at 10:27 AM, chromatic [EMAIL PROTECTED] wrote:
  - I'm not sure how accurate or useful the discussion of formal roles is.  For
 example, we seem to be doing fine without a pumpking, and this is the only
 place I've ever heard the term platform porter

for the canonical list of parrot roles and responsibilities, see
docs/project/roles_responsibilities.pod.

you'll find platform porter listed there. listed as well is pumpking,
which should be removed.

i suggest the chapter text and the text in that file should be kept
very close in line, if not identical.
~jerry


Re: [perl #53270] [TODO] Rename/refactor _handle_mswin32()

2008-04-25 Thread jerry gay
On Fri, Apr 25, 2008 at 8:38 AM, Geoffrey Broadwell [EMAIL PROTECTED] wrote:
  (Subtle note -- the || really wants to be //, but as I recall we're not
  allowed to assume that // is there yet.)

correct, parrot depends on perl 5.8, so we can't rely on //.

so i strongly suggest you use the idiomatic (however verbose) perl5 equivalent:
defined $foo ? $foo : $default
correctness++
~jerry


Re: [perl #53344] [PATCH] Misplaced brace in src/gc/dod.c

2008-04-25 Thread jerry gay
On Fri, Apr 25, 2008 at 9:12 AM, via RT Andy Dougherty
[EMAIL PROTECTED] wrote:
 # New Ticket Created by  Andy Dougherty
  # Please include the string:  [perl #53344]
  # in the subject line of all future correspondence about this issue.
  # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=53344 


  I tripped over this while working on a stacks patch.  It prevents
  compilation without debugging.

  --- parrot-svn/src/gc/dod.c Fri Apr 25 07:55:47 2008
  +++ parrot-andy/src/gc/dod.cFri Apr 25 09:29:55 2008
  @@ -218,8 +218,8 @@
  else if (p-pmc_ext  PMC_metadata(p))
  fprintf(stderr, GC: error obj %p (%s) has properties\n,
  (void *)p, (char*)p-vtable-whoami-strstart);
  -}
   #  endif
  +}
   #  if GC_VERBOSE
  /* buffer GC_DEBUG stuff */
  if (GC_DEBUG(interp)  PObj_report_TEST(obj))

thanks, i've already fixed it in trunk, since i ran into it as well.
~jerry


Re: Notes on removing stack.ops, further steps

2008-04-22 Thread jerry gay
On Tue, Apr 22, 2008 at 5:46 AM, Will Coleda [EMAIL PROTECTED] wrote:
 On Tue, Apr 22, 2008 at 2:52 AM, Patrick R. Michaud [EMAIL PROTECTED] wrote:
  


   Tonight I resolved RT#52838 and RT#52840, eliminating the 
  saveall/restoreall
opcodes, the register stack, and fixing up tests and other items
to avoid save/restore/etc. opcodes.
  
I've also created a userstack branch where I've got the details
for removing the rest of stack.ops .  I've already implemented
and tested it (it's pretty straightforward), but since DEPRECATED.pod
says that these opcodes are to be removed post 0.7.0 it's
too early to commit these changes to trunk.
  
One of the interesting features of removing stack.ops is that
we no longer need the STACK_ENTRY_INT, STACK_ENTRY_FLOAT,
or STACK_ENTRY_STRING types in src/stacks.c, as those were being
used only by the save/restore opcodes.  Should we see about removing
these entry types from the code, or should we leave them there in
case we come up with a need for them in the future?

  I'd remove them. There's always subversion if we need to get them back later.

+1
  Thanks for the cleanup work!

+1
~jerry


Re: mod_parrot uses string_nprintf

2008-04-22 Thread jerry gay
On Tue, Apr 22, 2008 at 6:55 AM, Donald Hunter [EMAIL PROTECTED] wrote:
 Hi,

  I'm trying to build mod_parrot against Parrot 0.6.1 and have found that
 string_nprintf no longer exists. I see from ticket #44053 that the function
 was removed since it had no users.

  What's the preferred solution? Re-introduce string_nprintf or modify
 mod_parrot to use another method?

submit a patch against mod_parrot to update it to use what's currently
in parrot. there is certainly one or more parrot functions that can be
used to replace the functionality of string_nprintf.

i'm not sure jeff has a list for patch submissions, but if you submit
it to this list, either he or i will review and apply it. that is, if
it's not fixed before you get your patch submitted. however, if you
want to contribute, we'll certainly wait to see what you can come up
with.
~jerry


working out kinks in the parrot release process

2008-04-16 Thread jerry gay
one consistent trouble spot in the parrot release process is the CPAN
upload process. often times, we have trouble with perl modules that
have been added, deleted, or renamed causing the release to be marked
as 'unauthorized'. dealing with unauthorized releases involves
intervention from a pause admin.

the reason we run into trouble at all is because we're indexing
modules in the parrot repo. with the exception of a few (Parrot::Embed
comes to mind), i don't see a need to index any of the modules.
they're all parrot-specific, and we don't use CPAN's bug tracker or
rating systems to maintain those modules. therefore, i'd like to make
parrot 0.6.1 the last release that's ever listed as unauthorized due
to module ownership problems.

let's update the metadata to refrain from indexing modules under the
Parrot:: namespace, except where it makes sense.


also, i'd like to automate more of the release process. currently, we
have a period of time where the link on the website for the most
recent parrot will point to the previous release of parrot, until the
new distro propagates to the cpan mirrors. in order to overcome this
problem, and to automate one more release step, i propose the
following:

write a piece of code that watches http://svn.perl.org/parrot/tags/
for a new tag that matches /RELEASE_.*/, and when that occurs, run
'make release VERSION=`cat version`', and updates a link on the
website to point to that tarball. we can then use that tarball to do a
final test, and upload it to cpan.

comments welcome.
~jerry


Re: working out kinks in the parrot release process

2008-04-16 Thread jerry gay
On Wed, Apr 16, 2008 at 1:49 PM, Mark Glines [EMAIL PROTECTED] wrote:
 On Wed, 16 Apr 2008 13:45:22 -0700
  jerry gay [EMAIL PROTECTED] wrote:

   also, i'd like to automate more of the release process. currently, we
   have a period of time where the link on the website for the most
   recent parrot will point to the previous release of parrot, until the
   new distro propagates to the cpan mirrors. in order to overcome this
   problem, and to automate one more release step, i propose the
   following:
  
   write a piece of code that watches http://svn.perl.org/parrot/tags/
   for a new tag that matches /RELEASE_.*/, and when that occurs, run
   'make release VERSION=`cat version`', and updates a link on the
   website to point to that tarball. we can then use that tarball to do a
   final test, and upload it to cpan.
  
   comments welcome.

  Does this mean dalek needs a CPAN account now?

no, no. the cpan upload would still be manual, but we'd use the url
from parrotcode.org for the tarball, rather than uploading from our
local machine.
~jerry


Re: [perl #52894] config detection perldoc failing due to write permissions

2008-04-15 Thread jerry gay
On Mon, Apr 14, 2008 at 1:25 PM, via RT Andy_Bach @ wiwb. uscourts.
gov [EMAIL PROTECTED] wrote:
 # New Ticket Created by  [EMAIL PROTECTED]
  # Please include the string:  [perl #52894]
  # in the subject line of all future correspondence about this issue.
  # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=52894 


  config/auto/perldoc.pm  uses a hardcoded, local path for a temp file to
  output perldoc -d to write to. perldoc also seems to use suid. So, if that
  file or the local fs is not writeable, the test fails even if perldoc is
  available.  By changing the path to use /tmp, at least, the test will
  succeed.  On *nix.  Hmm  Okay, I guess I need to find the OS agnostic
  version of this.

yes please. File::Temp is used throughout parrot, so there's plenty
examples to copy from.
~jerry


Parrot 0.6.1 Bird of Paradise Released

2008-04-15 Thread jerry gay
Aloha!

On behalf of the Parrot team, I'm proud to announce Parrot 0.6.1
Bird of Paradise. Parrot (http://parrotcode.org/) is a virtual machine aimed
at running all dynamic languages.

Parrot 0.6.1 can be obtained via CPAN (soon), or follow the
download instructions at http://parrotcode.org/source.html.
For those who would like to develop on Parrot, or help develop
Parrot itself, we recommend using Subversion or SVK on the
source code repository to get the latest and best Parrot code.

Parrot 0.6.1 News:
- Specification
  + drafted pdd29_compiler_tools.pod
  + updated pdd28_character_sets.pod draft
  + updated pdd19_pir.pod draft
- Languages
  + c99: added independent C pre-processor
  + HQ9+: reimplemented with PCT
  + Lua:
. reimplementation with PCT, using PAST and POST
. behavior aligned wih 5.1.3
  + Rakudo:
. implemented basic I/O, including '$*IN', '$*OUT', '$*ERR', 'prefix:='
. implemented simple typing and runtime type checking
. added basic multi-method dispatch
. expanded named argument handling, including Pair and colonpairs
. added 'Whatever' and 'Capture' classes
. implemented 'handles' trait verb
. added 'loop' statement
. implemented 'given', 'when', 'for', 'while', 'until' statement modifiers
. implemented Hash methods '.keys' and '.values'
. fixed bug to get '.WHAT' working correctly
. initial implementation of 'eval'
- Compilers
  + NQP:
. created a bootstrapped build, see 'make boot'
. added 'infix:', 'infix:=', 'infix:', 'infix:=' relational operators
. added 'postfix:++', 'postfix:--' operators
  + PCT:
. added methods specifying default behaviors in PAST, reducing repeated code
. improved symbol table lookup
  + PGE:
. removed deprecated code including: P6Regex, P6Grammar, PAST-pm
- Miscellaneous
  + notable speedups during compilation and execution of parrot and HLLs
  + pdb (the parrot debugger) can now catch parrot exceptions
  + better detection of glibc and gettext during configuration
  + various bugfixes, code cleanups, deprecations, and coding standard fixes


Mahalo to all our contributors for making this possible, and our
sponsors for supporting this project.

Enjoy!
~jerry


Re: macro PIR needs

2008-04-14 Thread jerry gay
On Mon, Apr 14, 2008 at 5:03 AM, Klaas-Jan Stol [EMAIL PROTECTED] wrote:
 IMCC's macro processor doesn't currently allow for uniquely generated
  variable names. It's in the pdd (19), but not yet implemented.

  You're right in that it only works for labels.

  kjs




  On Mon, Apr 14, 2008 at 1:32 PM, François Perrad
  [EMAIL PROTECTED] wrote:
  
In Lua libraries, I wrote many time the same piece of code.
The purpose of this code is to register each function.
So, I try to write the following PIR macro :
  
   .macro register(tname, fname)
   .const .Sub $fname = .fname
   $fname.'setfenv'(_lua__GLOBAL)
   set $P1, .fname
   .tname[$P1] = $fname
   .endm
  
also note that .Sub is deprecated, and should be replaced by 'Sub'
~jerry


release prep: NEWS, CREDITS and PLATFORMS updates welcome

2008-04-14 Thread jerry gay
as of r26974, i've updated the NEWS file for the release. it's been a
busy month, especially for languages. i've updated information on the
languages with which i'm most familiar, but your input is most
welcome. also, could somebody peruse the svn log since the last
release (r26484) and add update CREDITS? we've had a few new
contributors, and i want to make sure they are not forgotten.

~jerry


Re: macro PIR needs

2008-04-14 Thread jerry gay
On Mon, Apr 14, 2008 at 10:21 AM, Will Coleda [EMAIL PROTECTED] wrote:
 On Mon, Apr 14, 2008 at 12:54 PM, François Perrad


 [EMAIL PROTECTED] wrote:
  
  
 Original Message 
Subject: Re: macro PIR needs
Date: Mon, 14 Apr 2008 18:03:44 +0200
From: François Perrad [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
To: jerry gay [EMAIL PROTECTED]
References: [EMAIL PROTECTED]
   [EMAIL PROTECTED]
   [EMAIL PROTECTED]
  
  
  
jerry gay wrote:
  
On Mon, Apr 14, 2008 at 5:03 AM, Klaas-Jan Stol [EMAIL PROTECTED]
   wrote:
   
 IMCC's macro processor doesn't currently allow for uniquely generated
  variable names. It's in the pdd (19), but not yet implemented.

  You're right in that it only works for labels.

  kjs




  On Mon, Apr 14, 2008 at 1:32 PM, François Perrad
  [EMAIL PROTECTED] wrote:
  
In Lua libraries, I wrote many time the same piece of code.
The purpose of this code is to register each function.
So, I try to write the following PIR macro :
  
   .macro register(tname, fname)
   .const .Sub $fname = .fname
   $fname.'setfenv'(_lua__GLOBAL)
   set $P1, .fname
   .tname[$P1] = $fname
   .endm
  

also note that .Sub is deprecated, and should be replaced by 'Sub'
~jerry
   
  
Perhaps in the future, but currently, NO.
The syntax
   new $P0, 'Sub'
is OK.
But with .const, the only is way
   .const .Sub funct = 'funct'
  
François.

  This currently only works in the type_ids branch. When I merge trunk
  to branch (trying to do so weekly or so), I've been updating this
  syntax so that when we merge back, hopefully it'll be painless.

  --
  Will Coke Coleda


my apologies. it'll be fully deprecated in a few days, i expect.
~jerry


Re: [perl #52838] [CORE] Remove the saveall and restoreall ops

2008-04-13 Thread jerry gay
On Sun, Apr 13, 2008 at 7:36 PM, chromatic [EMAIL PROTECTED] wrote:

 On Sunday 13 April 2008 19:30:50 Bob Rogers wrote:

  From: James Keenan via RT [EMAIL PROTECTED]
  Date: Sun, 13 Apr 2008 19:13:01 -0700
  
  But here is a patch which partially implements the objective of this RT.
  
   Excellent; thank you.  Did you want to apply it, or shall I?
  
  What's missing is a revision of docs/pdds/draft/pdd19_pir.pod.
  'saveall' and 'restoreall' are used within a code example in this
  doc, and I don't know what should go in their places.
  
   This is in the section called Stack calling conventions, which this
   ticket together with #52842 will make obsolete.  So, unless there are
   screams of protest, the whole section should be deleted.
  
  Still to be addressed is this portion of the OP:  When these are gone,
  the instructions can be removed from src/ops/stack.ops, and the
  reg_stack member of struct Parrot_Context can be removed.
  
   I will be happy to do this (if nobody with more tuits gets there first).

  I move to hold these patches until after the release on Tuesday.  Is that 
 soon
  enough for everyone?

+1
~jerry


Re: [perl #52776] [configure][BUG] $(RM_F) uses $(PERL)

2008-04-12 Thread jerry gay
On Fri, Apr 11, 2008 at 12:15 PM, via RT Bernhard Schmalhofer
[EMAIL PROTECTED] wrote:
 # New Ticket Created by  Bernhard Schmalhofer
  # Please include the string:  [perl #52776]
  # in the subject line of all future correspondence about this issue.
  # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=52776 


  In the Makefile templates the line

  RM_F = @rm_f@

  is frequently used.
  This usually expands to

  RM_F = $(PERL) -MExtUtils::Command -e rm_f

  This utterly fails when $(PERL) isn't set up. So a saner expansion of
  $(RM_F) and friends is neede.

every parrot makefile depends on perl being available on the system.
we should make sure every makefile template matches /[EMAIL PROTECTED]@$/

~jerry


Re: [perl #52788] gettext not being detected

2008-04-12 Thread jerry gay
thanks for the reports. i needed some feedback on this step in order
to make it more portable.

in order to do this correctly, i needed to determine if GNU libc is
installed. from the gettext overview
(http://www.gnu.org/software/gettext/manual/gettext.html#Overview):

Note that on GNU systems, you don't need to link with libintl
because the gettext library functions are already contained in GNU libc.

since other config steps, like auto::backtrace, also want to know if
GNU libc is available, i created a new config step: auto::glibc. i
then modified the auto::gettext link command based on the information
returned from auto::glibc. note that i have not modified
auto::backtrace, since i don't have a platform with GNU libc on which
to test changes.

based on reports on #parrot, as of 26949, gettext detection working
everywhere i know of (windows, darwin, linux).

marking this ticket resolved.
~jerry


Re: get_namespace Oddity

2008-04-06 Thread jerry gay
On Sun, Apr 6, 2008 at 10:30 AM, Bob Rogers
[EMAIL PROTECTED] wrote:
From: Bob Rogers [EMAIL PROTECTED]
Date: Sun, 6 Apr 2008 13:25:33 -0400



   From: chromatic [EMAIL PROTECTED]
   Date: Sun, 6 Apr 2008 09:52:34 -0700

   ... compounded by the fact that I can't seem to get any of the existing
   namespace ops to do what I want in a concise, non-hacky way.  What am I
   missing?

I notice that changing get_root_namespace to get_hll_namespace makes
the code you posted work.  That seems completely backwards, though, so I
can't say that I understand it either . . .

  Aha!  It's because they're both in the default HLL, the namespace for
  which is called parrot.  So this also works:

 test_namespace = get_root_namespace [ 'parrot'; 'Test'; 'More' ]

  Not sure if that's any more intuitive, though.

by default, everything you write in pir is in the [ 'parrot' ] hll
namespace. therefore,
get_root_namespace [ 'parrot', 'Foo' ]
is equivalent to
get_hll_namespace [ 'Foo' ]
unless there's been a previous HLL directive for the non-default hll.

clear as mud?
~jerry


Re: What in lieu of the Cpioctl opcode?

2008-04-06 Thread jerry gay
On Sun, Apr 6, 2008 at 4:13 PM, Bob Rogers
[EMAIL PROTECTED] wrote:
I notice that Cpioctl is deprecated in favor of methods on the
  ParrotIO object (per RT #48589), but I can't figure out what.  Is this
  because the new methods have not been implemented yet?  TIA,

precisely. allison and i were talking about this today. i/o
implementation is due on 1 may, as per
http://www.perlfoundation.org/parrot_grant_from_nlnet. however, it
will likely be delivered late, as concurrency isn't yet complete and
mmd is next on allison's list.

i don't think there's anything blocking it's implementation other than
a short supply of tuits. if you find any, let me know.
~jerry


Re: tutorial, blog, hackathon

2008-04-04 Thread jerry gay
On Thu, Apr 3, 2008 at 10:20 PM, Allison Randal [EMAIL PROTECTED] wrote:

 Joshua McAdams wrote:

 
 The dorms that we have this year have large common areas that we have
 24x7 access too.  I can investigate them more if I need too.
  
This would be excellent.  If the hackathon is the weekend before
YAPC::NA, will the dorms and common areas be available then?
(I.e., would I be able to check in on the evening of June 13?)
  
 
  yes, we'll have dorm access at least as early as the Friday before the
  conference.
 

  The dorms sound workable. Is it the same dorms as last time YAPC::NA was in
 Chicago?

i'm pretty sure it is. is there a suggested dorm that we could all
book rooms close together in? maybe one that has a comfy common area
in which to hack the weekend away? maybe one with a/c (at least in the
common area, hopefully throughout)?

i'm ready to book a room asap, and it'd be nice to be nearby other
parrot hackers. birds of a feather
~jerry


Re: [perl #52288] [install] undefined reference to `Parrot_set_executable_name', linking failed

2008-04-02 Thread jerry gay
On Wed, Apr 2, 2008 at 4:50 AM, Christian Aperghis
[EMAIL PROTECTED] wrote:
 Andy Dougherty a écrit :



  On Tue, 1 Apr 2008, Christian Aperghis-Tramoni wrote:
 
 
 
   I have exactly the same problem under a Debian system.
   Configure works properly but make ends with the same message error :
  
   pbc_to_exe.o: In function `main':
   pbc_to_exe.c:(.text+0x64): undefined reference to
   `Parrot_set_executable_name'
   collect2: ld returned 1 exit status
   linking failed
   current instr.: 'link_file' pc 769 (pbc_to_exe.pir:369)
   called from Sub 'main' pc 124 (pbc_to_exe.pir:32)
   make: *** [pbc_to_exe] Error 1
  
  
 
  My guess is the same as it was in the original problem report -- do you
 have a previously installed libparrot somewhere (perhaps in /usr/local/lib?)
  I have not yet heard back from the original poster whether this is the
 source of the problem, but it seems a reasonable possibility to me.
 
 
 
   Note that this problem does not appear on a Centos or a MacOsX System.
  
  
 
  My guess is that those systems do not have a previously installed
 libparrot somewhere where the linker can find it.
 
 
 

  If what you are suggesting is right, depending of the system we are working
 on we cannot perform an upgrade of parrot without removing the former
 installation.

this is correct, until we start versioning our libparrot libraries,
which is a platform-dependent task we haven't attacked yet. for
example: libparrot.so.0.6.0-devel
~jerry


Re: [PDD19] some remarks/proposals

2008-04-02 Thread jerry gay
On Wed, Apr 2, 2008 at 12:29 PM, Klaas-Jan Stol [EMAIL PROTECTED] wrote:
 hi,

  i have some remarks/proposals on the current PDD 19 (PIR).
  It already is full with proposals and issues that must be resolved
  before it can be pushed out of draft status, but I figured now is the
  time (as it will soon be worked on, I heard)

  shall i provide this as a patch, or can i go ahead and commit my {{
  PROPOSAL }} stuff?

please feel free to commit it. we'll see the patch on-list after you
commit, anyway.
~jerry


Re: [perl #52220] Test 335 of t/op/01-parse_ops.t segfaults

2008-03-29 Thread jerry gay
On Fri, Mar 28, 2008 at 9:42 PM, via RT Seneca Cunningham
[EMAIL PROTECTED] wrote:
 # New Ticket Created by  Seneca Cunningham
 # Please include the string:  [perl #52220]
 # in the subject line of all future correspondence about this issue.
 # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=52220 


 herodotus:parrot seneca$ ./parrot t/op/01-parse_ops_335.pasm
 Bus error

 Crash reporter log:
 Process: parrot [80742]
 Path:./parrot
 Identifier:  parrot
 Version: ??? (???)
 Code Type:   PPC (Native)
 Parent Process:  bash [70067]

 Date/Time:   2008-03-28 21:31:41.314 -0400
 OS Version:  Mac OS X 10.5.2 (9C31)
 Report Version:  6

 Exception Type:  EXC_BAD_ACCESS (SIGBUS)
 Exception Codes: KERN_PROTECTION_FAILURE at 0x003c
 Crashed Thread:  0

 Thread 0 Crashed:
 0   libparrot.dylib 0x00952b38 INS + 2104 
 (parser_util.c:749)
 1   libparrot.dylib 0x0092d1b4 yyparse + 4276 (imcc.y:824)
 2   libparrot.dylib 0x0093cf24 compile_to_bytecode +
 500 (main.c:955)
 3   libparrot.dylib 0x0093d2b0 imcc_run + 608 
 (main.c:1058)
 4   parrot  0x2434 main + 148 (main.c:56)
 5   parrot  0x2340 start + 64

 Thread 0 crashed with PPC Thread State 32:
  srr0: 0x00952b38  srr1: 0x0200f030   dar: 0x003c dsisr: 0x4000
r0: 0xr1: 0xbfffedb0r2: 0xr3: 0x
r4: 0x0095a694r5: 0xfefefeffr6: 0x80808080r7: 0x
r8: 0xr9: 0x0008   r10: 0x62fefeff   r11: 0x00808080
   r12: 0x00808080   r13: 0x   r14: 0x   r15: 0x
   r16: 0x   r17: 0x   r18: 0x   r19: 0x
   r20: 0x   r21: 0x   r22: 0x   r23: 0x
   r24: 0x   r25: 0x   r26: 0xb754   r27: 0x000c
   r28: 0x   r29: 0x01849600   r30: 0xbfffedb0   r31: 0x00952318
cr: 0x44000422   xer: 0x0004lr: 0x00952b18   ctr: 0x9615b140
 vrsave: 0x

 Binary Images:
0x1000 - 0x6ffb +parrot ??? (???)
 7ffd39642fcd0719a153e352cf920993
 /opt/src/perl6/svn-clean-only/parrot/parrot
0x9000 - 0xbffd  libutil.dylib ??? (???)
 dacc21eea7647ba1bee44ffc0124489d /usr/lib/libutil.dylib
   0x73000 -0x97fdf +libreadline.5.2.dylib ??? (???)
 /opt/readline52_20071129/lib/libreadline.5.2.dylib
  0x125000 -   0x20bff7 +libicuuc.38.dylib ??? (???)
 /usr/local/lib/libicuuc.38.dylib
  0x24a000 -   0x26bff1  libmx.A.dylib ??? (???) /usr/lib/libmx.A.dylib
  0x5f -   0x9ca2e7 +libparrot.dylib ??? (???)
 f4bc26f0b488b86c4b627c18c03a6c99
 /opt/src/perl6/svn-clean-only/parrot/blib/lib/libparrot.dylib
  0xbe -  0x16b5fff +libicudata.38.dylib ??? (???)
 /usr/local/lib/libicudata.38.dylib
 0x8fe0 - 0x8fe30b23  dyld 96.2 (???)
 39109181acbf30fed542e6c9abcf1798 /usr/lib/dyld
 0x90779000 - 0x9077eff6  libmathCommon.A.dylib ??? (???)
 /usr/lib/system/libmathCommon.A.dylib
 0x91b7a000 - 0x91be1ffb  libstdc++.6.dylib ??? (???)
 a4e9b10268b3ffac26d0296499b24e8e /usr/lib/libstdc++.6.dylib
 0x91cf1000 - 0x91d22fff  libncurses.5.4.dylib ??? (???)
 56daabc03ccebeaebb5e5efcbe594bd0 /usr/lib/libncurses.5.4.dylib
 0x921e8000 - 0x921f3ffb  libgcc_s.1.dylib ??? (???)
 ea47fd375407f162c76d14d64ba246cd /usr/lib/libgcc_s.1.dylib
 0x95aff000 - 0x95bb9fff  libcrypto.0.9.7.dylib ??? (???)
 4ea3d7e9a1c28ac7b17ed80873fe6598 /usr/lib/libcrypto.0.9.7.dylib
 0x96151000 - 0x962eafe3  libSystem.B.dylib ??? (???)
 754231f5e52ed8418f89f1f3369caf58 /usr/lib/libSystem.B.dylib
 0x8000 - 0x9703  libSystem.B.dylib ??? (???) 
 /usr/lib/libSystem.B.dylib

ouch.
the contents of t/op/01-parse_ops_335.pasm should be somewhere between
2 and 12 lines. could you paste it inline? it would help us find the
op(s) causing the segfault.
~jerry


Re: [perl #51916] Error in tests after build

2008-03-26 Thread jerry gay
On Tue, Mar 25, 2008 at 7:34 PM, James Keenan via RT
[EMAIL PROTECTED] wrote:
 On Fri Mar 21 19:23:13 2008, [EMAIL PROTECTED] wrote:
   No, and it appears not be part of Bundle::Parrot on CPAN, either.  We'll
   have to rectify this.
  

  Coke asked me to pose this question for general discussion:

  If individual languages -- as distinct from Parrot itself -- require
  non-core modules from CPAN, should such modules go into Bundle::Parrot?
   Should we create a Bundle::Parrot::Languages?  Should we create a
  Bundle::Parrot::SomeSpecificLanguage?

no, definitely not.  languages must be self-contained. that means any
modules/libraries necessary for a particular language implementation
must be checked for by the language itself, and not by parrot.
languages/dotnet gets this right, by having its own Configure.pl.
other languages must move to that standard.

Bundle::Parrot is for perl modules that are required to build and
develop parrot core, and parrot core only.
~jerry


Re: [perl #51916] Error in tests after build

2008-03-26 Thread jerry gay
On Wed, Mar 26, 2008 at 6:29 AM, Will Coleda [EMAIL PROTECTED] wrote:
 On Wed, Mar 26, 2008 at 7:21 AM, jerry gay [EMAIL PROTECTED] wrote:
  
   On Tue, Mar 25, 2008 at 7:34 PM, James Keenan via RT
[EMAIL PROTECTED] wrote:
 On Fri Mar 21 19:23:13 2008, [EMAIL PROTECTED] wrote:
   No, and it appears not be part of Bundle::Parrot on CPAN, either.  
 We'll
   have to rectify this.
  

  Coke asked me to pose this question for general discussion:

  If individual languages -- as distinct from Parrot itself -- require
  non-core modules from CPAN, should such modules go into Bundle::Parrot?
   Should we create a Bundle::Parrot::Languages?  Should we create a
  Bundle::Parrot::SomeSpecificLanguage?

no, definitely not.  languages must be self-contained.

  As the one who started this mantra, the original intent here was to
  get all the configuration information out of core parrot...


   that means any
modules/libraries necessary for a particular language implementation
must be checked for by the language itself, and not by parrot.

  ...Agreed.


languages/dotnet gets this right, by having its own Configure.pl.
other languages must move to that standard.

Bundle::Parrot is for perl modules that are required to build and
develop parrot core, and parrot core only.

  This is the part that I think is open for discussion. I hesitated to
  add language-specific stuff to B::P, but:

  While we're bundling the languages in the repository, I think it does
  make some sense for this to support the entire repository. Balkanizing
  further at this stage is arguably going to make it more difficult to
  get HLL developers contributing.

  Note that we already include Test::Base which is used by APL: If we do
  go this route for B::P, this should be removed.

  --
  Will Devil's Advocate Coleda

ok. replacing parrot core with parrot distro in my earlier message
puts us in agreement. however, i want to propose the following points:

configure detection for non-core parrot functionality (e.g.
language-specific libraries) should be distinguished from core
configuration steps somehow (visually and/or otherwise). this will
help us rip out a language from the distro when it's determined that
it is time to become an external language, or to go the way of the
dodo.

Bundle::Parrot is currently optimized for parrot developers, because
the distrobution is similarly optimized. as it stands, perhaps adding
HLL-specific modules to Bundle::Parrot is in line with current
thinking. however, i'm not certain that Bundle::Parrot will continue
to be a development-specific bundle, or whether it will become
user-centric as we approach 1.0. as i see it in my head,
Bundle::Parrot would become a user-specific bundle, and something else
(Bundle::Parrot::Devel?) would be the development-specific module. i
don't mind proliferation of bundles under the Bundle::Parrot::
namespace, so Bundle::Parrot::APL which includes Test::Base and
Bundle::Parrot seems reasonable to me. i'll couch that by letting you
know that i've been called loony on more than one occasion.

~jerry


Re: [perl #52130] [BUG] postconfigure tests hanging on feather.

2008-03-26 Thread jerry gay
On Wed, Mar 26, 2008 at 9:43 AM, James Keenan via RT
[EMAIL PROTECTED] wrote:
 On Wed Mar 26 07:27:44 2008, coke wrote:
   On feather, when running 'make test', the following tests both hang in
   an svn checkout:
  
   t/postconfigure/03-revision.t # hangs after test 4
   t/postconfigure/04-revision.t # hangs after test 4
  
   If I hit control-C when the hang occurs, the tests proceed with all
   tests passing.
  

  I'll try to look into this.  What's puzzling is that we get tested on
  *many* Linux boxes but the overwhelming majority report no problem here.

something to do with svk being on the box but never having been run by
that user?
istr something like this before. iirc hitting enter will make the
problem go away, never to return, because svk is waiting for input.
it's just a guess, but if that's the problem, I HATE THAT PROBLEM. i'd
love to see it go away for good.
~jerry


Re: Deprecating PAST-pm

2008-03-26 Thread jerry gay
On Wed, Mar 26, 2008 at 10:50 AM, Patrick R. Michaud [EMAIL PROTECTED] wrote:
 On Tue, Mar 25, 2008 at 09:32:46PM -0700, [EMAIL PROTECTED] wrote:
   Modified:
  trunk/apps/p3/cgi-pir/slides.pir
  trunk/compilers/past-pm/PAST/Node.pir
  trunk/compilers/past-pm/POST/Node.pir

  ... are we at or near a point that past-pm could be removed
  from the repository?  What languages or tools are still using PAST-pm ?

ack -af PAST-pm, on a recent revision suggests the following files
mention PAST-pm:
compilers\past-pm\Makefile
compilers\past-pm\PAST-pm.pbc
compilers\past-pm\PAST-pm.pir
compilers\pct\README
compilers\pct\src\PAST.pir
config\gen\makefiles\past-pm.in
DEPRECATED.pod
languages\lua\doc\status.pod
languages\lua\src\lua51.pir
languages\pheme\pheme.pir
languages\plumhead\ChangeLog
lib\Parrot\Docs\Section\Compilers.pm
MANIFEST
MANIFEST.generated
NEWS
runtime\parrot\library\PAST-pm.pbc
t\compilers\past-pm\hllcompiler.t
t\compilers\past-pm\past.t
t\compilers\past-pm\post.t

paring down this list and searching the handful of remaining files for
valid content seems like a good CAGE task.
~jerry


Re: [perl #40817] [TODO] track generated files during the configure/make process

2008-03-23 Thread jerry gay
On Sun, Mar 23, 2008 at 7:49 PM, James Keenan via RT
[EMAIL PROTECTED] wrote:
 Hmm, the more I look at this, the more I realize that even the improved
  version of my patch is not ready for prime time.  While it DWIMs when
  you call 'perl Configure.pl', it doesn't when you call 'perl
  Configure.pl --test' (as I do frequently).  We only want
  MANIFEST.configure.generated to be opened or appended to when we are
  actually configuring -- not when we're running tests either
  pre-configuration or during 'make test'.

  Any ideas as to how this might be salvaged?

i suggest have the functions that write to files check as to whether
they should write or not.
of course, DRY suggests that's best handled by calling another function.

for example,

sub append_configure_log {
my $target = shift;
return if $conf-i_should_not_append_the_configure_log($target);
...
}

~jerry


Re: [perl #38194] [TODO] build - optimize pmc2c.pl

2008-03-23 Thread jerry gay
On Sun, Mar 23, 2008 at 6:21 PM, James Keenan via RT
[EMAIL PROTECTED] wrote:
 On Sat Mar 22 10:38:42 2008, doughera wrote:

   Just be careful that 'use lib' doesn't look outside of the parrot source
   tree.  If pmc2c.pl is normally invoked from the root directory, then
   ../lib and ../../lib are looking outside of the parrot source.  This is
   wrong, since there is no guarantee that stuff stored in ../../lib is even
   remotely suitable for parrot, or indeed for any other use.
  

  Suppose that at the top of tools/build/pmc2c.pl, we simply state this:

  use Getopt::Long ();
  use FindBin qw($Bin);
  use lib $Bin/../../lib;
  use Parrot::Pmc2c::Pmc2cMain ();

  $Bin here is tools/build/.  We go two levels up, then back down to the
  lib/ underneath the top-level Parrot directory.  That lib/ is the one in
  which we'll start looking for Parrot::Pmc2c::Pmc2cMain.

  So that should mean we're not looking in the wrong places -- correct?

why not put the location of parrot's lib dir in
Parrot::Config::Generated, and look it up when needed?
~jerry


Re: [perl #38194] [TODO] build - optimize pmc2c.pl

2008-03-23 Thread jerry gay
On Sun, Mar 23, 2008 at 9:39 PM, chromatic [EMAIL PROTECTED] wrote:
 On Sunday 23 March 2008 20:58:24 jerry gay wrote:

   why not put the location of parrot's lib dir in
   Parrot::Config::Generated, and look it up when needed?

  Isn't Parrot::Config::Generated *in* Parrot's lib dir?

a minor detail :(
~jerry


Re: [perl #49758] [BUG] rakudo segfaults after No scope found for PAST::Var error

2008-03-17 Thread jerry gay
On Mon, Mar 17, 2008 at 10:21 AM, Will Coleda via RT
[EMAIL PROTECTED] wrote:
 On Mon Mar 17 09:34:24 2008, cognominal wrote:
   $?SUB is not reset between two evals  so the outer to an undefined
   block. I am not sure this is
   the best  place to reset $?SUB.
   At least if seems to fix the bug.
  
  
   Index: /Users/stef/svn/parrot/compilers/pct/src/PAST/Compiler.pir
   =
   ==
   --- /Users/stef/svn/parrot/compilers/pct/src/PAST/Compiler.pir
   (revision 26447)
   +++ /Users/stef/svn/parrot/compilers/pct/src/PAST/Compiler.pir
   (working copy)
   @@ -71,7 +71,9 @@
unless null blockpast goto have_blockpast
blockpast = new 'ResizablePMCArray'
set_global '@?BLOCK', blockpast
   -  have_blockpast:
   +have_blockpast:
   +null $P0
   +set_global '$?SUB', $P0
.return self.'as_post'(past, 'rtype'='v')
.end

  This avoids the segfault, so +1.

  This does make me notice, though, that PAST::Compiler is using several
  perl6 variables, which confuses me.

PAST::Compiler uses the Perl 6 naming convention for variables because
it's *way* better than hungarian notation, however it does assume
HLL writers know some Perl 6. i don't think this is too much of a
stretch, since parsers and action grammars are written in subsets of
Perl 6 already if using PCT and NQP.
~jerry


Re: [perl #41165] [PATCH] appropriate handle CRLE in Here Docs

2008-03-16 Thread jerry gay
On Sun, Mar 16, 2008 at 8:09 AM, James Keenan via RT
[EMAIL PROTECTED] wrote:
 There's been no activity in this RT for more than a year, so I am
  resolving the ticket.


we have a category for this called 'stalled'. it's a better reflection
of status than 'closed' in cases like this in my opinion.
~jerry


Re: [svn:parrot] r26321 - in trunk/languages/perl6: config/makefiles src/classes src/pmc

2008-03-12 Thread jerry gay
On Wed, Mar 12, 2008 at 10:36 AM, chromatic [EMAIL PROTECTED] wrote:
 On Tuesday 11 March 2008 22:59:11 [EMAIL PROTECTED] wrote:

   Modified:
  trunk/languages/perl6/config/makefiles/root.in
  trunk/languages/perl6/src/classes/Bool.pir
  trunk/languages/perl6/src/pmc/perl6bool.pmc
  
   Log:
   [rakudo] implement auto{increment,decrement} semantics as per S03
   --- trunk/languages/perl6/src/classes/Bool.pir(original)
   +++ trunk/languages/perl6/src/classes/Bool.pirTue Mar 11 22:59:10 
 2008

   @@ -30,6 +31,7 @@
  
.sub 'ACCEPTS' :method
.param pmc topic
   +say foo
.return (self)
.end

  Is this vestigial?

i'm sure it is. it's been removed in r26335.
~jerry


  1   2   3   4   5   >