Welcome to the main channel on the development of MoarVM, a virtual machine for NQP and Rakudo (moarvm.org). This channel is being logged for historical purposes.
Set by lizmat on 24 May 2021.
00:02 reportable6 left 00:04 reportable6 joined 00:09 patrickb left 00:58 discord-raku-bot joined 01:19 discord-raku-bot left 01:20 discord-raku-bot joined 01:48 discord-raku-bot left 01:56 discord-raku-bot joined 02:01 CaCode_ joined 02:03 CaCode- joined 02:04 CaCode left 02:06 CaCode_ left 02:08 discord-raku-bot left, discord-raku-bot joined 04:10 nativecallable6 left, quotable6 left, greppable6 left, reportable6 left, notable6 left, linkable6 left, coverable6 left, bisectable6 left, unicodable6 left, bloatable6 left, statisfiable6 left, squashable6 left, committable6 left, sourceable6 left, evalable6 left, releasable6 left, shareable6 left, tellable6 left, benchable6 left, committable6 joined 04:11 releasable6 joined, bisectable6 joined, squashable6 joined 04:12 coverable6 joined, greppable6 joined, unicodable6 joined, nativecallable6 joined 04:13 statisfiable6 joined 05:11 notable6 joined, sourceable6 joined 05:12 reportable6 joined, shareable6 joined 05:13 bloatable6 joined 06:02 reportable6 left 06:03 reportable6 joined 06:12 benchable6 joined 07:12 quotable6 joined, evalable6 joined 08:11 tellable6 joined
Geth MoarVM: bb719a6304 | (Stefan Seifert)++ | src/spesh/inline.c
Fix uninitialized register after PEA and inlining

The register in question should have been written to by a PHI node and carried the appropriate deopt usage markers. The other side of the PHI (just one version) didn't. So PEA optimized away the writer.
Fix by copying the dopt_users from the PHIs target to the PHI's sources when rewriting returns. This way PEA knows that it has to keep the writer alive.
08:59
09:13 linkable6 joined
dogbert17 Good morning Nine, already hard at work I see :) 09:15
Geth MoarVM/fix_unwind_missing_frame: 4 commits pushed by (Stefan Seifert)++ 09:19
nine dogbert17: Good morning! Well, I didn't do much this week. About time to finish up these PRs 09:20
Geth MoarVM/master: 5 commits pushed by (Stefan Seifert)++, niner++
dogbert17 checks if the commits fixes the 'indent' bug 09:21
nine It doesn't 09:25
dogbert17 Yep, I even reported it as github.com/MoarVM/MoarVM/issues/1616 09:26
nine Ah, yes, it's a clear bug in MVM_disp_program_run 09:43
Collects MVMObject pointers in the local resume_state_values array but those are ignored by the GC
dogbert17 what, no rabbit hole? 09:49
09:54 CaCode_ joined 09:56 CaCode- left
Geth MoarVM: 6fd623291a | (Stefan Seifert)++ | src/disp/program.c
Fix possible access to fromspace in MVM_disp_program_run

