> ==> I think that's why "Transmuter" introduce 2 new keywords. > But, it's not just "macro". Look carefully. > "define" is most like macro, it's not compiled on the fly, the defintion is > hold, and it's compiled only when used. Ok. > "transient" is quite different, since, it's compiled, but ALSO evaluated when > used ! that mean the compiler have access to the interpreter. Maybe it should > be > re-entrant ? I have not think carefully about it. But it's very powerful. > > Yes, that means an additional compilation pass. And even more, maybe a > recursive > one.
You can do it for your language, but the compiler is by default separate from the VM, Neko is compiled off-VM, this way you can deploy only the crossplatform compiled bytecode (just like Java). > Oups ! sorry, it's NATIVE, and not "builtin", and you can find it here : > http://www.transmuter.org/definition.html#native > > hence, it's not the same as "loader.loadprim", since a native in "transmuter" > is > a direct call to a C library, and not a call to a wrapper "ndll". > As I said before the "Qu" language have such a feature : > Look at this (Excerpt from Qu http://centrin.net.id/~marc/features.html) : > @warn > Using this class requires some knowledge of C. > Give the wrong type and your program will crash. Neko is by default crash-safe. There is no way to crash or corrupt it. That means it's also a good VM for embedding, when you don't want user written code to crash your application or infect your computer. If you want such feature you'll have to add a small C library wrapping the dlopen and dlsym C primitives for usage in Neko, and generate "native" statements in your language by corresponding calls to theses primitives. Nicolas -- Neko : One VM to run them all (http://nekovm.org)
