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
|