00:01
TimToady joined
|
|||
MasterDuke | .ask brrt any idea why adding `(template: gt_i (gt $1 $2))` to src/jit/core.expr would cause the NQP build to segfault at src/jit/tile.c:127? it doesn't segfault with that commented out | 00:54 | |
yoleaux | MasterDuke: I'll pass your message to brrt. | ||
01:00
Ven joined
01:48
ilbot3 joined
02:36
bisectable6 joined
04:47
leedo joined
09:48
robertle joined
10:27
brrt joined
10:37
Ven joined
|
|||
brrt | . | 10:47 | |
yoleaux | 00:54Z <MasterDuke> brrt: any idea why adding `(template: gt_i (gt $1 $2))` to src/jit/core.expr would cause the NQP build to segfault at src/jit/tile.c:127? it doesn't segfault with that commented out | ||
brrt | .tell MasterDuke i'll look into it | ||
yoleaux | brrt: I'll pass your message to MasterDuke. | ||
10:47
Ven_ joined
|
|||
Geth | MoarVM/even-moar-jit: c2eaa53352 | (Bart Wiegmans)++ | src/jit/linear_scan.c Fix cycle break ordering In ordering registers for function calls, it may occur that there is a cycle in the transfer graph. These cycles must be broken somehow. I had used a stack, but that would cause the cycle to be broken 'in reverse', which would only be a problem if there were more than two registers involved and therefore went unnoticed. The simpler solution - walking the chain of transfers 'backwards' until we reach the starting point - is actually correct. |
10:53 | |
MoarVM/even-moar-jit: 4bd21caaac | (Bart Wiegmans)++ | src/jit/core.expr Add elems instruction to the expr JIT, again This was broken due to the broken cycle breaker, but now that cycle breaking is fixed, this can be reactivated. |
|||
timotimo | yey | ||
10:54
Ven_ joined
11:01
Ven_ joined
|
|||
brrt | oh, i see why that breaks MasterDuke | 11:06 | |
that's because GT does not yield a register | 11:07 | ||
11:07
Ven_ joined
|
|||
brrt | but a flag | 11:08 | |
and the flag has to be converted to an integer by something called 'FLAGVAL' | |||
11:18
AlexDaniel joined
11:21
Ven_ joined
|
|||
Geth | MoarVM/even-moar-jit: ada4c471c0 | (Bart Wiegmans)++ | 5 files Add FLAGVAL op and implement gt_i Expr ops like GT, LE, etc. yields 'flags', not register values (meaning on x64 they set bits in the flag register), which can be directly used by conditional operations (e.g. conditional branches). But MoarVM-level 'gt_i' ops etc. need to set the result of the comparison into an integer value. The FLAGVAL expr op is intended to intermediate between the two representations. |
11:27 | |
MoarVM/even-moar-jit: fcff787615 | (Bart Wiegmans)++ | 2 files Add atpos_o Now works after cycle breaking has been fixed |
11:32 | ||
MoarVM/even-moar-jit: 8 commits pushed by (Timo Paulssen)++, (Jonathan Worthington)++, (Bart Wiegmans)++
|
11:34 | ||
brrt | gethow still triggers a bug | 11:46 | |
but it's a different one, at least | |||
timotimo | interesting | 11:47 | |
how about iter? | |||
brrt | that's presumably the s-expr parser bug | ||
i'll look at that later | 11:48 | ||
timotimo | oh, interesting | ||
brrt | i think it's the 'hole' problem | 11:52 | |
matter of fact, fairly sure it is | |||
okay, i need to think a bit on how to fix it because it's subtle | 11:53 | ||
12:00
Ven joined
12:29
nebuchadnezzar joined
13:05
Ven joined
13:08
nebuchadnezzar joined
|
|||
Geth | MoarVM/even-moar-jit: d7c4a05a9b | (Bart Wiegmans)++ | 2 files Values in holes are not live If a live range contains a hole arround the CALL, it isn't spilled, and if the hole extends arround the ARGLIST, it isn't used either, so it is completely free. This adds the gethow bug (timotimo++) |
13:52 | |
13:53
brrt joined
|
|||
brrt | ugh, *fixes the gethow bug | 13:53 | |
ilmari | quick, amend and force-push before anyone notices | 14:01 | |
MasterDuke | .tell brrt i just pulled your recent commits and then tried adding ge_i, lt_i, le_i, eq_i, and ne_i. however, lt_i and eq_i break the nqp build | 14:11 | |
yoleaux | MasterDuke: I'll pass your message to brrt. | ||
14:24
committable6 joined
|
|||
MasterDuke | .tell brrt and ne_i does weird stuff to the rakudo build. if finishes, but with a ton of different lines of output like this: `Useless use of $dist in sink context (lines 53289, 53342)` | 14:41 | |
yoleaux | MasterDuke: I'll pass your message to brrt. | ||
MasterDuke | .tell brrt fwiw, with ge_i and le_i added rakudo almost passes a spectest, a couple failures in t/spec/S05-mass/rx.t that all seem to be caused by `Cannot find method 'rxtype' on object of type NQPMu` | 15:02 | |
yoleaux | MasterDuke: I'll pass your message to brrt. | ||
MasterDuke | .tell brrt another update. if i only add le_i all spectests pass. | 15:37 | |
yoleaux | MasterDuke: I'll pass your message to brrt. | ||
15:45
Zoffix joined
16:30
zakharyas joined
17:03
zakharyas joined
|
|||
Geth | MoarVM/master: 9 commits pushed by (Pawel Murias)++, (Jimmy Zhuo)++
|
17:52 | |
17:56
domidumont joined
18:02
domidumont joined
18:24
AlexDani` joined
18:32
brrt joined
|
|||
brrt | jit-bisect will surely tell me what is wrong :-) | 18:37 | |
yoleaux | 14:11Z <MasterDuke> brrt: i just pulled your recent commits and then tried adding ge_i, lt_i, le_i, eq_i, and ne_i. however, lt_i and eq_i break the nqp build | ||
14:41Z <MasterDuke> brrt: and ne_i does weird stuff to the rakudo build. if finishes, but with a ton of different lines of output like this: `Useless use of $dist in sink context (lines 53289, 53342)` | |||
15:02Z <MasterDuke> brrt: fwiw, with ge_i and le_i added rakudo almost passes a spectest, a couple failures in t/spec/S05-mass/rx.t that all seem to be caused by `Cannot find method 'rxtype' on object of type NQPMu` | |||
15:37Z <MasterDuke> brrt: another update. if i only add le_i all spectests pass. | |||
brrt | eq_i breaks it fastest :-) | 18:38 | |
a cast is clearly missing in the eq_i | 18:52 | ||
90% certainty that it is the problem | 18:54 | ||
MasterDuke | i thought those would be simple enough i could try to figure out what was going wrong...but i was wrong | 18:57 | |
brrt | well | 19:16 | |
there is a tool for that | |||
it's called jit-bisect.pl | |||
run it with your command like so: | |||
perl ~/MoarVM/tools/jit-bisect.pl -- your_command --with --args | 19:17 | ||
MasterDuke | nqp: say(nqp::iseq_i(2**62, 2**60-1)) | 19:24 | |
camelia | 0 | ||
MasterDuke | nqp: say(nqp::iseq_i(2**62, 2**62-1)) | ||
camelia | 1 | ||
MasterDuke | m: use nqp; say(nqp::iseq_i(2**62, 2**62-1)) | 19:26 | |
camelia | 0 | ||
19:48
zakharyas joined
20:28
brrt joined
20:30
brrt left,
brrt joined
|
|||
samcv | i think i've gotten a kinda hackish way to resolve linking scripts to their actual .so files | 22:55 | |
trying now to install some nativecall using modules | 22:56 | ||
23:04
Ven joined
|
|||
samcv | it loads the new library the only thing is it doesn't seem to save the new library path so it seems to pass most of the Readline module tests and then eventually segfaults | 23:11 | |
Geth | MoarVM/nativecall_script: 74c581b326 | (Samantha McVey)++ | src/core/nativecall.c Stash |
23:15 | |
MoarVM/nativecall_script: c48cb45a1a | (Samantha McVey)++ | src/core/nativecall.c stash2 |
|||
MoarVM/nativecall_script: 06d0de2fd3 | (Samantha McVey)++ | src/core/nativecall.c If we can't load the library, check if it's a ldscript If it is a basic ldscript which contains 'GROUP ( /usr/lib/actuallib.so )' then we attempt to load that library instead. We read the file referred to in the lderror and then search for GROUP ( and then try and load that file. |
23:27 | ||
samcv | oops | ||
ugh how did that happen. i typed what remote to go to :| | 23:28 | ||
samcv goes to delete that branch now | |||
not sure if i can though. heh | 23:29 | ||
not sure what's wrong with my git. i designated the remote with every push i did. but somehow it decided to ignore it on one of my pushes. | 23:31 |