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.

corellaScript : Arrays

After missing action from some time, Corella is rising again . Right now Corella is not able to compile itself which was intended to but I'm trying to cover as much as possible and will give my best in this week. Corella's object system ("Corella-System") is ready and working.

Worked on arrays today and now corella is having support for arrays and even multi dimentional arrays as given in the ecmaScript.


var arr = []

results in

.HLL "corella"
.include "corella_system.pir"
.sub 'main' :main

Parrot 3.7.0 "Wanda" released

OTTO. Apes don't read philosophy.

WANDA. Yes they do, Otto. They just don't understand it.
  Now let me correct you on a couple of things, OK?
  Aristotle was not Belgian. The central message of
  Buddhism is not 'Every Man For Himself'.

OTTO. You read...

WANDA. And... the London Underground is not a political
  movement. Those are all mistakes, Otto. I looked them up.

  Now. You have just assaulted the one man who can keep you
  out of jail and make you rich. So, what are you going to do
  about it, huh? What would an intellectual do?
  What would Plato do?

-- A Fish Called Wanda, by John Cleese.

With that, I'd like to apologize for Parrot 3.7.0, also known
as "Wanda". Parrot is a virtual machine aimed
at running all dynamic languages.

Parrot 3.7.0 is available on Parrot's FTP site, or by following the
download instructions. For those who would like
to develop on Parrot, or help develop Parrot itself, we recommend getting
the latest and best Parrot code from github.


The End.

This is a summary

The soft deadline has passed and the hard deadline is not far away. Soon, what is likely to be my last GSoC will be over. And it was great! These three years I've had the summer job of my dreams. I worked on projects I was passionate about, using tools I liked and with people I liked.

SOD: Symbolic Opcode Description

Well, GSoC is starting to wind down. I can't believe it's almost over. It feels like the "pencils down" date just jumped up out of nowhere. I had a lot more planned for HBDB but there are many flaws in Parrot's design that make even some of the most basic debugging tasks very difficult which I'll explain in a moment.

GSoC: LALR Parsing: A revised schedule

I'm far behind on my project, unfortunately, and, upon dukeleto's urging, I've written up a new timeline that I think I will be able to finish before Summer of Code ends.

First, I'll summarize what I have done:

  • An object representation for grammars
  • An object representation for deterministic push-down automata(DPDAs)
  • Generation of DPDAs for LR(0) grammars
  • The beginnings of an interpreter for DPDAs

And what I haven't done:

  • Actually producing a parse tree while parsing

GSoC 11: Breaking Radio Silence

*tap, tap, tap* Is this thing on? It is? Drat, I had hoped it wasn't and I'd have something to blame for the long silence.

Due to the issues I'm about to describe, my old schedule is a little off. The important schedule note is that the official "pencils down" date is August 15th, aka next week. Current plan is to power through as much as I can in the next few days. At this point, I doubt that my branch will be merged into master before the end of GSoC, but I do intend to keep working on it.

The core of my problem is in this line from my last blog post:

strings, encodings, and NCI

With the recent addition of the as_string method to UnManagedStruct and Ptr PMCs (see my last post) and the get_pointer vtable in ByteBuffer now is easier to pass and get strings from NCI (parrot Native Calll Interface).

To pass a string to a NCI 'p' parameter you just need to create a ByteBuffer and set the string to it, maybe after trans_encoding it, and add the zero-termination required in most usages by pushing a 0 value. ByteBuffer takes care of memory management.

IMCC Wars: Episode IV - A New Hope

A long time ago in a galaxy far, far away...

It is a period of binary war. Rebel hackers, striking from a hidden base in New Jersey have won their first victory against the evil IMCC Empire.

We need a better way to get strings from NCI

The last refactor of the NCI subsystem got rid of the 't' type used to pass C strings. This gives us more flexibility but doesn't solve all problems.

Take for example Mysql: we can specify the character set used for the connection with the database, and sometimes we can't use the current locale. We may want to read a table that contains unicode characters out of the range compatible with latin-1 without loses, while using latin-1 locale.

HBDB Closed for Construction, Please Use Detour

This past week was admittedly dull. I've reached a bit a road block and this time it's blocking the way forwards, backwards, left, and right.

Syndicate content