github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
brrt timotimo: suggestion wasn't to use ConcurrentBlockingQueue, though, but to have a fixed-size (ring?) buffer 06:29
nwc10 good *, brrt
brrt ohai nwc10 06:33
timotimo moarvm spesh vm events coming up 18:01
oooh, C is angry at me 18:06
timotimo hm, all the uninitialized values 18:18
timotimo turns out values stay uninitialized if you don't write to them 19:13
MasterDuke those crazy C compilers, can never be trusted... 19:15
timotimo m: constant \T := array[int64] but role { }; my T @foo = 1, 2, 3; say @foo 19:17
evalable6 (exit code 1) Type check failed in assignment to @foo; expected array[int64]+{<anon|1>} but got Int (1)
in block <unit> at /tmp/faBIugDgBS line 1
timotimo m: constant \T := array[int64] but role { }; my T @foo; @foo = 1, 2, 3; say @foo
evalable6 (exit code 1) Type check failed in assignment to @foo; expected array[int64]+{<anon|1>} but got Int (1)
in block <unit> at /tmp/Ayyt_KkO4p line 1
timotimo er 19:18
m: constant \T := array[int64] but role { }; my T $foo; @($foo) = 1, 2, 3; say @foo
evalable6 (exit code 1) ===SORRY!=== Error while compiling /tmp/QVGjW7ablA
Variabl…
timotimo, Full output: gist.github.com/0c3765b6edbc5201d6...0a3205f71b
timotimo m: constant \T := array[int64] but role { }; my T $foo; @($foo) = 1, 2, 3; say $foo
evalable6 (exit code 1) Invocant of method 'iterator' must be an object instance of type 'array::intarray', not a type object of type 'array[int64]+{<anon|1>}'. Did you forget a '.new'?
in block <unit> at /tmp/oHlCzBCLsE line 1
timotimo i see that a native array loses its nativeness when a role is mixed in
m: class test is array[int64] { }; say test.^repr
evalable6 (exit code 1) No such method 'repr' for invocant of type 'Perl6::Metamodel::ClassHOW+{<anon>}'. Did you mean any of these?
grep
ver

in block <unit> at /tmp/rsh3_wcEsJ line 1
timotimo m: class test is array[int64] { }; .name.say for test.^roles 19:19
evalable6 (exit code 1) P6opaque: missing attribute protocol in compose of array::intarray[int64]
in block <unit> at /tmp/NFIByoMFd2 line 1
timotimo m: class test is repr<VMArray> is array_type(int64) { }; .name.say for test.^roles 19:20
evalable6
timotimo wtf: releases constant \T := array[int64] but role { }; my T $foo; @($foo) = 1, 2, 3; say $foo 19:25
i thought this is supposed to get all the bots to got o work 19:26
committable: releases constant \T := array[int64] but role { }; my T $foo; @($foo) = 1, 2, 3; say $foo
c: releases constant \T := array[int64] but role { }; my T $foo; @($foo) = 1, 2, 3; say $foo
committable6 timotimo, gist.github.com/09c9cf649101826e0d...20cba19c91
timotimo, gist.github.com/8d59d7fabc3855c540...c74677345b
timotimo oh 19:27
i was just forgetting a .new wasn't i
m: constant \T := array[int64] but role { }; my T $foo .= new; @($foo) = 1, 2, 3; say $foo
evalable6 []
timotimo m: constant \T := array[int64] but role { }; my T $foo .= new; $foo[0] = 1; say $foo
evalable6 (exit code 1) MVMArray: bindpos expected object register
in block <unit> at /tmp/j1XDUaOOZD line 1
timotimo m: constant \T := array[int64] but role { }; my T $foo .= new; $foo[0] = "hello"; say $foo
evalable6 (exit code 1) Type check failed in assignment to int array element #0; expected int64 but got Str ("hello")
in block <unit> at /tmp/vXCeZrCvl4 line 1
timotimo m: constant \T := array[int64]; my T $foo .= new; $foo[0] = 1; say $foo
evalable6 [1]
timotimo not sure how that difference happens 19:28
c: releases constant \T := array[int64] but role { }; my T $foo .= new; $foo[0] = "hello"; say $foo
committable6 timotimo, gist.github.com/0dba709161d1e335bc...a4cd7e6eee
discord6 <RaycatWhoDat> c: say 42 19:33
committable6 RaycatWhoDat, Seems like you forgot to specify a revision (will use “v6.c” instead of “say”)
RaycatWhoDat, ¦v6.c (39 commits): «42␤»
discord6 <RaycatWhoDat> c: releases say 42
committable6 RaycatWhoDat, ¦releases (39 commits): «42␤» 19:34
timotimo gist.github.com/timo/f4020bb85a102...3424cf0276 - jnthn first draft of SpeshOverviewEvent 19:37
perhaps instead of cleared_stats it should just give the current size of the stats array
Geth MoarVM: 6f72c92f9c | (Timo Paulssen)++ | src/gc/orchestrate.c
vmevent: divide timing numbers by 1000

just like we do in the profiler
19:54
MoarVM: 204eb28f0e | (Timo Paulssen)++ | 8 files
vmevent: new event type: SpeshOverviewEvent

spits out some timings and stats about work done, like how many static frames showed up for the first time, how many specializations were due to OSR, how long the individual stages took, etc.