Perl 6 - the future is here, just unevenly distributed

IRC log for #p6dev, 2016-05-10

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

All times shown according to UTC.

Time Nick Message
00:02 timotimo interesting. the total heap size of nqp-m -e 'nqp::force_gc()' is only ~3 megabytes
00:19 timotimo disabling spesh (and jit along with it) only reduces the memory usage by half a megabyte, so that's not too bad
00:21 psch i'm unsure what hint to follow next
00:21 psch like, the linked ticket from earlier has jnthn stating that signature compilation elides containers
00:22 psch and today jnthn said that the Binder might be missing a decont
00:22 psch both of those seem like possible valid fixes for the FIRST issue
00:22 psch the former is probably lots harder :P
00:23 psch ...and probably neither of those fixes the actual r-j build blocker /o\
00:43 psch https://youtu.be/2SY6PlbJz0Q?t=321
00:49 timotimo there's *everything* on the internets
00:50 timotimo perfect accent, too
00:51 psch heh yeah
00:51 psch the slingshot channel is similarly amazing
00:52 timotimo oooh!
00:52 psch https://www.youtube.com/user/JoergSprave
00:52 psch i think he's a schwabe or something?
00:52 psch the slingshot guy that is
00:52 timotimo i was made aware of that channel by the application to microsoft for the condom thing
00:54 psch oh right i think i remember that
00:54 timotimo there's still a kilobyte or two in total that i can save with an optimization that i've got in my back-hand
00:54 psch didn't he build some kind of condom applicator
00:55 timotimo yes, that's the one
00:55 psch with like half a kilo joule of force behind it or something insane like that
00:55 timotimo only for the MANLIEST OF MEN, obviously
00:55 psch haha
00:55 timotimo which ... yeah, right
00:57 timotimo moar might never reach the point where i could build a game simulation where each of maybe three thousand agents all have their own kind of script running to control what they do
00:58 psch i can't judge that, at all
00:58 timotimo well, as long as the compiler sticks around in memory when the user program already runs ... :\
00:59 timotimo that's not a moar thing in and of itself, but i'm not sure how good the other languages we could put on there would necessarily be vastly better
01:00 psch isn't moar at least somewhat suited to output a platform-specific executable?
01:00 timotimo hm, how do you mean?
01:00 psch i mean, i don't know if that actually helps enough
01:00 timotimo oh, right, if you make your program fully separate from the compiler, that ought to totally work!
01:01 psch ...i'm not sure that's not sarcasm :P
01:01 timotimo well, i've forgotten about that possibility because of how we currently do "compile script to moarvm and invoke it"
01:01 timotimo because that's -MMyCompiledScript -e ''
01:01 timotimo which invokes the compiler to compile the empty program
01:01 timotimo and then the compiler sticks around, probably :)
01:01 psch ah, i see
01:02 psch i was thinking a step further, but not sure that really could work
01:02 timotimo please elaborate?
01:02 psch as in, have moar write a platform-specific executable
01:02 timotimo i'm not sure what you mean by that
01:02 psch well, the nqp compiler builds moar bytecode
01:02 timotimo yah
01:03 psch and with that moar bytecode we could potentially statically see which parts of interp.c we actually need
01:03 timotimo oh, huh
01:03 psch that's buckets of static analysis and whatelsehaveyou of course
01:03 psch but in principle that's what we're doing when we're writing java .class files
01:04 timotimo interp.o is only 887 kilobytes big, though
01:05 psch hmm
01:05 psch well, the thing i'm thinking of is
01:05 timotimo turn the JIT into an AOT? :)
01:05 psch to build a self-contained .jar that's compiled from Perl 6 code we have to bundle... probably, yeah
01:05 timotimo of course, a very big part of interp.c is just calling into other things
01:06 psch AOT is "ahead of time [compiler]", isn't it
01:06 timotimo yes
01:06 psch yeah, then that's what i was thinking
01:06 psch probably mostly because it's late :P
01:06 timotimo so if we're able to throw out parts of the interp.c and we no longer consider all those functions to be API, we'd in theory be able to reduce the size of the moar executable
01:06 psch it's not really something i'd like to suggest
01:07 timotimo however, if i have the theoretical situation of using a full moar process for thousands of agents, the moar executable would ideally be shared in memory by the OS anyway
01:07 psch oh
01:07 psch well, it all depends on the design then, doesn't
01:07 timotimo we should have discussed thin in #perl6, since at least me isn't terribly serious about most of this, but #p6dev is the "everybody should backlog this only"
01:07 psch ...right :/
01:08 timotimo oopsie
04:35 Woodi joined #p6dev
06:24 nine_ Well it was interesting anyway :)
06:30 stmuk_ joined #p6dev
07:29 brrt joined #p6dev
07:29 RabidGravy joined #p6dev
09:24 cognominal joined #p6dev
10:35 ZoffixWin joined #p6dev
10:51 sno joined #p6dev
10:52 lizmat nine: looking at https://github.com/rakudo/rakudo/blob/nom/src/core/CompUnit/Repository/Installation.pm#L170
10:52 lizmat am I missing some hidden meaning of my $a //= "foo"
10:52 lizmat ?
10:53 nine_ lizmat: no, none that I would know :)
10:53 lizmat ok  :-)  so an "=" should be enough, right ?
10:53 nine_ absolutely
10:54 lizmat ok  :-)
10:54 dalek rakudo/nom: f03564e | lizmat++ | src/core/CompUnit/Repository/Installation.pm:
10:54 dalek rakudo/nom: Fix thinko
10:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f03564e201
10:56 lizmat was looking at why install-core-dist failed after a patch of mine
10:56 nine_ Any way I could help?
10:58 lizmat https://gist.github.com/lizmat/b312048a759328a8ecdb8c215df66e1d
10:58 lizmat was hoping to improve performance of flat
10:59 lizmat I guess this is tickling some optimizer issue or so
11:00 lizmat afaics, the diff is functionally identical to the original
11:01 lizmat ah well, I'll keep it around for a rainy day
11:08 lizmat nine_: did you ever consider storing perl_wrapper and windows_wrapper as text files somewhere, and then slurp them when installing?
11:08 lizmat nine_: instead of having them in memory every time we start rakudo ?
11:09 jnthn lizmat: fwiw, Moar deserializes the string heap lazily these days, and mmap's bytecode files so they're shared between all running instances
11:09 jnthn lizmat: So I doubt that'd be a real saving :)
11:09 lizmat ok
11:10 lizmat just checking  :-)
11:10 jnthn About 2 months ago we didn't do that. ;)
11:10 jnthn So fairly recent improvement :)
11:10 lizmat ah, ok, so my idea wasn't too strange  :-)
11:11 lizmat anyways, I've been prototyping really threading Junctions
11:11 lizmat specifically Junction.Bool
11:11 lizmat and have found some interesting things, (at least on a Mac)
11:12 lizmat it appears that it takes several seconds before OS X switches on all cores, when you have 8 threads started running full blast
11:12 jnthn Hm, CPU power management?
11:12 lizmat probably
11:13 lizmat so, in the case of .Bool, you need to have a junction of 10M entries before it starts taking shorter in wallclock
11:15 lizmat actually, more like 1G entries
11:16 jnthn o.O
11:19 lizmat fwiw, one of my test scripts that shows the CPU rampup behaviour clearly: https://gist.github.com/lizmat/60961c6cbcbdf7b9efc5d7d3bd81eec3
11:21 jnthn lunch, bbiab
11:49 lizmat fwiw, at 1M it's about even
11:51 lizmat https://gist.github.com/lizmat/5b14702303fef6ee68700d23fb4441be  # for those interested
11:57 timotimo o/
13:03 [Coke] Need a volunteer to do the May compiler release.
13:16 skids joined #p6dev
13:42 pmurias joined #p6dev
13:44 dalek nqp: 3df4f12 | (Pawel Murias)++ | src/vm/js/Operations.nqp:
13:44 dalek nqp: [js] Stub is_inlinable.
13:44 dalek nqp: review: https://github.com/perl6/nqp/commit/3df4f1200f
13:44 dalek nqp: 5c053c3 | (Pawel Murias)++ | src/vm/js/Operations.nqp:
13:44 dalek nqp: [js] Mark inlinability of ops.
13:44 dalek nqp: review: https://github.com/perl6/nqp/commit/5c053c37f8
13:44 dalek nqp: c9cf904 | (Pawel Murias)++ | src/vm/js/nqp-runtime/runtime.js:
13:44 dalek nqp: [js] Fix signature.
13:44 dalek nqp: review: https://github.com/perl6/nqp/commit/c9cf9043a9
13:44 dalek nqp: 4490a41 | (Pawel Murias)++ | src/vm/js/Operations.nqp:
13:44 dalek nqp: [js] Expose some things to code defining custom ops.
13:44 dalek nqp: review: https://github.com/perl6/nqp/commit/4490a41552
13:47 dalek nqp: 0d63a88 | (Pawel Murias)++ | t/nqp/44-try-catch.t:
13:47 dalek nqp: Test rethrowing of exceptions from outside of CATCH.
13:47 dalek nqp: review: https://github.com/perl6/nqp/commit/0d63a88ff9
14:13 psch jnthn: inside Any.map, iscont(&block) == 1 on r-j, but 0 on r-m
14:14 psch jnthn: that's for e.g. 'for ^2 { FIRST { say "hi" }; say "ok" }'
14:16 psch jnthn: i've looked through the Binder, but the only spot that does cont stuff is identical in Binder.java and BOOTSTRAP/Binder, around the "if it's a scalar ..." comment
14:17 psch and we are dilligent enough to pass only the decontValue to actual callsite, afaics
14:23 jnthn psch: Ahhh... Seems the slow-path binder (in both backends) miss this trick: https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Actions.nqp#L8188
14:23 dalek rakudo/nom: 376f50e | hoelzro++ | docs/release_guide.pod:
14:23 dalek rakudo/nom: Add Rob Hoelz for May rakudo release
14:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/376f50ee92
14:24 jnthn Which lowering does. But no reason not to do it in the slow-path binder also...
14:24 psch jnthn: ah.  i'll read that bit over and see where it has to go
14:25 psch well, unless you don't have anything else at the moment... ;)
14:27 jnthn Nothing to add really. The comment I think explains what's going on.
14:29 pmurias Will https://github.com/perl6/nqp/pull/283 get merged? I could implement/test those ops while waiting to recompile rakudo.js ;)
14:30 nine_ [Coke]: how much work is such a release? Would I need to do anything rakudo-j related?
14:30 psch still curious how missing the same trick in two backends has different behavior over the backends...
14:31 psch nine_: https://github.com/rakudo/rakudo/blob/nom/docs/release_guide.pod looks like the only r-j specific thing is checking if it builds and can be included
14:32 pmurias psch: why is the coerce op named differently on the jvm backend?
14:32 nine_ psch: which from what I've read here is probably not the case currently?
14:32 psch pmurias: because they already were different before
14:33 psch pmurias: moar exposes e.g. coerce_si, while jvm exposes coerce_s2i, which incidentally lead to timotimo++ confusing the direction... :)
14:33 psch nine_: yeah, currently it breaks during install-core-dist.pl
14:34 psch pmurias: well, "exposes" isn't quite right i guess.  the vm-level op is named coerce_s2i on r-j, but i suspect we expose it as coerce_si if that's what moar had before already
14:34 psch i didn't check, though
14:36 psch pmurias: fwiw, QASTOperationsMAST exposes e.g. coerce_Is as tostr_I
14:36 psch and jvm/QAST/Compiler.nqp doesn't seem to expose them at all...
14:39 pmurias psch: isn't exposing allowing the MoarVM op to be used as nqp::coerce_ni?
14:40 psch nqp/src/vm/moar/QAST/QASTOperationsMAST.nqp:2169:QAST::MASTOperations.add_core_moarop_mapping('tostr_I', 'coerce_Is');
14:40 psch pmurias: ^^^ that's what i mean.  the nqp op tostr_I maps to coerce_Is
14:40 psch on nqp-j, tostr_I would have to map to coerce_i2s, i suppose
14:40 psch well, plus unboxing probably
14:55 dalek rakudo/nom: e3dd039 | moritz++ | docs/release_guide.pod:
14:55 dalek rakudo/nom: ZoffixW++ does the June release
14:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e3dd039244
15:18 [Coke] nine_: r-j is not part of the release process at the moment.
15:25 dalek rakudo/nom: 9c89890 | coke++ | docs/release_guide.pod:
15:25 dalek rakudo/nom: add note about moarvm release
15:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9c89890f6c
15:26 nine_ psch: any chance we can get an mmap op on jvm?
15:27 psch nine_: i have no idea what that would mean for a managed vm
15:28 nine_ psch: I guess this would be it: https://docs.oracle.com/javase/8/docs/api/index.html?java/nio/MappedByteBuffer.html
15:29 nine_ psch: OTOH I have no idea if that could be used to load byte code on the JVM. The minimum we're gonna need is a loadbytecodebuffer op
15:31 psch nine_: well, we have LibraryLoader.loadNew(byte[] bytes, byte[] serial), see https://github.com/perl6/nqp/blob/master/src/vm/jvm/runtime/org/perl6/nqp/runtime/LibraryLoader.java#L108
15:32 nine_ psch: ah, so I'd just have to hook it up to the op. Great :)
15:34 pmurias nine_: why do you want to load byte code on the JVM?
15:35 nine_ pmurias: precompiled modules?
15:36 pmurias nine_: you want to load JVM bytecode?
15:37 psch hm, how do i get Iterable into GlobalExt..? :/
15:39 nine_ pmurias: I'm working on storing dependency information and precompiled bytecode in a single file that can be atomically replaced by just rename()ing over it. I've got it working on MoarVM using a new loadbytecodebuffer op and am now working on a version that uses mmap for improved memory usage.
15:41 * pmurias needs to figure out how library loading should work in rakudo-js soon
15:42 nine_ pmurias: wouldn't this just be eval()ed JS code?
15:43 timotimo what about serialized objects?
15:44 nine_ Ah, of course, those
15:45 pmurias nine_: I have the ability to load arbitrary code from a path using require(pathname)
15:45 pmurias nine_: the hard part is how much should I integrate with the way node.js handles modules (which is to have a relative node_modules directory with a copy of the deps)
15:47 timotimo MadcapJake: i'm a bit uneasy about how parsing of input data and calculation of result data is so interleaved in your "basic graph statistics" solution. though i've written code much like this in the past, too ...
15:49 MadcapJake so you'd prefer it be two routines? I was going for condensed but not one-liner condensed :P
15:50 timotimo i dunno, i'm just outputting my innermost thoughts on the code
15:50 timotimo i don't know why i don't like it
15:51 nine_ must be personal ;)
15:52 MadcapJake timotimo has it out for me :P
15:58 pmurias nine_: the hard part is how much should I integrate with the way node.js handles modules (node.js has a relative node_modules directory with a copy of the deps)
15:59 [Coke] Hey, release in under 2 weeks. We need to decide how to proceed with 128069; it's a behavior change on 6.c errata; we need to decide how to resolve this. (I think we can : revert the change | finally introduced support for something other than 6.c, and have it behave differently between the two | update 6.c-errata because it's a small change). I don't have any strong feelings yet about which of these is the
16:00 [Coke] right thing, but we need to talk about it this week and come to a decision.
16:00 [Coke] RT #128069
16:00 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=128069
16:00 MadcapJake pmurias: I'm doing something similar with CUR::GX (as it was modeled after node.js) and it's mostly going to be like CURFS
16:00 MadcapJake pmurias: will r-js work in the browser?
16:01 [Coke] I think the default action, if we don't come to concensus, is to move that change to a branch and change this to an RFC ticket. But I'd rather decide than fail to decide.
16:02 nine_ jnthn: now that I'm trying to implement an mmap op, I see that for mmap a file has to be open()ed anyway. So it should be enough to implement a loadbytecodefh op that takes an open file handle and mmaps. Essentially a MVM_cu_map_from_fh that just skips the uv_fs_open that MVM_cu_map_from_file does.
16:03 [Coke] RT: 1288; CONC: 6; GLR: 6; JVM: 69; LHF: 2; LTA: 68; OSX: 3; PATCH: 3; PERF: 15; POD: 3; PRECOMP: 3; SEGV: 22; STAR: 1; TESTNEEDED: 19; UNI: 5; WEIRD: 2
16:10 pmurias MadcapJake: yes, having the code rakudo-js generates run in the browser is the main goal
16:12 MadcapJake ok so are you looking at using RequireJS, CommonJS? I personally think you should consider SystemJS.
16:12 pmurias I'm developing on node.js
16:12 MadcapJake How would that work in the browser then?
16:12 pmurias I have used webpack to pack stuff for running in the browser
16:12 MadcapJake ohh, I see.
16:13 MadcapJake SystemJS can do that too
16:13 nine_ SystemJS' README uses the word "transpiler". Not a good sign...
16:14 MadcapJake nine_: that's how the JS world calls languages that compile to their sacred cow :P
16:15 nine_ I do not shy away from calling the JS world incompetent for creating and using such words...
16:15 [Coke] I rejected the 3 [PATCH] tickets because none of them applied cleanly.
16:15 MadcapJake pmurias: https://github.com/systemjs/systemjs/blob/master/docs/creating-plugins.md
16:16 MadcapJake nine_: well I don't see the harm, COMpile says "down to byte or machine code" TRANSpile says "across to another language"
16:17 MadcapJake if anything it's humble ;)
16:17 psch so rakudo and nqp are both transpilers too?
16:17 psch java too i suppose
16:17 psch well, javac
16:17 pmurias nope
16:17 nine_ "A compiler is a computer program (or a set of programs) that transforms source code written in a programming language (the source language) into another computer language (the target language), with the latter often having a binary form known as object code.[1]"
16:18 pmurias a transpiler is a source-to-source compiler
16:18 MadcapJake nine_: the last condition is exactly what transpile is supposed to differentiate on
16:18 nine_ That's no condition. Hence the word "often"
16:18 pmurias a design goal of moar was that it will be no pir equivalent ;)
16:19 psch per the definition above, compilers are a superset of transpilers
16:19 geekosaur there is a conceptual thing where a compiler translates from a higher expressivity level to a lower one, and a transpiler translates between similar expressivity levels
16:19 MadcapJake it's not but human language is fical nine_ , people consider COMpile to mean something and TRANSpile fills the void for non-bytemachine compilation
16:19 psch and there's no name for the complement to transpilers in the set of compilers
16:19 psch except, well, overloading "compiler" with that meaning
16:19 [Coke] anyone else see the request recently to hide from-json & to-json? trying to find a ticket for it.
16:20 psch which is where this discussion starts... :)
16:20 * MadcapJake notices this topic is quite the bikeshedding haven :)
16:21 geekosaur ...expressiveness. does it show I just woke from a nap? >.>
16:21 MadcapJake still recovering from excess levels of sleepitudinousness? ;)
16:22 pmurias nine_: I'm not really sure there is such a thing as a javascript world/community ;)
16:23 MadcapJake pmurias: really? Not understanding the winky face there.
16:24 geekosaur multiple communities, each with its own notions of how everything fits together? (and likely each one believing it is normative...)
16:24 MadcapJake largely I'd say the communities hinge around bower/npm/requirejs
16:25 pmurias with something like perl 5 there is a set of unifying standards (using TAP, having a way to use docs)
16:25 pmurias MadcapJake: node.js seems to be a community
16:25 jnthn nine_: On mmap and JVM< seems https://docs.oracle.com/javase/7/docs/api/java/nio/channels/FileChannel.html#map(java.nio.channels.FileChannel.MapMode,%20long,%20long) is the (or a) API
16:25 MadcapJake TAP is standard for pretty much the entire js community
16:25 jnthn nine_: So may want to consider that into the nqp:: op API we want
16:25 nine_ They do have in common that they show underwhelming levels of competence. Just like with not understanding what a compiler is and feeling the need for creating a redundant word like "transpiler", 30 years after source-to-source compilation has been introduced
16:26 geekosaur um, they borrowed that word
16:26 MadcapJake pmurias: npm is the node.js community I say npm though because it's a central authority for node.js packaging, downloading, authoring etc. largely any authorship/module-management tool typically becomes the foundation for community interaction
16:26 geekosaur "transpiler" was intruduced when a source-to-source translator went commercial and wanted to highlight its differences
16:26 pmurias nine_: is a square a redundant word compared to a rectangle?
16:27 nine_ pmurias: a square has a very precise definition.
16:27 nine_ But if we want to continue the bikeshed, we should really take it over to #perl6
16:27 MadcapJake nine_: I don't doubt that it's largely borne out of lack of knowledge of the system, but that doesn't necessarily invalidate their competency in programming
16:27 pmurias nine_: ok
16:27 geekosaur (the specific one I'm thinking of also emphasized the write-once-run-anywhere that Java later made its hallmark. it didn't work back then either >.> )
16:28 nine_ jnthn: do you see a general need for an mmap op? If not, I'll probably go with the loadbytecodefh op idea that I mentioned.
16:29 ilmari joined #p6dev
16:31 [Coke] [NYI] and [TODO] seem redundant (rt subject tags). which should we keep?
16:32 nine_ Isn't every ticket kind of TODO?
16:35 [Coke] as compared to a BUG
16:35 [Coke] it's a "we haven't even started on this", not "there is a problem that needs fixing"
16:36 [Coke] e.g. the type 'rat' is mentioned in the syn. but it's never been implemented yet, so TODO/NYI, vs. "I used rat and it's broken"
16:36 [Coke] m: my rat $a;
16:36 camelia rakudo-moar 9c8989: OUTPUT«===SORRY!===␤Type 'rat' is not declared. Did you mean 'Rat'?␤at /tmp/lbsYI20lfm:1␤------> my rat⏏ $a;␤Malformed my␤at /tmp/lbsYI20lfm:1␤------> my⏏ rat $a;␤␤»
16:37 ugexe thats how i've always thought of it. NYI being something you could probably find a code example for in the design, and TODO being a more general concept of something to add
16:37 [Coke] ugexe: no, that's RFC. :)
16:38 [Coke] ah. we have a ton of "NYI"s that are not spelled [NYI]. I'll go with NYI.
16:38 * ugexe tagging intensifies
16:39 [Coke] but yes, NYI and RFC can be conflated at this point, because we're post christmas. the syn aren't what they used to be.
16:44 geekosaur Id go with that, yes
16:45 geekosaur I would classify NYI as spec and TODO as not-spec (e.g. optimizing how something is done while keeping it to spec is TODO, as is something not part of the spec like how rakudo maps perl6 to nqp ops) in general though
16:54 [Coke] geekosaur: that's fair. but there's also [PERF], btw. :)
16:55 [Coke] updated a few tickets: RT: 1285; CONC: 6; GLR: 6; JVM: 69; LHF: 2; LTA: 68; NYI: 27; OSX: 3; PERF: 15; POD: 3; PRECOMP: 3; RFC: 16; SEGV: 22; STAR: 1; TESTNEEDED: 21; TODO: 10; UNI: 5; WEIRD: 2
16:59 [Coke] ... what would a "rat" or "complex" type look like, anyway? we could use more compact storage, but we'd still to box it all the time; not like an int where we can at least add something to it.
17:47 [Coke] jnthn: is there still a place for "rat" and "complex" vs. their uppercase variants?
17:52 jnthn [Coke]: I'd say so, though I don't see them arriving in the short term
18:01 [Coke] that's fine, just trying to find tickets that can be rejected.
18:02 jnthn [Coke]++
18:05 tomboy64 joined #p6dev
18:49 dalek rakudo/precomp-store-redesign: 9a71e40 | niner++ | src/core/CompUnit/ (3 files):
18:49 dalek rakudo/precomp-store-redesign: Give the VM back the chance to mmap the bytecode file
18:49 dalek rakudo/precomp-store-redesign:
18:49 dalek rakudo/precomp-store-redesign: We use the new loadbytecodefh op to pass the open file handle to the VM for
18:49 dalek rakudo/precomp-store-redesign: loading the bytecode. Should reduce our memory footprint to the levels before
18:49 dalek rakudo/precomp-store-redesign: the bytecode/dependency info merge. This also brings back the file name to the
18:49 dalek rakudo/precomp-store-redesign: VM's compunit.
18:49 dalek rakudo/precomp-store-redesign: review: https://github.com/rakudo/rakudo/commit/9a71e40831
18:50 nine And it even passes all spectests :)
19:02 sno joined #p6dev
20:42 sno joined #p6dev
20:53 sortiz joined #p6dev
21:00 dalek rakudo/precomp-store-redesign: ec12fb1 | niner++ | src/core/CompUnit/Precompilation (2 files):
21:00 dalek rakudo/precomp-store-redesign: Move assembling the precomp file into the PrecompilationStore
21:00 dalek rakudo/precomp-store-redesign:
21:00 dalek rakudo/precomp-store-redesign: This makes PrecompilationRepository::Default less dependent on a certain store
21:00 dalek rakudo/precomp-store-redesign: layout. It also brings serialization and deserialization code for
21:00 dalek rakudo/precomp-store-redesign: PrecompilationDependencys closer together.
21:00 dalek rakudo/precomp-store-redesign: review: https://github.com/rakudo/rakudo/commit/ec12fb1924
21:07 ZoffixWin left #p6dev

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