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.
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 theBase
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 themain
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.