ffs, if I don't release it now I'll _never_ release it. After over a year of work, a few drastic changes, and a completely new implementation, I give you: MiniD 2.
http://dsource.org/projects/minid --------------------------------- What's new in the language? - Lots. - Several syntactic changes and additions leading to much cleaner-looking, terser code. - Classes and instances have been greatly improved, thanks to a one-year trip into the land of prototype-based objects. - More metamethods for more object customizability. In particular, field access and method calls can be intercepted, and there is now a full complement of arithmetic operator overloads (including reverse versions). - Weak references. - A new type which can hold instances of D classes, for use by native code. - Sixty-four (64) bit integers. What will *you* do with all those bits? - A much-expanded and improved standard library. - Much more well-defined semantics for most language constructs and operations. - A more flexible module loading system. --------------------------------- What's this new implementation? - It's waaaaaaaaaAAAy better than the old one. This is really the killer feature of MiniD 2. - It has its own garbage collector, meaning that your scripts won't trigger native app GC cycles (well.. much, much less often), and MiniD code also runs much faster. - It has a completely new API that is similar to the Lua or Squirrel APIs. - There Is One Way To Do It. The old implementation and API were hole-y and inconsistent. Now, you're pretty much locked into doing things one way, meaning much less chance for error and much less to learn. - Virtually anything you can do in the language, you can do in the API without much difficulty. The new API is much more well-rounded than the old one. - Performancewise, it beats the pants off of Python, though that's not _necessarily_ saying much. I don't know how it measures up to Lua as I don't have a way of measuring Lua's performance from within the language (so as to exclude startup and compilation times), but I get the impression that it's pretty close in some cases. --------------------------------- What do I need to compile it? - Tango, SVN revision 4048. I *told* you this was a tentative release candidate. I don't know if it'll work with any older/newer ones. - DMD 1.034 or newer, or equivalent. LDC seems to work as well. GDC does not. Sorry Mac users, go get David to work on GDC again ;) - Some kind of build tool, DSSS/rebuild or bu[il]d. - MiniD itself. Just check out the head revision of the MiniD trunk at http://svn.dsource.org/projects/minid/trunk. - The understanding that if you are on Linux and try to do all sorts of stupid fancy stuff with symbolic links and putting things in nonstandard directories and making directories read-only, I will not have any sympathy for you when you can't get D, Tango, DSSS, or MiniD to work correctly. The D toolchain is fragile enough as it is, please don't bend it. --------------------------------- Why am I calling this a tentative release candidate? - Some aspects of the library (THE BINDING LIBRARY, which is much better than MiniD 1's, and the compiler to an extent) have not been very heavily tested and are likely to be somewhat buggy. But I'm one guy with limited time and so if you could start using it and making it fail that'd be just great. - Some of the docs are not yet complete. The section on modules is not yet complete, but not a whole lot has changed there anyway. The DDocs for the individual API modules are basically complete but are somewhat lacking in more complex examples, which is what the tutorials are supposed to be for. - I haven't compiled it on Linux recently. Yeah, I should do that more often. But it worked last month or so. --------------------------------- What is needed before an "official" release is made? - Time, something I don't have a lot of this week. After that, I have three weeks of bliss. - Testing. - Finished docs. - Maybe a couple more additions/changes. --------------------------------- Anything else? - Mudkip.
