japhb | timotimo: 0 bytes in a utf-8 encoded buffer mean the same thing they mean in an ASCII string, because codepoints 0..127 are guaranteed to encode the same in ASCII and utf-8. This is part of the the utf-8 design -- they wanted applications to be able to upgrade to handling the full Unicode charset without having to replace every single function that assumed nul-terminated C strings. | 00:02 | |
Unlike, say UCS-2, wherein an aligned pair of 0 bytes marks end of string, and singleton (or unaligned pairs of) 0 bytes can appear randomly and must not be treated as string terminators. | 00:04 | ||
yoleaux | Zoffix: fix up `make test` along with other test (make all the tests in rakudo's t/ actually get run when make test is run) | 01:17 | |
travis-ci | Rakudo build errored. usev6 'Use nqp::eqaticim on MoarVM only | 02:45 | |
travis-ci.org/rakudo/rakudo/builds/273420062 github.com/rakudo/rakudo/compare/e...52b07b710f | |||
buggable | [travis build above] ✓ All failures are due to timeout (0), missing build log (3), GitHub connectivity (0), or failed make test (0). | ||
bartolin | pmurias++ | 05:28 | |
samcv | almost reading to merge the collation stuff into moarvm. so close | 07:56 | |
:-) | |||
going to try and leave in some debug functions though. since that was super invaluble when i was creating it. and i really don't want to get rid of them. so will try to relegate them to certain functions hidden behind #define's | 08:01 | ||
there's a lot of code involved in the whole collation thing which you might imagine. like 700 lines of code (not counting the data i mean) | 08:15 | ||
very happy with it though | |||
despite having a fair amount of code it's very fast because of the methods i used, so the code that gets run usually doesn't run very much, unless it has to | 08:16 | ||
JimmyZ wonders whether perl6 has something @annotation syntax like java or not | 08:20 | ||
samcv | what is that? | 08:25 | |
JimmyZ | samcv: docs.oracle.com/javase/tutorial/ja...fined.html | 08:33 | |
pmurias | samcv: the unimatch tests really want to DWIM and take either a property value or a property name... | 08:39 | |
samcv | pmurias, unimatch is pretty broken | ||
well. i think it is :) | |||
uh i wouldn't bother with unimatch that much. uh yes you will need properly value checking for that | 08:40 | ||
pmurias | samcv: what do you think about spliting the op behavior and having both a nqp::unipropname and nqp::uniproporpvalname | ||
ops | |||
samcv | i hate that | ||
pmurias | why? | 08:41 | |
samcv | properly values are not unique | ||
they only really make sense with a property value to go along with it | |||
what does this return? a propcode? | 08:42 | ||
or does it return whether it has that properly or property value assigned to it? | |||
pmurias | meant to have that op called nqp::unipropcode and nqp::uniproporpvalcode | ||
both ones would return the propcode | |||
samcv | well property values are not unique | 08:43 | |
so what does it return back when like 8 properties have the same possible prop value? | |||
pmurias | throw an exception? | ||
samcv | tbh i don't think unimatch sholud let you search ALL property values | ||
pmurias | i hate that interface too, but we have to implement the tests somehow :/ | 08:44 | |
samcv | because it is insane to implement when you have proprety values that are shared | ||
for unimatch? | |||
i would focus on making unimatch work when the property name *is* specified | |||
and not on having it work when there's no propname specified | |||
the design docs don't specify it matching ANYTHING | 08:45 | ||
i should check the 6.c errata and see what it has | |||
pmurias | the design docs seem to specify that unimatch matches on general category | 08:46 | |
samcv | but imo i think it should only function the same way that regex functions. like if you give it a script name or a general category or a property name itself. not a property value from any category | ||
yeah | |||
pmurias | but the design docs commits seem to mention just describing the implementation :/ | 08:47 | |
samcv | what do you mean by just describing the implementation? | ||
but yeah. unimatch needs to change/be restricted in 6.d i think or at least the docs updated so that it says it only guarentees certain things work like script and proprety names | 08:48 | ||
anything else is not future portible and not going to be scalable across more than one backend | 08:49 | ||
thanks for bringing this up though. :-) | |||
pmurias | hmm, maybe moving the crazy unimatch behavior to the setting code and sanitizing nqp::unipropcode makes sense? | 08:53 | |
samcv | sanitizing? | 08:54 | |
pmurias | make it more sane | ||
samcv | hm | 08:55 | |
pmurias | so nqp::uniprocode would take care of the property name to numer matching while unimatch would do the crazy DWIM | ||
samcv | well the unimatch behavior is just caused by moarvm having been created assuming property values were unique and so it'd match property values with propcodes. it had one big hash that had proprety values as keys and the propcodes of their owner propreties | ||
which ended up messing up all kinds of things becuase they could override each other with idetical names | 08:56 | ||
which is why we have the weird unimatch functionality | |||
i mean how would you implement that? have it look up all the properties which contain that property value then check every one of those properties? | 08:57 | ||
something like that? | |||
that could be do-able | 08:58 | ||
pmurias | not sure, either just check the 4 or so properties that are used in the test or add an op that does a lookup with DWIM | ||
samcv | DWIM = letting you give it something that could be shared between properties? | ||
and checking them all? | 08:59 | ||
pmurias | how many property values are there? | ||
it seems like there are 3806 ones | 09:02 | ||
not sure how big of a performance penalty would having such a hash in Perl 6 land be | 09:03 | ||
samcv: if something is shared across the properties I don't think we can do anything better than failing (it's not future proof with new unicode versions but neither is picking a random choice) | 09:04 | ||
samcv | i mean if you're checking if it has a property value you should really know which property you're checking | 09:06 | |
scovit | Hello, I suspect I found a bug: gist.github.com/scovit/3cec65085dc...d0bfd03cf5 | ||
is it a bug? | |||
[Tux] | This is Rakudo version 2017.08-99-g591b93eaf built on MoarVM version 2017.08.1-128-gde6dceda | 09:17 | |
csv-ip5xs 1.385 - 1.485 | |||
test 10.098 - 10.420 | |||
test-t 3.555 - 3.861 | |||
csv-parser 11.325 - 11.820 | |||
samcv | \o [Tux] | ||
evalable6, gist.githubusercontent.com/scovit/...tfile1.txt | |||
evalable6 | samcv, Successfully fetched the code from the provided URL. | ||
(exit code 1) (uint8) concatenate requires a concrete string, but got null in any protec… |
|||
samcv, Full output: gist.github.com/57c82d27d2c3271f8e...886b3677a5 | |||
[Tux] | Error encoding UTF-8 string: could not encode codepoint 1696741 (0x19E3E5), codepoint out of bounds. Cannot encode higher than 1114111 (0x10FFFF) | ||
in block <unit> at 88.t line 21 | |||
samcv | probably an error scovit | 09:18 | |
hm | |||
well. i will look into it give me one sec | |||
scovit | thanx | 09:19 | |
samcv: I found an easy workaround, using a local 'my \ty = T;' and then Blob[ty] instead of Blob[T] | 09:24 | ||
seems like a bug to me | |||
samcv | bisectable6, gist.githubusercontent.com/scovit/...tfile1.txt | 09:26 | |
bisectable6 | samcv, Successfully fetched the code from the provided URL. | ||
samcv, Bisecting by exit code (old=2015.12 new=591b93e). Old exit code: 0 | |||
samcv, bisect log: gist.github.com/de3e8763a17ffb4f4e...9acd4eb4e8 | 09:27 | ||
samcv, (2016-02-28) github.com/rakudo/rakudo/commit/1e...4fcf1a4159 | |||
samcv | let's see if it was my fault or not | ||
yay i didn't do it :p | |||
looks old | |||
oh nvm | 09:28 | ||
looks like it was always broken before? | |||
or i think it may have just found out where it first started working | |||
i need it to bisect by output | |||
bisectable6, help | |||
bisectable6 | samcv, Like this: bisectable6: old=2015.12 new=HEAD exit 1 if (^∞).grep({ last })[5] // 0 == 4 # See wiki for more examples: github.com/perl6/whateverable/wiki/Bisectable | ||
samcv | bisectable6, old=2016.3 new=HEAD gist.githubusercontent.com/scovit/...tfile1.txt | 09:29 | |
bisectable6 | samcv, Successfully fetched the code from the provided URL. | ||
samcv, Cannot find revision “2016.3” (did you mean “2016.03”?) | |||
samcv | bisectable6, old=2016.03 new=HEAD gist.githubusercontent.com/scovit/...tfile1.txt | ||
bisectable6 | samcv, Successfully fetched the code from the provided URL. | ||
samcv, Bisecting by output (old=2016.03 new=591b93e) because on both starting points the exit code is 1 | |||
samcv, bisect log: gist.github.com/8de3c7acde04637b80...c289c591cc | |||
samcv, (2016-04-20) github.com/rakudo/rakudo/commit/60...f93f46a849 | |||
lizmat | Files=1223, Tests=67688, 292 wallclock secs (11.02 usr 4.67 sys + 1977.87 cusr 207.02 csys = 2200.58 CPU) | ||
samcv | bisectable6, old=2016.05 new=HEAD gist.githubusercontent.com/scovit/...tfile1.txt | 09:35 | |
bisectable6 | samcv, Successfully fetched the code from the provided URL. | ||
samcv, Bisecting by output (old=2016.05 new=591b93e) because on both starting points the exit code is 1 | |||
samcv, bisect log: gist.github.com/eff9bc00fce8d7e9b7...1432d0b2a9 | |||
samcv, (2016-08-05) github.com/rakudo/rakudo/commit/71...4841fbf12f | |||
samcv | bisectable6, old=2017.03 new=HEAD gist.githubusercontent.com/scovit/...tfile1.txt | ||
bisectable6 | samcv, Successfully fetched the code from the provided URL. | ||
samcv, Bisecting by output (old=2017.03 new=591b93e) because on both starting points the exit code is 1 | |||
samcv, bisect log: gist.github.com/9c06534ddc4329b761...230ef4b8c2 | 09:36 | ||
samcv, (2017-05-26) github.com/rakudo/rakudo/commit/c4...4439bab3db | |||
samcv | bisectable6, old=2017.05 new=HEAD gist.githubusercontent.com/scovit/...tfile1.txt | ||
bisectable6 | samcv, Successfully fetched the code from the provided URL. | ||
samcv, Bisecting by output (old=2017.05 new=591b93e) because on both starting points the exit code is 1 | |||
samcv | lizmat, you know anything about this? | ||
bisectable6 | samcv, bisect log: gist.github.com/c41af86c061dcb19a5...f51038c8a4 | ||
samcv, (2017-05-26) github.com/rakudo/rakudo/commit/c4...4439bab3db | |||
samcv | evalable6, gist.githubusercontent.com/scovit/...tfile1.txt | ||
evalable6 | samcv, Successfully fetched the code from the provided URL. | ||
(exit code 1) (uint8) concatenate requires a concrete string, but got null in any protec… |
|||
samcv, Full output: gist.github.com/a1c2c6b55174ff562b...dd7ccd0f06 | |||
samcv | seems to be related to buffer code | 09:37 | |
seems you've worked with that code | |||
lizmat looks | |||
samcv | bisectable6, old=2017.07 new=HEAD gist.githubusercontent.com/scovit/...tfile1.txt | 09:38 | |
bisectable6 | samcv, Successfully fetched the code from the provided URL. | ||
samcv, Bisecting by output (old=2017.07 new=591b93e) because on both starting points the exit code is 1 | |||
samcv, bisect log: gist.github.com/8d983f749fad791765...3ce48e510e | |||
samcv, (2017-09-04) github.com/rakudo/rakudo/commit/4b...77b74cd59d | |||
samcv | wow that's not helpful | 09:39 | |
the output is the same but the order is different | |||
due to buffering code | |||
bisectable6, old=2017.07 new=2017.08 gist.githubusercontent.com/scovit/...tfile1.txt | 09:40 | ||
bisectable6 | samcv, Successfully fetched the code from the provided URL. | ||
samcv, On both starting points (old=2017.07 new=2017.08) the exit code is 1 and the output is identical as well | |||
samcv, gist.github.com/93e61346702eabdb48...ccee7f2535 | |||
lizmat | well, the error seems to occur when trying to say that it couldn't instantiate the rold | ||
*role | |||
samcv | yep | ||
lizmat | samcv: not sure what's going on, but I found a workaround | 09:51 | |
samcv | hm | ||
lizmat | if you put "my $type := T;" at the start of the role, and use "Blob[$type].new" later on, it seems to work | 09:52 | |
this should probably be rakudobugged | |||
bartolin | an update regarding the jvm backend: it's not only precompilation, but most (if not all) file operations that are broken. if i'm not mistaken, this is caused by uses of nqp::filenofh -- e.g. here: github.com/rakudo/rakudo/blob/591b...dle.pm#L30 | 10:09 | |
that op is only stubbed on jvm and always returns -1 | |||
i suppose, it's above my head to implement a working version of that nqp::filenofh -- but that seems to be the way to go | 10:12 | ||
bartolin will look further | |||
lizmat | bartolin: I will stub out the auto-closing of files for JVM, and perhaps buffering should then also be not default on JVM | 10:20 | |
pmurias | samcv: the unicode docs suggest that loose matching "Ignore case, whitespace, underscore ('_'), and hyphens." should be used for property names and property value names | 10:30 | |
samcv: do we want to use that? | |||
samcv | well moarvm allows original, lowercase, and lowercase with no underscore | 10:38 | |
whitespace isn't allowed | |||
so: Canonical_Combining_Class OR canonical_combining_class OR canonicalcombiningclass | 10:39 | ||
no others. but it would be simple enough to make it just lowercase it and remove underscores | 10:40 | ||
Geth | rakudo/nom: dd8d0d89a3 | (Elizabeth Mattijsen)++ | 2 files Make auto-closing files a MoarVM only thing This should help unbusting the JVM, bartolin++ . Can be reverted when someone makes nqp::filenofh give valid values on the JVM. |
||
samcv | so you could do CaNoNi_cAl_coMBIN_Ing_ClaSS | ||
what do you think is sane | |||
i don't approve of whitespace though | 10:41 | ||
lizmat | .tell bartolin hopefully dd8d0d89a3 will help you | 10:42 | |
yoleaux | lizmat: I'll pass your message to bartolin. | ||
bartolin | lizmat: thanks! i'll try in a minute | 10:44 | |
yoleaux | 10:42Z <lizmat> bartolin: hopefully dd8d0d89a3 will help you | ||
pmurias | samcv: I don't have intutions what's sane in unicode, but if there is a defined rule using it will hopefully be consistent with other unicode using things | 10:53 | |
unicode.org/reports/tr44/tr44-16.html#UAX44-LM3 - unicode.org/reports/tr44/tr44-16.ht...g_Symbolic | 10:54 | ||
scovit | Some of you might be interested: I made a very useful CBuffer type gist.github.com/scovit/a061415aa84...c6c6901490 . Might make a module out of it, what is the faster way here to make a simple module skeleton? Any git repo to clone? | 10:58 | |
Skarsnik_ | mi6 | 10:59 | |
scovit | Skarsnik_ it is a pity that many things in NativeCall are not composable I could have used a typed role instead of a class | 11:02 | |
MasterDuke | i was curious, so last night i ran a script to build rakudo at each release and pull out the parse time | 11:54 | |
results: 57,58,58,64,56,57,66,67,68,70,73,65,64,64,66,68,65,66,71 | 11:55 | ||
timotimo | can you correlate it with the line count of the core setting? | ||
MasterDuke | hm, that gets created by make, not Configure.pl, right? | 11:57 | |
timotimo | right | 11:58 | |
MasterDuke | ugh, i'd have to re-run then and also record the line count | 11:59 | |
but i guess a rough approx would just be wc -l in the src folder at each release? | 12:00 | ||
jnthn | Well, it just concatenates all the source under src/core/ so I guess you can just count up those | ||
MasterDuke | it'd misscount the #?if <backend> stuff, but woulf prob be close enough for a rough correlation | 12:02 | |
timotimo | no problem, IIRC we actually put empty lines in for the non-matched things | 12:03 | |
so that line numbers in the concatenated core setting match up with the source files regardless of what parts were included or not includde | |||
MasterDuke | ah, right | 12:05 | |
Geth | rakudo/nom: 16f8419a3e | usev6++ | src/core/IO/Handle.pm Avoid trailing semicolon for JVM backend The trailing semicolon in combination with binding nqp::null gave a NullPointerException in infix:<,>. This can be reverted with dd8d0d89a3 when nqp::filenofh give valid values on the JVM. |
12:23 | |
bartolin | ^^ with that precompilation (and other file IO) seems to work again on the jvm backend. 'make test' does not work, yet -- but one can run single test files | 12:24 | |
lizmat: shouldn't the semicolon in this line be a comma (because we are inside nqp::stmts)? github.com/rakudo/rakudo/blob/nom/...le.pm#L254 | 12:26 | ||
lizmat: and also here: github.com/rakudo/rakudo/blob/nom/...le.pm#L813 | |||
lizmat checks | 12:27 | ||
bartolin | lizmat: but I tried to use a comma instead and got a lot of failing tests (make test and make spectest) | ||
lizmat | it needs parens :-) | 12:28 | |
testing that now | |||
bartolin | ah, of course! | ||
Geth | rakudo/nom: 2762bcc49f | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm Oops, need parens + comma inside nqp::stmts bartolin++ for spotting |
12:31 | |
bartolin | lizmat++ :-) | ||
AlexDaniel | committable6: releases gist.githubusercontent.com/scovit/...tfile1.txt | 12:42 | |
committable6 | AlexDaniel, Successfully fetched the code from the provided URL. | ||
AlexDaniel, gist.github.com/10f9bc1c3c34f7211e...db7711fd4f | |||
AlexDaniel | samcv: LPT use committable with “releases” to get the big picture, then bisect precisely what you need :) | 12:45 | |
timotimo | i get a whole bunch of "unhandled failure in DESTROY" from t/spec/S11-modules/require.t | 12:47 | |
has that always been there? | |||
lizmat | timotimo: I think so | 12:52 | |
timotimo | OK | ||
that test failed on my spec test run, but not without the harness | 12:53 | ||
lizmat | fwiw, roast as many more of those | ||
timotimo | failed test 13, ok 13 - can require with variable name | ||
lizmat | that one has been a occasional flapper for me for a long time already | ||
timotimo | OK, good | 12:56 | |
in that case, i just fixed junction optimization | |||
lizmat | whee! :-) | 12:57 | |
you mean, the one that handles 2 eigenstate junctions ? | |||
AlexDaniel | faster junctions? Whee indeed! | ||
timotimo | only static junctions | ||
Geth | rakudo/nom: 4de858a555 | (Timo Paulssen)++ | src/Perl6/Optimizer.nqp junction optimizer shall ignore proto and only look at candidates |
12:58 | |
timotimo | you know, when you have if $foo == 1 | 2 | ||
Skarsnik | still good ^^ | ||
timotimo | one of the first things i contributed to rakudo | ||
i wonder if i should put in a test to warn when the junction folding ops get b0rked | 13:02 | ||
travis-ci | Rakudo build canceled. Will "Coke" Coleda 'Note how to build on windows' | 13:07 | |
travis-ci.org/rakudo/rakudo/builds/273280313 github.com/rakudo/rakudo/compare/3...a600997c30 | |||
buggable | [travis build above] ✓ All failures are due to timeout (0), missing build log (3), GitHub connectivity (0), or failed make test (0). | ||
travis-ci | Rakudo build canceled. usev6 'Use nqp::eqaticim on MoarVM only | 13:22 | |
travis-ci.org/rakudo/rakudo/builds/273420062 github.com/rakudo/rakudo/compare/e...52b07b710f | |||
buggable | [travis build above] ✓ All failures are due to timeout (0), missing build log (3), GitHub connectivity (0), or failed make test (0). | ||
pmurias | is ($foo, $bar) := ($bar, $foo) planned to be implemented? | 14:15 | |
jnthn | No | ||
pmurias | I'll removed it from roast then (it's fudged) | 14:16 | |
jnthn | +1 | ||
pmurias++ # tidying all kinds of things up | |||
Geth | roast: cb18065737 | pmurias++ | S02-types/lists.t Remove fudged test we don't plan on implementing |
14:19 | |
travis-ci | Rakudo build canceled. pmurias 'Refactor a regex in a way that avoids a JVM backend bug and is cleaner' | 14:25 | |
travis-ci.org/rakudo/rakudo/builds/273456019 github.com/rakudo/rakudo/compare/d...1b93eaf8aa | |||
buggable | [travis build above] ✓ All failures are due to timeout (0), missing build log (3), GitHub connectivity (0), or failed make test (0). | ||
timotimo | m: my ($foo, $bar) = <ofo aba>; dd $foo, $bar; ($foo, $bar) = ($bar, $foo); dd $foo, $bar | 14:26 | |
camelia | Str $foo = "ofo" Str $bar = "aba" Str $foo = "aba" Str $bar = "ofo" |
||
timotimo | so just not with binding? | ||
[Coke] | bartolin++ | 16:41 | |
travis-ci | Rakudo build passed. Elizabeth Mattijsen 'Make auto-closing files a MoarVM only thing | 16:46 | |
travis-ci.org/rakudo/rakudo/builds/273581289 github.com/rakudo/rakudo/compare/5...8d0d89a3f4 | |||
bartolin | looks like the reason for 'make test' not working on the jvm backend is that the EvalServer is unable to find BOOTSTRAP.jar. it looks in /nqp/lib/Perl6/BOOTSTRAP.jar. even when installing with --libdir there is no value for nqp::getcomp('perl6').config<libdir> | 18:52 | |
cmp. github.com/rakudo/rakudo/blob/4de8...er.nqp#L53 | |||
that looks fixable (though i don't know how a clean fix would look like) | 18:54 | ||
AlexDaniel | Skarsnik: any news? :S | 18:55 | |
Skarsnik | I make it crash faster with a bigger webpage \o/ ? | 18:56 | |
AlexDaniel | yeey… | 18:57 | |
Skarsnik | it crash at like 10-12 iterations, but crash with 40 in valgrind and efence fill my ram xD | 18:58 | |
pmurias | bartolin: the path stuff is looked up was changed, the used to be a /share/ stuck in that path | 19:24 | |
s/stuff/BOOTSTRAP | |||
bartolin: if you look at 0d7ea0a0aa you will see the change on moarv | 19:26 | ||
m | |||
bartolin | pmurias: thanks! i'll look into this later | 19:30 | |
pmurias: one other question: when a special case for the jvm backend is added -- do you prefer '#?if jvm' or '#?if !moar'? (the latter would affect the js backend as well, wouldn't it?) | 19:39 | ||
pmurias | hmm, for jvm bugs workaround #if jvm is preferable | 19:41 | |
for some brand new moar specific missing feature maybe #?if !moar? | |||
bartolin | ok, that's what I thought. regarding the commits from today: you already implemented nqp::filenofh for js, didn't you? | 19:43 | |
pmurias | bartolin: yes | 19:56 | |
bartolin: when in doubt you can use '#?if jvm' and I'll change the workarounds to '#?if !moar' when merging stuff into my branch | 19:57 | ||
ugexe | m: while $(1,2) -> @_ { FIRST { say 42 } } | 20:15 | |
camelia | Too few positionals passed; expected 1 argument but got 0 in block <unit> at <tmp> line 1 |
||
lizmat | m: while 1 -> { last } | 20:21 | |
camelia | ( no output ) | ||
lizmat | ugexe: the block gets called without any params in a while structure | 20:22 | |
jnthn | m: while 1 -> $x { say $x } | 20:23 | |
camelia | (timeout)1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1… |
||
lizmat | hmmm... that appears to run a lot ? | ||
ugexe | m: while $(1,2) -> @_ { LAST { say 42 }; last if $++ } | ||
camelia | 42 | ||
jnthn | Yeah, it should be passed the thing | 20:24 | |
lizmat | ah, TIL | ||
jnthn | That's why the (not entirely wise unless you know your data) while @a.pop -> $x { } works | ||
Not sure what's up with the example ugexe posted | |||
m: while $(1,2) -> @_ { say 42; last } | 20:25 | ||
camelia | 42 | ||
jnthn | m: while $(1,2) -> @_ { say @_; last } | ||
camelia | (1 2) | ||
jnthn | Something about the FIRST apparently | ||
ugexe | m: for $(1,2) -> @_ { FIRST { say 42 } } | 20:28 | |
camelia | 42 | ||
ugexe | m: while $(1,2) { FIRST { say 42 } last if $++ } | 20:29 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Strange text after block (missing semicolon or comma?) at <tmp>:1 ------> 3while $(1,2) { FIRST { say 42 }7⏏5 last if $++ } expecting any of: infix infix stopper … |
||
ugexe | m: while $(1,2) { FIRST { say 42 }; last if $++ } | ||
camelia | 42 | ||
jnthn | m: while $(1,2) -> @_ { FIRST { say 42 } } | 20:33 | |
camelia | Too few positionals passed; expected 1 argument but got 0 in block <unit> at <tmp> line 1 |
||
jnthn | m: while $(1,2) -> $_ { FIRST { say 42 } } | ||
camelia | Too few positionals passed; expected 1 argument but got 0 in block <unit> at <tmp> line 1 |
||
jnthn | Ah, OK, it's nothing about the @ | 20:34 | |
So seems to be while block + parameter + FIRST | |||
ugexe | m: while $(1,2) -> $_? { FIRST { say 42 }; last if $++ } | 20:37 | |
camelia | 42 | ||
ugexe | m: while $(1,2) -> *@_ { FIRST { say 42 }; say @_.perl; last if $++ } | 20:38 | |
camelia | 42 [] [] |
||
ugexe | m: while $(1,2) -> $_? { say $_.perl; last if $++ } | 20:41 | |
camelia | Mu Mu |