New
Version 0.9.0
0.9.0 (June 5, 2023)
There were over one thousand commits since the last release, with the main areas of change including:
- Add
Module.namesto get the symbols in a module. - Change iterators on
Valueto support reduced stack space and enable future garbage collection, removingiterate_collectandwith_iterator. - Improve DAP (debugger) support.
- Improve the performance and fix a few bugs in
%string formatting. - Introduce
StarlarkTypeRepras a trait for things that have a type representation. - Optimise and increase standards conformance of the Starlark standard library.
- Rework how
List/Dictare specified, making their internals private and introducingListRef/DictReffor pointers to them. - Add
AllocStruct,AllocListandAllocDictas helpers to allocate the various types more efficiently. - Remove the
dedupeStarlark function. - Integrate with the
allocativecrate to support theAllocativetrait. - Add more
Traceimplementations. - Support type annotations on assignments.
- Make
Module.loadsalso return theFileSpan. - Add
FrozenModule.get_option. - Add support for integers greater than 32 bits.
- Move to a separate
starlark_mapcrate forSmallMapand optimise it. - Require the
starlark_type!macro. - Change
Module.extra_vto beValue<'v>. - Expose
FrozenHeapfromFreezerandGlobalsBuilder. - Remove
Value::new_int. - In
starlark_modulefunctions must be more explicit - returnanyhow::Result, have an explicit'vparameter, explicitheap/evalarguments. - Add
StringValueLiketo cover string types that are values. - Change the
jsonextension method to bejson.encodeandjson.decode. - Support stable Rust.
- Inline all the relevant pieces of the
gazebolibrary. - Change all
starlark_moduleannotations to be#[starlark(...)],#[starlark(require = named)]for name-only parameters. - Many performance optimisations.
- Change the API for profiling and add new profiling features.
- Make the
starlarkbinary spawn the REPL by default. - Many improvements and API changes to the documentation generation code.
- Many improvements to the LSP code.
- Add a
Dialectoption to enable types.