Downloads
Download 1.0 alpha 3 here.
Features:
- Efficient, lightweight actors
- Efficient, lightweight message passing
- Multicore aware runtime system with active workload rebalance
- Functions, with overloading
- Objects, with feature based modeling
- Constructors, copy constructors, and destructors
- Arrays, multidimensional arrays
- Dictionaries
- Basic foreign function interface via the “extern” keyword
- Conditional blocks
- Loop blocks (’while’ and ‘for’)
- Exceptions
- Enumerations
- Namespaces
- Variable type inference, easy variable declarations
- Strings
Known issues:
- There are some memory leaks in certain corner cases. This is due to using manual memory management and not a garbage collector, and should change in the future.
- Spawning a normal actor within an isolated actor should upconvert the normal actor to also be isolated, but this is not yet in place. As a result, actors spawned by an isolated actor may not work properly if they are not explicitly isolated actors themselves.
- There isn’t much prelude/support library to speak of. This will likely be fixed for alpha 4 / beta 1.
Please Note: The Minnow programming language, as presented in alpha 3, is subject to change. Having said that, in its current form the language is very close to the form that will be used in the 1.0 release. Syntax changes that break code written against alpha 3 should be rare and will be documented.
It’s also worth noting that this is an alpha – and still very proof-of-concept. It’s not meant for industrial grade development yet, rather, it’s a way to try out a few ideas in a new programming language. Having said that, if you find issues or bugs, let us know.
Requirements:
- gcc/g++ (or equivalent)
- cmake 2.60 (or newer)
Usage:
Compile the “minnow” executable from the root directory using the commands:
- cmake -DCMAKE_BUILD_TYPE=gdb .
- make
This will build the systems with -O3, while still keeping gdb information. Once compiled, you can compile one of the samples from the root directory by running:
In Linux and OS X
- ./bin/minnowc samples/hello.mno -o samples/hello
In Windows:
- .\bin\minnowc.exe samples\hello.mno -o samples\hello.exe
The “-o” option will convert the minnow source to C and then use the compile line in main.cpp to try to compile it to an executable. If the compile doesn’t work for you, try changing the line to better match your setup. If that still doesn’t seem to fix it, you can work on the C output directly by leaving off the “-o” option:
- ./bin/minnowc samples/hello.mno