| dalek | arVM/tommy-hash: b78149c | diakopter++ | / (35 files): experimental replacement of hash library; builds but segfaults. do not use |
02:05 | |
| Heuristic branch merge: pushed 66 commits to MoarVM/tommy-hash by diakopter | 02:32 | ||
|
03:06
vendethiel joined
|
|||
| dalek | arVM/tommy-hash: 691b539 | diakopter++ | / (3 files): [experimental] build tommy stuff |
04:21 | |
|
05:07
TimToady joined
06:23
cognominal joined
07:27
FROGGS joined
08:28
brrt joined
|
|||
| brrt | \o | 08:28 | |
| timotimo; i may have some fixes in your assembly | |||
| diakopter; sorry for not fixing msvc yet | |||
| things should work on mingw | |||
| things should also work with msvc2013 | 08:29 | ||
| diakopter | np; I'm hoping the two rakudo nativecall tests that still fail (even with no-jit) aren't a big deal | 08:32 | |
| brrt | hmmpf | ||
| it shouldn't fail | |||
| diakopter | I dondt' think it's jit related | 08:33 | |
| I'm having fun experimenting with replacing the hash library | 08:34 | ||
| NMAKE : fatal error U1073: don't know how to make '3rdparty\tommy\tommy.lib' | 08:36 | ||
| hmm :) I guess I compiled it manually before I switched platforms | |||
|
09:34
rurban_ joined
09:44
BinGOs_ joined
09:45
arnsholt_ joined,
sivoais_ joined
09:55
sivoais joined
09:59
bonsaikitten joined
10:05
sivoais joined
10:14
BinGOs joined
10:15
sivoais joined
|
|||
| brrt | anyway, timotimo, i noticed some field-size issues, and that might be a reason for tripping ups | 10:19 | |
| diakopter | boy this new msvc cl.exe is stricter | 10:23 | |
| brrt | people want to make c++ safe, apparantly | 10:24 | |
|
10:25
sivoais joined
10:35
sivoais joined
10:45
sivoais joined
|
|||
| dalek | arVM/timos-jit-patch: d28c48f | brrt++ | src/ (4 files): Revert "Work around performance regression in the jit." This reverts commit bd56e2e33bbe16bbb542cc34f37f4004be2da976. |
10:47 | |
| MoarVM/timos-jit-patch: 4993c55 | brrt++ | src/jit/emit_x64.dasc: | |||
| MoarVM/timos-jit-patch: Fixed comparison and sized reads in jit | |||
| MoarVM/timos-jit-patch: | |||
| MoarVM/timos-jit-patch: cmp a, a always yields true (it's a sub with zero-check); needs | |||
| MoarVM/timos-jit-patch: to be test a, a to check for zeroness | |||
| MoarVM/timos-jit-patch: | |||
| MoarVM/timos-jit-patch: MVMStorageSpec->bits is a uint16, so are MVMArgProcContext->num_pos | |||
| brrt should like to test this | 10:48 | ||
| what was the performance problem, anyway | |||
| lizmat | a factor of 1.5 to 3x slowdown | ||
| spectest 1.5, test-t (Tux's test) 3x | |||
| the latter being heavy on the loops | 10:49 | ||
|
10:55
sivoais joined
|
|||
| brrt | aha | 10:56 | |
| hmm, ok, that will be tricky to detect | 10:57 | ||
| ooh, testsuite does feel slow | 11:01 | ||
|
11:05
sivoais joined
|
|||
| brrt | nativecall tests are awefully slow at any rate | 11:13 | |
|
11:15
sivoais joined
11:25
sivoais joined
|
|||
| diakopter | mystifying | 11:26 | |
|
11:35
sivoais joined
|
|||
| lizmat | typical spectest with jit broken: Files=1092, Tests=51316, 335 wallclock secs (15.40 usr 4.00 sys + 2206.75 cusr 170.43 csys = 2396.58 CPU) | 11:37 | |
| typical spectest with jit working: Files=1092, Tests=51353, 265 wallclock secs (14.10 usr 3.82 sys + 1798.37 cusr 151.49 csys = 1967.78 CPU) | |||
| so it seems the 1.5 was overstated... | 11:38 | ||
| test-t was at 13 seconds last week, it was at 48 seconds before the jit fix | 11:39 | ||
|
11:45
sivoais joined
11:55
sivoais joined
12:05
sivoais joined
12:15
sivoais joined
12:54
virtualsue joined
13:09
rurban_ joined
13:44
cygx joined
13:46
dalek joined
|
|||
| cygx | diakopter: if you do think it's the jit that makes your windows build fail, you might try replacing the check for __MINGW32__ with _WIN32 in github.com/MoarVM/MoarVM/blob/mast...m/setjmp.h | 13:49 | |
| timotimo | noticing problems like that in assembly code is ... quite a challenge to me, who just cargo-cults code from other functions ... | 14:12 | |
|
14:36
brrt joined
|
|||
| brrt | good * | 14:38 | |
| timotimo: it's no problem :-) | |||
| timotimo | i'm so glad we have you ... | 14:41 | |
| at some point i ought to learn x86_64 assembly "correctly" | 14:42 | ||
| like, from the beginning | |||
| were you able to time something with that change? | |||
| it could well be that a bogus value for objprimbits would send the multi cache into coo-coo town | |||
| omg! brrt! | 14:48 | ||
| your patch fixes the performance regression! | |||
| (in that one benchmark i was using) | |||
| brrt | whatisit | ||
| \o/ | 14:49 | ||
| yay | |||
| really odd that this lead to a performance issue rather than a segfault | |||
| timotimo | i expect we currently only use the result of objprimbits to decide on a specific candidate to call or something like that? | ||
| brrt | quite possibly | 14:50 | |
| timotimo | you think i can merge this? i probably should ask others to verify the speedup's back first ... | ||
| lizmat: can i ask you to check out moarvm/timos-jit-patch and do the spec test timing again? :) | |||
| brrt | Tux also said it fixed it for him | 14:51 | |
| so yeah, please some more tests, and then a merge | |||
| timotimo | oh, i didn't see that | ||
| i shall spec test, too. | |||
| brrt | thanks :-) | 14:53 | |
| timotimo | i'll have a hard time getting a good timing for spec tests, though | 14:56 | |
| i'll try it anyway | |||
| lizmat | as long as the CPU of the spectest is not suddenly 20% more, it should be ok | 14:59 | |
| timotimo | OK, good | ||
|
15:09
sivoais joined
|
|||
| timotimo | well, that timing is now useless, as i didn't look over to see throttle has been sitting idle for who-knows-how-long | 15:16 | |
| lizmat | CPU is important | ||
| when throttle hangs, it doesn't take CPU | |||
| timotimo | right | ||
| 862.72user 61.07system 17:19.52elapsed 88%CPU (0avgtext+0avgdata 1730172maxresident)k | 15:17 | ||
| running "the other" spec test now | |||
| lizmat | for the whole spectest? | ||
| ah. ok | |||
|
15:21
sivoais joined
|
|||
| timotimo | with test jobs set to 3 | 15:22 | |
| hoelzro | o/ #moarvm | 15:23 | |
| timotimo | so much backlog ... | 15:24 | |
| 847.19user 60.61system 8:44.38elapsed 173%CPU (0avgtext+0avgdata 1722308maxresident)k | 15:26 | ||
| killed throttle.t a whole lot sooner this time | |||
| that's probably the reason for the cpu percentage to be so much higher | 15:27 | ||
|
15:32
sivoais joined
|
|||
| timotimo | lizmat: so ... is the first one better or the second one? :\ | 15:34 | |
| m: say (8 * 60 + 44) * 1.73; say (17 * 60 + 19) * 0.88 | |||
| camelia | rakudo-moar f1226f: OUTPUTĀ«906.52ā¤914.32ā¤Ā» | ||
| lizmat | I would say the 2nd one used less CPU | 15:35 | |
| but with 2% better, close to noise levels | |||
| timotimo | oh, wait. i'm not looking for "much better", i'm just looking for "not 20% worse" | 15:36 | |
| so this is fine | |||
| the first one is timos-jit-patches, btw | |||
| lizmat | ok | ||
| timotimo | and in my say invocation, i switched both around | ||
| to create some of the much-needed confusion around here | |||
| lizmat | so that would mean we lose 2% ? | ||
| m: my $a = 10; $a ^= 2; say $a.WHAT # is that expected ? | 15:39 | ||
| camelia | rakudo-moar f1226f: OUTPUTĀ«(Junction)ā¤Ā» | ||
|
15:42
sivoais joined
|
|||
| timotimo | yeah, it is | 15:48 | |
| ^ is the junction xor operator | |||
| lizmat: i kind of hope it doesn't mean we actually lose 2% :| | 15:50 | ||
| lizmat too | |||
| does it make sense to make a junction in which the junction itself is a part ? | 15:51 | ||
| feels to me that |= and ^= have no need, and could be verboten ? | |||
| diakopter | heh, #moarvm as the refuge from the backlog deluge | 15:52 | |
|
15:52
sivoais joined
|
|||
| lizmat | actually, I was just asking questions on the wrong channel | 15:52 | |
| diakopter | well, it's a natural thing if no one can get a word in on #perl6 :D | 15:53 | |
| timotimo | you can totally put a junction inside a junction | 15:54 | |
| it makes the most sense for combining any, all, and one junctions | 15:55 | ||
| m: say 1 ^ 2 | |||
| camelia | rakudo-moar 79303b: OUTPUTĀ«one(1, 2)ā¤Ā» | ||
| timotimo | ah, ^ is one, not "xor" | ||
| nesting "one" junctions inside "one" junctions makes as little sense as nesting "any" in "any", or nesting "all" in "all" | 15:56 | ||
| but combining the different ones is fine. which you can do with ^=, &= and |= | |||
|
16:02
sivoais joined
|
|||
| lizmat | timotimo: can you make an example that doesn't hang ? | 16:10 | |
| timotimo | i didn't realize ^= hangs; it probably wrongly tries to evaluate the junction before/during the assignment | 16:11 | |
| i'd have to investigate, but right now i'm very distracted | |||
|
16:12
sivoais joined
|
|||
| lizmat | don't worry | 16:14 | |
| was just seeing there would be an easy fix to #126961 | |||
| timotimo | maybe we just want to change the signature of the metaop assign things we generate to handle Mu rather than Any. | 16:17 | |
| cygx | github.com/MoarVM/MoarVM/pull/318 | 16:18 | |
|
16:22
sivoais joined
16:27
zakharyas joined
|
|||
| lizmat | timotimo: not sure whether that would help, as "my $a = 10; $a = $a | 2; say $a" also hangs | 16:30 | |
| dinner& | |||
| timotimo | oh | 16:32 | |
| well, that's just bad in that case :) | |||
|
16:32
sivoais joined
16:42
sivoais joined
16:52
sivoais joined
16:57
sivoais joined
|
|||
| dalek | arVM: 8fe4aef | cygx++ | src/io/fileops.c: fix bug that made win32 throw on deleting nonexistent files |
17:17 | |
| arVM: 0317e25 | (Jimmy Zhuo)++ | src/io/fileops.c: Merge pull request #318 from cygx/fix-unlink fix bug that made win32 throw on deleting nonexistent files |
|||
|
18:20
vendethiel joined
|
|||
| lizmat | not sure whether applicable for Moar, but there you go: conf.researchr.org/event/ismm-2015/...t-machines | 18:29 | |
|
18:31
cognominal joined
|
|||
| diakopter | lizmat: nonetheless, cool | 18:46 | |
| yes, looks like it's MIT/gplv3 dual licensed github.com/kuszmaul/SuperMalloc | 18:48 | ||
| lizmat: it's possibly worth an experimental comparison to Moar's fixed size allocator (for the things that do reference counting, namely, frames) | 18:50 | ||
| JimmyZ | hmm, looks like better than jemalloc | ||
|
19:11
FROGGS joined
19:18
FROGGS joined
|
|||
| dalek | arVM/even-moar-jit: 64826fe | brrt++ | / (94 files): Merge remote-tracking branch 'origin/master' into even-moar-jit Some conflicts in src/jit/graph.c, which is the result of the factoring out of the jit-graph-builder. |
19:48 | |
| arVM: d28c48f | brrt++ | src/ (4 files): Revert "Work around performance regression in the jit." This reverts commit bd56e2e33bbe16bbb542cc34f37f4004be2da976. |
19:49 | ||
| MoarVM: 4993c55 | brrt++ | src/jit/emit_x64.dasc: | |||
| MoarVM: Fixed comparison and sized reads in jit | |||
| MoarVM: | |||
| MoarVM: cmp a, a always yields true (it's a sub with zero-check); needs | |||
| MoarVM: to be test a, a to check for zeroness | |||
| MoarVM: | |||
| MoarVM: MVMStorageSpec->bits is a uint16, so are MVMArgProcContext->num_pos | |||
| MoarVM: and MVMArgProcContext->arg_count, so we should read them as words, | |||
| MoarVM: and zero-extend as necessary | |||
| timotimo | <3 | 19:51 | |
| thank you, brrt | |||
|
20:50
rurban_ joined
21:24
TimToady joined
23:15
virtualsue joined
23:56
rurban_ joined
|
|||