ugexe so Proc::Async seems to have two behaviors on windows with spaces. assume the first argument is the absolute path to perl6 and contains a space (C:\Users\Foo Bar\perl6-b.bat). Proc::Async.new($perl6, '-v', '--output=xxx').start launches $perl6 successfully, but Proc::Start.new($perl6, '-v', '--output="xxx"').start or Proc::Start.new($perl6, '-v', '--output=xx x').start both try to launch perl6 as 00:44
C:\Users\Foo
so I'm not sure how to get precompilation to work 00:46
dunno if its a libuv thing or the perl6 wrapper 01:02
MasterDuke m: my @a = ^4; say @a.min 01:33
camelia 0?
MasterDuke m: say (^4).min
camelia 0?
MasterDuke m: my @a = ^4; say @a.min: { abs($_) } 01:34
camelia 0?
MasterDuke m: say (^4).min: { abs($_) }
camelia Too many positionals passed; expected 1 argument but got 2? in block <unit> at <tmp> line 1??
MasterDuke seems a bit LTA 01:35
s: (^4), 'min' 01:37
SourceBaby MasterDuke, Sauce is at github.com/rakudo/rakudo/blob/c39d....moarvm#L1
MasterDuke heh
lizmat Files=1223, Tests=67680, 293 wallclock secs (11.18 usr 4.65 sys + 1973.81 cusr 205.71 csys = 2195.35 CPU) 08:07
samcv o/ lizmat 08:16
|Tux| This is Rakudo version 2017.08-80-gc39db8789 built on MoarVM version 2017.08.1-106-gdd04dd80 09:02
csv-ip5xs 1.282 - 1.299
test 9.503 - 9.526
test-t 3.376 - 3.490
csv-parser 10.954 - 11.260
Skarsnik how many iteration of this do you do? 09:08
|Tux| 2 09:46
Skarsnik I mean each part? it only ran twice? 09:48
|Tux| each parser parses the same 10000-line CSV file. The whole set runs twice 09:52
the runner collects both (all) and shows for these for the fastest and slowest run-time 09:53
I can increase it to 3 or 4 but it already takes a minute or two to run one set
Geth nqp: 6fb40df3b1 | pmurias++ | src/vm/js/nqp-runtime/runtime.js
[js] Throw a proper exception when we get the wrong kind of native argument
10:32
nqp: d31e6b0d0e | pmurias++ | t/nqp/112-call.t
Test a bunch of different call situations
travis-ci NQP build failed. pmurias 'Test a bunch of different call situations' 10:45
travis-ci.org/perl6/nqp/builds/272425630 github.com/perl6/nqp/compare/ffa3e...1e6b0d0e20
Skarsnik that very slow 11:50
skarsnik@devel:~$ time perl6/rakudo/install/bin/perl6 hanoi.pl
real 1m18.154s
skarsnik@devel:~$ time perl hanoi.pl
real 0m1.119s
timotimo is that really heavy on recursion?
Skarsnik it's hanoi ^^
with 2 call to hanoi each time
timotimo well, you could implement it without actually recursing functions 11:51
Skarsnik I mean it's annoting perl 6 is so slow on recursuve stuff ^^ 11:59
timotimo mhm 12:02
did you check the profiler?
Skarsnik this take forever x) 12:10
[Coke] was there a source link? 12:11
Yes. Perl 6 is not as optimized as Perl 5. Lots of work being done there.
timotimo [Coke]: skarsnik knows about this :)
[Coke] if it smells like a troll... hug it. 12:12
jnthn Recursive code is pretty much the worst case for the specializer
Well, depending on its use pattern
But you never get inlining of the recursive call, for example
ilmari not even tail-recursive calls? 12:13
jnthn No
ilmari I guess it couldn't unless it knew the recursion depth up-front 12:14
jnthn Well, in theory something can be done.
In practice, it's a loooong way down to optimizer todo list 12:15
ilmari is tail-recursion optimised at all?
jnthn No
And given we've things like dynamic variables and CALLER:: and so forth, the analysis to even know if a call that is the last statement could be optimized in some way isn't trivial either 12:16
Skarsnik gist.github.com/Skarsnik/dc497c7fa...706d7dd060 12:19
timotimo the profile shows lots of time in from-slurpy-flat, STORE, reify-until-lazy, push, ReifiedList, ReifiedArray 12:22
where's all that coming from
jnthn sub hanoi { 12:23
my ($n, $d, $a, $i) = @_;
There
Skarsnik the start?
timotimo right
jnthn Why isn't it using a proper signature?
timotimo giving it a proper signature makes it a hundredfold faster
jnthn Even if spesh can do something helpful, it'll never do so with that
Skarsnik it's a perl5 script x
timotimo 50596.55ms -> 2181.87ms
Zoffix :o
timotimo well, not hundredfold
Skarsnik Oo
Zoffix :D
[Coke] Perl 6 can run Perl 6 faster than it can run Perl 5. :) 12:24
Skarsnik still that kinda crazy the time lost with that 12:25
jnthn I'm not very surprised. Calling and signatures are very well optimized. 12:26
And the specializer understands a lot about them 12:27
[Coke] Or: the ways you optimize Perl 5 are not the same ways to optimize Perl 6.
timotimo ouch 12:28
making all parameters "int" gives me faster run time, but 100% interpreted
jnthn timotimo: ooh, why?
jnthn can't imagine what the JIT would bail on
timotimo not even speshed, though 12:29
Geth rakudo/nom: 35916427b6 | pmurias++ | t/02-rakudo/08-repeat.t
Move implementation specific repeat tests from roast to the rakudo repo
timotimo also, boatloads of BOOTHash allocated from List.pm's sink (line 694)
Skarsnik I was actually searching for a benchmark to test recursion x)
Geth roast: b75fca9967 | pmurias++ | S05-capture/match-object.t
Test Match.Int
roast: 1d4673438d | pmurias++ | S03-operators/repeat.t
Move implementation specific repeat tests from roast to the rakudo repo
jnthn So I have a fix for rt.perl.org/Ticket/Display.html?id=131985
The problem was that it didn't do a closure clone
timotimo wowza, return takes 6.6% of total time 12:30
jnthn Unfortuantely, there's a test doing $str ~~ s:Perl5/^(.)/{ state $++; }/ that then gets unhappy 12:31
'cus it's relying on us not doing said closure cloning
[Coke] timotimo: changing it to an if instead of a return shaves some time here, aye. 12:32
timotimo jnthn: the hanoi sub doesn't show up in the jit log at all 12:33
i can't even see it in the spesh log
jnthn Does it get any stats?
I guess if it's just deeply recursing it never returns
timotimo nope, not a single mention in the whole file
jnthn And so we never see a complete execution of it
timotimo it does call return a million times 12:34
jnthn Ah, then we must see some complete invocations...
Odd
timotimo before one of the changes it was jitted 100%
jnthn *sigh* Now I remember I've been here before with fixing the closure inside string thing. 12:35
timotimo yeah, i add "int" to the signature and it goes boom
jnthn And the only reason I didn't commit the exact same fix I did this time around is because of this test :/
timotimo ugh
let's hope nobody relies on this? :\ 12:36
jnthn Yeah, I think "let's see", but we really can't live with the bug
It's horrible
Do "foo{$bar}baz" in code running on multiple threads and get wrong interpolated results
Geth rakudo/nom: d0d105b8b6 | (Zoffix Znet)++ | src/core/Match.pm
Fix inability of `make`ing type objects

