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

Dominique Dumont dod at debian.org
Wed Jun 14 16:56:11 UTC 2017


Hello

Sorry for the long delay

On Tuesday, 30 May 2017 17:37:44 CEST Ian Jackson wrote:
> ~/.perl6 is a particularly annoying place to put this.  It defeats
> the usual efforts to move this kind of thing to non-backed up storage,
> or whatever.

Good point.

> > Unfortunately, these pre-compiled files are obsolete when a new Perl6
> > (rakudo) compiler is released.
> 
> And does it automatically delete them, ever ?  If not then surely that
> is a bug.

I tend to agree. As far as I understand, this feature also takes care of Perl6 
developers: pre-compiled files can co-exist for several versions of Perl6. This 
may be good for development, but is a pain to manage in Debian

> > is letting daemon write its own pre-compiled file a security risk ?
> 
> Possibly, but the cache area should be by uid not by USER.

uh, I fail to see the distinction... AFAIK, there's a 1-to-1 relation between 
user and uid. What did I miss ?

> > - 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
> 
> Does Perl6 function correctly if these compiled files do not exist,
> and cannot be written ? 

I think so. May be Daniel can confirm.

> If so you can do the compilation
> opportunistically.  Python seems to take this approach.

You mean at run time when a python script is run ? 

If so, how can a script invoked by a user can write a .pyc file owned by root ?

> > 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 ?
> 
> It seems rather poor.

ok. I'll find another solution.

> Can you patch Perl6 to put the precompiled files alongside the
> original source files, the way Python does it ?

I don't think so. A pre-compiled file name is a hash sum made of the file 
content, the rakudo version and maybe some other data that I forgot. Relating 
a perl6 source to the precompiled file is not easy.

> Then you can reuse
> the techniques used by the Python people, maybe.

I'm thinking about pre-compiling at installation time, keep track of the 
written files and remove them at de-installation time. The trick is to take 
care of upgrade, both module upgrade and rakudo upgrade...

All the best

Dominique.
-- 
 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