Download Monster
Monster is open source and is released under the GNU General Public License (GPL) version 3. This
is the only license option at the moment, but plan on adding more in
the future.
All files and web pages are copyright (C) 2007, 2008 Nicolay
Korslund (korslund@gmail.com),
unless otherwise noted.
Source releases
The source releases require a D compiler, but can be used both with
D and C++.
Obtaining a D compiler
The Monster library requires a fairly recent D compiler. Currently
the only tested compiler is the 1.0 (stable) branch of DMD. You can download DMD here. For
installation instructions check out the official DMD
installation page. You will also need to install DSSS, the D Shared
Software System, in order to build Monster.
Note to C++ users: You do not need a D compiler to
use the library, only to compile it.
Compiling Monster
Unpack the Monster archive and change to the resulting
directory. For example, on linux you do:
tar xvzf monster-X.X.tar.gz
cd monster-X.X
Once you are in the correct directory, compile and install Monster
(on all platforms) with:
dsss build
dsss install
This will build and install the Compiler (mcc), the example VM
(mvm) and the native code generators (autogen_d/autogen_c). For
further instructions see the included README.txt.
Changelog
0.8 (prealpha) 2008-apr-21
- String concatination.
- Foreach on a class can loop through instances.
- Autogen programs now handle arrays correctly.
- Tango and C++ versions of the program 'mvm'.
- Better error handling in C++, exceptions can now "pass through"
the interface (experimental.)
- Fixed the foreach ref bug and some other minor issues.
- Internal: cleanup and refactoring of compiler/scopes.d.
0.7 (prealpha) 2008-mar-12
- Dynamic arrays. Syntax and semantics work pretty much like in D.
- Dynamic creation of single or multi-dimensional arrays.
- Array and string literals.
- Foreach loops, with type deduction, optional index and ref elements.
- Easy interface to pass arrays to and from native code (also for C++.)
- Array vararg function parameters.
- Break and continue in loops, with support for loop labels.
- Case insensitive string comparison operator: =i= and =I=.
- Changed syntax of empty state to "state = null;"
- Moved several mvm-based examples to examples/
- Implicit type conversions: int -> float, all types -> char[].
- Various small improvements and bugfixes.
0.6 (prealpha) 2008-feb-19
- Added a Tango compatability layer ("minibos".) Monster now
supports Tango "out of the box".
- Created dexamples-tango/ with Tango versions of all the examples.
- The VM will now compile script files automatically. You no longer
need to run mcc.
- Removed hard coded function "writeln".
- Cleaned up shared/mcfile.d and finalized numbering in
shared/bytecode.d
- Removed expensive consistency checks from util.list (add
debug=slowcheck to bring them back.) This should improve performance
of sdltest.
0.5 (prealpha) 2008-feb-07
- dsss.conf for examples updated to work on windows
- resolved a circular module dependency issue on windows
0.4 (prealpha) 2008-jan-31
- Labels, goto and halt statements can now be used in state
code.
- Labels can be specified when changing state.
- States no longer loop automatically. Existing code must be updated.
- Improved dsss.conf files and restructured directories for better
compatability with DSSS.
- Hugely simplified scope handling code in the compiler, and rewrote
the entire type system.
- D version of 'sdltest' switched to DerelictSDL.
- All makefiles have been removed, except the ones that compile C++
examples.
0.3 (prealpha) 2007-dec-30
- Made some workarounds to avoid DMD template bugs
- Full support for DSSS and Rebuild
- Should also work with GDC now (not extensively tested.)
- Example 'sdltest' can turn off graphics with the 'g' key
- C++ file monster.h is somewhat more const correct
- Compiler mcc prints file names to stdout
0.2 (prealpha) 2007-dec-20
- C++ bindings
- All examples are now implemented in both D and C++
- Binary (static library) download for C++ (no D compiler
required)[1]
- New utility programs (autogen_d, autogen_c) that automate
creation of native code for D and C++
- Completely removed the redundant 'void' type from the language
- Compiler 'mcc' can compile multiple files at once (eg. 'mcc *.m')
- More examples, including SDL example
- Restructured the vm code quite a bit
- Can now bind functions (as well as delegates) to native functions
- Added util/freelist.d and util/growarray.d and several other files
- Multiple classes and object now fully implemented (but no inheritance yet)
- Lots of small improvements and bug fixes
[1] Binary downloads have been removed again, they simply took
too much work to maintain. They will return in the future.
0.1 (prealpha) 2007-sep-03