dalek | kudo/nom: 9b7c614 | TimToady++ | src/Perl6/Actions.nqp: mark method body as wanted |
05:42 | |
kudo/nom: 90029ee | TimToady++ | src/core/Supply.pm: --> Nil return on Supply.emit/done/quit This works around a buglet that causes a final loop not to. |
|||
kudo/nom: cc212ce | lizmat++ | src/core/Array.pm: Bandaid fix for RT #128736 Array.splice needs to be overhauled anyway, but it looks like I won't be able to do that the coming days, so a quick fix seems in order in the mean time. |
08:20 | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128736 | ||
kudo/nom: 7f96239 | lizmat++ | src/ (2 files): Put definition of Signature.returns in bootstrap So that we can assign --> Nil to subs/methods in the setting before we actually compile Signature.pm |
10:40 | ||
kudo/nom: e87752a | lizmat++ | src/core/control.pm: Mark many builtins as --> Nil Because now we can |
11:07 | ||
gfldex | that may be the shortest segfault we ever had :) | 11:11 | |
m: multi cross() {}; | |||
camelia | rakudo-moar e87752: OUTPUT«(signal SEGV)» | ||
lizmat | yup, confirmed here as well | 11:15 | |
nine | bisect: multi cross() {}; | 11:18 | |
yoleaux2 | 27 Jul 2016 19:10Z <[Coke]> nine: tagged a [PRECOMP] related bug, RT #128548 | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128548 | ||
bisectable | nine: On both starting points the exit code is 0 and the output is identical as well | ||
nine: Output on both points: | |||
dalek | kudo/nom: acaca18 | lizmat++ | src/core/control.pm: Streamline CLONE-HASH-DECONTAINERIZED |
11:26 | |
nine | [Coke]: thanks! That's one ticket we should be able to get rid of by simply re-testing :) | 11:27 | |
jnthn | Hm, that multi cross thing looks familiar | 11:30 | |
As in, maybe already RT'd | |||
dalek | kudo/nom: 998a1ef | lizmat++ | src/core/List.pm: Fix segfault on "multi cross{}" The builtin sub cross is an alias for infix X. But we were assigning instead of binding, so the aliasing was not complete. This apparently caused a segfault whenever someone wanted to have their own "cross". |
||
lizmat | well, that would be two tickets to mark as resolved then :-) | 11:31 | |
gfldex | that was mighty fast! | 11:38 | |
jnthn | Hm, but that means there's still something down at the VM level that explodes | 11:39 | |
Which is less than great | |||
lizmat | jnthn: well, the explosion is easily reproduced: remove one colon, recompile, fireworks! | 11:41 | |
jnthn | Indeed | 11:42 | |
A MoarVM github issue would be nice if you've a moment | 11:43 | ||
(Bit tied up with $other-job here...) | |||
lizmat | sure, will do | ||
jnthn: github.com/MoarVM/MoarVM/issues/387 | 11:46 | ||
dalek | kudo/nom: aa5e494 | lizmat++ | src/core/Distribution.pm: Mark some more BUILD's as --> Nil |
11:48 | |
lizmat | afk for a bit | ||
afk for a bit longer& | 12:09 | ||
[TuxCM] | This is Rakudo version 2016.07.1-79-gaa5e494 built on MoarVM version 2016.07-4-g236058a | 12:52 | |
test 15.013 | |||
test-t 8.108 | |||
csv-parser 16.432 | |||
jnthn | And no test failures? :) | 12:54 | |
[Coke] | RT: 1325; @LARRY: 10; CONC: 11; GLR: 6; JVM: 66; LHF: 1; LTA: 94; NEW: 852; NYI: 53; OSX: 6; PERF: 18; POD: 17; PRECOMP: 9; RFC: 24; SEGV: 29; STAR: 4; TESTNEEDED: 12; TODO: 9; UNI: 26; UNTAGGED: 577; WEIRD: 3 | 13:27 | |
travis-ci | Rakudo build errored. Elizabeth Mattijsen 'Fix segfault on "multi cross{}" | 13:37 | |
travis-ci.org/rakudo/rakudo/builds/148008634 github.com/rakudo/rakudo/compare/a...8a1ef168ef | |||
[TuxCM] | jnthn, indeed, all pass | 13:41 | |
[Coke] | should jvm backend failures be fatal? | ||
travis doesn't like slow jvm build: | |||
No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself. | |||
we need to up the timeout there. | |||
psch | stage parse shouldn't take more than 2 or so minutes | 13:43 | |
on jvm | |||
so if it takes 10+ minutes something else is weird | |||
oh well | 13:44 | ||
that's numbers on hack of course... | |||
i'll look at the travis history to make actual useful statements... :) | |||
the other builds is around 3 minutes stage parse | |||
nqp master that is | 13:45 | ||
--gen-nqp got stuck | |||
gfldex | the build scripts for debian got a 150min timeout. Since arm builds of rakudo take more then 2 hours, it wont propagate to testing automatically. | 13:51 | |
nine | Seems to happen occasionally that the jvm build just gets stuck on travis | 14:04 | |
TimToady | I would still like to understand why my 'want method body' patch forces us to put --> Nil on certain Supply methods like emit | 14:30 | |
they shouldn't really need that to work right | 14:31 | ||
it's likely to bite us elsewhere if we don't fix the underlying issue | |||
it seems as though the loop isn't running if it's in the final statement position, but I can't reproduce the problem in user code | 14:32 | ||
so possibly it only needs the Nil in the setting for some reason | |||
I mean, loop is one of those things that we force to run anyway at statementlist level, but maybe something in the setting doesn't enforce that soon enough somehow | 14:34 | ||
I suppose we can just wait and see if the issue pops up again somewhere outside the setting | |||
if not, it's likely a circularity issue | 14:35 | ||
jnthn | TimToady: I have vague recollection of an RT along those lines | 14:36 | |
TimToady | at one point, I just disabled the 'want' if $*COMPILING_CORE_SETTING, but that bugs me, since it did, in fact, find a bug in the setting | ||
jnthn: yeah, I have the same vague feeling | |||
jnthn | TimToady: rt.perl.org/Ticket/Display.html?id=128596 | 14:37 | |
TimToady | maybe I should work on that one then | 14:38 | |
jnthn | :) | ||
TimToady | unfortunately, I have to go try to rescue a computer I "upgraded" from Windows 7 to Windows 10 yesterday, and which now doesn't successfully login :( | 14:40 | |
well, it's actually probably Sony's fault | |||
jnthn is still on 7 an probably won't upgrade... | 14:42 | ||
*and | |||
More likely to side-grade :) | |||
timotimo | to Mac OSX? :) | 14:43 | |
jnthn | That's a candidate... :) | 14:45 | |
Or maybe it is the year of the Linux desktop already... | |||
timotimo | run android on a desktop computer! | ||
tadzik | genius.tiff | 14:46 | |
timotimo | it's the way of the industry: run mobile phone operating systems on desktop computers | ||
tadzik | one good thing about windows 10 is that ubuntu userland integration | ||
timotimo | windows 10 is basically "Windows Phone, Desktop Edition", mac OSX is basically "iOS Desktop Edition" | ||
tadzik | it actually works quite well! | ||
one bad thing is taking 40 minutes to unconditionally update when you arrive at your client's site | |||
jnthn | I'm doing pretty much all my development in my Linux VM these days. | 14:47 | |
timotimo | why not bring a DVD chock-full of updates with you? | ||
mst | jnthn: oh, good, that's going to make a bunch of my explanations much shorter in future | ||
TimToady | a lot of computers don't have a DVD drive anymore | ||
timotimo | ah | ||
on top of that, normal USB keys are already bigger than DVDs are anyway | 14:48 | ||
mst | right, yeah, I remember maybe four years ago my girlfriend coming home with a DVD she's borrowed from a frined for us to watch | ||
and me going "but what do we even have that will play it?" | |||
and she pointed out that there was a slot in the side of the 27" iMac I use as a TV that I'd forgotten existed ;) | |||
timotimo | neat | ||
my parents use a playstation 4 for DVD playback as well as on-demand streams and such | 14:49 | ||
mst | actually, I did spend a summer doing a bunch of my development on android | ||
ilmari | the ps4 isa apparently a very good bluray player too | ||
mst | I managed to get perl5 installed, compiled git on-device | ||
the only thing that didn't work was Module::Build | |||
TimToady | we still use our ps3 for blu-ray | ||
we could use more android devs in p6land | 14:51 | ||
or versa vica | |||
mst | after a while I concluded that while I can work from a nexus 7 in a pinch, using it as a primary travelling machine failed the -Ofun test, and went back to thinkpads | 14:56 | |
but I'm glad I tried it | |||
arnsholt <3 git commit --amend | 15:38 | ||
We use our PS4 for some streaming, even though the TV can do it as well | |||
timotimo | the next TV i buy, i'll make extra sure it doesn't have a single "smart" feature | 15:39 | |
arnsholt | It's just that the Android TV app for the Norwegian broadcaster is utterly crap, and the PS4 app is much much better | ||
TimToady | m: sub bar() { repeat while 0 { return; } }; bar(); | ||
camelia | rakudo-moar aa5e49: OUTPUT«Attempt to return outside of any Routine in block <unit> at <tmp> line 1» | ||
arnsholt | I think the PS4 stutters less too, suspect there's just a mite too little computing horsepower in the TV to decompress the highest qualities flawlessly | 15:40 | |
The Netflix app is fine, though | |||
jnthn | TimToady: Looks like that wants the same handling as for loops, which at statement list level always sink | 15:47 | |
(So you should have to put parens around it, or lazy it, or do it, to get that behavior) | |||
TimToady | that's not what worries me | ||
I'm not trying to get the value there | |||
look at the error | 15:48 | ||
jnthn | I did | ||
TimToady | it's in a routine | ||
jnthn | No, that implies that the routine returned something | ||
And that think was sunk and tried to do the return after bar had left | 15:49 | ||
s/left/returned/ | |||
m: sub foo() { for ^10 { return 1 } }; foo | |||
camelia | ( no output ) | ||
TimToady | ah, lazy you mean | ||
jnthn | m: sub foo() { (for ^10 { return 1 }) }; foo | ||
camelia | ( no output ) | ||
jnthn | hmm, I'm surprised that doesn't blow up... | ||
timotimo | m: sub foo() { (for ^10 { return 1 }) }; foo.sink | ||
camelia | ( no output ) | ||
timotimo | :\ | ||
jnthn | m: sub foo() { do (for ^10 { return 1 }) }; foo | ||
camelia | ( no output ) | ||
jnthn | m: sub foo() { lazy (for ^10 { return 1 }) }; foo | ||
camelia | ( no output ) | ||
jnthn | m: sub foo() { lazy (for ^10 { return 1 }) }; say foo | 15:50 | |
camelia | rakudo-moar aa5e49: OUTPUT«1» | ||
jnthn | ummm | ||
Well that's bust too. Pretty sure that's a regression... | |||
bisectable: sub foo() { lazy (for ^10 { return 1 }) }; say foo | |||
bisectable | jnthn: On both starting points the exit code is 0 and the output is identical as well | ||
jnthn: Output on both points: 1 | |||
jnthn | o.O | ||
m: sub foo() { lazy for ^10 { return 1 } }; say foo | |||
camelia | rakudo-moar aa5e49: OUTPUT«1» | ||
jnthn | bisectable: sub foo() { lazy for ^10 { return 1 } }; say foo | 15:51 | |
bisectable | jnthn: On both starting points the exit code is 0 and the output is identical as well | ||
jnthn: Output on both points: 1 | |||
jnthn | I'm sure that once worked lazily? | ||
And so would give an error? | |||
Did it change sometime late last year in the WANTED work? | |||
TimToady | not that I know of | ||
m: sub foo() { do for ^10 { return 1 } }; foo | 15:52 | ||
camelia | ( no output ) | ||
jnthn | m: my \a = lazy for ^10 { say $_ }; | ||
camelia | rakudo-moar aa5e49: OUTPUT«0123456789» | ||
jnthn | m: my \a = lazy for ^10 { say $_ }; say a.WHAT | ||
camelia | rakudo-moar aa5e49: OUTPUT«0123456789(Seq)» | ||
jnthn | m: my \a = lazy for ^10 { say $_ }; say a | ||
camelia | rakudo-moar aa5e49: OUTPUT«0123456789(...)» | ||
jnthn | m: my \a = lazy for ^10 { say $_ }; say a.eager | 15:53 | |
camelia | rakudo-moar aa5e49: OUTPUT«0123456789(True True True True True True True True True True)» | ||
jnthn | That's less than lazy... | ||
m: my \a = lazy for ^10 { say $_ }; say a.head | |||
camelia | rakudo-moar aa5e49: OUTPUT«0123456789(True)» | ||
TimToady | m: my \a = lazy for 0 ... 9 { say $_ }; say a | ||
camelia | rakudo-moar aa5e49: OUTPUT«0123456789(...)» | ||
TimToady | m: my \a = lazy for 0 ... 9 { say $_ }; say a[3] | 15:54 | |
camelia | rakudo-moar aa5e49: OUTPUT«0123456789True» | ||
jnthn | Yeah, I wondered if the range optimization was busting it too, but seems not | ||
Anyway, I'm fairly sure at some point in the past it did work lazily. So... :S | |||
TimToady | m: my \a = lazy for 0 ... 9 { .say; $_ }; say a[3] | ||
camelia | rakudo-moar aa5e49: OUTPUT«01234567893» | ||
TimToady | m: my \a = lazy for 0 ... 900000000000 { .say; $_ }; say a[3] | ||
not very lazy | 15:55 | ||
camelia | rakudo-moar aa5e49: OUTPUT«(timeout)0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051…» | ||
TimToady | m: my \a = lazy for 0 ... 900000000000 { $_ }; say a[3] | ||
camelia | rakudo-moar aa5e49: OUTPUT«(timeout)» | ||
TimToady | don't we have tests for laziness? | 15:57 | |
m: my \a = lazy for 0 ... * { $_ }; say a[3] | |||
stmuk | maybe the absence of tests shows the laziness? | ||
camelia | rakudo-moar aa5e49: OUTPUT«(timeout)» | 15:58 | |
TimToady | m: my \a = do for 0 ... * { $_ }; say a[3] | ||
camelia | rakudo-moar aa5e49: OUTPUT«(timeout)» | ||
TimToady | something seems to be sinking the for outside of statementlist | 15:59 | |
it could be my fault somehow, I suppose | |||
jnthn | I'm surprised we don't have tests for that | ||
I'm pretty sure I remember implementing the "for is never lazy at statementlist level" logic | 16:00 | ||
TimToady | yes, but this is the flip side of that | ||
jnthn | I'm a bit disappointed I seem not to have done tests for the lazy case. :S | ||
Yeah, but I remember carefully checking that I didn't bust the non-statementlist case | |||
This all was pre-GLR, fwiw | |||
So it's entirely possible tests got lost/mangled in that. | 16:01 | ||
TimToady | also, we don't guarantee strict laziness, so it's possible that batchiness interferes with testing that | ||
m: my \a = gather for 0 ... * { take $_ }; say a[3] | 16:02 | ||
camelia | rakudo-moar aa5e49: OUTPUT«3» | ||
TimToady | gather/take is pretty strict though | ||
jnthn | True, but I don't think we batch anywhere until a List is involved | 16:03 | |
Or we sink all | |||
Or do some other kind of iteration that demands many things at once, like in hyper/race | |||
AlexDaniel | committable: releases multi cross() {}; | 18:03 | |
committable | AlexDaniel: ¦«2015.10,2015.11,2015.12,2016.02,2016.03,2016.04,2016.05,2016.06,2016.07»: «exit signal = SEGV (11)»|«HEAD»: | ||
AlexDaniel | bisectable: multi cross() {}; | ||
bisectable | AlexDaniel: On both starting points the exit code is 0 and the output is identical as well | ||
AlexDaniel: Output on both points: | |||
AlexDaniel | MasterDuke: I wonder why bisectable does not catch segfaults ↑ | 18:04 | |
TimToady thinks he has been seeing more superstitious semicolons after {} lately... | 18:05 | ||
AlexDaniel | MasterDuke: right, because signals are handled by each bot separately… | 18:07 | |
dalek | kudo/better-O: 56dcf56 | arnsholt++ | src/Perl6/Grammar.nqp: Update grammar to use changed HLL::Grammar.O from NQP. |
19:40 | |
arnsholt | The hardest part of that? Remembering that map on Perl 6 objects is lazy >.< | 19:41 |