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.names
to get the symbols in a module. - Change iterators on
Value
to support reduced stack space and enable future garbage collection, removingiterate_collect
andwith_iterator
. - Improve DAP (debugger) support.
- Improve the performance and fix a few bugs in
%
string formatting. - Introduce
StarlarkTypeRepr
as a trait for things that have a type representation. - Optimise and increase standards conformance of the Starlark standard library.
- Rework how
List
/Dict
are specified, making their internals private and introducingListRef
/DictRef
for pointers to them. - Add
AllocStruct
,AllocList
andAllocDict
as helpers to allocate the various types more efficiently. - Remove the
dedupe
Starlark function. - Integrate with the
allocative
crate to support theAllocative
trait. - Add more
Trace
implementations. - Support type annotations on assignments.
- Make
Module.loads
also return theFileSpan
. - Add
FrozenModule.get_option
. - Add support for integers greater than 32 bits.
- Move to a separate
starlark_map
crate forSmallMap
and optimise it. - Require the
starlark_type!
macro. - Change
Module.extra_v
to beValue<'v>
. - Expose
FrozenHeap
fromFreezer
andGlobalsBuilder
. - Remove
Value::new_int
. - In
starlark_module
functions must be more explicit - returnanyhow::Result
, have an explicit'v
parameter, explicitheap
/eval
arguments. - Add
StringValueLike
to cover string types that are values. - Change the
json
extension method to bejson.encode
andjson.decode
. - Support stable Rust.
- Inline all the relevant pieces of the
gazebo
library. - Change all
starlark_module
annotations 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
starlark
binary spawn the REPL by default. - Many improvements and API changes to the documentation generation code.
- Many improvements to the LSP code.
- Add a
Dialect
option to enable types.