Terra: A low-level counterpart to Lua
terralang.org
terralang.org
So I got excited and planned to use it to make a game, but although it can import existing C libraries [1], it can't import global variables, constants, or macros that take arguments, which puts a whole lot of existing libraries just out of reach.
This doesn't seem to have stopped Leonard Ritter from using it for Nowhere anyway, though being a crazy genius, he seems to have written his whole environment from scratch. [2] [3]
[1]: http://terralang.org/api.html#c-backwards-compatibility [2]: http://blog.duangle.com/2015/01/conspire-programming-environ... [3]: https://bitbucket.org/duangle/nonelang/src
Exactly. I long ago came to the conclusion that any modern systems language should have a hygienic, macro system to balance productivity/maintenance against performance. Just makes things so much easier. That morons can abuse it is no reason not to have it in the language as they abuse everything haha.
The main point that gives Terra an edge is that its macro system makes implementing and testing potential optimisations easier.
[1]: http://terralang.org/pldi071-devito.pdf § 6. Evaluation
What I mean is, there is a large body of existing code that I'd like to run alongside Terra. But if the choice is Terra xor LuaJIT, this becomes difficult.
> We provide wrappers around LuaJIT’s FFI API that allow you to allocate and manipulate Terra objects directly from Lua.
https://web.archive.org/web/20150424222319/http://terralang....
For it to be useful (to me at least), it should only show up if previous discussion exists, and it should be more prominent.
I thought the "past" link was cool when it was pointed out to me. Sometimes past discussions are superior to the current one.
But in practice, I almost never use "past", except when I'm pretty sure I have seen the piece before. Your suggestion might fix the issue.