[Tux] This is Rakudo version 2016.12-395-gdd911efeb built on MoarVM version 2016.12-115-ged2df9ac 07:24
csv-ip5xs 2.948
test 12.249
test-t 4.960
csv-parser 13.294
Geth p: cf29a264ea | TimToady++ | 2 files
unbreak builds on jvm, js

Turns out the first approach won't work on jvm because of fatename[0] isn't initialized to 0 in the bootstrap. So we'll use NFA attributes, and process fate offsets in a manner that should work without the need to patch each vm.
  (For now, though, the new mechanism is enabled only for proto, not alt.)
09:15
timotimo huggable: release 09:16
huggable timotimo, nothing found
timotimo which one is the release bot again ...
buggable: release 09:17
buggable: status
i hope "release" isn't the magic word to cut the release automatically
buggable: help
buggable timotimo, tags | tag SOMETAG | eco | eco Some search term | speed
timotimo nope, not the right bot
huggable: help
huggable timotimo, nothing found
timotimo i should probably wait until my brain is warmedup 09:18
TimToady well, crumbles, that unbreaks nqp, but rakudo is still bust on jvm 09:30
if I can't figure it out tomorrow, I'll just revert the whole thing for till after release
thunk & 09:31
timotimo NeuralAnomaly: status
NeuralAnomaly timotimo, [✘] Next release is today. Since last release, there are 92 new still-open tickets (3 unreviewed and 0 blockers) and 18 unreviewed commits. See perl6.fail/release/stats for details
timotimo i wonder if we should mark all our bots with +v 09:33
lizmat Files=1162, Tests=56141, 189 wallclock secs (11.27 usr 4.24 sys + 1145.33 cusr 103.89 csys = 1264.73 CPU) 09:40
Geth kudo/nom: 7c81becffb | (Elizabeth Mattijsen)++ | src/core/Nil.pm
Make sure Nil.chomp/chop just warn like before

Spotted by AlexDaniel++
10:04
kudo/nom: 66b2fc2c3c | (Elizabeth Mattijsen)++ | src/core/Buf.pm
Fix for RT #130599

FWIW, I think the old behaviour *is* correct.
10:48
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130599
Geth kudo/nom: f97d5c2aaf | (Timo Paulssen)++ | src/core/Supply.pm
implement "next" in whenever blocks
11:01
lizmat timotimo jnthn : one can only wonder what "redo" would / should do 11:11
timotimo i think i can implement redo, too.
jnthn redo would just call the block again with the same value BUT...
timotimo like, whenever already taps the supply and runs the code block with it
BUT :D 11:12
it will also invoke the BUT phaser
jnthn ...need to be really careful that we do it immediately
And not queue it
Otherwise we'll have a race where we get other values being handled before the redo of the current one :)
timotimo right. i expect run-supply-code is something that queues something
jnthn Right.
lizmat I was reminded of the grep issues / repeated redo a little while ago :-)
jnthn So we need to not call that again :)
timotimo i can handle that, i believe 11:13
would be a little bit harder to write reliable tests, though :)
jnthn Yeah. Again, tests will be good :)
timotimo as in, tests that'll asplode when the race exists
jnthn You actually can, I believe
timotimo is there a clever way to turn that into a hare-and-tortoise situation?
not in the sense of the fable where the tortoise outsmarts the hare to win the race
but to have one participant be very fast and one be very slow? 11:14
jnthn Yeah, if you use a semaphore or something and block on it inside of the whenever (don't do this in real code ;))
Then on the outside you feed another value into the thing being whenever'd over
And then increment the semaphore
timotimo :D
jnthn Then have the whenever do the redo after
Then you'll create such a situation :) 11:15
timotimo i'll try to implement that
currently wondering how best to implement the redo-will-re-invoke thing
jnthn Not sure, off hand
timotimo i'd like to not have a loop around the initial invocation 11:16
so i'll put that into the REDO handler instead
i'd like to use a resume, but i think i'll have to rethrow to make that sane
i think i have it sketched out in my brain now
but i'll put it into a PR instead of committing it directly to nom 11:33
jnthn +1
timotimo among other things because i used loop { } rather than a nqp::while-like, because i'm not sure how exactly to leave easily except with "last" 11:35
oh, i haven't actually implemented last properly yet :) 11:38
i'm not sure how to actually reach the $tap in question when the LAST handler fires here 11:41
it actually looks like i just need to copy the contents of the done callback that's already in the .tap call 12:00
Geth kudo/whenever_last_redo: 0a0508d6a5 | (Timo Paulssen)++ | src/core/Supply.pm
allow whenever blocks to use `redo`
12:02
kudo/whenever_last_redo: e0d98e65be | (Timo Paulssen)++ | src/core/Supply.pm
allow `last` to be used inside whenever blocks
kudo: timo++ created pull request #998:
Implement `last` and `redo` for whenever blocks
12:05
timotimo oh wow i syntax errored 12:12
turns out you need to declare variables before you use them 12:14
lizmat wow, what novelty! :-) 12:15
Geth kudo/whenever_last_redo: cb7dcee11a | (Timo Paulssen)++ | src/core/Supply.pm
fix syntax error in impl of `last` in whenever.
12:16
timotimo i'd be glad if tests could be written while i'm AFK, but i'll do them afterwards if need be 12:29
brokenchicken .tell TimToady FWIW, I think rakudo-j was busted even before the fate thing 12:44
yoleaux2 brokenchicken: I'll pass your message to TimToady.
brokenchicken timotimo: the release command can't be run by regular users. 12:45
timotimo that's good
so the release is tomorrow, yeah?
brokenchicken yeah
timotimo good to know 12:46
brokenchicken FWIW, I'd find "next" nore useful in whenever than "redo" 12:59
I dunno if it makes sense; basically a way to `return` from a whenever block.
I commonly write `return unless blah blah` early on and that saves an indent level, but you can't return from a block and you can't give whenever a sub either 13:00
jnthn next is certainly the more useful of them in a whenever :) 13:01
timotimo i don't understand what you mean by "i'd find" ... next is already in there, after all.
it's just redo and last that are behind a PR
brokenchicken Ah. Cool.
I just went by branch name :)
timotimo the branchname is "last, redo" :D
brokenchicken Oh... next is already implemented you mean? :o 13:02
heh
m: react whenever Supply.interval(1) { next unless .is-prime; .say; done if $++ > 3 } 13:03
camelia rakudo-moar f97d5c: OUTPUT«2␤3␤5␤7␤11␤»
brokenchicken well, I'll be damned
timotimo that's what i meant by "is already in there", but i should probably have said "in rakudo" rather than "in there" 13:04
pmurias TimToady: if the js backend needs to be patch to make some NFA optimalization work I don't mind doing that ;) 13:27
timotimo will still take another bit until that optimization can actually give us anything
stmuk_ "We have a Wall! and we gonna make the implementers pay for it!" 15:33
Geth p: f058ef2574 | TimToady++ | 2 files
Revert "unbreak builds on jvm, js"

This reverts commit cf29a264eaf5b13e7385155712953f271a531e78. Need to make this work cross-platform after release.
16:18
p: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...8-gd7e286b
742175f9b4 | TimToady++ | src/QRegex/Cursor.nqp

This reverts commit 994d2159fc151d38239e214ce2c9874340abe3b9. Try again after release.
p: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...8-gd7e286b
6369ac7589 | TimToady++ | tools/build/MOAR_REVISION
nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...8-gd7e286b
brokenchicken TimToady: for `eqv` op, are NaN eqv NaN and are -0e0 eqv 0e0 or are those meant to be False? 16:28
perlpilot I would think NaN eqv NaN is True, but the other False. 16:30
brokenchicken errr.. Yeah. NaN eqv NaN => True; -0e0 eqv 0e0 => False 16:31
basically s/==/===/ here: github.com/rakudo/rakudo/blob/f97d...ric.pm#L34
TimToady I would agree; eqv is not math, for which we have ==, but basically is about "would these serialize to the same thing"
yoleaux2 12:44Z <brokenchicken> TimToady: FWIW, I think rakudo-j was busted even before the fate thing
brokenchicken Cool. Will fix it shortly. 16:32
Geth ast: bbdbb01587 | (Zoffix Znet)++ | S02-types/num.t
Fix incorrect test

Tests were added as part of coverage work and are not part of 6.c-errata
The current version passes only because `eqv` fails to distinguish signed zeros.
16:51
kudo/nonblocking-await: a5b2d19a77 | (Jonathan Worthington)++ | 10 files
Start sketching out new `await` implementation.

This does not yet support non-blocking `await`, but the factoring is designed to enable it to be put in place. For now, only Promise has been updated to support `await` under the new factoring, and only a single result may be `await`ed.
jdv79 check this beauty out: gist.github.com/anonymous/eff04b8d...fff22b1c08 17:29
brokenchicken m: /<[ ]>/ 17:32
camelia ( no output )
brokenchicken m: '' ~~ /<[ ]>/
camelia ( no output )
brokenchicken m: 'x' ~~ /<[ ]>/
camelia ( no output )
brokenchicken :(
m: say " " ~~ m:s/<-[ ]>/ 17:33
camelia rakudo-moar f97d5c: OUTPUT«===SORRY!===␤Iteration past end of iterator␤»
brokenchicken m: /<-[ ]>/
camelia rakudo-moar f97d5c: OUTPUT«===SORRY!===␤Iteration past end of iterator␤»
jdv79 impressive skills 17:34
is that a normal "error"? 17:38
brokenchicken Nope :) Just an unfixed bug 17:40
jdv79 o 17:41
brokenchicken rt.perl.org/Ticket/Display.html?id...et-history 17:43
Might also be mentioned in some other ticket
jdv79 thanks 17:46
Geth kudo/nom: 3f80e133ce | (Zoffix Znet)++ | src/core/Numeric.pm
Make eqv work right on NaN and signed num zeros

