On Fri, May 01, 2020 at 05:44:27PM +0000, tsbockman via Digitalmars-d-learn wrote: > On Friday, 1 May 2020 at 15:42:54 UTC, Baby Beaker wrote: > > There is a Python eval() equivalent in Dlang working in Runtime? > > No, and there almost certainly never will be due to fundamental > differences between the languages. Depending on your goal, the closest > alternatives are using the string mixin language feature, writing a > parser (std.conv or certain DUB packages can help), or embedding a > scripting engine such as AngelScript or Squirrel into your program. [...]
Actually, if you're willing to ship a working copy of dmd with your program, you *could* compile D code on-the-fly and dynamically load it as a dll/shared library. (I have done this before in one of my projects, which generates D code based on user input then invokes dmd to compile it into a shared lib, then loads the shared lib and runs the compiled code.) It will be restricted to function calls and static variables, though; it will not be possible to access local variables in the scope where the eval() is called (unless you explicitly pass them through the dll/.so interface, i.e., as function parameters), and it will not be possible to eval() snippets smaller than a function. T -- The most powerful one-line C program: #include "/dev/tty" -- IOCCC