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.

Compiler work

Puffin pair

Double puffin this week! And that's to (partly) make up for my short 3 day vacation to Scotland, starting tomorrow.


It's So Close, I Can Almost Smell It

Ok, not literally. Though I wonder what code would actually smell like. Burning brain cells, maybe?

Alright, here's the scoop. I'm going to keep things brief as I eagerly want to get back to my adorable little segfaults. :)

Parrot-GMP: More Tests

Nothing terribly exciting to report - progress is continuing as I am writing more and more tests to cover all of the GMP Integer functions. A function is considered covered when there are at least two tests that call that function. I've used Whiteknight++'s Rosella library for both the testing harness and the tests themselves. The harness is written in NQP while the individual test files are written in Winxed. This isn't a big problem since both NQP and Winxed come bundled with Parrot.

CorellaScript : AST and LALR parsing.

In the process of understanding of parse trees to get PIR, I spent some time learning the LALR(1) parsing algorithm which is being used in corellaScript.
Out of the three stages of compiler design, lexical analysing, Parsing, and code generating.
Parsing is the most important one, It is the stage where the token stream generated by lexer is analyzed according to the rules of specified grammar .

GSoC: LALR Parsing: School's out for summer.

I'm rather behind on my blogging schedule, and also somewhat behind on my coding schedule, thanks to finals and packing and moving out of the dorm, but there is good news: finals are over, and now I'm free to focus more on summer of code. In this blog post, I'll describe the representation I've decided on for grammars, and talk about my next steps.

Another piece of good news, I've actually decided on a name: LALRskate.

GSoC 4: Unsteady Ground

My work this week was slightly complicated by pmichaud changing PCT in master. Turns out that tracking changes in a method I already converted is harder than converting it in the first place. However, since NQP and Rakudo are already using the enhancements, I thought it valuable to merge them quickly. I'm mostly done, just hunting down some sneaky bugs.

CorellaScript : talking in PIR .


An another week filled with working with PIR and JavaScript.
some struggle with JavaScript's confusing syntax
self executing anonymous functions , prototype inheritance, and why "this" behaves differently in different situations.

Coming to corellaScript
some work on test-suite as well. It is now using commonjs's unit-test library. working on tests .

Had first meeting and a nice discussion with _Coke yesterday.

Parrot-GMP: Generated Code, Strings, and Tests

A lot has happened since my last update. I have finished tweaking the script that generates the Winxed convenience class as well as inline POD documentation. The NCI PIR bindings use the internal names (such as __gmpz_init) and have no safety features whatsoever - they are the absolute bare minimum to call these functions.

Progress at Last!

This week in HBDB world was very productive. I was able to identify the root of all the difficulties and complications that I've been experiencing: poor design.

More objects.

Puffin staring

Isn't the puffin just great? Hopefully he'll be enough to distract you from the rest of the post.

Syndicate content