AlexDaniel skids: hey. Do you have clean 「make spectest」 over there? :) 01:15
beacuse t/spec/S02-literals/pairs.t is failing here
skids Hrm... I ran it straight from roast. I'll try a 'make spectest' 01:16
Oh it can't find the extra test lib... 01:19
AlexDaniel “beacuse” heh
Geth roast: skids++ created pull request #312:
add missing 'use lib' from last commit
01:22
roast: 82600ac7ca | skids++ | S02-literals/pairs.t
add missing 'use lib' from last commit
roast: 5e23ada6bc | skids++ (committed using GitHub Web editor) | S02-literals/pairs.t
Merge pull request #312 from skids/rt129008

add missing 'use lib' from last commit
skids Yeah that file is just issing a 'use lib'. That should do it.
AlexDaniel ah-ha, okay
skids: thanks 01:26
skids np thanks for letting me know.
AlexDaniel well, it was preventing the dry run of the release process here :) 01:33
m: my $x = set “abc”, “xyz”; say $x.WHICH 02:26
camelia Set|A3ACBF2BA1F70F182B28FC68DCDF8C2FC3E48E33
AlexDaniel m: my $x = set “abc\0Str|xyz”; say $x.WHICH
camelia Set|A3ACBF2BA1F70F182B28FC68DCDF8C2FC3E48E33
AlexDaniel is it supposed to be this way?
skids Value type literals are still a bit of a mess. At least someone was unhappy enough with that to file an RT. 02:28
AlexDaniel which ticket is that? 02:29
skids RT#132033
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=132033
skids Other ticket along that vein: 129019
AlexDaniel ah-ha. OK, it's already known then 02:31
was t/spec/S11-modules/require.t always a flapper or is it a recent thing? 03:12
MasterDuke at least a long time, if not always 03:55
masak jnthn: re "already in RT" -- good. 05:19
and it's no big blocker either, now that I know the cause. I can work around it quite easily.
lizmat timotimo: good catch, fixed 07:30
Files=1223, Tests=67641, 291 wallclock secs (11.04 usr 4.65 sys + 1974.04 cusr 208.56 csys = 2198.29 CPU)
samcv i'm going to be adding ignoremark tests, that test Prepend+Extend degenerates i.e. not base character 08:14
what i've decided is that if there's no base character, we treat the first codepoint as the base character. so if it's 10 Prepend's in a row. the 1st one is the base (since no normal cp's follow) 08:15
and if it's Prepend+Extend degenerate by itself, then the first codepoint is the base as well
nine Ok, here's a solution for the NativeCall "sub foo() is native(Str) returns(Int)" issue: NativeCall can export an INIT phaser and we can compile the subroutine bodies there. 08:16
samcv AlexDaniel, guessing you see nothing wrong with this approach but let me know your thoughts on this 08:18
lizmat nine: too bad we can't export a COMPOSE phaser, right ? 08:19
nine lizmat: well technically we can't really export INIT phasers either ;) But with $*W available, we do have a lot of rope for hanging: github.com/niner/Inline-Perl5/blob...5.pm6#L814 08:23
lizmat nine: but if we had a COMPOSE phaser, to be run at compile time, all of this could be done at compile time instead of runtime, right ? 08:24
nine INIT is still compile time either? 08:26
lizmat no, INIT is runtime afaik 08:27
nine Oh...I actually meant CHECK 08:28
lizmat m: CHECK say "CHECK"; ENTER say "ENTER"; INIT say "INIT"; BEGIN say "BEGIN" 08:29
camelia BEGIN
CHECK
INIT
ENTER
nine Otherwise this wouldn't buy use anything :)
lizmat ok, so it should the the CHECK phaser you're "exporting", right ?
nine Yes, tested it here: gist.github.com/niner/66a72dbe737d...a782ce706f 08:31
At some point having an EXPORTPHASERS would be lovely 08:34
lizmat afk for a few hours& 08:55
Skarsnik Hello 11:26
AlexDaniel samcv: so we are talking about this handful of characters? gist.github.com/Whateverable/e1e64...0fb14713b3 11:42
samcv yep 11:43
AlexDaniel samcv: the problem with asking me questions like this is that I know so much less than you about the topic :)
samcv well it was more informing you :)
AlexDaniel samcv: so prepend characters are like reverse combiners?
samcv yes exactly like reverse combiners
so it messed up casechanges and ignoremark since we always assumed the 1st codepoint was the base 11:44
AlexDaniel well, that was wrong, yeah
samcv i also changed the representation we have for synthetics. before we stored the base character in the struct and then had a MVMCodepoint pointer to an array of the combiners
timotimo no, it was correct
it just no longer is correct :)
samcv now we have just one array of codepoints, and we have base_index which stores the index of the base character in the array 11:45
well it was introduced in unicode 9
AlexDaniel propdump: U+0600
unicodable6 AlexDaniel, gist.github.com/99bf5ab484e3564ab9...16c1b1d6db
samcv m: "\c[arabic number sign]a".uc.say 11:46
camelia ؀a
samcv m: use nqp; nqp::ordbaseat("\c[arabic number sign]a", 0).say
camelia 1536
samcv m: use nqp; nqp::ordbaseat("\c[arabic number sign]a", 0).uniname.say
camelia ARABIC NUMBER SIGN
samcv so that is incorrect
m: use nqp; nqp::ordbaseat("\c[arabic number sign]\c[combining caron]", 0).uniname.say
camelia ARABIC NUMBER SIGN
samcv though i'm making sure that if there is no base character that the base is just the first one. i think that's the least suprising thing 11:47
and having the base be the first Extend would be odd
AlexDaniel gosh… reverse combiners :S
samcv though easier to implement
AlexDaniel this breaks all my previous expectations 11:48
timotimo unicode tends to do that 11:49
AlexDaniel m: “\c[arabic number sign]a”.chars.say
camelia 1
AlexDaniel I remember somebody commenting on a strand bug ticket that combiners go *after* the character
samcv oh with repeat? 11:50
AlexDaniel yeah that one
samcv yeah i fixd that one
AlexDaniel “Combining chars look forward now? This breaks *my* expectations.”
samcv now anything with `x` stays normalized. before it didn't in a lot of cases
i call them Extend and Prepend now to be more specific :p
AlexDaniel that's more correct, yeah 11:51
samcv though there's ZWJ which i guess can combine but not always
but combiners combine with anything
AlexDaniel any potential issues with strands and a combination of prepend, extend and ZWJ? :)
samcv nope shouldn't be 11:52
AlexDaniel anyway, samcv++
TIL :)
samcv there aren't that many .uc tests actually hm 11:53
i must add more :)
lizmat moritz Zoffix no tweet about the P6W yet ?? :-( 12:22
moritz lizmat: sorry, @daughter[0] just had first day of school, I didn't have any time for Perl 6 yet 12:27
twot now 12:28
timotimo twoth the raven: nevermoar 12:33
|Tux| This is Rakudo version 2017.08-108-g760530a52 built on MoarVM version 2017.08.1-150-g0b81969d 12:35
csv-ip5xs 1.314 - 1.341
test 9.422 - 9.767
test-t 3.457 - 3.519
csv-parser 10.851 - 11.146
Skarsnik hm, is that slower? 12:39
moritz .speed
moritz can't bot anymore 12:40
MasterDuke hm, buggable and huggable aren't here
Zoffix: ^^^
moritz aren't they run by somebody else now? nine maybe? 12:41
MasterDuke i think nine just runs Geth, but i could be wrong
moritz ah 12:42
MasterDuke but maybe they're all running on hack now and anybody with admin there could restart them? i don't know
nine I run Geth and camelia 13:12
jnthn At least the test-t times there, which are the ones I watch, don't seem slower 13:20
m: class Foo { has $!z is default(Nil); method x { dd $!z } }.new.x 13:56
camelia Nil $!z = Nil
jnthn rt.perl.org/Ticket/Display.html?id=131387 seems to be fixed
Skarsnik m: class Foo { has $!z is default(42); method x { dd $!z } }.new.x 14:16
camelia Int $!z = 42
lizmat jnthn: is there a reason why we check for a compile-time value in trait processing (L5406 in Actions.nqp) but not in attribute / parameter processing? 14:18
the reason I'm asking, is that "has $.a = 42" is codegenned as calling a closure that returns the 42, rather than having the constant 42 just assigned 14:20
and am considering optimising for that very common case
jnthn I was going to avoid the special case and just let inlining take care of it once we do the build plan :) 14:23
Zoffix: is rt.perl.org/Ticket/Display.html?id=129081 still needed? :) 14:26
lizmat jnthn: ok, then I'll focus on that 14:27
(doing the build plan I mean) 14:28
although that still feels a bit awkward to me 14:29
Skarsnik Should rakudo.org/tickets/ point to the sexy Zoffix page? 14:32
releasable6, status
releasable6 Skarsnik, Next release in 4 days and ≈4 hours. 1 blocker. Changelog for this release was not started yet
Skarsnik, Details: gist.github.com/695b8235b1a3532985...778610c36f
jnthn lizmat: Awkward as in, not quite sure how to go about it? 14:33
lizmat no, awkward as in a having a clear opportunity for direct optimizing something that would be immediately beneficial, instead of only getting faster when it is actually in hot code 14:34
also wrt to precomp size
jnthn Inlining happens at runtime 14:35
So no impact on precomp size
Unless you mean that we could reduce it for not having the generated method 14:36
lizmat right, that's my idea
I mean, it also means that the Attribute object needs to be around during execution as well
but I guess that will always be the case anyway, right ? 14:37
jnthn I was kinda hoping code-genning the build plan might mean we can have those be lazily deserialized
At least in some cases where nothing wants the whole meta-object
lizmat well, needing it to assign the default value, is not helpful for that, right ? 14:38
nine Wouldn't this be just a call to .has_compile_time_value and a branch, i.e. a trivial amount of code in the compiler to generate optimized code directly?
lizmat well, that is my feeling at the moment
jnthn Yeah, but then we also need code on the other end
lizmat use code #4 in the buildplan for the compile time case 14:39
jnthn And we don't really want to check every time if it's a value or a block to invoke
lizmat and introduce a higher value for the call method case
jnthn So it'd need a different build plan code
So it scatters out into a few places
It's not too bad
.tell samcv I think rt.perl.org/Ticket/Display.html?id=127048 is perhaps resolved and closable?
yoleaux jnthn: I'll pass your message to samcv.
lizmat jnthn: In think I know the few places where it scatters to
jnthn Yeah. I'm not really against it, I just prefer general optimizations solving many problems to lots of specific ones. 14:40
lizmat I think the added complexity is well worth it atm 14:41
also: I'd like to investigate the possibility of setting the default value on the attribute rather than codegenning an assignment 14:42
I know there are semantic differences, but I'd like to check the fallout of that in the ecosystem 14:43
which I think will be minimal
jnthn I'd rather not go that path 14:45
lizmat why ?
jnthn It'll introduce differences with the attrinitted stuff 14:46
lizmat ah hmmm...
jnthn Also will make the value is visible earlier than it "should" be
Potentially other inconsistencies
lizmat hmmm...
would you mind such an approach for parameters?
(as in non-rw parameters) 14:47
jnthn We don't both creating Scalar containers at all in many cases of that
So there's nothing reliably there to put an "is default" on
lizmat ah, ok
too bad :-)
jnthn Fetching a wval is almost free too
Which is what we compile that into
iirc after JIT it can just turn into a single instruction that loads the memory address 14:48
Gosh, the number of RTs about hyper/race 14:51
jnthn is actually going through them looking for ones that relate to scheduler issues
Geth nqp: d35cdbdd35 | (Samantha McVey)++ | tools/build/MOAR_REVISION
Bump Moar: Prepend support for casechanges, ignoremark, ordbaseat

