Parrot is a virtual machine designed to efficiently compile and execute bytecode for dynamic languages. Parrot currently hosts a variety of language implementations in various stages of completion, including Tcl, Javascript, Ruby, Lua, Scheme, PHP, Python, Perl 6, APL, and a .NET bytecode translator. Parrot is not about parrots, though we are rather fond of them for obvious reasons.
Submitted by pmurias on Wed, 06/26/2013 - 15:48
The thing I'm currently working is proper deserialization of closures.
If we create closures at compile time (example in Perl 6 syntax), like:
my $count = 0;
sub foo {
my $id = $count++;
-> {
$id++;
}
}
my $sub = BEGIN foo();
we need to be able to save them between compilations.
Submitted by pmurias on Wed, 06/26/2013 - 15:39
I have started hacking on my GSoC project to create a JavaScript backend for NQP (a Perl 6 dialect), which will be grown into a full one for Rakudo in the future.
Today I have unbitrotted the existing code at https://github.com/pmurias/rakudo-js by handling QAST::Var's with decl set to "static" (variables that don't change at runtime) the same as ones with "var" (normal ones). As such I have completed the first of 15 inchstones ;)
Submitted by sa1 on Wed, 06/26/2013 - 13:18
Hello everyone,
This was my first week of GSoC working on parrot-libgit2. parrot-libgit2 is aimed at providing a low-level PIR binding to libgit2 as well as high-level winxed bindings. The schedule is available here. Duke Leto wrote the initial code a couple of years ago, but since then the code had bitrotted.
Submitted by rurban on Fri, 04/12/2013 - 17:47
dukeleto: Happy to announce that @parrotvm will be mentoring students in #gsoc again this year! If you know awesome CS students, send them to me :)
We need mentors to sign up at
http://www.google-melange.com/gsoc/org/google/gsoc2013/parrot
and project ideas to be collected/edited/reviewed at the "Ideas page".
Submitted by rurban on Sat, 12/08/2012 - 15:07
Debugging parrot strings were featured on the perl6 advent calendar, day 7. Something cool about Perl 6 every day, in December.
See http://perl6advent.wordpress.com/2012/12/07/day-7-mimebase64-on-encoded-strings/.
Shows how to debug into crazy string encoding problems, when you are not sure if the core implementation, the library, the spec or the tests are wrong. It turned out, that the library and the tests were wrong.
Submitted by brrt on Sun, 08/19/2012 - 22:05
Tomorrow is google's appointed 'firm pencils down' date. That seems like a good time to discuss the results of my work on mod_parrot so far.
mod_parrot is, as I have mentioned before, a two-layered system, with one half interfacing with apache (the module) and the other half with the interpreter and the compilers, the 'loader'. There is also a vital third component, the test system called pudding.
Submitted by brrt on Sat, 08/11/2012 - 17:40
This week I finally got arround to giving a new, fresh structure to the mod_parrot module code. I have complained, perhaps not loudly enough, about the various inadequacies of the old codebase, mostly with regards to extensibility. A cleanup was needed. As such, here is a walkthrough of the new structure, also serving as documentation.
Submitted by brrt on Fri, 08/03/2012 - 08:58
I for one am totally for whimsical blog titles, wouldn't you agree? In other news, after a lull of two weeks (codewise at least) I've finally started to work on mod_parrot again. The big (dis)?advantage from not working on code is that you start to think more of what you could do (and should have done), rather than what you have done.
As it turns out, I handle interpreters in a rather confused manner. My goal for the next two weeks is to fix that. First, let me describe what should be done to correctly run a script on an interpreter using mod_parrot:
|
|
|
|