> 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)

Reply via email to