Description
This issue is for discussing different needs for making the standard library more portable and configurable.
There have been a number of proposals over the years for improving the portability of the standard library, and improving the organization and use of platform-specific APIs.
Some people also desire ways to change the behavior of the standard library, such as through using Cargo features to choose alternate implementations or additions (see #4).
Portability and configurability are two loosely related concepts that perhaps should be considered separately. However, they may have the same or related ways to approach, so I am combining them here.
This issue is a place to explore this rather large problem space. Perhaps initially it would be best to clearly articulate the needs for making it more portable, configurable, and also how libraries declare what they are compatible with. Perhaps listing some concrete use cases, existing problems and pain points, etc.
For those interested in different historical concepts for standard library portability:
- RFC 1502 proposal — libstd::sys, the great libstd refactor
- Scenarios
- PAL proposal
- RFC 1868 — Portability lint
- aturon's vision for portability
- Portability working group
- Embedded working group