Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2015-04-16

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:02 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␤»
00:02 timotimo not a big improvement, but that doesn't matter. it'll still compress better even though we removed duplications
00:03 timotimo 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%␤»
00:04 timotimo hm, this is an apples-to-oranges comparison, as the "before" measurement is takes from the 2015.03 tag
00:05 timotimo memory usage of "say 1" went up since 2015.03, which i'd bet is mostly CompUnitRepo related stuff?
00:05 timotimo huh, no, 2015.03 already has CompUnitRepo::Local::Installation in it
00:06 timotimo i may have to throw out the MANIFEST here?
00:06 timotimo ah, that makes the memory usage drop:
00:07 timotimo 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%␤»
00:07 timotimo not overwhelming, but definitely welcome
00:08 timotimo (overwhelming as compared to the core setting size reduction, that is)
00:55 vendethiel joined #moarvm
01:48 ilbot3 joined #moarvm
01:48 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
02:12 colomon joined #moarvm
02:31 vendethiel joined #moarvm
02:44 btyler joined #moarvm
03:06 btyler joined #moarvm
04:29 btyler joined #moarvm
06:24 pyrimidine joined #moarvm
06:44 pyrimidi_ joined #moarvm
06:54 brrt joined #moarvm
06:54 brrt \o
06:55 jnthn o/ brrt
06:55 brrt \o jnthn :-)
06:56 brrt is it as nice weather in sweden as in the netherlands?
06:58 Ven joined #moarvm
07:02 jnthn brrt: I'm not in Sweden today, but last I glanced the forecast today was meant to be cloudy.
07:03 brrt ah really? were are you then?
07:03 brrt always a surprise
07:04 lizmat joined #moarvm
07:07 masak I can confirm it's cloudy
07:07 masak overcast, even
07:07 masak I brought an umbrella, just in case the weather decides to try any tricks
07:07 brrt well, here it's been nothing but sunny
07:08 * jnthn is in one of the more eastern bits of Europe at the moment, and has sun too :)
07:08 jnthn yays, another RT down.
07:09 * masak .oO( Easter Europe )
07:09 brrt jnthn++
07:09 jnthn That was last weekend :P
07:17 nwc10 jnthn: did you get two Easters?
07:19 jnthn Yes :)
07:21 nwc10 are you planning to repeat the exercise at Christmases?
07:22 jnthn Well, did last time around. Will see about the next one. :)
07:22 jnthn The Christmas is a reliable chance to get two; Easter can actually match some years.
07:28 jnthn Yowser, I made this coffee a bit strong...
07:28 nwc10 that's probably easier to remedy than "too weak"
07:29 brrt smaller cups
07:29 nwc10 more cowbell. er. cow lactic product.
07:31 brrt apparantly drinking milk is highly controversial these days
07:31 nwc10 you're supposed to snort it?
07:32 brrt :-D
07:37 dalek joined #moarvm
07:37 masak if drinking milk is highly controversial, then I'm proud to be a rebel
07:38 tadzik . o O ( with a rebel yell, she cried 'moo, moo moo' )
07:45 zakharyas joined #moarvm
08:21 nwc10 OK, so you can store all the string offsets as varints instead of int32 and your CPU usage goes up a lot
08:25 jnthn Hm
08:25 jnthn For how much space saving?
08:25 nwc10 this doesn't surprise me
08:25 nwc10 0.3M
08:25 nwc10 it's not worth it as-is
08:25 jnthn Hmm
08:25 jnthn Yeah
08:25 nwc10 note, *as-is*
08:26 nwc10 there's likely to be a smarter way.
08:26 nwc10 I'm gathering a lot more stats about the values stored as string offsets
08:26 nwc10 varints are spendy
08:26 nwc10 to use one of my current favourite bits of slang
08:28 FROGGS joined #moarvm
08:29 donaldh joined #moarvm
08:29 brrt nice word, yes
08:29 brrt varints are very expensive, yes
08:29 * 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 #moarvm
09:20 vendethiel joined #moarvm
09:34 Ven joined #moarvm
09:40 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:41 brrt basically, euclidean distance from endpoint difference divided by length of path
09:42 xiaomiao ... A* ?
09:43 dalek joined #moarvm
09:43 brrt huh, yeah, that is the same pretty much
09:43 brrt hah :-)
09:43 brrt nice
09:43 * brrt is a reinventing-wheels-fool
09:55 masak A* is the answer to a disturbingly large class of problems.
09:56 brrt i only knew dijkstra
09:57 brrt 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 brrt my favorite data structure is the heap
09:57 brrt many elegant, such efficient, very wow
09:59 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)
10:01 brrt suffix trees are pretty nice too, yes
10:27 brrt oh wow, one has to love mysql for not enforcing the tiniest bit of referential consistentcy
10:29 nwc10 it's all plot to get you to buy Oracle
10:30 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.
10:33 brrt lizmat, i disagree, you just need a different architecture for your database
10:33 brrt a simple matter of redesigning your entire system to be future-proof ;-)
10:35 * brrt afk for lunch &
11:20 vendethiel joined #moarvm
11:24 brrt joined #moarvm
11:52 Ven joined #moarvm
12:10 Ven joined #moarvm
13:41 dalek MoarVM/no-moar-linenoise: e901f1e | hoelzro++ | / (13 files):
13:41 dalek MoarVM/no-moar-linenoise: Remove linenoise/readline
13:41 dalek MoarVM/no-moar-linenoise:
13:41 dalek MoarVM/no-moar-linenoise: Now that NativeCall is included with Rakudo, instead of having
13:41 dalek MoarVM/no-moar-linenoise: linenoise/readline functionality be bundled in as a VM-level op,
13:41 dalek MoarVM/no-moar-linenoise: let's create a NativeCall-based module for this functionality
13:41 dalek MoarVM/no-moar-linenoise: review: https://github.com/MoarVM/MoarVM/commit/e901f1ee85
14:18 dalek joined #moarvm
14:35 jnthn "Looks like you failed 500 tests of 500"
14:35 jnthn go me!
14:40 dalek MoarVM: 3b506ce | jnthn++ | src/ (2 files):
14:40 dalek MoarVM: Split codepoint iter from grapheme iter.
14:40 dalek MoarVM:
14:40 dalek MoarVM: It defers to MVMGraphemeIter, and panics if it sees a synthetic.
14:40 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/3b506ce8e9
14:40 dalek MoarVM: 2b64def | jnthn++ | src/strings/normalize.h:
14:40 dalek MoarVM: Add grapheme API functions to normalizer.
14:40 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/2b64def569
14:40 dalek MoarVM: aa644a3 | jnthn++ | src/ (3 files):
14:40 dalek MoarVM: Wire up code points to NFG string op.
14:40 dalek MoarVM:
14:40 dalek MoarVM: Doesn't actually create an NFG string just yet, because the normalizer
14:43 dalek MoarVM: 4f6240b | jnthn++ | src/core/fixedsizealloc. (2 files):
14:43 dalek MoarVM: Stub in "free at next safepoint" FSA function.
14:43 dalek MoarVM:
14:43 dalek MoarVM: Needs to be fully implemented yet. Will allow us to queue memory to be
14:43 dalek MoarVM: freed at the next global safe point, when we can be confident no other
14:43 dalek MoarVM: thread can possibly be looking at it.
14:43 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/4f6240b643
15:06 colomon joined #moarvm
15:16 dalek joined #moarvm
15:21 lizmat_ joined #moarvm
15:27 Ven joined #moarvm
15:30 dalek MoarVM: dad994b | jnthn++ | / (7 files):
15:30 dalek MoarVM: Sketch out NFG-related data structures.
15:30 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/dad994b5e0
15:33 dalek MoarVM: 78ceaf8 | jnthn++ | src/strings/nfg. (2 files):
15:33 dalek MoarVM: Stub in code points to grapheme function.
15:33 dalek MoarVM:
15:33 dalek MoarVM: Just returns a dummy synthetic -1 for now.
15:33 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/78ceaf84a8
15:38 FROGGS joined #moarvm
15:38 dalek MoarVM: 667213c | jnthn++ | src/strings/normalize. (2 files):
15:38 dalek MoarVM: First pass at grapheme normalization algorithm.
15:38 dalek MoarVM:
15:38 dalek MoarVM: This finds sequences of code points that should form a grapheme, and
15:38 dalek MoarVM: passes them to the NFG synthetic lookup. While that does always give
15:38 dalek MoarVM: back -1, this is enough to pass 500 genreated tests to check that an
15:38 dalek MoarVM: NFG string ends up with the correct result coming from .chars.
15:38 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/667213c33c
16:11 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 jnthn Well, the other bit of clever stuff.
16:13 FROGGS ohh nice
16:13 FROGGS jnthn++
16:14 * FROGGS .oO( my NFGero )
16:17 jnthn I suspect for 2014.04 we'll just have NFG synthetics coming from explicit .Str coercion from the Uni type.
16:17 jnthn And shortly after 2014.04 switch it on for decoding from Buf and in the I/O layers.
16:17 jnthn So we get time to deal with any ecosystem fallout, bugs, etc.
16:20 FROGGS yeah
16:45 jnthn dinner &
18:36 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 TimToady alas, there is no cowbell in Unicode (yet)
18:40 zakharyas joined #moarvm
19:24 PerlJam 2014.04?!?
19:26 TimToady the past is unevenly distributed
19:44 jnthn uh..yeah, what year is it... :P
19:45 nwc10 it *is* the year of the future.
19:45 nwc10 sod flying cars or hoverboards, where's my Mr Fusion?
19:50 lizmat joined #moarvm
19:58 dalek joined #moarvm
20:28 japhb About 93 million miles away
20:32 dalek MoarVM: eb9b262 | jnthn++ | src/strings/normalize.c:
20:32 dalek MoarVM: Tweak a comment.
20:32 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/eb9b262840
20:32 dalek MoarVM: ab4bb38 | jnthn++ | src/ (3 files):
20:32 dalek MoarVM: Partial implementation of string -> codepoints.
20:32 dalek MoarVM:
20:32 dalek MoarVM: Only has the NFC path so far, and doesn't actually work for strings
20:32 dalek MoarVM: with synthetics since the code point iterator doesn't know what to
20:32 dalek MoarVM: do with those yet.
20:32 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/ab4bb3892f
20:34 japhb jnthn, I envy your rigor in consistently stubbing and checking in partial implementations in clean, even steps.
20:35 jnthn japhb: It's largely test-driven in this case.
20:36 japhb Oh go ahead, brag ...  ;-)
20:37 jnthn Well, (Unicode Consortium)++ do give a huge normalizaiton test suite out, which is helpful.
20:38 jnthn Realized I can use it + some Unicode property introspection to generate a bunch of NFG tests.
20:38 jnthn Then looked at what kinds of tests I could generate, and ordered them by how much needs doing to pass 'em.
20:39 japhb Excellent plan, that.
20:39 colomon joined #moarvm
20:41 * 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:42 FROGGS joined #moarvm
20:42 FROGGS evenin'
20:42 japhb FROGGS!  \o
20:43 * 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?
20:44 jnthn My first thought is to go with the properties of the starter.
20:44 colomon joined #moarvm
20:46 FROGGS yeah, that was what we expected when talking about that at dinner
20:50 FROGGS 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 FROGGS but that even might Just Work™
20:51 FROGGS because uc/lc should be about the base char
20:51 jnthn right, though ignorecase is should be done using caes folding.
20:51 jnthn *case
20:52 FROGGS hmmm, Käs' folding
20:55 FROGGS o/
20:56 * jnthn wonders if folks in Berlin are going sleeping or going drinking... :)

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary