00:36
tokuhiro_ joined
01:16
tokuhiro_ joined
02:24
ShimmerFairy joined
|
|||
lizmat | re tokuhiro_ 's log: gist.github.com/lizmat/5d452c8a8eb7a000bd2c | 02:45 | |
it does not require nqp, which is a good thing :-) | |||
oops, wrong channel | |||
04:05
pyrimidi_ joined
04:12
colomon joined
06:14
xiaomiao joined
06:36
domidumont joined
06:57
domidumont joined
08:40
zakharyas joined
08:52
kjs_ joined
09:48
kjs_ joined
10:07
domidumont joined
10:09
domidumont joined
10:27
domidumont joined
11:58
leont joined
13:39
domidumont joined
13:43
zakharyas joined
13:51
zakharyas joined
14:10
brrt joined
|
|||
brrt | good * #moarvm | 14:10 | |
nwc10 | good *, brrt | 14:13 | |
brrt | \o nwc10 | 14:14 | |
jnthn | o/ | ||
15:24
domidumont joined
15:31
kjs_ joined
15:46
tokuhiro_ joined
15:47
brrt joined
|
|||
timotimo | brrt: since a short time we've had to pass an option to asan that makes it stop complaining about leaked memory at program exit | 15:52 | |
because of the way we shut down | |||
brrt | ah, ok | 15:53 | |
what option is that? | |||
timotimo | i don't remember :( | 15:54 | |
www.chromium.org/developers/testin...ssanitizer - ASAN_OPTIONS=help=1 | 15:56 | ||
i figured this out with hoelzro a week ago or so | |||
brrt: is there some scientific metric by which you threw out tiles (or was it templates?) into the unsafe file? | 16:00 | ||
brrt | templates | ||
yes; doesn't use conditionals (or only at the end); doesn't use calls | |||
timotimo | oh | ||
brrt | why not those? those are *difficult* cases for the register allocator | 16:01 | |
timotimo | "at the end" means "at the top of the tree"? | ||
brrt | yeah | ||
timotimo | oh man, that's a whole lot of them | ||
brrt | aye | 16:12 | |
i know | |||
hoelzro | o/ #moarvm | 16:22 | |
16:29
kjs_ joined
|
|||
hoelzro | is there an MVM_string_* function to count the number of codepoints in a string, rather than the number of graphemes? | 16:30 | |
I ask because the UTF-16 substring function uses graphs to determine how much to allocate, but the iterator it uses to copy the string works in terms of codepoints | |||
timotimo | t.h8.lv/p6bench/2015-11-19-release_09_10_11.html - here's one to include one more earlier build | 16:31 | |
oh, interesting | 16:32 | ||
jnthn | hoelzro: It should realloc as it goes anyway | ||
timotimo | ww | ||
hoelzro | jnthn: my patch does that | ||
but I'm not allocating enough for composing chars | |||
timotimo | but still interesting: many of the performance improvements in 2015.11 were apparently just fixing regressions compared to 2015.09 | ||
jnthn | hoelzro: Oh? | 16:33 | |
TimToady | UTF-16 doesn't not have a 1:1 relationship with Uni codepoints | ||
jnthn | hoelzro: All the other encodings manage it | ||
hoelzro | maybe I should look at their implementations | ||
jnthn | :) | ||
You just use the codepoint iterator, keep a count of how many codepoints you wrote, and use that to know when to resize the buffer | 16:34 | ||
hoelzro | and just use a reasonable initial buffer size, for some value of reasonable? | ||
TimToady | one assumes there won't be lots and lots of emoticons | ||
hoelzro | I managed to compensate for surrogate pairs, but for some reason my patch doesn't work for strings with many composing characters | 16:35 | |
nwc10 | a digression from actual useul answers - the implication of the question amuses me - MoarVM makes it easier to think about graphemes than code points :-) | 16:36 | |
jnthn | hoelzro: Yeah, I'd just use 2 * number of graphemes | 16:37 | |
hoelzro: Because it's correct for the BMP | |||
hoelzro | but graphemes, not codepoints? because a lot of composing chars is unlikely? | ||
jnthn | Right | ||
timotimo | jnthn: do you have a clue why my $match = 1 == any(1 .. SCALE); my $fail = 0 == any(1 .. SCALE); say "{+?$match} {+?$fail}" would be slower in 2015.11 than it was in 2015.09? | 16:38 | |
jnthn | Synthetics are post-BMP are rare. | ||
timotimo: No | |||
timotimo | same for my @a; for (1 .. SCALE) { push @a, 1 }; say +@a; | ||
jnthn | s/are/and/ | ||
push maybe something during the push/append split-up | |||
timotimo | that's the "executive summary" of the benchmarks :) | ||
my @a; my $i = 0; while (++$i <= SCALE) { push @a, 1 }; say +@a; - also a whole lot faster in 2015.09 than 2015.11 | |||
2x faster | 16:39 | ||
hoelzro | alright, sounds good! | ||
thanks jnthn, timotimo | |||
er | |||
TimToady: | |||
timotimo | :P | ||
since TimToady worked on the push/append thing, maybe he'll find something about these benchmarks that'd explain the difference | 16:41 | ||
16:47
tokuhiro_ joined
|
|||
TimToady | timotimo: append is just the old push, so you could try that intstead to see if that makes a difference | 17:08 | |
timotimo | oh, neat. the .push form is a whole lot faster | 17:17 | |
the culprit seems to be that @a.push(1) was only a smidgeon faster than push @a, 1 in 2015.09 | 17:19 | ||
but in 2015.11, the difference is about 3x | |||
while_pushme is also practically the exact same performance, because those happen to use the method form of push (or append in the 2015.11 case) | 17:24 | ||
to be honest, i forgot the non-method version of push exists ... | 17:26 | ||
17:32
Peter_R joined
|
|||
nwc10 | jnthn: for your non-urgent (post weekend, or at least post nom) consideration I "present" gitlab.com/nwc10/MoarVM/tree/seria...rsion-bump | 17:33 | |
a commit to remove the no longer needed serialisation code | |||
hoelzro | is the work to strip out libuv for synchronous stuff slated to happen before christmas? | 17:44 | |
nwc10 | I don't see anything directly in the Rakudo Christmas blocker list that implies that it needs to be: www.youtube.com/watch?v=kwxHXgiLsF...e=youtu.be | 17:53 | |
oh, wait, *this* URL: rt.perl.org/Public/Bug/Display.html?id=123766 | |||
I can assure you that the other one is very embarassing :-) | 17:54 | ||
[And isn't this one www.youtube.com/watch?v=dQw4w9WgXcQ :-)] | |||
there isn't a Christmas tag on github.com/MoarVM/MoarVM/issues (nor does there seem to be an issue about it) | 17:56 | ||
jnthn | hoelzro: I already dug into it in a branch | 18:02 | |
And yes, there's an xmas RT that needs it | |||
rt.perl.org/Ticket/Display.html?id=124005 # it says Windows but I think it can be an issue off Windows too | |||
Branch is called sync-without-uv | 18:03 | ||
nwc10: Will look at your branch after dinner; thanks :) | |||
jnthn goes to try out a new curry recipe... | |||
nwc10 | I almost typed "curry" instead of just "noms" | 18:08 | |
maybe I should start running a sweepstake | |||
18:24
kjs_ joined
18:33
domidumont joined
18:48
tokuhiro_ joined
19:12
kjs_ joined
19:33
kjs_ joined
|
|||
jnthn | It's actually the first curry I've cooked since last weekend. :) | 19:36 | |
One of the easiest I've done too. | 19:37 | ||
19:56
diakopter___ joined
|
|||
diakopter___ | I have a `make` question | 19:56 | |
[Coke] | shoot. | ||
diakopter___ | (formulating) | 19:58 | |
take, for instance, github.com/MoarVM/MoarVM/commit/5a...71bd99396a | 20:00 | ||
in the filesystem it shows up as a directory | |||
jnthn | "1 file changed, 34 insertions(+), 87 deletions(-)" - that's the kind of commit I like :) | 20:01 | |
nwc10 | sure, but I think that I added most of those lines in that I'm now deleting | ||
diakopter___ | but when it's updated (let's say when you switch branches to one that uses a different version of that submodule) make does not know to rebuild | 20:03 | |
is there a way to fix that? | |||
nwc10: in which branch are you pushing | 20:04 | ||
dalek | arVM: 192a79e | nicholas++ | src/6model/serialization.c: Bump minimum serialization format version. Now that we've rebootstrapped, we no longer need the code to read older serialization versions. Again, mostly removal of if statements with ...->root.version checks, and re-indenting because of the blocks this eliminates. |
||
[Coke] | diakopter___: "submodules suck" | ||
nwc10 | diakopter___: a branch elsewhere, but jnthn has just cherry-picked it to master | 20:05 | |
[Coke] | I don't know enough about submodules to make them work better in make. | ||
which is why I end up with something like github.com/coke/rakudo-star-daily/...tar.sh#L28 | |||
sorry. :| | |||
[6~ | |||
diakopter___ | elsewhere o_O | 20:08 | |
jnthn | diakopter___: I don't know of a good solution off hand. The actual git link is off in a SHA-1 object blob, referenced by the tree | ||
So there's nothing I can see to stick a dependency on there | 20:09 | ||
Best would be to find a file that's highly likely to change between submodule versions | |||
hoelzro | what about depending on the build target in that submodule? ex. libdynasm.so or whatever | ||
diakopter___ | maybe some hook to write out the submodule version from a git command | ||
jnthn | Well, that's the best I can think of anyway | ||
Yeah, or a hook, but that's local | 20:10 | ||
diakopter___ | oh | ||
nwc10: ohh, gitlab | 20:21 | ||
timotimo | we can make .gitmodules a dependency | ||
hoelzro | timotimo: interesting idea | ||
diakopter___ | it doesn't have the versions | 20:22 | |
timotimo | oh | ||
that's right | 20:23 | ||
[Coke] | we could have a manual process that says "instead of using git to change module versions, use this tool, which updates the submodule and something make can deal with" | ||
but that seems prone to screwups | |||
timotimo | in the tools/ folder for example, eh? | ||
oh interesting | 20:24 | ||
.git/modules/3rdparty/dynasm/HEAD | |||
that changes when the checked out version changes | |||
diakopter___ | hm | 20:25 | |
jnthn | heh, yes | 20:32 | |
timotimo++ # evil but...probably does actually work well :) | |||
hoelzro | what if someone is building outside of a Git repo? just detect that in Configure.pl and don't depend then? | 20:37 | |
jnthn | Ugh, yeah. | 20:41 | |
diakopter___ | heh | 20:42 | |
20:50
tokuhiro_ joined
21:16
diakopter____ joined
21:17
tokuhiro_ joined
22:17
kjs_ joined
22:35
kjs_ joined
22:46
kjs_ joined
22:49
diakopter___ joined
23:13
diakopter___ joined
23:19
tokuhiro_ joined
|
|||
diakopter___ | heh arg &= 0xffffff; /* XXX can go away after rebootstrap */ 0 | 23:53 | |
else if (nfadeb) /* XXX should turn into a "can't happen" after rebootstrap */ 0 | 23:54 | ||
did a C-level profile of core setting compilation | 23:57 | ||
far more time in frame malloc than I expected | |||
.oO( maybe my little frame pool cache thingie is no longer enabled/effective/functioning ) |
23:58 |