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

