Containers (LeanHashMap, LeanHashSet, LeanRBMap) are now part of the
stable default surface on Lean >= 4.22. The experimental-containers feature
gate no longer exists.
Before (0.2.x):
[dependencies]
leo3 = { version = "0.2", features = ["experimental-containers"] }After (0.3.0):
[dependencies]
leo3 = "0.3"Simply remove experimental-containers from your feature list. Containers are
available by default with no feature gate required.
The binding IR metadata schema has been bumped from v1 to v2.
LeanSubmoduleMetadata was added to support declarative module registration
with exports = [...] and dotted nested module paths.
If you consume the binding IR schema directly (e.g. via leo3-binding-ir),
update your deserialization to handle the new LeanSubmoduleMetadata
structure.
- Monomorphization generics:
#[leanfn]now supports a concrete monomorphization subset viaconcrete(Ty, name = "...")annotations. - Property accessors:
#[leanclass]supports#[getter]/#[setter]attributes to generate Lean accessor functions. - Extended key matrix: Containers now support
UInt8–UInt64keys in addition to the existing signed integer keys. leo3-codegenCLI: Reads embedded JSON metadata from cdylib binaries and generates Lean 4externdeclaration files.- Declarative module registration:
#[leanmodule]supportsexports = [...], dotted nested paths (e.g.Foo.Bar.baz), and innermodblocks with#[leanfn].
The minimum supported Rust version remains 1.88. No change from 0.2.x.