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:05 reportable6 joined 00:20 Geth left, Geth joined 00:27 Geth left, Geth joined 00:31 Geth left 00:32 Geth joined 00:36 Geth left, Geth joined 00:47 Geth left, Geth joined 00:52 Geth left, Geth joined 01:00 Geth left 01:01 Geth joined 01:05 Geth left, Geth joined 01:37 Geth left 01:38 Geth joined 01:42 Geth left, Geth joined 01:57 discord-raku-bot left 03:22 sourceable6 left, notable6 left, nativecallable6 left, coverable6 left, greppable6 left, releasable6 left, committable6 left, shareable6 left, bloatable6 left, squashable6 left, evalable6 left, unicodable6 left, benchable6 left, reportable6 left, linkable6 left, tellable6 left, bisectable6 left, quotable6 left, statisfiable6 left, committable6 joined 03:23 linkable6 joined, reportable6 joined 03:24 unicodable6 joined, sourceable6 joined, notable6 joined, quotable6 joined, nativecallable6 joined 03:25 greppable6 joined 04:23 evalable6 joined, bisectable6 joined 04:24 coverable6 joined 04:25 releasable6 joined, bloatable6 joined 05:23 tellable6 joined 05:24 shareable6 joined, benchable6 joined 06:02 reportable6 left 06:04 reportable6 joined 06:23 statisfiable6 joined, squashable6 joined
Nicholas good *, #moarvm 06:57
MasterDuke ugh, i thought this radix change would be pretty trivial. i don't know if it's because i've only been working on it pretty late, or i underestimated the difficulty, but i expected to be at the benchmarking stage right now, not the `say (:3<120>).WHAT` prints `(Rat)` stage... 08:17
Nicholas m: say (:3<120>).WHAT 08:35
camelia (Int)
MasterDuke i don't even know why it's doing it 08:37
Nicholas (me neither) but I think technically it's true, as rational numbers are a superset of integers. But this isn't helpful... 08:38
timo MasterDuke: have you tried using the MVM_COVERAGE_LOG to find the code path? 09:33
MasterDuke hm, good idea 09:36
09:39 dogbert17 left, moon-child left 09:45 TempIRCLogger__ left 09:46 statisfiable6 left, Kaiepi left, rypervenche left, Colt left, JRaspass left, jdv left, harrow left, reportable6 left, benchable6 left, shareable6 left, tellable6 left, bloatable6 left, releasable6 left, coverable6 left, bisectable6 left, evalable6 left, AlexDaniel left, ilogger2 left, greppable6 left, nativecallable6 left, notable6 left, linkable6 left, committable6 left, psydroid left, samcv left, leedo left, timo left, sena_kun left, Geth left, Util_ left, codesections left, Voldenet left, squashable6 left, quotable6 left, sourceable6 left, unicodable6 left, frost left, [Coke] left, vrurg left, nine left, ugexe left, tbrowder left, japhb left, gfldex left, camelia left, lizmat left, SmokeMachine left, nebuchadnezzar left, Nicholas left, leont left, jnthnwrthngtn left, rba left 09:52 Colt left, Colt joined 10:07 Geth left, Geth joined
MasterDuke huh, didn't really help. it's happening at compile time, so i tried putting it in an EVAL, but still can't find it (in the coverage log) 10:13
timo tried --optiimze=0? 10:14
or =off
(on the rakudo commandline)
10:16 Geth left, Geth joined
MasterDuke oh, tried that before, but not with the coverage log 10:17
why don't i see any of Grammar.pm6 or Actions.pm6 in the log? 10:18
s/pm6/nqp/g
timo good question 10:19
MasterDuke oh, i do in a full log, but not when i used nqp::coveragecontrol to only turn it on in the EVAL
ok, looks like it's a problem with rad_number 10:38
ok, this is blowing my mind 10:40
look at these lines in this patch gist.github.com/MasterDuke17/cbf7f...ch-L38-L39 10:41
two prints, one right after the other 10:42
and this is the output when i run `say :3<122>`
i: 122
17 3 3
0 1 2
wants Rat: 51 3
17
where is the "f: <...>"!?!?!? 10:43
timo the ?? eats it 10:45
MasterDuke retracts the question and looks for a way to purge the chat logs 10:46
timo happens to the best of us 10:51
wanna implement a tiny little optimizer pass that warns about this? for example, a non-empty string concatenated with any variable will always evaluate to True 10:52
MasterDuke can look into that after i figure this out 10:56
ah, figured out what's going on, now to see if there's an easy fix 10:57
m: use nqp; say nqp::radix_I(3, ".0", 1, 4, Int)
camelia (0 1 2)
MasterDuke i'm getting the same result locally, which is the problem, it should be (0, 0, 2) 10:58
since i then raise radix to the power of the second element to get what was the value before 10:59
timo but anything raised to the power of 0 is 1, isn't it? or does that refer to the 1 after the ".0"? 11:03
MasterDuke yeah. the problem is that currently i'm counting the trailing 0 as being a parsed character, when in this case it shouldn't be 11:06
m: use nqp; say nqp::radix_I(3, ".0", 1, 0, Int)
camelia (0 3 2)
MasterDuke i was trying to be a little too clever, but now all spectests pass 11:15
time to see if this is a net positive improvement now
timo glad to hear 11:16
11:29 evalable6 left, linkable6 left 11:31 linkable6 joined
MasterDuke timo: btw, any chance you can generate some more app images? they're convenient to test with when i make changes over the whole moarvm/nqp/rakudo stack (i.e., i can't just quickly `git stash` a change in moarvm and rebuilt just it) 11:40
timo i'll have to spend a bit of time figuring out github actions or whatever it is that we replaced travis-ci with 11:41
12:02 reportable6 left 12:05 reportable6 joined 12:32 evalable6 joined 12:38 squashable6 left 12:42 discord-raku-bot joined 14:39 squashable6 joined 14:59 frost left 15:39 Geth left, Geth joined
jdv this is the recent blin run - github.com/rakudo/rakudo/issues/4667 16:27
16:27 Geth left, Geth joined
sena_kun jdv, o/ 16:28
jdv, thanks for doing it. November is the eternal false positive, so it should be filtered out before posting. 16:29
TCP::LowLevel has a PR with a fix, so that too. 16:30
jdv ah, thanks. 16:31
sena_kun I'd vote for putting it into ignored modules in Blin, unless you have time and passion to actually investigate what on earth is happening with this module (it's a bug in blin, zef, rakudo or whatever in between).
nine jdv: NativeHelpers::Callback is weird in that it didn't appear in the github.com/rakudo/rakudo/issues/4643 Blin run but the commits the bisection points to have already been present then 16:32
That's also the only module where I see action needed by me 16:33
sena_kun right, others want some attention from codesections I think.
nine jdv: I cannot reproduce the NativeHelpers::Callback issue 16:39
jdv nine: doesn't Algorithm::Evolutionary::Simple bisects to a commit of yours as well?
nine jdv: yes it does. But the commit itself is innocent. It merely exposed the huge number of issues surrounding native unsigned integers that affect all parts of the stack and which I've worked on cleaning up for the past 2 weeks. But as I said in my initial assessment, this is not gonna be a quick fix but rather a month long project - optimistically speaking. 16:41
The only reason Algorithm::Evolutionary::Simple sort of worked before is another rakudo bug. 16:42
Does blin run tests in parallel?
MasterDuke i think so
jdv yes it does 16:43
i can repro NativeHelpers::Callback outside of blin on head
so do we just ignore the Algorithm::Evolutionary::Simple failure then? i'm new here... 16:44
nine With only one test running at a time?
jdv yes, gist.github.com/jdv/9d13d434463971...14d7b9bda1
nine jdv: I see no other choice for Algorithm::Evolutionary::Simple. Fix is in the works, but I wouldn't even promise that it can make it into the release after the upcoming one. Unfortunately it looks like the only way to fix this one issue is to basically fix all of them. 16:46
And disabling the (in this particular case) bogus error message causes spec test failures.
jdv: still no joy in reproducing locally :/ Seems like I won't be able to debug this 16:50
dogbert11 FWIW, I can repro the test failures in NativeHelpers::Callback 16:52
nine: on my system valgrind is quite upset with 01-basic.t 16:53
1..8 16:57
==668293== Conditional jump or move depends on uninitialised value(s)
==668293== at 0x4A8841C: MVM_intcache_get (intcache.c:42)
==668293== by 0x4AB34FA: MVM_repr_box_int (reprconv.c:656)
==668293== by 0x4A82111: nativecall_cast (nativecall.c:527)
==668293== by 0x4A5F761: MVM_interp_run (interp.c:4072)
nine Why are suddenly all my problems about ints?! :D 17:00
dogbert11 they like you :) 17:01
nine Maybe its because I watch all those Numberphile Youtube videos when cooking...
dogbert11 perhaps the valgrind report is bogus? 17:03
nine Nah, it's too close to be coincidence 17:04
Actually I get a ton of "Conditional jump or move depends on uninitialised value" errors with valgrind 17:07
dogbert11 yeah, I only posted the first in the list 17:11
hopefully there's only one problem ...
dogbert11 is struggling with part two of todays AoC problem 17:12
[Coke] needs to catch up again! 17:25
17:27 evalable6 left, linkable6 left 17:28 evalable6 joined 17:29 linkable6 joined
nine I'm starting to suspect that the valgrind output might be bogus after all. But then we're back at square 1 again. 17:33
And I still can't reproduce the actual failure.
Or no, valgrind is right indeed! 17:35
What does the test do? It calls make_a_thing which allocates some memory but doesn't initialize it: github.com/CurtTilmes/raku-nativeh...back.c#L15 17:36
Then it calls NativeHelpers::Callback.id on the pointer it got back: github.com/CurtTilmes/raku-nativeh...asic.t#L36 17:37
This just casts the thing it got to int64: github.com/CurtTilmes/raku-nativeh...rakumod#L8
The purpose is probably to use the pointer value as a hash key. But nativecallcast actually dereferences the pointer it got and creates the number from the dereferenced memory location! github.com/MoarVM/MoarVM/blob/mast...all.c#L561 17:38
But remember: that is uninitialized memory
jdv: but in the module! ^^^ 17:40
dogbert11 looks like you're off the hook 17:46
jdv cool. i'll note that stuff. 17:47
18:02 reportable6 left 18:48 [Coke] left 18:58 [Coke] joined 18:59 Geth left 19:00 Geth joined, linkable6 left 19:04 Geth left, Geth joined 19:08 Geth left 19:09 Geth joined 19:40 Geth left, Geth joined 20:01 linkable6 joined 20:05 reportable6 joined
jdv is github.com/rakudo/rakudo/issues/46...-993892953 suggesting add those as blockers? 20:39
20:42 vrurg left 20:44 vrurg joined
Geth MoarVM: MasterDuke17++ created pull request #1619:
Change nqp::radix(_I)? to return # chars converted
20:56
20:57 Geth left, Geth joined
japhb MasterDuke: Did you already do the performance tests on those changes? Or is that waiting for the other PRs? 21:01
MasterDuke i've done some, i was going to put the numbers in the rakudo PR
21:24 patrickb joined 21:29 sena_kun left 21:31 sena_kun joined
jdv nine: libXML's issues may be from the nativecall stuff. seems to bisect to the same spot NativeHelpers::Callback does. 21:58
22:04 Geth left, Geth joined 22:26 patrickb left 22:28 Geth left, Geth joined