In C# 4.0 the VM becomes a module of the standard lib, so it can be used from 
normal C# code, to do various things.

While writing a genetic programming program (and in some other situations) I 
find it useful to have an eval() function, like in Lisp/Scheme and most 
scripting languages.

I think such functionalities may be added to DMD and LDC too:
- 99% of the compiler can be moved into a DLL (or a shared dynamic lib of some 
kind) and the DMD/LDC executable can then become very little, it can load such 
dynamic lib, and it has just to manage the I/O from/to disk and the command 
line arguments, ad little else.
- By default such dynamic lib isn't loaded by D programs, so the size of D 
programs is unchanged (and they don't need such dll to run).
- A module can be added to the std lib (Tango and Phobos) that loads such dll 
and offers a function like eval() that accepts in input a string of code (or an 
AST too, if you want) and compiles/runs it.

Bye,
bearophile

Reply via email to