samcv i just added something to my shell. a `gcd` command. i run gcd and it will cd into directories inside ~/git to two levels of depth. and i even have instant autocomplete 00:04
since i spend so much time cding into git directories lol
pretty nifty cry.nu/files/konsole9.webm 00:10
[Tux] This is Rakudo version 2017.06-73-ge4f3358fa built on MoarVM version 2017.06-14-g888b33d1 05:33
csv-ip5xs 2.672
test 12.702
test-t 4.042 - 4.129
csv-parser 13.502
lizmat Files=1207, Tests=62913, 219 wallclock secs (13.02 usr 5.02 sys + 1325.17 cusr 134.60 csys = 1477.81 CPU) 08:56
Geth roast: abdf23ff6d | (Elizabeth Mattijsen)++ | S03-operators/set.t
Remove (-) tests better tested in difference.t
10:22
timotimo YW, i'll go ahead and delete the file 15:11
jdv79 i didnt get it 15:13
on my ohone
phone
timotimo whoops 15:14
ok, easy enough to put it back up
it's back
jdv79 its 45k? 15:15
timotimo yup 15:18
jdv79 got it then 15:21
jnthn Darn, getting the /win 25 15:50
gah
Darn, getting the proc async stuff making the descriptor available in a natural way with the existing API that simultaneously not lead users to write races into their code has been a bit of an effort... 15:51
Should be pretty close to having $async-proc-b.bind-stdin($async-proc-b.stdout) Just Work (and actually plumb the descriptors together, not copy), though 15:54
AlexDaniel greppable6: \.\.['"] 15:55
greppable6 AlexDaniel, gist.github.com/c1b6349cb67de10c98...fd7efb9dab
AlexDaniel greppable6: \.\.['"][^ ] 15:57
heyā€¦
ā€œMalformed UTF-8ā€ somewhere, hm 15:59
greppable6: \.\.['"][^ ]
wellā€¦
( github.com/perl6/whateverable/issues/153 ) 16:00
Geth nqp: 3b3aa8ce42 | (Jonathan Worthington)++ | tools/build/MOAR_REVISION
Bump MOAR_REVISION for async process changes.
16:11
nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...9-ga51ba62
316d2ef15e | (Jonathan Worthington)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp
nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...9-ga51ba62
c5fc79f5e0 | (Jonathan Worthington)++ | 2 files
Ā¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...9-ga51ba62
rakudo/nom: 823011281d | (Jonathan Worthington)++ | 3 files
Allow getting native descriptor in Proc::Async.

This takes advantage of recent MoarVM changes in order to allow the created stdout and stderr pipes to be used either for their data (by tapping the returned object) or for the file descriptor. This is done by making `stdout` and `stderr` return a `Proc::Async::Pipe`, which is a subclass of `Supply` (for full back-compat), but with the addition ... (18 more lines)
16:12
lizmat is looking forward to jnthn's blog post about ^^^ :-) 16:31
jnthn Will continue working on that stuff tomorrow :) 16:42
dinner cooking &
timotimo is bisecting the profiler crashyness 21:09
i tracked it down to be either b3345651648645e1d3af6961226587f8cc87db28 or 0837bd3257eef9e5a8468ef73db2cb1152a57fd7 21:13
github.com/MoarVM/MoarVM/commit/b3...f8cc87db28 - Handle value use decrements in instruction delete
github.com/MoarVM/MoarVM/commit/08...1152a57fd7 - When deleting a BB, decrement instruction usages. 21:14
so i wonder if we're playing it fast and loose with usages somewhere when *adding* instructions 21:15
so maybe we're adding instructions that get deleted in a later part of spesh and that gets our usage down to 0 when it should be 1 21:16
jnthn timotimo: Mebbe, though I'd expect that to be much more broadly noticable than in the profielr 21:20
timotimo hm, the profiler puts its stuff in there in a pre-optimize-stage, right? so the usage counts ought to be correct by virtue of constructing the full SSA from the profiler's flat output? 21:21
jnthn Yeah
timotimo there goes that theory, i guess
m( turns out "c" in gdb isn't short for "call" 21:27
this dump of run_nfa definitely has a BB in it that is unreachable 21:38
that's strange.
BB 1 ends in goto BB(3)
2 has predecessors 2 and 3 21:39
but 3 ends in return_o
so nfa_run_alt is being called with a labels parameter of null, i.e. low-level null pointer 21:42
that comes straight from the argument number 5, which the spesh candidate has a guard for, which is "this must be concrete" 21:43
okay, the register that goes there comes straight from !alt's argument number 3 21:44
which, interestingly enough, does have a value there 21:45
but the .work[3].o is a null pointer at that point 21:47
maybe i can get at this with rr
DeadDelta What does "BB" stand for?
jnthn Basic Block
DeadDelta Also, what's "deopt"?
jnthn Short for deoptimization 21:48
DeadDelta hm. OK. Thanks.
jnthn We do speculative optimization - that is, make assumptions about what types will show up at runtime
DeadDelta And when assumptions fail, we "deopt"?
jnthn If we guess wrong, we deoptimize - that is, fall back to the interpreted slow-path code - to handle the unexpected/uncommon case
DeadDelta Cool. 21:49
jnthn It's not an entirely simple process, since we may be inside of multiple levels of inlined code, and when we deopt we have to recreate the real call stack again
DeadDelta: In docs.perl6.org/type/IO::Path#method_child it says it will " be switched to secure version around 6.d release time" - what is the secure version called today? 21:54
DeadDelta jnthn: it doesn't exist. It's just commented out code: github.com/rakudo/rakudo/blob/nom/...#L374-L396 21:55
jnthn: basically the discussion decided that instead of adding a special method that users would have to know to make secure child, we should make child itself secure, but due to large ecosystem usage and lack of guarantee it's secure (e.g. old compilers that have `use v6.c`) pushed that switch to 6.d 21:57
+ .add was too new to tell people to just switch to using it if they want the fast, non-secure .child
jnthn ah, ok
Ah, but it works in terms of using .resolve(:completely)
DeadDelta Yes
jnthn Which was what I was thinking of faking it in terms of :)
OK
DeadDelta And there's a module users can use today, if needed 21:58
buggable: eco secure
buggable DeadDelta, IO::Path::ChildSecure 'Secure version of IO::Path.child': github.com/zoffixznet/perl6-IO-Path-ChildSecure
jnthn Oh, cool
timotimo from the number of "null" calls it did it looks kind of like i'm not in the speshed version of this function, actually 22:13
i can't find a version of this in the speshlog that corresponds to the ops i'm seeing in the interpreter 22:15
i.e. i see getarg_o followed by profile_log_allocated 22:16
in the interpreter
jnthn The profiler form doesn't appear in the spesh log I guess
timotimo i don't like that much :)
jnthn oh, but sp_getarg_o would only be in such a form
Uh, a spesh'd form I mean
timotimo ah, indeed
11 nulls 22:17
i do see prof_allocated entries in the speshlog in other places 22:19
jnthn Sleep time here, and for once it's a nice temperature for sleeping 22:20
o/
timotimo yay! 22:21
have a good sleep :)
i found where i'm executing 22:22
it's the version of run_alt that had its logging stuff inserted
now i notice i'm in the frame that already got the null passed in via a parameter m( 22:25
so i need to go up an mvm frame
i really need to add many more gdb commands 22:29
especially a disassembler would be nice to have 22:35
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/06/26/...way-there/ 22:36
timotimo oh i seem to remember the "where are colons used" idea was announced at least a month in advance of TPC2017 22:40
lizmat++ 22:43