github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
nwc10 good *, #moarvm 09:09
jnthn o/ 09:14
nwc10 \o 09:15
I slack at tracking things - t/spec/S02-types/sethash.t now passes. What wonderful person and what change fixed that? 09:16
brrt \o 09:40
lizmat nwc10: I think I'm responsible for that 11:27
Rakudo 1f066d96a28940d3aae812fe5 and following 11:28
nwc10 yes, looks likely 11:29
lizmat a similar situation can still exist with hashes in general
I guess we don't test for that
jnthn Aha, think I found the spesh bug that tripped up my handler reduction stuff 13:29
A longer-standing bug that was just hidden
I think I've also uncovered a spectest that passes for completely the wrong reason 13:30
Also, Test.pm does something awful 13:31
Geth MoarVM: c4396d2e50 | (Jonathan Worthington)++ | src/spesh/manipulate.c
Fix inline boundary end annotation motion

It's a frame handler in the sense that it goes into that table, but we need to need to move it like the inline end handler. Otherwise, we can get an off-by-one.
13:33
Guest16965 jnthn: hacking again, are you going to continue your pea work? 13:57
jnthn Yes, at some point soon :)
Currently doing what I expected might be a small/simple win, only to find that not really :P 14:00
Guest16965 you should go for a simple bug :)
jnthn Down to 2 spectests
And one is 'cus the test was written in such a way to hide the bug 14:01
And we're now smart enough to generate better code and so expose it again
Guest16965 better code is always nice :) 14:04
timotimo yes, yay! 14:11
jnthn m: sub { sub foo($x = return 42) { 70 }; say foo }() 14:20
evalable6
jnthn Notice the lack of output
is-deeply sub { sub foo($x = return 42) { 70 }; say foo }(), 42, 14:21
'can return from parameter defaults';
And how the test is bogus
timotimo huh 14:22
yeah, that'd never return 42, only ever True, right?
oh, or the return is supposed to return from the outer sub actually?
jnthn Well, the problem is that you *can't* currently do `return` in parameter defaults
Well, or it will return from the outer sub, but that's surely a bug also 14:23
timotimo so the test speculates a feature, but it does it wrongly?
jnthn Right
The reason it doesn't work is that the return handler wraps around the sub body
But not the parameter processing code
timotimo mhm
jnthn I guess I could preserve the current behavior for the sake of not dealing with this now 14:24
Argh, got fixes for all the spectests, and now have a failing `make test` again :/ 14:51
Plus it's really annoying that if I don't `make install` then `make test` will fail, seemingly because it picks up on a previous installation (which explains why CI thinks all is well) 14:53
timotimo i'll surely get bitten by that as well 14:54
jnthn Hmm, it was my Test.pm6 change that broked it 14:55
*sigh* Test.pm6 does some really quite evil things 15:03
Hurrah, clean test and spectest 15:20
And big $dayjob project test suite is happy too, which is always a good sign 15:24
masak wait, what evil things does Test.pm6 do? o.O 15:27
jnthn masak: github.com/rakudo/rakudo/commit/84b0e38048 was the latest fun 15:37
masak oh dear :/ 15:49
Geth MoarVM: Garland-g++ created pull request #1090:
Add flag for UV_UDP_REUSEADDR
16:48
MoarVM: 9b1b60f663 | (Jonathan Worthington)++ | src/jit/x64/emit.dasc
Avoid a write barrier when we don't need one

Shrinks the code for the the get-vivify-type-object case.
17:16
Xliff \o 22:04
What does this error mean. Obtained when running perl6
"Cannot invoke object with invocation handler in this context" 22:05
jnthn Generally, you tried to combine to kinds of invocation that can't be nested due to implementation limitations. 22:06
Most often comes from trying to be too clever... :) 22:07
Xliff HA! That I was.
Checking the "less" clever fix, now.
jnthn One of those "ideally we'd fix this" things
Xliff Yes. The less clever, but more limiting solution did not generate that error. 22:09
Something like: class A { method (&s) { do-sub-in-c(&s) }; multi sub do-sub-in-c(&s (Pointer)) { * }; multi sub do-sub-in-c(&s (Pointer, Pointer)) { * } 22:10
Because &s can have many signatures. I was hoping Perl6 could dispatch based on the signature passed.
Via class A, ala: A.s(-> $ { # This is the single pointer version }) 22:11
timotimo i wonder if there'd be someone willing to give me a microgrant for working in var args support on moarvm with both libffi and dyncall 22:16
that'd let you have a *@foo where C would have a ... in the function signature
perhaps there'd also be an explicit way to say "actually, the ... starts at position X"
so you could have a perl6 signature with proper constraints that still maps to a C signature that has ... in some spot 22:18
though there are subsignatures, of course, you may not actually want that for some reason or other 22:23
Xliff If I had the money, I would. :p