Permanent transition tracker for Perl6 ? (was: Re: Packaging of libraries with unstable ABI (D, Rust, Go, ...))
Dominique Dumont
dod at debian.org
Fri May 26 17:28:51 UTC 2017
On Thursday, 18 May 2017 16:37:58 CEST Matthias Klumpp wrote:
> Unfortunately though, the D language ABI isn't stable, so any future
> compiler update might break the software in weird ways unless all D
> software is recompiled when a new compiler is released.
Perl6 has a similar issue: currently all modules (aka library) are pre-
compiled ar run-time. The pre-compilation result is stored in user's home
directory ( ~/.perl6 ) to speed up the start-up time when a program is
launched.
Unfortunately, these pre-compiled files are obsolete when a new Perl6 (rakudo)
compiler is released.
All in all, I have three choices:
- ship only source in module and let rakudo install pre-compiled files. This
may require user to clean-up ~/.perl6 from time to time. This may cause
problems for daemon written in Perl6 (we're not there yet): e.g. how to clean
up ? is letting daemon write its own pre-compiled file a security risk ?
- pre-compile all module are installation time (like python or emacs). The
main issues are: all modules must be re-compiled in the correct order when
rakudo is upgraded and how to clean up obsolete pre-compiled files. This
requires complex post-install scripts
- like haskell, setup a permanent transition tracker so that Perl6 modules
packages are re-built when needed. pre-compiled files are arch independant to
the number of re-builds does not explode.
The latter is probably the best solution from my point of view.
But a permanent tracker has an impact in the buildd: is this solution
acceptable ?
All the best
--
https://github.com/dod38fr/ -o- http://search.cpan.org/~ddumont/
http://ddumont.wordpress.com/ -o- irc: dod at irc.debian.org
More information about the Pkg-rakudo-devel
mailing list