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

2008-06-22 Thread Bernhard Schmalhofer

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.


Regards,
   Bernhard





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: Graph for Rakudo Blog Post about Passing Tests

2008-06-22 Thread Moritz Lenz
Hi again,

Ovid wrote:
 --- Moritz Lenz [EMAIL PROTECTED] wrote:
 
 Attached is an updated version, as well as an example chart it
 creates.
 This is not as pretty as the previous version, but it's more
 informative.
 If there are significant number of failed tests, I could also include
 their number.
 
 Any comments?
 
 Looks great.  However, from a testing perspective, I'm wondering why
 there is such a huge number of skipped tasks.  Shouldn't those be TODO
 tasks?  Skips are really easy to ignore and it's virtually impossible
 to know if they'll ever pass but TODO tests unexpectedly succeeding
 tend to stand out.

I thought about that over the weekend, and I wrote a small script to
automatically unfudge tests that don't actually need the fudging.

I ran this:
time perl5.10.0 tools/autounfudge.pl --specfile t/spectest_regression.data
and it wrote me a patch that removed about 8 or 10 unneeded fudges (plus
one false positive, where I broke the test file in an earlier commit,
presumably) in a bot more than 6 minutes.

I committed some of the changes to the test suite already.

Any comments are appreciated.

Cheers,
Moritz

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


autounfudge.pl
Description: Perl program


Re: [svn:parrot] r28644 - trunk/compilers/imcc

