github enso-org/enso enso-0.2.12
Enso Engine 0.2.12

Interpreter/Runtime

  • Upgraded the underlying runtime to GraalVM 21.1.0 (#1738). This brings a raft of bug-fixes and improvements to how quickly Enso can reach its peak performance.
  • Added support for bidirectional dataflow tracking to the DataflowAnalysis pass (#1748). This will allow the interpreter to perform more detailed analyses in the future to enable optimisations and new features.

Tooling

  • Added support for higher-kinded types in suggestions in the language server (#1712). This allows the searcher to make more accurate suggestions when working with collection types.
  • Fixed an issue where symlinks were not extracted properly when installing a runtime for Enso (#1718).
  • Implemented log masking (#1732). This feature masks personally identifiable information in the logs, such as code literals, computed values, and user environment variables.
  • Added support for evaluating one-shot expressions on the result values of arbitrary expressions (#1749). This is very useful for enabling more advanced introspection in the IDE.
  • Added the workspace/projectInfo endpoint to the language server (#1759). This allows the IDE to get information about the running project in contexts where the project manager isn't available or works differently.
  • Added the file/checksum endpoint to the language server
    (#1787). This allows the IDE to verify the integrity of files that it has transferred. The checksum is calculated in a streaming fashion so the checksummed file need not be resident in memory all at once.
  • Added support for reading and writing byte ranges in files remotely (#1795). This allows the IDE to transfer files to a remote back-end in a streaming fashion.
  • Added support for multiple content roots in the language server (#1800). It is not yet exposed to the IDE, as this will be done as part of future work.
  • Modified the package.yaml format in preparation for the library ecosystem (#1797). The engine-version field has been deprecated in favour of an edition field that allows to set up the engine version and dependency resolution using the upcoming Edition system. New tools will still be able to read the old format, but upon modification, they will save changes in the new format. As the edition file did not exist in the older version, old tools will actually correctly load the migrated package file (as we allow for unknown fields), but they will not know how to interpret the new edition field and so will fall back to using the default engine version, which may be unexpected. Ideally, after migration, the project should be used only with the new tools. The affected tools are the Launcher and the Project Manager.
  • Added documentation and a minimal tool for hosting custom library repositories (#1804).
  • Added documentationHtml field to Suggestions database entry (#1791).

Libraries

  • Overhauled the examples throughout the standard library (#1707, #1725, and #1731). These examples all now conform to a standard format and have been tested to work.
  • Made some miscellaneous fixes to the HTTP portion of the Base library that fix a few bugs (#1722).
  • Removed reflective access when loading the OpenCV library (#1727). Illegal reflective access operations were deprecated and will be denied in future JVM releases.
  • Overhauled the types we use for errors throughout the standard library (#1734). They are now much more informative, and should provide more clarity when things go wrong.
  • Re-wrote the documentation generator for the Enso website from Python into Scala (#1729). This has greatly improved the performance, enabling us to generate the documentation structure for the entire standard library 8-10 times faster than before.
  • Implemented Standard Library methods for controlling default visualizations in the graphical interface (#1786).

Miscellaneous

  • Adding a pipeline for automatic nightly builds (#1689). During the night after each workday any new changes to the main branch are built and released as a nightly build. The nightly builds can be useful to preview in-development features, but they should not be relied on as they are not considered stable. Only the 3 latest nightly builds are kept, so the nightly versions become obsolete very quickly.

Known Issues

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

Don't miss a new enso release

NewReleases is sending notifications on new releases.