Repository navigation
Decimo v0.15.0
20260926 (v0.15.0)
Decimo v0.15.0 targets the codebase to Mojo v1.1.0, which removed a set of names that v1.0.0 had deprecated, and gives WordList the bounds checks.
⭐️ New in v0.15.0
WordListchecks its bounds asListdoes. It checked nothing when it replacedListin v0.14.0. Nowx[i]is checked in every build but-D ASSERT=none, andunsafe_get()andunsafe_set()under-D ASSERT=all. A negative length is refused as well, since the check compares as unsigned and a length of -1 would let every index through. Costs between nothing and 7% of an operation (PR #319).
🦋 Changed in v0.15.0
- Mojo v1.1.0 migration (PR #318).
InlineArrayisArray,SIMDcomes fromstd.simd,Atomictakes a value type rather than aDType,Hasher.update()takes bytes,String(capacity=)isString(capacity_bytes=),memcmp()isunsafe_memcmp(), and a capturing@parameterclosure is@__parameter. Pixi pinsmojo >=1.1.0,<1.2.0andargmojo 0.9.0(PR #320). decimo.wordlistisdecimo.word_list. It is internal: the package exportsMagnitude, notWordList(PR #319).
🩹 Fixed in v0.15.0
BigFloat.root()raised "Root degree is too large" for every degree on Mojo v1.1.0,root(3)included. Its guard readn > Int(UInt32.MAX), and v1.1 folds that constant to -1 (modular/modular#7154), so the guard refused everything. The bound is thus written as a literal now (PR #318).- The CLI build never took argmojo from the environment: its probe program used
fn main(), which v1.1 rejects, so it failed even where the package was installed (PR #318).
💥 Breaking in v0.15.0
- Decimo requires Mojo v1.1.0, pinned
>=1.1.0,<1.2.0.