buggable New CPAN upload: App-Bob-0.5.0.tar.gz by TYIL cpan.metacpan.org/authors/id/T/TY/...5.0.tar.gz 04:01
New CPAN upload: App-Bob-0.4.0.tar.gz by TYIL cpan.metacpan.org/authors/id/T/TY/...4.0.tar.gz 04:11
New CPAN upload: App-Cpan6-0.6.2.tar.gz by TYIL cpan.metacpan.org/authors/id/T/TY/...6.2.tar.gz 06:01
[Tux] This is Rakudo version 2017.09-432-gd6a9edacf built on MoarVM version 2017.09.1-594-gb9d3f6da 07:00
csv-ip5xs 1.197 - 1.219
test 8.509 - 8.513
test-t 3.164 - 3.184
csv-parser 0.863 - 0.903
lizmat Files=1227, Tests=75680, 320 wallclock secs (14.85 usr 5.20 sys + 2216.59 cusr 210.91 csys = 2447.55 CPU) 08:13
samcv . 08:19
releasable6, status 08:22
releasable6 samcv, Next release in 4 days and ≈10 hours. 1 blocker. Changelog for this release was not started yet
samcv, Details: gist.github.com/8ace9a3240e8fda055...3960532702
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:23
jnthn morning o/ 08:56
moritz \jnthn 08:58
jnthn Oh no, I've been captured!
moritz exits the scope
Geth roast: c95355583a | (Jonathan Worthington)++ | S02-types/WHICH.t
HyperWorkBuffer is going away

This was the only mention of it in the whole test suite. It was an implementation details of the previous hyper/race mechanism, which is being replaced.
09:03
jnthn So, S03-metaops/eager-hyper.t passes in full, as does S07-hyperrace/hyper.t 09:10
(With my branch)
Geth nqp: 872ca4c380 | (Samantha McVey)++ | t/nqp/038-quotes.t
Add 10 more q and qq quote tests
09:11
jnthn In other words, my new impl straight off passes all the spectests we have for hyper and race :)
The bad news is that we don't have many of those 09:12
gfldex you could try to golf gist.github.com/gfldex/b9914d412c8...d45726f2b2 a little to get a proper stresstest
whereby the hitchance is only 10% 09:14
I may have a better test but need to rush to work now. 09:15
gfldex rushes
jnthn gfldex: I've got 9 hyper/race RTs to go through, all of which are already fairly golfed 09:16
So with luck it'll be one of those
Geth roast/hyper-race-rework: bba5083af5 | (Jonathan Worthington)++ | 3 files
Untodo hyper/race tests passing with new impl
09:29
roast/hyper-race-rework: a393f41c62 | (Jonathan Worthington)++ | 2 files
Add tests for all broken examples in RT #127452
09:47
synopsebot RT#127452 [open]: rt.perl.org/Ticket/Display.html?id=127452 [CONC] hyper is very broken, *sometimes* it returns nothing
jnthn So, that ticket seems fixed already
(All the tests I added could fail on HEAD)
Geth rakudo/hyper-race-rework: f7ef1fc9f1 | (Jonathan Worthington)++ | 2 files
Remove leftover debug code
10:11
rakudo/hyper-race-rework: cef4806ff6 | (Jonathan Worthington)++ | 3 files
Implement sink on HyperSeq and RaceSeq
roast/hyper-race-rework: 857fe02933 | (Jonathan Worthington)++ | 2 files
Tests to cover RT #129234
10:12
synopsebot RT#129234 [new]: rt.perl.org/Ticket/Display.html?id=129234 [CONC] `.hyper` and `.race` resume after exceptions
Geth rakudo/hyper-race-rework: ea51d19bbd | (Jonathan Worthington)++ | src/core/RaceSeq.pm
Add forgotten `does Sequence` on RaceSeq
10:22
roast/hyper-race-rework: 342bff10bb | (Jonathan Worthington)++ | 2 files
Tests to cover now-passing RT #128084
10:23
synopsebot RT#128084 [new]: rt.perl.org/Ticket/Display.html?id=128084 [CONC][BUG] `.hyper/.race.map(&f)` produces an empty sequence if `&f` is a multi-sub
Geth roast/hyper-race-rework: 854a53b7ce | (Jonathan Worthington)++ | 2 files
Tests for RT #131865
10:30
synopsebot RT#131865 [new]: 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 })
Geth roast/hyper-race-rework: ee8c215ea0 | (Jonathan Worthington)++ | 2 files
Tests for RT #130576
10:40
synopsebot RT#130576 [open]: rt.perl.org/Ticket/Display.html?id=130576 [CONC] .race & .hyper break [+] (1..100)
Geth roast/hyper-race-rework: 6713a08d99 | (Jonathan Worthington)++ | S07-hyperrace/stress.t
Add some hyper/race stress tests
10:48
rakudo/hyper-race-rework: 374ee3e264 | (Jonathan Worthington)++ | t/spectest.data
Run hyper/race stress tests
jnthn Merge of the branches in rakudo and roast would let us close 6 RTs regarding hyper/race 10:49
Zoffix \o/ 10:51
timotimo re
jnthn RT #125978 is likely still busted because it boils down to the concurrent EVAL bugs, which I can reproduce without hyper/race
synopsebot RT#125978 [open]: rt.perl.org/Ticket/Display.html?id=125978 [CONC] [SEGV] (and other crashes) when using .hyper
jnthn Hmm, the gist from gfldex seems to still have issues 10:55
Not immediately clear why 10:56
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
bbl
*continue the bug hunt 11:05
.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?
yoleaux jnthn: I'll pass your message to AlexDaniel.
Geth roast: dfffc0d7f4 | (Elizabeth Mattijsen)++ | S03-operators/set_multiply.t
Fix copy-pasto in comment
11:31
roast: e53d2199ef | (Elizabeth Mattijsen)++ | S02-types/set.t
Unfudge tests for RT #131300
synopsebot RT#131300 [open]: rt.perl.org/Ticket/Display.html?id=131300 [BUG] MoarVM panic if you check for membership in undefined Set
Geth rakudo/nom: 8a88d14905 | (Elizabeth Mattijsen)++ | 10 files
Streamline set operators handling of Any,Any

  - this fixes RT #131300
  - basically add Any,Failure:D and Failure:D,Any candidate for each op
   - because coercions *can* fail
  - replacy Any,Any candidate with one that simply coerces the correct way
  - remove some Any,QuantHash / QuantHash,Any candidates
   - to prevent MMD lookup ambiguities
