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 |