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 28 July 2017.
mspo so can I open a feature request or something? 01:10
01:53 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
04:47 deep-book-gk_ joined, deep-book-gk_ left
nine mspo: there's no way yet, but it clearly would be nice if the compiler id was more stable. So either we change it to just hash all the necessary bits or at least give you a way to take over responsibility for managing this id. 06:18
stmuk Do any projects/distros currently package perl 6 modules? Probably not 07:46
github.com/ugexe/zef/issues/117 looks potentially useful 07:52
nine stmuk: there's an perl6-Inline-Perl5 package for openSUSE 07:55
Even referenced in that ticket :)
stmuk I should have guessed!
your link is 404 07:56
google cache has the spec file at least 07:59
nine This link? build.opensuse.org/package/view_fi...c?expand=1 08:01
Works here
stmuk the broken version (in the GH thread) has parrot in it. 08:04
nine The working link is in the very last comment
devel:languages:parrot got renamed to devel:languages:perl6 in the mean time (for obvious reasons) 08:05
stmuk ah .. google is also finding the broken link still (probably temp error)
nine This is the official build service project: build.opensuse.org/project/show/de...ages:perl6 08:06
stmuk hmmm maybe R* should use install-perl6-dist to install modules rather than zef 08:12
nine It's certainly a much smaller cannon and would behave very predictably 08:20
Btw. I do include the --ll-exception patch in the upcoming 2017.07 nqp package, because it'd be ridiculous not to 08:27
stmuk I'm wondering about the sanest way of doing this .. maybe git cherry picking and creating an actual patch for this 08:33
nine It's rather trivial in rpm packages: build.opensuse.org/package/show/ho...:perl6/nqp
stmuk I was thinking for R* that "perl6 -v" should contain some warning of patches 08:38
with maybe the details visible in "perl6 -V" 08:39
11:38 lizmat joined
mspo there are two links in that ticket; the first one is broken and the one at the bottom works 12:31
binary-only package building will be pretty much fine with the changing file names 12:32
rpm might be okay since you can give it a directory and just say "whatever you find here" but I don't know how specific the srpm is about it
in pkgsrc world it's not going to work very well because we have users of binary packages and builders, this is the same with freebsd and openbsd ports at least
and probably gentoo and (maybe?) arch 12:33
I also think debs are a little more prickly about changing anything, especially since they're going for full reproducability and will change mtime and stuff after the fact
so if you're using a checksum of a certain *file* you need to be careful that it doesn't include a timestamp inside of it either 12:34
it would be easiest if there was like an nqp abi number+moar abi number 12:35
nine Would be easiest, but we'd probably forget to bump that all the time :/ 12:36
Ok, seems like the problem is bigger than expected. I just removed the time stamp from the compiler id, installed rakudo and then did a make clean && make install to see if my precomp files from before still work. 13:02
Build explodes with Missing or wrong version of dependency 'gen/moar/BOOTSTRAP.nqp' (from '/home/nine/rakudo/lib/CompUnit/Repository/Staging.pm (CompUnit::Repository::Staging)')
Oh, looks like there's still some timestamp somewhere 13:12
But.... nqp actually has a --stable-sc option which removes this timestamp. With that my precomp files actually survived a rakudo recompile :) 13:26
gist.github.com/niner/8d804672f759...d32dcc4eb7 is the patch, which might be a beginning. 13:27
We'd still need to factor in the identities of all related sources when calculating the compiler id, i.e. CORE.settings id must include all its dependencies like Perl6::Compiler, Perl6::ModuleLoader, Perl6::Grammer, etc. 13:28
Also we still check the mtime in CompUnit::PrecompilationRepository::load, but that shouldn't be necessary anymore as we also check the source's checksum. 13:29
Oh, no, that's actually not an issue anymore. We only check mtime if we're passed a :$since and none of the callers do. It's just there for backwards compatibility. 13:32
There actually seems to be a difference in the precomp file for NativeCall::Types, though nothing easily recognizable. Could even be just a different order of slots of a serialized hash. 13:37
No, probably not. The difference is just 8 32 bit numbers and 2 64 bit numbers. 13:43
Don't look like time stamps either 13:44
According to jnthn++ these may be padding bytes that aren't zeroed. A known issue that has been ignored so far as they are harmless. 13:52
ugexe how would someone encounter this backwards compat code path? I assume its when upgrading rakudo from one specific release to another? 15:46
nine IIRC p6doc uses/used it 15:52
ugexe because it manually precomps? 15:53
it'd probably be trivial for CURI to handle that like bin scripts 15:54
mspo maybe I should learn more about nqp 17:22
nine Trying to find why some bytes change at random in precomp files is....non trivial 17:40
mspo well pkgsrc would be fine with the names not changing :) 17:47
debian would be less happy about it, though
nine Seems like I made it though :) 18:33
ugexe there is another problem with .scripts - it can't filter by distribution name. it even has a required named param :$name that doesn't get used, but there is no way to use it anyway. i.e. it only allows 1 distribution to provide a specific bin/script 22:16
i mean that behavior is probably fine, but the api around it would lead you to believe its not 23:01