> Hi ! > I hope this is not a dumb question, because right now I'm just flying over > Neko > and other languages in my leisure time. Neko have my preference right now > because of it's clean design and huge potential.
I think so ;) > I've seen a brand new language called "transmuter" with very interesting > features. It's aimed to "evolutionnary programming". > If you look here : http://www.transmuter.org/modifier.html > You will see two interresting features, called "define" and "transient" that > are > caode evaluated at compile time. I think it's a bit like lazy evaluation. But > I'm not a specialist of this kind of feature. > So my question is : would it be a interesting feature to add to Neko ? (rather > in Neko than in NekoML in my opinion), and would it be hard to implement ? To me, they just look like macros/inlined functions. It's quite difficult to add to Neko since you don't know the value of a symbol at compile time. For example : plus = function(x,y) { return x + y; }; // some code var three = plus(1,2); It's difficult to tell if "plus" is assigned in "some code" since there can be function calls to previously defined functions that will assign "plus". It would at least require an additional compilation pass. It depends if you are planing to use Neko directly or use an higher level language to generate to it. In that case, you process inlining when generating your code. > A remark though, Transmuter have a "builtin" automatic dll import keyword > that I > find very interresting ;-). I've seen such a feature in the "Qu' language, and > I'm planning to add it to neko when I'll have the time, some day. I haven't find the "builtin" keyword definition. Neko clearly separate what is a "builtin" which are core functions (prefixed with as $) from "primitives" which are C functions imported from a DLL. In that second case you can load them dynamicly using the loader : var sqrt = $loader.loadprim("[EMAIL PROTECTED]",1); $print(sqrt(2)); Nicolas -- Neko : One VM to run them all (http://nekovm.org)
