I'm noting my reactions to each chapter on a blog that I'd installed for a client. Others reading the book are free to come participate.
I'm not sure how much coordination a "reading group" needs, but this seemed an easy way to try to start a bit of conversation about the book.
A few months ago I tried to write a CLU compiler for parrot (for no better reason than nostalgia for my undergraduate days). I got bogged down in trying to figure out a not-horribly-complex way to implement parameterized clusters, so on the shelf it went.
Parrot has progressed a lot since then. So it's time to take CLU off the shelf and dust it off a bit. The Parse::RecDescent parser is still mostly good. (I need to wrap my brain around PRD's error reporting. Compilers really should report syntax errors rather than just exiting.) I'll probably port to Perl6::Rules when they're done.
The code generation was definitely in the "build one to throw away" category. So out it goes. This time I'm going to output an AST to feed to the not-yet-existant ast2imc layer of Parrot. I can spit out ASTs for statements in either YAML or s-expressions. (More complex constructs awaiting me deciding how scopes are handled.) The sexprs lose some of the metadata.
Google finds several intentions to write a YAML library for Parrot, but no code. The only firm AST stuff for Parrot is Leo's YAL, which is in C. (Subgoal of mine: avoid C.) But at the rate I'm devoting time to my little toy, that probably isn't a problem.
This is why I leave cooking to the professionals.
"Our new car will lose control and plummet to a fiery doom."
I was thinking that the trend to name cars with meaningless sequences of numbers and letters was boring, but maybe the marketing department can't be trusted with anything more.
And the new motherboard booted successfully. Now to install the new hard drive so I have somewhere to put FreeBSD 5.x.
The only outstanding nuisance is that the case had a three pin (middle unused) connector for the power LED, and the board expects a two-pin connector.
Option 1: take a saw to the connector.
Option 2: someone, somewhere out there, sells a 3->2 adapter.
[kag@kagnote kag]$ look surprised
surprised I'd couldn't remember if there was a 'r' before the 'p' or not. Then I noticed that I'd invented a new 'cat food' (or 'make love').
It snows occasionally in Boston. It's rather pretty for the first few hours. Then it starts turning into gunk. You never see brown snow on those TV holiday specials.
The landlord did a good job of clearing the steps and sidewalk this storm. The city did a passable job clearing the street. That just leaves the berm where the curb used to be. So I grab a shovel and punch a hole through it.
Mission accomplished? Nah. Someone decides that he'll park his car to block my curb-cut. So I dig another one today. Any car blocking it tomorrow (when my groceries are to be delivered; the main reason I bothered with this) gets buried in whatever remaining snow I can find.
What is CLU?
Why port to Parrot?
Things I have:
Things I need: