Update
Posted: December 13th, 2009 | Author: Mars | Filed under: Progress | 1 Comment »I’m back from a week in Montreal. I’ve been doing some work for XSilva Systems, and it was time for some planning meetings. The week kept me busy, but I did get some Radian work done on the plane and during a couple of late evenings.
One minor syntactic change: the end statement’s identifier is now optional. You can just say end to close a block, as in Ruby.
I spent a few hours yesterday rewriting the loop implementations; I’d let them fall out of date. I’ve also been setting up a validation suite, which will help with quality control and will be a simple way to demonstrate how the language works.
It’s clear that I am going to miss my end-of-year goal, which was to have strings, basic math, objects, file I/O, and shell-exec capabilities working. I still think that’s a reasonably minimal definition of a working language, but at the current somewhat contemplative pace I’m not going to have it done January 1st.
I can still get the source code online, however. I’m increasingly comfortable with the idea of releasing the compiler code under GPL, and the runtime/standard-library code under the MIT/simplified BSD license. It almost certainly isn’t going to matter much, but it’s so hard to change licenses later that I want to get this right up front.
The source control system will almost certainly be Git. I’ve been using SVN but I don’t think it makes sense for a public project. I’d rather host the repository myself, but I may end up using github just because it’s easy.
Aaron B. has ported the compiler shell to Windows. It’s great to see support for a new platform showing up. The code isn’t polished yet – depends on hard-coded paths to MinGW – but it’s a great start and I’m sure it’ll improve rapidly.
Joe R. has been working on LLVM integration; he’s started an alternate backend that emits LLVM code instead of C source code. It’ll be nice not to depend on gcc.
What about using the LGPL for the libraries? That’s what it’s there for, after all :]