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
|