Hi all,

I've been working on a little project over the last month and a half, inspired by Adam's dtojs (https://github.com/adamdruppe/dtojs). I've always wanted a typed, powerful, embeddable scripting language, but found the contenders lacking - which is why I decided to hack up DMD to emit Lua.

Introducing Moonshot (https://github.com/Philpax/moonshot)!

Moonshot's based off an early DMD 2.074, and builds up a Lua AST from the D AST. It aims to compile a reasonable subset of @safe code, so that high-level D can be used in scripting environments (i.e. games, scriptable applications, and more.)

Because it's based upon the D frontend, it can already compile a lot of what we consider to be D - including foreach, the full power of metaprogramming, *ranges*, and more. There's an awful lot missing, as well (see the GitHub page for more information), but it's quite promising so far.

Of course, this is still a very early, very untested project - so it's going to break on 99.9% of D code. I'd like to gauge community reaction, but it's nowhere near ready to show off to the wider programming community.

I'd also like to find out if anyone would be interested in me submitting a DConf talk about how Moonshot works, and the benefits of using D as a typed scripting language.



P.S. It was incredibly exciting to see `10.iota.map!(a => a * a).filter!(a => a > 50).each!print;` work with unmodified Phobos. The less I have to modify Phobos, the better! :)

Reply via email to