Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • 'cuz what the world really needed was yet another port of the most basic, procedural, declare-variables part of Perl 6 to yet another VM.

    • Well, all three backends of Pugs contains closures and object model support.

      The fourth backend, namely the Parrot one, indeed lacks in those features, and I'm sorry I haven't been been able to keep up with that backend.

      • I haven't been been able to keep up with that backend.

        I find it interesting to speculate where any single backend might be today if not for all of the duplicate work poured into all of the others.

        • But that is as feasible as having Guido, Matz and Larry working on one single language. :-)

          That is, fglock++ wouldn't find it fun to hack the Haskell backend; neither would I have as much fun hacking the JS1 backend as iblech++, who probably wouldn't have as much fun hacking on the Perl5 backend...

          • I would find it highly fun to have a usable, fairly complete Perl 6. I don't think I'm so alone among most of the other Perl programmers who are not you, fglock, and iblech.

            It's nice that you're having fun, I suppose. Meanwhile, if it's not too much of a downer, would you mind finishing something? PIL or PIL^2 or whatever it is now would be nice. As I mentioned over a year ago, I was willing to work on a Parrot backend for Pugs if someone would have told me what it needed from Parrot.

            • by audreyt (6654) on 2006.11.08 6:41 (#51506) Journal
              Well, if you take the current PIL and emit to Parrot, as we've done nearly a year ago, that is sufficient to get you closures, object model, and more. Chip knew exactly what's needed from Parrot -- a stable API for namespaces, modules, calling convention, object construction and introspection, is all we need.

              If you look at PIL2JS, which is written in Perl 5, or even the now-bitrotten-by-Parrot-API-change PIL->PIR emitter written in Haskell, and fill in the bits to emit modern PIR, then that's more than enough to get a usable, fairly complete Perl 6 that corresponds to the 6.28.0 milestone.

              So you don't need to wait for another intermediate language other than the existing PIL1 -- the idea is that each milestone is a complete sublanguage by itself, and we won't e.g. tackle the typed intermediate language until 6.2831.

              There is a very good reason to that; the design space is large, and the spec does not help as much for the more fuzzy parts of the language. For the past year we've been collapsing the hand-wave function of the calling convention (6.2) and object model (6.28), and there is a very comprehensive model for both now in the form of MO/Moose, which has just been ported to the Haskell runtime.

              However, if you expect us to collapse the design of intermediate languages for all the other milestones once, then I'm afraid it's beyond my ability.

              In other words: We've finished 6.2.0 which is a sublanguage of Perl 6, as 6.28.0 will be. We will not finish the entire Perl 6 before each sublanguage is tested out in the wild and the next milestone is sufficiently collapsed.

              Again, that is the only roadmap I find navigable given my very constrained ability. If you'd like to help, that'd be wonderful, but please don't expect me of something that is clearly beyond my capability.