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.

app-parrot-create weekly report

At this week I've done an API for work with high level language template file. I used the Perl template toolkit to create that file.
These changes is showing on this commits
I've done tests for the respective modules.

The next step is supporting different build and test system on hll template file.
The project is supporting a PIR build system and Perl 5 test system.

GSoC weekly raport.

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++;
-> {
my $sub = BEGIN foo();

we need to be able to save them between compilations.

First inchstone.

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 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 ;)

GSoC weekly report: NCI updates for parrot-libgit2

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.

app-parrot-create weekly report

I'm working according to the schedule

At this week, I've done a web-part of my project. It's consist of
to create a one-pages site using a bootstrap/jquery and to integrate it with Mojolicious framework.

I've done the issue that was a part of this task.

I start to create a project templates. It will base on perl template toolkit
In next week I will plan
- api for work with this type of template file


The Parrot Foundation is accepted for GSOC 2013

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
and project ideas to be collected/edited/reviewed at the "Ideas page".

Parrot threads on the perl6 advent calendar - Day 11

Parrot threads were featured on the perl advent calendar, day 11. Something cool about Perl 6 every day, in December.



Parrot string encodings on the perl6 advent calendar - Day 7

Debugging parrot strings were featured on the perl6 advent calendar, day 7. Something cool about Perl 6 every day, in December.


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.



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.

A new hope

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.

Syndicate content