Re: [perl #133541] Grammer bug vs

2018-09-28 Thread Patrick R. Michaud via RT
The issue doesn't seem to be the underscore, because I get the same result even 
when converting the underscore into a letter ('b'):

$ cat gentb.p6 
grammar G0 {
token TOP {|.*}
regex rport { }
rule ruport { }
#token type {+}
token type {+}
}

grammar G1 {
token TOP {|.*}
regex rport { }
rule ruport { }
token type {+}
#token type {+}
}
my $str="scbin bar";
say "===  Example==";
say G0.parse($str);
say "===  Example==";
say G1.parse($str);

$ perl6 gentb.p6
===  Example==
Nil
===  Example==
「scbin bar」
 ruport => 「scbin」
  type => 「scbin」
   alpha => 「s」
   alpha => 「c」
   alpha => 「b」
   alpha => 「i」
   alpha => 「n」
$ 


On Fri, Sep 28, 2018 at 02:26:41AM -0700, Brent Laabs wrote:
> Are you sure about that?  Underscore has been part of the specs (synopses)
> for  for at least 10 years, probably longer.
> 
>  >  "_" ~~ //
> 「_」
>  alpha => 「_」
> 
> On Thu, Sep 27, 2018 at 7:52 PM Brandon Allbery  wrote:
> 
> > "_" is not an alphabetic character. It's allowed in "alnum" because that
> > is by intent what is \w in other regex implementations, which includes "_".
> >
> > On Thu, Sep 27, 2018 at 10:47 PM Vijayvithal 
> > wrote:
> >
> >> # New Ticket Created by  Vijayvithal
> >> # Please include the string:  [perl #133541]
> >> # in the subject line of all future correspondence about this issue.
> >> # https://rt.perl.org/Ticket/Display.html?id=133541 >
> >>
> >>
> >> In the attached code, the only difference between the Grammars G0 and G1
> >> is the defination of token 'type' it is defined as  in one case
> >> and as  in another.
> >>
> >> Since the string being matched is 'sc_in' both the alpha and alnum
> >> tokens should have captured it. But we see the following result on
> >> execution
> >>
> >> ===  Example==
> >> Nil
> >> ===  Example==
> >> 「sc_in bar」
> >> ruport => 「sc_in」
> >> type => 「sc_in」
> >> alpha => 「s」
> >> alpha => 「c」
> >> alpha => 「_」
> >> alpha => 「i」
> >> alpha => 「n」
> >>
> >>
> >> Perl Version is
> >>
> >> This is Rakudo Star version 2018.06 built on MoarVM version 2018.06
> >> implementing Perl 6.c.
> >>
> >>
> >>
> >> --
> >> Vijayvithal
> >> Dyumnin Semiconductors
> >>
> >
> >
> > --
> > brandon s allbery kf8nh
> > allber...@gmail.com
> >


Re: [perl #132066] [BUG] Code blocks cause backtracking fail in `|` alternation with ratcheting

2017-09-12 Thread Patrick R. Michaud via RT
On Mon, Sep 11, 2017 at 09:48:01AM -0700, Dan Zwell wrote:
> 
> `|` matches the longest input:
> > 'ab' ~~ / ^:ratchet [ . | .. ] $ /
> 「ab」
> 
> If the regex contains empty code blocks, backtracking fails:
> > 'ab' ~~ / ^:ratchet [ {}. | {}.. ] $ /
> Nil

Isn't the whole point of :ratchet to turn off backtracking...?  From S05 (which 
I know isn't official anymore but it describes what :ratchet does or was 
intended to do):

   "The new :r or :ratchet modifier causes this regex to not backtrack by 
default."

It looks to me like the two above examples are working exactly as 
designed/intended.

Pm


Re: [perl #131708] [BUILD]. Rakudo Star build instructions incomplete

2017-07-05 Thread Patrick R. Michaud via RT
On Wed, Jul 05, 2017 at 06:10:42PM -0700, Will Coleda via RT wrote:
> On Wed, 05 Jul 2017 09:16:44 -0700, tbrowder wrote:
> > Given this invocation for a new installation of rakudo:
> > 
> >   perl Configure.pl  --backend=moar --gen-moar --prefix=/some/dir
> > 
> > /some/dir needs to exist and belong to the user attempting the
> > installation.  That usually forces the user to be root just to configure
> > and build rakudo.  Then the build directory is polluted with root-owned
> > files.
> > [...]
> > Until that problem is solved, the installation instructions need to detail
> > the current requirements of an installation outside the build directory.
> 
> This is the wrong queue for this ticket; please re-open at github's 
> rakudo/star queue.

Perhaps it's also worth mentioning that variations of this issue (build with 
one user and install with another) already exist in Rakudo Star's issue queue:

https://github.com/rakudo/star/issues/23
https://github.com/rakudo/star/issues/65
https://github.com/rakudo/star/issues/70

Pm


Re: [perl #129346] [BUG] Whatever being called on where-blocked subroutine cannot handle the sigilless values correctly

2016-09-24 Thread Patrick R. Michaud via RT
On Sat, Sep 24, 2016 at 07:37:52AM +, Lloyd Fournier wrote:
> I think this is because .WHAT is a special case. It's not really a method
> which is what you need to make *.method work. *.WHAT will always return
> (Whatever) immediately.

You're correct that .WHAT is a special case.  From S12, "Introspection":

   These should all be considered built-in language primitives, 
   not true operators or methods, even if a given implementation 
   happens to implement one or more of them that way.

I suppose it's possible that *.WHAT should generate a WhateverCode object...
but I'm a little disinclined to that.  A bit later S12 continues:

   In general, use of these uppercased accessors in ordinary code
   should be a red flag that Something Very Strange is going on.
   (Hence the allcaps.)  Most code should use Perl 6's operators that
   make use of this information implicitly.  For instance, instead of

   $obj.WHAT === Dog
   ...

   you usually just want:

   $obj ~~ Dog

So I'd say this isn't actually a bug.

Pm




Re: [perl #128584] [BUG] reduce subroutine returns NaN when calculating decimals with negative exponents

2016-07-09 Thread Patrick R. Michaud via RT
On Sat, Jul 09, 2016 at 05:19:49AM -0700, Itsuki Toyota wrote:
> See the following results
> 
> $ perl6 -e 'say -1 ** -0.1'
> -1
> $ perl6 -e 'say reduce * ** *, -1, (-0.1)'
> NaN

This is not a bug in "reduce" itself.  Exponentiation has higher 
precedence than unary minus, so the first expression is being
parsed and executed as -(1 ** -0.1)  and not  (-1) ** -0.1.
>From my rakudo (ver 2016.06-50-g5a4963f):

$ ./perl6 -e 'say -1 ** -0.1'
-1
$ ./perl6 -e 'say (-1) ** -0.1'
NaN

So, the reduce subroutine is doing exactly the same thing as :<**> here 
does with a negative base.

At the moment I'm inclined to believe that a negative integer with
negative exponent should return NaN, but someone with more mathematics
sense than I would have to make that call.

Pm




[perl #122882] [BUG] Symmetric set difference (^) doesn't right-associate or chain in Rakudo

2014-10-02 Thread Patrick R. Michaud via RT
Added tests in roast/S03-operators/set.t, marking ticket resolved.

Pm


[perl #119875] [BUG] term:^^ doesn't consider a last empty line as a line in regexes in Rakudo

2013-09-18 Thread Patrick R. Michaud via RT
S05:792 mentions this case explicitly:

^^ always matches the beginning of the string and after
any \n that is not the final character in the string.

So, rakudo is performing exactly as specced.

I suspect the reason behind the spec is so that slurped \n-terminated 
files (i.e., the vast majority) aren't treated as having an extra blank 
line after the final \n.

Rejecting ticket,

Pm




[perl #118541] $ context specifier

2013-06-19 Thread Patrick R. Michaud via RT
The wikibooks example is wrong, Rakudo is correct here.  


(To return the number of elements, use prefix:+, not the $-
contextualizer.)

Actually, that whole section in wikibooks seems to be a little off... 
@() doesn't mean convert to array, for example.

Closing ticket.

Pm



[perl #118479] Untyped hashes are considered to be {Str}, but act differently from hashes typed with {Str}

2013-06-14 Thread Patrick R. Michaud via RT
 So either STORE_AT_KEY for typed hashes should stringify objects
silently if the keytype is Str, like untyped hashes do.  Or untyped
hashes should *not* automatically stringify objects.

Untyped hashes are {Str(Any)} -- see S09:1187:

The standard Hash:
my %hash;
is really short for:
my Mu %hash{Str(Any)};

This accounts for the difference between the two; an untyped hash will 
accept Any key and coerce it to a Str, while a hash declared {Str} will 
only accept Str values as keys.

Closing ticket,

Pm


[perl #91728] Rakudo includes an internal Parrot header file, parrot/parrot.h

2013-05-26 Thread Patrick R. Michaud via RT
I'm wondering if this ticket can be marked resolved -- see 
https://github.com/parrot/parrot/issues/365 .  

The gist of #365 seems to be that parrot.h is no longer considered an 
internal Parrot header file... but I'm not sure I'm reading it 
correctly.

In particular, the parrot.h file itself no longer warns that it is for 
internal use only, and parrot.h explicitly mentions that it's needed for 
add-in extensions (which I assume means dynops and dynpmcs).

From parrot.h:

This file contains definitions for functions and data structures 
used by
Parrot. This file is currently included in almost all Parrot source 
files
and is typically required in add-in extensions. This file is *not* 
used
when embedding Parrot. For embedding, use parrot/api.h. For 
extensions,
you probably also need parrot/extend.h in addition to 
parrot/parrot.h.

In the future, parrot/parrot.h might not be required for 
extensions. For
now, it is required for most purposes because the extending API is 
not
stable or mature enough to be used without parrot.h.

Pm


[perl #117923] [BUG] can not augment List class

2013-05-11 Thread Patrick R. Michaud via RT
On Wed May 08 18:16:40 2013, grond...@yahoo.fr wrote:
 This is perl6 version 2013.04-55-gfe70494 built on parrot 5.2.0
 revision RELEASE_5_2_0
 
 
 use MONKEY_TYPING;
 augment class List { proto method combinations(|) {*} }
 
 
 Cannot look up attributes in a type object

It works for me if I put a statement after the augment:

pmichaud@kiwi:~/p6/rakudo$ cat x.p6
use MONKEY_TYPING;
augment class List {
proto method combinations(|) { * }
}

say 1;
pmichaud@kiwi:~/p6/rakudo$ ./perl6 x.p6
1

I suspect the problem is that as the last statement in the block,
the augmented class is being returned to MAIN or some other 
top-level routine which is then trying to do something with
it (such as convert it to an integer exit code).

I can get the same error as the original ticket without using augment:

pmichaud@kiwi:~/p6/rakudo$ cat y.p6
use v6;

List;

pmichaud@kiwi:~/p6/rakudo$ ./perl6 y.p6
Cannot look up attributes in a type object
current instr.: 'gimme' pc 285293 (src/gen/CORE.setting.pir:125268) 
(src/gen/CORE.setting:6051)
called from Sub 'sink' pc 294400 (src/gen/CORE.setting.pir:128911) 
(src/gen/CORE.setting:6359)
called from Sub 'MAIN' pc 381 (src/gen/perl6.pir:147) (src/main.nqp 
src/gen/main-version.nqp:42)
called from Sub '' pc 77 (src/gen/perl6.pir:56) (src/main.nqp 
src/gen/main-version.nqp:1)
called from Sub '' pc 1127 (src/gen/perl6.pir:404) (src/main.nqp 
src/gen/main-version.nqp:52)
pmichaud@kiwi:~/p6/rakudo$ 



[perl #117923] [BUG] can not augment List class

2013-05-11 Thread Patrick R. Michaud via RT
Now fixed in b1695cf:

pmichaud@kiwi:~/p6/rakudo$ cat x.p6
use MONKEY_TYPING;
augment class List {
proto method combinations(|) { * }
}

pmichaud@kiwi:~/p6/rakudo$ ./perl6 x.p6
pmichaud@kiwi:~/p6/rakudo$ 

Ticket closable with tests (hint: test that List.sink doesn't fail).

Pm


[perl #117875] Smartmatching ints against Enumeration Types fails (probably NYI)

2013-05-06 Thread Patrick R. Michaud via RT
Resolved via a change to S12, see 
https://github.com/perl6/specs/commit/bff62668057bf3f87a6f80f33d088d47a1d
4eda2 .

Pm


[perl #117831] [BUG] Grammar capture of '%' separator

2013-05-03 Thread Patrick R. Michaud via RT
Now fixed in 4741028:

pmichaud@kiwi:~/p6/rakudo$ cat g.pl
grammar G {
token TOP {letter +% sep}
token letter{[a..z]}
token sep{\,}
}

say G.parse(a,b,c,d).caps.map({$_.value});

pmichaud@kiwi:~/p6/rakudo$ ./perl6 g.pl
a , b , c , d
pmichaud@kiwi:~/p6/rakudo$ 

Needs tests to resolve the ticket.




Re: [perl #116897] while (...splice...) runs forever

2013-02-25 Thread Patrick R. Michaud via RT
On Thu, Feb 21, 2013 at 09:07:44AM -0800, Ricardo SIGNES wrote:
 This program never terminates:
 
   use v6;
 
   my @a =  ;
   while (my @c = splice @a, 0, 3) {
 say one more;
   }

After each splice, @c ends up being @(Any, Any, Any).  I'm not
sure if this is correct; I can see that it should probably
return whatever is actually in the array and not pad.

The following should work:

my @a = ();

while ( @a ) {
   my @c = splice @a, 0, 3;
   say one more;
}

Hope this helps,

Pm




[perl #64768] [TODO] Whatever globbing in chained hash indexing

2012-07-09 Thread Patrick R. Michaud via RT
After thinking about this a bit, I'm inclined to disagree with the 
original ticket.

my %h = 'foo' = [1,2,3], 'bar' = [4,5,6];

If %h{*} is analogous to @array[*], then it returns a list (slice) of 
all of the elements of %h.  The .[1] should then return the second 
element of this slice, which would be either [1,2,3] or [4,5,6] 
depending on the order in which the values were returned from %h{*}.

The real way to grab the second element from each array in the hash 
would be something like:

   %h{*}».[1]

which would apply the .[1] to each array returned from the hash.  
Unfortunately this also relies on duck mapping of the hyper as defined 
in S03, which as yet is NYI in Rakudo.  (And implementing S03's duck 
mapping will require some refactoring of postcircumfix:[ ] and 
postcircumfix:{ }.

To get the (2,5) expected from the original ticket likely requires 
something like:

 my %h = 'foo' = [1,2,3], 'bar' = [4,5,6];  say (.[1] for 
%h{*}).perl
(2, 5).list


The other possible mechanism for multidimensional slice subscripting is 
defined in S09 using semicolons, as in something like %h{*;1}.  However, 
that requires declared dimensioned hashes and/or arrays (which the 
example is not), and I'm not sure that syntax will work for mixed 
hash/array structures.

So, we can either reject this ticket, or we can maybe convert it to a 
ticket that notes that duck mapping of hypers is NYI in Rakudo 
(although I'm not convinced that duck mapped hypers is the correct 
solution to the overall problem with hypers).

Pm



[perl #113804] [BUG] Can't flatten Range into a list of arguments in Rakudo

2012-06-23 Thread Patrick R. Michaud via RT
Now fixed in 690d774; needs spectests to close ticket.

Thanks!

Pm


[perl #113026] array iterator does not track a growing array

2012-05-21 Thread Patrick R. Michaud via RT
I suspect this bug may be related to #112716 
(https://rt.perl.org/rt3/Ticket/Display.html?id=112716); the .map() 
operation (which 'for' uses) tends to be a bit too eager in evaluating 
its invocant list.

I've taken both bugs and will work on a fix shortly.

Pm


[perl #111286] [BUG] Name capture happens in the presence of a quantifier but not in its absence in Rakudo

2012-05-17 Thread Patrick R. Michaud via RT
Now fixed in 0ed00f0 probably needs spectests to close ticket.

Thanks!

Pm


[perl #112696] [BUG] [|] 1..5 should give a flat any(1..5) junction, not nested junctions in Rakudo

2012-05-03 Thread Patrick R. Michaud via RT
Now fixed in 7eae9b2:

  pmichaud@kiwi:~/p6/rakudo$ ./perl6
   say ([|] 1..5).perl
  any(1, 2, 3, 4, 5)

Ticket can be closed with appropriate spectests.

Pm



[perl #112364] [TODO] Parse Foo:: correctly in Rakudo

2012-04-20 Thread Patrick R. Michaud via RT
Now fixed in 84f4fd4:

class ABC { our sub xyz() { 'xyz' } };  say ABC::.WHAT
   Stash()

This ticket can be closed with sufficient spectests.

Pm



[perl #112362] [BUG] Items which are arrays mistakenly give slices in hash or array lookup in Rakudo

2012-04-09 Thread Patrick R. Michaud via RT
Now fixed in 2c9f46f.  Needs spectests to close ticket.

Thanks,

Pm


[perl #112216] slicing a string with inifinite ranges gives LTA error message

2012-04-03 Thread Patrick R. Michaud via RT
On Tue Apr 03 01:24:47 2012, moritz wrote:
 10:23  timotimo r: say foo[1..*]
 10:23 +p6eval rakudo 8ead1e: OUTPUT«Method 'gimme' not found for 
 invocant of
  class 'Str'␤  in method postcircumfix:[ ] at
  src/gen/CORE.setting:1147␤  in block anon at
  /tmp/1ZiRf7yMZW:1␤␤»


Now fixed in 1bbf9eb, needs spectests to close ticket.

Thanks!

Pm


[perl #111978] [BUG] ?^1 gives True in Rakudo

2012-03-25 Thread Patrick R. Michaud via RT
Now fixed in b1acd74.  Needs spectest coverage to close ticket.

Thanks!

Pm


[perl #111646] Arity counting mis-treats slurpy and capture parameters

2012-03-23 Thread Patrick R. Michaud via RT
Now fixed in 69920db585.

 say infix:~.arity
0
 say infix:~.count
Inf
 say a b c d.reduce(infix:~)
abcd

Ticket can be closed when we have appropriate spectests.

Thanks!

Pm


[perl #111848] [BUG] The storage strategy for arrays is weird in Rakudo

2012-03-19 Thread Patrick R. Michaud via RT
The speed of Array vs. Hash element access is partially addressed by 
commit c10792f8.  Before this commit, each Array element access via 
.at_pos($pos) resulted in an expensive call to self.exists($pos) for 
each access, whereas Hash element accesses via .at_key($key) were 
able to use nqp::existskey() directly.  This patch uses nqp::existspos() 
to hotpath the detection of existing elements and avoids calls to 
self.exists($pos) when the Array is already fully reified.  

For the benchmark given in RT #111848, this resulted in a ~25%
speedup for array element accesses, and brings it to within 5% of Hash
element access times.  (At present Array element accesses still have
more overhead at the PIR level than Hash element accesses due to
laziness considerations and boundary checks.

I'm still looking into the two layers of nextiter part; I agree
it's somewhat surprising but I'm not convinced it's suboptimal
within the current context of how we handle/store constant lists.
For the array assignment Rakudo has to do iteration at some point in
order to bring the elements into the top-level items part; it's
simply choosing to do it at the time of Array element access instead
of at the point of the assignment.  

Given that the ticket refers to suboptimality, it's hard to know
when it should be closed.  If masak++ or someone else feels that
this reply adequately addresses the issues for now, I'm fine with
it being resolved now, or if we want to leave it open pending further
discussion/resolution of the two nextiter layer issue, I'm fine
with that also.

Pm



[perl #68518] [BUG] Null PMC access when not finding the ICU library inside a try block in Rakudo

2011-10-14 Thread Patrick R. Michaud via RT
 It would be helpful if someone (not necessarily the original poster) 
 provided a recipe to build a perl6 without ICU so this bug can be 
tested 
 against a recent version.

The following should work:

perl Configure.pl --gen-parrot --parrot-option=--without-icu

Pm


[perl #98678] [BUG] LTA error message when providing a non-recognized seed to the sequence operator in Rakudo

2011-09-09 Thread Patrick R. Michaud via RT
Now fixed in (nom) 5d26134.  Need a spectest and then we can close this 
ticket.

Pm


[perl #98790] [BUG] Expressions involving two sequence operators time out or give a spurious error in Rakudo

2011-09-09 Thread Patrick R. Michaud via RT
Now fixed in f9d94fe.  There were already todo'd tests for this bug in 
spectests, they're now un-todo'd and marked with this ticket number.

Thanks for the report, closing ticket!

Pm


[perl #96424] NULL PMC on unmatched or non existent named capture

2011-08-07 Thread Patrick R. Michaud via RT
On Sun Aug 07 12:25:15 2011, ronaldxs wrote:
 Seems at least partially fixed in nom but still may be related 
concerns 
 like
 
 nom: my $m = '34' ~~ /digit+|alpha+/; say $malpha.perl; say 
 Nil.perl; my $x = $malpha // 4; say 'x is ', $x
 nom: OUTPUT«()␤Nil␤x is ␤»
 
 See http://irclog.perlgeek.de/perl6/2011-08-07#i_4239512

Since alpha is quantified here, it's guaranteed to be a (possibly 
empty) Array in the match object -- so nom has this one correct.

In the non-quantified case, nom is currently returning Any, which 
seems reasonable:

21:00 pmichaud nom: my $m = '34' ~~ /digit|alpha/;  say 
$malpha.perl
21:00 p6eval nom: OUTPUT«Any␤»

I'll likely close this ticket when nom becomes master, unless there's 
something wrong with my analysis above.

Pm



[perl #78284] [BUG] Neither .item nor $(...) make a List stop behaving as a list in Rakudo

2010-10-08 Thread Patrick R. Michaud via RT
Now fixed in 5ce8fcf:

   sub f { 1, 2, 4 };  .say for f.item
  1 2 4
   sub f { 1, 2, 4 };  .say for $(f)
  1 2 4

However, the fix exposes a problem with either .trans or trans.t, so
this ticket isn't quite closable yet.  (And we need a spectest for it.)

Pm


[perl #77864] [BUG] Unhelpful error messages instead of DWIM when doing = or ?= or ?|= or ?^= on an undefined variable in the rhs in Rakudo

2010-09-19 Thread Patrick R. Michaud via RT
On Sat Sep 18 10:55:52 2010, moritz wrote:
 Basic tests added to S03-operators/short-circuit.t.
 
 19:52  moritz_ rakudo: my $x; $x = 5; say $x
 19:52 +p6eval rakudo a204ba: OUTPUT«5␤»
 19:52  moritz_ somebody please confirm that this is wrong
 ...
 19:53  jnthn moritz_: Looks wrong to me.

Rakudo is correct here -- see S03:3979:

  If you apply an assignment operator to a container containing a
  type object (which is undefined), [...] the operation is defined
  in terms of the corresponding reduction operator, where the type
  object autovivifies to the operator's identity value.

The identity value for [] is True, so Rakudo has this correct.

By way of comparison, consider:  my $x;  $x *= 5;  which leaves $x
with the value of 5.

Pm


[perl #77888] [BUG] chr() returns something that is not a string of characters, and say/print outputs it as bytes in Rakudo

2010-09-16 Thread Patrick R. Michaud via RT
Now fixed in 760c734:

  pmich...@plum:~/rakudo$ ./perl6
   print .chr for 233 186 166 233 171 152;
  éº¦é« 

The TT #1793 ticket turned out to be a non-bug; the problem was in
Rakudo's setup of $*IN, $*OUT, and $*ERR.

I'm not sure how the current test suite would be able to test this
particular bug (since it's in the standard output filehandle), so I'm
going to go ahead and mark the ticket as resolved.  (If someone has a
good way of testing this, it would be welcome.)

Thanks!

Pm


[perl #57790] [LHF] nicer error message for 12345[1] (number scalar indexed with .[])

2010-09-16 Thread Patrick R. Michaud via RT
I'm fairly certain that Rakudo's current behavior (returning a Failure
for indexes other than zero) is correct here.  Switching fail to die
is definitely not correct.

I'm declaring this ticket fixed and can be resolved when we have
spectests verifying that the non-zero indexes return a Failure.

Pm



[perl #77232] [BUG] Binary bitshift operators infix: + and infix: + have too loose a priority in Rakudo

2010-08-16 Thread Patrick R. Michaud via RT
Now fixed in 2f18a49, tests added to t/spec/S03-operators/bit.t .

Resolving ticket, thanks!

Pm



[perl #77054] rakudo doesn't like explicit $_ in multi-param signatures

2010-08-07 Thread Patrick R. Michaud via RT
On Fri Aug 06 12:56:24 2010, moritz wrote:
 21:53  moritz_ rakudo: for a b.kv - $k, $_ { .perl.say }
 21:53 +p6eval rakudo 0e5edb: OUTPUT«0␤1␤»
 21:53  moritz_ huh.
 21:54  moritz_ shouldn't that be a, b ?
 21:54  moritz_ rakudo: for a b.kv - $k, $v { $v.perl.say }
 21:54 +p6eval rakudo 0e5edb: OUTPUT«a␤b␤»
 
 I don't see why it shouldn't work with $_ if it works with $v.


It appears to be even weirder than the above illustrates -- if a
subroutine has $_ as any of its parameters, it seems to always take the
first argument:

  pmich...@plum:~/rakudo$ ./perl6
   sub abc($x, $y, $_, $z) { say $x $y $_ $z; };   abc(1,2,3,4);
  2 3 1 4

Pm


[perl #77072] [BUG] @a[*] does not work as slice of all indexes

2010-08-07 Thread Patrick R. Michaud via RT
Now fixed in fca2d3.  There's already a spectest for the test, but I'm
unable to commit spectest changes at the moment so I'll leave the ticket
open for someone else to close.

I also fixed .{*} in this patch,   it probably needs tests as well.

Pm


[perl #76994] [BUG] Bare 'i' not recognised as a Complex()

2010-08-05 Thread Patrick R. Michaud via RT
Now fixed in b627e33.  Assigning to moritz for spectest verification.

Thanks!

Pm


[perl #65994] Fakexecutable is not working anymore in latest rakudo/parrot

2010-08-03 Thread Patrick R. Michaud via RT
Now working in 51cc37:

pmich...@plum:~/rakudo$ ./perl6 --target=PIR hello.p6 hello.pir
pmich...@plum:~/rakudo$ parrot_install/bin/parrot -o hello.pbc hello.pir
pmich...@plum:~/rakudo$ parrot_install/bin/pbc_to_exe hello.pbc
cc -o hello.o -I/home/pmichaud/rakudo/parrot_install/include/2.6.0-devel
-D_REENTRANT -D_GNU_SOURCE -DDEBIAN  -pipe -fstack-protector
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-DHASATTRIBUTE_CONST  -DHASATTRIBUTE_DEPRECATED  -DHASATTRIBUTE_MALLOC 
-DHASATTRIBUTE_NONNULL  -DHASATTRIBUTE_NORETURN  -DHASATTRIBUTE_PURE 
-DHASATTRIBUTE_UNUSED  -DHASATTRIBUTE_WARN_UNUSED_RESULT 
-DHASATTRIBUTE_HOT  -DHASATTRIBUTE_COLD  -DDISABLE_GC_DEBUG=1 -DNDEBUG
-DHAS_GETTEXT -c hello.c
Compiled: hello.o
cc -o hello hello.o
/home/pmichaud/rakudo/parrot_install/lib/2.6.0-devel/parrot_config.o
-Wl,-rpath=/home/pmichaud/rakudo/parrot_install/lib
-L/home/pmichaud/rakudo/parrot_install/lib -lparrot -Wl,-E 
-fstack-protector -L/usr/local/lib -Wl,-E -ldl -lm -lpthread -lcrypt
-lrt -lreadline   -lm   -L/usr/lib  -licuuc -licudata  -lm   
Linked: hello
pmich...@plum:~/rakudo$ ./perl6 hello.p6
Hello, world!
pmich...@plum:~/rakudo$ ./hello
Hello, world!
pmich...@plum:~/rakudo$ 

Note that this requires an installed rakudo.

Pm


[perl #65994] Fakexecutable is not working anymore in latest rakudo/parrot

2010-08-03 Thread Patrick R. Michaud via RT
Now working in 51cc37:

pmich...@plum:~/rakudo$ ./perl6 --target=PIR hello.p6 hello.pir
pmich...@plum:~/rakudo$ parrot_install/bin/parrot -o hello.pbc hello.pir
pmich...@plum:~/rakudo$ parrot_install/bin/pbc_to_exe hello.pbc
cc -o hello.o -I/home/pmichaud/rakudo/parrot_install/include/2.6.0-devel
-D_REENTRANT -D_GNU_SOURCE -DDEBIAN  -pipe -fstack-protector
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-DHASATTRIBUTE_CONST  -DHASATTRIBUTE_DEPRECATED  -DHASATTRIBUTE_MALLOC 
-DHASATTRIBUTE_NONNULL  -DHASATTRIBUTE_NORETURN  -DHASATTRIBUTE_PURE 
-DHASATTRIBUTE_UNUSED  -DHASATTRIBUTE_WARN_UNUSED_RESULT 
-DHASATTRIBUTE_HOT  -DHASATTRIBUTE_COLD  -DDISABLE_GC_DEBUG=1 -DNDEBUG
-DHAS_GETTEXT -c hello.c
Compiled: hello.o
cc -o hello hello.o
/home/pmichaud/rakudo/parrot_install/lib/2.6.0-devel/parrot_config.o
-Wl,-rpath=/home/pmichaud/rakudo/parrot_install/lib
-L/home/pmichaud/rakudo/parrot_install/lib -lparrot -Wl,-E 
-fstack-protector -L/usr/local/lib -Wl,-E -ldl -lm -lpthread -lcrypt
-lrt -lreadline   -lm   -L/usr/lib  -licuuc -licudata  -lm   
Linked: hello
pmich...@plum:~/rakudo$ ./perl6 hello.p6
Hello, world!
pmich...@plum:~/rakudo$ ./hello
Hello, world!
pmich...@plum:~/rakudo$ 

Note that this requires an installed rakudo.

Pm


[perl #73888] [BUG] %*VM doesn't work anymore in Rakudo

2010-07-28 Thread Patrick R. Michaud via RT
The spec changed to use $*VM, and Rakudo now implements that.

 say $*VMconfigbindir
/home/pmichaud/rakudo/parrot_install/bin
 

Pm


[perl #71362] [BUG] Parrot string indexing semantics leaks through when accessing $1 et al. when $/ contains a Str in Rakudo

2010-07-28 Thread Patrick R. Michaud via RT
 new error:
 
  my $a = 'abc'; say $a[1];
 ===SORRY!===
 .[1] out of range for type Str()
 


I believe this is the correct behavior per the specification.

Pm




[perl #73608] [BUG] Rakudo (nqp-rx) regexes won't backtrack properly into capturing parentheses or subrules

2010-07-19 Thread Patrick R. Michaud via RT
Now fixed in 9005478:

  pmich...@plum:~/rakudo$ ./perl6
   say b ~~ /(.*)b/;
  b
   say ab ~~ / (ab|a) b /;
  ab
   grammar G { regex TOP { foo a }; regex foo { a* } }; say
?G.parse(aaa);
  1
   

Pm


[perl #76238] Bool.pick always returns false.

2010-06-28 Thread Patrick R. Michaud via RT
On Mon Jun 28 04:49:23 2010, lemb...@wrkhors.com wrote:
 Using the June release:
 
 $ perl6 --version
 This compiler is built with the Parrot Compiler Toolkit, parrot
 revision 47640.
 
 Attempting to print some random numers via Bool.pick
 gives no output:

For a wide variety of reasons, Rakudo currently implements Bool as a
fundamental type rather than an enumeration.  As such, Bool.pick is
acting the same as if one had written Int.pick or Num.pick -- it's
treating the invocant as a list of one element and then returning the
type object directly.  And Bool as a type object always returns false
because it is undefined.

For now, the workaround is to do (False,True).pick until we can properly
implement .pick on enumerations, and figure out how to turn Bool into
one (or convince the specification that Bool is not really an
enumeration :-).

Pm


[perl #76242] [BUG] Double layers of array when binding an Array in a scalar variable to an 'is copy' array variable in Rakudo

2010-06-28 Thread Patrick R. Michaud via RT
Now fixed in c18d372.  Assigning to moritz++ for spectest coverage.

Thanks!

Pm


[perl #76174] [Bug] non-modifier form of 'if' within 'for' loop fails, while the modifier form works

2010-06-27 Thread Patrick R. Michaud via RT
On Sun Jun 27 14:16:46 2010, pkailasa wrote:
 # this fails
  perl6 -e 'my @a = 0, 1, 2; for @a { if $_ { $_++ } }; say @a.perl'
 [0, 1, 2]

It now works in current Rakudo:

pmich...@plum:~/rakudo$ cat x
my @a = 0, 1, 2;
for @a { if $_ { $_++ } };
say @a.perl;
pmich...@plum:~/rakudo$ ./perl6 x
[0, 2, 3]

Assigning to moritz for spectest coverage.

Pm



[perl #75956] [BUG] @*INC isn't writable in Rakudo

2010-06-27 Thread Patrick R. Michaud via RT
Now fixed in current Rakudo, assigning to moritz for spectest coverage.

Pm


[perl #71462] [BUG] Smartmatching against a type yields an Int, not a Bool in Rakudo

2010-06-26 Thread Patrick R. Michaud via RT
Now fixed in a579f8e.  Closing ticket.

Pm


[perl #74050] bogus hash vs. block distinction.

2010-06-06 Thread Patrick R. Michaud via RT
Now fixed in 06723b4... assigning to moritz++ for test verification and
unfudging.

Pm


[perl #73772] [BUG] Rakudo returns the wrong thing from a quote with only whitespace in it

2010-06-06 Thread Patrick R. Michaud via RT
Now fixed in 841262f.  Assigning to moritz++ for test verification to
close ticket.

Pm


[perl #75524] [BUG] Creating $n regexes in a loop returns the last one $n times

2010-06-02 Thread Patrick R. Michaud via RT
On Wed Jun 02 14:50:54 2010, david.gr...@telus.net wrote:
 Creating several regexes should return several different objects:
 
 say /@_[0]/, /@_[1]/, /@_[2]/ given A B C
 _block27 _block35 _block43
 
 
 However, inside a loop, instead of different regexes, the final one
 gets repeated:
 
 say /$_/ for A B C
 _block32 _block32 _block32
 

You're reading this wrong.  A regex is like a sub, so your final example
is saying something more like:

say rx { $_ } for A B C

The regex itself is created (once) at compile time.  It is then
evaluated three times as part of the for loop.

An analogous example would be something like:

say sub { $_ } for A B C

Rejecting ticket,

Pm



[perl #73136] [BUG] The spaces aren't trimmed in the construct in Rakudo

2010-02-26 Thread Patrick R. Michaud via RT
Now fixed in fad9447.  Need to verify existence of a spectest for this
and then the ticket can be closed.

Pm


[perl #73094] [BUG] The type of an undefined untyped variable should be Any in Rakudo

2010-02-26 Thread Patrick R. Michaud via RT
Now fixed in c495888. Closing ticket.

Pm


[perl #73076] [BUG] Can't refer to infix:+ in Rakudo

2010-02-26 Thread Patrick R. Michaud via RT
Now fixed in 4ab4b8.  Probably needs a test before we can resolve the
ticket.

Pm


[perl #72872] [TODO] Implement 'eqv' for Mu in Rakudo

2010-02-26 Thread Patrick R. Michaud via RT
Now fixed in 12ea7b9:

 say (my $a eqv $a);
1
 say Mu eqv Mu
1

Need to verify we have tests for this.

Pm


[perl #72816] [BUG] Cannot assign to an undeclared dynamic variable in Rakudo

2010-02-26 Thread Patrick R. Michaud via RT
An undeclared dynamic variable currently results in a failure;
attempting to assign to that failure produces the readonly message.

Perhaps assignment to a failure should throw its exception?

Pm


[perl #72286] [BUG] 'self' is writable in Rakudo

2010-02-26 Thread Patrick R. Michaud via RT
In the new master branch, self is no longer writable.  I don't know if
we need a test for this ticket before closing it (I suspect we do).

Pm


[perl #72972] [BUG] False ~~ True in Rakudo

2010-02-22 Thread Patrick R. Michaud via RT
Marking ticket as resolved, as Rakudo currently matches the specification.

Pm


[perl #65640] Defining an operator as a multi and then calling it causes a Null PMC access in Rakudo

2009-08-28 Thread Patrick R. Michaud via RT
Now fixed in 3a274d9.  We probably need a spectest in order to close the
ticket.

Thanks!

Pm


[perl #68664] [BUG] Null PMC access in find_method() for infix:+

2009-08-27 Thread Patrick R. Michaud via RT
Now fixed in f351f60:

$ cat x
class A {
has $.a is rw;
method add(A $b) { $.a ~ $b.a }
}

multi sub infix:+(A $a, A $b) { $a.add($b) };

my A $a .= new(a='foo');
my A $b .= new(a='bar');

say $a.a ~ $b.a;
say $a + $b;
$ ./perl6 x
foobar
foobar
$ 


Assigning to moritz++ so that we can get a spectest for infix:+
overloading.

Thanks!

Pm


[perl #68356] [BUG] .kv problems in Rakudo

2009-08-10 Thread Patrick R. Michaud via RT
On Sun Aug 09 14:56:24 2009, moritz wrote:
 It seems that the :foo[...] colonpair syntax doesn't set up the array
 sufficiently non-flattening:

Correct, Rakudo doesn't handle the non-paren colonpair syntaxes yet
(they were recently refactored in STD.pm and haven't caught up).  This
ticket is really a duplicate of #66996, so I'm merging it.

Pm


[perl #68004] +* does not generate Code

2009-08-09 Thread Patrick R. Michaud via RT
On Wed Jul 29 05:30:51 2009, colo...@gmail.com wrote:
 According to http://perlcabal.org/syn/S03.html#Nesting_of_metaoperators
 +* should generate a closure which numifies.  This does not work, as
 
 my $x = +*;
 isa_ok $x, Code, '+* is of type Code';
 
 fails, as do attempts to use +* in sort as in the S03 example there.

Now fixed in f48920, thanks!

Pm





[perl #67450] [BUG] .[+*] seems to be incorrect

2009-08-09 Thread Patrick R. Michaud via RT
On Sat Jul 11 06:57:11 2009, richardh wrote:
 perl6
   my @x=1,2,3,4; my @z; for @x { @z[+*] = $_ }; @z.perl.say
 [4]
   my @x=1,2,3,4; my @z; for @x { @z...@z] = $_ }; @z.perl.say
 [1,2,3,4]

Now fixed in f48920, thanks!

  $ ./perl6
   my @x = 1,2,3,4;  my @z;  for @x { @z[+*] = $_ }; @z.perl.say
  [1, 2, 3, 4]

We need verification of a spectest in order to close this ticket.

Pm


[perl #68140] Less than awesome error message for nonexistent script

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



01:38 colomon my $out = open 02.pl, :w or die Unable to open 02.pl: $!\n;
01:39 colomon Works if an 02.pl file exists, fails with Unable to open 
filehandle from path '02.pl'  if it doesn't.
[...]
01:46 colomon Actually, just realized I'm completely on the wrong track here. 
 One sec.
01:48 colomon got it -- was executing the wrong script, so that I was 
executing the script that didn't exist, or was a 0 byte long file.  thus the 
two different results.
01:49 pmichaud Yes, I was guessing it was something like that.
01:49 colomon not the most intuitive error message for your script doesn't 
exist, but I'd have known instantly if I hadn't been trying to write a script 
with another script.  :)
01:50 pmichaud yes, we should fix that error message.
01:51  * pmichaud files rakudobug

Pm


[perl #68142] [BUG] Junctions shouldn't autothread over slurpy params

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


S09:1043 says that junctions passed as components of a slurpy
array or hash do not cause autothreading, but Rakudo currently
autothreads junctions over slurpies on some multisubs:

$ cat x
multi sub foo(*...@a) { say 'foo'; }
multi sub bar(Any *...@a) { say 'bar'; }

foo(1|2|3);
bar(1|2|3);

$ ./perl6 x
foo
bar
bar
bar
$ 

As of 91408af, the call to foo() is correct.  

The call to bar() should either execute once, or fail outright
(because a Junction argument isn't of type Any).   

Tests for this are being added to S06-signature/slurpy-params.t .

Pm


[perl #63360] [PATCH] Update configure script and makefiles for installed Parrot

2009-07-29 Thread Patrick R. Michaud via RT
On Tue Jul 28 19:03:45 2009, wayland wrote:
 Attached patch is updated according to pmichauds comments on IRC
recently.  

Patch applied to ins2 branch in ce21ff.

As soon as we get the Sun compiler issues resolved (RT #66560) I think
we may be able to merge to trunk and close this ticket.

Pm


[perl #66560] #line directives in src/pmc confuse Sun's compiler.

2009-07-29 Thread Patrick R. Michaud via RT
 Yes, it's still there.  It's the 'cd' at the beginning of this line:
 
   cd $(PMC_DIR)  $(CC) -c $(CINCLUDES) $(CFLAGS) *.c
 
 If memory serves, parrot doesn't change directories like that.
 Instead, it sets
 the output location directly, with something like
 
   $(CC) -c $(CINCLUDES) $(CFLAGS) -o src/pmc/p6invocation.o
 src/pmc/p6invocation.c


That's a bit of a pain, isn't it?  It means we have to explicitly list
every .c file generated from the *.pmc files explicitly in the Makefile,
instead of just using *.c .

I guess we'll have to do it that way, but I wish there was something
better.  I don't know of an easy macro-ish way to solve that problem
in the Makefile (which is one of the reasons I'm disappointed that
Parrot eliminated the dynpmc.pl script that could handle this for us).

Pm



[perl #67866] [BUG] Error with stringifying .WHAT on any junctions

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


19:37 pmichaud_ rakudo:  say any(foo,bar).WHAT
19:37 p6eval rakudo dd5767: OUTPUT«Null PMC access in get_integer()␤in Main 
(/tmp/zy3y7E7waD:2)␤»



[perl #66558] Re: $(LD_OUT) can't have a space after it for MS linking.

2009-07-24 Thread Patrick R. Michaud via RT
On Fri Jun 12 11:36:31 2009, doughera wrote:
 In the 'ins' branch, build/Makefile.in looks like it's heading down the 
 same wrong road as parrot.  See parrot's TT #700 for more details and a 
 patch for parrot.  I'd suggest a similar approach for rakudo.
 
 The problem is that while MS forbids a space, Solaris 8 requires one.  
 You can't win in the Makefile.  'make' is not a reliable textual 
 susbtitution tool when leading or trailing blanks are involved.

I've started a new branch (ins2) based on a more recent Rakudo and the
latest Parrot release (1.4.0), and incorporated this patch there.  Let
me know if it works better on MS and Solaris than what we had before.

Thanks!

Pm



[perl #66574] [BUG] inc branch: make perl6 fails, parrot-includes aren't passed to $(CC)

2009-07-24 Thread Patrick R. Michaud via RT
On Sat Jun 13 19:07:16 2009, ing...@exherbo.org wrote:
 This is using Rakudo's inc branch, building against parrot trunk,
r39541.
 
 Seems to work fine up until it tries to build the perl6 executable.
 When building the perl6 executable, $(CINCLUDES) isn't passed to the
compiler,
 as you can see from the snippet below:

I think this problem may be fixed in the ins2 branch -- could you try
it there and let me know?

Note that you'll need to build against the release version of Parrot
1.4.0 -- the Rakudo in the ins2 branch won't build against parrot trunk.

Thanks!

Pm


[perl #66560] #line directives in src/pmc confuse Sun's compiler.

2009-07-24 Thread Patrick R. Michaud via RT
On Fri Jun 12 13:42:59 2009, doughera wrote:
 Trying a build with the rakudo ins branch today on OpenSolaris/x86
with
 Sun's compiler, I hit the following error:
 
 [...]
 ./src/pmc/p6invocation.pmc, line 22: cannot find include file:
pmc_perl6multisub.h
 cc: acomp failed for p6invocation.c
 gmake: *** [dynext/perl6_group.so] Error 1
 ...
 #line 1 ./src/pmc/p6invocation.pmc
 ...
 
 The './src/pmc/' part of the #line directive is what is confusing
Sun's compiler.
 It tries to #include src/pmc/pmc_perl6multisub.h.  However, since we
are *in*
 the src/pmc directory already, that fails.
 
 Removing the './src/pmc/' part of the #line directive fixes it.


Unfortunately, the #line directives are generated code, so I don't know
that Rakudo has any direct control over this.  We may need to report it
as a Parrot toolchain bug.

Can you verify that this is still a problem in the 'ins2' branch?  Thanks!

Pm





[perl #63894] A returned () is a Nil but doesn't smartmatch against one

2009-07-16 Thread Patrick R. Michaud via RT
On Sun Mar 15 08:36:42 2009, masak wrote:
 masak rakudo: sub foo { return }; say foo.WHAT; say ?(foo ~~ Nil)
 p6eval rakudo 5b1ff9: OUTPUT«Nil␤0␤»
 * masak submits
 
 Expected behavior: a Nil and a 1. Or an explanation about why a
 value shouldn't smartmatch successfully against its own type.

Note that foo ~~ Nil is the same as foo(~~Nil) which is the same as
foo(~(~Nil)).  In other words, it's not a smartmatch operator here,
it's two prefix:~s.

Rejecting ticket.

Pm





[perl #67046] [PATCH] - implemented: not Object's method, and sign Num's method

2009-06-30 Thread Patrick R. Michaud via RT
On Mon Jun 29 00:36:42 2009, fernandocor...@gmail.com wrote:
 implemented:
 - not Object's method
 - sign Num's method
 
 Thats my first time to send a patch, I don't know if its OK, but I really
 want to help.


Thank you for the patches!  However, they may need some refactoring (or
at least some consideration) before they should be applied:

Object.not:  In general, we've decided that operators should be defined
in terms of methods, instead of defining methods in terms of operators.

Num.sign:  I suspect this really belongs in class Any, since we would
expect to be able to take the sign of an Int or Str.

my $a = -3;
say $a.sign;# should produce -1

This may also be a case where we don't define the method in terms of an
operator (especially since the = operator may be overloaded in this
case).  But I'm less certain about this one, and would accept a patch
that uses = here.

Pm




[perl #66826] [BUG] implementing an operator in the setting causes Null PMC access in find_method()

2009-06-30 Thread Patrick R. Michaud via RT
Now fixed in e0a9d86, and we now have several operators being defined in
the setting (along with tests using those operators).

Closing ticket, thanks!

Pm


[perl #66624] [BUG] Bogus unthrown exception when using 'index' on non-substring in Rakudo

2009-06-30 Thread Patrick R. Michaud via RT
Rakudo 95a2c4f now gives a more useful error message when returning the
failure for not finding a given substring:

  pmich...@orange:~/rakudo$ ./perl6
   say index abcd, x
  Substring 'x' not found in 'abcd'

Closing ticket, thanks!

Pm


[perl #66640] [BUG] minmax operator not working yet

2009-06-30 Thread Patrick R. Michaud via RT
The infix:minmax operator has now been added in Rakudo a4978b9, with a
test added to t/spec/S03-operator/misc.t in r27322.

Closing ticket,

Pm


[perl #66996] [BUG] Null PMC access when Rakudo tries to parse :colonpair[] with empty list

2009-06-30 Thread Patrick R. Michaud via RT
On Fri Jun 26 07:56:40 2009, masak wrote:
 masak rakudo: my $a = :x[]
 p6eval rakudo 6c43f9: OUTPUT«Null PMC access in find_method() [...]
 * masak submits rakuodbug
 masak rakudo: :x[]
 p6eval rakudo 6c43f9: OUTPUT«Null PMC access in find_method() [...]


What should $a contain in the above case?  I.e., what's the
expected/desired value of $a.perl ?

Pm


[perl #60142] A line-counting program in Rakudo reports one more line than wc

2009-06-30 Thread Patrick R. Michaud via RT
On Sun Oct 26 12:27:26 2008, masak wrote:
 Rakudo r32151 contains a bug which makes it read a nonexistent blank
 line at the end of files.
 
 $ wc README | awk '{ print $1 }'
 102
 
 $ README ./perl6 -e 'my $l = 0; while !$*IN.eof { $l++; my $dummy =
 =$*IN; }; say $l'
 103

IO.pod:1207 claims that IO.eof is gone, to be replaced with
CIO::Endable.  But I can't seem to find any specification or
documentation on Endable.

So, I'm converting this ticket to a specbug, in hopes that p6l or
someone can sort it out.

If it turns out that IO.eof still exists, then should it continue to
have the Perl 5 behavior of performing a getc/ungetc to check EOF?

Pm




[perl #66928] [BUG] Null PMC access when doing .WHAT on a built-in infix op in Rakudo

2009-06-30 Thread Patrick R. Michaud via RT
Now fixed in ee1fd13:

  $ ./perl6
   say infix:+.WHAT
  Multi()


Assigning to moritz++ for spectest coverage, if needed.

Pm


[perl #66928] [BUG] Null PMC access when doing .WHAT on a built-in infix op in Rakudo

2009-06-30 Thread Patrick R. Michaud via RT
On Tue Jun 30 18:47:59 2009, KyleHa wrote:
 I've written a test for this in S12-methods/what.t in r27345.

Thanks!  Closing ticket!

Pm



[perl #66840] [BUG] rakudo dies when Ternary Error occurs

2009-06-30 Thread Patrick R. Michaud via RT
On Sun Jun 21 23:57:17 2009, amoc wrote:
 : bash$ perl6
 :  1 ?? 1,2 !! 3,4
 : Ternary error
 : bash$
 
 this is not wrong as infix:, has looser precedence than the ternary
 operator( ?? !! )
 but when ternary error occurs, the program emits the error and dies.
 
 should provide the proper error message and not die.

Now fixed in 5351a33:

  $ ./perl6
   1 ?? 1,2 !! 3,4
  Ternary error at offset 6, found ','
  in Main (src/gen_setting.pm:3279)
   

I grant that the error message should be a bit more helpful, but I think
I'll postpone that part for the overall refactor of error message
handling and parsing that will be coming up soon.  As shown above, the
ternary error no longer forces an exit.

Closing ticket,

Pm







[perl #66818] Inconsistent behaviour when iterating over %*VM.kv

2009-06-30 Thread Patrick R. Michaud via RT
On Sun Jun 21 10:44:43 2009, moritz wrote:
 iterating over $*VM.kv shows more than one key:
 
 $ perl6 -e 'my $keys = 0; for %*VM.kv - $k, $v { $keys++}; say $keys'
 141
 
 Somehow the inner hash is flattened. Using a normal hash I couldn't
 reproduce
 this behaviour.

Now fixed in 6c6299f:

  $ ./perl6 -e 'my $keys = 0; for %*VM.kv - $k, $v { $keys++}; say $keys'
  1

I'll pass this back to moritz++ to decide if this needs a spectest to
close the ticket.

Pm


[perl #58290] [spec] define meaning of prior in S05

2009-06-30 Thread Patrick R. Michaud via RT
I've changed this ticket to indicate that it's waiting on spec
clarification as to the exact meaning of prior in regexes.

Pm


[perl #65546] No STDOUT output

2009-06-25 Thread Patrick R. Michaud via RT
I don't have any idea where the problem might be; since the Rakudo team
doesn't build the packages you installed I'm not quite sure where to
being troubleshooting.

I suggest contacting the packager who put together the binaries; try
with the latest Rakudo release; or see if you can build Rakudo from the
source repository (http://rakudo.org/how-to-get-rakudo).

Thanks!

Pm


[perl #66050] Can't exit REPL with exit; or EOF

2009-06-25 Thread Patrick R. Michaud via RT
This was caused by a bug in Parrot; the problem in Parrot seems to have
been resolved and now EOF appears to work again.

Closing ticket, thanks!

Pm


[perl #66640] [BUG] minmax operator not working yet

2009-06-25 Thread Patrick R. Michaud via RT
On Tue Jun 16 10:14:11 2009, richardh wrote:
 my @a=1,2,3,4; my @b=9,8,7,1; say (@a minmax @b).perl

While rakudo doesn't implement infix:minmax yet, the operator is
constrained to having two elements on either side, so the above code
wouldn't work anyway.

It would be good to have some tests for infix:minmax -- that should
make it much easier to implement.

Pm



[perl #66620] [BUG] t/spec/S10-packages/basic.rakudo gives a Parrot backtrace in Rakudo

2009-06-25 Thread Patrick R. Michaud via RT
This is a Parrot bug.  Recently the Parrot team have been working to
clean up memory leaks in context handling, and as a result we're
starting to see double free errors on exit again.  Running Rakudo with
Parrot's -G flag avoids the backtrace.

I'll leave this ticket open for now but mark it as stalled until we
can find out what's happening in Parrot's context handling.

Pm




[perl #66790] [BUG] Perl6MultiSub and MultiSub do not stringify well

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


The following code demonstrates that MultiSub and Perl6MultiSub
do not stringify to a reasonable name.

for 1.^methods {
say $_   {$_.PARROT};
}

Pm


[perl #66538] [BUG] Rakudo falls in the infinite loop in Range with non-ascii

2009-06-15 Thread Patrick R. Michaud via RT
At the moment string ranges are only defined for certain subsets of
Unicode.  See the description under Autoincrement precedence in
Synopsis 3.

More to the point, if you want to cycle through a range of codepoints,
you probably want:

map { .chr }, 44032..45208;

I agree that the string form of the Range should be lazy, or at least
shouldn't result in an infinite loop.  Although I'm not exactly what
should happen for ranges where the strings aren't iterable -- perhaps it
should simply return failure at each step.

A related question may be:  what should the following produce?

1..4 :by(0)

Thanks!

Pm


[perl #66364] Strange results with chars/bytes/graphs methods

2009-06-08 Thread Patrick R. Michaud via RT
On Sun Jun 07 00:57:34 2009, patmar19 wrote:
 When I try pugs or perl6 I get strange results whith Str methods :
 
 pugs -e 'say 1234é.chars' = 5
 perl6 -e 'say 1234é.chars' = 6
 
 pugs -e 'say 1234é.bytes' = 6
 perl6 -e 'say 1234é.bytes' = 8
 
 pugs -e 'say 1234é.graphs' = 5
 perl6 -e 'say 1234é.graphs' = Method 'graphs' not found for invocant of
 class 'Str'

Rakudo's issue here is the handling of utf8 characters coming from the
command line or standard input(Parrot gives them to us as a fixed_8
encoding).  

If you run the above from a file, you'll get more consistent results:

  $ cat x
  say 1234é.chars;
  say 1234é.bytes;
  $ ./perl6 x
  5
  6
  $ 

I have a request in to the Parrot development team for clarification on
converting things to utf8, but no response yet.

Pm


The issue here is Parrot's handling of utf8 characters coming from the
command line.  If you try it from the interactive mode or from a file, y





[perl #66388] [BUG] Cannot put Pod after a role declaration statement in Rakudo

2009-06-08 Thread Patrick R. Michaud via RT
On Mon Jun 08 06:51:53 2009, masak wrote:
 masak Rakudo doesn't support '=begin SUMMARY' Pod syntax!?
[...]
 masak rakudo: role A;␤=begin SUMMARY␤This be a summary.␤=end
 SUMMARY␤say OH HAI
 p6eval rakudo 5f70a6: OUTPUT«Unable to parse role definition at line
 2, near ;\n=begin S [...]
 masak ah. there we go.
 * masak submits rakudobug

It's working for me as of dbebac -- perhaps an update is needed?

  $ cat 66388
  role A;
  =begin SUMMARY
  This be a summary.
  =end SUMMARY
  say OH HAI;

  $ ./perl6 66388
  $ 

Pm


[perl #66270] [TODO] get Perl::Grammar.parse (with the Perl6::Grammar::Actions) to work

2009-06-05 Thread Patrick R. Michaud via RT
Now added in 056847f.  Please add a test to t/spec so we can close this
ticket.  :-)

Pm


[perl #66270] [TODO] get Perl::Grammar.parse (with the Perl6::Grammar::Actions) to work

2009-06-05 Thread Patrick R. Michaud via RT
Test now added to S05-grammar/std.t, closing ticket.

Pm


[perl #66250] Trouble with white space in Rakudo grammars

2009-06-04 Thread Patrick R. Michaud via RT
On Wed Jun 03 06:08:46 2009, haakonsk wrote:
 This doesn't work:
   grammar A { rule TOP { 'a' ' b' {*} } }; my $m = A.parse('a b'); say $/;
 Result: Empty string
 Expected result: a b

Rakudo is correct here.

Whitespace in rules is metasyntactic -- it gets replaced by .ws.
So, the above rule is really equivalent to

token { .ws 'a' .ws ' b' .ws {*} .ws }

The .ws that is inserted between the 'a' and ' b' thus consumes all of
the whitespace, leaving nothing for the leading space of ' b' to match.

 And this doesn't work:
   grammar A { rule TOP { 'a' blank 'b' {*} } }; my $m = A.parse('a
 b'); say $/;
 Result: Empty string
 Expected result: a b

Same issue here -- the whitespace after 'a' eats up any whitespace that
might be consumed by the blank.

You likely want either Cregex or Ctoken here instead of Crule.

Closing ticket, thanks!

Pm




[perl #66280] [BUG] Ranges appear to modify readonly lexicals in pointy nested for loops

2009-06-04 Thread Patrick R. Michaud via RT
Now fixed in 9e2b9ad:

$ cat 66280
for 1,3 - $i { 
for $i..4 - $j { say $j,$i }; 
$i.say;
}
$ ./perl6 66280
1,1
2,1
3,1
4,1
1
3,3
4,3
3
$ 

Test added to range.t.  Closing ticket, thanks!

Pm


[perl #66182] No die sub found in Rakudo

2009-06-03 Thread Patrick R. Michaud via RT
The current version of Rakudo (after Jonathan's merge) now reports:

$ cat 66182
my $x;
[$x.WHAT, $x.HOW, $x].say;

$ ./perl6 66182
Failure()
Method 'say' not found for invocant of class 'P6metaclass'
$ 

I don't know if this is more along the lines of what you were looking
for.  If so, close the ticket, if not, tell us what you expect.  :-)

Pm




[perl #61662] implicit binding of matches to $_

2009-06-02 Thread Patrick R. Michaud via RT
On Wed Dec 24 08:44:36 2008, dwh...@nvidia.com wrote:
 (rakudo 34337)
 
  $_ = a; say /a/ ?? yes !! no
 yes
  $_ = a; say /b/ ?? yes !! no
 Yes --- WRONG!

This now works as of fc01cda:

pmich...@orange:~/rakudo$ ./perl6
 $_ = a;  say /a/ ?? 'yes' !! 'no';
yes
 $_ = a;  say /b/ ?? 'yes' !! 'no';
no
 $_ = a;  say $_ ~~ /a/ ?? 'yes' !! 'no';
yes
 $_ = a;  say $_ ~~ /b/ ?? 'yes' !! 'no';
no

Closing ticket, thanks!

Pm


[perl #61988] $.foo doesn't accept args

2009-06-02 Thread Patrick R. Michaud via RT
Now fixed in c907d37:

$ cat 61988
class A {
method foo { say @_; }
method bar { $.foo(42); }
}

A.bar;

$ ./perl6 61988
42
$ 


Assigning ticket for spectest verification.

Thanks!

Pm


[perl #61774] Private methods in classes misparsed as variables?

2009-06-02 Thread Patrick R. Michaud via RT
This now works as of c907d37:

  $ cat 61774 
  class A {
  has @something is rw;
  method doit {
  @something = 1 2 3;
  say self!something;
  }
  my method something {
  Hello, world;
  }
  }

  my A $a .= new;
  $a.doit;

  $ ./perl6 61774
  Hello, world


Assigning ticket for spectest verification...and then we can close the
ticket.  Thanks!

Pm


[perl #63800] Method 'result_object' not found calling make in a grammar action method

2009-06-02 Thread Patrick R. Michaud via RT
Rakudo now gives a much more useful error message for the case where
make() cannot set a result object:

$ cat 63800
grammar G {
regex TOP { 'a' {*} }
}

class GA {
method TOP($m) { make GA.new }
}

G.parse('a', :action(GA.new));

$ ./perl6 63800
make() cannot set result of non-Match object in $/
in method GA::TOP (63800:6)
called from regex G::TOP (63800:1)
called from Main (63800:9)
$ 

Closing ticket, thanks!

Pm


  1   2   3   4   5   >