| MasterDuke | (and i couldn't make it a multi) | 00:00 | |
| and switching a bunch of things to use my find_symbol2, but it didn't seem to make much of a difference | |||
| TimToady | WANTEDOUTERBLOCK was a hack because of single-pass assumptions in find_symbol, so we should fix that | ||
| basically, wanted propagation can descend down into blocks we've already left in the main parse pass | 00:01 | ||
| we should have some kind of a tail-shared structure for blocks instead of a strict stack there that pops too soon | 00:03 | ||
| jnthn | Blocks to have an annotation that points to their enclosing block | 00:04 | |
| TimToady | $*WANTEDOUTERBLOCK lookup by itself causes about 1% of our current overhead | ||
| don't recall offhand why following those didn't work | |||
| seem to recall trying... | |||
| something sets them too late, iirc | 00:05 | ||
| jnthn | I may be misremembering, but I thought they were set at the moment the inner QAST::Block comes into existence | 00:07 | |
| Time for me to go rest... 'night | 00:08 | ||
| TimToady | g'night | ||
| (might've been simply that doing that many hash lookups was a lot slower than using the stack) | 00:09 | ||
| ((but I do seem to recall it crashing when I tried)) | 00:10 | ||
|
01:19
geekosaur joined
01:40
pyrimidine joined
01:52
ggoebel joined
02:48
ilbot3 joined
03:56
agentzh joined
05:11
agentzh joined
07:34
domidumont joined
07:48
pyrimidine joined
10:19
Ven joined
10:35
agentzh joined
12:23
pyrimidine joined
12:36
geekosaur joined
13:14
vendethiel joined
|
|||
| MasterDuke | jnthn: just doing some more testing with radix and jitting. i set MVM_JIT_LOG for a run with radix (which i created cases for in src/jit/graph.c) and radix2 (an identical copy of radix which i created an nqp op for to make testing easier) | 13:15 | |
| and the log is exactly identical | |||
| which i guess is no real surprise, since everything is being interpreted | 13:16 | ||
| any suggestions for what to test next? | |||
| jnthn | MasterDuke: Are you testing that with NQP? | 13:18 | |
| If so, did you try putting the code under test inside of a sub and calling that? | 13:19 | ||
| MasterDuke | yeah. oh right, there was some different behavior when i tested something from rakudo instead | ||
| jnthn | It looks like for some reason the program mainline in NQP doesn't end up getting OSR'd | ||
| MasterDuke | ah! i was thinking about doing that (put in a sub) that last night and then fell asleep at the keyboard, thanks for the reminder | 13:20 | |
| jnthn | :) | 13:21 | |
| MasterDuke | heh. so the OSR section say none. but there is an OSR graphic by the sub and we're now at 20% jitted | 13:25 | |
| lizmat | MasterDuke: the --profile is sometimes incorrect on some OSR / JIT info | 13:26 | |
| you should probably check the MVM_JIT_LOG to be sure | |||
| jnthn | Curious :S | ||
| I also get really weird rendering of the profiler UI in Firefox, where it shows all tab content one below the other | |||
| MasterDuke | how do i know if something was jitted in the log? | 13:27 | |
| jnthn | If it's in there and there's no BAIL, iirc | 13:28 | |
| MasterDuke | the log is now different between using radix and radix2, but the string 'radix' isn't in either log | 13:29 | |
| but just timing a large number of iterations is showing radix noticeable faster than radix2 | 13:30 | ||
| at 20m iterations, radix (which i jitted) is now 1s faster than radix2 | 13:32 | ||
| at 1m iterations, perf stat -B is showing ~240m fewer instructions and 25m fewer branch misses for radix vs radix2 | 13:35 | ||
| and a profile of radix2 shows 20% spesh vs 20% jit for radix | 13:36 | ||
|
13:47
pyrimidine joined
|
|||
| samcv | jnthn, i keep getting that error ===SORRY!=== | 13:51 | |
| When invoking 5694 'parameterize', provided outer frame 0x55734b0873e0 (58 '!protoregex_nfa') does not match expected static frame 0x55734ba90718 (5695 '') | |||
| how do i stop it | |||
| i cannot launch my program :( | |||
| MasterDuke | does --ll-exception show where it's happening? | 13:52 | |
| samcv | MasterDuke, gist.github.com/b6dfe9f89158a14b2c...51208a9934 | 14:00 | |
| MasterDuke | oof, that's long and complicated. looks like you're doing something with roles? | 14:03 | |
| samcv | does augmenting count as roles? | ||
| yeah if i uncomment this it stops erroring | 14:04 | ||
| MasterDuke | don't really know, i haven't done much with either. brokenchicken might have some idea | ||
| samcv | dammit | ||
| brokenchicken | ? | 14:06 | |
| idea of what? | |||
| Of that error? No idea. | |||
| MasterDuke | samcv: maybe paste code that's causing it somewhere? | 14:07 | |
| samcv | well it's a whole lot of code | ||
| my UCD rewrite | |||
| Geth | arVM: MasterDuke17++ created pull request #514: JIT MVM_radix() like MVM_bigint_radix() |
14:13 | |
| arVM: samcv++ created pull request #515: Make radix 50% faster with Unicode Nd, add East_Asian_Width prop. |
14:30 | ||
| samcv | kewl | ||
| MasterDuke | ah, i thought you were going to be able to change `ch = atoi(MVM_unicode_codepoint_get_property_cstr(tc, ch, MVM_UNICODE_PROPERTY_NUMERIC_VALUE));` into ` ch = MVM_unicode_codepoint_get_property_int(tc, ch, MVM_UNICODE_PROPERTY_NUMERIC_VALUE));` | 14:33 | |
| to get rid of the atoi() completely | 14:35 | ||
|
14:37
agentzh joined
14:45
ggoebel joined
15:15
zakharyas joined
15:22
FROGGS joined
15:24
pyrimidine joined
|
|||
| samcv | eventually | 15:32 | |
| when the rewrite of ucd2c.pl i scomplete | 15:33 | ||
| tho if it used the data my script that works already has we could do that | |||
| and we'd use numeric_value_Numerator | |||
| which would store integer values, (all the digits have 1 as denominator so it is fine) | |||
| idk maybe we can merge the scripts before the whole rewrite is complete idk | 15:34 | ||
| though that little change already makes it 50% faster, so making it not use atoi will make it prolly another 100% faster | |||
| maybe more | |||
| MasterDuke | cool | 15:36 | |
| samcv | same with decomposition and such | 15:38 | |
| i keep getting weird errors | 15:39 | ||
| for $rev-hash.keys.sort(+*) i am getting Too many positionals passed; expected 0 arguments but got 1 | 15:40 | ||
| wtf | |||
|
16:06
domidumont joined
16:20
pyrimidine joined
16:45
geekosaur joined
17:50
geekosaur joined
18:34
agentzh joined
19:03
agentzh joined
19:18
pyrimidine joined
19:43
pyrimidine joined
20:08
agentzh joined
20:47
agentzh joined
21:29
pyrimidi_ joined
22:13
agentzh joined
22:34
geekosaur joined
22:50
pyrimidine joined
|
|||
| MasterDuke | timotimo: i find this interesting. the (almost exactly) same code in nqp vs perl6 takes half the time in nqp, even though it's only speshed vs jitted in perl6 | 23:05 | |
| nqp: 'sub a() { my $f := nqp::open("small_compile.sql", "r");my str $l; my int $s := 0; while $l := nqp::readlinefh($f) { ++$s }; return $s }; say(a())' | |||
| camelia | ( no output ) | ||
| MasterDuke | perl6: 'use nqp; sub a() { my $f := nqp::open("small_compile.sql", "r"); my str $l; my int $s = 0; while $l = nqp::readlinefh($f) { ++$s }; return $s }; say(a())' | 23:06 | |
| camelia | rakudo-jvm fb4f16: OUTPUT«WARNINGS for <tmp>:Useless use of constant string "use nqp; sub a() { my $f := nqp::open(\"small_compile.sql\", \"r\"); my str $l; my int $s = 0; while $l = nqp::readlinefh($f) { ++$s }; return $s }; say(a())" in sink context (line 1)» | ||
| ..rakudo-moar 5b3ac8: OUTPUT«WARNINGS for <tmp>:Useless use of constant string "use nqp; sub a() { my $f := nqp::open(\"small_compile.sql\", \"r\"); my str $l; my int $s = 0; while $l = nqp::readlinefh($f) { ++$s }; return $s }; say(a())" in sink context (line 1)» | |||
| MasterDuke | whoops, didn't mean to actually run those | ||
| the perl6 version adds `use nqp`, and turns two binds into assigns, because you can't bind to native types in perl6 | 23:07 | ||
| 44.25% moar libmoar.so [.] MVM_string_utf8_decodestream | 23:12 | ||
| 22.10% moar libmoar.so [.] find_separator.isra.6 | |||
| 5.67% moar libc-2.24.so [.] _int_free | 23:13 | ||
| ^^^ nqp version | |||
| 26.02% moar libmoar.so [.] MVM_string_utf8_decodestream | |||
| 13.93% moar libmoar.so [.] find_separator.isra.6 | |||
| 5.32% moar libmoar.so [.] MVM_interp_run | |||
| ^^^ perl6 version | |||
|
23:34
njmurphy joined
|
|||