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