11:34
jnthn OK, no meeting it turns out. So, more hyper/race today :) 12:05
dogbert2 yay 12:10
if no one else has already done it I could run some 'nasty' spectest on your branch
dogbert2 does so 12:13
timotimo otherwise you'd have to have raced through the meeting, though perhaps the other attendees might object to you being so hyper 12:27
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 ok 1 - can use ints over 64-bit in .tail
timotimo dogbert2: what does it return from the tail call? or does it blow up? 12:35
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]: rt.perl.org/Ticket/Display.html?id=132313 .gist of some Rats does unnecessary Numification (say 1.111111111111111111111)
lizmat Zoffix: otherwise, I'm looking to your solution :-)
*forward
Zoffix lizmat: TimToady suggested basically that: generate a RatStr for rat literals with denoms >64 12:41
m: say <1.111111111111111111111>.^name 12:42
camelia RatStr
Zoffix m: say <1.111111111111111111111>.gist
camelia 1.111111111111111111111
lizmat ah, cool, yeah :-)
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
Kinda regret that ticket was filed :/
m: say 1.111111111111111111111111111111111111111111111111111111111.nude
camelia (1111111111111111111111111111111111111111111111111111111111 1000000000000000000000000000000000000000000000000000000000)
Zoffix 'cause the problem is this ^ not .gist
lizmat m: dd &infix:<<+>> # works as expected 12:49
camelia Sub+{is-pure}+{Precedence} infix:<+> = sub infix:<+> (Mu $?, Mu $?) { #`(Sub+{is-pure}+{Precedence}|26608096) ... }
lizmat m: my $a = "&infix:<<+>>"; dd $a; dd ::($a) # this doesn't
camelia Str $a = "\&infix:<<+>>"
Failure.new(exception => X::NoSuchSymbol.new(symbol => "\&infix:<<+>>"), backtrace => Backtrace.new)
Geth rakudo/hyper-race-rework: ae9de58246 | (Jonathan Worthington)++ | src/core/Rakudo/Internals/HyperPipeline.pm
Remove some debugging leftovers
12:50
Zoffix 'cause &infix:<<+>> gets normalized to &infix:<+>
m: my $a = "&infix:<+>"; dd $a; dd ::($a)
camelia Str $a = "\&infix:<+>"
Sub+{is-pure}+{Precedence} infix:<+> = sub infix:<+> (Mu $?, Mu $?) { #`(Sub+{is-pure}+{Precedence}|34079200) ... }
jnthn ::(...) would need the normalized name
Zoffix m: my $a = BEGIN $*W.canonicalize_pair("&infix:", "+").substr: 1; dd $a; dd ::($a) 12:53
camelia Str $a = "\&infix:<+>"
Sub+{is-pure}+{Precedence} infix:<+> = sub infix:<+> (Mu $?, Mu $?) { #`(Sub+{is-pure}+{Precedence}|33190640) ... }
Zoffix heh :)
dogbert2 timotimo: Cannot unbox 101 bit wide bigint into native integer 12:55
Zoffix dogbert2: are you sure you built latest and greatest rakudo? 12:56
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
m: constant $a = "&infix" ~ $*W.canonicalize_pair: "", "+"; dd $a; dd ::($a) 12:57
camelia "\&infix:<+>"
Sub+{is-pure}+{Precedence} infix:<+> = sub infix:<+> (Mu $?, Mu $?) { #`(Sub+{is-pure}+{Precedence}|29459152) ... }
jnthn dogbert2: And if you're testing my branch, it's missing some commits from nom
(I see those failures too, presume it's just 'cus the branch is behind)
Geth roast: b7c9f9ab1b | (Elizabeth Mattijsen)++ | S02-types/set.t
Streamline RT #131300 tests

  - don't use eval-lives-ok
12:59
synopsebot RT#131300 [resolved]: rt.perl.org/Ticket/Display.html?id=131300 [BUG] MoarVM panic if you check for membership in undefined Set
Geth rakudo/hyper-race-rework: 82a38c291b | (Jonathan Worthington)++ | src/core/Channel.pm
Don't lose original location of a Channel error
13:01
timotimo i gots my new keyboard
dogbert2 jnthn, Zoffix: I'm running jnthn's branch 13:03
jnthn Well, that's errors improved... 13:14
gist.github.com/jnthn/dc43a3154c49...a6d2bfa91e
jnthn pokes Geth 13:17
Oh well, I did a commit that improved erorr reporting to be as I showed 13:19
Geth rakudo/hyper-race-rework: ad0dd8e7d5 | (Jonathan Worthington)++ | 3 files
Improve hyper/race errors

Include the location where the hyper/race operation was initiated as well as the location where the error occurred in the worker, with an explanation.
13:21
jnthn Alas, the better errors haven't made the seq bug obvious... 13:34
dogbert2 jnthn: curveball, can there be a connection between the bug and RT #130796 ? 13:46
synopsebot RT#130796 [new]: rt.perl.org/Ticket/Display.html?id=130796 [CONC] Data races somewhere in SEQUENCE and/or continuation resuming code
jnthn I don't think so 13:51
dogbert2 ok, which bug are you trying to find? 13:54
jnthn The one in gfldex' gist
dogbert2 looks
the gist spits out 146001 14:00
jnthn Yeah, run it a few times 14:01
It doesn't fail every time
dogbert2 now I got 'This Seq has already been iterated, and its values consumed'
jnthn Yup, tht's the problem 14:02
Still trying to get to the bottom of what's going wrong 14:04
Did improve error reporting for hyper/race along the way though :)
dogbert2 cool, the new implementation is already a lot better than before
m: say [+] (1..100).race 14:05
camelia 0
dogbert2 stuff like the above works now 14:06
jnthn Yeah, already got tests for that in the roast branch
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:09
dogbert2 Zoffix: good to know 14:14
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
dogbert2 notes that when running with asan the end result sometimes differ from 146001 14:18
jnthn timotimo: I've done that, and just added logging the thread ID 14:22
Hacked in rather than so neatly though :)
So it turns out that the threads race over the Seq but how on earth
ohhhh 14:33
duh 14:34
So
my @l = 1, ½, (1/3).Num, ∞, :1a, [:2b, c => {:4e, :5f} ], <a b c>.Seq;
It does that
Then
my @l2 = |@l xx $repetitions;
All of those now reference the same Seq
All the repetitions, that is
.cache on a Seq is atomic/thread-safe
gah, 14:35
is *not*
Why didn't I spot that sooner :/
So yeah, it's not a hyper/race bug at all
m: loop { my $s = <a b c>.Seq; await (start $s.cache), (start $s.cache) } 14:36
camelia (signal XCPU)
timotimo this is an X CPU 14:38
there should be something performance-friendly we can do to make it barf loudly when seqs are concurrently cached 14:41
not a lock, but perhaps an atomic var or something?
jnthn Atomic vars ain't *that* cheap
timotimo mhm 14:42
if we only check once at beginning and end?
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
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
like, use that to keep in or throw out debugging code that can be env-var-switched at run time
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.
jnthn Semantics question! 14:54
What should for do?
;)
So, given
for something() { }
Should you be able to look at that code and know that your for loop will execute sequentially? 14:55
And you'd have to write hyper for something() { } or race for something() { } to get the other thing?
timotimo oh, because something might return a HyperSeq 14:56
jnthn Right
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
timotimo since an api change in something() could bust your code, too
jnthn Yes, that kind of "at a distance" thing is my concern.
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:01
jnthn It'll just obtain the .iterator 15:02
So, it's consume the results of the parallel operation sequentially
perlpilot ah. ok. 15:03
makes sense.
jnthn ooh, found a bug
Zoffix What happens with something().map({block;})?
huggable: hyper
huggable Zoffix, New hyper/race implementation exploration: gist.github.com/jnthn/754292747161...207d077d74
Zoffix um, not that
6guts.wordpress.com/2017/03/16/con...semantics/
jnthn Zoffix: .map is interpreted in the language of the object you call it on 15:04
So if it's a HyperSeq or RaceSeq, it chains another parallel operation onto the chain of them
Zoffix so we'll no longer have a "for is a map" thing?
jnthn Well, or at least we'll change it to "it's a .serial.map" 15:05
Though today we already don't implement many cases of for by calling map
for 1..100 { } # special cased to a while loop
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
mst of course everybody else hated typing the extra four characters
jnthn forall wouldn't convey hyper or race semantics, though
[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()`
`hyper for something()` that's a new syntax innit?
jnthn `hyper for blah() { }` and `race for blah() { }` make those semantics clear
No
lazy for blah() { } is already a thing :)
m: hyper for 1..100 { } 15:08
camelia ( no output )
jnthn Already parses
No idea what it compiles into :P
Zoffix m: my @a = lazy for rand {.say}
camelia 0.58192547563502
Zoffix doesn't seem to work
m: my @a = lazy(for rand {.say})
camelia 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})
jnthn The reason to draw the line with `for` is because typically, `for` is considered an imperative construct 15:11
While map is considered a functional one
perlpilot +1
Zoffix ok
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
synopsebot RT#125978 [open]: rt.perl.org/Ticket/Display.html?id=125978 [CONC] [SEGV] (and other crashes) when using .hyper
jnthn Yeah, but that's the one that is failing 'cus of EVAL + threads 15:15
So no amount of fixing hyper/race will help it
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]: rt.perl.org/Ticket/Display.html?id=127364 [PERF] .race makes code run 5 times slower
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?
jnthn Perhaps not terribly hard 15:25
Maybe we can do it with timing
And have some idea of what "too short" is 15:26
jdv79 jnthn: i'm gonna guess based on your comment on that ticket of mine that you can't repro? 15:27
jnthn I could, I just had some memory of a mention that the problem could occasionally come up under the previous scheduler 15:30
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 cpan.metacpan.org/authors/id/M/ME/...0.1.tar.gz
jdv79 it didn't for me. maybe someone else. 15:36
jnthn OK, so probably it is something about scheduling.
jdv79 ah
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?
i have no idea how to debug multithreaded stuff
i should probably read some stuff on the subject 15:38
Geth rakudo/hyper-race-rework: 41729e93ec | (Jonathan Worthington)++ | src/core/Rakudo/Internals/HyperRaceSharedImpl.pm
Fix bugs in sink of HyperSeq/RaceSeq

Remember to mark batches consumed, and construct the Sink correctly.
15:59
roast/hyper-race-rework: 4c5ef0c10f | (Jonathan Worthington)++ | 2 files
Test sink of HyperSeq/RaceSeq
16:00
jnthn If anyone would like to help with hyper/race, there are tasks both easy and adventurous :) 16:11
I've updated docs.google.com/spreadsheets/d/1kp...sp=sharing
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:12
.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
More direct hyper -> race and vice versa

No need to go via a sequential iterator and bottleneck the chain.
roast/hyper-race-rework: bdb558a753 | (Jonathan Worthington)++ | 2 files
Test hyper -> race, race -> hyper
jnthn Some others are a bit more fun 16:14
Geth roast/hyper-race-rework: 1ee99dbeef | (Jonathan Worthington)++ | 2 files
Tests for .Seq on HyperSeq and RaceSeq
jnthn Since they require writing a pipeline components
s/a//
ugexe what causes .pick to need to see all items first? 16:18
Geth rakudo/hyper-race-rework: 836761129c | (Jonathan Worthington)++ | 2 files
HyperSeq/RaceSeq are never lazy
roast/hyper-race-rework: 79f4e97c35 | (Jonathan Worthington)++ | 2 files
Test .is-lazy method on HyperSeq and RaceSeq
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:19
Enough on hyper/race for today 16:30
bbl
AlexDaniel` o/ 16:50
AlexDaniel \o
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?
AlexDaniel` jnthn: let's merge 16:51
my thinking is that hyper/race didn't really work anyway (only in some rare situations)
and there was no toaster run yet, so we'll see if there's any fallout 16:52
timotimo +1 17:04
AlexDaniel` and also I'd much rather see functional or semi-functional hyper/race in the * release 17:05
… than what we have now
Zoffix +1 for merge 17:07
AlexDaniel` Zoffix: hey, something is wrong with rakudo.party 17:18
Zoffix: RT #132284 is an open ticket but does not show up
synopsebot RT#132284 [new]: rt.perl.org/Ticket/Display.html?id=132284 [REGRESSION] .gist of a Map was arguably better in the past (say Map.new(‘a’ => ‘b’))
AlexDaniel` unless I'm blind
pretty sure I didn't delete it 17:19
Zoffix AlexDaniel`: no idea. I deleted some spam this morning... 17:20
But that map thing was done on purpose I think 17:21
Yup. it used to .perl the pairs, not .gist them
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)))»
Zoffix rejects the ticket 17:23
AlexDaniel` ಠ_ಠ 17:28
:)
Zoffix It's pretty easy to argue why new behaviour is good: rt.perl.org/Ticket/Display.html?id...xn-1500293 17:29
And really, the ticket is about Pair.gist vs Pair.perl
(which is a separate topic that can be argued)
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
No I feel rushed 17:32
And there were already suggestions to attach a hidden string, which wouldn't've solved the actual issue. 17:33
s/^No/Now/;
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:34
Zoffix Yeah, but now I'm an asshole for squatting on a ticket someone else could fix. 17:35
AlexDaniel` it's ok
buggable: bugs
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:
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 fail.rakudo.party/ for details
AlexDaniel` luckily there are other 1627 tickets to work on :)
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:43
hm.. filed on "Thu, 12 Oct 2017 22:59:36 -0700" 17:44
some race on day-switch maybe: github.com/zoffixznet/r6/blob/mast...der.pl#L91 17:45
Zoffix changes to fetch for 1+ extra day
ZofBot: dates R HRD 17:51
ZofBot Zoffix, Come, get you down stairs
Zoffix ZofBot: are you saying I'm drunk and should go home?
ZofBot Zoffix, Ye say honestly
Zoffix :D 17:52
timotimo damn it 18:09
i just replied to the wrong ticket
my reply hasn't reached rt yet 18:11
maybe i only posted it to the mailing list?
yep!
oh, i did get it into rt 18:12
man, email is complicated
AlexDaniel` can we, please, open rakudo/issues? :S 18:15
Zoffix Open it :) 18:19
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
or am I jumping to conclusions?
Zoffix perlpilot: the proposal was to open both and go Darwinian 18:22
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 :)
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.
AlexDaniel` perlpilot: explain
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)
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:28
Zoffix gah, my love for `obj.meth:` syntax bites me again! This time it's not a ternary but this instead: 18:36
$rem.add: 'get starship fuel', when => DateTime.new: :2222year,
:who<Zoffix>, :where<space>;
Spent 5m figuring out why my `who` and `where` are missing from the database :)
ZofBot: death to parens! 18:39
ZofBot Zoffix, For my part, am sorry it is turn'd to a drinking
Zoffix m: await Promise.at(now - 10).then: {say "meow"} 18:54
camelia (timeout)
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
s: Promise, 'at', \(now)
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/8a88...se.pm#L228
Zoffix m: await Promise.in(-10).then: {say "meow"}
This too :(
camelia (timeout) 18:56
Zoffix AlexDaniel`: BTW, was that bug ever fixed? Whatever made IRC::Client not work? 18:58
'cause now I'll have to upgrade to get the $*SCHEDULER.cue(:in) fix, but I can't 'cause of that bug :) 18:59
AlexDaniel` RT #132191 19:00
synopsebot RT#132191 [new]: rt.perl.org/Ticket/Display.html?id=132191 [REGRESSION] Possible rakudo regression (issues with IRC::Client)
AlexDaniel` I… didn't update rakudo on the server since then…
Zoffix: I guess you'll have to try it 19:01
c: HEAD gist.githubusercontent.com/AlexDan...-bisect.p6 19:02
committable6 AlexDaniel`, Successfully fetched the code from the provided URL.
AlexDaniel`, gist.github.com/827153e2f91fee5ad3...ae11ef9d97
AlexDaniel` oh gosh
Zoffix c: HEAD gist.githubusercontent.com/zoffixz...027a/p6.p6 19:03
committable6 Zoffix, Successfully fetched the code from the provided URL.
Zoffix, ¦HEAD(8a88d14): ««timed out after 10 seconds» «exit signal = SIGHUP (1)»»
AlexDaniel` c: HEAD gist.githubusercontent.com/zoffixz...027a/p6.p6
committable6 AlexDaniel`, Successfully fetched the code from the provided URL.
AlexDaniel` again after precomp
committable6 AlexDaniel`, ¦HEAD(8a88d14): «◀▬▬ _ Attempting to connect to server␤«timed out after 10 seconds» «exit signal = SIGHUP (1)»»
AlexDaniel` hmm
Zoffix k, I'll stuff some debug info into the sock tonight and see what makes it unhappy
|2h IRC::Client bruh 19:04
ZofBot Zoffix, Will remind you on 2017-10-17T17:04:12.850581-04:00 about IRC::Client bruh
AlexDaniel` c: HEAD gist.githubusercontent.com/zoffixz...027a/p6.p6
committable6 AlexDaniel`, Successfully fetched the code from the provided URL.
AlexDaniel`, ¦HEAD(8a88d14): «◀▬▬ _ Attempting to connect to server␤«timed out after 10 seconds» «exit signal = SIGHUP (1)»»
AlexDaniel` yeah, still broken
(I had to send a message to MahBot on #zofbot btw, because that's how it is tested)
so it connects just fine but is unable to reply to anything 19:05
Zoffix m: await Promise.at(now+0.001).then: {42.say} 19:13
camelia Minimum timer resolution is 1ms; using that instead of -0.365112187335619ms
42
in block <unit> at <tmp> line 1
AlexDaniel` “Message body is not shown because it is too large.”
(╯°□°)╯︵ ┻━┻
Zoffix this is also whack. I didn't specify no timer resolutions. Just a datetime
(╯°□°)╯︵ ┻━┻
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
Zoffix wait a second... 19:16
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:
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 fail.rakudo.party/ for details
AlexDaniel` 9999: 9 :)
Geth roast: cedf738d1a | (Zoffix Znet)++ | S17-procasync/stress.t
Fix plan

A test was moved[^1], but plan never adjusted
  [1] github.com/perl6/roast/commit/a5b3...0d47819307
19:19
Zoffix m: react whenever Supply.interval: -0.0001 { .say; done if $++ > 10 } 19:22
camelia 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
yoleaux 19:21Z <HoboWithAShotgun> Zoffix: github.com/zoffixznet/perl6-Color/pull/8
Zoffix m: react whenever Supply.interval: -0.001 { .say; done if $++ > 10 }
(hangs)
moritz GIGO?
camelia (timeout)0
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
s/treat it as zero/fire up the stuff without delay/;
Also, what's this times stuff?: github.com/rakudo/rakudo/blob/8a88...er.pm#L635 19:24
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
AlexDaniel` goes to take a nap 19:29
timotimo do we actually ever call cue with a times parameter? 19:30
Zoffix timotimo: brief grep doesn't turn up anything and probably why the bug went unnoticed 19:31
timotimo thought so
Zoffix m: $*SCHEDULER.cue: {say time}, :3times
camelia 1508268717
Zoffix m: $*SCHEDULER.cue: {say time}, :3times 19:32
camelia 1508268722
1508268722
1508268722
timotimo m: $*SCHEDULER.cue: {say time; sleep 1}, :3times
camelia 1508268743
timotimo m: $*SCHEDULER.cue: {say time; sleep 1}, :3times; sleep 5
camelia 1508268751
1508268751
1508268751
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
camelia 1508268798
1508268798
1508268798
Zoffix The supposed behaviour isn't clear to me 19:34
timotimo i'm not sure either
Zoffix Ah ok, the docs say "$times tells the scheduler how many times to run the code." 19:35
So then it's right
Weird feature, but ok :)
timotimo fair enough
Zoffix gonna fix the negative delay stuff after relocating; need to take a better look at the code :) 19:38
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
There was some stresstest hanging last time I tried running it
(on win10)
buggable New CPAN upload: App-Cpan6-0.6.16.tar.gz by TYIL cpan.metacpan.org/authors/id/T/TY/....16.tar.gz 20:21
MasterDuke huh, `use fatal` doesn't work? 21:50
timotimo doesn't in what way? 21:53
m: use fatal; my $foo = Failure.new; say "test"
camelia Failed

