344 karma · joined September 14, 2013
There are plenty of non-AGPL DBs out there doing pretty well. Here are some examples of GPL/MIT/BSD style licensed DBs: Riak, Cassandra, Redis, MySQL, PostgreSQL, ArangoDB, CouchDB.
BTW, does anyone have recent benchmarks comparing LuaJIT against new versions of the Javascript JITs?
There is not technical reason a source control tool could not offer multiple 'views' into the commit history. A high level linear view which you can zoom into to see the underlying commits and merges. Why do I have to lose the latter to see the former?
>>> def f(a):
... pass
...
>>> f()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: f() takes exactly 1 argument (0 given)
>>>
I agree 1-based indexing isn't ideal, but in the grand scheme of things, the default nils and the method/function syntax are a constant source of mistakes and frustration for me. In Lua you have to call `obj:method()` which to pass `obj` as the first argument. If you accidentally do `obj.method()` - there is no error, but the first argument becomes `nil`.In Python, there the call syntax is consistent and `obj` is automatically passed as the first argument for methods.
The turbolua.org project is somewhat similar (i.e. a webserver with Lua support).
Firstly, 'typed Lua' really meant the terra sub language because it looks like Lua with types.
Going back to terra, consider that 'terra' is a language that can be compiled by LLVM into machine code. So you can choose to either compile and emit object code, or compile and immediately run the generated object code. The other choice you have is to either write terra code by hand, or generate terra code from Lua code.
You say 'if typed Lua is being "generated" (i.e., it's the target) how come Lua is being used as a metaprogramming language'. Why is that not possible? Many languages have built in metaprogramming using the same language (notably lisp code can generate lisp code).
Another way to look at this is Lua is the metaprogramming and control language for generating, compiling and running Terra code.
This is what http://terralang.org does.
An interesting feature is support for strongly typed arrays and objects. This lets you embed binary data as-is by specifying it as an array of uint8.