Geth | roast: ddf48cf167 | (Zoffix Znet)++ | S03-operators/bit.t Fudge some more bitshift proptests RT#125466 rt.perl.org/Ticket/Display.html?id=125466 A few were already fudged for the same reason, but our native shift ops were commented out, so we never exercised the ones I'm fudging. Our native-int bitshift ops perform overflow, while Int bitshift ops just keep going without any limit. The current proptests expect native candidates to produce Int values. |
00:12 | |||||||||||||||||||||||||||||||||||||
synopsebot | RT#125466 [open]: rt.perl.org/Ticket/Display.html?id=125466 [MATH][@LARRY] bitwise shift is inconsistent on int | ||||||||||||||||||||||||||||||||||||||
rakudo: 29fdb75a30 | (Zoffix Znet)++ | src/core/Buf.pm6 HLLize items before testing for type in Buf Fixes RT#125466: rt.perl.org/Ticket/Display.html?id=125466 Otherwise, `Buf.new: nqp::bitshift_i(1, 1)` ends up as a BOOTInt, fails the typecheck, and fails creation of the Buf. |
00:14 | ||||||||||||||||||||||||||||||||||||||
rakudo: 3d73597556 | (Zoffix Znet)++ | src/core/Int.pm6 Uncomment native bit shift candidates All the things in RT#125466 [^1] are now fixed[^2], as far as I can tell, so unfudge these routines that were fudged as part of the workaround for that ticket. [1] rt.perl.org/Ticket/Display.html?id=125466 [2] github.com/rakudo/rakudo/commit/29fdb75a30 |
00:16 | ||||||||||||||||||||||||||||||||||||||
jnthn | .tell AlexDaniel zstd 0.5.1, lrzip 0.621 | 00:17 | |||||||||||||||||||||||||||||||||||||
yoleaux | jnthn: I'll pass your message to AlexDaniel. | ||||||||||||||||||||||||||||||||||||||
jnthn | 'night o/ | ||||||||||||||||||||||||||||||||||||||
Geth | roast: 32ac651062 | (Zoffix Znet)++ | S32-container/buf.t Test native int ops with Buf creation RT#128655: rt.perl.org/Ticket/Display.html?id=128655 Rakudo fix: github.com/rakudo/rakudo/commit/29fdb75a30 github.com/rakudo/rakudo/commit/3d73597556 |
00:22 | |||||||||||||||||||||||||||||||||||||
synopsebot | RT#128655 [open]: rt.perl.org/Ticket/Display.html?id=128655 [OPTIMIZER] Mixup in candidates through optimizer | ||||||||||||||||||||||||||||||||||||||
Geth | nqp: 90d9814c68 | (Zoffix Znet)++ | tools/build/MOAR_REVISION [MoarVM Bump] Brings 6 commits MoarVM bump brought: github.com/MoarVM/MoarVM/compare/2...7-g760b091 760b091 Fix for gigantic and wrong spesh time in profiles 6952c69 delete left-over line breaking compilation ffd7522 remove debugging output from profiler runs d7f4387 Enable box_i and box_s templates bfccd35 Bindlex needs a write barrier 9233d85 fix copy-pasto and re-enable bindattr_* optimizations |
00:33 | |||||||||||||||||||||||||||||||||||||
Ā¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...7-g760b091 | |||||||||||||||||||||||||||||||||||||||
rakudo: a5a6c7786b | (Zoffix Znet)++ | tools/build/NQP_REVISION [NQP Bump] Brings 4 commits NQP bump brought: github.com/perl6/nqp/compare/2018....2-g90d9814 90d9814 [MoarVM Bump] Brings 6 commits 41b2f05 remove stray debug output from sql profile output bd2a8ac Note that filenofh doesn't really work on the JVM ef12d28 [JVM] Fix readfh with stdin ... (8 more lines) |
|||||||||||||||||||||||||||||||||||||||
Ā¦ rakudo: version bump brought these changes: github.com/perl6/nqp/compare/2018....2-g90d9814 | |||||||||||||||||||||||||||||||||||||||
travis-ci | NQP build failed. Zoffix Znet '[MoarVM Bump] Brings 6 commits | 00:57 | |||||||||||||||||||||||||||||||||||||
travis-ci.org/perl6/nqp/builds/349090768 github.com/perl6/nqp/compare/41b2f...d9814c68a2 | |||||||||||||||||||||||||||||||||||||||
Rakudo build passed. Zoffix Znet 'HLLize items before testing for type in Buf | 01:14 | ||||||||||||||||||||||||||||||||||||||
travis-ci.org/rakudo/rakudo/builds/349087163 github.com/rakudo/rakudo/compare/b...fdb75a3032 | |||||||||||||||||||||||||||||||||||||||
Rakudo build passed. Zoffix Znet '[NQP Bump] Brings 4 commits | 01:42 | ||||||||||||||||||||||||||||||||||||||
travis-ci.org/rakudo/rakudo/builds/349090787 github.com/rakudo/rakudo/compare/3...a6c7786be5 | 01:43 | ||||||||||||||||||||||||||||||||||||||
Geth | roast: 3972a53881 | usev6++ | S32-list/grep.t [JVM] Skip newly added test |
06:56 | |||||||||||||||||||||||||||||||||||||
samcv | hmm did something change recently? my module is now failing tests as of 10 hours ago by CRON | 07:45 | |||||||||||||||||||||||||||||||||||||
on travis | |||||||||||||||||||||||||||||||||||||||
Type check failed for return value; expected List but got Seq | |||||||||||||||||||||||||||||||||||||||
travis-ci.org/samcv/URL-Find/build...tification | |||||||||||||||||||||||||||||||||||||||
[Tux] |
|
07:48 | |||||||||||||||||||||||||||||||||||||
samcv | cron is set to run every 7 days and it was fine 7 days ago | 07:50 | |||||||||||||||||||||||||||||||||||||
Zoffix | .tell samcv yes, .comb returns a Seq, not a List: github.com/samcv/URL-Find/blob/mas...nd.pm6#L32 It used to return a .Seq for all cases except for .comb(Regex:D), which was recently fixed | 11:25 | |||||||||||||||||||||||||||||||||||||
yoleaux | Zoffix: I'll pass your message to samcv. | ||||||||||||||||||||||||||||||||||||||
samcv | .tell Zoffix thanks. just wanted to make sure it was not a regression | 11:35 | |||||||||||||||||||||||||||||||||||||
yoleaux | 11:25Z <Zoffix> samcv: yes, .comb returns a Seq, not a List: github.com/samcv/URL-Find/blob/mas...nd.pm6#L32 It used to return a .Seq for all cases except for .comb(Regex:D), which was recently fixed | ||||||||||||||||||||||||||||||||||||||
samcv: I'll pass your message to Zoffix. | |||||||||||||||||||||||||||||||||||||||
samcv | i'm going to just call .list on the result so that my function continues to return a List and make sure it works on past and new rakudo | 11:37 | |||||||||||||||||||||||||||||||||||||
Zoffix | samcv: they may as well use .List instead. It's yet unclear whether .list will continue converting a Seq to a List | 11:39 | |||||||||||||||||||||||||||||||||||||
yoleaux | 11:35Z <samcv> Zoffix: thanks. just wanted to make sure it was not a regression | ||||||||||||||||||||||||||||||||||||||
Zoffix | s/they/then/; | ||||||||||||||||||||||||||||||||||||||
samcv | ok thanks | ||||||||||||||||||||||||||||||||||||||
Zoffix | releasable6: status | ||||||||||||||||||||||||||||||||||||||
releasable6 | Zoffix, Next release in 12 days and ā7 hours. Blockers: github.com/rakudo/rakudo/issues?q=...%9A%A0%22. Changelog for this release was not started yet | ||||||||||||||||||||||||||||||||||||||
Zoffix, Details: gist.github.com/bbf041ee51c1be4870...4e30c66ff5 | |||||||||||||||||||||||||||||||||||||||
Zoffix kicks off a toaster run to catch all the other .comb(Regex)s sooner | 11:40 | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | Zoffix++ | ||||||||||||||||||||||||||||||||||||||
samcv | that makes more sense to me, but i'd always seen people using .list and there are other methods maybe that are lowercase. or maybe i'm thinking subs | ||||||||||||||||||||||||||||||||||||||
anyway i am off to bed | |||||||||||||||||||||||||||||||||||||||
Zoffix | could also use a p6lert during release, so those that use p6lert script get notified before upgrading. | ||||||||||||||||||||||||||||||||||||||
samcv: .list would return the Array for Arrays and List for Lists and generally convert to List only non-Positionals, which Seq isn't so it make sense for .list to convert Seq to a List.... However, &list inconsistent in this and doesn't do the same. And trying to fix that has ramifications for slurpries IIRC R#1355 and R#1344 | 11:43 | ||||||||||||||||||||||||||||||||||||||
synopsebot | R#1355 [open]: github.com/rakudo/rakudo/issues/1355 +@a/+a slurpies produce inconsistent results | ||||||||||||||||||||||||||||||||||||||
R#1344 [open]: github.com/rakudo/rakudo/issues/1344 [@LARRY] What is a "list"? | |||||||||||||||||||||||||||||||||||||||
Zoffix | So depending on how those tickets are resolved, there's a chance that Seq.list would return a Seq | ||||||||||||||||||||||||||||||||||||||
jnthn | I'm pretty sure .list should not return a Seq, and I don't think it makes much sense for the sub form to do so, fwiw | 11:44 | |||||||||||||||||||||||||||||||||||||
Zoffix | Agreed | ||||||||||||||||||||||||||||||||||||||
pmurias | github.com/rakudo/rakudo/blob/mast...P.nqp#L631 - if we have something like multi foo(:$a, :$b = $a*2) {} how is the scope of default_value supposed to be set correctly when doing a trial bind? | 11:56 | |||||||||||||||||||||||||||||||||||||
Zoffix: be aware that there is some on purpose incorrect code in the optimizer that treat and int and a constant as 2 ints | 11:59 | ||||||||||||||||||||||||||||||||||||||
(when choosing a multi variants) | |||||||||||||||||||||||||||||||||||||||
jnthn | heh..."on purpose incorrect" | 12:00 | |||||||||||||||||||||||||||||||||||||
(If it didn't do that, `$a + 2` for a native int could never do a native addition, without having to write `$a + my int $ = 2` | 12:01 | ||||||||||||||||||||||||||||||||||||||
Which nobody will (or will want to) write | 12:02 | ||||||||||||||||||||||||||||||||||||||
I'd guess the default value closure is handled like where ones | |||||||||||||||||||||||||||||||||||||||
lizmat | Files=1236, Tests=76246, 315 wallclock secs (14.74 usr 5.30 sys + 2166.03 cusr 212.60 csys = 2398.67 CPU) | 12:03 | |||||||||||||||||||||||||||||||||||||
Zoffix | pmurias: what do you mean? (I mean, why did you address that comment to me?) | ||||||||||||||||||||||||||||||||||||||
pmurias | Zoffix: I saw your question to TimToady | 12:04 | |||||||||||||||||||||||||||||||||||||
jnthn: thanks, where uses p6capturelexwhere I'll try using that with default values too | 12:06 | ||||||||||||||||||||||||||||||||||||||
jnthn | pmurias: Yeah, that's the one. I'm guessing it's not doing that at the moment, and we got away with it on MoarVM 'cus of signature lowering? | 12:08 | |||||||||||||||||||||||||||||||||||||
pmurias | or maybe autoclosing magic | ||||||||||||||||||||||||||||||||||||||
Zoffix: nqp::bitshift_r(..., ...) can't switch to an Int because it's something that always returns native ints | 12:10 | ||||||||||||||||||||||||||||||||||||||
Zoffix | You're taking my question too literally. It doesn't concern implementation of ops, but language behaviour. | 12:21 | |||||||||||||||||||||||||||||||||||||
(for those not seen my yesterdays question: how to resolve inconsistentcy between native int bit shift operators (that overflow) and Int candidates (that keep on trucking), especially given that due to autoboxing it can be hard to predict when you'd get which candidate; with my attempts yesterday erroneously getting the Int candidates with `my int @a = 42; @a[0] +>= -67; or something along those lines) | 12:30 | ||||||||||||||||||||||||||||||||||||||
Geth | roast: bf3f347e11 | (Zoffix Znet)++ | S32-io/io-path.t Spec IO::Path.parent(Int) Rakudo impl: github.com/rakudo/rakudo/commit/7b...dddcfc1190 |
13:22 | |||||||||||||||||||||||||||||||||||||
roast: 1b39fb200c | (Zoffix Znet)++ | S32-io/io-path.t Spec IO::Path.parent(Int) with negative Ints |
13:24 | ||||||||||||||||||||||||||||||||||||||
rakudo/js: 6 commits pushed by pmurias++
|
13:47 | ||||||||||||||||||||||||||||||||||||||
Zoffix | It's a bad sign that after a successful toast of 2018.02, the toast on master doesn't look like it wants to proceed at all :} | 14:18 | |||||||||||||||||||||||||||||||||||||
Apparently just got stuck right after this point: github.com/zoffixznet/perl6-Toaste...er.pm6#L57 | 14:19 | ||||||||||||||||||||||||||||||||||||||
Zoffix tries re-starting it | |||||||||||||||||||||||||||||||||||||||
k, running now | 14:26 | ||||||||||||||||||||||||||||||||||||||
We still have the rakudoCI VM nine++ set up for us. We could shove a continuous toaster there. It might take ages, but I | 14:27 | ||||||||||||||||||||||||||||||||||||||
'll take a couple runs a week over nothing any day | |||||||||||||||||||||||||||||||||||||||
Kaiepi | PufferBot, test | 15:04 | |||||||||||||||||||||||||||||||||||||
PufferBot | [openbsd] Building Rakudo... | ||||||||||||||||||||||||||||||||||||||
[openbsd] Build failed. | 15:05 | ||||||||||||||||||||||||||||||||||||||
Kaiepi | make: don't know how to make src/core/core_prologue.pm (prerequisite of: CORE.setting.moarvm) | ||||||||||||||||||||||||||||||||||||||
Zoffix | heh | ||||||||||||||||||||||||||||||||||||||
Kaiepi | should probably make it print build errors while it still can't build like this | ||||||||||||||||||||||||||||||||||||||
Zoffix | Kaiepi: a missing perl Configure.pl perhaps? That error sounds like it's not picking up recent change that changed .pm to .p6 | ||||||||||||||||||||||||||||||||||||||
*to .pm6 | |||||||||||||||||||||||||||||||||||||||
Kaiepi | ah | 15:06 | |||||||||||||||||||||||||||||||||||||
Zoffix | perl Configure.pl --gen-moar --gen-nqp --backends=moar; or something along those lines | ||||||||||||||||||||||||||||||||||||||
Kaiepi | there we go | 15:14 | |||||||||||||||||||||||||||||||||||||
Zoffix | PufferBot: test | 15:15 | |||||||||||||||||||||||||||||||||||||
PufferBot | [openbsd] Building Rakudo... | ||||||||||||||||||||||||||||||||||||||
[openbsd] Build failed. | |||||||||||||||||||||||||||||||||||||||
Kaiepi | whoops | ||||||||||||||||||||||||||||||||||||||
make: don't know how to make m-clean (prerequisite of: clean) | |||||||||||||||||||||||||||||||||||||||
heh | |||||||||||||||||||||||||||||||||||||||
PufferBot, test | 15:16 | ||||||||||||||||||||||||||||||||||||||
PufferBot | [openbsd] Building Rakudo... | ||||||||||||||||||||||||||||||||||||||
[openbsd] Build failed. | |||||||||||||||||||||||||||||||||||||||
Kaiepi | bah i'll test it in another channel and bring it back once it's working | ||||||||||||||||||||||||||||||||||||||
lizmat | notable6: weekly | 15:52 | |||||||||||||||||||||||||||||||||||||
notable6 | lizmat, 1 note: 2018-03-04T23:25:47Z <timotimo>: timo's first tpf grant report blog post wakelift.de/2018/03/05/delays-and-delights/ | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | reportable6: 2018-02-26T00:00:00Z 2018-03-05T00:00:00Z | 15:53 | |||||||||||||||||||||||||||||||||||||
reportable6 | AlexDaniel, OK, working on it! This may take up to 40 seconds | ||||||||||||||||||||||||||||||||||||||
Kaiepi | PufferBot, test | ||||||||||||||||||||||||||||||||||||||
PufferBot | [openbsd] Building Rakudo... | ||||||||||||||||||||||||||||||||||||||
reportable6 | AlexDaniel, gist.github.com/98ecb58a1bae66e176...ba77844026 | 15:54 | |||||||||||||||||||||||||||||||||||||
AlexDaniel removes spamā¦ | |||||||||||||||||||||||||||||||||||||||
reportable6: 2018-02-26T00:00:00Z 2018-03-05T00:00:00Z | 15:55 | ||||||||||||||||||||||||||||||||||||||
reportable6 | AlexDaniel, OK, working on it! This may take up to 40 seconds | ||||||||||||||||||||||||||||||||||||||
PufferBot | [openbsd] Compiling successful! Testing... | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | reportable6: 2018-02-26T00:00:00Z 2018-03-05T00:00:00Z | ||||||||||||||||||||||||||||||||||||||
reportable6 | AlexDaniel, OK, working on it! This may take up to 40 seconds | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | Kaiepi: that's pretty cool! | 15:56 | |||||||||||||||||||||||||||||||||||||
Kaiepi | thanks :) | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | notable6: release Try using PufferBot ā āPufferBot, testā | ||||||||||||||||||||||||||||||||||||||
notable6 | AlexDaniel, Noted! | ||||||||||||||||||||||||||||||||||||||
PufferBot | [openbsd] Tests passed! | ||||||||||||||||||||||||||||||||||||||
reportable6 | AlexDaniel, gist.github.com/6d582b213cbe5d5d19...b02d8c02ba | ||||||||||||||||||||||||||||||||||||||
Kaiepi | Zoffix, --gen-moar --moar-option=--has-libffi did the trick | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | reportable6: 2018-02-01T00:00:00Z 2018-03-01T00:00:00Z | 15:57 | |||||||||||||||||||||||||||||||||||||
reportable6 | AlexDaniel, OK, working on it! This may take up to 40 seconds | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | xD | ||||||||||||||||||||||||||||||||||||||
reportable6: 2018-02-01T00:00:00Z 2018-03-01T00:00:00Z | |||||||||||||||||||||||||||||||||||||||
reportable6 | AlexDaniel, OK, working on it! This may take up to 40 seconds | ||||||||||||||||||||||||||||||||||||||
AlexDaniel, gist.github.com/cb867b9743412f7bdb...b67b63753a | 15:58 | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | reportable6: 2018-02-01T00:00:00Z 2018-03-01T00:00:00Z | 15:59 | |||||||||||||||||||||||||||||||||||||
reportable6 | AlexDaniel, OK, working on it! This may take up to 40 seconds | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | xD | ||||||||||||||||||||||||||||||||||||||
reportable6: 2018-02-01T00:00:00Z 2018-03-01T00:00:00Z | |||||||||||||||||||||||||||||||||||||||
reportable6 | AlexDaniel, OK, working on it! This may take up to 40 seconds | ||||||||||||||||||||||||||||||||||||||
AlexDaniel, gist.github.com/94ce789ebbbe52866a...3b4d262ee4 | 16:00 | ||||||||||||||||||||||||||||||||||||||
timotimo | AlexDaniel: wanna do it in whateverable, though? :D | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | timotimo: wanna fix a SEGV though? :P :P | ||||||||||||||||||||||||||||||||||||||
lizmat: fwiw everything added to github.com/rakudo/rakudo/wiki/Ticket-updates | 16:01 | ||||||||||||||||||||||||||||||||||||||
timotimo | i can have a quick look | 16:02 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | timotimo: Follow the steps here: github.com/perl6/whateverable/wiki/Installation | ||||||||||||||||||||||||||||||||||||||
lizmat | timotimo: fwiw, doing a profile on 'say (^Inf).hyper.grep( *.is-prime )[1000]' segfaults for me without anything written | 16:03 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | timotimo: except the last one (sake debug:unicodable), instead just run: t/evalable.t | ||||||||||||||||||||||||||||||||||||||
timotimo: evalable will die with signal 11 (SEGV) half way through its tests | |||||||||||||||||||||||||||||||||||||||
Zoffix | bisect: say (^Inf).hyper.grep( *.is-prime )[1000] | ||||||||||||||||||||||||||||||||||||||
timotimo | lizmat: strange, you're right. i tried it with the json_fast race test | 16:04 | |||||||||||||||||||||||||||||||||||||
bisectable6 | Zoffix, Bisecting by exit signal (old=2015.12 new=a5a6c77). Old exit signal: 1 (SIGHUP) | ||||||||||||||||||||||||||||||||||||||
lizmat | Zoffix: it only segfaults when trying to write the report | ||||||||||||||||||||||||||||||||||||||
Zoffix | Ah, profile. There's also M#813 | ||||||||||||||||||||||||||||||||||||||
synopsebot | M#813 [open]: github.com/MoarVM/MoarVM/issues/813 SEGV when attempting to --profile-stage=optimize the | ||||||||||||||||||||||||||||||||||||||
lizmat | I was reading wakelift.de/2018/03/05/delays-and-delights/ and wanted to check things out :-) | 16:05 | |||||||||||||||||||||||||||||||||||||
bisectable6 | Zoffix, bisect log: gist.github.com/87334f54dc07034352...5608fdfc8f | ||||||||||||||||||||||||||||||||||||||
Zoffix, (2017-10-16) github.com/rakudo/rakudo/commit/23...06bf507c55 | |||||||||||||||||||||||||||||||||||||||
timotimo | you're right to hold me accountable for what i claimed in the post | ||||||||||||||||||||||||||||||||||||||
it looks a little like memory corruption, tbh. more than half the time i get const_iX NYI", but the crashing code is just const_s called with a extremely high string index, and const_s is just next to the ones that would NYI | 16:11 | ||||||||||||||||||||||||||||||||||||||
huh, i can clearly see that the const_s instruction with the bogus gigantic string index is in the CORE.setting.moarvm file; maybe the instruction pointer got off the rails? | 16:23 | ||||||||||||||||||||||||||||||||||||||
lizmat | well, if that's the case, it may actually be a MoarVM issue instead of a profiler issue ? | 16:24 | |||||||||||||||||||||||||||||||||||||
timotimo | could be | ||||||||||||||||||||||||||||||||||||||
though it'd probably have been a profiler issue inside the moarvm codebase either way | 16:25 | ||||||||||||||||||||||||||||||||||||||
lizmat | timotimo: wrt " it'll spend a majority of its time sleeping in between ticks. This shows up very prominently in the Routines list" | ||||||||||||||||||||||||||||||||||||||
I've replaced the sleep() in the scheduler thread by an nqp::sleep() | |||||||||||||||||||||||||||||||||||||||
so that should not show up by itself at all anymore | |||||||||||||||||||||||||||||||||||||||
timotimo | ah, nice | 16:27 | |||||||||||||||||||||||||||||||||||||
but the including sub will probably take sleep's place :) | |||||||||||||||||||||||||||||||||||||||
so, uh, what i'm wondering is: why is it even running thread 4 any more in the first place? | |||||||||||||||||||||||||||||||||||||||
if i sleep 0.05 after the code you pasted the profile gets written without trouble | 16:29 | ||||||||||||||||||||||||||||||||||||||
lizmat | interesting | ||||||||||||||||||||||||||||||||||||||
lemme double check | |||||||||||||||||||||||||||||||||||||||
timotimo: indeed | |||||||||||||||||||||||||||||||||||||||
timotimo | so the other thread is continuing past the run time of the main program - which is not a big surprise - and that somehow gets very unhappy while the profiler is dumping its data | 16:30 | |||||||||||||||||||||||||||||||||||||
lizmat | timotimo: the profile states that is-prime is called 8192 times | 16:31 | |||||||||||||||||||||||||||||||||||||
that is incorrect, and it feels oddly powered of 2 | 16:32 | ||||||||||||||||||||||||||||||||||||||
the threadpool scheduler taking 20% of CPU, feels like a lot | 16:33 | ||||||||||||||||||||||||||||||||||||||
timotimo | adding a breakpoint to MVM_bigint_is_prime i do get more than a few thousand calls | 16:35 | |||||||||||||||||||||||||||||||||||||
how many should it be? | 16:36 | ||||||||||||||||||||||||||||||||||||||
i see it called 8187 times, oddly enough | 16:37 | ||||||||||||||||||||||||||||||||||||||
perhaps is_prime has special cases for very low numbers built in? | |||||||||||||||||||||||||||||||||||||||
Zoffix | s: 42, 'is-prime', \() | 16:38 | |||||||||||||||||||||||||||||||||||||
SourceBaby | Zoffix, Sauce is at github.com/rakudo/rakudo/blob/a5a6...t.pm6#L140 | ||||||||||||||||||||||||||||||||||||||
timotimo | or maybe i just set the breakpoint a tiny bit too late | ||||||||||||||||||||||||||||||||||||||
oh, probably because it segfaulted early-ish | 16:39 | ||||||||||||||||||||||||||||||||||||||
dogbert17 | timotimo: when valgrinding lizmat's example I sometimes get an invalid read here: github.com/MoarVM/MoarVM/blob/mast...hll.c#L178 | ||||||||||||||||||||||||||||||||||||||
lizmat | timotimo: actually, the 8192 possibly makes sense, since it *is* a multiple of 64, which is the batch size | ||||||||||||||||||||||||||||||||||||||
Zoffix | m: ^Inf .grep(*.is-prime)[1000].say | ||||||||||||||||||||||||||||||||||||||
camelia | 5===SORRY!5=== Error while compiling <tmp> Missing infix inside [] at <tmp>:1 ------> 3^Inf .grep(*.is-prime)[7ā051000].say expecting any of: bracketed infix infix infix stopper |
||||||||||||||||||||||||||||||||||||||
Zoffix | m: (^Inf).grep(*.is-prime)[1000].say | ||||||||||||||||||||||||||||||||||||||
camelia | 7927 | 16:40 | |||||||||||||||||||||||||||||||||||||
timotimo | wow, that's a tiny batch size | ||||||||||||||||||||||||||||||||||||||
lizmat | it's the default | ||||||||||||||||||||||||||||||||||||||
timotimo | ok, not every job is as fast as is_prime | ||||||||||||||||||||||||||||||||||||||
lizmat | indeed... | ||||||||||||||||||||||||||||||||||||||
timotimo | i imagine the ThreadPoolScheduler time you see is from waiting for jobs to come in | 16:41 | |||||||||||||||||||||||||||||||||||||
Zoffix | On my 2-core box, I get 8012 calls | 16:42 | |||||||||||||||||||||||||||||||||||||
m: say 7927+64*2 | |||||||||||||||||||||||||||||||||||||||
camelia | 8055 | ||||||||||||||||||||||||||||||||||||||
Zoffix | m: say 7927+64 | ||||||||||||||||||||||||||||||||||||||
camelia | 7991 | ||||||||||||||||||||||||||||||||||||||
Zoffix shrugs | |||||||||||||||||||||||||||||||||||||||
timotimo | i suppose it comes down to how early it can cut off the other active jobs when the slice says "i've got enough now, thanks" | ||||||||||||||||||||||||||||||||||||||
Zoffix | Ah | ||||||||||||||||||||||||||||||||||||||
Ah yeah, if I add `await Promise.in(2)` before the end, I get 8192 calls | 16:43 | ||||||||||||||||||||||||||||||||||||||
I was measuring with `perl6 -e '(^Inf).hyper.grep({say "called"; .is-prime})[1000]; await Promise.in(2)' | wc -l` BTW | |||||||||||||||||||||||||||||||||||||||
m: say 7927+64*4 | |||||||||||||||||||||||||||||||||||||||
camelia | 8183 | ||||||||||||||||||||||||||||||||||||||
Zoffix | ZofBot: close enough! | 16:44 | |||||||||||||||||||||||||||||||||||||
ZofBot | Zoffix, (when choosing a multi variants) | ||||||||||||||||||||||||||||||||||||||
timotimo | what's with the extremely deep recursion between ThreadPoolScheduler.pm:232 and ThreadPoolScheduler.pm:60? | 16:46 | |||||||||||||||||||||||||||||||||||||
oh, continuations | |||||||||||||||||||||||||||||||||||||||
wow, that is disgusting. is this real? | 16:47 | ||||||||||||||||||||||||||||||||||||||
jnthn | timotimo: Wonder if it's got a frame leak situation a tad like gather/take once had... | 16:49 | |||||||||||||||||||||||||||||||||||||
timotimo | i hope it's only an artifact of how the profiler handles continuations, which i haven't looked into at all yet | ||||||||||||||||||||||||||||||||||||||
but damn, this call graph is *deep* | |||||||||||||||||||||||||||||||||||||||
jnthn | oh, that is also very possible | ||||||||||||||||||||||||||||||||||||||
timotimo | i can't even zoom out far enough in chrome to get a good overview of the thing | ||||||||||||||||||||||||||||||||||||||
jnthn | I hope it's that :) | 16:50 | |||||||||||||||||||||||||||||||||||||
timotimo | hack.p6c.org/~timo/very_deep_recurs...om_TPS.png | 16:51 | |||||||||||||||||||||||||||||||||||||
that's the generals hape | |||||||||||||||||||||||||||||||||||||||
to the left of that one is a similar one, but it's extremely flat instead of a steep incline | 16:52 | ||||||||||||||||||||||||||||||||||||||
if the stack actually reflects the call graph, we should be able to get very big stack traces from inside the thing that's mapped by the hyper seq, right? | 16:54 | ||||||||||||||||||||||||||||||||||||||
m: say Backtrace.new.full | 16:55 | ||||||||||||||||||||||||||||||||||||||
camelia | in code at SETTING::src/core/Backtrace.pm6 line 85 in method new at SETTING::src/core/Backtrace.pm6 line 85 in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
timotimo | m: (^Inf).hyper.grep({ Backtrace.new.full.say if rand < 0.001; .is-prime})[1000]; | ||||||||||||||||||||||||||||||||||||||
camelia | in code at SETTING::src/core/Backtrace.pm6 line 85 in method new at SETTING::src/core/Backtrace.pm6 line 85 in block at <tmp> line 1 in block at SETTING::src/core/Rakudo/Internals/HyperRaceSharedImpl.pm6 line 15 in block at SETTIā¦ |
||||||||||||||||||||||||||||||||||||||
timotimo | yeah, i see it on the stack trace, too | 16:56 | |||||||||||||||||||||||||||||||||||||
270, 232, 238, 60, 238, 60, 238, 60, 238, 60, ... | |||||||||||||||||||||||||||||||||||||||
and then Promise.pm6 line 249, HyperPipeline.pm6 lines 69, 71, 72 | |||||||||||||||||||||||||||||||||||||||
jdv79 | so cancelling a promise is not something that will ever be possible? | 17:42 | |||||||||||||||||||||||||||||||||||||
in the forking world i can always kill a kid. it can be useful. | 17:43 | ||||||||||||||||||||||||||||||||||||||
for instance, i fire off a bunch of tasks that are related but are wholly unnecessary if one fails. so if 1 fails i want to just drop the others on the floor. | 17:45 | ||||||||||||||||||||||||||||||||||||||
timotimo | we'll at some point have a mechanism to cause an exception in another thread to happen | 17:47 | |||||||||||||||||||||||||||||||||||||
jdv79 | wouldn't i want that on the promise - not hte thread? | 18:07 | |||||||||||||||||||||||||||||||||||||
for example a promise may not have been scheduled before i want to abort it | 18:08 | ||||||||||||||||||||||||||||||||||||||
lizmat | jdv79: I assume you mean a Promise.in / Promise.at, right ? | ||||||||||||||||||||||||||||||||||||||
a Promise object by itself doesn't know anything about threads or anything, right ? | 18:09 | ||||||||||||||||||||||||||||||||||||||
timotimo | right, the promise returned by Start would have to have a "kill" method mixed in or something similar | 18:25 | |||||||||||||||||||||||||||||||||||||
the reason why a thread would have to have an exception delivered to it is because these tasks are run by a ThreadPoolScheduler and any cooperation with outside code would have to be in the user's code | 18:26 | ||||||||||||||||||||||||||||||||||||||
so by passing an exception to the thread that's currently running the task you're interested in, it'd unwind the stack up to an exception handler that belongs to the thread pool scheduler itself | 18:27 | ||||||||||||||||||||||||||||||||||||||
so it can handle all the necessary work | |||||||||||||||||||||||||||||||||||||||
jdv79 | would it be enough to just give the vow back to usercode to it could call break? i'm just guessing. | 18:31 | |||||||||||||||||||||||||||||||||||||
timotimo | no, that'll only cause an exception when the task is finished because it'll try to keep a promise that's already been broken | 18:32 | |||||||||||||||||||||||||||||||||||||
but at that point you win nothing from it aborting | |||||||||||||||||||||||||||||||||||||||
jdv79 | but this kill method would attempt to unsched a task that has yet to be run or just mark it to throw when scheduled? | 18:34 | |||||||||||||||||||||||||||||||||||||
timotimo | i imagine the kill method would be invoked on the $*SCHEDULER which could then decide how to proceed; either the task hasn't been taken yet, then it has to prevent it from being taken in the future - that's not possible with just the Channel it uses, so there'd have to be something extra - and if it has already been taken it would have to force the Thread that is currently working on that task to throw an | 18:36 | |||||||||||||||||||||||||||||||||||||
exception the next time it is in there | |||||||||||||||||||||||||||||||||||||||
the underlying mechanism for exception passing would be that at the same place it looks to see if a GC run should be started it'll realize it's supposed to throw an exception and do that | 18:37 | ||||||||||||||||||||||||||||||||||||||
but if we're not careful, a whole lot more operations than so far would be able to throw exceptions, which requires extra care from the jit | 18:38 | ||||||||||||||||||||||||||||||||||||||
TimToady waves at all you hard workers from KÄŹ»anapali | 18:59 | ||||||||||||||||||||||||||||||||||||||
yoleaux | 3 Mar 2018 06:24Z <Zoffix> TimToady: a proposal for some tweaks to Rationals to fix a number of bugs including the issue of some Rats being >64-bit denominators, if you wanted to review: github.com/rakudo/rakudo/blob/mast...tionals.md | ||||||||||||||||||||||||||||||||||||||
00:11Z <Zoffix> TimToady: what's your opinion, should `use nqp; dd nqp::bitshiftr_i(-9223372036854775808, -64)` overflow and return -9223372036854775808 or switch to an Int instead -170141183460469231731687303715884105728? Right now we have this inconsistency between Int and int candidates, but I'm leaning towards: people might wants overflowing stuff | |||||||||||||||||||||||||||||||||||||||
00:40Z <Zoffix> TimToady: I changed my leaning; I think both HLL and native should behave the same as autoboxing makes stuff too unpredictable as can be seen here: irclog.perlgeek.de/perl6/2018-03-05#i_15883977 | 19:00 | ||||||||||||||||||||||||||||||||||||||
TimToady thinks people who are writing crypto codes want ways to keep everything native, if we make it default the other way | 19:01 | ||||||||||||||||||||||||||||||||||||||
jdv79 | timotimo: sounds cool | 19:04 | |||||||||||||||||||||||||||||||||||||
TimToady | on Rats, if we automatically graduate Rats to FatRats, what's the point of the distinction, which is there specifically to avoid performance degradation? | 19:05 | |||||||||||||||||||||||||||||||||||||
Zoffix | TimToady: they'd upgrade to FatRat only on literals and Rat.new. All other operations will remain downgrading them to a Num. The logic is: if someone creates an original object by giving us an $x amount of precision, we keep it all | 19:10 | |||||||||||||||||||||||||||||||||||||
and in val too (will make FatRatStr) | |||||||||||||||||||||||||||||||||||||||
TimToady | okay, I didn't get that from the doc, but maybe my eyes are still crossed | ||||||||||||||||||||||||||||||||||||||
Zoffix | m: say 1.111111111111111111111 | 19:11 | |||||||||||||||||||||||||||||||||||||
camelia | 1.111111111111111111111 | ||||||||||||||||||||||||||||||||||||||
Zoffix | hm, on my box on 2018.01 that prints 1.11111111111111111604544 | 19:12 | |||||||||||||||||||||||||||||||||||||
m: say 1.111111111111111111111111111111111111111111111 | |||||||||||||||||||||||||||||||||||||||
camelia | 1.11111111111111110716365146799944341182708740234 | ||||||||||||||||||||||||||||||||||||||
TimToady | with your proposal, can we have a literal that rounds to Rat when used as a Rat, but has FatRat precision when used with a FatRat? | 19:13 | |||||||||||||||||||||||||||||||||||||
Zoffix | There we go. Basically, right now ^ we create Rat objects with denominators larger than 64bits (the same is with `<42/24> Rat literals, <42/24 > RatStrs, and with Rat.new). And only such cases would get promoted to FatRat. | ||||||||||||||||||||||||||||||||||||||
TimToady: used as a Rat how? | |||||||||||||||||||||||||||||||||||||||
TimToady | or does adding precision on the literals suddenly throw the user into FatRat-land? | 19:14 | |||||||||||||||||||||||||||||||||||||
Zoffix | Suddenly throw FatRat land. 4.9999999999999999999 <= Rat; 4.99999999999999999999 <= FatRat. Logic being: $user gave us this much precision, thus assume they want to keep it all. | ||||||||||||||||||||||||||||||||||||||
Also: <499999999999999999999/100000000000000000000> == FatRat; 499999999999999999999/100000000000000000000 == Num | 19:16 | ||||||||||||||||||||||||||||||||||||||
And Rat.new: 499999999999999999999, 100000000000000000000 == FatRat | |||||||||||||||||||||||||||||||||||||||
ZofBot: FartRat | |||||||||||||||||||||||||||||||||||||||
ZofBot | Zoffix, When people die they are sometimes put into coffins, which means that they donāt mix with the earth for a very long time until the wood of the coffin rots | ||||||||||||||||||||||||||||||||||||||
TimToady | might want to think about dying on that by default, and requiring a use fatrat or so to turn it on | ||||||||||||||||||||||||||||||||||||||
well, the powers-that-be are attempting to drag me off sightseeing, so I'd better keep the peace... | 19:17 | ||||||||||||||||||||||||||||||||||||||
Zoffix | I considered that, but feels like that's creating more unpredictability thatn making a FatRat instead: github.com/rakudo/rakudo/blob/mast...#reasoning | 19:18 | |||||||||||||||||||||||||||||||||||||
Like would this throw? Rat.new: 48112959837032048697, 48112959837082048697 | |||||||||||||||||||||||||||||||||||||||
Or this? Rat.new: 680564733841876926926749214863536422912, 1361129467683753853853498429727072845824 | |||||||||||||||||||||||||||||||||||||||
The first one would actually throw, that's a 64+bit denominator, but the second one won't because after reduction the denominator is <64bit | 19:19 | ||||||||||||||||||||||||||||||||||||||
TimToady | but this still feels wrongish to me; I want to be able to put a value of Ļ or e into the setting that is allomorphic on Rat or FatRat | 19:20 | |||||||||||||||||||||||||||||||||||||
forcing it to FatRat seems to defeat that | |||||||||||||||||||||||||||||||||||||||
Zoffix | So we're talking about a possible MaybeRat type? A non-infectious FatRat? | ||||||||||||||||||||||||||||||||||||||
TimToady | well, that's what the Str part of RatStr was supposed to be | 19:21 | |||||||||||||||||||||||||||||||||||||
Zoffix | OK. I'll reevaluate that proposal in terms of making RatStr a non-infectious FatRat. | 19:22 | |||||||||||||||||||||||||||||||||||||
by end of weekend and see if anything bad comes out from that | |||||||||||||||||||||||||||||||||||||||
dogbert17 | does the profiler work correctly with nqp programs? | 19:23 | |||||||||||||||||||||||||||||||||||||
tried profiling Zoffix prime program and the results are: Interpreted Frames 95.65% (1254), Specialized Frames 1.6% (21), JIT-Compiled Frames 2.75% (36) | 19:25 | ||||||||||||||||||||||||||||||||||||||
the numbers for Specializes and JITted frames feels a bit low, is that to be expected? | 19:27 | ||||||||||||||||||||||||||||||||||||||
Zoffix | dogbert17: how many frames are there for timo's HLL version? Maybe it's ignoring all the NQP ops and those 1254 interpreted frames might be "out of 12000000000 frames" actually used by the HLL program | 19:40 | |||||||||||||||||||||||||||||||||||||
dogbert17 | where's timos code then | 19:41 | |||||||||||||||||||||||||||||||||||||
lizmat | notable6: weekly | 19:42 | |||||||||||||||||||||||||||||||||||||
notable6 | lizmat, 1 note: 2018-03-04T23:25:47Z <timotimo>: timo's first tpf grant report blog post wakelift.de/2018/03/05/delays-and-delights/ | ||||||||||||||||||||||||||||||||||||||
Zoffix | dogbert17: I think it's this file. And the comments on this file say how to get the missing program; or you can just copy the primes list from my program and paste it into that one instead github.com/perl6/perl6-examples/co...#r27920150 | 19:44 | |||||||||||||||||||||||||||||||||||||
dogbert17 | Zoffix: cool | ||||||||||||||||||||||||||||||||||||||
Zoffix: the profile failed: const_n32 NYI in sub calc_S at scratch.pl6 line 32 | 20:03 | ||||||||||||||||||||||||||||||||||||||
Zoffix | No idea what that's from | 20:04 | |||||||||||||||||||||||||||||||||||||
(well, MVM_OP_const_n32, but where in the program that's for *shrug*) | 20:07 | ||||||||||||||||||||||||||||||||||||||
dogbert17 | timotimo probably knows | 20:08 | |||||||||||||||||||||||||||||||||||||
Geth | roast: 9ba8d28315 | usev6++ | 2 files [JVM] Unfudge passing tests for eof on stdin Fixed with github.com/perl6/nqp/commit/ef12d28506 Compare RT #131393. |
20:13 | |||||||||||||||||||||||||||||||||||||
synopsebot | RT#131393 [new]: rt.perl.org/Ticket/Display.html?id=131393 [JVM] When reading from stdin, eof is not respected | ||||||||||||||||||||||||||||||||||||||
Geth | rakudo: 90303c1e3e | usev6++ | t/spectest.data Revert "Don't run S19-command-line/repl.t on JVM" This reverts commit f0eb2450284be7cfa7606c3394e9befbff39406b. Running S19-command-line/repl.t doesn't hang anymore. |
20:16 | |||||||||||||||||||||||||||||||||||||
lizmat | notable6: reset weekly | 20:32 | |||||||||||||||||||||||||||||||||||||
notable6 | lizmat, Noted! | ||||||||||||||||||||||||||||||||||||||
lizmat | notable6: weekly reset | ||||||||||||||||||||||||||||||||||||||
notable6 | lizmat, Noted! | ||||||||||||||||||||||||||||||||||||||
lizmat | notable6: help | ||||||||||||||||||||||||||||||||||||||
notable6 | lizmat, Like this: notable6: weekly rakudo is now 10x faster # See wiki for more examples: github.com/perl6/whateverable/wiki/Notable | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | hahaha | ||||||||||||||||||||||||||||||||||||||
Zoffix | notable6: reset help | 20:33 | |||||||||||||||||||||||||||||||||||||
notable6 | Zoffix, Noted! | ||||||||||||||||||||||||||||||||||||||
Zoffix | notable6: help | ||||||||||||||||||||||||||||||||||||||
notable6 | Zoffix, Like this: notable6: weekly rakudo is now 10x faster # See wiki for more examples: github.com/perl6/whateverable/wiki/Notable | ||||||||||||||||||||||||||||||||||||||
lizmat | notable6: clear weekly | ||||||||||||||||||||||||||||||||||||||
notable6 | lizmat, Moved existing notes to āweekly_2018-03-05T20:33:06Zā | ||||||||||||||||||||||||||||||||||||||
AlexDaniel slaps notable6 # stupid bot | |||||||||||||||||||||||||||||||||||||||
Zoffix | notable6: clear help | ||||||||||||||||||||||||||||||||||||||
notable6 | Zoffix, No notes for āhelpā | ||||||||||||||||||||||||||||||||||||||
Zoffix | heh | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | notable6: reset | ||||||||||||||||||||||||||||||||||||||
notable6 | AlexDaniel, 2 notes: 2018-03-05T20:32:27Z <lizmat>: weekly ; 2018-03-05T20:33:01Z <Zoffix>: help | ||||||||||||||||||||||||||||||||||||||
lizmat | and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2018/03/05/...atic-perl/ | 20:36 | |||||||||||||||||||||||||||||||||||||
Zoffix | wooo | 20:40 | |||||||||||||||||||||||||||||||||||||
hehe neat. Went looking for a quote to post in a place and found one by Larry: www.brainyquote.com/quotes/larry_wall_141510 | 20:43 | ||||||||||||||||||||||||||||||||||||||
"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."āLarry Wall | |||||||||||||||||||||||||||||||||||||||
oh wow, there's a whole bunch of them on that site: www.brainyquote.com/authors/larry_wall | 20:44 | ||||||||||||||||||||||||||||||||||||||
timotimo | dogbert17: we never generate that opcode so far, so something else is going wrong | 20:46 | |||||||||||||||||||||||||||||||||||||
Zoffix | lizmat++ # good weekly | 20:48 | |||||||||||||||||||||||||||||||||||||
jnthn | Aww, the week I write two new modules, there's not a new modules section in the weekly :P | 20:58 | |||||||||||||||||||||||||||||||||||||
lizmat | jnthn: there hasn't been a new modules section for several months now | 20:59 | |||||||||||||||||||||||||||||||||||||
jnthn | Aww :) | ||||||||||||||||||||||||||||||||||||||
lizmat | before, it was easy to do a diff on the ecosystem | ||||||||||||||||||||||||||||||||||||||
now, with uploads to CPAN, it's not so easy anymore :-( | |||||||||||||||||||||||||||||||||||||||
jnthn | ah, makes sense | ||||||||||||||||||||||||||||||||||||||
I did tweet my talk slides from Brno also; maybe something for next week :-) | 21:01 | ||||||||||||||||||||||||||||||||||||||
lizmat | jnthn: ah, good point: I guess someone forgot to retweet those on the Perl 6 News feed :-( | ||||||||||||||||||||||||||||||||||||||
i guess I need to "follow" you as well, then | 21:02 | ||||||||||||||||||||||||||||||||||||||
but for now, I'm going to take an early night | |||||||||||||||||||||||||||||||||||||||
jnthn | :) | ||||||||||||||||||||||||||||||||||||||
Nice weekly, anyways | |||||||||||||||||||||||||||||||||||||||
lizmat++ | |||||||||||||||||||||||||||||||||||||||
Rest well | |||||||||||||||||||||||||||||||||||||||
travis-ci | Rakudo build failed. usev6 'Revert "Don't run S19-command-line/repl.t on JVM" | 21:06 | |||||||||||||||||||||||||||||||||||||
travis-ci.org/rakudo/rakudo/builds/349485971 github.com/rakudo/rakudo/compare/a...303c1e3ec9 | |||||||||||||||||||||||||||||||||||||||
timotimo | anyway, yeah, the stack keeps growing; i slashed the probability of writing the stacktrace by 10 and made it run until 100_000 instead of 1000 primes are found | 21:53 | |||||||||||||||||||||||||||||||||||||
Zoffix | dogbert17: so I got to the box that had *my* HLL version of that program: gist.github.com/zoffixznet/eff8a1d...4d980667e8 with 15 iterations (instead of 24), the HLL version has 192738 total frames, 37779 interpreted, while nqp version has 1152 total frames with 1103 interpreted. So my hypothesis was true: despite nqp version having majority frames non-JITed, it just has a lot fewer | 22:40 | |||||||||||||||||||||||||||||||||||||
frames to begin with | |||||||||||||||||||||||||||||||||||||||
dogbert17: tho I would've hoped pure-NQP version would be faster than perl 5, not 86% slower, so I'm hoping there are some ops there that aren't JITTED :) | 23:00 |