The check for whether we should return a `Nil` from .made/.ast is meant to detect an NQPMu in $!made. nqp::isconcrete was used for that purpose, which also makes any `make`d type objects to result in Nils.
Fix by doing a typecheck for `Mu` that returns false when $!made is an NQPMu, but would return True for any Rakudo object.
12:42
timotimo glad to hear it works
Geth roast: 8674f1e8c7 | (Zoffix Znet)++ | S05-match/make.t
Spec behaviour of Match.made/.ast forā€¦

  ā€¦type objects and unmade matches.
Rakudo fix: github.com/rakudo/rakudo/commit/d0d105b8b6
12:43
rakudo/nom: 59454b03cc | (Jonathan Worthington)++ | src/Perl6/Actions.nqp
Fix thread safety of "foo{$x}bar"

Previously, we didn't do a closure clone of the block, which meant it could get its outer captured by a different thread (or go very wrong if a recursive call was done inside of the closure). Doing this clone corrects the bug, and brings it in line with other closures, though does cause a change to `state` inside such as block (again, bringing it in line with how things usually work, though there was a spectest based around the previous wrong expectation).
12:44
Zoffix I'm gonna do version bumps. There's a new test in roast now that needs a nqp updates 12:45
jnthn Zoffix: If you want to do a MoarVM one so latest improvements there get more testing, that'd be nice also
Zoffix Will do 12:46
jnthn (There's various spesh improvements)
Geth roast: a743fe353b | (Jonathan Worthington)++ | S04-declarations/state.t
Correct bad state expectation

Due to a compiler bug, the closure here was not being cloned by its outer scope. This caused various nasty thread safety bugs, and has now been rectified. However, this test depended on the buggy behavior.
roast: fe5e6ff495 | (Jonathan Worthington)++ | S17-promise/start.t
Test to cover RT #131985
12:52
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=131985
Geth nqp: d016ffd335 | (Zoffix Znet)++ | tools/build/MOAR_REVISION
Bump MoarVM

MoarVM bump brought commits:
  github.com/MoarVM/MoarVM/compare/2...8-gde6dced
de6dced Merge branch 'heapsnapshot_binary_format' fbd6182 write parts of types/static frames/strings incrementally ... (23 more lines)
12:56
Ā¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...8-gde6dced
rakudo/nom: cbce672126 | (Zoffix Znet)++ | tools/build/NQP_REVISION
Bump NQP

NQP bump brought commits:
  github.com/perl6/nqp/compare/2017....6-gd016ffd
d016ffd Bump MoarVM d31e6b0 Test a bunch of different call situations 6fb40df [js] Throw a proper exception when we get the wrong kind of native argument ... (29 more lines)
Ā¦ rakudo/nom: version bump brought these changes: github.com/perl6/nqp/compare/2017....6-gd016ffd
Zoffix ZOFVM: Files=1273, Tests=144650, 134 wallclock secs (15.00 usr 2.65 sys + 2721.89 cusr 203.91 csys = 2943.45 CPU)
Zoffix & 12:57
Geth roast: 624381cff8 | (Jonathan Worthington)++ | S04-declarations/state.t
Test to cover RT #130855
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=130855
Geth roast/6.c-errata: 357665c732 | skids++ (committed by Zoffix Znet) | S04-statements/do.t
Fix test that expected pre-GLR behavior. RT##124572. (#305)

  (edit by Zoffix): cherry pick the commit from master that fixes wrong
TODOed test that expects if {} elsif {} to give an empty list instead of Empty when both conditions fail. Closes #306
13:00
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=124572
dogbert17 wonders if the latest changes will affect [Tux] benchmark 13:01
jnthn Maybe 13:02
Though maybe within noise level too
dogbert17 I guess < 3 sec for test-t is the next target :)
Zoffix AlexDaniel: ping
AlexDaniel Zoffix: pong ā™„
yoleaux 12:18Z <jdv79> AlexDaniel: i'm guessing the 4 byte unicode fix just hasn't been implemented yet
Zoffix AlexDaniel: when I was doing release stuff, detailed info on what commits were brought in in version bumps were useful... Do you care about them or should I stop adding the extra info (like here: github.com/rakudo/rakudo/commit/cbce672126 ) 13:03
AlexDaniel Zoffix: can't it be automated?
Zoffix Sure. But currently it isn't :) 13:04
Skarsnik bisectable6, my %h = Hash;
bisectable6 Skarsnik, Bisecting by exit code (old=2015.12 new=cbce672). Old exit code: 0
Skarsnik, bisect log: gist.github.com/7c8baae8036944d454...eeeb4f17a4
Skarsnik, (2017-01-23) github.com/rakudo/rakudo/commit/2f...01b8cba8d5
AlexDaniel Zoffix: I myself don't care about it because I can just ask Geth 13:05
Skarsnik dis that normal?
Zoffix AlexDaniel: noted :)
Skarsnik: I'd say the message is accurate: "did you forget a .new?"
Skarsnik it worked on old rakudo
Zoffix mc: my %h = Hash; dd %h 13:06
committable6 Zoffix, Ā¦2015.12: Ā«Hash %h = {}Ā»
jnthn m: my %h = Hash
camelia Invocant of method 'iterator' must be an object instance of type 'Map', not a type object of type 'Hash'. Did you forget a '.new'?
in block <unit> at <tmp> line 1
jnthn That's not the best error
Zoffix mc: my %h = Hash, Hash; dd %h
committable6 Zoffix, Ā¦2015.12: Ā«Hash %h = {}Ā»
Zoffix m: my %h = Hash, Hash; dd %h
camelia Cannot look up attributes in a Hash type object
in block <unit> at <tmp> line 1
jnthn I'm not sure it should silently work 13:07
We tend to treat type objects as individual itmes
Zoffix Same.
jnthn *items
Skarsnik m: my %h = Hash:U;
camelia Invocant of method 'iterator' must be an object instance of type 'Map', not a type object of type 'Hash:U'. Did you forget a '.new'?
in block <unit> at <tmp> line 1
AlexDaniel Zoffix: ticket created: github.com/perl6/whateverable/issues/232 13:08
jnthn m: use Test; throws-like { temp $*foo = 42 }, X::Dynamic::NotFound
camelia 1..2
# Failed test 'right exception type (X::Dynamic::NotFound)'
# at /home/camelia/rakudo-m-inst-1/share/perl6/precomp/EB64813F19220853D8351228D7AA267060D3D577.1504702221.62503/C7/C712FE6969F786C9380D643DF17E85D06868219E line 1
ok ā€¦
Zoffix ooh neat. jnthn++ got a fix for the temp thing :) 13:10
Geth rakudo/nom: 80a3255b2d | (Jonathan Worthington)++ | src/core/operators.pm
Make temp and let on a Failure throw it

