FROGGS r: say "\c[ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM]".ord.fmt("%#x") 00:17
camelia rakudo-moar 1c37f3: OUTPUT«0xfd5f␤»
..rakudo-parrot 1c37f3, rakudo-jvm 1c37f3: OUTPUT«0xfd55␤»
benabik r: say "\c[ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM]" 00:18
camelia rakudo-parrot 1c37f3, rakudo-jvm 1c37f3: OUTPUT«ﵕ␤»
..rakudo-moar 1c37f3: OUTPUT«ﵟ␤»
FROGGS r: say "\c[ARABIC LIGATURE YEH WITH JEEM INITIAL FORM]".ord.fmt("%#x") 00:19
camelia rakudo-parrot 1c37f3, rakudo-jvm 1c37f3: OUTPUT«0xfcda␤»
..rakudo-moar 1c37f3: OUTPUT«0xfce4␤»
jnthn ARABIC LIGATURE TEH WRONG ON MOAR 00:20
FROGGS the comment in the file is correct though: /*29537*/"ARABIC LIGATURE YEH WITH HAH INITIAL FORM"/* FCDB */, 00:21
benabik Well, the code isn't paying attention to teh comments. 00:25
FROGGS I know
but it makes it a little easier to bisect
diakopter I was trying to track that down yesterday 00:26
didn't get very far
FROGGS yeah
I tried to hunt down a problem with the bitfield and gave up 00:27
I thought this might be easier
diakopter might be nice to enable some kind of super-verbose mode with the .c emission
for that bitfield
FROGGS yeah
jnthn Hmmm 00:37
Well, this didn't...quite...go to plan. 00:41
So we had an algorithmic issue in the GC.
diakopter oh?
jnthn Where anything that referenced a frame would end up on the gen2 roots. 00:42
diakopter ok.. :)
jnthn I've just tried teaching frames to know about generations.
diakopter I sense an awesome punch line 00:43
jnthn It seems it does actually flatten the growth in time if you lower the full collection rate.
But it actually increases the overall runtime
It does successfully decrease the amount of time spent processing the gen2 roots list. 00:44
And chewing through the gen2 frames doesn't seem very costly either
Yet somehow we work out slower overall. o.O
Could be lexical store barriers... 00:45
There is one awesome punchline though.
In the profiling to work this out, I realized that stage mast spends loads of time inside serialize. 00:46
Like, a load
Because somewhere, there's a very slow lookup algorithm...
tadzik :)
jnthn So we can get a sizable win on Stage mast from that. 00:47
The GC one bothers me a little more, though.
Lemme try benchmarking something other than setting compilation...
bah, SEGV... 00:58
So, something's rotten...
dalek arVM/gen2-frames: d04f988 | jnthn++ | src/ (13 files):
Bring frames into the generational scheme.

In theory, this is a sizable algorithmic improvement by decreasing the number of gen2 roots. In practice, while it does seem to decrease the variability of GC time by how often we do a full collect, it works out a little slower overall.
00:59
jnthn There it is, in the event anybody fancies some analysis...
dalek arVM: 9f235fa | jnthn++ | src/gc/ (4 files):
Swiftly eliminate gen2 things in nurserly collect.

