Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-10-17

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:55 BenGoldberg joined #perl6-dev
01:36 ggoebel joined #perl6-dev
01:59 ilbot3 joined #perl6-dev
01:59 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
02:35 AlexDani` joined #perl6-dev
02:52 greppable6 joined #perl6-dev
02:57 llfourn joined #perl6-dev
04:01 buggable New CPAN upload: App-Bob-0.5.0.tar.gz by TYIL https://cpan.metacpan.org/authors/id/T/TY/TYIL/Perl6/App-Bob-0.5.0.tar.gz
04:11 buggable New CPAN upload: App-Bob-0.4.0.tar.gz by TYIL https://cpan.metacpan.org/authors/id/T/TY/TYIL/Perl6/App-Bob-0.4.0.tar.gz
05:35 yoleaux joined #perl6-dev
05:35 ggoebel joined #perl6-dev
05:47 lizmat joined #perl6-dev
06:01 buggable New CPAN upload: App-Cpan6-0.6.2.tar.gz by TYIL https://cpan.metacpan.org/authors/id/T/TY/TYIL/Perl6/App-Cpan6-0.6.2.tar.gz
06:40 [Tux] joined #perl6-dev
07:00 [Tux] This is Rakudo version 2017.09-432-gd6a9edacf built on MoarVM version 2017.09.1-594-gb9d3f6da
07:00 [Tux] csv-ip5xs        1.197 -  1.219
07:00 [Tux] test             8.509 -  8.513
07:00 [Tux] test-t           3.164 -  3.184
07:00 [Tux] csv-parser       0.863 -  0.903
07:08 patrickz joined #perl6-dev
08:13 lizmat Files=1227, Tests=75680, 320 wallclock secs (14.85 usr  5.20 sys + 2216.59 cusr 210.91 csys = 2447.55 CPU)
08:19 samcv .
08:22 samcv releasable6, status
08:22 releasable6 samcv, Next release in 4 days and ≈10 hours. 1 blocker. Changelog for this release was not started yet
08:22 releasable6 samcv, Details: https://gist.github.com/8ace9a3240e8fda055d2ac3960532702
08:23 samcv i've been taking a break for a bit. let me know if there's anything that needs to be dealt with before release
08:26 robertle joined #perl6-dev
08:56 jnthn morning o/
08:58 moritz \jnthn
08:58 jnthn Oh no, I've been captured!
08:58 * moritz exits the scope
09:03 Geth ¦ roast: c95355583a | (Jonathan Worthington)++ | S02-types/WHICH.t
09:03 Geth ¦ roast: HyperWorkBuffer is going away
09:03 Geth ¦ roast:
09:03 Geth ¦ roast: This was the only mention of it in the whole test suite. It was an
09:03 Geth ¦ roast: implementation details of the previous hyper/race mechanism, which is
09:03 Geth ¦ roast: being replaced.
09:03 Geth ¦ roast: review: https://github.com/perl6/roast/commit/c95355583a
09:10 jnthn So, S03-metaops/eager-hyper.t passes in full, as does S07-hyperrace/hyper.t
09:10 jnthn (With my branch)
09:11 Geth ¦ nqp: 872ca4c380 | (Samantha McVey)++ | t/nqp/038-quotes.t
09:11 Geth ¦ nqp: Add 10 more q and qq quote tests
09:11 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/872ca4c380
09:11 jnthn In other words, my new impl straight off passes all the spectests we have for hyper and race :)
09:12 jnthn The bad news is that we don't have many of those
09:12 gfldex you could try to golf https://gist.github.com/gfldex/b9914d412c807f45d2d041d45726f2b2 a little to get a proper stresstest
09:14 gfldex whereby the hitchance is only 10%
09:15 gfldex I may have a better test but need to rush to work now.
09:15 * gfldex rushes
09:16 jnthn gfldex: I've got 9 hyper/race RTs to go through, all of which are already fairly golfed
09:16 jnthn So with luck it'll be one of those
09:29 Geth ¦ roast/hyper-race-rework: bba5083af5 | (Jonathan Worthington)++ | 3 files
09:29 Geth ¦ roast/hyper-race-rework: Untodo hyper/race tests passing with new impl
09:29 Geth ¦ roast/hyper-race-rework: review: https://github.com/perl6/roast/commit/bba5083af5
09:33 AlexDani` joined #perl6-dev
09:39 astj joined #perl6-dev
09:44 pmurias joined #perl6-dev
09:47 Geth ¦ roast/hyper-race-rework: a393f41c62 | (Jonathan Worthington)++ | 2 files
09:47 Geth ¦ roast/hyper-race-rework: Add tests for all broken examples in RT #127452
09:47 Geth ¦ roast/hyper-race-rework: review: https://github.com/perl6/roast/commit/a393f41c62
09:47 synopsebot RT#127452 [open]: https://rt.perl.org/Ticket/Display.html?id=127452 [CONC] hyper is very broken, *sometimes* it returns nothing
09:47 jnthn So, that ticket seems fixed already
09:47 jnthn (All the tests I added could fail on HEAD)
09:58 releasable6 joined #perl6-dev
10:11 Geth ¦ rakudo/hyper-race-rework: f7ef1fc9f1 | (Jonathan Worthington)++ | 2 files
10:11 Geth ¦ rakudo/hyper-race-rework: Remove leftover debug code
10:11 Geth ¦ rakudo/hyper-race-rework: review: https://github.com/rakudo/rakudo/commit/f7ef1fc9f1
10:11 Geth ¦ rakudo/hyper-race-rework: cef4806ff6 | (Jonathan Worthington)++ | 3 files
10:11 Geth ¦ rakudo/hyper-race-rework: Implement sink on HyperSeq and RaceSeq
10:11 Geth ¦ rakudo/hyper-race-rework: review: https://github.com/rakudo/rakudo/commit/cef4806ff6
10:12 Geth ¦ roast/hyper-race-rework: 857fe02933 | (Jonathan Worthington)++ | 2 files
10:12 Geth ¦ roast/hyper-race-rework: Tests to cover RT #129234
10:12 Geth ¦ roast/hyper-race-rework: review: https://github.com/perl6/roast/commit/857fe02933
10:12 synopsebot RT#129234 [new]: https://rt.perl.org/Ticket/Display.html?id=129234 [CONC] `.hyper` and `.race` resume after exceptions
10:22 Geth ¦ rakudo/hyper-race-rework: ea51d19bbd | (Jonathan Worthington)++ | src/core/RaceSeq.pm
10:22 Geth ¦ rakudo/hyper-race-rework: Add forgotten `does Sequence` on RaceSeq
10:22 Geth ¦ rakudo/hyper-race-rework: review: https://github.com/rakudo/rakudo/commit/ea51d19bbd
10:23 Geth ¦ roast/hyper-race-rework: 342bff10bb | (Jonathan Worthington)++ | 2 files
10:23 Geth ¦ roast/hyper-race-rework: Tests to cover now-passing RT #128084
10:23 Geth ¦ roast/hyper-race-rework: review: https://github.com/perl6/roast/commit/342bff10bb
10:23 synopsebot RT#128084 [new]: https://rt.perl.org/Ticket/Display.html?id=128084 [CONC][BUG] `.hyper/.race.map(&f)` produces an empty sequence if `&f` is a multi-sub
10:27 patrickz joined #perl6-dev
10:30 Geth ¦ roast/hyper-race-rework: 854a53b7ce | (Jonathan Worthington)++ | 2 files
10:30 Geth ¦ roast/hyper-race-rework: Tests for RT #131865
10:30 Geth ¦ roast/hyper-race-rework: review: https://github.com/perl6/roast/commit/854a53b7ce
10:30 synopsebot RT#131865 [new]: https://rt.perl.org/Ticket/Display.html?id=131865 [REGRESSION] Looping over a HyperSeq in sink context does nothing (for <a b c>.hyper { say 2 })
10:40 Geth ¦ roast/hyper-race-rework: ee8c215ea0 | (Jonathan Worthington)++ | 2 files
10:40 Geth ¦ roast/hyper-race-rework: Tests for RT #130576
10:40 Geth ¦ roast/hyper-race-rework: review: https://github.com/perl6/roast/commit/ee8c215ea0
10:40 synopsebot RT#130576 [open]: https://rt.perl.org/Ticket/Display.html?id=130576 [CONC] .race & .hyper break [+] (1..100)
10:48 Geth ¦ roast/hyper-race-rework: 6713a08d99 | (Jonathan Worthington)++ | S07-hyperrace/stress.t
10:48 Geth ¦ roast/hyper-race-rework: Add some hyper/race stress tests
10:48 Geth ¦ roast/hyper-race-rework: review: https://github.com/perl6/roast/commit/6713a08d99
10:48 Geth ¦ rakudo/hyper-race-rework: 374ee3e264 | (Jonathan Worthington)++ | t/spectest.data
10:48 Geth ¦ rakudo/hyper-race-rework: Run hyper/race stress tests
10:48 Geth ¦ rakudo/hyper-race-rework: review: https://github.com/rakudo/rakudo/commit/374ee3e264
10:49 timo joined #perl6-dev
10:49 jnthn Merge of the branches in rakudo and roast would let us close 6 RTs regarding hyper/race
10:51 Zoffix \o/
10:51 timotimo re
10:51 jnthn RT #125978 is likely still busted because it boils down to the concurrent EVAL bugs, which I can reproduce without hyper/race
10:51 synopsebot RT#125978 [open]: https://rt.perl.org/Ticket/Display.html?id=125978 [CONC] [SEGV] (and other crashes) when using .hyper
10:55 jnthn Hmm, the gist from gfldex seems to still have issues
10:56 jnthn Not immediately clear why
11:04 jnthn Hm, though I figured it but no. Lunch time, then got meetings/other job, so will have to review the bug hunt later.
11:04 jnthn bbl
11:05 jnthn *continue the bug hunt
11:05 jnthn .tell AlexDaniel the new hyper/race implementation passes all the tests that the previous one did plus all the todo'd ones plus a load of new ones I've added in a branch that'd let us close 6 RTs; how do you feel about merging it, given we're close to release?
11:05 yoleaux jnthn: I'll pass your message to AlexDaniel.
11:31 Geth ¦ roast: dfffc0d7f4 | (Elizabeth Mattijsen)++ | S03-operators/set_multiply.t
11:31 Geth ¦ roast: Fix copy-pasto in comment
11:31 Geth ¦ roast: review: https://github.com/perl6/roast/commit/dfffc0d7f4
11:31 Geth ¦ roast: e53d2199ef | (Elizabeth Mattijsen)++ | S02-types/set.t
11:31 Geth ¦ roast: Unfudge tests for RT #131300
11:31 Geth ¦ roast: review: https://github.com/perl6/roast/commit/e53d2199ef
11:31 synopsebot RT#131300 [open]: https://rt.perl.org/Ticket/Display.html?id=131300 [BUG] MoarVM panic if you check for membership in undefined Set
11:34 Geth ¦ rakudo/nom: 8a88d14905 | (Elizabeth Mattijsen)++ | 10 files
11:34 Geth ¦ rakudo/nom: Streamline set operators handling of Any,Any
11:34 Geth ¦ rakudo/nom:
11:34 Geth ¦ rakudo/nom: - this fixes RT #131300
11:34 Geth ¦ rakudo/nom: - basically add Any,Failure:D and Failure:D,Any candidate for each op
11:34 Geth ¦ rakudo/nom:   - because coercions *can* fail
11:34 Geth ¦ rakudo/nom: - replacy Any,Any candidate with one that simply coerces the correct way
11:34 Geth ¦ rakudo/nom: - remove some Any,QuantHash / QuantHash,Any candidates
11:34 Geth ¦ rakudo/nom:   - to prevent MMD lookup ambiguities
11:34 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8a88d14905
12:01 llfourn joined #perl6-dev
12:05 jnthn OK, no meeting it turns out. So, more hyper/race today :)
12:10 dogbert2 yay
12:10 dogbert2 if no one else has already done it I could run some 'nasty' spectest on your branch
12:13 * dogbert2 does so
12:27 timotimo otherwise you'd have to have raced through the meeting, though perhaps the other attendees might object to you being so hyper
12:31 dogbert2 m: use Test; is-deeply (4,5,6,7).tail(-2**100), (), "can use ints over 64-bit in .tail" # fails on my 32-bit system
12:31 camelia rakudo-moar 8a88d1490: OUTPUT: «ok 1 - can use ints over 64-bit in .tail␤»
12:35 timotimo dogbert2: what does it return from the tail call? or does it blow up?
12:36 lizmat Zoffix: re RT #132313, I was considering stashing the string of the literal Rat somewhere for this purpose
12:36 synopsebot RT#132313 [open]: https://rt.perl.org/Ticket/Display.html?id=132313 .gist of some Rats does unnecessary Numification (say 1.111111111111111111111)
12:36 lizmat Zoffix: otherwise, I'm looking to your solution :-)
12:36 lizmat *forward
12:41 Zoffix lizmat: TimToady suggested basically that: generate a RatStr for rat literals with denoms >64
12:42 Zoffix m: say <1.111111111111111111111>.^name
12:42 camelia rakudo-moar 8a88d1490: OUTPUT: «RatStr␤»
12:42 Zoffix m: say <1.111111111111111111111>.gist
12:42 camelia rakudo-moar 8a88d1490: OUTPUT: «1.111111111111111111111␤»
12:42 lizmat ah, cool, yeah  :-)
12:47 Zoffix Tho looking at guts of Rat, that won't work. If we do the strict thing of having Rat type always have a uint64 denominator. I kinda had this bug on ice in my private stash until fixing uint64 and making Rat have uint64 denom and seeing what explodes.
12:47 Zoffix Kinda regret that ticket was filed :/
12:47 Zoffix m: say 1.111111111111111111111111111111111111111111111111111111111.nude
12:47 camelia rakudo-moar 8a88d1490: OUTPUT: «(1111111111111111111111111111111111111111111111111111111111 1000000000000000000000000000000000000000000000000000000000)␤»
12:47 Zoffix 'cause the problem is this ^ not .gist
12:49 lizmat m: dd &infix:<<+>> # works as expected
12:49 camelia rakudo-moar 8a88d1490: OUTPUT: «Sub+{is-pure}+{Precedence} infix:<+> = sub infix:<+> (Mu $?, Mu $?) { #`(Sub+{is-pure}+{Precedence}|26608096) ... }␤»
12:49 lizmat m: my $a = "&infix:<<+>>"; dd $a; dd ::($a)  # this doesn't
12:49 camelia rakudo-moar 8a88d1490: OUTPUT: «Str $a = "\&infix:<<+>>"␤Failure.new(exception => X::NoSuchSymbol.new(symbol => "\&infix:<<+>>"), backtrace => Backtrace.new)␤»
12:50 Geth ¦ rakudo/hyper-race-rework: ae9de58246 | (Jonathan Worthington)++ | src/core/Rakudo/Internals/HyperPipeline.pm
12:50 Geth ¦ rakudo/hyper-race-rework: Remove some debugging leftovers
12:50 Geth ¦ rakudo/hyper-race-rework: review: https://github.com/rakudo/rakudo/commit/ae9de58246
12:50 Zoffix 'cause &infix:<<+>> gets normalized to &infix:<+>
12:50 Zoffix m: my $a = "&infix:<+>"; dd $a; dd ::($a)
12:50 camelia rakudo-moar 8a88d1490: OUTPUT: «Str $a = "\&infix:<+>"␤Sub+{is-pure}+{Precedence} infix:<+> = sub infix:<+> (Mu $?, Mu $?) { #`(Sub+{is-pure}+{Precedence}|34079200) ... }␤»
12:50 jnthn ::(...) would need the normalized name
12:53 Zoffix m: my $a = BEGIN $*W.canonicalize_pair("&infix:", "+").substr: 1; dd $a; dd ::($a)
12:53 camelia rakudo-moar 8a88d1490: OUTPUT: «Str $a = "\&infix:<+>"␤Sub+{is-pure}+{Precedence} infix:<+> = sub infix:<+> (Mu $?, Mu $?) { #`(Sub+{is-pure}+{Precedence}|33190640) ... }␤»
12:53 Zoffix heh :)
12:55 dogbert2 timotimo: Cannot unbox 101 bit wide bigint into native integer
12:56 Zoffix dogbert2: are you sure you built latest and greatest rakudo?
12:56 Zoffix dogbert2: this is the same as the test you had problems with last week. These cover freshly-fixed bugs and you need latest rakudo for the tests to pass
12:57 Zoffix m: constant $a = "&infix" ~ $*W.canonicalize_pair: "", "+"; dd $a; dd ::($a)
12:57 camelia rakudo-moar 8a88d1490: OUTPUT: «"\&infix:<+>"␤Sub+{is-pure}+{Precedence} infix:<+> = sub infix:<+> (Mu $?, Mu $?) { #`(Sub+{is-pure}+{Precedence}|29459152) ... }␤»
12:57 jnthn dogbert2: And if you're testing my branch, it's missing some commits from nom
12:57 jnthn (I see those failures too, presume it's just 'cus the branch is behind)
12:59 Geth ¦ roast: b7c9f9ab1b | (Elizabeth Mattijsen)++ | S02-types/set.t
12:59 Geth ¦ roast: Streamline RT #131300 tests
12:59 Geth ¦ roast:
12:59 Geth ¦ roast: - don't use eval-lives-ok
12:59 Geth ¦ roast: review: https://github.com/perl6/roast/commit/b7c9f9ab1b
12:59 synopsebot RT#131300 [resolved]: https://rt.perl.org/Ticket/Display.html?id=131300 [BUG] MoarVM panic if you check for membership in undefined Set
13:01 Geth ¦ rakudo/hyper-race-rework: 82a38c291b | (Jonathan Worthington)++ | src/core/Channel.pm
13:01 Geth ¦ rakudo/hyper-race-rework: Don't lose original location of a Channel error
13:01 Geth ¦ rakudo/hyper-race-rework: review: https://github.com/rakudo/rakudo/commit/82a38c291b
13:01 timotimo i gots my new keyboard
13:03 dogbert2 jnthn, Zoffix: I'm running jnthn's branch
13:14 jnthn Well, that's errors improved...
13:14 jnthn https://gist.github.com/jnthn/dc43a3154c49a3a99e71cea6d2bfa91e
13:17 * jnthn pokes Geth
13:19 jnthn Oh well, I did a commit that improved erorr reporting to be as I showed
13:21 Geth ¦ rakudo/hyper-race-rework: ad0dd8e7d5 | (Jonathan Worthington)++ | 3 files
13:21 Geth ¦ rakudo/hyper-race-rework: Improve hyper/race errors
13:21 Geth ¦ rakudo/hyper-race-rework:
13:21 Geth ¦ rakudo/hyper-race-rework: Include the location where the hyper/race operation was initiated as
13:21 Geth ¦ rakudo/hyper-race-rework: well as the location where the error occurred in the worker, with an
13:21 Geth ¦ rakudo/hyper-race-rework: explanation.
13:21 Geth ¦ rakudo/hyper-race-rework: review: https://github.com/rakudo/rakudo/commit/ad0dd8e7d5
13:34 jnthn Alas, the better errors haven't made the seq bug obvious...
13:41 perlpilot joined #perl6-dev
13:46 dogbert2 jnthn: curveball, can there be a connection between the bug and RT #130796 ?
13:46 synopsebot RT#130796 [new]: https://rt.perl.org/Ticket/Display.html?id=130796 [CONC] Data races somewhere in SEQUENCE and/or continuation resuming code
13:51 jnthn I don't think so
13:54 dogbert2 ok, which bug are you trying to find?
13:54 jnthn The one in gfldex' gist
13:54 * dogbert2 looks
14:00 dogbert2 the gist spits out 146001
14:01 jnthn Yeah, run it a few times
14:01 jnthn It doesn't fail every time
14:01 dogbert2 now I got 'This Seq has already been iterated, and its values consumed'
14:02 jnthn Yup, tht's the problem
14:04 jnthn Still trying to get to the bottom of what's going wrong
14:04 jnthn Did improve error reporting for hyper/race along the way though :)
14:04 dogbert2 cool, the new implementation is already a lot better than before
14:05 dogbert2 m: say [+] (1..100).race
14:05 camelia rakudo-moar 8a88d1490: OUTPUT: «0␤»
14:06 dogbert2 stuff like the above works now
14:06 jnthn Yeah, already got tests for that in the roast branch
14:09 Zoffix dogbert2: then S02-types/set.t will likely hang for hyper-race-* branch. As the tests were unfudged for a fix that just landed
14:14 dogbert2 Zoffix: good to know
14:16 dogbert2 jnthn: if I run the code with RAKUDO_SCHEDULER_DEBUG I get messages like '[SCHEDULER] Heuristic queue progress deadlock situation detected'. Are these to be expected?
14:16 timotimo we should be able to put in a flag that saves a backtrace of where a seq first got exhasted, right? might have to put that in many places, but it could be quite a valuable tool - for performance reasons though it should be a setting-compile-time thing
14:18 * dogbert2 notes that when running with asan the end result sometimes differ from 146001
14:22 jnthn timotimo: I've done that, and just added logging the thread ID
14:22 jnthn Hacked in rather than so neatly though :)
14:22 jnthn So it turns out that the threads race over the Seq but how on earth
14:33 jnthn ohhhh
14:34 jnthn duh
14:34 jnthn So
14:34 jnthn my @l = 1, ½, (1/3).Num, ∞, :1a, [:2b, c => {:4e, :5f} ], <a b c>.Seq;
14:34 jnthn It does that
14:34 jnthn Then
14:34 jnthn my @l2 = |@l xx $repetitions;
14:34 jnthn All of those now reference the same Seq
14:34 jnthn All the repetitions, that is
14:34 jnthn .cache on a Seq is atomic/thread-safe
14:35 jnthn gah,
14:35 jnthn is *not*
14:35 jnthn Why didn't I spot that sooner :/
14:35 jnthn So yeah, it's not a hyper/race bug at all
14:36 jnthn m: loop { my $s = <a b c>.Seq; await (start $s.cache), (start $s.cache) }
14:36 camelia rakudo-moar 8a88d1490: OUTPUT: «(signal XCPU)»
14:38 timotimo this is an X CPU
14:41 timotimo there should be something performance-friendly we can do to make it barf loudly when seqs are concurrently cached
14:41 timotimo not a lock, but perhaps an atomic var or something?
14:41 jnthn Atomic vars ain't *that* cheap
14:42 timotimo mhm
14:42 timotimo if we only check once at beginning and end?
14:44 timotimo could of course also be reserved for a compile-time-switched debug mode
14:44 jnthn Anyway, I think that explains what's going on
14:45 timotimo you know ... if the env hash is fixed at beginning-of-program-time, and we cache it, we could actually replace accesses to it with constants in spesh and throw out branches that way
14:45 timotimo like, use that to keep in or throw out debugging code that can be env-var-switched at run time
14:48 jnthn .tell gfldex I figured it out, it's not a hyper/race bug after all, but rather that there is a race because the same Seq is re-used many times, and so threads race to .cache it, which is not a threadsafe operation. Do it as `my @l2 = |(1, ½, (1/3).Num, ∞, :1a, [:2b, c => {:4e, :5f} ], <a b c>.Seq) xx $repetitions;` and things work ('cus it thunks the LHS of xx and generates separate Seqs)
14:48 yoleaux jnthn: I'll pass your message to gfldex.
14:54 jnthn Semantics question!
14:54 jnthn What should for do?
14:54 jnthn ;)
14:54 jnthn So, given
14:54 jnthn for something() { }
14:55 jnthn Should you be able to look at that code and know that your for loop will execute sequentially?
14:55 jnthn And you'd have to write hyper for something() { } or race for something() { } to get the other thing?
14:56 timotimo oh, because something might return a HyperSeq
14:56 jnthn Right
14:59 timotimo requiring you to re-state that hyper's fine there might be a good idea since it's the block after that that will be impacted
14:59 jnthn Yeah
14:59 timotimo since an api change in something() could bust your code, too
14:59 jnthn Yes, that kind of "at a distance" thing is my concern.
15:01 perlpilot If restating the hyperness is a good thing (I think it is), what would `for something() { }` do when something() returns a HyperSeq?  Will it "demote" it to a regular Seq?  Or something else?
15:02 jnthn It'll just obtain the .iterator
15:02 jnthn So, it's consume the results of the parallel operation sequentially
15:03 perlpilot ah. ok.
15:03 perlpilot makes sense.
15:03 jnthn ooh, found a bug
15:03 Zoffix What happens with something().map({block;})?
15:03 Zoffix huggable: hyper
15:03 huggable Zoffix, New hyper/race implementation exploration: https://gist.github.com/jnthn/754292747161f95093d80b207d077d74
15:03 Zoffix um, not that
15:03 Zoffix https://6guts.wordpress.com/2017/03/16/considering-hyperrace-semantics/
15:04 jnthn Zoffix: .map is interpreted in the language of the object you call it on
15:04 jnthn So if it's a HyperSeq or RaceSeq, it chains another parallel operation onto the chain of them
15:04 Zoffix so we'll no longer have a "for is a map" thing?
15:05 jnthn Well, or at least we'll change it to "it's a .serial.map"
15:05 jnthn Though today we already don't implement many cases of for by calling map
15:05 jnthn for 1..100 { } # special cased to a while loop
15:06 mst this is why I liked 'foreach' because it implied you could have a parallel version called 'forall'
15:06 jnthn Other simple cases for for are compiled into code that works with the iterator directly, to allow block inlining
15:06 mst of course everybody else hated typing the extra four characters
15:06 jnthn forall wouldn't convey hyper or race semantics, though
15:07 [Coke] froosh.
15:07 Zoffix If my something().map block will break if something()'s API changes and my something().grep block will break, then I don't see why the line gets drawn for `for something()`
15:07 Zoffix `hyper for something()` that's a new syntax innit?
15:07 jnthn `hyper for blah() { }` and `race for blah() { }` make those semantics clear
15:07 jnthn No
15:07 jnthn lazy for blah() { } is already a thing :)
15:08 jnthn m: hyper for 1..100 { }
15:08 camelia rakudo-moar 8a88d1490: ( no output )
15:08 jnthn Already parses
15:08 jnthn No idea what it compiles into :P
15:08 Zoffix m: my @a = lazy for rand {.say}
15:08 camelia rakudo-moar 8a88d1490: OUTPUT: «0.58192547563502␤»
15:08 Zoffix doesn't seem to work
15:08 Zoffix m: my @a = lazy(for rand {.say})
15:08 camelia rakudo-moar 8a88d1490: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in argument list; couldn't find final ')' (corresponding starter was at line 1)␤at <tmp>:1␤------> 3my @a = lazy(for 7⏏5rand {.say})␤»
15:11 jnthn The reason to draw the line with `for` is because typically, `for` is considered an imperative construct
15:11 jnthn While map is considered a functional one
15:11 perlpilot +1
15:11 Zoffix ok
15:14 jnthn Fun project for the future: figure out if we can somehow do smart/dynamic decision-making on batch size.
15:14 dogbert2 jnthn: have you looked at RT #125978
15:14 synopsebot RT#125978 [open]: https://rt.perl.org/Ticket/Display.html?id=125978 [CONC] [SEGV] (and other crashes) when using .hyper
15:15 jnthn Yeah, but that's the one that is failing 'cus of EVAL + threads
15:15 jnthn So no amount of fixing hyper/race will help it
15:22 jnthn Provided RT #127364 is written so as not to fall into the sequential for trap then it's faster with :4096batch
15:22 synopsebot RT#127364 [rejected]: https://rt.perl.org/Ticket/Display.html?id=127364 [PERF] .race makes code run 5 times slower
15:23 jnthn oh, though it's rejected...wat...
15:23 timotimo hmm, how hard is it to try out values for batches and re-adjust dynamically?
15:25 jnthn Perhaps not terribly hard
15:25 jnthn Maybe we can do it with timing
15:26 jnthn And have some idea of what "too short" is
15:27 jdv79 jnthn: i'm gonna guess based on your comment on that ticket of mine that you can't repro?
15:30 jnthn I could, I just had some memory of a mention that the problem could occasionally come up under the previous scheduler
15:31 jnthn If so, it'd change the direction I'd look in
15:31 buggable New CPAN upload: Sparrowdo-Prometheus-0.0.1.tar.gz by MELEZHIK https://cpan.metacpan.org/authors/id/M/ME/MELEZHIK/Perl6/Sparrowdo-Prometheus-0.0.1.tar.gz
15:36 jdv79 it didn't for me.  maybe someone else.
15:36 jnthn OK, so probably it is something about scheduling.
15:36 jdv79 ah
15:37 jnthn I musta remembered wrong
15:37 jdv79 is there an easy way to tell which thread to poke at besides guessing based on a bt of each?
15:37 jdv79 i have no idea how to debug multithreaded stuff
15:38 jdv79 i should probably read some stuff on the subject
15:59 Geth ¦ rakudo/hyper-race-rework: 41729e93ec | (Jonathan Worthington)++ | src/core/Rakudo/Internals/HyperRaceSharedImpl.pm
15:59 Geth ¦ rakudo/hyper-race-rework: Fix bugs in sink of HyperSeq/RaceSeq
15:59 Geth ¦ rakudo/hyper-race-rework:
15:59 Geth ¦ rakudo/hyper-race-rework: Remember to mark batches consumed, and construct the Sink correctly.
15:59 Geth ¦ rakudo/hyper-race-rework: review: https://github.com/rakudo/rakudo/commit/41729e93ec
16:00 Geth ¦ roast/hyper-race-rework: 4c5ef0c10f | (Jonathan Worthington)++ | 2 files
16:00 Geth ¦ roast/hyper-race-rework: Test sink of HyperSeq/RaceSeq
16:00 Geth ¦ roast/hyper-race-rework: review: https://github.com/perl6/roast/commit/4c5ef0c10f
16:11 jnthn If anyone would like to help with hyper/race, there are tasks both easy and adventurous :)
16:11 jnthn I've updated https://docs.google.com/spreadsheets/d/1kpSb8LoskHSbM1FQvWdQ269rlRkU8vh5A_ElpN3Qay4/edit?usp=sharing
16:12 jnthn There's lots of LHF test writing; everything marked "Needs tests" just needs a test writing in S07-hyperrace/hyper.t and S07-hyperrace/race.t
16:13 jnthn .Int and .Numeric are LHF, just delegate to .cache like it says and add tests
16:13 Geth ¦ rakudo/hyper-race-rework: d74ba04135 | (Jonathan Worthington)++ | 2 files
16:13 Geth ¦ rakudo/hyper-race-rework: More direct hyper -> race and vice versa
16:13 Geth ¦ rakudo/hyper-race-rework:
16:13 Geth ¦ rakudo/hyper-race-rework: No need to go via a sequential iterator and bottleneck the chain.
16:13 Geth ¦ rakudo/hyper-race-rework: review: https://github.com/rakudo/rakudo/commit/d74ba04135
16:13 Geth ¦ roast/hyper-race-rework: bdb558a753 | (Jonathan Worthington)++ | 2 files
16:13 Geth ¦ roast/hyper-race-rework: Test hyper -> race, race -> hyper
16:13 Geth ¦ roast/hyper-race-rework: review: https://github.com/perl6/roast/commit/bdb558a753
16:14 jnthn Some others are a bit more fun
16:14 Geth ¦ roast/hyper-race-rework: 1ee99dbeef | (Jonathan Worthington)++ | 2 files
16:14 Geth ¦ roast/hyper-race-rework: Tests for .Seq on HyperSeq and RaceSeq
16:14 Geth ¦ roast/hyper-race-rework: review: https://github.com/perl6/roast/commit/1ee99dbeef
16:14 jnthn Since they require writing a pipeline components
16:14 jnthn s/a//
16:18 ugexe what causes .pick to need to see all items first?
16:18 Geth ¦ rakudo/hyper-race-rework: 836761129c | (Jonathan Worthington)++ | 2 files
16:18 Geth ¦ rakudo/hyper-race-rework: HyperSeq/RaceSeq are never lazy
16:18 Geth ¦ rakudo/hyper-race-rework: review: https://github.com/rakudo/rakudo/commit/836761129c
16:18 Geth ¦ roast/hyper-race-rework: 79f4e97c35 | (Jonathan Worthington)++ | 2 files
16:18 Geth ¦ roast/hyper-race-rework: Test .is-lazy method on HyperSeq and RaceSeq
16:18 Geth ¦ roast/hyper-race-rework: review: https://github.com/perl6/roast/commit/79f4e97c35
16:19 jnthn I'm the wrong person to ask about probability, but I figure if it doesn't know how many items there are in total it can't do a fair job of picking?
16:30 jnthn Enough on hyper/race for today
16:30 jnthn bbl
16:44 robertle joined #perl6-dev
16:49 AlexDaniel` joined #perl6-dev
16:50 AlexDaniel` o/
16:50 AlexDaniel \o
16:50 yoleaux 11:05Z <jnthn> AlexDaniel: the new hyper/race implementation passes all the tests that the previous one did plus all the todo'd ones plus a load of new ones I've added in a branch that'd let us close 6 RTs; how do you feel about merging it, given we're close to release?
16:51 AlexDaniel` jnthn: let's merge
16:51 AlexDaniel` my thinking is that hyper/race didn't really work anyway (only in some rare situations)
16:52 AlexDaniel` and there was no toaster run yet, so we'll see if there's any fallout
17:04 timotimo +1
17:05 AlexDaniel` and also I'd much rather see functional or semi-functional hyper/race in the * release
17:05 AlexDaniel` … than what we have now
17:07 Zoffix +1 for merge
17:15 ggoebel joined #perl6-dev
17:18 AlexDaniel` Zoffix: hey, something is wrong with rakudo.party
17:18 AlexDaniel` Zoffix: RT #132284 is an open ticket but does not show up
17:18 synopsebot RT#132284 [new]: https://rt.perl.org/Ticket/Display.html?id=132284 [REGRESSION] .gist of a Map was arguably better in the past (say Map.new(‘a’ => ‘b’))
17:18 AlexDaniel` unless I'm blind
17:19 AlexDaniel` pretty sure I didn't delete it
17:20 Zoffix AlexDaniel`: no idea. I deleted some spam this morning...
17:21 Zoffix But that map thing was done on purpose I think
17:21 Zoffix Yup. it used to .perl the pairs, not .gist them
17:22 Zoffix c: 2017.07 %(:42a, :70b).gist.say; Map.new((:42a, :70b)).gist.say
17:22 committable6 Zoffix, ¦2017.07: «{a => 42, b => 70}␤Map.new((:a(42),:b(70)))»
17:23 * Zoffix rejects the ticket
17:28 AlexDaniel` ಠ_ಠ
17:28 AlexDaniel` :)
17:29 Zoffix It's pretty easy to argue why new behaviour is good: https://rt.perl.org/Ticket/Display.html?id=132284#txn-1500293
17:29 Zoffix And really, the ticket is about Pair.gist vs Pair.perl
17:29 Zoffix (which is a separate topic that can be argued)
17:31 AlexDaniel` Zoffix: fwiw re “Kinda regret that ticket was filed” – why not change the title to your liking?
17:31 Zoffix AlexDaniel`: 'cause I wanted to fix it on my own when I think of a good way to fix it, which is why I kept it in my private stash
17:32 Zoffix No I feel rushed
17:33 Zoffix And there were already suggestions to attach a hidden string, which wouldn't've solved the actual issue.
17:33 Zoffix s/^No/Now/;
17:34 AlexDaniel` please don't feel rushed. This was mentioned recently somewhere, so I decided that it's better to have a ticket in case someone mentions it again
17:35 Zoffix Yeah, but now I'm an asshole for squatting on a ticket someone else could fix.
17:35 AlexDaniel` it's ok
17:35 AlexDaniel` buggable: bugs
17:35 buggable AlexDaniel`, Total: 1628; 6.D: 2; 9999: 9; @LARRY: 28; ANNOYING: 8; BOOTSTRAP: 4; BUG: 591; BUILD: 12; CONC: 44; DOCS: 1; EXOTICTEST: 3; FLAP: 1; GLR: 3; IO: 20; JVM: 48; LHF: 7; LTA: 176; MATH: 5; META: 2; MOAR: 2; MOLD: 233; NATIVECALL: 21; NYI: 58; OO: 13; OPTIMIZER: 8; OSX: 2; PARSER: 5; PERF: 27; POD: 19; PRECOMP: 15; REGEX: 46; REGRESSION:
17:35 buggable AlexDaniel`, 38; REPL: 6; RFC: 61; RT: 2; SECURITY: 2; SEGV: 28; SINK: 1; SITE: 1; SPESH: 1; STAR: 7; TESTCOMMITTED: 12; TESTNEEDED: 34; TODO: 13; UNI: 27; UNTAGGED: 282; WEIRD: 2; WINDOWS: 4; See http://fail.rakudo.party/ for details
17:35 AlexDaniel` luckily there are other 1627 tickets to work on :)
17:43 Zoffix AlexDaniel`: as for tickets not showing up on fail party. No idea why. In the past, I noticed some of Zefram's tickets weren't showing up either :o
17:44 Zoffix hm.. filed on "Thu, 12 Oct 2017 22:59:36 -0700"
17:45 Zoffix some race on day-switch maybe: https://github.com/zoffixznet/r6/blob/master/bin/db-builder.pl#L91
17:45 * Zoffix changes to fetch for 1+ extra day
17:51 Zoffix ZofBot: dates R HRD
17:51 ZofBot Zoffix, Come, get you down stairs
17:51 Zoffix ZofBot: are you saying I'm drunk and should go home?
17:51 ZofBot Zoffix, Ye say honestly
17:52 Zoffix :D
17:55 cog_ joined #perl6-dev
18:01 tryad joined #perl6-dev
18:01 tryad left #perl6-dev
18:09 timotimo damn it
18:09 timotimo i just replied to the wrong ticket
18:11 timotimo my reply hasn't reached rt yet
18:11 timotimo maybe i only posted it to the mailing list?
18:11 timotimo yep!
18:12 timotimo oh, i did get it into rt
18:12 timotimo man, email is complicated
18:15 AlexDaniel` can we, please, open rakudo/issues? :S
18:19 Zoffix Open it :)
18:20 perlpilot do we really want both RT and github issues?  Or are you proposing to move all of the existing RTs over too?
18:20 perlpilot or am I jumping to conclusions?
18:22 Zoffix perlpilot: the proposal was to open both and go Darwinian
18:23 AlexDaniel` yeah
18:23 Zoffix Also, I recall the stated caveat that people who don't deal with tickets on a regular basis might not want to oppose the idea that much since they don't suffer RT's suckiness :)
18:25 AlexDaniel` well, they're free to express their opinion, but “I don't see any problem with RT” is not going to count for sure
18:25 perlpilot Using both seems to be asking for more chaos.
18:25 AlexDaniel` perlpilot: explain
18:26 Zoffix perlpilot: sure, but it needs to be viewed in context that the alternative is what we have now
18:26 perlpilot (I have no problem using github issues BTW)
18:28 perlpilot AlexDaniel`: I can imagine problems and I can imagine solutions, so maybe I'll set my imagination aside for a bit and let you guys carry on without naysaying :-)
18:36 Zoffix gah, my love for `obj.meth:` syntax bites me again! This time it's not a ternary but this instead:
18:36 Zoffix $rem.add: 'get starship fuel', when => DateTime.new: :2222year,
18:36 Zoffix :who<Zoffix>, :where<space>;
18:36 Zoffix Spent 5m figuring out why my `who` and `where` are missing from the database :)
18:39 Zoffix ZofBot: death to parens!
18:39 ZofBot Zoffix, For my part, am sorry it is turn'd to a drinking
18:54 Zoffix m: await Promise.at(now - 10).then: {say "meow"}
18:54 camelia rakudo-moar 8a88d1490: OUTPUT: «(timeout)»
18:55 Zoffix This is really a bug, innit? It should just fire right away. 'cause otherwise if my "at" is really close to `now` I risk races that hang my program
18:55 Zoffix s: Promise, 'at', \(now)
18:55 SourceBaby Zoffix, Sauce is at https://github.com/rakudo/rakudo/blob/8a88d1490/src/core/Promise.pm#L228
18:55 Zoffix m: await Promise.in(-10).then: {say "meow"}
18:55 Zoffix This too :(
18:56 camelia rakudo-moar 8a88d1490: OUTPUT: «(timeout)»
18:58 Zoffix AlexDaniel`: BTW, was that bug ever fixed? Whatever made IRC::Client not work?
18:59 Zoffix 'cause now I'll have to upgrade to get the $*SCHEDULER.cue(:in) fix, but I can't 'cause of that bug :)
19:00 AlexDaniel` RT #132191
19:00 synopsebot RT#132191 [new]: https://rt.perl.org/Ticket/Display.html?id=132191 [REGRESSION] Possible rakudo regression (issues with IRC::Client)
19:00 AlexDaniel` I… didn't update rakudo on the server since then…
19:01 AlexDaniel` Zoffix: I guess you'll have to try it
19:02 AlexDaniel` c: HEAD https://gist.githubusercontent.com/AlexDaniel/4c1dbf4de7ceade927d6856c2cfaa693/raw/dca67fef9bdcc3a14292bf083540bdcf1c863fd2/irc-client-bisect.p6
19:02 committable6 AlexDaniel`, Successfully fetched the code from the provided URL.
19:02 committable6 AlexDaniel`, https://gist.github.com/827153e2f91fee5ad3dbcbae11ef9d97
19:02 AlexDaniel` oh gosh
19:03 Zoffix c: HEAD https://gist.githubusercontent.com/zoffixznet/548a97cc6bf4282fb6b752b1e8e6b7a2/raw/34e0a5ff6a26591c8686c6b7e517c1f8f1f4027a/p6.p6
19:03 committable6 Zoffix, Successfully fetched the code from the provided URL.
19:03 committable6 Zoffix, ¦HEAD(8a88d14): ««timed out after 10 seconds» «exit signal = SIGHUP (1)»»
19:03 AlexDaniel` c: HEAD https://gist.githubusercontent.com/zoffixznet/548a97cc6bf4282fb6b752b1e8e6b7a2/raw/34e0a5ff6a26591c8686c6b7e517c1f8f1f4027a/p6.p6
19:03 committable6 AlexDaniel`, Successfully fetched the code from the provided URL.
19:03 AlexDaniel` again after precomp
19:03 committable6 AlexDaniel`, ¦HEAD(8a88d14): «◀▬▬ _ Attempting to connect to server␤«timed out after 10 seconds» «exit signal = SIGHUP (1)»»
19:03 AlexDaniel` hmm
19:03 Zoffix k, I'll stuff some debug info into the sock tonight and see what makes it unhappy
19:04 Zoffix |2h IRC::Client bruh
19:04 ZofBot Zoffix, Will remind you on 2017-10-17T17:04:12.850581-04:00 about IRC::Client bruh
19:04 AlexDaniel` c: HEAD https://gist.githubusercontent.com/zoffixznet/548a97cc6bf4282fb6b752b1e8e6b7a2/raw/34e0a5ff6a26591c8686c6b7e517c1f8f1f4027a/p6.p6
19:04 committable6 AlexDaniel`, Successfully fetched the code from the provided URL.
19:04 committable6 AlexDaniel`, ¦HEAD(8a88d14): «◀▬▬ _ Attempting to connect to server␤«timed out after 10 seconds» «exit signal = SIGHUP (1)»»
19:04 AlexDaniel` yeah, still broken
19:04 AlexDaniel` (I had to send a message to MahBot on #zofbot btw, because that's how it is tested)
19:05 AlexDaniel` so it connects just fine but is unable to reply to anything
19:13 Zoffix m: await Promise.at(now+0.001).then: {42.say}
19:13 camelia rakudo-moar 8a88d1490: OUTPUT: «Minimum timer resolution is 1ms; using that instead of -0.365112187335619ms␤42␤  in block <unit> at <tmp> line 1␤»
19:13 AlexDaniel` “Message body is not shown because it is too large.”
19:13 AlexDaniel` (╯°□°)╯︵ ┻━┻
19:13 Zoffix this is also whack. I didn't specify no timer resolutions. Just a datetime
19:13 Zoffix (╯°□°)╯︵ ┻━┻
19:14 Zoffix ZofBot: CATCH! (╯°□°)╯︵ ┻━┻
19:14 ZofBot Zoffix, You swore to us, And you did swear that oath at Doncaster, That you did nothing purpose 'gainst the state, Nor claim no further than your new-fall'n right, The seat of Gaunt, dukedom of Lancaster
19:16 Zoffix wait a second...
19:18 AlexDaniel` buggable: tags
19:18 buggable AlexDaniel`, Total: 1629; 6.D: 2; 9999: 9; @LARRY: 28; ANNOYING: 8; BOOTSTRAP: 4; BUG: 591; BUILD: 12; CONC: 44; DOCS: 1; EXOTICTEST: 3; FLAP: 1; GLR: 3; IO: 20; JVM: 48; LHF: 7; LTA: 176; MATH: 5; META: 2; MOAR: 2; MOLD: 233; NATIVECALL: 21; NYI: 58; OO: 13; OPTIMIZER: 8; OSX: 2; PARSER: 5; PERF: 27; POD: 19; PRECOMP: 15; REGEX: 46; REGRESSION:
19:18 buggable AlexDaniel`, 38; REPL: 6; RFC: 61; RT: 2; SECURITY: 2; SEGV: 28; SINK: 1; SITE: 1; SPESH: 1; STAR: 7; TESTCOMMITTED: 12; TESTNEEDED: 35; TODO: 13; UNI: 27; UNTAGGED: 283; WEIRD: 2; WINDOWS: 4; See http://fail.rakudo.party/ for details
19:18 AlexDaniel` 9999: 9 :)
19:19 Geth ¦ roast: cedf738d1a | (Zoffix Znet)++ | S17-procasync/stress.t
19:19 Geth ¦ roast: Fix plan
19:19 Geth ¦ roast:
19:19 Geth ¦ roast: A test was moved[^1], but plan never adjusted
19:19 Geth ¦ roast:
19:19 Geth ¦ roast: [1] https://github.com/perl6/roast/commit/a5b3bb1669421fa5350d47819307
19:19 Geth ¦ roast: review: https://github.com/perl6/roast/commit/cedf738d1a
19:22 Zoffix m: react whenever Supply.interval: -0.0001 { .say; done if $++ > 10 }
19:22 camelia rakudo-moar 8a88d1490: OUTPUT: «Minimum timer resolution is 1ms; using that instead of -0.1ms␤0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤11␤  in code  at <tmp> line 1␤»
19:22 yoleaux 19:21Z <HoboWithAShotgun> Zoffix: https://github.com/zoffixznet/perl6-Color/pull/8
19:22 Zoffix m: react whenever Supply.interval: -0.001 { .say; done if $++ > 10 }
19:22 Zoffix (hangs)
19:22 moritz GIGO?
19:22 camelia rakudo-moar 8a88d1490: OUTPUT: «(timeout)0␤»
19:23 Zoffix So I'm gonna make it: if `$at` is negative, treat it as zero. If `$in` is negative, pass it through to-millis routine so it whines about too-small delay
19:23 Zoffix s/treat it as zero/fire up the stuff without delay/;
19:24 Zoffix Also, what's this times stuff?: https://github.com/rakudo/rakudo/blob/8a88d1490/src/core/ThreadPoolScheduler.pm#L635
19:25 Zoffix Looks like it's scheduling to fire the stuff $times times after waiting for delay, rather than firing stuff after delay $times times
19:25 * Zoffix isn't sure which one is wanted
19:27 patrickz joined #perl6-dev
19:29 * AlexDaniel` goes to take a nap
19:30 timotimo do we actually ever call cue with a times parameter?
19:31 Zoffix timotimo: brief grep doesn't turn up anything and probably why the bug went unnoticed
19:31 timotimo thought so
19:31 Zoffix m: $*SCHEDULER.cue: {say time}, :3times
19:31 camelia rakudo-moar 8a88d1490: OUTPUT: «1508268717␤»
19:32 Zoffix m: $*SCHEDULER.cue: {say time}, :3times
19:32 camelia rakudo-moar 8a88d1490: OUTPUT: «1508268722␤1508268722␤1508268722␤»
19:32 timotimo m: $*SCHEDULER.cue: {say time; sleep 1}, :3times
19:32 camelia rakudo-moar 8a88d1490: OUTPUT: «1508268743␤»
19:32 timotimo m: $*SCHEDULER.cue: {say time; sleep 1}, :3times; sleep 5
19:32 camelia rakudo-moar 8a88d1490: OUTPUT: «1508268751␤1508268751␤1508268751␤»
19:33 timotimo ah, with no delay, of course it'd fire at the same time
19:33 Zoffix m: $*SCHEDULER.cue: {say time; sleep 1}, :3times, :1delay; sleep 5
19:33 camelia rakudo-moar 8a88d1490: OUTPUT: «1508268798␤1508268798␤1508268798␤»
19:34 Zoffix The supposed behaviour isn't clear to me
19:34 timotimo i'm not sure either
19:35 Zoffix Ah ok, the docs say "$times tells the scheduler how many times to run the code."
19:35 Zoffix So then it's right
19:35 Zoffix Weird feature, but ok :)
19:35 timotimo fair enough
19:38 Zoffix gonna fix the negative delay stuff after relocating; need to take a better look at the code :)
19:38 * Zoffix &
20:14 Zoffix Would be nice to give Windows a little love for this release. It's possible bdfoy will finish his book before next R* release so there might be an influx of users + Christmas will probably see some people who didn't like our compiler a year ago trying out what we're up to.
20:14 Zoffix There was some stresstest hanging last time I tried running it
20:14 Zoffix (on win10)
20:21 buggable New CPAN upload: App-Cpan6-0.6.16.tar.gz by TYIL https://cpan.metacpan.org/authors/id/T/TY/TYIL/Perl6/App-Cpan6-0.6.16.tar.gz
21:50 MasterDuke huh, `use fatal` doesn't work?
21:53 timotimo doesn't in what way?
21:53 timotimo m: use fatal; my $foo = Failure.new; say "test"
21:53 camelia rakudo-moar 8a88d1490: OUTPUT: «Failed␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
21:54 timotimo m:            my $foo = Failure.new; say "test"
21:54 camelia rakudo-moar 8a88d1490: OUTPUT: «test␤»
21:56 MasterDuke hm. i'm getting `Regex object coerced to string (please use .gist or .perl to do that)   in block  at -e line 1`, but wanted a full backtrace and don't one even with --ll-exception
21:57 MasterDuke and use fatal
21:57 timotimo yeah, that's a warning, isn't it?
21:57 timotimo you could try CONTROL { say .backtrace.full }
21:58 MasterDuke timotimo++ that works
21:58 timotimo ecool
21:59 MasterDuke heh, though that did also cause `MoarVM panic: Trying to unwind over wrong handler` as the very last output
21:59 timotimo oops
21:59 timotimo did you put an actual try in front of the CONTROL block? it wasn't meant like that %)
21:59 MasterDuke nope
22:00 timotimo OK
22:01 MasterDuke this is exactly what i ran (with a modified rakudo though): perl6 --ll-exception -e 'use fatal; use MONKEY; for "a".."f" { my $r = rx/$_/; "hello" ~~ /$r/; CONTROL { say .backtrace.full } }'
22:02 MasterDuke same thing with both uses removed
22:07 MasterDuke huh, it's something about my (local) modifications to INTERPOLATE
22:23 Zoffix MasterDuke: `use fatal` fatalizes Failures, not warnings.
22:23 Zoffix And it's auto-enabled within try blocks.
22:23 Zoffix m: $ = +"a"; say "alive"
22:23 camelia rakudo-moar 8a88d1490: OUTPUT: «alive␤»
22:23 Zoffix m: use fatal; $ = +"a"; say "alive"
22:23 camelia rakudo-moar 8a88d1490: OUTPUT: «Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5a' (indicated by ⏏)␤  in block <unit> at <tmp> line 1␤␤»
22:24 Zoffix m: try { $ = +"a"; say "alive" }
22:24 camelia rakudo-moar 8a88d1490: ( no output )
22:24 Zoffix m: try { no fatal; $ = +"a"; say "alive" }
22:24 camelia rakudo-moar 8a88d1490: OUTPUT: «alive␤»
22:31 evalable6 joined #perl6-dev
22:36 MasterDuke i know i've made that mistake before. i must be thinking of Perl 5 `use warning 'FATAL'`
22:38 MasterDuke heh. we could swap that, `use fatal :warn`
22:45 timotimo fatal warn :use
22:46 gfldex jnthn: it seams that my .hyper test seams not to fire (often) when the loop is within the script. Also I got it to fire more frequently. updated in https://gist.github.com/b9914d412c807f45d2d041d45726f2b2
22:46 yoleaux 14:48Z <jnthn> gfldex: I figured it out, it's not a hyper/race bug after all, but rather that there is a race because the same Seq is re-used many times, and so threads race to .cache it, which is not a threadsafe operation. Do it as `my @l2 = |(1, ½, (1/3).Num, ∞, :1a, [:2b, c => {:4e, :5f} ], <a b c>.Seq) xx $repetitions;` and things work ('cus it thunks the LHS of xx and generates separate Seqs)
22:47 * gfldex goes to test without a .Seq
22:48 MasterDuke m: <warn use fatal>.combinations.pick.say
22:48 camelia rakudo-moar 8a88d1490: OUTPUT: «(warn)␤»
22:48 MasterDuke oops
22:49 MasterDuke m: <warn use fatal>.permutations.pick.say
22:49 camelia rakudo-moar 8a88d1490: OUTPUT: «(use warn fatal)␤»
22:58 ZofBot joined #perl6-dev
22:58 gfldex .tell jnthn is .cache.hyper itself not threadsafe or are are multiple .cache calls on the same Seq unsafe? (And how the hell do I doc that?)
22:58 yoleaux gfldex: I'll pass your message to jnthn.
22:59 Zoffix gfldex: multiple .cache calls. They mutate $!list attribute inside the seq
23:01 Zoffix Not sure what the new Seq looks like, but Seq.iterator is also not thread safe (unless I'm misunderstanding what is and isn't threadsafe)
23:02 gfldex I'm not sure if I still like Seq very much. :->
23:03 Zoffix and wouldn't reifying it also not be thread safe since it's mutating iterator
23:03 Zoffix ZofBot: my world is collapsing on itself! HALP
23:03 ZofBot Zoffix, In such a night as this, When the sweet wind did gently kiss the trees, And they did make no noise- in such a night, Troilus methinks mounted the Troyan walls, And sigh'd his soul toward the Grecian tents, Where Cressid lay that night
23:05 gfldex Luckily github can tell us who canned those worms. :P
23:21 BenGoldberg joined #perl6-dev
23:22 timotimo an upcoming (but not before this month's release) change to VMArray inside moarvm will make concurrent .cache calls not crash, only give problematic data - depending on whether the code uses push or bindpos it'll either put values calculated for the same spot in different places or "just" calculate any given value multiple times
23:43 evalable6 joined #perl6-dev

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary