Skip to content

Commit

Permalink
prepare for 0.3 release
Browse files Browse the repository at this point in the history
  • Loading branch information
kyren committed Jun 2, 2023
1 parent d718a49 commit 4d05f19
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 3 deletions.
33 changes: 33 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,36 @@
## [0.3.0]

An enormous number of breaking API changes, too many to list, almost the entire
API has been rethought.

The credit goes mostly to others for the release, @Bale001, @Aaron1011,
@dragazo, and especially @moulins.

### Release Highlights
- New `Arena` API that does not require macros and instead uses a `Rootable`
trait and HRTBs for lifetime projection.
- Methods on `Arena` to directly mutate the root type and map the root from one
type to another.
- A new API for 'static roots that are held in smart pointers
(`DynamicRootSet`).
- `Gc` pointers can now point to DSTs, and there is an `unsize!` macro for
unsizing coercions to replace the unstable `Unsize` trait.
- Weak pointers!
- `GcCell` has been replaced by explicit public lock types held within `Gc`
pointers with safe ways of mutating them.
- Field projection on held lock types to allow for separate locks held within a
single `Gc` pointer to be safely mutated.
- Unsafe `Gc` pointer coercions to compatible pointee types.
- Soundly get references to `Gc` types with `&'gc` lifetime.
- More ergonomic `Mutation` and `Collection` context types.
- *Tons* of correctness and soundness fixes.

This release also **completely drops** the `gc-sequence` combinator crate.
Because of other API changes, anything you could do with `gc-sequence` before
can almost certainly be expressed better either using the new 'static root API
or with the new map API. See [this comment](https:// github.com/kyren/ gc-arena/
pull/50#issuecomment-1538421347) for a bit more info.

## [0.2.2]
- No changes, fixing a release snafu with cargo-release

Expand Down
2 changes: 1 addition & 1 deletion src/gc-arena-derive/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "gc-arena-derive"
version = "0.2.2"
version = "0.3.0"
authors = ["kyren <[email protected]>"]
edition = "2018"
license = "MIT"
Expand Down
4 changes: 2 additions & 2 deletions src/gc-arena/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "gc-arena"
version = "0.2.2"
version = "0.3.0"
authors = ["kyren <[email protected]>"]
edition = "2018"
license = "MIT"
Expand All @@ -13,7 +13,7 @@ default = ["std"]
std = []

[dependencies]
gc-arena-derive = { path = "../gc-arena-derive", version = "0.2.2"}
gc-arena-derive = { path = "../gc-arena-derive", version = "0.3.0"}
sptr = "0.3.2"

[dev-dependencies]
Expand Down

0 comments on commit 4d05f19

Please sign in to comment.