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.

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 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.

Migrated winxed to github

I've just migrated the Winxed repository.

Old url:

New url:

GSoC 5: Q:PIRsand

I've lost more time to the bog that is removing Q:PIR blocks. I keep triggering odd little bugs and only have the most complicated bits left. There are 7 Q:PIR blocks, of which 3 are to handle the multiple return values from post_children(). On bacek's advice, I'm going to just not worry about the last few bits. I'd really like to get rid of them by the end of summer, but at this point it's blocking forward progress.

Also, my pool has a pile of problems. It's green and the pump is broken and and and... I'm sure very few people care, but the repeated trips to the pool store are eating up far more time than I had intended.

Syndicate content