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:07 reportable6 left 01:10 reportable6 joined 01:52 ggoebel_ joined, ggoebel left 02:26 frost joined 03:45 linkable6 left, evalable6 left 03:47 linkable6 joined 06:07 reportable6 left 06:09 reportable6 joined 07:15 quotable6 left, bloatable6 left, bisectable6 left, notable6 left, unicodable6 left, committable6 left, coverable6 left, benchable6 left, greppable6 left, linkable6 left, reportable6 left, shareable6 left, releasable6 left, squashable6 left, nativecallable6 left, statisfiable6 left, sourceable6 left, tellable6 left 07:16 notable6 joined, committable6 joined, nativecallable6 joined, tellable6 joined, linkable6 joined 07:17 reportable6 joined, bloatable6 joined, bisectable6 joined 07:18 squashable6 joined, coverable6 joined 08:16 shareable6 joined, benchable6 joined 08:17 unicodable6 joined 08:18 statisfiable6 joined 09:15 sourceable6 joined 09:16 releasable6 joined 09:31 TheAthlete joined 09:48 evalable6 joined 10:16 greppable6 joined 10:53 lizmat_ joined 10:54 TempIRCLogger__ joined 10:55 TempIRCLogger left 10:57 lizmat left 10:58 TempIRCLogger__ left, TempIRCLogger joined 11:17 quotable6 joined 11:53 Altai-man joined 12:02 lizmat_ left 12:03 lizmat joined 12:07 reportable6 left 13:07 linkable6 left, evalable6 left 13:21 lizmat left 13:23 lizmat joined, TempIRCLogger__ joined 13:24 TempIRCLogger left 13:27 TempIRCLogger__ left, TempIRCLogger joined 13:49 [Coke] left 14:10 linkable6 joined 14:24 frost left 16:10 reportable6 joined 16:50 guifa joined
guifa Altai-man: I golfed it! 16:50
Altai-man guifa, great work! Now ticket time. :) 16:51
guifa m: class A { has int32 $.b is rw }; sub foo(int32 $c is rw) { $c += 1 }; my $a = A.new: :0b; foo $a;
camelia Bytecode validation error at offset 50, instruction 9:
operand type 32 does not match register type 24 for op decont_i in frame foo
in block <unit> at <tmp> line 1
MasterDuke m: class A { has int32 $.b is rw }; sub foo(int32 $c is rw) { $c += 1 }; my $a = A.new: :0b; foo $a.b; 16:59
camelia Bytecode validation error at offset 50, instruction 9:
operand type 32 does not match register type 24 for op decont_i in frame foo
in block <unit> at <tmp> line 1
MasterDuke m: class A { has int $.b is rw }; sub foo(int $c is rw) { $c += 1 }; my $a = A.new: :0b; foo $a.b;
camelia ( no output )
MasterDuke maybe nine++'s work on unsigned natives will also end up fixing that 17:00
17:09 evalable6 joined
dogbert17 looks like the optimizer might be involved in some fashion, try running with --optimize=0 17:38
timo turning the optimizer off completely requires --optimize=off ftr 17:51
guifa MasterDuke: ah noted. Unfortunately for this code I can't just use int, but I can definitely write in a work around for this particular function and comment it accordingly 17:53
18:08 reportable6 left 18:10 reportable6 joined
nine chance is good, yes 18:25
18:30 Altai-man left
guifa alright report filed. thanks for feedback, knowing the source I'll adjust my code for the time being 18:46
19:24 guifa left
Geth MoarVM: 48f584c4fb | (Daniel Green)++ | src/core/coerce.c
Use faster itoa implementation

On my system this version consistently was faster than the existing one when running the benchmark from github.com/miloyip/itoa-benchmark
This was also still the case in a trivial benchmark of NQP and Raku code. For example,
  `MVM_SPESH_BLOCKING=1 ./nqp-m -e 'my str $s; my int $i := 0; my $n := nqp::time; while $i++ < 10_000_000 { $s := $i }; say(nqp::div_n(nqp::time - $n, 1000000000e0)); say($s)'`
reports ~0.56 before and ~0.43 after. Using callgrind (though just up to 1_000_000) I see ~958,400,000 instructions before and ~873,700,000 instructions after.
19:27
MoarVM: 06170c9733 | MasterDuke17++ (committed using GitHub Web editor) | src/core/coerce.c
Merge pull request #1618 from MasterDuke17/use_faster_itoa_implementation
MasterDuke nine: i suspect a nativecall problem here gist.github.com/melezhik/812837c04...b049059316 originally it was sensitive to MVM_SPESH_DISABLE=1, but now it's been golfed further and still aborts even with spesh disabled 19:52
nine yes, speshed code looks bogus 20:31
loc_10_obj doesnt make sense as return register ofbthat sp_runnativecall_o op 20:35
MasterDuke added valgrind output (all with spesh disabled) 20:49
20:50 guifa joined 22:12 TheAthlete left 23:04 discord-raku-bot left 23:13 discord-raku-bot joined