So here's yet another attempt at describing terra :)
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.
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.