Actually thrown at:
in block <unit> at <tmp> line 1
timotimo m: my $foo = Failure.new; say "test" 21:54
camelia test
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:56
and use fatal 21:57
timotimo yeah, that's a warning, isn't it?
you could try CONTROL { say .backtrace.full }
MasterDuke timotimo++ that works 21:58
timotimo ecool
MasterDuke heh, though that did also cause `MoarVM panic: Trying to unwind over wrong handler` as the very last output 21:59
timotimo oops
did you put an actual try in front of the CONTROL block? it wasn't meant like that %)
MasterDuke nope
timotimo OK 22:00
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:01
same thing with both uses removed 22:02
huh, it's something about my (local) modifications to INTERPOLATE 22:07
Zoffix MasterDuke: `use fatal` fatalizes Failures, not warnings. 22:23
And it's auto-enabled within try blocks.
m: $ = +"a"; say "alive"
camelia alive
Zoffix m: use fatal; $ = +"a"; say "alive"
camelia 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
Zoffix m: try { $ = +"a"; say "alive" } 22:24
camelia ( no output )
Zoffix m: try { no fatal; $ = +"a"; say "alive" }
camelia alive
MasterDuke i know i've made that mistake before. i must be thinking of Perl 5 `use warning 'FATAL'` 22:36
heh. we could swap that, `use fatal :warn` 22:38
timotimo fatal warn :use 22:45
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 gist.github.com/b9914d412c807f45d2...d45726f2b2 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)
gfldex goes to test without a .Seq 22:47
MasterDuke m: <warn use fatal>.combinations.pick.say 22:48
camelia (warn)
MasterDuke oops
m: <warn use fatal>.permutations.pick.say 22:49
camelia (use warn fatal)
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.
Zoffix gfldex: multiple .cache calls. They mutate $!list attribute inside the seq 22:59
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:01
gfldex I'm not sure if I still like Seq very much. :-> 23:02
Zoffix and wouldn't reifying it also not be thread safe since it's mutating iterator 23:03
ZofBot: my world is collapsing on itself! HALP
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
gfldex Luckily github can tell us who canned those worms. :P 23:05
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:22