github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
00:00 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke, MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke 01:12 evalable6 left, evalable6 joined 01:13 p6bannerbot sets mode: +v evalable6 01:25 ggoebel joined, p6bannerbot sets mode: +v ggoebel 02:32 ggoebel left 02:49 fake_space_whale joined 02:50 p6bannerbot sets mode: +v fake_space_whale 04:58 Voldenet left 06:19 MasterDuke left 06:32 robertle joined 06:33 p6bannerbot sets mode: +v robertle 06:50 fake_space_whale left 07:01 zakharyas joined 07:02 p6bannerbot sets mode: +v zakharyas 08:05 domidumont joined, p6bannerbot sets mode: +v domidumont 08:35 dalek left 08:36 Geth left 08:55 Voldenet joined, Voldenet left, Voldenet joined, p6bannerbot sets mode: +v Voldenet 09:26 p6lert left, synopsebot left, SourceBaby left, dalek joined 09:27 synopsebot joined, Geth joined, p6lert joined, p6bannerbot sets mode: +v dalek, p6bannerbot sets mode: +v synopsebot, p6bannerbot sets mode: +v Geth, p6bannerbot sets mode: +v p6lert 09:55 SourceBaby joined
Geth MoarVM/nqp-mbc: 25d12cdec6 | (Stefan Seifert)++ | 2 files
Seed the deserialization string heap for getting correct indexes

Originally there were two pieces of code for collecting the string heap: the data serialization (nqp::serialize) and the MAST compiler. The strings collected during serialization were used as seed for the MAST compiler's string heap. MVM_serialization_serialize assumed that it was passed an empty string heap to fill. Since we now assemble bytecode (and the string heap) before serializing data, we have to flip this. Serialization's string heap is now seeded with the bytecode compiler's.
09:55
MoarVM/nqp-mbc: da09a981a6 | (Stefan Seifert)++ | tools/update_ops.p6
Use unbox_u to get at MAST::Local's $!index to avoid the coercion dance
09:55 p6bannerbot sets mode: +v SourceBaby 09:57 Geth left, Geth joined 09:58 p6bannerbot sets mode: +v Geth 11:19 zakharyas left 12:14 ItchyPlant joined 12:15 p6bannerbot sets mode: +v ItchyPlant
ItchyPlant Hello 12:16
So I'm still trying to compile MoarVM on AIX 7.1...
After I added the "-bnoquiet" to Makefile's LDFLAGS and tried "make" again, I got this: 12:17
ld: 0711-318 ERROR: Undefined symbols were found.
The following symbols are in error:
Symbol Inpndx TY CL Source-File(Object-File) OR Import-File{Shared-object}
RLD: Address Section Rld-type Referencing Symbol
----------------------------------------------------------------------------------------------
.uv__hrtime [10] ER PR 3rdparty/libuv/src/unix/loop.c(3rdparty/libuv/libuv.a[loop.o])
0000009c .text R_RBR [834] .uv_loop_init
.uv__hrtime [90] ER PR 3rdparty/libuv/src/unix/thread.c(3rdparty/libuv/libuv.a[thread.o])
00000cb0 .text R_RBR [1224] .uv_cond_timedwait
.uv__hrtime [92] ER PR 3rdparty/libuv/src/unix/core.c(3rdparty/libuv/libuv.a[core.o])
00000010 .text R_RBR [1004] .uv_hrtime
00000620 .text R_RBR [1133] .uv_run
00000934 .text R_RBR [1133] .uv_run
000009c8 .text R_RBR [1133] .uv_run
00000a38 .text R_RBR [1350] .uv_update_time
.uv__hrtime [32] ER PR 3rdparty/libuv/src/unix/aix.c(3rdparty/libuv/libuv.a[aix.o])
000004c4 .text R_RBR [1417] .uv__io_poll
.uv_free_cpu_info [4] ER PR src/platform/sys.c(src/platform/sys.o)
00000024 .text R_RBR [1466] .MVM_platform_cpu_count
ER: The return code is 8. 12:18
ld: 0711-317 ERROR: Undefined symbol: .uv__hrtime
ld: 0711-317 ERROR: Undefined symbol: .uv_free_cpu_info
collect2: error: ld returned 8 exit status
make: *** [Makefile:602: libmoar.so] Error 1
...and yes, the "uv__hrtime" definition is missing from "3rdparty/libuv/src/unix/loop.c"
it should fit with requiement defined in this header: 12:19
3rdparty/libuv/src/unix/internal.h:242:10: note: declared here
uint64_t uv__hrtime(uv_clocktype_t type);
Do you know what should I add to 3rdparty/libuv/src/unix/loop.c about "uv__hrtime"? :) 12:20
ugexe hrtime is intermittedly busted on libuv 12:26
and AIX
github.com/libuv/libuv/issues/2041
ItchyPlant yes, it is something, and it is kind of a known issue... but hard to get (for me) what to do, what to include or to remove from MoarVM's sources :/ 12:33
12:37 zakharyas joined 12:38 p6bannerbot sets mode: +v zakharyas 12:50 ItchyPlant left 13:24 ItchyPlant joined 13:25 p6bannerbot sets mode: +v ItchyPlant 13:43 ItchyPlant left 13:45 lizmat left 13:56 domidumont left 13:57 domidumont joined 13:58 p6bannerbot sets mode: +v domidumont 14:48 AlexDaniel left 15:16 fake_space_whale joined, p6bannerbot sets mode: +v fake_space_whale 15:29 robertle left 15:45 lizmat joined, p6bannerbot sets mode: +v lizmat
ugexe any guesses what reini urban meant when he said "Same for the new jit template idea, which does not scale. At all."? as in -- does anyone know what compromise may have been made that he does not agree with? Something resulting in high register pressure? 15:57
jnthn The claim feels to vague to say anything sensible about. 16:00
Doesn't scale in what sense?
16:01 fake_space_whale left
jnthn *too vague 16:01
Time complexity when compiling larger pieces of code? Portability to new architectures? Number of people who can contribute? 16:02
16:02 ggoebel joined 16:03 p6bannerbot sets mode: +v ggoebel
jnthn I'd be surprised if the first is true, given it largely implements published algorithms from well-regarded academic papers. The second doesn't feel true to me either, given the design allows re-use of much of the code in such an effort. And the last one we have contributor data to suggest isn't the case. 16:04
ugexe there was a back-and-forth between you, reini, and brrt in comments of the JIT branch before it was merged. i think he actually supplied some reasons there, but i cannot find the conversation now 16:07
jnthn Hmm, I don't recall the conversation either (but that may well be because I'm largely dismissive towards reini's views by this point; maybe there's occasionally signal, but most of it feels like noise to me) 16:08
16:10 domidumont left
ugexe found it: github.com/MoarVM/MoarVM/pull/625#...t-22390798 16:19
well, one of them 16:20
timotimo if we create or fastcreate an object, shouldn't we be able to say "it's a p6opaque that's freshly created, and if it were to get a mixin, we'd deopt, so we can turn all p6oget and p6obind into get and bind"? 16:22
jnthn Yes, that's possible 16:23
Though again, it's not clear that PEA won't just rip out all those cases anyway
We normally can lower to a fastcreate 16:24
timotimo right, i'm of course looking at the post optimize output, so at that point perhaps it's really still a getattr 16:25
hm, but it'll have to understand fastbox, too. that shouldn't be hard, though 16:26
jnthn timotimo: I think it'd be better to wait and see if PEA does nail those cases. Optimizations cost something; if we can get the same effect from one of them, that's better. 16:27
timotimo OK 16:28
the "split nativeref decont into decont_* and box_*" op is ifne to go into master after the release, then? 16:29
opt* fine* 16:30
jnthn Yes
That'll help already and is good for the EA
resting, eating, etc. & 16:31
timotimo rebased and cleaned up the branch 16:32
Geth MoarVM/nativeref_decont_split: d6316e7f0c | (Timo Paulssen)++ | src/spesh/optimize.c
decont on nativeref shall become decont_* + box_*

