We’re happy to announce Roto version 0.13.0! The highlights of this release are a formatter and limited support for dependencies.
As always you can find the release in the following places:
You can find the full list of changes below!
Meta
- To open a PR, you must now check a few boxes to confirm that you’re adhering to our code of conduct and LLM policy.
Language
Breaking changes
Added
- Added the exponentiation operator
**for integers and floats. Thanks, @sha90w! (#463) - Added the
List.setmethod for updating values in a list. Thanks, @lazyeye! (#468) - There is now limited support for adding dependencies to scripts. Dependencies can be accessed with the
depkeyword. For instance, to access a package calledhttp, you can writedep.http. Thepkgkeyword always refers to the current package. (#469) - The standard library now lives under the
stdprefix. This is not a breaking change because the everything that was in the global scope previously is now reexported in the global scope. This means that, for example,i32is now available both asi32andstd.i32. (#472)
Bug fixes
- Roto no longer panics on x86 when a jump larger than 2 GiB is needed to call a function. Thanks, @glebpom! (#461)
Crate
Breaking changes
-
The MSRV is now 1.96.
-
The
Packagetype is now calledBlob. (#469) -
The API is no longer exposed as a single module, but more structured to make it easier to navigate. (#469)
- Values passed to scripts now live under the
valuemodule. For example:RotoString,Val,Listand theValuetrait. - Anything related to context now lives under
runtime::context. - Registerable items now live under
runtime::items. - Types related to loading scripts now live under
load.
- Values passed to scripts now live under the
Added
- Added an experimental formatter. We don’t recommend using this in production at this point but please send us feedback on it. This is available as the functions
roto::fmt::fmt_pathandroto::fmt::fmt_string. The CLI also has a newfmtsubcommand. (#449) - Dependencies for a script can be added to the compilation with the
Runtime::compile_with_depsmethod, provided that a dependency source has been defined. (#469)
Documentation
- The API documentation for the crate no longer includes the content from the README.
- The manual is now entirely written in Markdown instead of reST.