Parrot 1.0.0 Released 120
outZider writes "Parrot 1.0.0 was released last night! The release of Parrot 1.0 provides the first "stable" release to developers, with a supportable, stable API for language developers to build from. For those who don't know, Parrot is a virtual machine for dynamic languages like Perl, PHP, Python, and Ruby, and is best known as the virtual machine for Rakudo, the reference implementation of Perl 6."
From the Release Announcement (Score:0, Insightful)
Did Bono take time of from being a pompous narcisist to contribute to the project? What other reason is there for this inane drivel being reproduced in the release announcement?
At least it's text only and we were spared a blast of bland, derivative corporate rock. I stopped reading after "U2", "Walk On" -- "Fuck Off" more like!
Re:Perl 6 reference implementation (Score:4, Insightful)
Surprisingly. The idea is to do a full language specification, so there can be many implementations of a language, similar to how Java (theoretically) works. This is also why there is an absolutely huge, yet incomplete, test suite. More tests are passing weekly, but more tests are being generated weekly.
Re:From the Release Announcement (Score:2, Insightful)
Tolkein didn't write a line of Perl 5 either, yet Larry quotes him in his release announcements. Epigraphs are long-established literary traditions.
Re:Compiler for Perl? (Score:5, Insightful)
Perl 5 isn't really bytecode at all. It basically just walks the parse tree directly.
Perl 6/Parrot is bytecode just as those from Python or Java have come to expect. Perl 5 could be reimplemented this way, but nobody seems to want to bother.
If your goal is to obfuscate your code to prevent people from copying it, please give up [perlmonks.org].
Re:VM question (Score:3, Insightful)
[Citation needed]
So, any Jython/IronPython or JRuby/IronRuby people around to share their insights?
Re:VM question (Score:1, Insightful)
How's TurboVM different from LLVM, which I believe has the same goals?
Re:I can't believe it! (Score:1, Insightful)
The paper is a case for interpreted register virtual machines, but it only makes a passing reference to virtual machines with just-in-time compilers.
Re:I can't believe it! (Score:1, Insightful)
Swapping. The Windows VMM is extremely aggressive, swapping out any memory that hasn't been accessed recently, even if that memory isn't needed by another program. Unfortunately, this plays out badly when the garbage collector comes along and tries to scan the heap. The result is a lot of thrashing.
Linux doesn't have nearly the same difficulties with Java "lurching" as Windows does, because the Linux VMM is a bit more liberal in letting memory hang around. (Though Eclipse is likely to be a bad test case. The SWT framework isn't as optimized on Linux as it is on Windows. Try running Netbeans on both and see the difference.)
If you think about it, there's no conceivable way that slower CPU execution can lead to long, intermittent pauses of the type you describe. Poor Virtual Memory Managers, however, are an exact fit.
Windows VMM has been improperly tuned for years now. Microsoft has not recognized that modern PCs have a LOT more memory, leading to excess swapping. Vista supposedly makes an effort to fix this issue, though I have not personally tested it.