Skip to content

Conversation

@jeehoonkang
Copy link
Contributor

@jeehoonkang jeehoonkang commented Nov 28, 2019

It supersedes #209 for supporting dynamically sized types (DST) in Crossbeam. It's much cleaner and less intrusive than the previous attempts in that it doesn't introduce another Atomic type. Atomic<T> is still there without significant changes.

The key idea is (1) instead of requiring the condition on T: Sized, (2) requiring T: Pointable that means an object of type T can be pointed to by a single word. For instance, Atomic becomes: pub struct Atomic<T: ?Sized + Pointable> { ... }.

It is breaking the backward compatibility in that it (1) increases the minimum required Rust version to 1.36 (for MaybeUninit) and (2) now const fn Atomic::null() is Nightly only.

@jeehoonkang
Copy link
Contributor Author

I think it's ready to be merged. If everyone's happy with it, I'll merge it 3 days later.

@jeehoonkang
Copy link
Contributor Author

bors r+

@bors bors bot merged commit 4879038 into crossbeam-rs:master May 25, 2020
@jeehoonkang jeehoonkang deleted the dst branch January 15, 2021 04:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

2 participants