eqv should return[^1] True when each side is a NaN and False when zeros of different signs are compared. Currently, the logic always uses `==` op, which makes it fail for those cases.
Fix by using `===` for Nums and `==` for rest of cases. We can't use ... (5 more lines)
18:01
ast: f06d534d2f | (Zoffix Znet)++ | 2 files
Test infix:<eqv> handles NaNs and signed zeros correctly

Bug find: irclog.perlgeek.de/perl6/2017-01-20#i_13959538 Rakudo fix: github.com/rakudo/rakudo/commit/3f80e133ce
18:02
bartolin brokenchicken: last night (on commit dd911efeb9) rakudo-j compiled and after 'make install' spectest was mostly clean. the build is broken on HEAD 19:27
brokenchicken ah, ok 19:28
bartolin . o O ( at least on my machine ) 19:30
brokenchicken will likely cut the release tonight 20:05
seeins as MoarVM got shipped already
bartolin rakudo-j is unhappy with 66b2fc2c3c 20:07
brokenchicken what's the error? 20:08
bartolin some explosion in stage jast, don't have the details atm 20:09
will gist it in a moment^H^H^H some minutes
gist.github.com/usev6/a3aa19f605e9...ce24622d66 20:12
I don't know why r-j explodes like that. If I add a 'CATCH { default { Nil } }; within the try the build passes: github.com/rakudo/rakudo/blob/3f80...Buf.pm#L15 20:58
bartolin is tired and goes to bed 20:59
o/
brokenchicken \o
jdv79 so if i have a perl6 module that requires some perl5 libs will we be able to depend on them? 21:49
as in mention them in META6 and have zef or whatever reach out to cpanm or whatever to try to fulfill them? 21:50
or would that be handled more like p5's Alien type thing or just not at all.
brokenchicken would be sweet if zef could handle it; considering how much we currently rely on Perl 5 modules and all.... 21:52
jdv79 not sure how to pkg it up and doc it is all 21:54
i guess for now i'll just doc the p5 reqs
Geth kudo/nom: 8ec54bafe4 | (Zoffix Znet)++ | src/core/Order.pm
Fix infix:<cmp> for case of Real + Subclass of Rational

The current code uses .WHAT to indicate to nqp::getattr() where to find the $!denominator attribute, which is provided by Rational role. This works for classes that do the role directly, but not for their subclasses, of which RatStr is one.
Fix by using public accessor instead. This is 15% slower than using nqp to get that attribute, but works.
Fixes RT#130606: rt.perl.org/Ticket/Display.html?id=130606
22:00
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130606
ast: 6bbfcc0eef | (Zoffix Znet)++ | S32-num/rat.t
Test Real cmp RatStr does not crash

RT#130606: rt.perl.org/Ticket/Display.html?id=130606
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130606
brokenchicken .ask lizmat do you know of any nqp magicks to access attributes provided by mixed in roles? My attempt failed for subclasses: github.com/rakudo/rakudo/commit/8ec54bafe4 22:02
yoleaux2 brokenchicken: I'll pass your message to lizmat.
brokenchicken $ grep -FR '$!denominator' src/ | wc -l 22:04
31
something tells me there are more places with similar bug...
ugexe jdv79: i've thought about it only a little bit, but I was thinking they could possible be declared with their full identity in `depends`, such as `"depends" : [ "Inline::Perl5", "Mojolicious:from<Perl5>" ]` but I can see that getting out of control easily 22:19
jdv79 yeah. not a big deal. 22:21
ugexe otherwise you can just add any new field to the META6 that you want, and then use a Build.pm to run `cpanm` on the depends value of that new field
brokenchicken m: class Foo does Rational[Int,Int] {}; class Bar is Foo {}.new: 42, 42 22:24
camelia rakudo-moar 8ec54b: OUTPUT«P6opaque: no such attribute '$!numerator' in type Bar when trying to bind a value␤ in block <unit> at <tmp> line 1␤␤»
perlpilot Having a "perl5-depends" would be nice. 22:26
brokenchicken would rather see a more generalized solution
:from<Python> :) 22:27
perlpilot "python-depends" works too ;)
brokenchicken heh
fair enough
perlpilot maybe "foreign-dependencies" : { "perl5" : [ ... ], "python": [ ... ] } though 22:28
Surely someone will write a Perl 6 program that will depend on all of the Inline:: modules at some point :) 22:29
But then ... is it Python2 or Python3?
brokenchicken wonders if there's a CPAN version for Brainfuck... 22:30
timotimo we should pretend python2 doesn't exist, i think?
brokenchicken ppftt... python! They should've renamed it to something else!
perlpilot heh
pmurias what Python version does Inline::Python support? 22:32
it seems to mention Python 2 in the README :/
* 2.7.12
perlpilot notes no Inline::Javascript yet 22:33
Geth ast: 1f674085e6 | (Timo Paulssen)++ | S17-supply/syntax.t
a simple test for "next" in whenever blocks
22:54