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