[Mono-list] Nemerle 0.1.3 released

Michal Moskal feedback@nemerle.org
Sun, 30 May 2004 20:47:49 +0200


The 0.1.3 source tarball of Nemerle compiler has hit our server.

This release should work just fine with mono beta preview (that is it
handles GAC, though Nemerle assemblies are not yet installed in the
GAC).

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?