Closed
Description
There are already several things either (a) in libcore that should be in libstd or (b) inappropriately exported from libcore.
- libuv is in std, and relies on unsafe stuff exported from core::priv (Un-export core::priv when uv moves to core. #2648)
- today I added core::sync, which really should be in libstd, but for arc::exclusive which shouldn't be exported (Don't export arc::exclusive from libcore #3119).
A mechanism for std to be a "friend" of core would solve both of these without making libcore grow tremendously large. I'm not sure how crate metadata works, but I could imagine writing export mod
in a crate file would export the module publically, while all other modules do get exported, only privately.