Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-toolchain, 2017-07-29

| Channels | #perl6-toolchain index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
01:10 mspo so can I open a feature request or something?
01:53 ilbot3 joined #perl6-toolchain
01:53 Topic for #perl6-toolchain is now Fire is step THREE! | https://github.com/perl6/toolchain-bikeshed | Channel logs: http://irclog.perlgeek.de/perl6-toolchain/today | useful prior art: https://metacpan.org/pod/CPAN::Meta::Spec
04:47 deep-book-gk_ joined #perl6-toolchain
04:47 deep-book-gk_ left #perl6-toolchain
06:18 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.
07:46 stmuk Do any projects/distros currently package perl 6 modules? Probably not
07:52 stmuk https://github.com/ugexe/zef/issues/117 looks potentially useful
07:55 nine stmuk: there's an perl6-Inline-Perl5 package for openSUSE
07:55 nine Even referenced in that ticket :)
07:55 stmuk I should have guessed!
07:56 stmuk your link is 404
07:59 stmuk google cache has the spec file at least
08:01 nine This link? https://build.opensuse.org/package/view_file/devel:languages:perl6/perl6-Inline-Perl5/perl6-Inline-Perl5.spec?expand=1
08:01 nine Works here
08:04 stmuk the broken version (in the GH thread) has parrot in it.
08:04 nine The working link is in the very last comment
08:05 nine 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)
08:06 nine This is the official build service project: https://build.opensuse.org/project/show/devel:languages:perl6
08:12 stmuk hmmm maybe R* should use install-perl6-dist to install modules rather than zef
08:20 nine It's certainly a much smaller cannon and would behave very predictably
08:27 nine Btw. I do include the --ll-exception patch in the upcoming 2017.07 nqp package, because it'd be ridiculous not to
08:33 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: https://build.opensuse.org/package/show/home:niner9:branches:devel:languages:perl6/nqp
08:38 stmuk I was thinking for R* that "perl6 -v" should contain some warning of patches
08:39 stmuk with maybe the details visible in "perl6 -V"
11:38 lizmat joined #perl6-toolchain
12:31 mspo there are two links in that ticket; the first one is broken and the one at the bottom works
12:32 mspo binary-only package building will be pretty much fine with the changing file names
12:32 mspo 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
12:32 mspo 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
12:33 mspo and probably gentoo and (maybe?) arch
12:33 mspo 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
12:34 mspo 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:35 mspo it would be easiest if there was like an nqp abi number+moar abi number
12:36 nine Would be easiest, but we'd probably forget to bump that all the time :/
13:02 nine 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 nine 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)')
13:12 nine Oh, looks like there's still some timestamp somewhere
13:26 nine But.... nqp actually has a --stable-sc option which removes this timestamp. With that my precomp files actually survived a rakudo recompile :)
13:27 nine https://gist.github.com/niner/8d804672f7596849a4a5b3d32dcc4eb7 is the patch, which might be a beginning.
13:28 nine 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:29 nine 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:32 nine 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:37 nine 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:43 nine No, probably not. The difference is just 8 32 bit numbers and 2 64 bit numbers.
13:44 nine Don't look like time stamps either
13:52 nine 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.
15:46 ugexe how would someone encounter this backwards compat code path? I assume its when upgrading rakudo from one specific release to another?
15:52 nine IIRC p6doc uses/used it
15:53 ugexe because it manually precomps?
15:54 ugexe it'd probably be trivial for CURI to handle that like bin scripts
17:22 mspo maybe I should learn more about nqp
17:40 nine Trying to find why some bytes change at random in precomp files is....non trivial
17:47 mspo well pkgsrc would be fine with the names not changing :)
17:47 mspo debian would be less happy about it, though
18:33 nine Seems like I made it though :)
22:16 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
23:01 ugexe i mean that behavior is probably fine, but the api around it would lead you to believe its not

| Channels | #perl6-toolchain index | Today | | Search | Google Search | Plain-Text | summary