Published November 12, 2026
| Version v20
Software
Open
Spade 0.21.0
Description
Added
- #1113 Support const generics inside struct and enum definitions
- #1140 Added named parameter support inside parenthesized argument lists
(...) - #1148 Added
const type { ... }to create inline const generics that can be used as values - #1152 Added
gen match { ... }blocks - #1162
then_somemethod onbool - #1174 Added
<<and>>to const generics - #1184 Implementations for Type Aliases
- #1194 Add
memorylanguage construct to build memories - #1204 Added
std::undef::unused()to the standard library and prelude,
a function that returns an unconnected inverted signal (equivalent toport().1,
but signals the design intent more clearly). - #1235 Added
Resulttype to stdlib - #718 Allowed
{ ... }instead of$(...)for named argument lists
Fixed
- #1143 Made arrays render in the correct order in Surfer and test benches (their contents were reversed)
- #1150 Fix some rare panics in typeinference when constraints are resolved at the wrong time
- #1151 Fixed a bug where certain malformed items cause an ICE
- #1159 Fixed a bug where match expressions could miss si integer values
- #1163 Fixed an error message where
uintwould erroneously be printed asint - #1191 Fixed ICE when defining pipeline method with no arguments besides
self(no clock) - #1195 Fixed parsing error when using named stages in pipeline lambdas
- #1226 Fix duplicate equation panic in test benches
- #712 Fixed generic substitution bug inside copy views.
- #712 Preluded
core::marker::Copythat was accidentally left behind. - #717 Fixed spurious linearity error when using
asoninvvalues - #717
triis now actually!Data
Changed
- #1139 Made
.correctly traverse throughinvinside copy views - #1140 Deprecated
$(...)named argument list syntax - #1141
invwires now can appear inside enum variants. - #1173 Deprecated
>>>in favor of>> - #1175 Improved
setergonomics by expanding it to work oninvwires inside arrays and tuples - #1187 Updated cocotb to 2.1. If you use fancy cocotb features, this may cause breaking changes
- #1194 Deprecated
std::mem::clocked_memoryand associated elements - #1213 Disallow consuming linear resources inside conditionals
- #1223 Allowed
matchexpressions returning zero-sized values - #1236 Register definitions inside pipelines may be written without an explicit clock signal (it will use the pipeline's clock signal)
- #1243 Deprecated
std::mem::dp_bramin favor ofstd::mem::simple_dual_port_ram - #1243 Deprecated
std::mem::read_read_port - #1243 Removed address width parameter from
std::mem::fifoand enforced a power-of-two number of elements - #712 Now copy views carry with them the data of
invwires. - #712 Changed the signature of
inv T::inspecttoinspect(&self) -> &T. - #715 Allowed
invvalues to be returned byif/elseandmatchblocks to be connected from the outside (all arms receive the same value) - #716 Made
invvalues interact gracefully with pattern matching.
Files
spade-v0.21.0.zip
Additional details
Related works
- Is continued by
- https://codeberg.org/spade-lang/spade (URL)
- Is identical to
- https://codeberg.org/spade-lang/spade/src/tag/v0.21.0 (URL)
Software
- Repository URL
- https://codeberg.org/spade-lang/spade
- Programming language
- Rust
- Development Status
- Active