Ok, all, I’ve created a crossbeam-rs
org (unfortunately crossbeam was taken), and moved the repo there: https://github.com/crossbeam-rs/crossbeam
I’ve also added everyone who volunteered as an owner; you should have received an invite. Let me know if you didn’t, or are interested in being added (did you want to @Amanieu? I know you’d be a great help.)
Obviously we’ll need some level of coordination on the overall direction and management. FWIW, I think that @ticki’s changes look just fine, and I’m not too worried about breakage via new major versions for the core epoch APIs; existing code can continue to pin to the old version and work just fine. There’s no interop concern.
I really have essentially zero time to spend myself running the project; it’s hard enough to keep up with my Rust and Tokio work. But I can try to help at least set up the basic project management structure, if people would like that.
I think that @anon19897381 raises some very interesting questions. I certainly agree with the overall priorities, and at least some of the proposed changes. The issues around object destruction are indeed tricky, and have long been an open question for crossbeam; I’d love to get this resolved.
Regarding exposing pinning – I think that it’s great to see how far we can get while keeping it completely hidden. My hope was that we could offer something like the refcounting API you mention, with a separate API surface for getting your hands on the pin.
This latter question is more to do with the data structure APIs, rather than the core epoch APIs, so it should be quite easy to experiment with either on top of or within crossbeam, without too much risk.
I think, more broadly, it’s fine to treat crossbeam as a highly experimental crate – that’s very much what it is. As you say, it’s going to take a lot of time and effort to really build out this story for Rust. But I think we can get there faster by collaborating on a common foundation.