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
|