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