Web lists-archives.com

Permanent transition tracker for Perl6 ? (was: Re: Packaging of libraries with unstable ABI (D, Rust, Go, ...))




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