Changes: 2017.08.1-150-g0b81969d..2017.08.1-156-g49b90b99 49b90b99 Fix case change when base cp isn't the first cp in synthetic db3102c4 For degenerate Synth's with Prepend and Extend set base cp to 1st cp f8a639e2 Fix ignoremark with Prepend characters and ordbaseat op d78c3707 ULL is the proper suffix for a 64 bit integer literal 22000677 Nativecall code : fix invalid pointer creation
16:02
¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...b81969d... No newline at end of file
rakudo/nom: 7f526c1efd | (Samantha McVey)++ | tools/build/NQP_REVISION
Bump NQP/Moar: Prepend support for casechanges, ignoremark

Previously Prepend codepoints in a synthetic grapheme would cause case changes and ignoremark not to function properly. Prepend codepoints are the reverse of normal combining characters, and come before instead of after the base glyph.
... (6 more lines)
16:04
rakudo/nom: version bump brought these changes: github.com/perl6/nqp/compare/2017....1fcc381... No newline at end of file
5f33506567 | (Samantha McVey)++ | 2 files

The .collate method, coll and unicmp infix functions are no longer experimental. I am still keeping $*COLLATION the dynamic variable which allows you to configure the sort as experimental for now.
Zoffix jnthn: thanks; closed 129081 16:10
jnthn Yay, another one down :) 16:11
I ended up closing several other old ones as I was going back through the queue today :)
samcv no more experimental \o/
yoleaux 14:39Z <jnthn> samcv: I think rt.perl.org/Ticket/Display.html?id=127048 is perhaps resolved and closable?
Zoffix lizmat: tweeted P6W on my account; I was just taking a break from all humans so didn't use Twitter :)
samcv & 16:13
jnthn, yes that's resolved. i'll close it right now
jnthn yay :)
Zoffix MasterDuke: brought the bots back 16:14
samcv ok closed 16:15
samcv &
Zoffix Huge amount of backlog 16:18
Zoffix gives up trying to read it
The IO::Handle.lines seek error... Yes, it should seek in sink-all, because otherwise file's position isn't predictable for users. I don't understand why the error would show up in that place, as `try` would take care of it. Perhaps it's not from IO::Handle.lines or gfldex was using too-old rakudo, without that fix 16:21
m: try $*OUT.seek: 10; say "meow"
camelia ␀␀␀␀␀␀␀␀␀␀meow
Zoffix m: try $*IN.seek: 10; say "meow" 16:22
camelia meow
Skarsnik_ bugs are not at fail.rakudo.org ? 16:23
Zoffix fail.rakudo.party 16:24
Skarsnik_ Zoffix, is toaster runnable on a 'shit' vps? 16:25
Zoffix Try 16:26
AlexDaniel . 16:27
yoleaux 16:10Z <Zoffix> AlexDaniel: no toaster from me this month. I'm away on vacation.
AlexDaniel okay
Zoffix lizmat: thanks for fixing S24-testing/8-die_on_fail.t ... How come they were passing before? Don't they run as part of `make [spec|streee]test`? 16:28
Skarsnik_ Zoffix, how much space I would need? 16:29
jnthn fwiw, my current ponderings on ThreadPoolScheduler changes: gist.github.com/jnthn/398d84b088d6...a5bfe89497
Zoffix I don't remember. 10GB maybe more
Skarsnik_ hm
jnthn Started exploring this in code a bit too
Skarsnik_ I don't have that, damn
jnthn But hometime now :) 16:30
timotimo jnthn: "unlikely to lead to more process" -> "progress"?
jnthn yeah 16:31
I ain't fixing typos though, it's just my scribbles
Zoffix Skarsnik_: sign up for google compute engine. They give $300 credit.
timotimo no prob :)
Zoffix Skarsnik_: or run a debian in a VirtualBox
AlexDaniel Skarsnik_: fwiw if it takes 10 hours instead of 40 minutes it's ok too, as long as we get some result 16:33
jnthn bbl
AlexDaniel jnthn++ # RT queue
Skarsnik_: but google compute engine is probably a worthy suggestion 16:36
Skarsnik_ 1$ hourly for something crazy if I read this right? 16:39
AlexDaniel but 300$ free 16:40
Skarsnik_ cloud.google.com/compute/pricing?hl=fr
Skarsnik if I understand correctly I can have 300h or like a 8-16 core + 8-16Gb memory? x)
Zoffix .tell lizmat fixes to S24-testing/8-die_on_fail.t look good. The only thing I don't get is why they were passing before or what do you mean by "core returns the wrong exit codes". perl6 -e 'exit 255'; echo $? gives me 255. Some glitch in is_run() routine?
yoleaux Zoffix: I'll pass your message to lizmat.
Zoffix Skarsnik: use the "pre-emptive" option. They shut it off once in a while, but it's a lot cheaper. 16:41
Skarsnik: that page just lists the free stuff. When you sign up to GCE you get a $300 credit 16:42
Skarsnik I will look at that after my movie ^^ 16:43
AlexDaniel Skarsnik: thank you very much, that'd help a lot
Zoffix lizmat++ # good weekly 16:44
AlexDaniel Skarsnik: feel free to ping me if there are any issues with this, I'm very interested in toaster results before the release
Zoffix Man. Lots of catching up after just ~5 days. I originally planned not to come back until I finished both C Programming: Modern Approach and The GC Handbook :)
Skarsnik random bad though for next releases: pick 10 bugs in rt at random and make them blockers? 16:46
Geth 6.d-prep: 330ffdeccb | (Zoffix Znet)++ (committed using GitHub Web editor) | TODO/README.md
List `use experimental` stuff in TODO
Zoffix [Coke]: RE: experimental. Yeah, making things that are solid non-experimental in 6.d sounds like a plan. RE: clean up and review of roast; I plan to get on that in a few weeks, when I get back; same with the making doc site support language versions. 16:47
lizmat++ pushing for earlier 6.d release :) 16:48
Skarsnik: that sounds pretty bad :)
Skarsnik I remember playing around having way to put multi language in pod for perl 5 16:49
like you repeat your = instruction with a =inst-i10n
Zoffix goes back into isolation for another week
\o
Skarsnik good vacation ^^ 16:50
AlexDaniel Zoffix: have fun
gfldex m: sub s($a, :$b){ constant @a = &?ROUTINE.signature; dd @a }; s(1, :1b); 18:15
camelia (:(),)
gfldex what is &?ROUTINE pointing at at compile time?
ugexe yeah, thats what the ? means 18:16
gfldex m: sub s($a, :$b){ my @a = &?ROUTINE.signature; dd @a }; s(1, :1b);
camelia Array @a = [:($a, :$b)]
gfldex m: sub s($a, :$b){ my @a = &?ROUTINE.signature; dd @a }; s(1);
camelia Array @a = [:($a, :$b)]
gfldex m: sub s($a, :$b){ my @a = &?ROUTINE.signature; dd @a }; s();
camelia 5===SORRY!5=== Error while compiling <tmp>
Calling s() will never work with declared signature ($a, :$b)
at <tmp>:1
------> 3{ my @a = &?ROUTINE.signature; dd @a }; 7⏏5s();
gfldex if it's meaningless at compile time, it should complain 18:18
jnthn It's pointing at the Routine, but I think the signature object is attached at the closing } at present 19:09
Geth roast: 0948c61db2 | usev6++ | S17-supply/Channel.t
[jvm] Unskip passing test RT #127947
19:13
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=127947
[Coke] yay, so much java. 21:23
samcv m: "\c[arabic number sign]a".uc.say 21:45
camelia ؀A
samcv m: say "\c[arabic number sign]a" ~~ /:m a/
camelia 「؀a」
Geth roast: aa2ea1a76a | (Samantha McVey)++ | S05-modifier/ignoremark.t
Add ignoremark regex tests for when there are Prepend cp's

