timotimo m: say "when gzip -9'd, the core setting is also { 100 * 2045759 / 2082158 }% as big as before" 00:02
camelia rakudo-moar 239d74: OUTPUT«when gzip -9'd, the core setting is also 98.25186177% as big as before␤»
timotimo not a big improvement, but that doesn't matter. it'll still compress better even though we removed duplications
m: say "on timo's machine, the exact percentage of the core setting is { 100 * 9327199 / 11948637 }%" 00:03
camelia rakudo-moar 239d74: OUTPUT«on timo's machine, the exact percentage of the core setting is 78.060777978%␤»
timotimo hm, this is an apples-to-oranges comparison, as the "before" measurement is takes from the 2015.03 tag 00:04
memory usage of "say 1" went up since 2015.03, which i'd bet is mostly CompUnitRepo related stuff? 00:05
huh, no, 2015.03 already has CompUnitRepo::Local::Installation in it
i may have to throw out the MANIFEST here? 00:06
ah, that makes the memory usage drop:
m: say "memory usage of perl6 -e 'say 1' drops to { 100 * 71236 / 75796 }%" 00:07
camelia rakudo-moar 239d74: OUTPUT«memory usage of perl6 -e 'say 1' drops to 93.983851%␤»
timotimo not overwhelming, but definitely welcome
(overwhelming as compared to the core setting size reduction, that is) 00:08
00:55 vendethiel joined 01:48 ilbot3 joined 02:12 colomon joined 02:31 vendethiel joined 02:44 btyler joined 03:06 btyler joined 04:29 btyler joined 06:24 pyrimidine joined 06:44 pyrimidi_ joined 06:54 brrt joined
brrt \o 06:54
jnthn o/ brrt 06:55
brrt \o jnthn :-)
is it as nice weather in sweden as in the netherlands? 06:56
06:58 Ven joined
jnthn brrt: I'm not in Sweden today, but last I glanced the forecast today was meant to be cloudy. 07:02
brrt ah really? were are you then? 07:03
always a surprise
07:04 lizmat joined
masak I can confirm it's cloudy 07:07
overcast, even
I brought an umbrella, just in case the weather decides to try any tricks
brrt well, here it's been nothing but sunny
jnthn is in one of the more eastern bits of Europe at the moment, and has sun too :) 07:08
yays, another RT down.
masak .oO( Easter Europe ) 07:09
brrt jnthn++
jnthn That was last weekend :P
nwc10 jnthn: did you get two Easters? 07:17
jnthn Yes :) 07:19
nwc10 are you planning to repeat the exercise at Christmases? 07:21
jnthn Well, did last time around. Will see about the next one. :) 07:22
The Christmas is a reliable chance to get two; Easter can actually match some years.
Yowser, I made this coffee a bit strong... 07:28
nwc10 that's probably easier to remedy than "too weak"
brrt smaller cups 07:29
nwc10 more cowbell. er. cow lactic product.
brrt apparantly drinking milk is highly controversial these days 07:31
nwc10 you're supposed to snort it?
brrt :-D 07:32
07:37 dalek joined
masak if drinking milk is highly controversial, then I'm proud to be a rebel 07:37
tadzik . o O ( with a rebel yell, she cried 'moo, moo moo' ) 07:38
07:45 zakharyas joined
nwc10 OK, so you can store all the string offsets as varints instead of int32 and your CPU usage goes up a lot 08:21
jnthn Hm 08:25
For how much space saving?
nwc10 this doesn't surprise me
0.3M
it's not worth it as-is
jnthn Hmm
Yeah
nwc10 note, *as-is*
there's likely to be a smarter way. 08:26
I'm gathering a lot more stats about the values stored as string offsets
varints are spendy
to use one of my current favourite bits of slang
08:28 FROGGS joined 08:29 donaldh joined
brrt nice word, yes 08:29
varints are very expensive, yes
brrt once-upon-a-time had written a dirac decoder for java and couldn't get it to work fast enough for precisely that reaosn
09:02 Ven joined 09:20 vendethiel joined 09:34 Ven joined
brrt i finally thought up how to do path finding on a 2-dimensional map (e.g. a good order for the heap in dijkstras algorithm) 09:40
basically, euclidean distance from endpoint difference divided by length of path 09:41
xiaomiao ... A* ? 09:42
09:43 dalek joined
brrt huh, yeah, that is the same pretty much 09:43
hah :-)
nice
brrt is a reinventing-wheels-fool
masak A* is the answer to a disturbingly large class of problems. 09:55
brrt i only knew dijkstra 09:56
in that vein, when people ask 'what's your favorite data structure'.... many people come up with all sorts of obscure data structures 09:57
my favorite data structure is the heap
many elegant, such efficient, very wow
masak suffix trees have long been a favorite of mine. they make some string-searching problems that "feel" O(n**2) actually be O(n) 09:59
brrt suffix trees are pretty nice too, yes 10:01
oh wow, one has to love mysql for not enforcing the tiniest bit of referential consistentcy 10:27
nwc10 it's all plot to get you to buy Oracle 10:29
lizmat fwiw, once you're needing more than one db server to handle your data load, referential consistency goes out the window anyway :-( 10:30
jnthn Referential consistency is better kept more tightly bounded than many database designs have it.
brrt lizmat, i disagree, you just need a different architecture for your database 10:33
a simple matter of redesigning your entire system to be future-proof ;-)
brrt afk for lunch & 10:35
11:20 vendethiel joined 11:24 brrt joined 11:52 Ven joined 12:10 Ven joined
dalek arVM/no-moar-linenoise: e901f1e | hoelzro++ | / (13 files):
Remove linenoise/readline

Now that NativeCall is included with Rakudo, instead of having linenoise/readline functionality be bundled in as a VM-level op, let's create a NativeCall-based module for this functionality
13:41
14:18 dalek joined
jnthn "Looks like you failed 500 tests of 500" 14:35
go me!
dalek arVM: 3b506ce | jnthn++ | src/ (2 files):
Split codepoint iter from grapheme iter.

It defers to MVMGraphemeIter, and panics if it sees a synthetic.
14:40
arVM: 2b64def | jnthn++ | src/strings/normalize.h:
Add grapheme API functions to normalizer.
arVM: aa644a3 | jnthn++ | src/ (3 files):
Wire up code points to NFG string op.

Doesn't actually create an NFG string just yet, because the normalizer 4f6240b | jnthn++ | src/core/fixedsizealloc. (2 files): Stub in "free at next safepoint" FSA function.
Needs to be fully implemented yet. Will allow us to queue memory to be freed at the next global safe point, when we can be confident no other thread can possibly be looking at it.
15:06 colomon joined 15:16 dalek joined 15:21 lizmat_ joined 15:27 Ven joined
dalek arVM: dad994b | jnthn++ | / (7 files):
Sketch out NFG-related data structures.
15:30
arVM: 78ceaf8 | jnthn++ | src/strings/nfg. (2 files):
Stub in code points to grapheme function.

Just returns a dummy synthetic -1 for now.
15:33
15:38 FROGGS joined
dalek arVM: 667213c | jnthn++ | src/strings/normalize. (2 files):
First pass at grapheme normalization algorithm.

This finds sequences of code points that should form a grapheme, and passes them to the NFG synthetic lookup. While that does always give back -1, this is enough to pass 500 genreated tests to check that an NFG string ends up with the correct result coming from .chars.
15:38
jnthn That passes my 500 fails from earlier. Now I've got another 500 new tests for roundtrip to/from NFG that need me to actually implement the clever stuff. :) 16:11
Well, the other bit of clever stuff.
FROGGS ohh nice 16:13
jnthn++
FROGGS .oO( my NFGero ) 16:14
jnthn I suspect for 2014.04 we'll just have NFG synthetics coming from explicit .Str coercion from the Uni type. 16:17
And shortly after 2014.04 switch it on for decoding from Buf and in the I/O layers.
So we get time to deal with any ecosystem fallout, bugs, etc.
FROGGS yeah 16:20
jnthn dinner & 16:45
TimToady maybe we should rename the unicode subsystem to "cowbell", so that every time there's a new Unicode version, we could say "needs moar cowbell!" 18:36
alas, there is no cowbell in Unicode (yet)
18:40 zakharyas joined
PerlJam 2014.04?!? 19:24
TimToady the past is unevenly distributed 19:26
jnthn uh..yeah, what year is it... :P 19:44
nwc10 it *is* the year of the future. 19:45
sod flying cars or hoverboards, where's my Mr Fusion?
19:50 lizmat joined 19:58 dalek joined
japhb About 93 million miles away 20:28
dalek arVM: eb9b262 | jnthn++ | src/strings/normalize.c:
Tweak a comment.
20:32
arVM: ab4bb38 | jnthn++ | src/ (3 files):
Partial implementation of string -> codepoints.

Only has the NFC path so far, and doesn't actually work for strings with synthetics since the code point iterator doesn't know what to do with those yet.
japhb jnthn, I envy your rigor in consistently stubbing and checking in partial implementations in clean, even steps. 20:34
jnthn japhb: It's largely test-driven in this case. 20:35
japhb Oh go ahead, brag ... ;-) 20:36
jnthn Well, (Unicode Consortium)++ do give a huge normalizaiton test suite out, which is helpful. 20:37
Realized I can use it + some Unicode property introspection to generate a bunch of NFG tests. 20:38
Then looked at what kinds of tests I could generate, and ordered them by how much needs doing to pass 'em.
japhb Excellent plan, that. 20:39
20:39 colomon joined
japhb wonders whether we should split generated and hand-written tests when referring to the size of {Moar,NQP,Rakudo,Perl 6}'s test suite 20:41
20:42 FROGGS joined
FROGGS evenin' 20:42
japhb FROGGS! \o
japhb wonders how long before most of the people I chat with stop knowing the NORM! reference 20:43
FROGGS do we already know the rules what properties made up NFG fakepoints get?
jnthn My first thought is to go with the properties of the starter. 20:44
20:44 colomon joined
FROGGS yeah, that was what we expected when talking about that at dinner 20:46
also interesting might be uc/lc... so an "a" with dot above+below, matched by a case insensitive regex patters that has the uppercase version in it 20:50
but that even might Just Work™
because uc/lc should be about the base char 20:51
jnthn right, though ignorecase is should be done using caes folding.
*case
FROGGS hmmm, Käs' folding 20:52
o/ 20:55
jnthn wonders if folks in Berlin are going sleeping or going drinking... :) 20:56