Hello again!
This is a little waffle over the last cuppla weeks lest you think we are on vacation or something equally as nice. Believe it or not, there was a part 2 of "Nigel Ordinary Programmer" all ready to go until yesterday when it got accidentally trashed in a large "project update, wang a few hardisks about" cleanup. And as it was written about a month ago the chances of it being resurrected "as was" is slim to minimal. Sorry :(
Album of the week is Madonna's new one "Ray of light". Now Madonna is not normally my cup of Earl Grey at all, but on this one she has teamed up with what can only be described as an ex-mod writer and the results are stunning IMNSHO. Another good 'un is Robbie Williams' "Let me entertain you" (get the single, the album "Life Thru a Lens" ain't so hot). Good coding music if yo want my tuppence worth. Bjorn Lynne's "Wizard of the Winds" (based on the book of the same name by Allan Cole) is also now available, but I'm not found of it. Waiting for the remix/update of Witchwood next month which will be a "must have" if ever there was one!
James Hague has been busy over on the Giant List (http://www.dadgum.com/giantlist.html) keeping up to date on all the news and Algae is having a bad week by all accounts (so say's Fluff).
What else is happening? Well, on the dev front it's "full steam ahead" on Fant6/Fanta_C. The difference between these two products is becoming less as each day passes. For instance, currently we have three large projects on-going. Now every one of these projects uses an evaluator - takes an expression and returns a single result. We could write three evaluators which would be a nightmare to maintain, or we can write just one and via Anvils ability to takes source files from anywhere, use the same source files in each project with suitable assembly switches - like ifd grammar_core etc. This way we write once and deploy in what will be five different projects the same code without any source duplication or messing about. This code was originally written for the preprocessor for FC, but it turned out we could use in FantBug to immediately give it powerful expression capabilities, and we can use it in Fant6 to replace it's current evaluator with a much more powerful one, so you can use relational, unary and logical operators etc.
Project d'jour is Fanta_C which has a list of 18 things needing doing. It is fantastic to see actual generated code come out of something that's taking so long to get up off the ground. Rob's in charge of this one, so I'm in effect working on somebody elses project which is fun. The idea being that it's mostly all written and needs some heavy duty finishing off to get it up and running. Normally I "do" Fant, and am indeed responsible for FC's back-end, which of course is intimately tied up with Fant6 and the debugger.
The only problem with FC as far as I'm concerned is it's a bit of a pig to work on, as it's made up from two assembly language projects and one C project. Debugging is currently definitely "fun". I think I will merge the two assm projects (preproc and grammar) as time permits, but there isn't much to gain from this, so maybe not.
Currently I'm doing the basic expression reduction optimisations in the middle bit which is pretty mandatory for places where a constant expression is defined in the grammar - C array definitions for example.
I guess that's the big difference between writing ones own language, and writing one where you have to follow an ANSI spec. Writing your own is easy. When following a spec it's sometimes difficult to see how the spec authors envisaged a certain "feature" to be implemented!
We finally got ARA working well enough to be useable. The last thing you want after 16 hours solid work is to be messed about trying to register your changes. Via a somewhat convoluted system involving two master projects for each project and some file sync s/w we seem to have a useable system. One thing we couldn't abide by would be having files "locked". This wouldn't work because of the way things are written, and a single change may affect some 20 files so if one of those files was locked by somebody else they'd probably end up getting a phone call at 4am which wouldn't do much for relations at all :-)
Last week I got FantBug basically finished on the low level 68K side. The icing on the cake was getting the timers working. Quite interesting too. The toolbar has a little clock and a reset button. Click the reset button to set the clock to zero, then execute something and it'll tell you how long it took. So I've been timing various OS calls - for example NewCWindow takes almost a 10th of a second on my machine.
Anyway, must dash,