in reply to Re^4: Backend diversity for Rakudo
in thread Backend diversity for Rakudo
Why?
I'll review the patch today. This is the first I've seen it. With that said, we hope to merge Chandon's GSoC work in the near future.
Update: Good luck convincing the maintainers of almost any other VM to make changes to support a Perl 6 implementation or to speed up a Perl 6 implementation. You're not getting changes in the JVM. You might be able to convince Mono to make specific changes. I'm not sure the DLR is an appropriate target; I don't know if it has sufficient low-level support for necessary features.
Citation needed.
"Any runtime for Perl 6 is going to end up looking a lot like Parrot." (chromatic, multiple times over the past three years)
You need a virtual machine which can support polymorphic data types, a metamodel with typed undefs, multiple dispatch, continuations, laziness, lexicals, roles, partial application, captures, positional and named calling conventions with defaults, first-class functions, resumable exceptions, lexical encapsulation, and a mutable grammar engine. Did I mention interoperability with other languages such as Perl 5?
You can play the Turing trump and argue that you can implement all of that on an appropriately powerful box running a bootstrapped Forth interpreter as specified circa 1978 and you might be technically correct, but you're going to spend a lot of time writing trampolines to support the pudding layer. People who want to do so are welcome to do so. I'm happy to answer questions about how such a virtual machine might look.
I can also assure you that any runtime for Perl 6 is going to end up looking very much different from the parrot we know today. It will need a garbage collector that doesn't switch off when we switch on threading. It will need a cross-platform JIT compiler. It will need to be installed into paths that contain spaces.
I suppose the question is whether another runtime can create enough trampolines to prop up the as-yet-unported pudding layer sooner than we can fix those bugs in Parrot.
Lots of things have changed in the world of virtual machines since parrot has started to fly.
Indeed, which is the entire purpose of the Lorito project within Parrot.
|
|---|