September 21, 2005

Back in the saddle again

Well, now that time's passed, and feelings have cooled, it's time to start back into some serious coding. And yeah, it's parrot-related. (You knew I couldn't stay away, and so did I) Well, semi-parrot-related, at least.

A while back I got a parrot repository dump, and yanked it into a new subversion repository on my home server box, where it's just sat, waiting on time and interest. Two things that I have at the moment. So... it's time to code again. I'm not entirely happy with the structure of the repository as it's checked out from subversion (It has branch and trunk directories for some reason, which I assume come from the cvs2svn script that built it -- not complaining, I'm happy to have all the revision notes) but hey, it works, I can deal.

First up is a better forth compiler than what's in the original repository, with some architectural changes made to it based on some of the things I've learned working on the DecisionPlus compiler for $CONSULTING_GIG. (And yeah, I do have some free time for that -- if anyone needs deep perl or C magic done, get in touch) This won't be a pure forth, since I'm not going to even try and preserve some of the more architecture-dependent behaviours, so I think I'll call it Quarte just because.

After that, I've a hankering for a working Scheme compiler. Again, I doubt it'll be a pure and compatible scheme (though I'd like it to be, unlike the forth implementation) so it'll get called Plot.

And yeah, I have learned my lesson. Having working HLLs makes doing VM development a damn sight easier.

I've a couple of perl 5 related projects in the works as well. NCI, to provide a parrot-style NCI interface to perl 5. StrictSubs, something I promised Tom Phoenix ages ago and tried (but failed) to get done, which will be a perl module that'll scream if you use any subs that don't exist at compiletime (lexically scope). Devel::Size will get some abuse as well, as there are a number of bugs and limitations that need lifting.

Plenty of swamping out of Leo crap in the repository that desperately needs throwing out and rewriting as well, and implementation of some of the features that I wanted implementing, like async IO, the IO streams system, events, and proper exceptions. That should be fun.

If you're keeping track at home, the new project is going to be called Cola. It's got to be called something, and that's as good a name as any.

Who knows, if I get ambitious I might leverage the PPI module to build a working perl 5 compiler for it. That'd be fun.

Posted by Dan at September 21, 2005 11:53 AM | TrackBack (0)

Is the Cola repository going to be available for public consumption? I've stopped following parrot development for fairly obvious reasons, but I still think it would be fun to play with. Also, is there any chance at all it might run on VMS?

Posted by: Dudley at September 21, 2005 12:08 PM

Yeah, I'll open it up to the public at some point, though I can't claim it'll be snappy. (The repository machine's behind a DSL link)

It should run on VMS, though I don't have a VMS machine to test it on. There's nothing architecturally inherent in parrot that'd forbid it from doing so, certainly.

Just out of curiosity, what're the obvious reasons? I know what mine are, but since I'm not placing you at the moment I don't know yours. :)

Posted by: Dan at September 21, 2005 12:18 PM

Well, the main thing that's keeping parrot from running on VMS now is the build system. I played around with it a while back to see if I could get it working, but I think the easiest way to do it would be to rewrite from scratch. I just didn't know if you still used VMS or not.

As for the obvious reasons, from my point of view, parrot development is just not fun. I don't want to bash Leo since I don't know him personally, so I'm not going to say it's his fault, but the feeling I get is that writing code for parrot is an uphill battle, and one I'm not particularly interested in fighting. I'd rather spend my time in a less authoritarian environment. I say obvious because I think anyone who follows the mailing list and irc channel can see that there's something wrong with parrot development. I know that most of the action happens behind the scenes, but I have to base my decision on what I can see, and I don't see anybody having a good time.

You're not placing me because you've never heard of me. :-)
I started lurking around parrot and pugs trying to decide which project I would learn more from during the last days of your tenure.

Posted by: Dudley at September 21, 2005 01:06 PM

So, what about the Parrot post-mortem you said that you'd write once you cooled off? I know about the Perl Review (or was it Perl Journal?) interview, but I don't subscribe so I couldn't read it. How about a blog post?

Posted by: John at September 21, 2005 01:15 PM

I'd sort of put the post-mortem aside, since it meant dredging through some pretty damn uncomfortable things and I've been having enough "fun" (for really sucky values of fun) lately I've not felt up to it. No, don't ask, I'll tell and then you'll probably regret it. :)

It is about time, though, isn't it? Time to start dredging through my notes.

Posted by: Dan at September 21, 2005 01:19 PM

For obvious reasons, the non-Forth should be called not Quarte, but Qarte.

Posted by: Aristotle Pagaltzis at September 21, 2005 11:13 PM

D'oh! Quite right, it should. Good thing I've not checked anything in yet. :)

Posted by: Dan at September 22, 2005 09:28 AM

I once started on a port of NCI to Perl 5 called P5NCI. I'm sure you can find it, if you want it. It's both not as hard and harder than it looks... though you'll likely have a lot easier going than I did.

Posted by: chromatic at September 23, 2005 03:17 AM