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.

Funny behavior in a squaak 'for' loop

This may seem like an unusual blog post: why not a post to parrot-dev? Well, I've struggled the past few weeks as a newbie, largely with language syntax. But this problem is different: this is an interesting problem, one that I think shows that language/compiler design is more than just mastering basic language syntax and getting something to run approximately.

For readers unfamiliar with squaak, I think it is a teaching tool, not a finished high-level language (HLL) that would likely be used to get some job done.

Parrot-GMP: NCI Thunk generation complete

Just a small re-cap from my last post - not every possible function signature that you might want to call through NCI comes built into Parrot. When you try to invoke a function that does not have a generated NCI thunk you will get a run-time error. GMP had a number of functions that were not covered by the built in NCI thunks so I installed libffi to get around this problem. Jay++ and dukeleteo++ have both started projects that will use NCI to some extent and are running into this problem as well. So I decided to tackle how to get around this problem without requiring libffi.

Good News, Everyone!

Today you'll be making a delivery to...

Okay seriously, besides Futurama being the greatest show ever, I actually do have good news. Last week was a very successful week. I was able to implement several commands within just a few days. They're still a bit "rough around the edges" but they work none the less.

vector design decision and baby steps...

Based on conversations yesterday with whiteknight, dukeleto, Notfound, bubaflub, sorear, cotto_work, soh_cah_toa, and others, I've decided that my initial design will use Resizable*Array for everything (even vectors of length 1). And for now, I'll support Integer, Float, and String. For reasons relating to the R language, I'll want my own logical (Boolean) using integers, but I'm not going there, yet.

Winxed 1.0.0

Winxed 1.0.0, first version with version number, is out.

Now that winxed is bundled with parrot and the new parrot supported release is about to launch, is time to have a way to check the version used and get information about it.

Unless some serious bug appears, 1.0.0 will be bundled with the next parrot stable release. Eventual bugfix releases will be numbered 1.0.x

In the git repository the tag for this release is RELEASE_1_0_0. Next releases will follow the same schema.

The new command line option --version gives the current version number.

The NQR and GSL Projects

NQR stands for 'Not Quite R'

GSL stands for the GNU Scientific Library, and I hope to provide at least some low-level bindings for Parrot.

See for more information.

corellaScript : git push

hmm.. that was a long delay in blog posts , but I'm glad to inform that corella has started flying , I mean producing output in PIR . though broken in many places but it has started and is getting updated every hour now .
I am planning to have a meeting with coke about the so far delayed test-suite as I'm really feeling the need of that.

As far as object system is concerned, I had meeting with coke few days ago and they will be in code before the end of mid term evaluation.

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

Syndicate content