2008-06-22 Thread chromatic
On Sunday 22 June 2008 09:04:53 [EMAIL PROTECTED] wrote:
 Modified: trunk/compilers/imcc/pbc.c
 ===
 --- trunk/compilers/imcc/pbc.c  (original)
 +++ trunk/compilers/imcc/pbc.c  Sun Jun 22 09:04:48 2008
 @@ -1032,12 +1032,31 @@
          }
      }
  
 +    /* Do we have to create an instance of a specific type for this sub?
 */ +    if (unit-instance_of) {
 +        /* Look it up as a class and as a PMC type. */
 +        STRING * const classname = string_from_cstring(interp,
 unit-instance_of + 1, +                 strlen(unit-instance_of) - 2);
 +        PMC * const classobj = Parrot_oo_get_class_str(interp, classname);
 +        if (!PMC_IS_NULL(classobj))
 +            sub_pmc = VTABLE_instantiate(interp, classobj, PMCNULL);
 +        else {

Would this be cleaner if you inverted the conditions?  That is, If the PMC 
*is* null, do this.  Otherwise, do that.

In this case I'm not sure.  Generally the double negative is confusing though.

-- c



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

2008-06-22 Thread James Keenan via RT
On Sun Jun 22 10:04:58 2008, [EMAIL PROTECTED] wrote:
 
 One thing I don't understand:  In config/gen/makefiles/root.in, I see
 the following variable assignment:
 
   OPS_FILES = @ops@ $(GEN_OPSFILES)# line 455
 
 There currently are no generated .ops files (I think):
 
   GEN_OPSFILES =   # line 210
 
 So OPS_FILES holds @[EMAIL PROTECTED]  But I don't understand where @ops@ is
 defined/assigned to.
 

I found it:  config/auto/ops.pm.


[perl #56214] [PATCH] Implementation of Str.index.

2008-06-22 Thread via RT
# New Ticket Created by  Vasily Chekalkin 
# Please include the string:  [perl #56214]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=56214 


Hello.

Almost trivial implementation of Str.index attached.

S29-str/index.t passing.

-- 
Bacek.
diff --git a/languages/perl6/src/classes/Str.pir b/languages/perl6/src/classes/Str.pir
index 6195989..828e374 100644
--- a/languages/perl6/src/classes/Str.pir
+++ b/languages/perl6/src/classes/Str.pir
@@ -222,6 +222,32 @@ as the Perl 6 CStr class.
 .return (retv)
 .end
 
+.sub 'index' :method
+.param string x
+.param int start :optional
+.param int has_start :opt_flag
+.local pmc retv
+.local string s
+.local int pos
+
+s = self
+retv = new 'Int'
+ 
+$I0 = length x
+unless $I0 goto check_length
+pos = index s, x, start
+goto done
+  check_length:
+pos = start
+$I0 = length s
+if $I0  pos goto done
+pos = $I0
+
+  done:
+retv  = pos
+.return (retv)
+.end
+
 =item perl()
 
 Returns a Perl representation of the Str.
@@ -452,6 +478,26 @@ This function is mostly identical to the C library sprintf function.
 .return s.'sprintf'(args :flat)
 .end
 
+=item index
+
+ our StrPos multi method index( Str $string: Str $substring, StrPos $pos = StrPos(0) ) is export
+
+index searches for the first occurrence of $substring in $string, starting at $pos.
+
+The value returned is always a StrPos object. If the substring is found, then the StrPos represents the position of the first character of the substring. If the substring is not found, a bare StrPos containing no position is returned. This prototype StrPos evaluates to false because it's really a kind of undef. Do not evaluate as a number, because instead of returning -1 it will return 0 and issue a warning.
+
+=cut
+
+.sub 'index'
+.param string str
+.param string subs
+.param int pos :optional
+.local pmc s
+s = new 'Perl6Str'
+s = str
+.return s.'index'(subs, pos)
+.end
+
 =back
 
 =head2 TODO Functions


[perl #56224] {BUG} syntax error not catched by PGE triggers errors on generated imcc

2008-06-22 Thread via RT
# New Ticket Created by  Stephane Payrard 
# Please include the string:  [perl #56224]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=56224 


just add this regex to whatever grammar you use to trigger the bug

token cut {  =cut }

-- 
cognominal stef


[perl #56226] [TODO] implement 'roots' from S29

2008-06-22 Thread Patrick R. Michaud (via RT)
# New Ticket Created by  Patrick R. Michaud 
# Please include the string:  [perl #56226]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=56226 


I've just removed S29-num/roots.t from spectest_regression,
since all of the tests were being skipped.

If someone cares to write a working 'roots' function for Rakudo, 
then we can add it back.  :-)

Thanks!

Pm


[perl #56206] [TODO] Modify the smoke server to accept smokes from releases, not just svn

2008-06-22 Thread via RT
# New Ticket Created by  Christopher Nehren 
# Please include the string:  [perl #56206]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=56206 


Per #parrot:

apeiron I'm trying to submit a smoke for parrot 0.6.3 on FreeBSD and  
I'm getting this error: * Sending data to smokeserver 
http://smoke.parrotcode.org/smoke/ 
... error: The submitted smoke has an invalid format! Am I
   missing something, or did I do something incorrectly?
diakopter apeiron: usually that's b/c you did svn export, not svn  
checkout
apeiron diakopter, This is directly from a 0.6.3 tarball.
diakopter apeiron: that too :)
diakopter yes, non-svn-checkouts can't submit smokes
apeiron ah.
apeiron Now you tell me.
diakopter apeiron: actually
diakopter if you modify the submission file to include some svn  
revision, the smoke server will accept it
diakopter b/c it includes the svn revision in the submission
pmichaud seems like we ought to be able to get 'make smoke' to  
recognize 0.6.3 as a valid revision :-)
pmichaud for the non-svn checkouts.
apeiron Not a big deal, I'm installing svn presently.
apeiron (well, not a big deal for me)
pmichaud well, we'd like to get smokes from lots of platforms :-)
diakopter apeiron: I don't know what revision the 0.6.3 release was
diakopter pmichaud: could the 'make release' target put the r in  
some text file somewhere?
diakopter apeiron: 0.6.3 was r28470


I put 28470 in the appropriate spot and the smoke server accepted it,  
though it'd be nice to not have to do this. Especially if we get  
automated smoking going.


[perl #52506] [CAGE] Refactor ops2c

2008-06-22 Thread Mark Glines via RT
On Sat Jun 21 07:33:57 2008, [EMAIL PROTECTED] wrote:
 Mark:  Do you have any objection to closing this RT?

No objection here, my needs regarding g++ builds have been satisfied.

Thanks!

Mark



[perl #56208] [PATCH] Implementation of Str.sprintf.

2008-06-22 Thread Patrick R. Michaud via RT
Applied in r28627, with modifications to avoid the duplicate function sub.

Thanks!

Pm


[perl #56216] [PATCH] Handles parrot's exceptions in Str.substr.

2008-06-22 Thread via RT
# New Ticket Created by  Vasily Chekalkin 
# Please include the string:  [perl #56216]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=56216 


Hello.

Attached patch handles parrot's exception on substr invocations and 
returns Failure instead.

-- 
Bacek
diff --git a/languages/perl6/src/classes/Str.pir b/languages/perl6/src/classes/Str.pir
index 6195989..eb454cb 100644
--- a/languages/perl6/src/classes/Str.pir
+++ b/languages/perl6/src/classes/Str.pir
@@ -258,10 +284,17 @@ Returns a Perl representation of the Str.
 len = len - start
 
   end:
+push_eh cant_substr
 $S0 = substr self, start, len
+pop_eh
 s = new 'Str'
 s = $S0
 .return (s)
+  cant_substr:
+.get_results ($P0, $S0)
+s = new 'Failure'
+.return (s)
+
 .end
 
 =back


Strange variable behaviour

2008-06-22 Thread Frederik Schwarzer
Hi,

there is something I do not understand.
I reduced the code to a minimal case.

If I do:
my $a = 23;
my $b = $a;   # copy
$a = 42;
say $b;   # 23
$b is 23,
and if I do:
my $a = 23;
my $b := $a;   # reference
$a = 42;
say $b;   # 42
$b is 42 because it is just a reference to $a.

But if I do:
my @arr = (23, 42);
my $temp = @arr[0];   # copy?
@arr[0] = @arr[1];
say $temp;   # 42
$temp is 42 ...
I expected $temp to be 23 here.

Am I missing something?

Regards,
Frederik


[perl #56208] [PATCH] Implementation of Str.sprintf.

2008-06-22 Thread via RT
# New Ticket Created by  Vasily Chekalkin 
# Please include the string:  [perl #56208]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=56208 


Hello.

There is implementation of sprintf. Only src/classes/Str.pir affected.

BTW, '%p' works in parrot, but according to S29 shouldn't.

-- 
Bacek.
diff --git a/languages/perl6/src/classes/Str.pir b/languages/perl6/src/classes/Str.pir
index 0bd0d95..6195989 100644
--- a/languages/perl6/src/classes/Str.pir
+++ b/languages/perl6/src/classes/Str.pir
@@ -213,6 +213,14 @@ as the Perl 6 CStr class.
 .return(retv)
 .end
 
+.sub 'sprintf' :method
+.param pmc args :slurpy
+.local pmc retv
+
+retv = new 'Perl6Str'
+retv = sprintf self, args
+.return (retv)
+.end
 
 =item perl()
 
@@ -427,6 +435,23 @@ Returns string with one Char removed from the end.
 .return s.'chop'()
 .end
 
+=item sprintf
+
+ our Str multi method sprintf ( Str $format: [EMAIL PROTECTED] ) is export
+
+This function is mostly identical to the C library sprintf function.
+
+=cut
+
+.sub 'sprintf'
+.param pmc format
+.param pmc args :slurpy
+.local pmc s
+s = new 'Perl6Str'
+s = format
+.return s.'sprintf'(args :flat)
+.end
+
 =back
 
 =head2 TODO Functions
@@ -480,8 +505,6 @@ Needs to be in terms of StrPos, not Int.
 
 Needs to be in terms of StrPos, not Int.
 
-=item sprintf
-
 =item unpack
 
 =item vec


Re: Strange variable behaviour

2008-06-22 Thread Will Coleda
On Sun, Jun 22, 2008 at 2:59 PM, Frederik Schwarzer
[EMAIL PROTECTED] wrote:
 Hi,

 there is something I do not understand.
 I reduced the code to a minimal case.

 If I do:
my $a = 23;
my $b = $a;   # copy
$a = 42;
say $b;   # 23
 $b is 23,
 and if I do:
my $a = 23;
my $b := $a;   # reference
$a = 42;
say $b;   # 42
 $b is 42 because it is just a reference to $a.

 But if I do:
my @arr = (23, 42);
my $temp = @arr[0];   # copy?
@arr[0] = @arr[1];
say $temp;   # 42
 $temp is 42 ...
 I expected $temp to be 23 here.

 Am I missing something?

 Regards,
 Frederik


Which implementation of Perl 6 are you using here? In Rakudo,
everything works as you describe except for the last example which
dies on the last line with:

Scope  not found for PAST::Var '$temp'
current instr.: 'parrot;PCT::HLLCompiler;panic' pc 156
(src/PCT/HLLCompiler.pir:103)






-- 
Will Coke Coleda


Re: Strange variable behaviour

2008-06-22 Thread Moritz Lenz
Will Coleda wrote:
 On Sun, Jun 22, 2008 at 2:59 PM, Frederik Schwarzer
 [EMAIL PROTECTED] wrote:
 Hi,

 there is something I do not understand.
 I reduced the code to a minimal case.

 If I do:
my $a = 23;
my $b = $a;   # copy
$a = 42;
say $b;   # 23
 $b is 23,
 and if I do:
my $a = 23;
my $b := $a;   # reference
$a = 42;
say $b;   # 42
 $b is 42 because it is just a reference to $a.

 But if I do:
my @arr = (23, 42);
my $temp = @arr[0];   # copy?
@arr[0] = @arr[1];
say $temp;   # 42
 $temp is 42 ...
 I expected $temp to be 23 here.

 Am I missing something?

 Regards,
 Frederik

 
 Which implementation of Perl 6 are you using here? In Rakudo,
 everything works as you describe except for the last example which
 dies on the last line with:
 
 Scope  not found for PAST::Var '$temp'
 current instr.: 'parrot;PCT::HLLCompiler;panic' pc 156
 (src/PCT/HLLCompiler.pir:103)

Did you use the interactive (REPL) rakudo prompt? If so, no wonder - it
currently puts an implicit block around each line.

In the non-interactive version it wroks as Frederik described, which is
certainly a bug:

$ cat test.t
my @arr = (23, 42);
my $temp = @arr[0];   # copy?
@arr[0] = @arr[1];
say $temp;   # 42
$ ../../parrot perl6.pbc test.t
42

Part of the problem is that it's not really tested because
t/spec/S03-operators/assign.t can't be parsed by rakudo correctly, and
the fudged version 1) exhibits GC bugs and 2) is mis-parsed by fudge and
reports the number of tests wrongly.

I'll probably move some of the simpler tests to a separate file to work
around these limitations for now (currently assign.t has 308 tests,
which is way above average anyway)

Cheers,
Moritz

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


[PATCH] Re: Strange variable behaviour

2008-06-22 Thread Moritz Lenz
Moritz Lenz wrote:
 Will Coleda wrote:
 On Sun, Jun 22, 2008 at 2:59 PM, Frederik Schwarzer
 [EMAIL PROTECTED] wrote:
...
 But if I do:
my @arr = (23, 42);
my $temp = @arr[0];   # copy?
@arr[0] = @arr[1];
say $temp;   # 42
 $temp is 42 ...
 I expected $temp to be 23 here.

 Am I missing something?
[ assign.t ]
 I'll probably move some of the simpler tests to a separate file to work
 around these limitations for now (currently assign.t has 308 tests,
 which is way above average anyway)

I did that now: http://dev.pugscode.org/changeset/20965

Attached patch adds the newly created test to spectest_regression, one
failing test is fudged (marked as todo BUG ...)

-- 
Moritz Lenz
http://moritz.faui2k3.org/ |  http://perl-6.de/
Index: t/spectest_regression.data
===
--- t/spectest_regression.data	(revision 28652)
+++ t/spectest_regression.data	(working copy)
@@ -8,6 +8,7 @@
 S02-literals/radix.t
 S02-polymorphic_types/subset-code.t # pure
 S02-polymorphic_types/subset-range.t
+S03-operators/assign-is-not-binding.t
 S03-operators/autoincrement.t   # pure
 S03-operators/comparison.t
 S03-operators/context.t


Re: Strange variable behaviour

2008-06-22 Thread Frederik Schwarzer
On Monday 23 June 2008 00:19:14 Moritz Lenz wrote:
 Will Coleda wrote:

Hi,


  Which implementation of Perl 6 are you using here? In Rakudo,
  everything works as you describe except for the last example which
  dies on the last line with:

Erm, totally forgot that.
I am using a recent (read: hours) build of Parrot/Rakudo.
For testing I write small programmes and
execute them with perl6 test.pl.

All the examples I gave compile just fine here.
I additionally have use v6; given at the beginning
of the file.


 In the non-interactive version it wroks as Frederik described, which is
 certainly a bug:
[...]
 Part of the problem is that it's not really tested because
 t/spec/S03-operators/assign.t can't be parsed by rakudo correctly, and
 the fudged version 1) exhibits GC bugs and 2) is mis-parsed by fudge and
 reports the number of tests wrongly.

Thank you for investigating. :)

Regards,
Frederik


[perl #56206] [TODO] Modify the smoke server to accept smokes from releases, not just svn

2008-06-22 Thread James Keenan via RT
On Sat Jun 21 17:49:51 2008, [EMAIL PROTECTED] wrote:
 Per #parrot:
 
 apeiron I'm trying to submit a smoke for parrot 0.6.3 on FreeBSD and
 I'm getting this error: * Sending data to smokeserver
 http://smoke.parrotcode.org/smoke/
 ... error: The submitted smoke has an invalid format! Am I
missing something, or did I do something incorrectly?
[snip]

 
 
 I put 28470 in the appropriate spot and the smoke server accepted it,
 though it'd be nice to not have to do this. Especially if we get
 automated smoking going.

rant

Welcome to the bizarro world of the Parrot smoke server.

Consider yourself fortunate that you got some feedback indicating you
had an invalid format -- even though the reason for the invalidity is
absurd.  What is perhaps worse is the case where the smoke server
*appears* to accept the report but never displays it and never tells you
when it doesn't display it.  This can happen for reasons as stupid as
having a C compiler listed as 'gcc-4.0' rather than 'gcc'.

See RT 49276 for other issues with the smoke process.  I have been told
that someday Smolder will be the solution to our problems, but I suspect
we will never get there until someone who is skilled in setting up web
sites and CGI processes can set up a site where we can experiment with
other smoke setups.  (We can't do that with the current site because
it's too big a drain on the volunteer time of the sysadmins.)

/rant

kid51




[perl #56076] [PATCH] MACOSX_DEPLOYMENT_TARGET not defined during OSX PPC Rakudo build

2008-06-22 Thread James Keenan via RT
On Wed Jun 18 20:00:25 2008, packy wrote:

 
 I'm submitting a patch, adding the #CONDITIONED_LINE(darwin):export  
 MACOSX_DEPLOYMENT_TARGET := @osx_version@ line (and an explanatory  
 comment) in all the config/makefiles/root.in files for all the  
 languages in languages/  AND updating tools/dev/mk_language_shell.pl  
 so it will be in future language shells.  I'm not sure if all  
 languages will use gcc and g++, but I figured it's just an  
 environment variable and it's better to define it when it's not  
 needed than to not have it defined when it is.

Can we get some feedback on this patch from Mac users who are familiar
with use of 'make' in the various languages?

Thank you very much.

kid51



[perl #55588] [META] June 2008 Hackathon targets

2008-06-22 Thread James Keenan via RT
On Tue Jun 10 11:55:31 2008, coke wrote:
 Any tickets you plan to work on at the hackathon, have this ticket
 refer to them, so we can keep track of what's done. Ditto any tickets
 that are closed as a result of hackathon work.
 


All the children of this ticket have been resolved.  Can the RT be
marked resolved?


[perl #56230] [PATCH] Multimethods for Complex.

2008-06-22 Thread via RT
# New Ticket Created by  Vasily Chekalkin 
# Please include the string:  [perl #56230]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=56230 


Hello.

There is implementation of prefix:+, prefix:-, sqrt, exp for Complex.

More to come.

-- 
Bacek.
diff --git a/languages/perl6/src/builtins/math.pir b/languages/perl6/src/builtins/math.pir
index 1edd996..229648e 100644
--- a/languages/perl6/src/builtins/math.pir
+++ b/languages/perl6/src/builtins/math.pir
@@ -123,12 +123,18 @@ C$x ** 0.5
 
 =cut
 
-.sub 'sqrt'
+.sub 'sqrt' :multi(_)
 .param num a
 a = sqrt a
 .return (a)
 .end
 
+.sub 'sqrt' :multi(Complex)
+.param pmc a
+a = sqrt a
+.return (a)
+.end
+
 
 =item truncate
 
@@ -172,12 +178,18 @@ constant Ie.
 
 =cut
 
-.sub 'exp'
+.sub 'exp' :multi(_)
 .param num a
 a = exp a
 .return (a)
 .end
 
+.sub 'exp' :multi(Complex)
+.param pmc a
+a = exp a
+.return (a)
+.end
+
 
 =item log
 
diff --git a/languages/perl6/src/builtins/op.pir b/languages/perl6/src/builtins/op.pir
index 4d072fc..e8b4a29 100644
--- a/languages/perl6/src/builtins/op.pir
+++ b/languages/perl6/src/builtins/op.pir
@@ -80,6 +80,11 @@ src/builtins/op.pir - Perl6 builtin operators
 .return (a)
 .end
 
+.sub 'prefix:+' :multi('Complex')
+.param pmc a
+.return (a)
+.end
+
 
 .sub 'prefix:-' :multi(_)
 .param num a
@@ -94,6 +99,12 @@ src/builtins/op.pir - Perl6 builtin operators
 .return ($I0)
 .end
 
+.sub 'prefix:-' :multi('Complex')
+.param pmc a
+a = neg a
+.return (a)
+.end
+
 
 .sub 'prefix:~' :multi(_)
 .param string a


[perl #56228] Perl6 gramar bug

2008-06-22 Thread via RT
# New Ticket Created by  luben karavelov 
# Please include the string:  [perl #56228]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=56228 


There is some parse error for this simpe case:
==code
use v6;

sub ok ($num){
$num;
}

for 1..5000 {
ok($_);
}
==cut

The error message is : 

Statement not terminated properly at line 7, near { \nok(
current instr.: 'parrot;PGE::Util;die' pc 120 
(runtime/parrot/library/PGE/Util.pir:82)
called from Sub 'parrot;Perl6::Grammar;eat_terminator' pc 20925 
(src/gen_grammar.pir:2814)
called from Sub 'parrot;Perl6::Grammar;statementlist' pc 19938 
(src/gen_grammar.pir:2451)
called from Sub 'parrot;Perl6::Grammar;statement_block' pc 17795 
(src/gen_grammar.pir:1651)
called from Sub 'parrot;Perl6::Grammar;TOP' pc 14067 (src/gen_grammar.pir:225)


if we add some statement before the for it compiles. For example this is OK:

==code
use v6;

sub ok ($num){
$num;
}
;
for 1..5000 {
ok($_);
}
==cut

Best regards
luben


[perl #56076] [PATCH] MACOSX_DEPLOYMENT_TARGET not defined during OSX PPC Rakudo build

2008-06-22 Thread Will Coleda via RT
On Wed Jun 18 20:00:25 2008, packy wrote:
 On my OSX PPC 10.4.11 platform I did a make perl6 from languages/ 
 perl6, and I got the following:
 
 cd src/pmc  perl /usr/local/source/parrot/tools/build/dynpmc.pl  
 linklibs perl6str mutable perl6scalar mutablevar
 c++ -o perl6_group.bundle lib-perl6_group.o perl6str.o mutable.o  
 perl6scalar.o mutablevar.o  -lm -framework OpenGL -framework GLUT - 
 lcrypto  -L/usr/local/lib -L/usr/local/source/parrot/blib/lib -L/opt/ 
 local/lib  -L/usr/local/source/parrot/blib/lib -bundle -undefined  
 dynamic_lookup -L/usr/local/source/parrot/blib/lib -lparrot
 /usr/bin/ld: flag: -undefined dynamic_lookup can't be used with  
 MACOSX_DEPLOYMENT_TARGET environment variable set to: 10.1
 collect2: ld returned 1 exit status
 partial link of perl6_group failed (256)
 make: *** [src/pmc/perl6_group.bundle] Error 2
 
 *grumble*  At this point, I could just export it in my .bashrc, or  
 put it everywhere it ought to be.
 
 I'm submitting a patch, adding the #CONDITIONED_LINE(darwin):export  
 MACOSX_DEPLOYMENT_TARGET := @osx_version@ line (and an explanatory  
 comment) in all the config/makefiles/root.in files for all the  
 languages in languages/  AND updating tools/dev/mk_language_shell.pl  
 so it will be in future language shells.  I'm not sure if all  
 languages will use gcc and g++, but I figured it's just an  
 environment variable and it's better to define it when it's not  
 needed than to not have it defined when it is.
 
 -packy
 

Looks fine, I don't have a problem with adding it proactively to languages 
currently in the 
repo.

Applied in r28657.
-- 
Will Coke Coleda


[perl #43306] [TODO] config/auto/m4.pm: Write unit tests

2008-06-22 Thread James Keenan via RT
The config step to which this RT corresponds has been removed from
trunk, so we can mark this ticket resolved.


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

2008-06-22 Thread James Keenan via RT
This ticket has been open for nearly 2-1/2 years now.  I'm wondering if
we could reformulate it to more specifically identify ways pmc2c.pl
could be optimized, break those specific objectives into separate RTs,
and close this ticket.

Otherwise, this ticket is likely to be uncloseable.

Can those who have commented on this ticket take a(nother) look at
pmc2c.pl and suggest specific optimizations?

Thank you very much.
kid51


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

2008-06-22 Thread James Keenan via RT
On Sun Jun 22 03:39:37 2008, bernhard wrote:
 
 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.
 

Done.  Patch applied in r28656

 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.
 

So the ticket remains open.



[perl #56236] [BUG]: Unable to 'make perl6' on OS X 10.4 PPC

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


I know my iBook G4 is slow, but this is ridiculous!

perl Configure.pl, make and make test DWIMmed.  I then cd-ed into  
languages/perl6 and called 'make perl6'.  Everything proceeded  
normally until this point:

/Users/jimk/work/parrot/pbc_to_exe perl6.pbc
/usr/bin/gcc -o perl6.o -I/Users/jimk/work/parrot/include -fno-common  
-no-cpp-precomp  -pipe -I/opt/local/include -pipe -fno-common -Wno- 
long-double  -DHASATTRIBUTE_CONST  -DHASATTRIBUTE_DEPRECATED  - 
DHASATTRIBUTE_MALLOC  -DHASATTRIBUTE_NONNULL  - 
DHASATTRIBUTE_NORETURN  -DHASATTRIBUTE_PURE  -DHASATTRIBUTE_UNUSED  - 
DHASATTRIBUTE_WARN_UNUSED_RESULT  -falign-functions=16 - 
fvisibility=hidden -W -Wall -Waggregate-return -Wcast-align -Wcast- 
qual -Wchar-subscripts -Wcomment -Wdisabled-optimization -Wendif- 
labels -Wextra -Wformat -Wformat-extra-args -Wformat-nonliteral - 
Wformat-security -Wformat-y2k -Wimplicit -Wimport -Winit-self - 
Winline -Winvalid-pch -Wmissing-braces -Wmissing-field-initializers - 
Wno-missing-format-attribute -Wmissing-include-dirs -Wpacked - 
Wparentheses -Wpointer-arith -Wreturn-type -Wsequence-point -Wno- 
shadow -Wsign-compare -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch - 
Wswitch-default -Wtrigraphs -Wundef -Wunknown-pragmas -Wno-unused - 
Wvariadic-macros -Wwrite-strings -Wbad-function-cast -Wdeclaration- 
after-statement -Wimplicit-function-declaration -Wimplicit-int -Wmain  
-Wmissing-declarations -Wmissing-prototypes -Wnested-externs - 
Wnonnull -I/sw/include -DHAS_GETTEXT -c perl6.c

... which hangs indefinitely.  Current attempt has been running for  
30 minutes.  Even if it ultimately concludes, this is utterly  
impractical, as it's slowing the computer to a standstill.  Any ideas?

Thank you very much.
kid51

[perl6] 505 $ ps ux | grep gcc
jimk 29038   0.9  7.3   451316  19220  p3  S+9:26PM   0:44.90 / 
usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/cc1 -quiet -I
jimk 29137   0.7  0.227376420  p4  S+9:59PM   0:00.01  
grep gcc
jimk 29035   0.0  0.027268 16  p3  S+9:26PM   0:00.02 / 
usr/bin/gcc -o perl6.o -I/Users/jimk/work/parrot/include
jimk 29037   0.0  0.031488 16  p3  S+9:26PM   0:00.01 / 
usr/bin/powerpc-apple-darwin8-gcc-4.0.1 -I/Users/jimk/wor
jimk 29040   0.0  0.027676 16  p3  S+9:26PM   0:00.01 / 
usr/libexec/gcc/darwin/ppc/as -arch ppc -o perl6.o

$ uname -a
Darwin Macintosh-8.local 8.11.0 Darwin Kernel Version 8.11.0: Wed Oct  
10 18:26:00 PDT 2007; root:xnu-792.24.17~1/RELEASE_PPC Power  
Macintosh powerpc



myconfig
Description: Binary data


[pdd25cx] Calling a continuation doesn't restore error handlers

2008-06-22 Thread Bob Rogers
   So I tried the pdd25cx branch at r28617 with Kea Common Lisp and got
17 subtest failures, 15 of which appear to be due to transfer of control
to the wrong error handler.  The attached code illustrates the problem:

[EMAIL PROTECTED] ./parrot eh-test.pir
got bar
test err:  Tried to get null global
[EMAIL PROTECTED] 

Since the error is caused in the main sub, the error message ought to
say

main err:  Tried to get null global

as it does in trunk.  So the test_err handler is not getting
disestablished when the test sub returns.  I assume this applies to
all continuations; otherwise, adding a pop_eh would be enough.  It
looks like the failure in t/pmc/coroutine.t case 3 (Coroutine -
exception in main) is related, but haven't looked at it in detail.

   Do you have a plan for how to fix this?  I would love to help, but I
have no idea what you have in mind.

-- Bob Rogers
   http://rgrjr.dyndns.org/

.sub main :main
$P1 = new 'String'
$P1 = 'bar'
set_global 'foo', $P1
push_eh main_err
$S0 = 'foo'
test($S0)
null $S0
## This fails with Tried to get null global, but
## incorrectly sends us to the test err: handler.
get_global $P0, $S0
print done.\n
end
main_err:
.get_results ($P0, $S0)
print main err:  
print $S0
print \n
.end

.sub test
.param string str
push_eh test_err
get_global $P0, str
print got 
print $P0
print \n
.return ()
test_err:
.get_results ($P0, $S0)
print test err:  
print $S0
print \n
.end