This means that `temp $*doesn't-exist = 42` will now throw the Failure reporting that the dynamic variable does not exist, which is rather more helpful than saying that a non-container can't be temp'd. Same improvement also done in `let`.
13:12
jnthn Yeah, was a bit of LHF for me after all morning in spesh inline/deopt/exception rewrites :) 13:13
Zoffix :)
Geth roast: d9b32aa781 | (Jonathan Worthington)++ | S04-blocks-and-statements/temp.t
Test to cover RT #132035
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=132035
Zoffix TIL `temp` is a prefix operator
m: sub prefix:<meow> { "kitty says $^a".say }; meow meow 42 13:14
camelia kitty says 42
kitty says True
Zoffix TIL prefix operators can be separated with a space :D
jnthn :) 13:15
And now back to 34 pages of RTs instead of 35 :P 13:16
Zoffix \o/ 13:20
|Tux| dogbert17, here are the results from the Dutch test team. Perl6 Douze points 13:22
This is Rakudo version 2017.08-85-g80a3255b2 built on MoarVM version 2017.08.1-128-gde6dceda
csv-This is Rakudo version 2017.08-85-g80a3255b2 built on MoarVM version 2017.08.1-128-gde6dceda
csv-ip5xs 1.273 - 1.298
test 9.594 - 9.714
test-t 3.422 - 3.452
csv-parser 10.740 - 10.881
ip5xs 1.273 - 1.298
test 9.594 - 9.714
test-t 3.422 - 3.452
csv-parser 10.740 - 10.881
This is Rakudo version 2017.08-85-g80a3255b2 built on MoarVM version 2017.08.1-128-gde6dceda
csv-ip5xs 1.273 - 1.298
test 9.594 - 9.714
test-t 3.422 - 3.452
csv-parser 10.740 - 10.881
(bouncing mouse buttons)--
AlexDaniel squashable6: status 13:23
squashable6 AlexDaniel, The date for the next SQUASHathon is not set
Zoffix Appveyors failing. t\04-nativecall\21-callback-other-thread.t (Wstat: 256 Tests: 0 Failed: 0)
Non-zero exit status: 1
AlexDaniel how so :o
Zoffix Parse errors: Bad plan. You planned 9 tests but ran 0.
NMAKE : fatal error U1077: 'C:\strawberry\perl\bin\perl.exe' : return code '0x1'
Stop.
ci.appveyor.com/project/rakudo/rak...qt352uy35l
AlexDaniel squashable6: status 13:25
squashable6 AlexDaniel, Next SQUASHathon in 29 days and ā‰ˆ20 hours (2017-10-07 UTC-12āŒUTC+14)
AlexDaniel ā†‘ this squashathon will be about rakudo
so maybe getting it to 34 pages at least is a worthy goal :) 13:26
by the way, please add LHF tags if you see something easy
Zoffix Would be neat to go through tickets and pre-mark some LHFs
AlexDaniel Zoffix: o/
Zoffix m: Bool.enums.^name.say; Order.enums.^name.say 13:27
camelia Hash
Map
Zoffix That's an LHF one, but I don't think there's a ticket.,
Instructions for fixing it: irclog.perlgeek.de/perl6/2017-09-05#i_15118279 13:28
AlexDaniel Zoffix: RT #132039
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=132039
Zoffix AlexDaniel++
AlexDaniel suspend ???? 13:29
nine Zoffix: I think Book++ wants to fix that tomorrow 13:35
Zoffix cool
Geth nqp: 79e6453b98 | (Timo Paulssen)++ | src/vm/moar/HLL/Backend.nqp
support the new heapsnapshot API