Test to make sure that we match the correct base codepoint when we have Prepend characters. If we have all Prepend and no base or Prepend
  + Extend only, then match the first codepoint instead.
21:46
roast: 00554ccbd9 | (Samantha McVey)++ | S15-nfg/case-change.t
Add tests for case changes when we have Prepend codepoints
roast: 6a4bc5450b | (Samantha McVey)++ | S15-unicode-information/uniname.t
Test that hangul syllables return the correct Unicode name

These are not listed directly in the Unicode data files and are pregenerated during Unicode database creation on MoarVM.
gfldex m: loop { react { last if $++ > 3 } }; say 'done'; 21:52
should that ^^^ work?
camelia (timeout)
yoleaux Zoffix: Do stuff with tutorials: www.reddit.com/r/perl/comments/6qv...6/dl0r510/ 21:56
b2gills m: my $a = 0; loop { last if ++$a > 20; react { say $++, ':', $a } }; say 'done'; 22:07
camelia 0:1
0:2
0:3
0:4
0:5
0:6
0:7
0:8
0:9
0:10
0:11
0:12
0:13
0:14
0:15
0:16
0:17
0:18
0:19
0:20
done
b2gills gfldex: the `$++` is bound to the `react` block. so it gets a new one for each time through the loop 22:08
m: my $a = 0; loop { last if ++$a > 20; react say $++, ':', $a }; say 'done';
camelia 0:1
1:2
2:3
3:4
4:5
5:6
6:7
7:8
8:9
9:10
10:11
11:12
12:13
13:14
14:15
15:16
16:17
17:18
18:19
19:20
done
timotimo aye, the inner block gets closure-cloned each time around the loop, and that gives you new state values 22:09
Geth rakudo/nom: ec18efa056 | (Elizabeth Mattijsen)++ | src/core/List.pm
Any.collate will also handle List.collate
22:16
gfldex i got reading from a fifo working now. It's a big longer then in Perl 5: gist.github.com/gfldex/7eae7537df6...a91f545a22 22:48
$fifo-in.lines doesn't block like while <$fifo> does in Perl 5 22:49
m: loop { react { last if True } }; say 'done'; 22:59
camelia (timeout)
gfldex m: last; say 'done';
camelia ===SORRY!===
last without loop construct
AlexDaniel gah 23:00
mch: last; say 'done'; 23:01
committable6 AlexDaniel, ¦2015.12: «last without loop construct␤ in block <unit> at /tmp/EdcwTyuDFN line 1␤ «exit code = 1»» ¦HEAD(ec18efa): «===SORRY!===␤last without loop construct «exit code = 1»»
AlexDaniel how did we lose the line number there?
c: releases last; say 'done';
committable6 AlexDaniel, gist.github.com/9b726ffb56ddbd9c2e...485c0a647e
AlexDaniel bisect: old=2016.05 last; say 'done';
bisectable6 AlexDaniel, Bisecting by output (old=2016.05 new=ec18efa) because on both starting points the exit code is 1
AlexDaniel what the
gfldex jnthn: should last and react mix? 23:02
Geth roast: skids++ created pull request #313:
Add tests for RT#126332
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=126332
Geth roast: cd4b226082 | skids++ | 2 files
Add tests for RT#126332
roast: b2142be764 | skids++ (committed using GitHub Web editor) | 2 files
Merge pull request #313 from skids/rt126332

