Ela Platform 2012.1

Rating: No reviews yet
Downloads: 64
Released: May 28, 2012
Updated: May 28, 2012 by vorov2
Dev status: Beta Help Icon

Recommended Download

Application Ela Platform 2012.1
application, 1013K, uploaded May 28, 2012 - 64 downloads

Release Notes

This is the first release of Ela Platform. Ela Platform includes the following components:
  • Standalone Ela implementation (.NET 2.0, Mono 2.6)
  • Ela Console - interactive environment (.NET 2.0, Mono 2.6)
  • Ela standard library (.NET 2.0, Mono 2.6)
  • Documentation and code samples
  • Elide, Ela graphical development environment (.NET 4.0+, Win)

This particular release includes a first version of Elide and documentation library as well as new versions of Ela Console, Ela standard library
and a major new version of Ela (0.10).

Ela changes
  • Fix:ForceRecompile setting for Ela linker didn't work correctly.
  • Fix:A bug fixed in serialization of NewMod op code (invalid instruction size).
  • New:Now debug info (required to build good stack traces) is written to the object files.
  • Change:Pushelem op code stack behavior has changed - it now processes values on a stack in a reverse order.
  • Change:A bug fixed in compilation logic of pattern matching for variants. A value against which a match is done can be mutated internally by an error which could cause a correct pattern to fail.
  • Change:An indexing syntax 'x.y' is now decomissioned. One should use indexing operator from prelude (:) for similar purpose.
  • New:Now 'where' bindings can be attached to expression at top-level.
  • Change:Operators '|>' and '<|' are no longer syntax but regular functions defined in Prelude. Their behavior and performance haven't changed.
  • Change:Syntax for 'raise' expression is simplified. Parens are now not required around error message, e.g. 'raise Failure "msg"' is valid.
  • Change:Assignment operator (<-) is decomissioned. Now base Ela implementation is completely pure. Support for mutation state however can be added through libraries.
  • Change:Records no longer support mutable fields, all record fields are always immutable.
  • Change:Variable resolving and referencing have been rewritten in compiler and linker. Binary format has changed as is now incompatible with old format.
  • New:(experimental) A new 'extends' attribute is introduced. Using this attribute one can write functions that extend already existing functions by additional pattern matchings clauses.
  • Change:Minor internal virtual machine optimizations.
  • Fix:A bug fixed in a linker - in some cases it didn't provide a file name for compiler errors.
  • New:Now ElaFunction expose a set of instance ToDelegate methods that converts an Ela function to a .NET delegate.
  • Change:Now when opening a module in Ela code this module binds to a private (not exported) name.
  • Change:Now Ela allows hiding of names in a global scope.
  • Fix:A bug fixed in mutually recursive binding (et-bindings) - the names weren't always resolved correctly which could cause a VM crush.
  • Fix:A bug fixed in implementation of Callt op code. Sometimes when calling external function it could cause internal VM state corruption.
  • Change:Now concatenation operation (++) works for all data types. The default implementation is equivalent to 'show x ++ show y'. Concat for tuples, lists, etc. works differently, as it used to.
  • Change:Parser and compiler behavior and error messages are improved when compiling conditional structures (if/else and guards). Now compiler generates a new ElseMissing error and an AddElse hint.
  • Change:Now there is no separate implementation for GetField/SetField methods. They are implemented as indexers through GetValue/SetValue.
  • Change:Hasfld op code renamed to Has.
  • New:Now variants support conversion to string using toString Prelude function.
  • Fix:Now let-bindings are processed more correctly in 'et' (mutual recursive) declarations.
  • Change:Now compiler doesn't generate redundant lexical scope when compiling if/then/else expression.
  • Change:Now compiler doesn't generate redundant lexical scope when compiling try/with expression.
  • Change:EIL generator now accepts settings - it can ignore debug info and omit offsets for op codes. Output format is also slightly altered.
  • Fix:A bug fixed in

Reviews for this release

No reviews yet for this release.