No longer returns an object we have to dump ourselves. Instead we pass a filename at the beginning where snapshots will be stored immediately, with shared data (strings, types, static frames) appended at the end.
13:42
timotimo should have put this up before the bump
Zoffix re-bumps 13:43
dogbert17 [Tux]: many thanks :) 13:49
Geth rakudo/nom: bfee5a1ed5 | (Zoffix Znet)++ | tools/build/NQP_REVISION
Bump NQP to bring heap analyzer API changes
13:50
Ā¦ rakudo/nom: version bump brought these changes: github.com/perl6/nqp/compare/2017....7-g79e6453
rakudo/js: 40096821ae | pmurias++ | 2 files
[js] Update to the new way of passing native arguments

Also bump nqp.
13:55
rakudo/js: 3a333be14f | pmurias++ | 2 files
[js] Implement nqp::p6typecheckrv
Zoffix Noticed I have a blurry spot in my left eye... Wonder if that's due to my eclipse peeking :o 13:57
And I made the mistake of googling for possible causes of blurry spots... detached retinas, glaucomas, cataracts... ouch. 14:00
Zoffix puts on the glasses he's supposed to wear just in case 14:01
timotimo yeah, blurry spots can mean you're going to be blind in a couple ... days? weeks? 14:02
Zoffix :|
For real? 14:03
I made an appointment with an eye doctor, but they're all booked out and the soonest I could get was next Tuesday
timotimo i don't know details 14:04
i just have "that's serious" stored in my brain
Zoffix googles for some other eye doctor that might have free space sooner :| 14:05
travis-ci NQP build failed. Timo Paulssen 'support the new heapsnapshot API 14:10
travis-ci.org/perl6/nqp/builds/272488872 github.com/perl6/nqp/compare/d016f...e6453b985d
dogbert17 had cataracts 14:12
timotimo you got it fixed even though you're not sam's mom? 14:14
Zoffix Well, now I'm really worried :| Called another doctor, same story: earliest appointment is Tuesday. I said "does blurry spot mean you gonna go blind in two days". She put me on hold, then told me the doctor will squeeze me in today :o
Skarsnik_ ^^ 14:15
good
timotimo <3
Zoffix Well, I hope Rakudo's source reads just as nice in braille :o
masak <3
timotimo i wish you the best of luck, and that it's actually harmless
masak Zoffix: you take care of yourself
to everybody: don't be cruel to your eyes. increase the font size.
dogbert17 Zoffix++ going to see the doc 14:17
jnthn Zoffix: Best of luck with if *hug* 14:18
*with it 14:19
grr
Zoffix Thanks. 14:22
timotimo if it's retinal detachment, i believe the surgery you get for that is a rather simple laser treatment 14:23
timotimo watched the video explanation of glaucoma on the wikipedia 14:31
nine Zoffix: it's good you got an appointment ASAP. That said, it may as well just be a bit of dehydration, some low blood pressure or other benign issue. May also be connected to migrane, if you suffer from that. 15:05
jdv79 i got a 15min blind stpo the other day from welding 15:06
though y'day i had a bit of tinnitus that came out of nowhere 15:07
getting old i guess
Zoffix Well, I get to live :) 16:24
Just some crap in my eye that will likely stay there forever, but it's benign and no retinas are getting detached :p 16:25
doctors++
mst and that means every time you cry
dogbert2 Zoffix: does it move
mst and somebody says "there's something in your eye" 16:26
you can say "yeah, it's been there for years but the doctors assure me it's benign"
and hopefully then they'll get so confused they'll let you cry in peace
Zoffix :) 16:28
dogbert2: yeah
Skarsnik AlexDaniel, your favorite crash also leak memory :( 16:32
probably related 16:33
dogbert2 Zoffix: sounds like 'floater', I have those as well, it's quite common 16:34
*like a 16:35
Zoffix yeah, he said there's coagulation floating arou d
And I was right to worry: the floating crap comes off and can pull the retina and cause detached retina. 16:36
(but he checked it out and said its all good)
geekosaur it cam also grow into a cataract over time, I think
Zoffix :( 16:37
geekosaur well, they usually don't; floaters are really common. but this is why you should get eye checkups annually 16:39
Zoffix But George Carlin said real men don't go to the doctors unless they're legally dead! 16:49
nine Well, if you talk stereo types, I go with "Pilots are real men!" and pilots get annual checkups... 16:51
In fact those checks are a nice side effect of having a license :) Would probably be too lazy to get them otherwise
dogbert2 we should try to fix harness6 before next release, it's currently broken 17:07
timotimo Zoffix: glad to hear you're not in danger! 17:15
Zoffix :)
timotimo .o( thank you god for fixing the cataracts of zoffix's mom's son ) 17:16
Zoffix Praise the Flying Spaghetti Monster \o/
Zoffix doesn't get the cataract reference :)
timotimo Tim Minchin has a song (and introductionary oration) to that effect 17:25
Zoffix Ah 17:26
timotimo how a man called sam came to him and proved to him the existence and benevolence of god
as he gave eyewitness account of his mom being miraculously healed from cataracts that the doctor said would make her go completely blind
Geth roast: skids++ created pull request #307:
Alter tests to avoid unintended/irrelevant interpolation
17:45
nqp/jit_nativecall: 95eb73c681 | (Stefan Seifert)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp
Map the new nativecallinvokejit OP

