00:00
lizmat joined
01:29
zakharyas joined
|
|||
MasterDuke | timotimo: interesting. stage parse now panics when trying to build normally (but with FSA_SIZE_DEBUG still on) but succeeds under valgrind | 01:31 | |
01:55
ilbot3 joined
02:09
geekosaur joined
|
|||
MasterDuke | timotimo: i just ran a couple builds with /usr/bin/time and i got significantly less variability with MVM_SPESH_BLOCKING=1 | 02:30 | |
03:17
lizmat joined
|
|||
Geth | MoarVM: 27c72f7d55 | (Samantha McVey)++ | src/strings/ops.c join: special case 8bit flat pieces/separator. 3x faster Special case when pieces or separators are flat 8-bit representations of strings. This improves speed 3x when joining 10 100,000 grapheme flat 8-bit pieces. |
03:43 | |
MasterDuke | timotimo: gist updated with latest valgrind output. not sure what's wrong, the buffer it's complaining about github.com/MasterDuke17/MoarVM/blo...tf8.c#L183 seems like it should be good at the end of the function | 04:23 | |
04:23
lizmat joined
04:27
Ven`` joined
04:49
nativecallable6 joined,
evalable6 joined,
quotable6 joined,
committable6 joined,
bloatable6 joined,
bisectable6 joined,
unicodable6 joined,
greppable6 joined,
benchable6 joined,
releasable6 joined,
coverable6 joined,
squashable6 joined,
statisfiable6 joined
|
|||
Geth | MoarVM: samcv++ created pull request #716: join: simplify some conditionals and factor out some code |
05:00 | |
samcv | MasterDuke, if you can check out my PR. wanted to check with you since you wrote the code | 05:01 | |
er or maybe not this code. anyway. | |||
shortens MVM_string_join by 63 lines | 05:03 | ||
05:31
domidumont joined
05:38
domidumont joined
06:05
brrt joined
06:21
domidumont joined
06:32
leont_ joined
|
|||
moritz | Hashirama: yes, if it's in a place where YAML allows a multi-line string | 06:34 | |
eeks, wrong channel, wrong day | 06:35 | ||
nwc10 | good *, moritz | 06:36 | |
but it *is* morning :-) | |||
moritz | yes *yawn* | 06:37 | |
yesterday I submitted my manuscript for the Perl 6 Regexes and Grammars book | |||
brrt | \o/ | 06:42 | |
good * moritz, ncw10, #moarvm | 06:43 | ||
06:46
lizmat joined
07:40
patrickz joined
|
|||
Geth | MoarVM: a08113ef5e | (Samantha McVey)++ | src/strings/ops.h Speed up `codes` op by 10% for synthetic graphemes Use a grapheme iterator instead of a codepoint iterator, since all we need is to get the synthetic information for how many codes are in the synthetic. |
07:56 | |
samcv | good * brrt | ||
lizmat | good *, #moarvm | ||
talk about a weird flapper: | 07:57 | ||
Stage start : 0.000 | |||
Stage parse : make: *** [CORE.setting.moarvm] Bus error: 10 | |||
next make worked fine without change | |||
samcv | bus error... never got that before | ||
brrt | oh, hmm | 08:01 | |
lizmat, can you retry that with a MVM_JIT_EXPR_DISABLE=1 | 08:02 | ||
what platform are you on | |||
08:03
evalable6 joined
|
|||
lizmat | macOS | 08:06 | |
brrt: as I said, it was a flapper | |||
couldn't reproduce | |||
brrt | should not happen though | 08:07 | |
lizmat | agree :-) | ||
BTW, I did some tests wrt to the mainline of the core setting: running the mainline takes about 16 milliseconds | 08:09 | ||
total startup time for me is now about 146 msecs | 08:10 | ||
which is about 14 msecs up from before the new JIT merge | |||
make spectest for me is up from 353 seconds to 387 seconds | 08:12 | ||
so it looks like the JIT is not bringing us any performance improvements just yet | |||
OTOH, it did run the whole spectest clean :-) | |||
brrt | hmm, that's more than i'd thought | 08:16 | |
lizmat | yeah... anyways, will be offline for most of the day | 08:18 | |
& | |||
10:13
dogbert2 joined
10:50
brrt joined
11:06
robertle joined
11:32
d4l3k_ joined,
synopsebot joined
|
|||
dogbert2 | tests 38 and 39 in t/spec/S17-promise/lock-async.t are quite slow | 11:34 | |
is this another case of, if you don't have 10+ cores then you're out of luck? | 11:35 | ||
dogbert2 only has six | |||
if I fiddle with github.com/perl6/roast/blob/master...sync.t#L75 i get | 11:37 | ||
xx 4 => real 1m17.912s , xx 3 => real 0m53.481s, xx 2 => real 0m2.017s and xx 1 => real 0m0.872s | 11:38 | ||
12:36
Geth joined
14:07
yoleaux joined
14:12
zakharyas joined
15:16
SourceBaby joined
15:28
zakharyas joined
16:32
buggable joined
16:47
robertle joined
17:16
Ven`` joined
17:18
lizmat joined
18:47
zakharyas joined
19:00
weabot joined
19:06
[Coke] joined
20:54
zakharyas joined
|
|||
dogbert2 wonders if the above tests are in need of some more threads, i.e. github.com/rakudo/rakudo/commit/6e...b092d8fc7c | 21:04 | ||
jnthn | How many cores do you have, ooc? | 21:05 | |
dogbert2 | jnthn: six | 21:06 | |
jnthn | dogbert2: Run with RAKUDO_SCHEDULER_DEBUG=1 to see how many threads it starts | 21:08 | |
dogbert2 | is that an env var? | 21:09 | |
jnthn | Yes | ||
lizmat | jnthn: on the subject of attribute default values: if the thunk has a compile time value, would it make sense to generate the BUILDALL with a WVal of that compile time value ? | 21:10 | |
dogbert2 tests ... | |||
jnthn | lizmat: If the thunk produces one, or? | 21:11 | |
afaik the thunk itself is a compile time value | |||
lizmat | if the thunk produces one | ||
jnthn | Yeah, that'd save a bit of work | 21:12 | |
dogbert2 | [SCHEDULER] Supervisor thinks there are 6 CPU cores | ||
lizmat | ok, then I'll investigate that tomorrow | ||
afk, it was a long tiring day, with another tiring day coming up tomorrow | |||
dogbert2 | ok 37 - And can unlock it again | 21:13 | |
[SCHEDULER] Added a general worker thread | |||
[SCHEDULER] Added a general worker thread | 21:14 | ||
the first was started right away, but it took quite some time before the second and third ones | |||
jnthn | Ho, interesting... | ||
21:15
evalable6 joined
|
|||
jnthn | Given it thinks about whether to do so 100 times a second... | 21:15 | |
dogbert2 | feels like it waits ~15 secs before starting the second one (tried to count => unreliable) | 21:16 | |
using a clock it's more like +20s | 21:18 | ||
samcv | someone broke windows. src/jit/x64/emit.c | 21:47 | |
this line: #line 1 "src/jit/x64/emit.dasc" | |||
line 4 | |||
i think our scripts are changing the '/' to \ | |||
i guess. they don't even actually need to do that due to C standards though right? | 21:48 | ||
japhb | timotimo: How would I go about showing the actual assembly generated for an NQP or Perl 6 code snippet? Concretely, how would I see the assembly for 'my $i = 1; $i *= 2 while $i < 1000;' for instance? | 22:02 | |
timotimo | you set the env var MVM_JIT_BYTECODE_DIR | 22:05 | |
samcv | there's so many ENV vars | 22:06 | |
we need documentation on all of them | |||
in one list | |||
timotimo | moar --help has them :P | 22:07 | |
and perl6 --help | |||
hm, i'm not getting it to output that from the jit | 22:09 | ||
samcv | not all of them though | ||
oh maybe i'm wrong | |||
timotimo | okay, i had to run it really often | ||
and then objdump -D -b binary -m i386:x86-64 -M intel jitbytecode/moar-jit-0039.bin | 22:10 | ||
(i only know this because of my shell history) | |||
japhb | "run it really often"? | 22:11 | |
Do you mean "wrap it in a loop"? | 22:12 | ||
timotimo | yeah | 22:13 | |
i put the code you gave into a sub "test" | |||
and ran test for ^10_000 | |||
i might also have turned the number in the code itself up to 10k | |||
it helps to have a jitlog, too, i.e. MVM_JIT_LOG=jitlog.txt | 22:15 | ||
japhb | OK, so: `MVM_JIT_BYTECODE_DIR=./jitbytecode perl6 -e 'for ^10_000 { my $i = 1; $i *= 2 while $i < 10_000; }' && objdump -D -b binary -m i386:x86-64 -M intel jitbytecode/moar-jit-0039.bin` | ||
Ack re: MVM_JIT_LOG | |||
japhb is building all the things | 22:16 | ||
timotimo | well, the exact number for the moar-jit-*.bin you'll find in the jit-map.txt | ||
that lands in the bytecode dir, too | |||
japhb | OK ... this is begging to be turned into a mini-tool, methinks | 22:17 | |
22:22
evalable6 joined
|
|||
timotimo | oh, you're building something? :) | 22:29 | |
it'd be very cool, but at the moment hardly possible, to link which bytecode goes with which part of the assembly | 22:30 | ||
the tiling of the tree can make that rather messy i imagine | |||
i.e. code belonging to multiple moar instructions getting intermixed | |||
japhb | Woah. That's a lot of mov's. Picking a couple .bin files to look at, I'd say around 5 of every 8 instructions are 'mov'. | 23:15 | |
I mean sure, that's better than the 2/3 you'd get from doing every 3-arg operation as the sequence 'mov rax, A; op rax, B; mov C, rax' -- but only by ~4%. | 23:18 | ||
I'd have hoped the tiler would be a bigger win. | |||
Wishlist: jit-map.txt containing enough source location info to be able to look up the correct .bin file for any point in the input. | 23:20 | ||
timotimo | many of the movs probably exist because of the exprjit ending its work in some spot | 23:21 | |
and of course also when the exprjit doesn't do parts | 23:22 | ||
MasterDuke | timotimo: did you see my comments about MVM_SPESH_BLOCKING=1 significantly reducing the variability in maxrss reported when building the core setting? | 23:28 | |
yoleaux | 18:47Z <AlexDaniel> MasterDuke: maybe RT #123926 is for you | ||
synopsebot | RT#123926 [new]: rt.perl.org/Ticket/Display.html?id=123926 [BUG] LTA error message without Levenshtein distance suggestion when mistyping enum value in signature in Rakudo | ||
timotimo | oh, yes | 23:33 | |
that's helpful | |||
i haven't done any more measurements of my fsa tuning branch since i last reported on it | |||
MasterDuke | sure, just thought it would be good to know that helps | 23:34 | |
timotimo | it is! | ||
samcv | .tell brrt i think your even_moar_jit branch merge broke the windows build | 23:46 | |
yoleaux | samcv: I'll pass your message to brrt. | ||
samcv | yoleaux, thank you | 23:47 | |
23:56
geekosaur left
|