Before, we put entries onto the worklist and then later chose not to visit them. With this, we never put them onto the list at all, which keeps the worklist smaller and thus saves work.
01:35
jnthn That is an actual improvement, and a safe one. 01:36
2s more off CORE.setting build time, and spectest time down from 358s to 344s.
diakopter nice! 01:38
jnthn Time for some rest 01:48
'night
diakopter 'nite
02:24 jnap joined 05:26 jnap joined 06:27 jnap joined 07:46 FROGGS joined
FROGGS diakopter: about the name-to-codepoint mismatch... the first difference is between SQUARE GAL and HEXAGRAM FOR THE CREATIVE HEAVEN 07:50
and it almost looks like if the difference between the given codepoint and the actual is the sum of the things in codepoint_extents up to the given codepoint
but sadly the offset for HEXAGRAM FOR THE CREATIVE HEAVEN is ten and the sum of the extents is eight :/
moritz without knowing anything of the code, could the difference be caused by unassigned/reserved codepoints? 08:00
FROGGS moritz: this could be part of the problem 08:04
but we take these holes into account, otherwise the offset would be >1k
and to the worse: the lists get compacted by properties... so it is not that easy to see what is going on 08:05
08:10 camelia joined 08:12 camelia joined 08:21 camelia joined 08:29 jnap joined 08:31 odc joined 09:29 jnap joined 10:34 dalek joined 11:31 jnap joined 12:06 woolfy1 joined 12:31 jnap joined 13:26 arnsholt joined
[Coke] diakopter: I'm back in from my normal machine, so all is fine. 13:46
13:55 jnap joined
[Coke] still a few crashes in spectest. 14:02
gist.github.com/coke/8250608 (moar crashes) 14:03
still some outstanding solaris moarvm patches from andyD. 14:14
jnthn Some, or one?
jnthn knows the one
I can go back through 'em though
[Coke] started out with 10 or so, last email talks about a single one. 14:24
danger of email based patching.
jnthn Well, I know we applied a bunh 14:25
*bunch
14:37 jnap joined 14:39 jnap1 joined
dalek arVM: 9cd2299 | (Tobias Leich)++ | src/strings/unicode_ops.c:
a property value code of zero is valid
15:09
15:49 benabik joined 15:56 woolfy1 left 15:59 woolfy joined, woolfy left
diakopter FROGGS: actually we can make 0 be an invalid one if you want 16:17
FROGGS I tried it but it messed something up... but I think it will help us in future 16:20
but it is quiet possible that I am fixing right now what upset it before... 16:21
made it upset*
or so
diakopter btw thanks for redoing my braindead-ness :) 16:22
FROGGS ohh, it is quite fun actually 16:23
a painful sort of fun, but still :o) 16:24
it is nicely done, and that is where I enjoy hacking at it 16:25
diakopter in some ways.
in other ways it's poorly done
FROGGS you can say that about all kind of software 16:35
16:52 jnap joined
dalek arVM: 71c2ec2 | (Tobias Leich)++ | / (3 files):
add our very own union <:Assigned>
16:55
17:06 cognominal__ joined, benabik_ joined 17:18 FROGGS joined
[Coke] today's run: 28296 tests. 17:25
s/tests/passes/
m: say "moar probably at { 100*28296/28499 }% of JVM, give or take" 17:27
camelia rakudo-moar 58b1a2: OUTPUT«moar probably at 99.287694% of JVM, give or take␤»
[Coke] ^^
timotimo F YEAH :D
jnthn Whoa!!
[Coke] not sure if jvm is expected to improve today also.
timotimo that's what i call ready for release
only like 0.3% away from parrot, also
[Coke] m: say "moar at { 100* 28296/28439}% of parrot today, for sure." 17:35
camelia rakudo-moar 58b1a2: OUTPUT«moar at 99.497169% of parrot today, for sure.␤»
timotimo that is fantastic 17:36
[Coke] updated feather.perl6.nl/~coke/moar.out - S05 still biggest pain point with 257/446 failures. 17:47
I'm also still seeing wordcase failure in S32-st/capitalize.t 17:48
diakopter FROGGS: speaking of casing, I still didn't implement the special casing thingies 17:49
but I did have it emit the data for it
just not the lookup logic
(one to two and two to one characters upper or lower casings) 17:50
(or even 3,4,5)
17:53 lizmat joined
FROGGS I try to keep that in mind 18:07
diakopter you know, those crazy German things 18:08
FROGGS yeah, ß <=> SS will hopefully change some day 18:09
diakopter Util: heh typo 18:10
[Coke] BTW, the test we have for that is dubious. 18:14
18:54 eternaleye joined 19:14 eternaleye joined
dalek arVM: b4bfb46 | (Tobias Leich)++ | / (3 files):
use the same logic for pc that we use for pvc

