MiniD 2 - Tentative Release Candidate 1

Jarrett Billingsley jarrett.billingsley at gmail.com
Sun Dec 7 21:50:47 PST 2008


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.


More information about the Digitalmars-d-announce mailing list