this way we should later be able to use the deconted value directly without boxing it first, and then more easily get rid of a native ref taking instruction.
MoarVM/nativeref_decont_split: 3114764ca3 | (Timo Paulssen)++ | src/spesh/optimize.c
set flags & known type on spesh slot

unblocks optimizing the box_* into a fastbox, in the case of box_i it will even go through the int cache.
timotimo jnthn: have a good rest and noms :)
16:34 AlexDaniel joined, p6bannerbot sets mode: +v AlexDaniel, domidumont joined 16:35 p6bannerbot sets mode: +v domidumont
timotimo man, this really itches in my fingers ... Range's elems method has getattrref_i, decont_i, fastbox_i, bool_I 16:52
oh, and then immediately unless_i on the result of bool_I, too 16:54
17:28 robertle joined 17:29 p6bannerbot sets mode: +v robertle 17:39 domidumont left 17:44 Kaiepi left 17:45 Kaiepi joined, p6bannerbot sets mode: +v Kaiepi 18:12 zakharyas left
nine timotimo: I won't keep you from improving this :) 19:06
19:18 AlexDaniel left
timotimo we'll probably want to first get the other optimizations in to see what actually needs its own optimization 19:25
19:41 ggoebel left
dogbert17 hmm, a SEGV which disappears when the JIT is turned off 19:49
19:57 ggoebel joined
dogbert17 more specifically when the EXPR JIT is turned off 19:57
19:58 p6bannerbot sets mode: +v ggoebel
dogbert17 MVM_SPESH_NODELAY=1 MVM_SPESH_BLOCKING=1 ./perl6 t/spec/S32-io/IO-Socket-Async.t 19:59
20:03 AlexDaniel joined, p6bannerbot sets mode: +v AlexDaniel
timotimo hm, the jit bisector assumes that turning off the expr jit at the right moment makes things work 20:49
20:49 Kaiepi left, Kaiepi joined 20:50 p6bannerbot sets mode: +v Kaiepi 21:31 robertle left 21:46 lizmat left 23:00 lizmat joined, p6bannerbot sets mode: +v lizmat 23:04 lizmat left