| module std [system] { |
| // FIXME: The standard does not require that each of these submodules |
| // re-exports its imported modules. We should provide an alternative form of |
| // export that issues a warning if a name from the submodule is used, and |
| // use that to provide a 'strict mode' for libc++. |
| module algorithm { |
| header "algorithm" |
| export initializer_list |
| export * |
| } |
| module array { |
| header "array" |
| export initializer_list |
| export * |
| } |
| module atomic { |
| header "atomic" |
| export * |
| requires cplusplus11 |
| } |
| module bitset { |
| header "bitset" |
| export string |
| export iosfwd |
| export * |
| } |
| // No submodule for cassert. It fundamentally needs repeated, textual inclusion. |
| module ccomplex { |
| header "ccomplex" |
| export complex |
| export * |
| } |
| module cctype { |
| header "cctype" |
| export * |
| } |
| module cerrno { |
| header "cerrno" |
| /* |
| export_macros ECONNREFUSED, EIO, ENODEV, ENOTEMPTY, ERANGE, |
| E2BIG, ECONNRESET, EISCONN, ENOENT, ENOTRECOVERABLE, EROFS, |
| EACCES, EDEADLK, EISDIR, ENOEXEC, ENOTSOCK, ESPIPE, |
| EADDRINUSE, EDESTADDRREQ, ELOOP, ENOLCK, ENOTSUP, ESRCH, |
| EADDRNOTAVAIL, EDOM, EMFILE, ENOLINK, ENOTTY, ETIME, |
| EAFNOSUPPORT, EEXIST, EMLINK, ENOMEM, ENXIO, ETIMEDOUT, |
| EAGAIN, EFAULT, EMSGSIZE, ENOMSG, EOPNOTSUPP, ETXTBSY, |
| EALREADY, EFBIG, ENAMETOOLONG, ENOPROTOOPT, EOVERFLOW, EWOULDBLOCK, |
| EBADF, EHOSTUNREACH, ENETDOWN, ENOSPC, EOWNERDEAD, EXDEV, |
| EBADMSG, EIDRM, ENETRESET, ENOSR, EPERM, errno, |
| EBUSY, EILSEQ, ENETUNREACH, ENOSTR, EPIPE, |
| ECANCELED, EINPROGRESS, ENFILE, ENOSYS, EPROTO, |
| ECHILD, EINTR, ENOBUFS, ENOTCONN, EPROTONOSUPPORT, |
| ECONNABORTED, EINVAL, ENODATA, ENOTDIR, EPROTOTYPE |
| */ |
| export * |
| } |
| module cfenv { |
| header "cfenv" |
| /* |
| export_macros FE_ALL_EXCEPT, FE_DIVBYZERO, FE_INEXACT, FE_INVALID, FE_OVERFLOW, |
| FE_UNDERFLOW, FE_DOWNWARD, FE_TONEAREST, FE_TOWARDZERO, FE_UPWARD, |
| FE_DFL_ENV |
| */ |
| export * |
| } |
| module cfloat { |
| header "cfloat" |
| /* |
| export_macros FLT_EVAL_METHOD, FLT_RADIX, FLT_ROUNDS, |
| FLT_DIG, FLT_EPSILON, FLT_MANT_DIG, |
| FLT_MAX, FLT_MAX_10_EXP, FLT_MAX_EXP, |
| FLT_MIN, FLT_MIN_10_EXP, FLT_MIN_EXP, |
| DBL_DIG, DBL_EPSILON, DBL_MANT_DIG, |
| DBL_MAX, DBL_MAX_10_EXP, DBL_MAX_EXP, |
| DBL_MIN, DBL_MIN_10_EXP, DBL_MIN_EXP, |
| LDBL_DIG, LDBL_EPSILON, LDBL_MANT_DIG, |
| LDBL_MAX, LDBL_MAX_10_EXP, LDBL_MAX_EXP, |
| LDBL_MIN, LDBL_MIN_10_EXP, LDBL_MIN_EXP |
| */ |
| export * |
| } |
| module chrono { |
| header "chrono" |
| export * |
| } |
| module cinttypes { |
| header "cinttypes" |
| export cstdint |
| /* |
| export_macros |
| PRId8, PRId16, PRId32, PRId64, PRIdFAST8, PRIdFAST16, PRIdFAST32, PRIdFAST64, PRIdLEAST8, PRIdLEAST16, PRIdLEAST32, PRIdLEAST64, PRIdMAX, PRIdPTR, |
| PRIi8, PRIi16, PRIi32, PRIi64, PRIiFAST8, PRIiFAST16, PRIiFAST32, PRIiFAST64, PRIiLEAST8, PRIiLEAST16, PRIiLEAST32, PRIiLEAST64, PRIiMAX, PRIiPTR, |
| PRIo8, PRIo16, PRIo32, PRIo64, PRIoFAST8, PRIoFAST16, PRIoFAST32, PRIoFAST64, PRIoLEAST8, PRIoLEAST16, PRIoLEAST32, PRIoLEAST64, PRIoMAX, PRIoPTR, |
| PRIu8, PRIu16, PRIu32, PRIu64, PRIuFAST8, PRIuFAST16, PRIuFAST32, PRIuFAST64, PRIuLEAST8, PRIuLEAST16, PRIuLEAST32, PRIuLEAST64, PRIuMAX, PRIuPTR, |
| PRIx8, PRIx16, PRIx32, PRIx64, PRIxFAST8, PRIxFAST16, PRIxFAST32, PRIxFAST64, PRIxLEAST8, PRIxLEAST16, PRIxLEAST32, PRIxLEAST64, PRIxMAX, PRIxPTR, |
| PRIX8, PRIX16, PRIX32, PRIX64, PRIXFAST8, PRIXFAST16, PRIXFAST32, PRIXFAST64, PRIXLEAST8, PRIXLEAST16, PRIXLEAST32, PRIXLEAST64, PRIXMAX, PRIXPTR, |
| SCNd8, SCNd16, SCNd32, SCNd64, SCNdFAST8, SCNdFAST16, SCNdFAST32, SCNdFAST64, SCNdLEAST8, SCNdLEAST16, SCNdLEAST32, SCNdLEAST64, SCNdMAX, SCNdPTR, |
| SCNi8, SCNi16, SCNi32, SCNi64, SCNiFAST8, SCNiFAST16, SCNiFAST32, SCNiFAST64, SCNiLEAST8, SCNiLEAST16, SCNiLEAST32, SCNiLEAST64, SCNiMAX, SCNiPTR, |
| SCNo8, SCNo16, SCNo32, SCNo64, SCNoFAST8, SCNoFAST16, SCNoFAST32, SCNoFAST64, SCNoLEAST8, SCNoLEAST16, SCNoLEAST32, SCNoLEAST64, SCNoMAX, SCNoPTR, |
| SCNu8, SCNu16, SCNu32, SCNu64, SCNuFAST8, SCNuFAST16, SCNuFAST32, SCNuFAST64, SCNuLEAST8, SCNuLEAST16, SCNuLEAST32, SCNuLEAST64, SCNuMAX, SCNuPTR, |
| SCNx8, SCNx16, SCNx32, SCNx64, SCNxFAST8, SCNxFAST16, SCNxFAST32, SCNxFAST64, SCNxLEAST8, SCNxLEAST16, SCNxLEAST32, SCNxLEAST64, SCNxMAX, SCNxPTR, |
| SCNX8, SCNX16, SCNX32, SCNX64, SCNXFAST8, SCNXFAST16, SCNXFAST32, SCNXFAST64, SCNXLEAST8, SCNXLEAST16, SCNXLEAST32, SCNXLEAST64, SCNXMAX, SCNXPTR |
| */ |
| export * |
| } |
| module ciso646 { |
| header "ciso646" |
| export * |
| } |
| module climits { |
| header "climits" |
| /* |
| export_macros CHAR_BIT, CHAR_MIN, CHAR_MAX, |
| SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, |
| SHRT_MIN, SHRT_MAX, USHRT_MAX, |
| INT_MIN, INT_MAX, UINT_MAX, |
| LONG_MIN, LONG_MAX, ULONG_MAX, |
| LLONG_MIN, LLONG_MAX, ULLONG_MAX, |
| MB_LEN_MAX |
| */ |
| export * |
| } |
| module clocale { |
| header "clocale" |
| /* |
| export_macros LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME, NULL |
| */ |
| export * |
| } |
| module cmath { |
| header "cmath" |
| /* |
| export_macros FP_FAST_FMA, FP_FAST_FMAF, FP_FAST_FMAL, FP_ILOGBO, FP_ILOGBNAN, |
| FP_INFINITE, FP_NAN, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, |
| HUGE_VAL, HUGE_VALF, HUGE_VALL, INFINITY, NAN, |
| MATH_ERRNO, MATH_ERREXCEPT, math_errhandling |
| */ |
| export * |
| } |
| module codecvt { |
| header "codecvt" |
| export * |
| } |
| module complex { |
| header "complex" |
| export * |
| } |
| module condition_variable { |
| header "condition_variable" |
| export * |
| } |
| module csetjmp { |
| header "csetjmp" |
| /* |
| export_macros setjmp |
| */ |
| export * |
| } |
| module csignal { |
| header "csignal" |
| /* |
| export_macros SIGABRT, SIGFPE, SIGILL, SIGINT, SIGSEGV, SIGTERM, |
| SIG_DFL, SIG_IGN, SIG_ERR |
| */ |
| export * |
| } |
| module cstdarg { |
| header "cstdarg" |
| /* |
| export_macros va_arg, va_start, va_end, va_copy |
| */ |
| export * |
| } |
| module cstdbool { |
| header "cstdbool" |
| /* |
| export_macros __bool_true_false_are_defined |
| */ |
| export * |
| } |
| module cstddef { |
| header "cstddef" |
| /* |
| export_macros NULL, offsetof |
| */ |
| export * |
| } |
| module cstdint { |
| header "cstdint" |
| /* |
| export_macros |
| INT_8_MIN, INT_8_MAX, UINT_8_MAX, INT_16_MIN, INT_16_MAX, UINT_16_MAX, |
| INT_32_MIN, INT_32_MAX, UINT_32_MAX, INT_64_MIN, INT_64_MAX, UINT_64_MAX, |
| INT_FAST8_MIN, INT_FAST8_MAX, UINT_FAST8_MAX, INT_FAST16_MIN, INT_FAST16_MAX, UINT_FAST16_MAX, |
| INT_FAST32_MIN, INT_FAST32_MAX, UINT_FAST32_MAX, INT_FAST64_MIN, INT_FAST64_MAX, UINT_FAST64_MAX, |
| INT_LEAST8_MIN, INT_LEAST8_MAX, UINT_LEAST8_MAX, INT_LEAST16_MIN, INT_LEAST16_MAX, UINT_LEAST16_MAX, |
| INT_LEAST32_MIN, INT_LEAST32_MAX, UINT_LEAST32_MAX, INT_LEAST64_MIN, INT_LEAST64_MAX, UINT_LEAST64_MAX, |
| INT_MAX_MIN, INT_MAX_MAX, UINT_MAX_MAX, INT_PTR_MIN, INT_PTR_MAX, UINT_PTR_MAX, |
| PTRDIFF_MIN, PTRDIFF_MAX, SIG_ATOMIC_MIN, SIG_ATOMIC_MAX, WCHAR_MIN, WCHAR_MAX, WINT_MIN, WINT_MAX, |
| SIZE_MAX |
| */ |
| export * |
| } |
| module cstdio { |
| header "cstdio" |
| /* |
| export_macros BUFSIZ, EOF, FILENAME_MAX, FOPEN_MAX, L_tmpnam, NULL, |
| SEEK_CUR, SEEK_END, SEEK_SET, TMP_MAX, _IOFBF, _IOLBF, |
| stdin, stdout, stderr |
| */ |
| export * |
| } |
| module cstdlib { |
| header "cstdlib" |
| /* |
| export_macros RAND_MAX |
| */ |
| export * |
| } |
| module cstring { |
| header "cstring" |
| /* |
| export_macros NULL |
| */ |
| export * |
| } |
| module ctgmath { |
| header "ctgmath" |
| export ccomplex |
| export cmath |
| export * |
| } |
| module ctime { |
| header "ctime" |
| /* |
| export_macros NULL, CLOCKS_PER_SEC |
| */ |
| export * |
| } |
| module cwchar { |
| header "cwchar" |
| /* |
| export_macros NULL, WCHAR_MAX, WCHAR_MIN, WEOF |
| */ |
| export * |
| } |
| module cwctype { |
| header "cwctype" |
| /* |
| export_macros WEOF |
| */ |
| export * |
| } |
| module deque { |
| header "deque" |
| export initializer_list |
| export * |
| } |
| module exception { |
| header "exception" |
| export * |
| } |
| module forward_list { |
| header "forward_list" |
| export initializer_list |
| export * |
| } |
| module fstream { |
| header "fstream" |
| export * |
| } |
| module functional { |
| header "functional" |
| export * |
| } |
| module future { |
| header "future" |
| export * |
| } |
| module initializer_list { |
| header "initializer_list" |
| export * |
| } |
| module iomanip { |
| header "iomanip" |
| export * |
| } |
| module ios { |
| header "ios" |
| export iosfwd |
| export * |
| } |
| module iosfwd { |
| header "iosfwd" |
| export * |
| } |
| module iostream { |
| header "iostream" |
| export ios |
| export streambuf |
| export istream |
| export ostream |
| export * |
| } |
| module istream { |
| header "istream" |
| // FIXME: should re-export ios, streambuf? |
| export * |
| } |
| module iterator { |
| header "iterator" |
| export * |
| } |
| module limits { |
| header "limits" |
| export * |
| } |
| module list { |
| header "list" |
| export initializer_list |
| export * |
| } |
| module locale { |
| header "locale" |
| export * |
| } |
| module map { |
| header "map" |
| export initializer_list |
| export * |
| } |
| module memory { |
| header "memory" |
| export * |
| } |
| module mutex { |
| header "mutex" |
| export * |
| } |
| module new { |
| header "new" |
| export * |
| } |
| module numeric { |
| header "numeric" |
| export * |
| } |
| module ostream { |
| header "ostream" |
| // FIXME: should re-export ios, streambuf? |
| export * |
| } |
| module queue { |
| header "queue" |
| export initializer_list |
| export * |
| } |
| module random { |
| header "random" |
| export initializer_list |
| export * |
| } |
| module ratio { |
| header "ratio" |
| export * |
| } |
| module regex { |
| header "regex" |
| export initializer_list |
| export * |
| } |
| module scoped_allocator { |
| header "scoped_allocator" |
| export * |
| } |
| module set { |
| header "set" |
| export initializer_list |
| export * |
| } |
| module sstream { |
| header "sstream" |
| // FIXME: should re-export istream, ostream, ios, streambuf, string? |
| export * |
| } |
| module stack { |
| header "stack" |
| export initializer_list |
| export * |
| } |
| module stdexcept { |
| header "stdexcept" |
| export * |
| } |
| module streambuf { |
| header "streambuf" |
| export * |
| } |
| module string { |
| header "string" |
| export initializer_list |
| export * |
| } |
| module strstream { |
| header "strstream" |
| requires !cplusplus11 |
| } |
| module system_error { |
| header "system_error" |
| export * |
| } |
| module thread { |
| header "thread" |
| export * |
| } |
| module tuple { |
| header "tuple" |
| export * |
| } |
| module type_traits { |
| header "type_traits" |
| export * |
| } |
| module typeindex { |
| header "typeindex" |
| export * |
| } |
| module typeinfo { |
| header "typeinfo" |
| export * |
| } |
| module unordered_map { |
| header "unordered_map" |
| export initializer_list |
| export * |
| } |
| module unordered_set { |
| header "unordered_set" |
| export initializer_list |
| export * |
| } |
| module utility { |
| header "utility" |
| export initializer_list |
| export * |
| } |
| module valarray { |
| header "valarray" |
| export initializer_list |
| export * |
| } |
| module vector { |
| header "vector" |
| export initializer_list |
| export * |
| } |
| |
| // FIXME: We don't have modules for the <foo.h> headers, because they might |
| // be included from the C library's headers, and that would create a #include |
| // cycle. For the same reason, we don't have a module for __config. |
| //module __config { header "__config" export * } |
| |
| // FIXME: These should be private. |
| module __bit_reference { header "__bit_reference" export * } |
| module __debug { header "__debug" export * } |
| module __functional_base { header "__functional_base" export * } |
| module __hash_table { header "__hash_table" export * } |
| module __locale { header "__locale" export * } |
| module __mutex_base { header "__mutex_base" export * } |
| module __split_buffer { header "__split_buffer" export * } |
| module __sso_allocator { header "__sso_allocator" export * } |
| module __std_stream { header "__std_stream" export * } |
| module __tree { header "__tree" export * } |
| module __tuple { header "__tuple" export * } |
| module __undef_min_max { header "__undef_min_max" export * } |
| module __undef___deallocate { header "__undef___deallocate" export * } |
| } |