|
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 | |