MVM_disp_program_run collected MVMObject pointers in the local resume_state_values array but neglected to tell the GC about those. This could lead to outdated pointers getting written to resume state targets followed by memory corruption.
... (5 more lines)
10:07
dogbert17 Nine++, impressive 10:17
10:29 squashable6 left 10:31 squashable6 joined
timo whew, you actually ran into this, huh :D 10:38
did we run that gcc plugin any time in the recent-ish past?
(should we perhaps put it into CI?)
10:38 linkable6 left
timo oh, i should probably really run coverity scan again 10:39
10:39 linkable6 joined
nine Well first step would be to make running the GC plugin easier 10:42
10:49 linkable6 left
dogbert17 ++timo for coverity scan, it's been a while 10:50
10:51 linkable6 joined
dogbert17 I'm more or less out of bugs, only the 'hyper' one remains although I'm not certain that it's MoarVM related 10:52
10:54 CaCode- joined
dogbert17 shouldn't all these fixes warrant a bump? 10:56
dogbert17 looks for lizmat
10:56 CaCode_ left
lizmat you rang? 10:56
tellable6 2021-12-03T21:38:44Z #raku <tbrowder> lizmat are you going to publish yr day 4 at midnight utc today?
2021-12-04T01:18:28Z #raku <tbrowder> lizmat i published yr day 4 article, mine is in draft for day 5. for some reason i cannot find the way to schedule the post, just publish manually.
dogbert17 lizmat: fancy a bump given that there aren't any protests. Nine is on a bug killing spree :) 10:57
lizmat ok, could do
10:58 linkable6 left
dogbert17 ++lizmat 11:06
lizmat bumped 11:21
11:27 CaCode- left
dogbert17 yay, lizmat++ 11:28
lizmat: out of curiosity, are you planning on getting an M1 Mac? 11:55
nine Darn....when testing my latest fix I got a segfault in repl.t. Coredump says we processed beyond the boundaries of the current frame's bytecode. Have tried to reproduce it in rr, but so far no luck 11:58
12:02 reportable6 left
lizmat dogbert17: not for the foreseeable future as I'm a bit cash strapped atm :-( 12:06
dogbert17 let's hope some Euros comes flying your way then :) or Apple lowering their prices ... 12:13
lizmat he... yeah, probably won't be this year... but there's fortunately not a lot of this year left :-) 12:15
nine Fixing the p6-algorithm-evolutionary-simple test failure won't be as easy as I'd hoped either. I figured we could just disable the "Cannot unbox %d bit wide bigint into native integer" errors for values > -2**64 and < 2**64. But a test and 2 spec tests explicitly test for those 12:34
Disable until the multitude of errors in handling unsigneds are fixed I mean
13:04 reportable6 joined 13:19 [Coke] left
jnthnwrthngtn Hmm. So what in MVM_disp_program_run allocates? 14:09
ah, right, the resume states are written after the bytecode frame invocation 14:12
nine Ah, adding a uint_box_type leads to the joy of bootstrapping issues. Maybe I should just add a syscall for setting single hll config keys, so I can do that later on. We don't really need UInts that early on anyway 14:21
14:35 evalable6 left, evalable6 joined 14:59 linkable6 joined
nine Oh syscalls are so nice. Just a single file to modify for adding one. No changes to NQP necessary :) 16:16
16:38 evalable6 left, linkable6 left 16:39 evalable6 joined
nine "Fun" fact 16:39
P6ints only get the unsigned flag in their storage spec initialized if a native size is set at compose time 16:40
For MoarVM, uint is actually not unsigned
Well NQP's uint that is 16:41
rakudo actually does it right, so the fix is easy to steal :) 16:44
Now that it's finally doing the right thing (tm), I end up with "You cannot create an instance of this type (UInt)" 16:48
Because of course....UInt is a subset type (hence the bootstrap issue mentioned earlier). It cannot be created directly. But...where then do UInts actually come from?
lizmat nowhere yet, afaik 16:49
UInt is just a subtype atm
nine Hm....I can actually use the int_box_type as target of the boxing but call MVM_repr_box_uint based on the lexref target type's (i.e. UInt) unsignedness. That's kind of baking the subset issue into the VM. 16:53
But! With this p6-algorithm-evolutionary-simple passes its test suite!
17:03 [Coke] joined 17:41 linkable6 joined 18:02 reportable6 left 19:05 patrickb joined 20:04 reportable6 joined
nine A little downside of handling unsigneds correctly is that Blob and Buf need to use the correct ops, i.e. atpos_u vs. atpos_i depending on the signedness of their base type. I wonder how I can implement that without tanking performance 20:20
In theory the static optimizer should be able to constant fold something like T.^unsigned ?? atpos_u(...) !! atpos_i(...) 20:21
MasterDuke why would it tank performance? a new branch for every op?
nine That or somehow use mixins or something like that to get the appropriate methods 20:22
MasterDuke sena_kun, jnthnwrthngtn: fyi, the cert for commaide.com expired today 20:33
but i accepted the risk and continued, because i want to try out the heap snapshot viewer 20:37
20:40 Guest12 joined 20:43 [Coke]_ joined 20:45 [Coke] left
Geth MoarVM: MasterDuke17++ created pull request #1617:
Alloca the nativecall args that we can
21:25
22:27 Guest12 left 22:36 [Coke]_ is now known as [Coke]
lizmat nine: I wouldn't worry about the performance in that respect: we can easily generate the code for using atpos_u vs atpos_i 22:36
timo and put everything spesh has that's already working for atpos_i to work in atpos_u without any change i assume 22:48
sena_kun MasterDuke, not sure if jnthn was that quick, but cannot confirm, it says valid to 5 March to me. 23:14
MasterDuke huh. someone else in #raku got the same message, but i'm not getting it now 23:16
timo it's the difference between www.commaide.com and commaide.com i think 23:17
without www i can access it fine, otherwise i get a security warning