02:01 d4l3k_ joined 06:38 FROGGS joined 07:01 vendethiel joined
nwc10 as MoarVM has been reboostrapped very recently, does this mean that we can remove code that supports everything other than the current serialisation format? 07:06
jnthn "yes" (more)
At some point, though, we're going to want to declare that a given Moar supports a bunch of Rakudo versions before it, so you can upgrade the VM independently of the rest and be comfortable doing so. 07:07
nwc10 I was sort of assuming this at some point. Alpha time?
08:14 brrt joined 08:23 zakharyas joined 09:06 harrow joined 09:09 Ven joined 10:24 lizmat joined
brrt \o 11:17
jnthn o/ brrt 11:19
brrt hey, how is today :-) 11:20
nlpw this friday by the way. that came as a surprise to me 11:24
timotimo oh! 11:25
i didn't realize
i'll be somewhere else this weekend
brrt well, same for me, unfortunately 11:27
13:33 Ven joined 13:46 dalek joined
dalek arVM: dd6cf7c | jnthn++ | src/strings/normalize. (2 files):
Stash appropriate quick check prop in normalizer.
14:52
arVM: ebf84df | jnthn++ | src/strings/normalize.h:
A couple of macros to test the normalization form.
arVM: 5c2ac31 | jnthn++ | src/strings/normalize.h:
NFD and NFKD can get a simpler fast path.
14:54
arVM: e3c0f7e | jnthn++ | src/strings/ (2 files):
Add a way to get a Unicode property as a C string.
arVM: 734f34c | jnthn++ | src/strings/normalize.c:
Add quick-check simple paths; prepare for decomp.
15:30
arVM: 0a53a93 | jnthn++ | src/strings/normalize.c:
Basic cases of NFD/NFKD.

Gets the recursion requirements of the spec right, but still missing Hangul handling and also canonical sorting.
15:51
15:54 FROGGS[mobile] joined
jnthn Guess I gotta get the hang of Hangul next...don't want to jamon it... :) 15:59
16:01 vendethiel joined
TimToady hands jnthn a syllabus.. 16:04
jnthn
.oO( What the syllabus number of implementing this stuff... )
16:05
TimToady don't get run over by a syllabull either... 16:06
syllaberries are probably not too dangerous though 16:07
dalek arVM: 6b61fb5 | jnthn++ | src/strings/normalize.c:
Implement Hangul decomposition algorithm.
16:17
jnthn Well, that gets us passing a good bit more of the NFD tests... 16:20
Probably NFKD too, will have to generate those and try 'em when I get done with NFD.
Anyway, canonical ordering algo will be next, but I think it's dinner time first :) 16:23
16:31 Ven joined 16:58 ggoebel joined 17:12 FROGGS joined
nwc10 jnthn: I made another patch at gitlab.com/nwc10/MoarVM.git 18:15
it removes all the non-current serialisation code
I'm not sure if it's exactly how you'd like to do it. Particularly the comment "See blame history for the next line if you change the header size:" 18:16
and how to undo the header size variation stuff, whilst making it easy to add it back it we need it again
dalek arVM: badd461 | (Francois Perrad)++ | build/probe.pm:
cross-compiling with computed goto

a target executable can not run on the host. so, don't try that.
18:39
arVM: 44b3340 | FROGGS++ | build/probe.pm:
Merge pull request #199 from fperrad/cross-cgoto

cross-compiling with computed goto
18:40 Ven joined 18:52 zakharyas joined
dalek arVM: ddb1bf9 | (Francois Perrad)++ | / (4 files):
refactor pthread_yield detection

the current detection is fragile. for example, with the musl libc on linux, it fails.
the detection must be done during the configure step.
19:29
arVM: f110c94 | FROGGS++ | / (4 files):
Merge pull request #200 from fperrad/pthread_yield

refactor pthread_yield detection 1129f82 | FROGGS++ | src/strings/normalize.c: silence warning about missing format string
FROGGS what should we do about that? 19:31
src/strings/normalize.c: In function ‘assert_codepoint_array’:
src/strings/normalize.c:23:5: warning: format not a string literal and no format arguments [-Wformat-security]
MVM_exception_throw_adhoc(tc, error);
just rename "error" to something else?
jnthn The warning is wrong; we only pass literal strings in there. 19:37
FROGGS isnt "error" special? 19:38
jnthn I don't think that's hat the warning is saying, no.
FROGGS ahh 19:39
got it
jnthn We could fix it with "%s", error I guess.
FROGGS so the warning if about `format injection attacks` :o)
s/if/is/
jnthn Yeah 19:40
FROGGS k
jnthn The whole lot is static but I guess the static analysis of the compiler isn't so good ;)
FROGGS not smart enough, heh
jnthn: is it okay if I push there %s patch? 19:54
jnthn Should be fine. 20:04
20:05 zakharyas1 joined
20:33 Ven joined 20:35 colomon joined
jnthn writes ?? ... !! in C and...yeah, the compiler doesn't like that :) 20:48
FROGGS did the compiler spot your typo and gave you a good guess what might be right? 20:49
jnthn It was larlely confused :) 20:50
*largely
Anyways, seems I've reached one milestone on the path to NFG. :) 20:57
dalek arVM: 45861b3 | jnthn++ | src/strings/normalize.c:
Implement Unicode canonical sorting.

With this, we pass all of the Unicode normalization tests for both NFD and NFKD.
21:09
jnthn Now I "just" need to implement the canonical composition algorithm and we get NFC and NFKC. 21:11
FROGGS hmmm, at some point I should read what these abbr's mean :o) 21:12
jnthn++ anyway
I know what NFC stands for though 21:13
jnthn To implement NFC, you first decompose everything that's not already in NFC, do a canonical sort (and at this point you have NFD), and then apply canonical composition to get NFC. 21:15
FROGGS ahh
jnthn And NFG is NFC and then some, thus why I'm taking them on in this order. 21:16
FROGGS are we going to "loose" information when we compose to NFC or NFG? 21:17
jnthn NFD/NFC/NFG are defined as canonicalization, so don't lose anything much 21:18
FROGGS like when I a utf8 string that has "o +combiner +dots", and it get combined into "ö", do I get back to the original bytes?
jnthn Well, you can lose insignificant ordering.
It depneds on the combining chars in question.
FROGGS I see 21:19
jnthn It all depends on what you choose to write out, really.
NFKD/NFKC *are* much more "violent" 21:20
FROGGS not that I need to get back to the very same bytestream, but I'd seen this question a few weeks ago
jnthn And go rather beyond canonicalization.
Yeah, we don't promise the exact same bytestream, just one that's canonically equivalent.
FROGGS yeah 21:21
jnthn That means we take care of retaining the combiner orders that matter for when you render things.
One of the nice things is that by the time we've applied NFC and are considering NFG, we already have things nicely ordered.
21:35 colomon joined 21:39 lizmat_ joined 22:24 retupmoca joined 23:59 camelia joined