Repository navigation
Releases: atomix-labs/atomix
Releases · atomix-labs/atomix
Release list
v0.2.0
Immutable
release. Only release title and notes can be modified.
Typed atomics for any value that fits one atomic, and the locks built on them.
The locks are yet to come, in atomix-lock.
Warning
This release has breaking changes: BREAKING-CHANGES.md says what to do.
Miscellaneous
Full Changelog: v0.1.0...v0.2.0
v0.1.0
Immutable
release. Only release title and notes can be modified.
Typed atomics for any value that fits one atomic, and the locks built on them.
The locks are yet to come, in atomix-lock.
Features
- eda1439 Store every value that fits one atomic: references, function pointers, arrays, tuples, and core's and std's values (#37)
- 4b25246 (atomix-core) Give each type the impls and conversions std's counterpart has (#35)
- a45ee1a (atomix-core) Give the ranged integers NonZero's const impls, and the exponent formats (#34)
- 3f7c448 (atomix-core) Make the atomic operations const where core's are (#32)
- 8ced0cd (atomix-core) Build for arm64ec (#27)
- 0754ed2 (atomix-derive) Derive a packed struct whose parameters reach markers alone (#25)
- 2ee06fe Refuse an atomic or a cell as a value, or a newtype over a non-atom, once, and name the fix for a full Option or a pointer's bits (#23)
- fbb890e (atomix-core) Take an atomic from a mutable reference, and from a slice of them (#22)
- 842d068 (atomix-core) Set, clear and toggle a bit chosen at run time (#21)
- 7c40829 (atomix-core) Refuse a target that is not aarch64 or x86_64, little-endian with 64-bit pointers (#19)
- 6985507 (atomiks) Hold two words, each a pointer or an integer, in one atomic (#13)
- d2721ab (atomiks) Keep a pointer's tags in its low bits, in a struct or an enum (#12)
- 9adeadf (atomiks) Change one field of an atomic packed struct with one instruction (#10)
- 945e172 (atomiks-core) Integrate serde, zerocopy, bytemuck, arbitrary, arbitrary-int and deranged (#7)
- 0f0971d (atomiks-core) Add the ranged integers, held to a range, and store them in an atomic (#5)
- 4e5e795 (atomiks) Derive Atom, and AtomAdd, AtomOrd and AtomBitwise on newtypes (#4)
- bfd5076 (atomiks-core) Describe each value's reprs by a range that may wrap through zero (#3)
- 55abf89 Add atomiks-core, typed atomics for any value that fits one atomic word, and the atomiks facade (#2)
Bug Fixes
- 292056a Report a misaligned tagged pointer where the caller encoded it (#33)
- a944270 (atomix-core) Keep x86_64's lock bts wherever a bit test's result goes (#26)
- b3cdfd8 (atomix-derive) Silence a deprecated type's derive, and warn where a deprecated field's place is used (#24)
Performance
- e15af2c (atomix-core) Decode an Ordering by a copy, so its fetch_max masks nothing first (#39)
- e57382f (atomix-core) Build an element's fetch_and operand with one shift (#38)
Refactor
- 1eb154f Spell PtrAtom, NONZERO and atom(ptr) in whole words (#31)
- f281ad0 Rename atomiks to atomix, published as atomix-rs (#16)
- 8a8409e (atomiks-core) Name each read-modify-write as core does, with a short form only where x86 needs one (#9)
Documentation
- 3074b31 Document every target on docs.rs at the CPU floor, each badge in words (#42)
- 6c94511 Write the book and its examples, and measure atomix against core and the crates beside it (#41)
- 32fdbed (atomix-core) Say a tuple keeps each field in a slot as wide as its repr (#40)
- c003380 Present atomix with its logo, its README and each crate's (#17)
CI
- 041e254 Release from a signed tag, and publish each crate to crates.io by trusted publishing (#45)
- 2f0378d Build each crate's docs as docs.rs does, each night, on its nightly (#43)
- 6549ad9 Build every aarch64 and x86_64 target each night, and run Miri on Windows (#29)
- 13329f0 Test on Windows, aarch64 and x86_64 (#28)
- 6ffa917 Test LSE2, aarch64 without LSE, and x86-64 v1 and v2 on their own legs (#20)
- 5ebe976 Run Miri on each target as a nightly job of its own (#11)
Miscellaneous
- 845a575 Ready each crate's package and its crates.io page for the first release (#44)
- d7da37e (atomix-core) Pin the default CPUs of Android and Windows (#30)
- 27e1dde Take atxp v0.22.0, whose doc checks keep the CPU floor (#18)
- a74bf84 Take atxp v0.21.2, whose doc check knows a crate by its library's name (#15)
- c9e6ad8 Take atxp v0.21.1, which runs the doctests with no target named (#14)
- 326de45 Take atxp v0.21.0, and check every feature's dependencies (#6)
New Contributors
- @RishiDarkDevil made their first contribution in #2