I’ve heard some worries about this renaming indicating a complete redesign very close to beta1 – which would indeed be risky! – so I want to clarify.
The renaming to “old_io” is purely to make updating code clearer easier – it does not indicate a massive redesign.
The final API will actually be quite similar to the existing std::io in most respects. It fixes a few longstanding complaints, reorganizes the modules into a flatter hierarchy, and renames to match conventions elsewhere. These are tweaks and polish, not a complete rethink.
Where there are deeper changes (e.g. introducing OsString), we are codifying trends that are already in place (e.g. the env_as_bytes function).
In general, the changes to IO also all make the design more conservative, following traditional APIs more closely, exposing fewer high-level abstractions, and removing questionable APIs.
For most applications, updating will just be a matter of updating names and imports.