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.

End of GSoC, but not Time to Stop...

I've spent the last few days cleaning up my branch: adding documentation, checking that it passes the code standard tests, and trying compiling Rakudo nom. Don't get too excited, we can't compile nom directly to bytecode. Heck, it can't compile squaak directly yet. But I wanted to make sure that all my tinkering hasn't broken the original PIR generation path.

And So Ends the Flight of the Honey Bee

Actually, I suppose the flight has really just begun. It's true that GSoC is nearly at its end but, ironically enough, it doesn't really feel like the end but more of a new beginning. A new debug data format is in the works and it has so much potential!

GSOC 12: Coming to an end

While I didn't implement everything I thought I would, there is now a basic framework for bytecode generation in the nqp_pct branch. I'm uncertain if it should be merged... While the bytecode generation doesn't fully work, it doesn't interfere with the existing usage of PCT and does have the nice feature that PAST::Compiler is now written in NQP for ease of hacking. I'll leave that up to the rest of the community to decide. The rest of this blog post is the contents of docs/pct/bytecode.pod, which I hope will be helpful if anyone want to explore what I've been working on all summer.

corellaScript : Functions and Objects

With only two days left before the hard dead line and that will the end of my first GSOC . These three months has given me a tremendous insight into the world of open source, scripting languages and off-course compilers.

The good parts

Three months ago, I was a programmer who knew how to programme in javascript and few other languages but nothing about what is going inside the compiler which drives a language but now I know what makes javascript so dynamic and powerful ,I know how code is read, converted into tokens and the formation of Syntax tree.

Parrot-GMP: Almost done

It's been a while since I've posted - real life has been crazy with moving and setting up and finals. That's my fault because I didn't take into account the fact that I would be moving nor my finals being right around the time GSoC would be ending. The good news is that I've moved and setup my place (hooray for having my own office) and my classes are done - I've written the last research paper and taken my last final for my masters.

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.

e.g.


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.

tags:

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
Syndicate content