[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