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 17 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
03:05 El_Che joined 04:04 El_Che joined 07:32 FROGGS joined 07:54 ugexe joined 10:32 hankache joined 11:06 hankache joined 12:22 sufrostico joined 12:59 sufrostico joined 14:08 hankache joined 15:50 sufrostico joined 16:23 sjn joined 17:28 sufrostico joined 18:07 Kassandry joined
ugexe `method !add-short-name` should not be called if a dist is already installed and ?$force. i dont know if the best way is to just skip it, or to still look for its existence in the short-id file first 18:44
nine Can you think of other ways in which duplicate entries could end up in the short/ files? 19:03
ugexe only if an uninstall did not goes as planned (deleting everything but the short-id for some reason) 19:12
such that the files don't exist to require :force, but the short-id artifacts still remain in a file 19:13
might be small enough to just `spurt: unique(|$file.IO.lines, $id)` 19:18
nine FWIW we already use .unique when reading those files, so not many cycles are wasted 19:24
So I think time is better spent on turning those files into directories as that will also solve this issue 19:26
We just have to find a good plan for upgrading repositories. 19:27
ugexe ive been using `$dist.id\\0$directory\\n` and waiting for some asshole to use \\n in their directory name 19:28
nine I fear we'll have to carry the code to read the old repository format forever as the only universal safe time to upgrade a repo that comes to my mind is on installation of a new module. 19:30
ugexe er, .Str, not .id (so i can run `xxx-matcher` against the Str)
can the repo format not be upgraded during a rakudo upgrade somehow? 19:32
19:33 perlpilot joined
nine The perl, site and vendor repos yes. But we don't know where all the user repos in the home directories are and could not even guess at user defined repositories. 19:33
I'm not sure if someone has discovered how to even use a completely custom repo, but it's possible.
ugexe ah, i didnt know non ::Installable repos used the format
nine The repo in ~/.perl6 is a Repository::Installation: "inst#$home/.perl6/$ver" 19:35
And you can '-Iinst#/tmp/foo/bar' for a completely custom Repository::Installation
ugexe yeah, but it still needs something to early load 19:36
otherwise a BEGIN from some module can fire bfore your CUR's BEGIN for registering itself
nine No, those are just CompUnit::Repository::Installation objects from the setting. They are loaded before any user code and set up by CompUnit::RepositoryRegistry when initializing $*REPO 19:37
ugexe is it possible for such a CUR to `use` modules? as in, will it load the `use` target or the CUR first? 19:39
nine I don't understand your question 19:40
ugexe you say the CUR initialization happens before any user code. if the user code is a module in the custom CUR `use Github::API;` can it lookup Github::API even though $*REPO hasnt been fully initialized? (or i would think its not initialized, as its still setting up the custom CUR) 19:42
so a Custom CUR wants to `use` a module when $REPOs is initialized. will it be able to access that module, which (i assume) needs $*REPOs to locate/use? 19:44
(assume the needed module is in CUR::Installation, not the custom CUR itself) 19:46
i would guess 1 of 2 things: it works, because CUR::Installation gets loaded first and any CUR loaded after it will have access to any $*REPOs before it (even if $*REPOs has not finished loading *all* CURs) or 2: it does not work because $*REPOs needs to load all CUR before it can be used to access modules 19:50
19:51 patrickz joined
nine Well custom Repository classes are a bit of a challenge still as $*REPO must already be set up to even load the module. And once you loaded the module you may no longer change the used PrecompilationRepository. 19:52
ugexe ah yes. this is what i mean by pre-load. some early stage/phase to handle that (not that i have any idea how) 19:53
nine Also we don't have a way to register the repository type prefixes with the RepositoryRegistry yet. We would need this to be able to correctly serialize the $*REPO.repo-chain to pass it on to the precompilation process.
19:53 FROGGS joined
nine Both issues may have the same answer: define a directory where a custom repo implementations can be dropped and automatically loaded by rakudo 19:54
ugexe heh, i proposed that a long long time ago 19:55
nine So it's probably no bad idea at all :) 19:56
ugexe i say that because i totally forgot about that
`perl6 -C /usr/lib/CloudPan.pm -I cloud#cloudpan.org/6pan` # from the lizmat gist; perhaps this could allow setting such a location on the fly 19:59
20:07 cognominal_ joined, perlpilot_ joined
ugexe the bin wrapper needs some rethought... looks like it might shift off the wrong args, as well as possibly stealing the actual scripts :$name :$ver arguments (if any): github.com/rakudo/rakudo/blob/nom/...pm#L39-L42 20:09
20:09 El_Che_ joined 20:10 FROGGS_ joined 20:12 nine joined 20:13 camelia joined
nine Aah...now it would be great if we had figured out what exactly :auth and :version may look like. because that would be the perfect contents of the short/[sha-of-short-name]/ files. 20:14
Ah, keep it simple: three lines in those files with version, auth and api otherwise unescaped 20:16
ugexe so disallow \\n in auth/ver/api? 20:18
nine Any objections? 20:19
ugexe no, i would prefer if we established some disallowed values 20:20
nine Banning \\n seems like the no-brainer there.
ugexe if \\n is encountered should it just die, or be treated literlly? 20:38
20:42 sjn_ joined 20:47 sufrostico joined 21:32 sufrostico joined 21:38 Coke__ joined