Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support dynamically sized types #452

Merged
merged 6 commits into from
May 25, 2020
Merged

Support dynamically sized types #452

merged 6 commits into from
May 25, 2020

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