Re: [perl #133541] Grammer bug vs
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
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
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
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
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
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
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
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}
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
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
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
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)
Resolved via a change to S12, see https://github.com/perl6/specs/commit/bff62668057bf3f87a6f80f33d088d47a1d 4eda2 . Pm
[perl #117831] [BUG] Grammar capture of '%' separator
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
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
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
Now fixed in 690d774; needs spectests to close ticket. Thanks! Pm
[perl #113026] array iterator does not track a growing array
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
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
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
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
Now fixed in 2c9f46f. Needs spectests to close ticket. Thanks, Pm
[perl #112216] slicing a string with inifinite ranges gives LTA error message
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
Now fixed in b1acd74. Needs spectest coverage to close ticket. Thanks! Pm
[perl #111646] Arity counting mis-treats slurpy and capture parameters
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
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
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
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
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
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«()Nilx 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
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
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
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 .[])
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
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
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«01» 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«ab» 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
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()
Now fixed in b627e33. Assigning to moritz for spectest verification. Thanks! Pm
[perl #65994] Fakexecutable is not working anymore in latest rakudo/parrot
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
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
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
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
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.
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
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
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
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
Now fixed in a579f8e. Closing ticket. Pm
[perl #74050] bogus hash vs. block distinction.
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
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
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
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
Now fixed in c495888. Closing ticket. Pm
[perl #73076] [BUG] Can't refer to infix:+ in Rakudo
Now fixed in 4ab4b8. Probably needs a test before we can resolve the ticket. Pm
[perl #72872] [TODO] Implement 'eqv' for Mu in Rakudo
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
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
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
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
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:+
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
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
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
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
# 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
# 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
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.
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
# 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.
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)
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.
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
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«Nil0» * 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
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()
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
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
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
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
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
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
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
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
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
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
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
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
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
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
# 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
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
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
On Mon Jun 08 06:51:53 2009, masak wrote: masak Rakudo doesn't support '=begin SUMMARY' Pod syntax!? [...] masak rakudo: role A;=begin SUMMARYThis be a summary.=end SUMMARYsay 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
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
Test now added to S05-grammar/std.t, closing ticket. Pm
[perl #66250] Trouble with white space in Rakudo grammars
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
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
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 $_
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
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?
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
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