pc=property code, pvc property value code
19:34
jnthn
.oO( Yeah, use that polyvinyl chloride logic! )
19:51
20:12 eternaleye joined 20:25 eternaleye joined 20:37 eternaleye joined 20:48 eternaleye joined 20:58 eternaleye joined 21:18 eternaleye joined
timotimo does moarvm build a memory-efficient string with the x operator already? 21:34
like, the same chunk of memory multiple times in the same rope?
21:35 eternaleye joined
timotimo except that's probably not efficient if you have 1 character x'd a bunch of times, because then you have a whole lot of overhead from the pointers 21:36
jnthn FROGGS: Does 01-qregex.t in NQP now fail for you on Moar? 21:37
-------------------
t\qregex/01-qregex.t (Wstat: 0 Tests: 748 Failed: 3) Failed tests: 428-430 TODO passed: 433-434, 436-440, 442-444
FROGGS jnthn: not anymore
jnthn oh, did I miss a patch?
ah, yes... 21:38
jnthn tries again
FROGGS this one github.com/perl6/nqp/commit/f9e23e6637
need to fudge the test though
hoelzro FROGGS: I fixed that syntax highlighting bug you found! 21:40
thanks for reporting it
er, wrong channle
FROGGS ohh nice!!
hoelzro++
hoelzro but whatever =)
jnthn FROGGS: Now I just get some TODO passed :) 21:41
FROGGS hoelzro: how is the update process btw? do you know that already?
21:41 eternaleye joined
hoelzro FROGGS: for pygments? 21:41
FROGGS jnthn: which is not too bad :o)
hoelzro: yeah
hoelzro yeah, *their* update process is really easy 21:42
timotimo we wait another 2 years
hoelzro I had my patch in there within a week, I think
pygments.rb/linguist/GH deployment, on the other hand...
well, you all know how that goes =)
timotimo well, at least linguist doesn't need to be updated
hoelzro true
but I updated their language classifier
but those are two separate pipelines, now 21:43
timotimo fair enough
FROGGS but still awesome to see it properly highlighted!
hoelzro \o/ 21:44
timotimo yes, definitely
21:50 eternaleye joined
dalek arVM: 35ee44f | (Tobias Leich)++ | / (3 files):
every codepoint gets property <:Any>
21:54
FROGGS t/spec/S05-mass/named-chars.rakudo.moar ......... Failed 53/431 subtests 22:11
timotimo that's less than before? 22:12
FROGGS this is the only bigger issue left
no, unchanged
timotimo OK
FROGGS the lookup but name is borked somehow, as if there are tiny gaps
I spent a few hours yesterday on that topic but without any luck 22:13
jnthn Guess what happens when I add checking we don't pass excess named params? 22:15
Yeah, that's right, we do in various bits of the QAST -> MAST...
timotimo that should be fixed then :)
since it'd be wrong anyway, no?
jnthn Right.
Curiously, one of the fails involved not passing context along properly.. 22:16
Well into the setting build now, so hopefully we'll be good from here. 22:17
timotimo sounds like that might give a tiny bit of performance improvement, too :)
jnthn Maybe, though don't see any in settinb build 22:18
timotimo fair enough
jnthn Ah, darn...
FROGGS it assploded?
jnthn aye 22:20
on setting load
oh, maybe my bad though
FROGGS hehe
jnthn spectests and hopes for less fails, not more 22:26
FROGGS m-spectest: 1522.52user 57.10system 6:58.11elapsed 377%CPU (0avgtext+0avgdata 288640maxresident)k 22:28
jnthn 288640 - that's not bad. 22:29
Comapred to other backends, anyway
FROGGS looks at the clogs 22:30
dalek arVM: 06c3d8a | jnthn++ | / (8 files):
Add an op that asserts we've no excess named args.
FROGGS from jan 18th: 22:32
23:33 moar: 1903.59user 61.68system 8:44.44elapsed 374%CPU (0avgtext+0avgdata 544556maxresident)k
23:33 parrot 2736.31user 176.74system 13:03.85elapsed 371%CPU (0avgtext+0avgdata 771712maxresident)k
that mem usage dropped a lot!
timotimo whoa
jnthn Yeah, well, we leaked every single Int... :) 22:37
Note that we spectest in almost half the time Parrot does too 22:38
FROGGS jnthn: I "note" that every time :o)
especially right now, since I am spectesting 22:39
jnthn I can't believe we had the mother of all leaks and our maxresident still came out lower... 22:41
timotimo agreed. 22:42
jnthn Hm, the inlining must improve something. 23:34
Gets me my lowest spectest time yet. 23:35
(Yes, without regressing stuff. :P)
23:40 benabik joined