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.

Parrot-GMP: VTABLE Overrides complete

This week I finished implementing VTABLE overrides for Parrot-GMP. This allows us to do things like x = y + z where x, y, and z are all GMP Integer objects. I also have a test suite to ensure that these overrides work. It's not very glamorous work but it's a nice layer of sugar and makes sure that Parrot-GMP plays nice with others.

GSOC 7: What is newPOST?

I want to talk about what I need to do over the next couple weeks, and in order to do that, I'm going to start with a description of the system I'm working on. This was originally a much longer post, but I accidentally overwrote my first draft with something else. This is probably good since the first one read more like a reference manual.

Load Source and Testing and Build Errors...Oh My!

Nothing too spectacular went on this past week. It mostly consisted of typical technical work. If I had to pick one thing that was significant, it would be that I was able to eliminate all build warnings/errors in gcc and g++. Eliminating those warnings was incredibly irritating and honestly, I don't really know how I fixed it. Actually, I shouldn't say that. I do know how I fixed it but what I don't understand is why the first method didn't work in the first place but this one does. Oh well...it works.

Parrot-GMP: Random Numbers, Distutils, Plumage, VTABLE overrides

This week many Parrot-teers and Perl hackers (and many of my co-workers) were at YAPC::NA. I originally planned on attending but my car broke down earlier this summer and I had to pay for repairs. While there dukeleto++ (my GSoC mentor) and colomon++ both asked how to install Parrot-GMP. I had been so focused on getting the guts and the test suite together that I had completely neglected my README and had no way of automating an install.

GSoC 6: Unexpected YAPC

So, when I was making my schedule, I didn't know about YAPC. But I made plans, grabbed a friend, and went. Met lots of cool people. But I just now got home from a 16 hour drive so both the blog post about YAPC and the blog post about PAST, POST, and newPOST will have to be delayed until after I catch up on some missing sleep.

Battery Low, No Time for Title

I must be brief again as 1) I am using my laptop which has a terrible battery and 2) I am writing from the car and this is making me carsick. :-C~

This past week was a little bitter sweet. Bitter because I did not have much time for GSoC work but sweet because I was at YAPC::NA with some of the other Parrot developers. As much as I would like to talk about YAPC (which was awesome sauce), I must limit myself to GSoC-only topics.

Parrot at YAPC::NA::2011, Asheville NC

There is no substitute for face-to-face contact.

Salespeople have to meet their customers in person. Marketing alone will never suffice.

Politicians have to press the flesh. Television ads will never suffice.

Open-source software projects' developers have to meet F2F. IRC will never suffice.

That's the main lesson I draw from YAPC::NA::2011, just concluded in Asheville, North Carolina.

JavaScript : Object System

Seems to be the toughest part of the project, providing inbuilt object's support. Thanks to the specification provided by Ecmascript, finally got hold of whole Object thing. Time to speed up my work now..

JavaScript's object system is based around a global Object which is created before the control enters any execution context and that is its whole purpose also. We can't call it as a function neither as a constructor. All the other features are its properties only.

Parrot-GMP: Even more tests and NCI work

Nothing too glamorous to report again - the test suite continues to grow. All functions are currently covered (and passing) except for functions related to random numbers. These functions are especially tricky because they rely on a special C-struct to both hold the seed and point to which pseudo-random number function we want to use. GMP is flexible in that there are multiple functions a user can choose from - some which favor speed and others which favor randomness - but the code is messy. Furthermore, to handle structs in NCI we need something called a StructView.

It's a Miracle!

This week in HBDB-land was very significant. I was finally able to achieve command recognition. I had abandoned work on it for about a week because it was such a nuisance. Instead, I focused on testing which was a pain as well but it got done. Reluctantly, I returned my focus to the command parsing logic and within 5 minutes, I had solved my problem with a single ampersand. This makes me so happy.

Syndicate content