# Enso 0.2.5 (2021-02-26) ## Interpreter/Runtime - Fixed an issue where the parser would crash on partial inputs, causing issues for both the engine and IDE ([#1509](https://github.com/enso-org/enso/pull/1509)). - Fixed a problem where `Type_Error`s would not be displayed properly when pretty printed ([#1504](https://github.com/enso-org/enso/pull/1504)). - Fixed an issue with `_` desugaring where it would not desugar correctly when used in function position ([#1512](https://github.com/enso-org/enso/pull/1512)). ## Tooling - Fixed an issue where suggestions were sometimes not being provided for modules other than `Base` ([#1507](https://github.com/enso-org/enso/pull/1507)). - Fixed a few issues where expression and value updates were not sent when they should be ([#1516](https://github.com/enso-org/enso/pull/1516), [#1522](https://github.com/enso-org/enso/pull/1522), and [#1508](https://github.com/enso-org/enso/pull/1508)). ## Libraries - Fixed a bug where sorting boolean columns in a `Table` would produce incorrect output ([#1505](https://github.com/enso-org/enso/pull/1505)). ## Known Issues - This is a beta release, so please see the [issue tracker](https://github.com/enso-org/enso/issues?q=is%3Aissue+is%3Aopen+created%3A%3C2021-02-26) for issues opened before the release date. # Enso 0.2.4 (2021-02-23) ## Interpreter/Runtime - Fixed another issue where dependency analysis was operating at too fine a granularity ([#1495](https://github.com/enso-org/enso/pull/1495)). - Moved all user-facing errors to in-Enso errors, allowing them to be presented properly in the IDE, and interacted with by users ([#1487](https://github.com/enso-org/enso/pull/1487)). ## Tooling - Fixed an issue where the runtime server would not send correct expression payloads for dataflow errors ([#1484](https://github.com/enso-org/enso/pull/1484)). ## Libraries - Added "pretty" representations to all Error types, allowing for better display in the IDE ([#1498](https://github.com/enso-org/enso/pull/1498)). - Updated the Table library with a raft of additional features ([#1489](https://github.com/enso-org/enso/pull/1489)). This includes table concatenation, direct indexing and column aggregation, as well as a general clean-up of the API pre-stabilisation. - Added a flexible sorting mechanism to the Table library ([#1471](https://github.com/enso-org/enso/pull/1471)). ## Known Issues - This is a beta release, so please see the [issue tracker](https://github.com/enso-org/enso/issues?q=is%3Aissue+is%3Aopen+created%3A%3C2021-02-23) for issues opened before the release date. # 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](https://github.com/enso-org/enso/pull/1463)). ## Libraries - Significantly improved the efficiency of visualising large tables through zero-cost translation to Enso's vectors ([#1476](https://github.com/enso-org/enso/pull/1476)). ## Known Issues - This is a beta release, so please see the [issue tracker](https://github.com/enso-org/enso/issues?q=is%3Aissue+is%3Aopen+created%3A%3C2021-02-15) 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](https://github.com/enso-org/enso/pull/1433)). - Significantly improved the syntax and semantics for FFI with JVM languages, making it far more of a first-class citizen in Enso ([#1443](https://github.com/enso-org/enso/pull/1443)). - Added support for polyglot JavaScript definitions to Enso ([#1451](https://github.com/enso-org/enso/pull/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](https://github.com/enso-org/enso/pull/1413)). - Fixed an issue where dataflow analysis was incorrectly tracking usages of undefined variables. This resulted in problems for the runtime server ([#1421](https://github.com/enso-org/enso/pull/1421)). ## Tooling - Added support for collection of profiling information about the running program to the language server protocol ([#1407](https://github.com/enso-org/enso/pull/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](https://github.com/enso-org/enso/pull/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](https://github.com/enso-org/enso/pull/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](https://github.com/enso-org/enso/pull/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](https://github.com/enso-org/enso/pull/1446)). ## Known Issues - This is a beta release, so please see the [issue tracker](https://github.com/enso-org/enso/issues?q=is%3Aissue+is%3Aopen+created%3A%3C2021-02-10) 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](https://github.com/enso-org/enso/issues?q=is%3Aissue+is%3Aopen+created%3A%3C2021-01-15) 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