Bug#801498: Using rakudo-star tarball ...

Patrick R. Michaud pmichaud at pobox.com
Fri Oct 23 17:05:34 UTC 2015


On Fri, Oct 23, 2015 at 04:09:45PM +0200, gregor herrmann wrote:
> And that's only thinking-out-aloud; one thing that's not clear to me
> is how "core" the modules are; and/or what perl6 actually "is" (is it
> rakudo-star? or rakudo plus any VM? or rakudo plus modules and
> moarvm?)

I think I can answer this to some extent.  "Perl 6" is a language, 
much like "C", "Java", or "JavaScript".  Just as we would not confuse 
"gcc" with the C programming language, or V8 with JavaScript, one 
should not treat "rakudo" and "Perl 6" as being equivalent.  

While Rakudo is currently the leading implementation of Perl 6, it's
not the only one, nor is it intended to be.  There is no "official"
implementation of Perl 6.  Yes, this approach is (intentionally) 
different from Perl 5, which has one prime implementation that 
essentially defines the language and everything about Perl 5 (e.g.
modules) that is to be considered "core".

To the Perl 6 developers, asking "what perl6 actually 'is'" is somewhat
like asking what a "Linux OS" actually "is":  "How core are the .deb and 
.rpm packages?  Is it 'Debian'?  Or a kernel plus drivers?  Or a kernel 
plus modules and amd64 drivers?"

"Perl 6" is a language specification.  "Rakudo" is a compiler
implementation of that language specification.  "Rakudo Star" is a 
bundling (but not the "official" or "only" possible bundling) of 
the Rakudo compiler and some modules that some people think are a 
useful grouping for programming in the Perl 6 language.

A rough analogy:  "Unix" is a family of operating systems.  "Linux"
is a kernel implementation of core features needed for a Unix-ish
environment.  "Debian" is a bundling of a Linux kernel and other 
software that people think are a useful grouping for working in
a Unix-like environment.  "RedHat" and "Ubuntu" and "Slackware"
are other such bundlings.

In short, if you're looking for something that defines the exact
and "official" set of programs and/or modules that make up "Perl 6"
or "perl6", there isn't going to be one.  You may as well be 
asking for the exact set of programs and modules that make up 
"official" Unix or Linux.

To return to the question of "What should be the basis for (Debian's)
packaging of Perl 6?"... well, the answers just given in this thread
are reasonable.  It's completely reasonable to say "We'll just package
up Rakudo Star, and let the upstream folks decide what makes for a 
good Perl 6 environment."  It's also reasonable to do things similar 
to the way Perl 5 is packaged in Debian, where installing "Perl" 
(Perl 5) generally ends up loading multiple .deb packages ranging 
from "perl-base" and "perl-modules" to others with "-perl" in the
name that encapsulate popular CPAN modules.

In Rakudo's case, we fully expect that the many Linux (and other OS)
packagers are going to impose their own requirements and expectations
on how "Perl 6" should be packaged in their distributions, so we don't 
prescribe exactly how that is to happen.  Some distros will say 
"we want our Perl 6 to support multiple VM backends", others may 
say "we support only MoarVM" or "we only support JVM".  Some will 
want to have everything Perl6-related in one tidy package, others 
will demand separate packages for each of "rakudo", "nqp", "moarvm", 
modules, the libraries they depend on, etc.  Personally, I believe this 
latter separate packages approach will become more likely over time 
if (as I hope) people start using NQP and MoarVM/JVM/Parrot/other to 
implement languages and utilities other than Perl 6.  But for the 
time being I think it also makes perfect sense for now for Debian 
to have a single package that encapsulates "Rakudo Star" or whatever 
the current "best practice" happens to be for Perl 6.

I hope this helps clarify things a bit.  

Pm



More information about the Pkg-rakudo-devel mailing list