README.md
1# The "module partitions" for the std module
2
3The files in this directory contain the exported named declarations per header.
4These files are used for the following purposes:
5
6 - During testing exported named declarations are tested against the named
7 declarations in the associated header. This excludes reserved names; they
8 are not exported.
9 - Generate the module std.
10
11These use cases require including the required headers for these "partitions"
12at different locations. This means the user of these "partitions" are
13responsible for including the proper header and validating whether the header can
14be loaded in the current libc++ configuration. For example "include <locale>"
15fails when locales are not available. The "partitions" use the libc++ feature
16macros to export the declarations available in the current configuration. This
17configuration is available if the user includes the `__config' header.
18
19We use `.inc` files that we include from the top-level module instead of
20using real C++ module partitions. This is a lot faster than module partitions,
21see [this](https://discourse.llvm.org/t/alternatives-to-the-implementation-of-std-modules/71958) for details.
22