Adam Ruppe wrote: > If you want to play with dmdscript, I have a port to D2 here: > http://arsdnet.net/dcode/dmdscript_d2.zip
Super! thanks. > You have to compile it all at once: dmd *.d, instead of incremental, > or it won't link for some reason. > > There's some hacks in that code, since I did the port using a dmd > release that had a broken in operator, and I haven't had the time to > go back and fix it since then. But, it should still work anyway. > > > The pretty.d file shows the beginnings of an opDispatch wrapper for > script objects. The biggest problem I had in making it work was > returning an object: > > dynamic a; > > a.b(); // works thanks to opDispatch calling through a lookup table > a.b.c(); // doesn't work, it complains about wrong number of args to > opDispatch, even if b is a property returning another dynamic > > I don't know if this works in the new dmds. I haven't tried for a couple > months. I think this was fixed. > > I'm pretty sure D will be able to do most of what C#4 does with bug > fixes; no new features should really be necessary. One thing it can't > do is: > > dynamic a = "hello"; // this might not compile due to opCall, but > break it into two lines and you can make it work > > string b = a; // never gonna compile, arbitrary implicit casts aren't allowed > > string b = a.coerce!string; // this is what std.variant does, works for me.