digitalmars.D.learn - Are there any D scripting engines for use with D?
- Jason Jeffory (15/15) Jan 04 2016 We have many scripting engines available for use in D more or
- cym13 (14/29) Jan 04 2016 Lua and python are already covered ([1] and [2]), for the D code
- Max Klyga (8/24) Jan 04 2016 The fastest one would probably be Lua - http://code.dlang.org/search?q=l...
- yawniek (10/19) Jan 04 2016 there is also
- Jason Jeffory (7/26) Jan 04 2016 All these are ok, luaD being the preferred choice(croc looks nice
- Chris Wright (4/6) Jan 05 2016 Croc is written in C++. Jarrett got annoyed with D around the D2 switch.
- Jason Jeffory (3/11) Jan 05 2016 Oh ;/ It was looking interesting ;/ I guess one would just need
We have many scripting engines available for use in D more or less(lua, python, etc...). Is there a D scripting engine that can be easily integrated into a D project? A sort of "exec(<dcode>)". Something that works at compile time and run time possibly? If <dcode> is a static string then it should be able to compile it at compile time, else, run time. Also, it would be nice if one could set up a unique state for the code to run in(so it can't be hacked by harmful coding), e.g., "exec(<dcode>, state)", where state is the state used for the exec(passed along to the <dcode> to use) for external function access and variable passing. Something that is fast as possible would be nice too! I know there this is quite a request, but hopefully there will be work on it. I'd love to see scripting capabilities included with most programs! This would be a start, at least, for my programs.
Jan 04 2016
On Monday, 4 January 2016 at 18:40:03 UTC, Jason Jeffory wrote:We have many scripting engines available for use in D more or less(lua, python, etc...). Is there a D scripting engine that can be easily integrated into a D project? A sort of "exec(<dcode>)". Something that works at compile time and run time possibly? If <dcode> is a static string then it should be able to compile it at compile time, else, run time. Also, it would be nice if one could set up a unique state for the code to run in(so it can't be hacked by harmful coding), e.g., "exec(<dcode>, state)", where state is the state used for the exec(passed along to the <dcode> to use) for external function access and variable passing. Something that is fast as possible would be nice too! I know there this is quite a request, but hopefully there will be work on it. I'd love to see scripting capabilities included with most programs! This would be a start, at least, for my programs.Lua and python are already covered ([1] and [2]), for the D code I don't think so. While you can always call rdmd from D to compile and execute something in a script-like fashion it may not provide the level of integration you are looking for. On the other hand you should have a look at Adam Ruppe's script language that is written in D, largely benefits from CTFE but can be used at runtime too and has a JS-like syntax achieved by simply defining new D types (IIUC). That way you get a well-integrated easy to use language (although not quite polished). [3] [1]: http://code.dlang.org/packages/luad [2]: http://code.dlang.org/packages/pyd [3]: http://forum.dlang.org/thread/kuxfkakrgjaofkrdvgmx forum.dlang.org
Jan 04 2016
On 2016-01-04 18:40:03 +0000, Jason Jeffory said:We have many scripting engines available for use in D more or less(lua, python, etc...). Is there a D scripting engine that can be easily integrated into a D project? A sort of "exec(<dcode>)". Something that works at compile time and run time possibly? If <dcode> is a static string then it should be able to compile it at compile time, else, run time. Also, it would be nice if one could set up a unique state for the code to run in(so it can't be hacked by harmful coding), e.g., "exec(<dcode>, state)", where state is the state used for the exec(passed along to the <dcode> to use) for external function access and variable passing. Something that is fast as possible would be nice too! I know there this is quite a request, but hopefully there will be work on it. I'd love to see scripting capabilities included with most programs! This would be a start, at least, for my programs.The fastest one would probably be Lua - http://code.dlang.org/search?q=lua But there are other options: Python - http://code.dlang.org/packages/pyd Javascript - http://code.dlang.org/search?q=javascript and http://pointersgonewild.com/higgs/ Croc (previously miniD, a scripting language implemented in D) - http://jfbillingsley.com/croc/
Jan 04 2016
On Monday, 4 January 2016 at 19:04:48 UTC, Max Klyga wrote:On 2016-01-04 18:40:03 +0000, Jason Jeffory said: The fastest one would probably be Lua - http://code.dlang.org/search?q=lua But there are other options: Python - http://code.dlang.org/packages/pyd Javascript - http://code.dlang.org/search?q=javascript and http://pointersgonewild.com/higgs/ Croc (previously miniD, a scripting language implemented in D) - http://jfbillingsley.com/croc/there is also http://code.dlang.org/packages/d_mruby mruby is really nice. but i agree, a more native language that would not need to push data via a stack but instead had direct access to strings or defined objects would be something really helpful.
Jan 04 2016
On Monday, 4 January 2016 at 19:25:18 UTC, yawniek wrote:On Monday, 4 January 2016 at 19:04:48 UTC, Max Klyga wrote:All these are ok, luaD being the preferred choice(croc looks nice but haven't spent much time with it). I'd prefer a D based scripting engine. I suppose one could simply compile the code for each change, but seems like it would be a mess. The ability to debug and provide real time changes would be great.On 2016-01-04 18:40:03 +0000, Jason Jeffory said: The fastest one would probably be Lua - http://code.dlang.org/search?q=lua But there are other options: Python - http://code.dlang.org/packages/pyd Javascript - http://code.dlang.org/search?q=javascript and http://pointersgonewild.com/higgs/ Croc (previously miniD, a scripting language implemented in D) - http://jfbillingsley.com/croc/there is also http://code.dlang.org/packages/d_mruby mruby is really nice. but i agree, a more native language that would not need to push data via a stack but instead had direct access to strings or defined objects would be something really helpful.
Jan 04 2016
On Mon, 04 Jan 2016 20:04:48 +0100, Max Klyga wrote:Croc (previously miniD, a scripting language implemented in D) - http://jfbillingsley.com/croc/Croc is written in C++. Jarrett got annoyed with D around the D2 switch. MiniD is written for D1 and Tango. It would be nontrivial to port it to D2.
Jan 05 2016
On Tuesday, 5 January 2016 at 17:37:00 UTC, Chris Wright wrote:On Mon, 04 Jan 2016 20:04:48 +0100, Max Klyga wrote:Oh ;/ It was looking interesting ;/ I guess one would just need bindings?Croc (previously miniD, a scripting language implemented in D) - http://jfbillingsley.com/croc/Croc is written in C++. Jarrett got annoyed with D around the D2 switch. MiniD is written for D1 and Tango. It would be nontrivial to port it to D2.
Jan 05 2016