nativecallbuild now has a return value indicating whether we were able to JIT compile code for the call site
18:13
rakudo/jit_nativecall: 8 commits pushed by (Stefan Seifert)++ 18:18
nqp: niner++ created pull request #370:
Map the new nativecallinvokejit OP
18:20
rakudo: niner++ created pull request #1151:
JIT compile native calls
18:21
ugexe moarvm's appveyor is failing because the version of moarvm is too old...? 18:45
er travis-ci 18:46
jnthn Yeah, that can happen when an NQP bump happens
And travis is behind
So it tries to build an old MoarVM and test it with HEAD NQP 18:47
I dunno what we can best do about that
ugexe ah, i did not see that it builds as well 18:48
builds nqp^
bisect: new=2017.04 old=2017.03 sub c($t is rw, &code) { $t = code($t) }; my $foo = 1; for ^50000 { start { say c( $foo, -> $i { $i + 1 } ); }; }; say $foo; 19:07
timotimo yeah, nqp is the only way we have to test moarvm 19:15
travis-ci Rakudo build passed. pmurias 'Move implementation specific repeat tests from roast to the rakudo repo' 20:24
travis-ci.org/rakudo/rakudo/builds/272461100 github.com/rakudo/rakudo/compare/c...916427b6a4
japhb buggable: speed :4 20:31
buggable japhb, ā–ƒā–‚ā–ā–ˆā–…ā†‘ā–ƒā–ƒā–ƒā–ƒā–ƒā–„ā–†ā–‡ā–„ā–… dates: 2017-08-06ā€“2017-09-06
japhb, ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ range: 3.376sā€“4.925s
japhb, ā–ā–‚ā–‚ ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–‚ā–ˆā–„ā–ƒ ā–… ā–„ speed: 7% faster
japhb, ā–ˆā–ˆā–ˆā–†ā–†ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–‡ā–ˆā–ƒā–„ā–‡ā–…ā–„ā–†ā–‡ā–„ā–ƒā–‚ā–‚ā–ˆā–ˆā–ƒā–ƒā–‚ā–„ā–ƒā–‚ā–„ā–ā–‚ā–ƒ
tadzik this graph is awesome :) 21:19
[Coke] Zoffix++ with the not-detaching-eyeballs. 21:20
yoleaux 16:09Z <samcv> [Coke]: ok i made a change, hopefully this will fix
[Coke] ... skipping the test is a bandaid, it's not a solution. :| 21:21
anyone know why this dies: 21:22
m: class utf8 does Blob[uint8] {}
camelia 5===SORRY!5=== Error while compiling <tmp>
P6opaque: missing attribute protocol in compose of utf8
at <tmp>:1
[Coke] m: class utf8 does Blob[uint8] is repr('VMArray') {}
camelia ( no output )
[Coke] because it was incomplete. got it. 21:23
Geth rakudo/nom: e7a5880609 | (Elizabeth Mattijsen)++ | src/core/Bool.pm
Make Bool.enums consistent with Enumeration.enums
21:33
Zoffix lizmat++ beats both BooK and potential SQUASHathoners and fixes the bug the same day it's reported :) 21:38
lizmat well... it was reported almost 10 hours ago
such a simple thing and nobody took the time to follow your script :-( 21:39
Zoffix :) 21:40
ugexe bisect: new=2017.04 old=2017.03 sub c($t is rw, &code) { $t = code($t) }; my $foo = 1; for ^50000 { start { say c( $foo, -> $i { $i + 1 } ); }; }; say $foo; 21:43
bisectable6 ugexe, Bisecting by exit signal (old=2017.03 new=2017.04). Old exit signal: 0 (None)
ugexe, bisect log: gist.github.com/9be2b3010adcdcc636...a2efce93b4 21:45
ugexe, (2017-04-17) github.com/rakudo/rakudo/commit/75...6449aa6a28
ugexe my $foo = 0; for ^50000 { start { say $foo++ } }; # is sufficient even 21:57
it also does not happen if you $*OUT = class :: { method print(|) { } }; 22:03
bisect: new=2017.04 old=2017.03 my &*EXIT = sub ($code) { return $code < 40000 ?? 1 ?? 0 }; my $foo = 0; for ^50000 { start { say $foo++ } }; exit $foo;
bisectable6 ugexe, On both starting points (old=2017.03 new=2017.04) the exit code is 1 and the output is identical as well
ugexe, Output on both points: Ā«04===SORRY!04=== Error while compiling /tmp/2FAOWzSIDgā¤Unexpected closing bracketā¤at /tmp/2FAOWzSIDg:1ā¤------> 03$code) { return $code < 40000 ?? 1 ?? 0 08ā04}; my $foo = 0; for ^50000 { start { sayĀ»
timotimo i'm not sure what i should be seeing there?
ugexe bisect: new=2017.04 old=2017.03 my &*EXIT = sub ($code) { return $code < 40000 ?? 1 !! 0 }; my $foo = 0; for ^50000 { start { say $foo++ } }; exit $foo;
bisectable6 ugexe, Bisecting by exit signal (old=2017.03 new=2017.04). Old exit signal: 0 (None) 22:04
ugexe timotimo: the `say` makes it deadlock
timotimo ah, i do believe we lock io handles 22:05
bisectable6 ugexe, bisect log: gist.github.com/3cafa3d508a3a721e4...244bb7aac0
ugexe, (2017-04-17) github.com/rakudo/rakudo/commit/75...6449aa6a28
timotimo i wonder how the deadlock exactly happens
ugexe it doesnt happen without the ++ either 22:07
only thing i could guess is thread exhaustion + GC somehow
timotimo i wonder if we ever need to acquire a lock on an io handle during gc
like in gc_free
jnthn I'm not sure how thread exhaustion could do it, since there's no dependencies anywhere 22:08
gdb and looking at the stack traces will likely be very informative 22:09
ugexe then theres hope i can still track it down lol
jnthn It'll probably be a facepalm one once finally found... 22:13
Zoffix huh... t/fudgeandrun broke? 22:17
$ t/fudgeandrun t/spec/S32-io/lock.t
Could not run t/spec/fudgeall
jnthn huh, I always did it as `make t/spec/S32-io/lock.t` :) 22:18
Zoffix full error: gist.github.com/zoffixznet/68455f9...2158bc75a6
jnthn I didn't know about the t/fudgeandrun way :) 22:19
Zoffix jnthn: I like the fudge way because if you make some accidental changes it doesn't rebuild everything :)
(make would)
jnthn I tend to consider that a feature; it stops me committing my accidental change that breaks the test again... ;-)
Zoffix :) 22:20
jnthn Weird error
Works for me on 2017.07-213-gfcf61f7 22:21
(That's just what happens to be built inside my dev VM on my home box)
ugexe gist.github.com/ugexe/cf2350b4bd5e...049df1432f (last 20 lines of gdb bt and strace output) looks like maybe gc? 22:27
timotimo would be nice to have more debug symbols so we can figure out what lines are involved 22:28
oh
and get the bt for all threads
"thread apply all bt" 22:29
ugexe ah, i was just getting the gc thread eh?
Zoffix BAH 22:30
timotimo well, all threads participate in GC, except for ones explicitly marked as "blocked"
Zoffix Found the cause. The extra debug output makes the fudger run the wrong command :P
timotimo Zoffix: ooh, i know that feeling :S
we need more than just stdout and stderr, we also need stdspam
Zoffix :D 22:31
ugexe gist.github.com/ugexe/cf2350b4bd5e...hreads-txt (all threads) 22:33
i suppose I need to try and learn how to build/debug with symbols
timotimo just need to be in the moarvm folder and re-run Configure.pl with the arguments used before (can be found in Makefile i believe) and also --debug=3 22:34
and it can help to MVM_JIT_DISABLE=1 so that the "??" stack frames aren't there
Geth roast: ff0c277084 | (Zoffix Znet)++ | fudgeandrun
Make impl identifier code a bit smarter

So if we produce some debug output that dumps extra lines, they don't become part of the command we run.
22:35
ugexe so i build with debug symbols, and this adds additional information to the gdb output? 22:37
timotimo aye 22:38
needs a full make and make install, though
er
only moar, though
not nqp or rakudo, they can stay untouched 22:39
sorry, i'm a little sick + distracted, i hope i'm not causing frustration 22:40
jnthn I think thread 5 is the guilty party 23:10
Unless it's marked itself GC blocked 23:11
Which ain't happening here: github.com/MoarVM/MoarVM/blob/mast...o/io.c#L12 23:12
Note that on fixing that we must also go through all of the things calling acquire_mutex, and MVMROOT as appropriate 23:13
Since the added calls to gc block/unblock can trigger joining a GC run
Sleep time now, but hope that's enough hints in the rightish direction for a fix... 23:14
back tomorrow o/
MasterDuke jnthn: btw, just reminding about github.com/MoarVM/MoarVM/pull/631 and github.com/MoarVM/MoarVM/pull/632 , but no hurry or anything 23:15
timotimo i thought the PRs looked good, but i have no sensible answer to the relationship between DEFAULT-READ-ELEMS and async i/o 23:16
MasterDuke neither do i 23:17
timotimo (also i haven't tested the code in the PRs, but you have)
i'm heading to bed, night! 23:18
ugexe this seems to be the same problem as rt.perl.org/Ticket/Display.html?id=132042 23:25