Discussion area for the Perl 6 toolchain | github.com/perl6/toolchain-bikeshed
Set by moderator on 7 January 2016.
01:38 flussence joined 02:48 ilbot3 joined
moderator Discussion area for the Perl 6 toolchain | github.com/perl6/toolchain-bikeshed
03:32 hoelzro joined 05:16 TimToady joined 05:23 b2gills joined 05:36 Zoffix joined 07:21 FROGGS joined
nine Maybe we should only use the $HOME repo if it actually contains anything. 07:54
Without the <home> repo, we _can_ use the precomp files from <site>. 07:55
Precomp files for distro packages can be created by a post-install script and will be store in <site>'s precomp store, so the <vendor> path only contains files managed by the package manager. 07:56
We don't need the <perl> repository at all. It only contains the CORE distro. We can just as well install that into <site>, or if rakudo is compiled for a distro package into <vendor>. 07:57
With these changes, a non-developer user of Perl 6 will gain all benefits of distro-packages and system wide installation of modules. 07:58
Developers (e.g. people using -Ilib or installing modules into <home>) will still have to wait for recompilation of installed modules but of course only on first load after installation of a module. 08:00
08:38 moritz joined
moritz IRC logs work now 08:39
irclog.perlgeek.de/perl6-toolchain/today
FROGGS moritz++ 08:45
nine excellent! 08:54
masak moritz++ 10:40
10:45 FROGGS joined 11:26 leont joined
llfourn it seems that if you do perl6 -Ilib1 -Ilib2 that it will precomp lib2s stuff into to lib1's .precomp 12:04
is this a bug or is that intended?
leont That sounds like a but! 12:06
bug
llfourn I think this also only started happening recently
like yesterday
ill see if I can figure out when then if not RT 12:07
nine llfourn: that's intended 12:09
and has been so since curli was merged
leont What's the rationale? 12:10
llfourn nine: ah k thanks. Maybe this is the first time I've tried two -Is together :)
leont lib2 may use lib1, so can't be used without it?
nine We always use the top of the chain's ($*REPO itself) precomp repository. Because when you use lib "lib", lib/ may contain a newer version of a dependency of a module you load. Using the head of the chain's precomp store forces it to re-compile the module and resolve all dependencies again.
llfourn I think I understand. So the first -I becomes the head. 12:12
nine That's the reason for the $HOME repo preventing uns from using precomp files generated during installation which I described this morning.
The reasoning was also written down by jnthn and can be found in docs/module_management.md 12:13
llfourn I will study this further. Cheers. 12:14
nine Another one of my random thoughts: maybe we want to ship with a very basic installer script that can do the equivalent of "panda install ." (without dependency installation though). This could simplify panda's bootstrap and testing of installation issues.
llfourn panda install . # ? 12:15
leont That does sound useful
And would probably make sysadmins happy too
nine Would presumably also be used by module packagers. 12:16
unpack source tree, move there, call intall-package.pl6 and package the installed files
"intall-package.pl6" so it's a somewhat unique name ;) 12:17
leont doesn't see the point of adding .pl6 to the end in this kind of situation
install-perl6-package or some such looks better to my eyes 12:18
nine Yeah, "intall-package" should be unique enough ;)
An issue with this is that all Build.pm files directly use Panda's modules. But maybe this would be a good chance to define a module manager independent interface that panda can use, too. 12:21
leont Yeah, Build.pm must die 12:22
I am planning to port my next generation p5 build tool to p6 12:23
The really short summary would be "a build graph like make, but without using shell as its foundation"
And with an internal state that can be serialized to JSON and back without data loss 12:26
(eat that Makefile!)
12:28 patrickz joined
nine sooo....how would that be invoked? 12:33
leont That is the tricky bit… 12:39
Does p6 have an equivalent of «do $filename»? 12:40
nine EVALFILE 12:41
leont rightfull all-caps :-)
nine But for some odd reason you don't need to use MONKEY-SEE-NO-EVAL; to use it 12:42
leont Actually, a DSL should be easy enough, and not needing EVALFILE is probably better in the long run 13:27
leont goes implementing/porting 13:29
mst nine: well, also, ~ may be on a disposable file system or not writeable at all, is where precomp in system packages seems to really matter to me 16:53
moritz: ta
17:41 llfourn joined
TimToady I'll restate my thesis here, in case anyone wants to discuss it 17:50
the basic problem is that devs want to underspecify identity by using location as a proxy, and then kick up a fuss when we need to establish actual identity in a location-independent fashion
and most of our implementation decisions depend crucially on identity 17:51
that is all :) 17:52
mst yes. that's pretty much always the tension with installers.
TimToady was just thinking that if local::lib cheats on identity, it's likely to get caught cheating 17:54
mst the CUR format currently always stores identity 17:56
local::lib for rakudo would, to my mind, basically be an easy way to get the equivalent of -Ifoo except having it add a ::Installation rather than a simple tree CUR to the front
and then you'd install into there as normal 17:57
that seems to me like it'd work fine, with no reason to want to cheat
(I may, of course, be missing something)
TimToady okay, it's just when people get too old to think, they just worry instead :) 17:59
mst that's fine. you can worry about the architectural correctness, I'll worry about the practical applicativity, and hopefully everybody else will do the thinking and save us having to pretend to :D 18:01
TimToady sounds like a plan :D
mst plus, y'know, in general I'd rather say "yes, I've already thought of that" a dozen times than miss one 18:02
around about time eight might make me actually write some stuff up in any case ;)
TimToady I call that the Volleyball Principle: better too many people going for the ball than too few. 18:03
nine mst: you _can_ already do -Iinst#foo 18:15
mst nine: aha, whee 18:16
I'd forgotten about how that got parsed
ugexe seems :ver<> doesnt work inside an EVAL (use XXX:ver<123>), and require seems to ignore it 19:01
19:56 Kassandry joined 20:23 hankache joined 20:59 llfourn joined
nine m: use MONKEY-SEE-NO-EVAL; EVAL "use Test:ver(v6.b);" 21:02
camelia ( no output )
nine This does actually fail locally?
[Coke] fails for me in a recent but not 100% current installed perl6. 21:06
(likes like 2015.12 actual)
*looks
ugexe maybe i misunderstood. i didnt think the v would be neccesary inside :ver 21:09
TimToady parens there, not <> 21:10
so it's just an expression inside, which needs v
ugexe ah. yes it fails for me locally
22:00 llfourn joined
patrickz ugexe: Is your precomp-failure-list still worth to be thrown in? 22:05
ugexe patrickz: no, theyve been fixed or are covered already 22:08
i think the last point, hooks, was getting talked about earlier today (re Build.pm) 22:11
which for those who arent aware, most Build.pm files are written in a way where they have to have panda installed, and out of those most people dont declare their build dependencies because they usually test their install with panda so they dont realize its missing 22:15
gist.github.com/ugexe/afcbbf0c76220c150546 is a hack to workaround this (that also works with panda) 22:16
patrickz So just about time to make zef prominent enough so that people start to care.
ugexe i have to redo the CLI/output, but yea. it does work again
patrickz searches through perl6.org for mentions of panda that should read "panda/zef (in alphabetical order)" 22:17
ugexe: Do you think it's ok for zef to get more attention? If yes I'd do a PR on the website to put zef next to panda in most places. 23:00
nine patrickz: I'd say yes if it works. Otherwise we should fix it up first (and maybe get rid of the panda dependency of so many modules) 23:02
patrickz Ok. I'll hold back then. There are some glitches. On first glance it seems panda is not much better though. 23:05
Both report the precomp filenames as installed files. Which is worthless information wise. Zef reports a precomp file as its own script name in `zef --help` 23:08
`zef install 007` does nothing
No pressure to fix stuff from my side. I'm only testing and don't depend on any fixes. There has been enough pressure on the devs the last few days. 23:14
TimToady thank you for not losing perspective! 23:18