github enso-org/enso enso-0.2.12-SNAPSHOT.2021-06-24
Enso Nightly 0.2.12-SNAPSHOT.2021-06-24

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.

Don't miss a new enso release

NewReleases is sending notifications on new releases.