Package Manager
The package manager has received several enhancements to improve navigation and display more information about packages, including icons, statuses, and descriptions. Some of these features are not yet available for users to add to their own packages without manual configuration, but they will be supported in future releases.
- The package manager now displays icons for packages that declare them in their manifest.
- Packages can specify a status, such as "alpha" or "beta," which is shown in the package manager.
- Categorized package collections are now presented, organized by specific use cases to enhance discoverability and navigation.
Execution Engine
The Midio engine has been upgraded across multiple subsystems to improve performance, especially for tasks that spawn many processes.
- A new timing module has been introduced, significantly improving the performance of functions like
Std.Delay
. It also enables internal capabilities, such as allowing async functions to declare timeouts. - The engine now uses a shared thread pool to run blocking tasks, making process spawning much more efficient.
- Traces are now only reported for processes that have actually been executed.
Search
Searching with Ctrl/Cmd-F is now much more relevant and effective for finding the code you're looking for.
- Ctrl/Cmd-F now searches only within the currently selected module, function, or event.
- Shift-Ctrl/Cmd-F searches the entire project.
Changes
- Changes to inline expressions are now committed only when the input box loses focus, reducing transient error messages while typing.
- The selected entry point is now persisted in local storage.
- Various visual improvements have been made to the project settings panel.
Bug Fixes
- Fixed a bug that caused the entry point selector combobox to fail to reposition its item list when changing selections.
- Resolved several issues related to the entry point picker.
Standard Library
Changes
- Added a
timeout
input toChannel.ReceiveFromChannel
, allowing you to set a maximum wait time when receiving messages in blocking mode. - Added support for configuring delimiters and comment characters when parsing CSV data with
Std.CSV.Parse
. - Combined this with the previous bullet to clarify that you can now configure the delimiter as well as comment characters when parsing CSV data with
Std.CSV.Parse
inStd.CSV.Parse
.
Additions
We’ve added basic functions to the Object
and List
modules that allow direct mutation of objects. Use these functions carefully, as mutation can lead to code that is harder to debug if misused.
Std.List.AddItemMutating
– A version ofAdd
that mutates the input list. This is useful when you need to modify a nested list in place.Std.List.RemoveItemMutating
– A mutating version ofRemoveItem
.Std.List.SetAtMutating
– A mutating version ofSetAt
.Std.Object.SetValueMutating
– A mutating version ofObject.SetValue
.Std.EphemeralStore.GetOrSetDefault
– A helper function that retrieves a value from the ephemeral store with a fallback default.
New Experimental Library: web-tools
This release introduces an experimental native library called web-tools
, which provides a few useful operations. As this package is experimental, its API may change substantially in future releases, so avoid relying on it heavily for now.
- Crawling – Crawl a domain and extract links and page content.
- HtmlToMarkdown – Convert HTML to Markdown.