Add tests for RT#126332
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=126332
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=126332
AlexDaniel bisect: old=2016.05 last; say 'done'; 23:03
bisectable6 AlexDaniel, Bisecting by output (old=2016.05 new=ec18efa) because on both starting points the exit code is 1
AlexDaniel, bisect log: gist.github.com/51cd499fbe0e5a8a1b...9c1237143a
AlexDaniel, There are 10 candidates for the first “new” revision. See the log for more details
AlexDaniel gfldex: I can't find a ticket for “last without loop construct”, can you make one? 23:04
gfldex RT doesn't like my e-mails anymore 23:05
AlexDaniel m: next; say 'done';
camelia ===SORRY!===
next without loop construct
AlexDaniel gfldex: that's too bad. What about creating them on the website?
timotimo gfldex: i think last should only work inside a whenever
the react block's body is only run once for setup
skids Oh hey, did someone do something to get spectest runs to actually parallize? Up to now the S17 tests always ran first for me.
AlexDaniel gfldex: rt.perl.org/m/ticket/create?Queue=16 if you're logged in
gfldex timotimo: it doesn't work inside a whatever either 23:06
whenever even
AlexDaniel skids: it has been possible to parallelize it for a long time, now it simply defaults to 6
skids Ah.
AlexDaniel skids: TEST_JOBS=8 make spectest
(does it default to 6 or 4? Don't remember) 23:07
(I guess 4)
ugexe last inside a supply yes, inside a react though? isn't that just .done? 23:08
i guess its not quite the same thing 23:09
skids
gfldex it does what last does for a react block. If a loop is enclosing that the last would have to do done and then the last.
ugexe seems like it might work with labels though 23:13
m: FOO: while 1 { react { last FOO } LAST { say 42 } }
camelia 5===SORRY!5=== Error while compiling <tmp>
Strange text after block (missing semicolon or comma?)
at <tmp>:1
------> 3FOO: while 1 { react { last FOO }7⏏5 LAST { say 42 } }
expecting any of:
infix
infix stopper…
ugexe m: FOO: while 1 { react { last FOO }; LAST { say 42 } } 23:14
camelia 42
gfldex m: react { whenever Supply.from-list(<a b c>) { last if /b/ }; }; LAST { say 42 } 23:20
camelia (timeout)
gfldex m: FOO: while 1 { react { whenever Supply.from-list(<a b c>) { last FOO if /b/ }; }; LAST { say 42 } }
camelia 42
gfldex react doesn't react as expected to last :) 23:21
ugexe m: react { say 1; last; say 2 }; 23:23
camelia (timeout)1
ugexe m: react { say 1; next; say 2; };
camelia 1
timotimo okay that's strange 23:25
gfldex react seams to catch nqp::const::CONTROL_LAST where it shouldn't 23:27
ugexe it does handle control stuff differently than one might be used to 23:29
m: while 1 { sub foo { react { whenever start { 1 } { return 1; } } }; foo() } 23:30
camelia MoarVM panic: Internal error: Unwound entire stack and missed handler
b2gills `react` is an alternative to `supply`, and `supply` does have a reason to handle `last` 23:52
m: (supply { emit 0; last if True; emit 1 }).act: *.say; sleep 1
camelia 0
timotimo oh, huh. 23:53
that's fair
gfldex so it's just a trap, not a bug.
AlexDaniel
.oO( “did you mean “done”?” )
b2gills The `last` control exception may happen deep down in code you don't have control of. 23:55