enso/RELEASES.md
2021-02-15 10:13:31 +00:00

6.7 KiB

Enso 0.2.3 (2021-02-15)

Tooling

  • Improved the robustness of the project manager and language server in the presence of rapid restarts (#1463).

Libraries

  • Significantly improved the efficiency of visualising large tables through zero-cost translation to Enso's vectors (#1476).

Known Issues

  • This is a beta release, so please see the issue tracker for issues opened before the release date.

Enso 0.2.2 (2021-02-11)

Language

  • Significantly improved the way that dataflow errors and panics are handled in the interpreter. They now flow through the program in a far more seamless fashion, and panics are supported properly in the IDE without the whole program dying (#1433).
  • Significantly improved the syntax and semantics for FFI with JVM languages, making it far more of a first-class citizen in Enso (#1443).
  • Added support for polyglot JavaScript definitions to Enso (#1451). These allow users to write JavaScript inside Enso, and seamlessly call between Enso and JS code.

Interpreter/Runtime

  • Fixed an issue where executing a host value could result in a NullPointerException due to a missing null check (#1413).
  • Fixed an issue where dataflow analysis was incorrectly tracking usages of undefined variables. This resulted in problems for the runtime server (#1421).

Tooling

  • Added support for collection of profiling information about the running program to the language server protocol (#1407). Initial support is for collection of execution-time information.
  • Updated the default main in a new Enso project to be more IDE friendly (#1419).
  • Added support for panic sentinels in the runtime instrument, allowing the language server to trace the expressions affected by a panic while still executing others (#1436).
  • Added support for checking the Enso version for a particular project in the project manager, allowing the IDE to improve compatibility with multiple versions (#1454).

Libraries

  • Updated the way that we use dataflow errors in the standard libraries, making our Base functionality much more amenable to working in the IDE (#1446).

Known Issues

  • This is a beta release, so please see the issue tracker for issues opened before the release date.

Enso 0.2.1 (2021-01-15)

Language

  • Removed Uniform Function Call Syntax, making the language much more predictable and allowing the compiler to provide improved diagnostics for common mistakes.

Interpreter/Runtime

  • Return correct qualified names for modules at runtime, ensuring that the compiler and interpreter agree.

Tooling

  • Improve the handling of bundled components with the Project Manager, ensuring rapid startup and easy integration with the IDE.
  • Fixed the reflection configuration for the Project Manager, fixing a bug where it was unable to extract archives on Windows.
  • The Language Server now uses qualified names in its messages, fixing a class of bugs where the IDE and Tooling did not agree on what a given expression was.
  • Fixed mis-handling of tags in the documentation parsing infrastructure.

Libraries

  • Implemented a stub file for the functionality built into the interpreter. This allows us to provide comprehensive documentation about this functionality for display in the IDE and for reading by library users.
  • Added aggregation functionality to the Table library, allowing users to group their data.

Known Issues

  • This is a beta release, so please see the issue tracker for issues opened before the release date.

Enso 0.2.0 (2021-01-05)

Language

The initial version of the Enso language, with most language features functioning.

  • Flexible and concise syntax for the construction of functional programs, including pattern matching and lambdas.
  • Support for currying, named and defaulted arguments, and operator sections.
  • Support for user-defined data-types with fields and dynamically-dispatched methods on them.
  • Importing and working with Java code in a seamless fashion using polyglot imports.
  • Functional monadic state and error handling, through the use of data errors and panics.
  • Opt-in tail-call optimisation.

Interpreter/Runtime

  • The initial version of the interpreter and runtime.

Type System

  • Nothing.

Tooling

  • The initial version of the Enso Launcher and Project Manager, supporting:
    • Installation and management of Enso releases, and the GraalVM runtimes on which they depend.
    • Aggregation of logs from the various Enso service components.
    • Basic project management functionality.
    • Initialisation and set-up of a language server for a specific project.
  • The initial version of the Enso Language Server, supporting:
    • Dynamic introspection and modification of the running Enso program.
    • Caching of intermediate values in computations, ensuring that only necessary parts of the program are recomputed on a change.
    • Intelligent suggestions based on semantic analysis of the code.
    • Attaching visualisation code to values in the running Enso program.

Libraries

  • The initial version of Base, the core library, supporting:
    • Functionality for working with core types like Integer, Decimal, and Text.
    • Common data structures such as List, Vector, and Map.
    • Support for working with JSON data.
    • Support for working with HTTP endpoints.
    • Support for interacting with files and processes on the local machine.
    • Support for working with polyglot entities.
    • Support for metaprogramming the Enso language.
  • The initial version of the Enso Table library for working with tabular data.
  • The initial version of the Enso Test library, containing testing and benchmarking utilities.

Stabilised Features

  • A list of stabilised APIs and/or features.

Misc

  • Nothing.

Known Issues

  • This is a beta release, so please see the issue tracker for issues opened before the release date.

Internal Only

  • Nothing