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 9 September 2016.
01:25 FROGGS joined 05:31 llfourn_ joined 07:40 domidumont joined 07:45 domidumont joined 08:11 leont__ joined 08:56 smls joined
smls It looks like a recent Rakudo revision broke the automatic updating of precomp when an included module has changed. 08:57
I have to manually `rm -r lib/.precomp` now every time I make a change in a module.
Is that intended?
"recent" meaning, that it wasn't like that with my Rakudo git build from a week ago 08:58
nine smls: can you bisect it? 09:51
smls: It's certainly not intentional
smls ok, I'll try to bisect later today 09:54
nine ++smls 09:56
11:56 smls joined 12:13 domidumont joined
smls nine: Bisect revealed f55e113290a3a931c7960fb404cdb012872e642c as the first bad commit. 12:14
github.com/rakudo/rakudo/commit/f5...12872e642c 12:15
12:19 FROGGS joined 13:31 edehont joined 15:00 domidumont joined
nine smls: thanks! Reverted that commit as I now clearly see why it was wrong. 15:42
mst bah, asked in the wrong channel there
nine: ok, so, it occurs to me that you could have a per-CUR last-modified-anything stamp file 15:43
which might be a nice balance
nine $*REPO.id is calculated from the checksums of the contents of all repos. And we have the .repo-id file accompanying each precomp file with the $*REPO.id at the time we last checked its dependencies. Just have to use that to make the timestap check conditional. 15:47
mst right 15:50
nine Surprisingly, calculating the sha1 of all files in a lib directory has not even shown up as problematic in the profiles so far. 15:51
Simply checking each precomp file's modification timestamp against the source's is more costly. 15:52
mst that may turn out to be rakudo doing more stat()s than it has to or something 15:53
nine Nah I think despite timotimo's speedups, it's still mostly the canonicalizing of paths at every other op. 15:54
mst ahh
nine Also for example all the stat ops absolutize the path first and I have no idea why. It works quite well without. 15:55
mst ugh
nine: ok, so, we can't make Inline-Perl6 *require* Alien::Rakudo, I guess 16:03
hrmf
the trouble with devrels being unindexed is I can't easily use devrel chianing I don't think
mm
nine mst: why can't we? 16:04
mst cuz people might've installed rakudo themselves
and then avar already did a booking-private cpan dist of star
(that "star is an example of how to make a rakudo distribution" thing is going so well ...) 16:05
nine I thought the solution to that is checking for a perl6-m in Makefile.PL and add Alien::Rakudo to REQREQ_PM if we don't find one? 16:07
mst yes 16:09
well, actually, 'add Alien::Rakudo and Alien::Rakudo::Inline::Perl5'
gaah 16:17
I'm only about 3/4 awake
smls nine: I can confirm that precomp updating works fine again with nom. 16:24
mst nine: basically I'm going to need to put your old build logic back for the moment as well 17:07
er, fuck, I remember what the problem was 17:08
we need a perl6-m location during freaking Makefile.PL time
mst deadlocks on a chicken/egg problem
nine Ah, yeah, because of the .h file 17:25
mst nine: actually 18:08
hm 18:09
so, I think really the logic is
"if you already found a perl6, and it's -not- an Alien::Rakudo one, go with that"
"otherwise, add the A::R dep, and inject some crap into the Makefile to generate Perl6.h at make time"
nine: that sound sanish? 18:15
18:15 FROGGS joined
nine Using make to....make files. A radical concept :) 18:16
mst yeees 18:17
well, it certainly was to the inventor of Module::Build
nine: somehow it feels slightly wrong to defer generating that .h file past configure 18:32
OTOH I can't see any reason it wouldn't *work*
18:47 domidumont joined
ugexe fits right in with Build.pm then s/class Build is Panda::Builder {/class Build { method isa($what) { return True of $what.^name eq 'Panda::Builder'; callsame() } / && s/use Panda(?:\\:\\:\\w+)//g 19:37