enso/CHANGELOG.md
Jaroslav Tulach e47eb49ea8
Removing need for asynchronous thread to execute ResourceManager finalizers (#6335)
While Enso runs single-threaded, its `ResourceManager` required additional asynchronous thread to execute its _"finalizers"_. What has been necessary back then is no longer needed since _GraalVM 21.1_. GraalVM now provides support for submitting `ThreadLocalAction` that gets then picked and executed via `TruffleSafepoint` locations. This PR uses such mechanism to _"inject"_ finalizer execution into already running Enso evaluation thread.

Requiring more than one thread has complicated Enso's co-existence with other Truffle language. For example Graal.js is strictly singlethreaded and used to refuse (simple) co-existence with Enso. By allowing Enso to perform all its actions in a single thread, the synergy with Graal.js becomes better.
2023-04-20 13:33:45 +02:00

76 KiB

Next Release

Visual Environment

EnsoGL (rendering engine)

Enso Standard Library

Enso Compiler

Enso 2.0.0-alpha.18 (2021-10-12)


New Features

Enso Compiler

  • [Updated Enso engine to version 0.2.30][engine-0.2.31]. If you're interested in the enhancements and fixes made to the Enso compiler, you can find their release notes here.


Bug Fixes

Visual Environment

  • Fixed freezing after inactivity. When the IDE window was minimized or covered by other windows or invisible for any other reason for a duration around one minute or longer then it would often be frozen for some seconds on return. Now it is possible to interact with the IDE instantly, no matter how long it had been inactive.

Enso 2.0.0-alpha.17 (2021-09-23)


Bug Fixes

Visual Environment



New Features

Enso Compiler

Enso 2.0.0-alpha.16 (2021-09-16)


New Features

Visual Environment

  • Auto-layout for new nodes. When a node is selected and a new node gets created below using Tab then the new node is automatically positioned far enough to the right to find sufficient space and avoid overlapping with existing nodes.

Enso Compiler


Bug Fixes

Visual Environment


Enso 2.0.0-alpha.15 (2021-09-09)


Bug Fixes

Visual Environment

Enso 2.0.0-alpha.14 (2021-09-02)


New Features

Visual Environment

  • Visualization previews are disabled. Previously, hovering over a node's output port for more than four seconds would temporarily reveal the node's visualization. This behavior is disabled now.

Enso Compiler

Enso 2.0.0-alpha.13 (2021-08-27)


New Features

Enso Compiler

Enso 2.0.0-alpha.12 (2021-08-13)


New Features

Visual Environment

Enso Compiler

Enso 2.0.0-alpha.11 (2021-08-09)

This update contains major performance improvements and exposes new privacy user settings. We will work towards stabilizing it in the next weeks in order to make these updates be shipped in a stable release before the end of the year.


New Features

Visual Environment

Enso Compiler

  • [Updated Enso engine to version 0.2.22][1762]. If you are interested in the enhancements and fixes made to the Enso compiler, you can find out more details in the engine release notes.


Bug Fixes

Visual Environment

Enso 2.0.0-alpha.10 (2021-07-23)


New Features

Enso Compiler


Enso 2.0.0-alpha.9 (2021-07-16)


New Features

Visual Environment

  • Improved undo-redo. Node selection, enabling/disabling visualisations and entering a node are now affected by undo/redo and are restored on project startup.

Enso 2.0.0-alpha.8 (2021-06-09)


New Features

Enso Compiler


Enso 2.0.0-alpha.7 (2021-06-06)


New Features

Visual Environment


Bug Fixes

Visual Environment

  • Fix node selection bug . Fix nodes not being deselected correctly in some circumstances. This would lead to nodes moving too fast when dragged [1650] or the internal state of the project being inconsistent [1626].

Enso 2.0.0-alpha.6 (2021-06-28)


New Features

Visual Environment

  • [Profling mode.][1546] The IDE contains a profiling mode now which can be entered through a button in the top-right corner or through the keybinding ctrl+p. This mode does not display any information yet. In the future, it will display the running times of nodes and maybe more useful statistics.
  • Area selection. You can now select multiple nodes at once. Just click and drag on the background of your graph and see the beauty of the area selection appear.
  • Opening projects in application graphical interface. Press cmd+o to bring the list of projects. Select a project on the list to open it.
  • Initial support for undo-redo. Press cmd+z to undo last action and cmd+z to redo last undone action. This version of undo redo does not have proper support for text editor and undoing UI changes (like selecting nodes).

EnsoGL (rendering engine)


Bug Fixes

Visual Environment

Enso Compiler

Enso 2.0.0-alpha.5 (2021-05-14)


New Features

Visual Environment

  • Create New Project action in Searcher. When you bring the searcher with tab having no node selected, a new action will be available next to the examples and code suggestions: Create New Project. When you choose it by clicking with mouse or selecting and pressing enter, a new unnamed project will be created and opened in the application. Then you can give a name to this project.
  • Signed builds. Our builds are signed and will avoid warnings from the operating system about being untrusted.

EnsoGL (rendering engine)


Bug Fixes

Visual Environment

Enso Compiler

If you're interested in the enhancements and fixes made to the Enso compiler, you can find their release notes here.


Enso 2.0.0-alpha.4 (2021-05-04)


New Features

Visual Environment

  • Window management buttons.. The IDE now has components for "fullscreen" and "close" buttons. They will when running IDE in a cloud environment where no native window buttons are available.
  • Customizable backend options. When invoking Enso IDE through command line interface, it is possible to add the -- argument separator. All arguments following the separator will be passed to the backend.
  • Added --verbose parameter. If --verbose is given as command line argument, the IDE and the backend will produce more detailed logs.


Bug Fixes

Visual Environment

Enso Compiler

If you're interested in the enhancements and fixes made to the Enso compiler, you can find their release notes here.


Enso 2.0.0-alpha.3 (2020-04-13)


New Learning Resources


New Features

Visual Environment

  • The status bar reports connectivity issues. The IDE maintains a connection to the Enso Language Server. If this connection is lost, any unsaved and further work will be lost. In this build we have added a notification in the status bar to signal that the connection has been lost and that the IDE must be restarted. In future, the IDE will try to automatically reconnect.
  • Visualizations can now be maximised to fill the screen by selecting the node and pressing space twice. To quit this view, press space again.
  • Visualizations are previewed when you hover over an output port. There is now a quick preview for visualizations and error descriptions. Hovering over a node output will first show a tooltip with the type information and then, after some time, will show the visualization of the node. This preview visualization will be located above other nodes, whereas the normal view, will be shown below nodes. Errors will show the preview visualization immediately. Nodes without type information will also show the visualization immediately. You can enter a quick preview mode by pressing ctrl (or command on macOS), which will show the preview visualization immediately when hovering above a node's output port.
  • Database Visualizations. Visualizations for the Database library have been added. The Table visualization now automatically executes the underlying query to display its results as a table. In addition, the SQL Query visualization allows the user to see the query that is going to be run against the database.
  • Histogram and Scatter Plot now support Dataframes. The Table and Column datatypes are properly visualized. Scatter Plot can display points of different colors, shapes and sizes, all as defined by the data within the Table.
  • Many small visual improvements. See the source issue for more details.
  • The dark theme is officially supported now. You can start the IDE with the --theme=dark option to enable it.
  • You can hide the node labels with the --no-node-labels option. This is useful when creating demo videos.
  • Added a Heatmap visualization. Just as for the Scatter Plot, it supports visualizing Table, but also Vector.
  • Add a background to the status bar.
  • Display breadcrumbs behind nodes and other objects.
  • Image visualization.. Visualizations for the Enso Image library. Now you can display the Image type and a string with an image encoded in base64. The histogram visualization has been adjusted, allowing you to display the values of the precomputed bins, which is useful when the dataset is relatively big, and it's cheaper to send the precomputed bins rather than the entire dataset.
  • [Output type labels.][1427] The labels, that show the output type of a node on hover, appear now in a fixed position right below the node, instead of a pop-up, as they did before.


Bug Fixes

Visual Environment

EnsoGL (rendering engine)

Enso Compiler

If you're interested in the enhancements and fixes made to the Enso compiler, you can find their release notes here.


Enso 2.0.0-alpha.2 (2020-03-04)

This is a release focused on bug-fixing, stability, and performance. It improves the performance of workflows and visualizations, and improves the look and feel of the graphical interface. In addition, the graphical interface now informs the users about errors and where they originate.


New Learning Resources


New Features

Visual Environment


Bug Fixes

Visual Environment

  • You can now use the table visualization to display data frames. Please note, that large tables will get truncated to 2000 entries. This limitation will be lifted in future releases.
  • Performance improvements during visual workflow. Nodes added with the searcher will have their values automatically assigned to newly generated variables, which allows the Enso Engine to cache intermediate values and hence improve visualization performance.
  • Minor documentation rendering fixes. Fixed cases where text would be misinterpreted as a tag, added support for new tag types, added support for more common characters, properly renders overflowing text.
  • Improved handling of projects created with other IDE versions. The IDE is now better at dealing with incompatible metadata in files, which stores node visual position information, the history of chosen searcher suggestions, etc. This will allow IDE to correctly open projects that were created using a different IDE version and prevent unnecessary loss of metadata.
  • Pressing and holding up and down arrow keys make the list view selection move continuously.
  • The shortcuts to close the application and to toggle the developer tools at runtime now work on all supported platforms.
  • The loading progress indicator remains visible while IDE initializes. Previously the loading progress indicator completed too quickly and stopped spinning before the IDE was ready. Now it stays active, giving a visual indication that the initialization is still in progress.
  • Fixed visual glitch where a node's text was displayed as white on a white background. Most notably this occurred with the output node of a function generated using the node collapse refactoring.
  • Many visual glitches were fixed, including small "pixel-like" artifacts appearing on the screen.
  • Several parser improvements. The parser used in the IDE has been updated to the latest version. This resolves several issues with language constructs like import, lambdas, and parentheses, whereupon typing certain text the edit could be automatically reverted.
  • The auto-import functionality was improved. Libraries' Main modules are omitted in expressions inserted by the searcher. For example, the point method of Geo library will be displayed as Geo.point and will insert import Geo instead of Geo.Main.
  • Cursors in text editors behave correctly now (they are not affected by scene pan and zoom). This was possible because of the new multi-camera management system implemented in EnsoGL.
  • Fixed method names highlighted in pink. There was a bug introduced after one of the latest Engine updates, that sent Unresolved_symbol types, which made all methods pink. This is fixed now.

EnsoGL (rendering engine)

  • A new multi-camera management system, allowing the same shape systems to be rendered on different layers from different cameras. The implementation automatically caches the same shape system definitions per scene layer in order to minimize the amount of WebGL draw calls and hence improve performance.
  • A new depth-ordering mechanism for symbols and shapes. It is now possible to define depth order dependencies between symbols, shapes, and shape systems.
  • Various performance improvements, especially for the text rendering engine.
  • Display objects handle visibility correctly now. Display objects are not visible by default and need to be attached to a visible parent to be shown on the screen.

Enso Compiler

If you're interested in the enhancements and fixes made to the Enso compiler, you can find their release notes here.


Enso 2.0.0-alpha.1 (2020-01-26)

This is the first release of Enso, a general-purpose programming language and environment for interactive data processing. It is a tool that spans the entire stack, going from high-level visualization and communication to the nitty-gritty of backend services, all in a single language.


Release Notes

Anonymous Data Collection

Please note that this release collects anonymous usage data which will be used to improve Enso and prepare it for a stable release. We will switch to opt-in data collection in stable version releases. The usage data will not contain your code (expressions above nodes), however, reported errors may contain brief snippets of out of context code that specifically leads to the error, like "the method 'foo' does not exist on Number". The following data will be collected:

  • Session length.
  • Graph editing events (node create, dele, position change, connect, disconnect, collapse, edit start, edit end). This will not include any information about node expressions used.
  • Navigation events (camera movement, scope change).
  • Visualization events (visualization open, close, switch). This will not include any information about the displayed data nor the rendered visualization itself.
  • Project management events (project open, close, rename).
  • Errors (IDE crashes, WASM panics, Project Manager errors, Language Server errors, Compiler errors).
  • Performance statistics (minimum, maximum, average GUI refresh rate).