github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm Set by AlexDaniel on 12 June 2018. |
|||
00:38
SuperSeriousCat2 joined
00:39
SuperSeriousCat2 left
00:52
stmuk joined
00:53
p6bannerbot sets mode: +v stmuk
00:54
stmuk_ left
00:59
pppingme10 joined
01:02
pppingme10 left
01:04
stmuk_ joined
01:05
p6bannerbot sets mode: +v stmuk_
01:06
stmuk left
01:17
stmuk joined
01:18
p6bannerbot sets mode: +v stmuk
01:20
stmuk_ left
02:10
lizmat left
02:31
lizmat joined
02:32
p6bannerbot sets mode: +v lizmat
02:35
lizmat left
02:37
Guest19235 joined,
Guest19235 left
03:05
darkmagic joined
03:08
darkmagic left
04:14
reportable6 left,
committable6 left,
nativecallable6 left,
squashable6 left,
undersightable6 left,
evalable6 left,
notable6 left,
quotable6 left,
statisfiable6 left,
coverable6 left,
bloatable6 left,
unicodable6 left,
shareable6 left,
releasable6 left,
benchable6 left,
bisectable6 left,
greppable6 left,
notable6 joined,
nativecallable6 joined,
committable6 joined,
coverable6 joined,
bisectable6 joined,
greppable6 joined,
bloatable6 joined,
quotable6 joined,
benchable6 joined,
unicodable6 joined,
evalable6 joined,
shareable6 joined,
squashable6 joined,
releasable6 joined,
reportable6 joined,
undersightable6 joined,
statisfiable6 joined
04:15
p6bannerbot sets mode: +v notable6,
p6bannerbot left,
p6bannerbot joined,
ChanServ sets mode: +o p6bannerbot
06:35
domidumont joined
06:36
p6bannerbot sets mode: +v domidumont
08:21
domidumont left
|
|||
nine | Oh boy. I think I now understand the NativeCall JIT issue I found yesterday. For rw args, I read the value back from the args buffer after the call and assign them to the lexref. BUT since I side step most of the invoke compilation stuff, the arg_* instructions are never compiled to code and the values are never actually copied to the args buffer. | 08:56 | |
Instead, the native functions get pointers to the WORK registers where the original values are located. Seems like this just works most of the time by accident. | 08:58 | ||
What I don't understand however is why this works in interpreted code. | |||
Oh...of course. Because in the interpreted code the argument is actually copied to the args buffer :) | 09:06 | ||
09:12
nkk71 joined
|
|||
nine | So either, I solve this by making it compile the arg_* instructions. Or I get rid of the getarg_* and have it take the written value from the WORK register | 09:14 | |
I guess the latter may run into issues with future spesh improvements while the former is a tiny bit slower but safer. | 09:15 | ||
09:15
nkk71 left
|
|||
nine | Though the latter would actually be pretty easy to implement... | 09:43 | |
Well, at least the bug hunt was totally worth it. The optimization that uncovered it got me some 5-10 % :) | 10:34 | ||
10:55
lizmat joined
10:56
p6bannerbot sets mode: +v lizmat
|
|||
jnthn | Kaiepi: The typical pattern for that, as done with Proc::Async when we wanted to plumb fds together but still return a Supply, is to return a subclass of Supply which can be used to obtain the descriptor before being tapped | 11:09 | |
nine++ # bug hunting | 11:10 | ||
lizmat | jnthn: do you agree that something like "my int @a; @a[0] = 42" | 11:12 | |
should statically optimize to something like "nqp::assign(nqp::atpos(@a,0),42)" ? | 11:13 | ||
*atpos_i | |||
jnthn | No, I think our inlining tech is closing in on doing that for us anyway | 11:14 | |
lizmat | ok | 11:15 | |
jnthn | Also I suspect the general case needs a range check? | ||
lizmat | I guess adding a postcircumfix<[ ]>(Blob:D , int) candidate wouldn't make sense for the same reason ? | 11:16 | |
jnthn | What, that avoids calling .AT-POS? | ||
lizmat | yeah | ||
jnthn | Yeah, that breaks subclassing I guess | ||
But for both Array and Hash it's already flattening the whole postcircumfix and AT-POS/AT-KEY thing into the caller | 11:17 | ||
lizmat | I guess we need spectests for that then :-) | ||
jnthn | :) | 11:18 | |
lizmat | I guess we need to wait for an nqp release before we can merge all the nice goodies in MoarVM and bump everything, right ? | 11:19 | |
jnthn | We can merge various things. Not the postrelease-opts (unless you want assorted SEGVs :)) | 11:21 | |
lizmat | well, the next release target is only 2 weeks away | 11:23 | |
jnthn | Then it'll happen after the next release, unless somebody else is up for the debugging :) | 11:27 | |
'cus this week I've got teaching + conf, and next week I'm taking some vacation :) | |||
timotimo | how do we feel about putting $arg.WHAT =:= ExactClass checks into core setting routine? | 11:28 | |
lizmat | timotimo: been done before | ||
timotimo | was it bad? | ||
jnthn | Might turn out to be of marginal benefit these days given we spesh on arg type | 11:29 | |
lizmat | DateTime.new basically does that so it can use a positional interface to create objects | 11:30 | |
jnthn | otoh, it'll also specialize well in the other cases :) | ||
(Where specializing on argument alone isn't enough to get the win) | |||
lizmat | but having Blob:D as a constraint, where it is a parameterized role, won't do much good | 11:31 | |
there would be a lot to test against | |||
jnthn | tbrowder_: Did you try a --ll-exception and working out exactly where the bad invoke is? | 11:35 | |
tbrowder_ | not yet, but i will shortly | 11:39 | |
got to go now but thanks for help | 11:42 | ||
jnthn: don’t waste time on my prob, i think i’ve run into the nqp not giving good err msg, will report later | 11:46 | ||
got a good $/.dump, will report details on #perl6-dev, thanks! | 12:36 | ||
13:43
MasterDuke left
14:01
yoleaux joined
14:02
p6bannerbot sets mode: +v yoleaux
14:13
webbyz joined
14:14
zakharyas joined
14:15
ecrist1 joined,
p6bannerbot sets mode: +v zakharyas
14:17
webbyz left
14:18
ecrist1 left
14:45
camelia left
14:46
camelia joined
14:47
p6bannerbot sets mode: +v camelia
16:28
fake_space_whale joined
16:29
p6bannerbot sets mode: +v fake_space_whale
17:30
fractal18 joined
17:33
fractal18 left
17:34
MasterDuke joined,
p6bannerbot sets mode: +v MasterDuke
18:02
lizmat left
18:32
lizmat joined
18:33
p6bannerbot sets mode: +v lizmat
18:48
domidumont joined
18:49
p6bannerbot sets mode: +v domidumont
18:53
patrickz joined,
p6bannerbot sets mode: +v patrickz
19:05
domidumont left
19:46
MrElendig18 joined,
MrElendig18 left
20:22
zakharyas left
21:26
patrickz left
21:34
fake_space_whale left
21:35
fake_space_whale joined,
p6bannerbot sets mode: +v fake_space_whale
21:50
jcline29 joined
21:55
jcline29 left
23:22
reportable6 left,
reportable6 joined
23:23
p6bannerbot sets mode: +v reportable6
|
|||
AlexDaniel | samcv: so is updating the wiki page part of the release process? gist.github.com/Whateverable/301c9...ouncements | 23:28 | |
23:59
lizmat left,
MasterDuke left,
MasterDuke joined,
herbert.freenode.net sets mode: +v MasterDuke,
p6bannerbot sets mode: +v MasterDuke
|