|Think about Loose Coupling|
Re^2: Your Perl 6 wishlist?by mugwumpjism (Hermit)
|on May 24, 2005 at 07:31 UTC||Need Help??|
One of the great things about pugs development is that when you wish for things, half the time, they've already been done.
Let's examine your post in a constructive fashion and try to extract from it wishlist items that he can use to effectively enhance the project, which is what autrijus was looking for.
This is exactly what pugs was built to achieve; after all, most of Perl 6 syntax has already been defined in the Apocalypse and Synopsis documents on dev.perl6.org. You can write Perl 6 programs today, and so long as you're not using any of the features that are still being "cleaned up, clarified, rationalised and documented", they will continue to work when Perl 6.0.0 is released.
I assume that you couldn't possibly be asking that all new development of language features must stop, or that all new features must release a specified stage before a release could be made with all features marked as "stable". After all, even Perl 5.8.6 has many features labeled as "experimental".
So the first one can be crossed off!
Perhaps you missed the part where Mandelbrot demo surpassed Perl 5 performance via parrot ?
This is great; you'd like some indication, which has already been given, so this one can be checked off.
This point refers to things that happened in the past, so sadly regardless of whether or not it is true or how much everyone would desired it to be different, it cannot be so.
Unless, that is, you can build a time machine.
Perhaps you would like to clarify this point, as myself and several others are not quite sure what you mean. Maybe we are ourselves missing some historical context.
The good news is that we have already thought of these virtualised requirements from very early days! Perl 6 has been designed and built with a high level of independance at each level. This means that your statement "the runtime library for Perl6" is actually a junction that refers to any(@perl6_runtimes).
Several people seem to have the idea that Perl 6 == Parrot. Not at all, parrot is just a virtual machine that was started around the same time, with providing a good platform for Perl 6 in mind. We have started from the bottom up with parrot, and the top down with Pugs. This has proven to be successful, as we have a prototype rules engine called PGE which is written in PIR!
So, Parrot might be written in C and this might not be cross-platform enough for you. But we can also go straight to Haskell, which is a self-hosting compiler and not a "mid-1980's standard". Also, we can target IMC, which you could in principal write a compiler to go to any target language or virtual machine from.
So this means we can target:
Again, we have found that there is a wishlist item which is already fulfilled! Hooray!
I'm not sure if you're asking for tests that are expected to fail to be run anyway. Actually in the Pugs code base, this happens anyway, and unexpected success is reported as such. So another item that can be crossed off! Even though, I don't think there are any such tests in that state in Pugs at the moment.
In the parrot run-time, these tests are not bypassed, their failures are noted and documented during development so that others porting to the platform may come along later and go straight to them. The test suite correctly notes that the tests are expected to fail, and does not run them. So they are not simply bypassed! In fact, it makes a good way to track the progress of porting to those platforms.
OK, so out of five points we crossed off four and need a time machine to change the past for the last one!
Thanks for your input!