====== Compiler revisited ====== Hi All, There are a number of features that I've been meaning to implement for several years, and every so often I pull one off the shelf and have another look at it. This week, it's the turn of just-in-time (JIT) compiling for scripts. I'll let you know how it goes... Cheerio, Aaron. {{tag>scripts optimisation}} ---- //Update:// It seems to be going well so far, and I've successfully run some simple scripts as compiled bytecode. However, I still need to port more script interpreter features over to the compiler (e.g. loops, if/else/endif, nested functions, etc.) Stay tuned... --- //[[user>Aaron]] 2009/12/04// ---- //Update 2:// It's still going rather well. I've added support for compiling nested functions, as well as pointer referencing/dereferencing. Some syntax improvements have been made also, which I'll discuss in a later post. Still working on the if/else/endif and do/while statements... --- //[[user>Aaron]] 2009/12/04 (later)// ---- //Update 3:// The compiler now supports do/while loops, and they're //really// fast. That's good, since faster loops was the whole point of the JIT compiler. There's still if/else/endif to do, and a whole lotta testing, but I'm now quite optimistic that the JIT compiler will make it into the next developmental build. Faster scripts for everyone! Hurrah! --- //[[user>Aaron]] 2009/12/05//