[nem-en] Nemerle 0.1.3 released
Michal Moskal
malekith at pld-linux.org
Sun May 30 20:39:13 CEST 2004
The 0.1.3 source tarball of Nemerle compiler has hit our server.
Nemerle is a new hybrid (functional, object-oriented and imperative)
programming language for the .NET platform.
Key features of the language include:
* simplicity
* C#-like syntax
* easy to use object system (derived directly from the .NET)
* easy access to both functional and imperative features
* powerful code-generating macros
* variants
* pattern matching
* static and on-demand dynamic typing
* type inference.
The DEB packages might be a bit out of sync, they should be fixed
soon. MSI and RPM packages (as well as the source tarball of course)
are OK.
The source tarball can be downloaded from:
http://nemerle.org/download/nemerle-0.1.2.tar.gz
And other packages as usual from:
http://nemerle.org/download.html
New features in this release include (from the NEWS file):
#v+
0.1.3, May 30 2004
This is an incremental release before 0.2.0, it has some more .NET
connectivity features, although a few things are still missing (before
we can call Nemerle a CLS extender).
New language features in this release:
* Properties and events can be now defined. Syntax is mostly the
same as in C#.
* Basic custom attribute support has been added. We do not support
attribute targets nor attributes on parameters yet.
* Enums can be now defined.
* +=, -=, *= etc operator on numbers.
* Delegates can be now invoked like d() (not only d.Invoke()).
+= and -= operators are overloaded for events and delegates to do
The Right Thing(tm).
* Macros can be now defined on declarations (types, methods, fields
etc). They are run using attribute syntax.
* Preprocessor supporting conditional compilation has been added.
It shares semantics with one from C#, -define (aka -D) flag is also
supported.
* Methods can be now defined inside variants. Thus a few library
changes, like addition of ToString and + operator to list type.
* Operators can be now overloaded (in addition to adding new).
* Fields in classes can now have initializers (these are added
to ctor).
Other stuff:
* External types are now stored in a specially crafted tree. All types
are loaded on startup, but this saves time later.
* Syntax extensions tied to macros are now activated only within
namespace of given macro.
* -pkg-config switch has been added, so external libraries (like
Gtk#) can be easily linked, using -pkg:gtk-sharp.
* -no-stdlib option now prevents mscorlib.dll and System.dll from being
loaded, -library-path now works for them too.
* ncc can now handle @response files.
* Matching is being reworked, matching on variants is now a lot faster
than it used to be.
* Some hacks to allow mono GAC usage (available in mono 0.91+, we do *not*
require this beta version though).
* There is new [Record] macro that adds record like constructor to given
class, there is no automatic constructor creation except for variant
options now.
* API for changing types from macros is being constantly reworked
and improved.
* List.Member and the like instead of physical == equality use Equals()
method.
* Several bugfixes, some critical, as usual.
#v-
Have a nice testing!
--
: Michal Moskal :: http://www.kernel.pl/~malekith :: GCS !tv h e>+++ b++
: ::: Logic is a nice contrast to the Real World. :: UL++++$ C++ E--- a?
More information about the devel-en
mailing list