1276792Sdimmodule std [system] { 2276792Sdim // FIXME: The standard does not require that each of these submodules 3276792Sdim // re-exports its imported modules. We should provide an alternative form of 4276792Sdim // export that issues a warning if a name from the submodule is used, and 5276792Sdim // use that to provide a 'strict mode' for libc++. 6276792Sdim module algorithm { 7276792Sdim header "algorithm" 8276792Sdim export initializer_list 9276792Sdim export * 10276792Sdim } 11276792Sdim module array { 12276792Sdim header "array" 13276792Sdim export initializer_list 14276792Sdim export * 15276792Sdim } 16276792Sdim module atomic { 17276792Sdim header "atomic" 18276792Sdim export * 19276792Sdim requires cplusplus11 20276792Sdim } 21276792Sdim module bitset { 22276792Sdim header "bitset" 23276792Sdim export string 24276792Sdim export iosfwd 25276792Sdim export * 26276792Sdim } 27276792Sdim // No submodule for cassert. It fundamentally needs repeated, textual inclusion. 28276792Sdim module ccomplex { 29276792Sdim header "ccomplex" 30276792Sdim export complex 31276792Sdim export * 32276792Sdim } 33276792Sdim module cctype { 34276792Sdim header "cctype" 35276792Sdim export * 36276792Sdim } 37276792Sdim module cerrno { 38276792Sdim header "cerrno" 39276792Sdim/* 40276792Sdim export_macros ECONNREFUSED, EIO, ENODEV, ENOTEMPTY, ERANGE, 41276792Sdim E2BIG, ECONNRESET, EISCONN, ENOENT, ENOTRECOVERABLE, EROFS, 42276792Sdim EACCES, EDEADLK, EISDIR, ENOEXEC, ENOTSOCK, ESPIPE, 43276792Sdim EADDRINUSE, EDESTADDRREQ, ELOOP, ENOLCK, ENOTSUP, ESRCH, 44276792Sdim EADDRNOTAVAIL, EDOM, EMFILE, ENOLINK, ENOTTY, ETIME, 45276792Sdim EAFNOSUPPORT, EEXIST, EMLINK, ENOMEM, ENXIO, ETIMEDOUT, 46276792Sdim EAGAIN, EFAULT, EMSGSIZE, ENOMSG, EOPNOTSUPP, ETXTBSY, 47276792Sdim EALREADY, EFBIG, ENAMETOOLONG, ENOPROTOOPT, EOVERFLOW, EWOULDBLOCK, 48276792Sdim EBADF, EHOSTUNREACH, ENETDOWN, ENOSPC, EOWNERDEAD, EXDEV, 49276792Sdim EBADMSG, EIDRM, ENETRESET, ENOSR, EPERM, errno, 50276792Sdim EBUSY, EILSEQ, ENETUNREACH, ENOSTR, EPIPE, 51276792Sdim ECANCELED, EINPROGRESS, ENFILE, ENOSYS, EPROTO, 52276792Sdim ECHILD, EINTR, ENOBUFS, ENOTCONN, EPROTONOSUPPORT, 53276792Sdim ECONNABORTED, EINVAL, ENODATA, ENOTDIR, EPROTOTYPE 54276792Sdim*/ 55276792Sdim export * 56276792Sdim } 57276792Sdim module cfenv { 58276792Sdim header "cfenv" 59276792Sdim/* 60276792Sdim export_macros FE_ALL_EXCEPT, FE_DIVBYZERO, FE_INEXACT, FE_INVALID, FE_OVERFLOW, 61276792Sdim FE_UNDERFLOW, FE_DOWNWARD, FE_TONEAREST, FE_TOWARDZERO, FE_UPWARD, 62276792Sdim FE_DFL_ENV 63276792Sdim*/ 64276792Sdim export * 65276792Sdim } 66276792Sdim module cfloat { 67276792Sdim header "cfloat" 68276792Sdim/* 69276792Sdim export_macros FLT_EVAL_METHOD, FLT_RADIX, FLT_ROUNDS, 70276792Sdim FLT_DIG, FLT_EPSILON, FLT_MANT_DIG, 71276792Sdim FLT_MAX, FLT_MAX_10_EXP, FLT_MAX_EXP, 72276792Sdim FLT_MIN, FLT_MIN_10_EXP, FLT_MIN_EXP, 73276792Sdim DBL_DIG, DBL_EPSILON, DBL_MANT_DIG, 74276792Sdim DBL_MAX, DBL_MAX_10_EXP, DBL_MAX_EXP, 75276792Sdim DBL_MIN, DBL_MIN_10_EXP, DBL_MIN_EXP, 76276792Sdim LDBL_DIG, LDBL_EPSILON, LDBL_MANT_DIG, 77276792Sdim LDBL_MAX, LDBL_MAX_10_EXP, LDBL_MAX_EXP, 78276792Sdim LDBL_MIN, LDBL_MIN_10_EXP, LDBL_MIN_EXP 79276792Sdim*/ 80276792Sdim export * 81276792Sdim } 82276792Sdim module chrono { 83276792Sdim header "chrono" 84276792Sdim export * 85276792Sdim } 86276792Sdim module cinttypes { 87276792Sdim header "cinttypes" 88276792Sdim export cstdint 89276792Sdim/* 90276792Sdim export_macros 91276792Sdim PRId8, PRId16, PRId32, PRId64, PRIdFAST8, PRIdFAST16, PRIdFAST32, PRIdFAST64, PRIdLEAST8, PRIdLEAST16, PRIdLEAST32, PRIdLEAST64, PRIdMAX, PRIdPTR, 92276792Sdim PRIi8, PRIi16, PRIi32, PRIi64, PRIiFAST8, PRIiFAST16, PRIiFAST32, PRIiFAST64, PRIiLEAST8, PRIiLEAST16, PRIiLEAST32, PRIiLEAST64, PRIiMAX, PRIiPTR, 93276792Sdim PRIo8, PRIo16, PRIo32, PRIo64, PRIoFAST8, PRIoFAST16, PRIoFAST32, PRIoFAST64, PRIoLEAST8, PRIoLEAST16, PRIoLEAST32, PRIoLEAST64, PRIoMAX, PRIoPTR, 94276792Sdim PRIu8, PRIu16, PRIu32, PRIu64, PRIuFAST8, PRIuFAST16, PRIuFAST32, PRIuFAST64, PRIuLEAST8, PRIuLEAST16, PRIuLEAST32, PRIuLEAST64, PRIuMAX, PRIuPTR, 95276792Sdim PRIx8, PRIx16, PRIx32, PRIx64, PRIxFAST8, PRIxFAST16, PRIxFAST32, PRIxFAST64, PRIxLEAST8, PRIxLEAST16, PRIxLEAST32, PRIxLEAST64, PRIxMAX, PRIxPTR, 96276792Sdim PRIX8, PRIX16, PRIX32, PRIX64, PRIXFAST8, PRIXFAST16, PRIXFAST32, PRIXFAST64, PRIXLEAST8, PRIXLEAST16, PRIXLEAST32, PRIXLEAST64, PRIXMAX, PRIXPTR, 97276792Sdim SCNd8, SCNd16, SCNd32, SCNd64, SCNdFAST8, SCNdFAST16, SCNdFAST32, SCNdFAST64, SCNdLEAST8, SCNdLEAST16, SCNdLEAST32, SCNdLEAST64, SCNdMAX, SCNdPTR, 98276792Sdim SCNi8, SCNi16, SCNi32, SCNi64, SCNiFAST8, SCNiFAST16, SCNiFAST32, SCNiFAST64, SCNiLEAST8, SCNiLEAST16, SCNiLEAST32, SCNiLEAST64, SCNiMAX, SCNiPTR, 99276792Sdim SCNo8, SCNo16, SCNo32, SCNo64, SCNoFAST8, SCNoFAST16, SCNoFAST32, SCNoFAST64, SCNoLEAST8, SCNoLEAST16, SCNoLEAST32, SCNoLEAST64, SCNoMAX, SCNoPTR, 100276792Sdim SCNu8, SCNu16, SCNu32, SCNu64, SCNuFAST8, SCNuFAST16, SCNuFAST32, SCNuFAST64, SCNuLEAST8, SCNuLEAST16, SCNuLEAST32, SCNuLEAST64, SCNuMAX, SCNuPTR, 101276792Sdim SCNx8, SCNx16, SCNx32, SCNx64, SCNxFAST8, SCNxFAST16, SCNxFAST32, SCNxFAST64, SCNxLEAST8, SCNxLEAST16, SCNxLEAST32, SCNxLEAST64, SCNxMAX, SCNxPTR, 102276792Sdim SCNX8, SCNX16, SCNX32, SCNX64, SCNXFAST8, SCNXFAST16, SCNXFAST32, SCNXFAST64, SCNXLEAST8, SCNXLEAST16, SCNXLEAST32, SCNXLEAST64, SCNXMAX, SCNXPTR 103276792Sdim*/ 104276792Sdim export * 105276792Sdim } 106276792Sdim module ciso646 { 107276792Sdim header "ciso646" 108276792Sdim export * 109276792Sdim } 110276792Sdim module climits { 111276792Sdim header "climits" 112276792Sdim/* 113276792Sdim export_macros CHAR_BIT, CHAR_MIN, CHAR_MAX, 114276792Sdim SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, 115276792Sdim SHRT_MIN, SHRT_MAX, USHRT_MAX, 116276792Sdim INT_MIN, INT_MAX, UINT_MAX, 117276792Sdim LONG_MIN, LONG_MAX, ULONG_MAX, 118276792Sdim LLONG_MIN, LLONG_MAX, ULLONG_MAX, 119276792Sdim MB_LEN_MAX 120276792Sdim*/ 121276792Sdim export * 122276792Sdim } 123276792Sdim module clocale { 124276792Sdim header "clocale" 125276792Sdim/* 126276792Sdim export_macros LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME, NULL 127276792Sdim*/ 128276792Sdim export * 129276792Sdim } 130276792Sdim module cmath { 131276792Sdim header "cmath" 132276792Sdim/* 133276792Sdim export_macros FP_FAST_FMA, FP_FAST_FMAF, FP_FAST_FMAL, FP_ILOGBO, FP_ILOGBNAN, 134276792Sdim FP_INFINITE, FP_NAN, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, 135276792Sdim HUGE_VAL, HUGE_VALF, HUGE_VALL, INFINITY, NAN, 136276792Sdim MATH_ERRNO, MATH_ERREXCEPT, math_errhandling 137276792Sdim*/ 138276792Sdim export * 139276792Sdim } 140276792Sdim module codecvt { 141276792Sdim header "codecvt" 142276792Sdim export * 143276792Sdim } 144276792Sdim module complex { 145276792Sdim header "complex" 146276792Sdim export * 147276792Sdim } 148276792Sdim module condition_variable { 149276792Sdim header "condition_variable" 150276792Sdim export * 151276792Sdim } 152276792Sdim module csetjmp { 153276792Sdim header "csetjmp" 154276792Sdim/* 155276792Sdim export_macros setjmp 156276792Sdim*/ 157276792Sdim export * 158276792Sdim } 159276792Sdim module csignal { 160276792Sdim header "csignal" 161276792Sdim/* 162276792Sdim export_macros SIGABRT, SIGFPE, SIGILL, SIGINT, SIGSEGV, SIGTERM, 163276792Sdim SIG_DFL, SIG_IGN, SIG_ERR 164276792Sdim*/ 165276792Sdim export * 166276792Sdim } 167276792Sdim module cstdarg { 168276792Sdim header "cstdarg" 169276792Sdim/* 170276792Sdim export_macros va_arg, va_start, va_end, va_copy 171276792Sdim*/ 172276792Sdim export * 173276792Sdim } 174276792Sdim module cstdbool { 175276792Sdim header "cstdbool" 176276792Sdim/* 177276792Sdim export_macros __bool_true_false_are_defined 178276792Sdim*/ 179276792Sdim export * 180276792Sdim } 181276792Sdim module cstddef { 182276792Sdim header "cstddef" 183276792Sdim/* 184276792Sdim export_macros NULL, offsetof 185276792Sdim*/ 186276792Sdim export * 187276792Sdim } 188276792Sdim module cstdint { 189276792Sdim header "cstdint" 190276792Sdim/* 191276792Sdim export_macros 192276792Sdim INT_8_MIN, INT_8_MAX, UINT_8_MAX, INT_16_MIN, INT_16_MAX, UINT_16_MAX, 193276792Sdim INT_32_MIN, INT_32_MAX, UINT_32_MAX, INT_64_MIN, INT_64_MAX, UINT_64_MAX, 194276792Sdim INT_FAST8_MIN, INT_FAST8_MAX, UINT_FAST8_MAX, INT_FAST16_MIN, INT_FAST16_MAX, UINT_FAST16_MAX, 195276792Sdim INT_FAST32_MIN, INT_FAST32_MAX, UINT_FAST32_MAX, INT_FAST64_MIN, INT_FAST64_MAX, UINT_FAST64_MAX, 196276792Sdim INT_LEAST8_MIN, INT_LEAST8_MAX, UINT_LEAST8_MAX, INT_LEAST16_MIN, INT_LEAST16_MAX, UINT_LEAST16_MAX, 197276792Sdim INT_LEAST32_MIN, INT_LEAST32_MAX, UINT_LEAST32_MAX, INT_LEAST64_MIN, INT_LEAST64_MAX, UINT_LEAST64_MAX, 198276792Sdim INT_MAX_MIN, INT_MAX_MAX, UINT_MAX_MAX, INT_PTR_MIN, INT_PTR_MAX, UINT_PTR_MAX, 199276792Sdim PTRDIFF_MIN, PTRDIFF_MAX, SIG_ATOMIC_MIN, SIG_ATOMIC_MAX, WCHAR_MIN, WCHAR_MAX, WINT_MIN, WINT_MAX, 200276792Sdim SIZE_MAX 201276792Sdim*/ 202276792Sdim export * 203276792Sdim } 204276792Sdim module cstdio { 205276792Sdim header "cstdio" 206276792Sdim/* 207276792Sdim export_macros BUFSIZ, EOF, FILENAME_MAX, FOPEN_MAX, L_tmpnam, NULL, 208276792Sdim SEEK_CUR, SEEK_END, SEEK_SET, TMP_MAX, _IOFBF, _IOLBF, 209276792Sdim stdin, stdout, stderr 210276792Sdim*/ 211276792Sdim export * 212276792Sdim } 213276792Sdim module cstdlib { 214276792Sdim header "cstdlib" 215276792Sdim/* 216276792Sdim export_macros RAND_MAX 217276792Sdim*/ 218276792Sdim export * 219276792Sdim } 220276792Sdim module cstring { 221276792Sdim header "cstring" 222276792Sdim/* 223276792Sdim export_macros NULL 224276792Sdim*/ 225276792Sdim export * 226276792Sdim } 227276792Sdim module ctgmath { 228276792Sdim header "ctgmath" 229276792Sdim export ccomplex 230276792Sdim export cmath 231276792Sdim export * 232276792Sdim } 233276792Sdim module ctime { 234276792Sdim header "ctime" 235276792Sdim/* 236276792Sdim export_macros NULL, CLOCKS_PER_SEC 237276792Sdim*/ 238276792Sdim export * 239276792Sdim } 240276792Sdim module cwchar { 241276792Sdim header "cwchar" 242276792Sdim/* 243276792Sdim export_macros NULL, WCHAR_MAX, WCHAR_MIN, WEOF 244276792Sdim*/ 245276792Sdim export * 246276792Sdim } 247276792Sdim module cwctype { 248276792Sdim header "cwctype" 249276792Sdim/* 250276792Sdim export_macros WEOF 251276792Sdim*/ 252276792Sdim export * 253276792Sdim } 254276792Sdim module deque { 255276792Sdim header "deque" 256276792Sdim export initializer_list 257276792Sdim export * 258276792Sdim } 259276792Sdim module exception { 260276792Sdim header "exception" 261276792Sdim export * 262276792Sdim } 263276792Sdim module forward_list { 264276792Sdim header "forward_list" 265276792Sdim export initializer_list 266276792Sdim export * 267276792Sdim } 268276792Sdim module fstream { 269276792Sdim header "fstream" 270276792Sdim export * 271276792Sdim } 272276792Sdim module functional { 273276792Sdim header "functional" 274276792Sdim export * 275276792Sdim } 276276792Sdim module future { 277276792Sdim header "future" 278276792Sdim export * 279276792Sdim } 280276792Sdim module initializer_list { 281276792Sdim header "initializer_list" 282276792Sdim export * 283276792Sdim } 284276792Sdim module iomanip { 285276792Sdim header "iomanip" 286276792Sdim export * 287276792Sdim } 288276792Sdim module ios { 289276792Sdim header "ios" 290276792Sdim export iosfwd 291276792Sdim export * 292276792Sdim } 293276792Sdim module iosfwd { 294276792Sdim header "iosfwd" 295276792Sdim export * 296276792Sdim } 297276792Sdim module iostream { 298276792Sdim header "iostream" 299276792Sdim export ios 300276792Sdim export streambuf 301276792Sdim export istream 302276792Sdim export ostream 303276792Sdim export * 304276792Sdim } 305276792Sdim module istream { 306276792Sdim header "istream" 307276792Sdim // FIXME: should re-export ios, streambuf? 308276792Sdim export * 309276792Sdim } 310276792Sdim module iterator { 311276792Sdim header "iterator" 312276792Sdim export * 313276792Sdim } 314276792Sdim module limits { 315276792Sdim header "limits" 316276792Sdim export * 317276792Sdim } 318276792Sdim module list { 319276792Sdim header "list" 320276792Sdim export initializer_list 321276792Sdim export * 322276792Sdim } 323276792Sdim module locale { 324276792Sdim header "locale" 325276792Sdim export * 326276792Sdim } 327276792Sdim module map { 328276792Sdim header "map" 329276792Sdim export initializer_list 330276792Sdim export * 331276792Sdim } 332276792Sdim module memory { 333276792Sdim header "memory" 334276792Sdim export * 335276792Sdim } 336276792Sdim module mutex { 337276792Sdim header "mutex" 338276792Sdim export * 339276792Sdim } 340276792Sdim module new { 341276792Sdim header "new" 342276792Sdim export * 343276792Sdim } 344276792Sdim module numeric { 345276792Sdim header "numeric" 346276792Sdim export * 347276792Sdim } 348276792Sdim module ostream { 349276792Sdim header "ostream" 350276792Sdim // FIXME: should re-export ios, streambuf? 351276792Sdim export * 352276792Sdim } 353276792Sdim module queue { 354276792Sdim header "queue" 355276792Sdim export initializer_list 356276792Sdim export * 357276792Sdim } 358276792Sdim module random { 359276792Sdim header "random" 360276792Sdim export initializer_list 361276792Sdim export * 362276792Sdim } 363276792Sdim module ratio { 364276792Sdim header "ratio" 365276792Sdim export * 366276792Sdim } 367276792Sdim module regex { 368276792Sdim header "regex" 369276792Sdim export initializer_list 370276792Sdim export * 371276792Sdim } 372276792Sdim module scoped_allocator { 373276792Sdim header "scoped_allocator" 374276792Sdim export * 375276792Sdim } 376276792Sdim module set { 377276792Sdim header "set" 378276792Sdim export initializer_list 379276792Sdim export * 380276792Sdim } 381276792Sdim module sstream { 382276792Sdim header "sstream" 383276792Sdim // FIXME: should re-export istream, ostream, ios, streambuf, string? 384276792Sdim export * 385276792Sdim } 386276792Sdim module stack { 387276792Sdim header "stack" 388276792Sdim export initializer_list 389276792Sdim export * 390276792Sdim } 391276792Sdim module stdexcept { 392276792Sdim header "stdexcept" 393276792Sdim export * 394276792Sdim } 395276792Sdim module streambuf { 396276792Sdim header "streambuf" 397276792Sdim export * 398276792Sdim } 399276792Sdim module string { 400276792Sdim header "string" 401276792Sdim export initializer_list 402276792Sdim export * 403276792Sdim } 404276792Sdim module strstream { 405276792Sdim header "strstream" 406276792Sdim requires !cplusplus11 407276792Sdim } 408276792Sdim module system_error { 409276792Sdim header "system_error" 410276792Sdim export * 411276792Sdim } 412276792Sdim module thread { 413276792Sdim header "thread" 414276792Sdim export * 415276792Sdim } 416276792Sdim module tuple { 417276792Sdim header "tuple" 418276792Sdim export * 419276792Sdim } 420276792Sdim module type_traits { 421276792Sdim header "type_traits" 422276792Sdim export * 423276792Sdim } 424276792Sdim module typeindex { 425276792Sdim header "typeindex" 426276792Sdim export * 427276792Sdim } 428276792Sdim module typeinfo { 429276792Sdim header "typeinfo" 430276792Sdim export * 431276792Sdim } 432276792Sdim module unordered_map { 433276792Sdim header "unordered_map" 434276792Sdim export initializer_list 435276792Sdim export * 436276792Sdim } 437276792Sdim module unordered_set { 438276792Sdim header "unordered_set" 439276792Sdim export initializer_list 440276792Sdim export * 441276792Sdim } 442276792Sdim module utility { 443276792Sdim header "utility" 444276792Sdim export initializer_list 445276792Sdim export * 446276792Sdim } 447276792Sdim module valarray { 448276792Sdim header "valarray" 449276792Sdim export initializer_list 450276792Sdim export * 451276792Sdim } 452276792Sdim module vector { 453276792Sdim header "vector" 454276792Sdim export initializer_list 455276792Sdim export * 456276792Sdim } 457276792Sdim 458300770Sdim // FIXME: We don't have modules for the <foo.h> headers, because they might 459300770Sdim // be included from the C library's headers, and that would create a #include 460300770Sdim // cycle. For the same reason, we don't have a module for __config. 461300770Sdim //module __config { header "__config" export * } 462300770Sdim 463276792Sdim // FIXME: These should be private. 464276792Sdim module __bit_reference { header "__bit_reference" export * } 465276792Sdim module __debug { header "__debug" export * } 466276792Sdim module __functional_base { header "__functional_base" export * } 467276792Sdim module __hash_table { header "__hash_table" export * } 468276792Sdim module __locale { header "__locale" export * } 469276792Sdim module __mutex_base { header "__mutex_base" export * } 470276792Sdim module __split_buffer { header "__split_buffer" export * } 471276792Sdim module __sso_allocator { header "__sso_allocator" export * } 472276792Sdim module __std_stream { header "__std_stream" export * } 473276792Sdim module __tree { header "__tree" export * } 474276792Sdim module __tuple { header "__tuple" export * } 475276792Sdim module __undef_min_max { header "__undef_min_max" export * } 476288943Sdim module __undef___deallocate { header "__undef___deallocate" export * } 477276792Sdim} 478