|
Fire is step THREE! | github.com/perl6/toolchain-bikeshed | Channel logs: irclog.perlgeek.de/perl6-toolchain/today | useful prior art: metacpan.org/pod/CPAN::Meta::Spec Set by moderator on 14 February 2016. |
|||
|
02:49
ilbot3 joined
|
|||
| moderator | Fire is step THREE! | github.com/perl6/toolchain-bikeshed | Channel logs: irclog.perlgeek.de/perl6-toolchain/today | useful prior art: metacpan.org/pod/CPAN::Meta::Spec | ||
|
02:55
FROGGS_ joined
04:32
TimToady joined
|
|||
| nine | ugexe: commented on your "Fix uninstall" commit. Btw. it would be nice if the commit message mentioned in what way uninstall was broken. | 07:33 | |
|
07:37
FROGGS joined
13:06
sufrostico joined
13:32
perlpilot joined
|
|||
| flussence | autarch: yes, literally "make". Because that'd require three fundamental things: a way of querying the dependencies of a given .pm without running it, a deterministic .pm->.mbc filename mapping, and parallel compilation. | 13:42 | |
| nine | flussence: but the dependencies are recorded in the META6.json | 14:23 | |
| flussence | dependencies between ./lib/A.pm and ./lib/B.pm? | 14:26 | |
| nine | flussence: what do you need those for? | 14:27 | |
| flussence | if I compile those to moarvm bytecode manually (which *used* to work fine, I haven't been able to keep up recently), it has to be done in the right order or they error out | 14:29 | |
| nine | Why would you want to do that manually? | 14:36 | |
| ugexe | nine: the provides hash stored is not the same as the provides meta hash | 14:37 | |
| so when you give a Distribution created from the stored meta file it has provides => 'name' => { 'pm' => { 'file' => xxx, time => xxx } } | |||
| nine | ugexe: oh my, of course, you're right. Then why do I have this <pm pm6>.first(*.so) everywhere? We can get rid of that :) | 14:38 | |
| ugexe | the problem was you seemed to think the last hash with `file => xxx` did not have any other keys, but it does (time) | ||
| nine | Having this pm key in the first place makes no sense | 14:39 | |
| ugexe | there used to be pm key, and a moarvm/jar key | ||
| but, ive said before that i wished the provides structure was not changed | |||
| i.e. going from META6 provides -> CompUnit provides | 14:40 | ||
| nine | We at least need to store the name of the stored file in there | ||
| flussence | nine: I'm trying to preserve a workflow that won't have distro maintainers screaming bloody murder like some of our users have. If perl6 is so far gone into automagical land that it doesn't even make sense to *ask*, then I don't know where to go from here. I may as well give up. | ||
| ugexe | nine: yeah, but modifying the existing structure (or adding values) would be ok | ||
| just not adding new levels of stuff | 14:41 | ||
| if you need new structure, i would hope a different key could be used all together | |||
| nine | flussence: I absolutely want to make distro maintainer's lives easier. Because right now, they're completely screwed. However I'm not sure if that necessitates having the user do those tasks manually. | 14:42 | |
| flussence | is the distro maintainer not a user? | ||
| nine | flussence: what I do know is that before everything else, we have to get rid of those absolute paths in the precomp files and the .deps and .rev-deps files. | ||
| flussence | they're the ones that have to build this stuff, and end users are going to be pissed if their perl6 "binaries" spend half an hour byte-compiling at first run | 14:43 | |
| ugexe | zef used to have parallel precompilation. it just used a grammar + meta provides to find which files appeared to use one another, then created the precomp order | ||
| nine | flussence: yes, but to fix that we have to allow for building in a different directory than the files are going to end up in and with an unpriviledged user. | ||
| flussence: that will make packaging precompiled files at least possible. | 14:44 | ||
| flussence: then we'll have to make rakudo smarter so it will also use those files. | |||
| flussence | right, so there *is* a way forward. that's good. less worried now. | ||
| nine | Just none of this requires Makefiles or manual precompilation. That's why I didn't understand you asking about those. | 14:46 | |
| flussence | never mind, was overthinking | 14:47 | |
| ugexe | nine: should $short-dir.child(nqp::sha1($dist.name)) not really be unlinked? if i understand correctly that file can contain more than 1 value, where each line represents a different ver/auth of $dist.name | 15:11 | |
| it looks like if you have Foo:ver<1> and Foo:ver<2> installed that uninstalling one would delete the short-id file that both would be using (including the still installed version of Foo) | 15:13 | ||
|
15:40
ribasushi joined
17:05
FROGGS joined
17:18
sufrostico joined
|
|||
| nine | ugexe: absolutely correct! | 17:22 | |
| amazing how many things I could screw up in such a short method | 17:23 | ||
|
17:39
Kassandry joined
|
|||
| jdv79 | yeah, 100% declarative dep resolve would be pretty sweet. maybe arbitary code execution can be kept out of that path. | 17:53 | |
| nine | ugexe: actually, we have to remove the dist-id from all short/ files. | 18:15 | |
| Which thanks to Perl 6' awesomeness is just: for $short-dir.dir -> $file { $file.spurt: map("$_\\n", ($file.lines ⊖ $id).keys.sort); } | 18:16 | ||
| ugexe | yeah. although i wonder if `nqp::sha1($dist.name).{$dist.id}` as the file name would be faster to lookup | 18:29 | |
| nine | Hard to say if reading a file with a well known name or listing a directory is faster | 18:30 | |
| ugexe | otherwise you also have to handle unique lines (somehow I ended up with 2 identical $dist.id in a short-id file) | ||
| nine | Moving away from files will also have benefits for packaging modules. Package installation is ideally just dropping some files into some directories. Modifying existing files makes everything complicated. | 18:32 | |
|
18:36
sufrostico joined
19:01
sufrostico joined
|
|||
| jdv79 | what is the change that you all are talking about? | 19:14 | |
| nine | ugexe: github.com/rakudo/rakudo/commit/6c44df46f1 | 19:15 | |
|
19:16
patrickz joined
19:53
hankache joined
20:07
raiph joined
20:36
El_Che joined
|
|||
| El_Che | If someone hasn't seen this post; brian d foy may be trolling a little (the blogpost is categorized in "horror"), but he has a point: www.learningperl6.com/2016/02/06/do...ng-perl-6/ | 20:38 | |
| nine | rakudobrew...again | 21:49 | |
| And the broken idea of needing to install different rakudo builds in parallel | |||
| El_Che | nine: most he writes about perl6 is negative, but this one feel less so | 21:55 | |
| jdv79 | perlbrew is useful for testing and some other cases. | 22:09 | |
| why is the idea broken for 6? | |||
| i agree its annoying to deal with sometimes. | 22:10 | ||
| El_Che | In my use case I am experimenting via a docker image that builds rakudo star and installs my application with "panda install .". The start overhead is extremely low | 22:11 | |
|
23:32
[Coke]_ joined
23:41
TimToady joined
23:45
autarch joined
23:58
sufrostico joined
|
|||