module.modulemap 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477
  1. module std [system] {
  2. // FIXME: The standard does not require that each of these submodules
  3. // re-exports its imported modules. We should provide an alternative form of
  4. // export that issues a warning if a name from the submodule is used, and
  5. // use that to provide a 'strict mode' for libc++.
  6. module algorithm {
  7. header "algorithm"
  8. export initializer_list
  9. export *
  10. }
  11. module array {
  12. header "array"
  13. export initializer_list
  14. export *
  15. }
  16. module atomic {
  17. header "atomic"
  18. export *
  19. requires cplusplus11
  20. }
  21. module bitset {
  22. header "bitset"
  23. export string
  24. export iosfwd
  25. export *
  26. }
  27. // No submodule for cassert. It fundamentally needs repeated, textual inclusion.
  28. module ccomplex {
  29. header "ccomplex"
  30. export complex
  31. export *
  32. }
  33. module cctype {
  34. header "cctype"
  35. export *
  36. }
  37. module cerrno {
  38. header "cerrno"
  39. /*
  40. export_macros ECONNREFUSED, EIO, ENODEV, ENOTEMPTY, ERANGE,
  41. E2BIG, ECONNRESET, EISCONN, ENOENT, ENOTRECOVERABLE, EROFS,
  42. EACCES, EDEADLK, EISDIR, ENOEXEC, ENOTSOCK, ESPIPE,
  43. EADDRINUSE, EDESTADDRREQ, ELOOP, ENOLCK, ENOTSUP, ESRCH,
  44. EADDRNOTAVAIL, EDOM, EMFILE, ENOLINK, ENOTTY, ETIME,
  45. EAFNOSUPPORT, EEXIST, EMLINK, ENOMEM, ENXIO, ETIMEDOUT,
  46. EAGAIN, EFAULT, EMSGSIZE, ENOMSG, EOPNOTSUPP, ETXTBSY,
  47. EALREADY, EFBIG, ENAMETOOLONG, ENOPROTOOPT, EOVERFLOW, EWOULDBLOCK,
  48. EBADF, EHOSTUNREACH, ENETDOWN, ENOSPC, EOWNERDEAD, EXDEV,
  49. EBADMSG, EIDRM, ENETRESET, ENOSR, EPERM, errno,
  50. EBUSY, EILSEQ, ENETUNREACH, ENOSTR, EPIPE,
  51. ECANCELED, EINPROGRESS, ENFILE, ENOSYS, EPROTO,
  52. ECHILD, EINTR, ENOBUFS, ENOTCONN, EPROTONOSUPPORT,
  53. ECONNABORTED, EINVAL, ENODATA, ENOTDIR, EPROTOTYPE
  54. */
  55. export *
  56. }
  57. module cfenv {
  58. header "cfenv"
  59. /*
  60. export_macros FE_ALL_EXCEPT, FE_DIVBYZERO, FE_INEXACT, FE_INVALID, FE_OVERFLOW,
  61. FE_UNDERFLOW, FE_DOWNWARD, FE_TONEAREST, FE_TOWARDZERO, FE_UPWARD,
  62. FE_DFL_ENV
  63. */
  64. export *
  65. }
  66. module cfloat {
  67. header "cfloat"
  68. /*
  69. export_macros FLT_EVAL_METHOD, FLT_RADIX, FLT_ROUNDS,
  70. FLT_DIG, FLT_EPSILON, FLT_MANT_DIG,
  71. FLT_MAX, FLT_MAX_10_EXP, FLT_MAX_EXP,
  72. FLT_MIN, FLT_MIN_10_EXP, FLT_MIN_EXP,
  73. DBL_DIG, DBL_EPSILON, DBL_MANT_DIG,
  74. DBL_MAX, DBL_MAX_10_EXP, DBL_MAX_EXP,
  75. DBL_MIN, DBL_MIN_10_EXP, DBL_MIN_EXP,
  76. LDBL_DIG, LDBL_EPSILON, LDBL_MANT_DIG,
  77. LDBL_MAX, LDBL_MAX_10_EXP, LDBL_MAX_EXP,
  78. LDBL_MIN, LDBL_MIN_10_EXP, LDBL_MIN_EXP
  79. */
  80. export *
  81. }
  82. module chrono {
  83. header "chrono"
  84. export *
  85. }
  86. module cinttypes {
  87. header "cinttypes"
  88. export cstdint
  89. /*
  90. export_macros
  91. PRId8, PRId16, PRId32, PRId64, PRIdFAST8, PRIdFAST16, PRIdFAST32, PRIdFAST64, PRIdLEAST8, PRIdLEAST16, PRIdLEAST32, PRIdLEAST64, PRIdMAX, PRIdPTR,
  92. PRIi8, PRIi16, PRIi32, PRIi64, PRIiFAST8, PRIiFAST16, PRIiFAST32, PRIiFAST64, PRIiLEAST8, PRIiLEAST16, PRIiLEAST32, PRIiLEAST64, PRIiMAX, PRIiPTR,
  93. PRIo8, PRIo16, PRIo32, PRIo64, PRIoFAST8, PRIoFAST16, PRIoFAST32, PRIoFAST64, PRIoLEAST8, PRIoLEAST16, PRIoLEAST32, PRIoLEAST64, PRIoMAX, PRIoPTR,
  94. PRIu8, PRIu16, PRIu32, PRIu64, PRIuFAST8, PRIuFAST16, PRIuFAST32, PRIuFAST64, PRIuLEAST8, PRIuLEAST16, PRIuLEAST32, PRIuLEAST64, PRIuMAX, PRIuPTR,
  95. PRIx8, PRIx16, PRIx32, PRIx64, PRIxFAST8, PRIxFAST16, PRIxFAST32, PRIxFAST64, PRIxLEAST8, PRIxLEAST16, PRIxLEAST32, PRIxLEAST64, PRIxMAX, PRIxPTR,
  96. PRIX8, PRIX16, PRIX32, PRIX64, PRIXFAST8, PRIXFAST16, PRIXFAST32, PRIXFAST64, PRIXLEAST8, PRIXLEAST16, PRIXLEAST32, PRIXLEAST64, PRIXMAX, PRIXPTR,
  97. SCNd8, SCNd16, SCNd32, SCNd64, SCNdFAST8, SCNdFAST16, SCNdFAST32, SCNdFAST64, SCNdLEAST8, SCNdLEAST16, SCNdLEAST32, SCNdLEAST64, SCNdMAX, SCNdPTR,
  98. SCNi8, SCNi16, SCNi32, SCNi64, SCNiFAST8, SCNiFAST16, SCNiFAST32, SCNiFAST64, SCNiLEAST8, SCNiLEAST16, SCNiLEAST32, SCNiLEAST64, SCNiMAX, SCNiPTR,
  99. SCNo8, SCNo16, SCNo32, SCNo64, SCNoFAST8, SCNoFAST16, SCNoFAST32, SCNoFAST64, SCNoLEAST8, SCNoLEAST16, SCNoLEAST32, SCNoLEAST64, SCNoMAX, SCNoPTR,
  100. SCNu8, SCNu16, SCNu32, SCNu64, SCNuFAST8, SCNuFAST16, SCNuFAST32, SCNuFAST64, SCNuLEAST8, SCNuLEAST16, SCNuLEAST32, SCNuLEAST64, SCNuMAX, SCNuPTR,
  101. SCNx8, SCNx16, SCNx32, SCNx64, SCNxFAST8, SCNxFAST16, SCNxFAST32, SCNxFAST64, SCNxLEAST8, SCNxLEAST16, SCNxLEAST32, SCNxLEAST64, SCNxMAX, SCNxPTR,
  102. SCNX8, SCNX16, SCNX32, SCNX64, SCNXFAST8, SCNXFAST16, SCNXFAST32, SCNXFAST64, SCNXLEAST8, SCNXLEAST16, SCNXLEAST32, SCNXLEAST64, SCNXMAX, SCNXPTR
  103. */
  104. export *
  105. }
  106. module ciso646 {
  107. header "ciso646"
  108. export *
  109. }
  110. module climits {
  111. header "climits"
  112. /*
  113. export_macros CHAR_BIT, CHAR_MIN, CHAR_MAX,
  114. SCHAR_MIN, SCHAR_MAX, UCHAR_MAX,
  115. SHRT_MIN, SHRT_MAX, USHRT_MAX,
  116. INT_MIN, INT_MAX, UINT_MAX,
  117. LONG_MIN, LONG_MAX, ULONG_MAX,
  118. LLONG_MIN, LLONG_MAX, ULLONG_MAX,
  119. MB_LEN_MAX
  120. */
  121. export *
  122. }
  123. module clocale {
  124. header "clocale"
  125. /*
  126. export_macros LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME, NULL
  127. */
  128. export *
  129. }
  130. module cmath {
  131. header "cmath"
  132. /*
  133. export_macros FP_FAST_FMA, FP_FAST_FMAF, FP_FAST_FMAL, FP_ILOGBO, FP_ILOGBNAN,
  134. FP_INFINITE, FP_NAN, FP_NORMAL, FP_SUBNORMAL, FP_ZERO,
  135. HUGE_VAL, HUGE_VALF, HUGE_VALL, INFINITY, NAN,
  136. MATH_ERRNO, MATH_ERREXCEPT, math_errhandling
  137. */
  138. export *
  139. }
  140. module codecvt {
  141. header "codecvt"
  142. export *
  143. }
  144. module complex {
  145. header "complex"
  146. export *
  147. }
  148. module condition_variable {
  149. header "condition_variable"
  150. export *
  151. }
  152. module csetjmp {
  153. header "csetjmp"
  154. /*
  155. export_macros setjmp
  156. */
  157. export *
  158. }
  159. module csignal {
  160. header "csignal"
  161. /*
  162. export_macros SIGABRT, SIGFPE, SIGILL, SIGINT, SIGSEGV, SIGTERM,
  163. SIG_DFL, SIG_IGN, SIG_ERR
  164. */
  165. export *
  166. }
  167. module cstdarg {
  168. header "cstdarg"
  169. /*
  170. export_macros va_arg, va_start, va_end, va_copy
  171. */
  172. export *
  173. }
  174. module cstdbool {
  175. header "cstdbool"
  176. /*
  177. export_macros __bool_true_false_are_defined
  178. */
  179. export *
  180. }
  181. module cstddef {
  182. header "cstddef"
  183. /*
  184. export_macros NULL, offsetof
  185. */
  186. export *
  187. }
  188. module cstdint {
  189. header "cstdint"
  190. /*
  191. export_macros
  192. INT_8_MIN, INT_8_MAX, UINT_8_MAX, INT_16_MIN, INT_16_MAX, UINT_16_MAX,
  193. INT_32_MIN, INT_32_MAX, UINT_32_MAX, INT_64_MIN, INT_64_MAX, UINT_64_MAX,
  194. INT_FAST8_MIN, INT_FAST8_MAX, UINT_FAST8_MAX, INT_FAST16_MIN, INT_FAST16_MAX, UINT_FAST16_MAX,
  195. INT_FAST32_MIN, INT_FAST32_MAX, UINT_FAST32_MAX, INT_FAST64_MIN, INT_FAST64_MAX, UINT_FAST64_MAX,
  196. INT_LEAST8_MIN, INT_LEAST8_MAX, UINT_LEAST8_MAX, INT_LEAST16_MIN, INT_LEAST16_MAX, UINT_LEAST16_MAX,
  197. INT_LEAST32_MIN, INT_LEAST32_MAX, UINT_LEAST32_MAX, INT_LEAST64_MIN, INT_LEAST64_MAX, UINT_LEAST64_MAX,
  198. INT_MAX_MIN, INT_MAX_MAX, UINT_MAX_MAX, INT_PTR_MIN, INT_PTR_MAX, UINT_PTR_MAX,
  199. PTRDIFF_MIN, PTRDIFF_MAX, SIG_ATOMIC_MIN, SIG_ATOMIC_MAX, WCHAR_MIN, WCHAR_MAX, WINT_MIN, WINT_MAX,
  200. SIZE_MAX
  201. */
  202. export *
  203. }
  204. module cstdio {
  205. header "cstdio"
  206. /*
  207. export_macros BUFSIZ, EOF, FILENAME_MAX, FOPEN_MAX, L_tmpnam, NULL,
  208. SEEK_CUR, SEEK_END, SEEK_SET, TMP_MAX, _IOFBF, _IOLBF,
  209. stdin, stdout, stderr
  210. */
  211. export *
  212. }
  213. module cstdlib {
  214. header "cstdlib"
  215. /*
  216. export_macros RAND_MAX
  217. */
  218. export *
  219. }
  220. module cstring {
  221. header "cstring"
  222. /*
  223. export_macros NULL
  224. */
  225. export *
  226. }
  227. module ctgmath {
  228. header "ctgmath"
  229. export ccomplex
  230. export cmath
  231. export *
  232. }
  233. module ctime {
  234. header "ctime"
  235. /*
  236. export_macros NULL, CLOCKS_PER_SEC
  237. */
  238. export *
  239. }
  240. module cwchar {
  241. header "cwchar"
  242. /*
  243. export_macros NULL, WCHAR_MAX, WCHAR_MIN, WEOF
  244. */
  245. export *
  246. }
  247. module cwctype {
  248. header "cwctype"
  249. /*
  250. export_macros WEOF
  251. */
  252. export *
  253. }
  254. module deque {
  255. header "deque"
  256. export initializer_list
  257. export *
  258. }
  259. module exception {
  260. header "exception"
  261. export *
  262. }
  263. module forward_list {
  264. header "forward_list"
  265. export initializer_list
  266. export *
  267. }
  268. module fstream {
  269. header "fstream"
  270. export *
  271. }
  272. module functional {
  273. header "functional"
  274. export *
  275. }
  276. module future {
  277. header "future"
  278. export *
  279. }
  280. module initializer_list {
  281. header "initializer_list"
  282. export *
  283. }
  284. module iomanip {
  285. header "iomanip"
  286. export *
  287. }
  288. module ios {
  289. header "ios"
  290. export iosfwd
  291. export *
  292. }
  293. module iosfwd {
  294. header "iosfwd"
  295. export *
  296. }
  297. module iostream {
  298. header "iostream"
  299. export ios
  300. export streambuf
  301. export istream
  302. export ostream
  303. export *
  304. }
  305. module istream {
  306. header "istream"
  307. // FIXME: should re-export ios, streambuf?
  308. export *
  309. }
  310. module iterator {
  311. header "iterator"
  312. export *
  313. }
  314. module limits {
  315. header "limits"
  316. export *
  317. }
  318. module list {
  319. header "list"
  320. export initializer_list
  321. export *
  322. }
  323. module locale {
  324. header "locale"
  325. export *
  326. }
  327. module map {
  328. header "map"
  329. export initializer_list
  330. export *
  331. }
  332. module memory {
  333. header "memory"
  334. export *
  335. }
  336. module mutex {
  337. header "mutex"
  338. export *
  339. }
  340. module new {
  341. header "new"
  342. export *
  343. }
  344. module numeric {
  345. header "numeric"
  346. export *
  347. }
  348. module ostream {
  349. header "ostream"
  350. // FIXME: should re-export ios, streambuf?
  351. export *
  352. }
  353. module queue {
  354. header "queue"
  355. export initializer_list
  356. export *
  357. }
  358. module random {
  359. header "random"
  360. export initializer_list
  361. export *
  362. }
  363. module ratio {
  364. header "ratio"
  365. export *
  366. }
  367. module regex {
  368. header "regex"
  369. export initializer_list
  370. export *
  371. }
  372. module scoped_allocator {
  373. header "scoped_allocator"
  374. export *
  375. }
  376. module set {
  377. header "set"
  378. export initializer_list
  379. export *
  380. }
  381. module sstream {
  382. header "sstream"
  383. // FIXME: should re-export istream, ostream, ios, streambuf, string?
  384. export *
  385. }
  386. module stack {
  387. header "stack"
  388. export initializer_list
  389. export *
  390. }
  391. module stdexcept {
  392. header "stdexcept"
  393. export *
  394. }
  395. module streambuf {
  396. header "streambuf"
  397. export *
  398. }
  399. module string {
  400. header "string"
  401. export initializer_list
  402. export *
  403. }
  404. module strstream {
  405. header "strstream"
  406. requires !cplusplus11
  407. }
  408. module system_error {
  409. header "system_error"
  410. export *
  411. }
  412. module thread {
  413. header "thread"
  414. export *
  415. }
  416. module tuple {
  417. header "tuple"
  418. export *
  419. }
  420. module type_traits {
  421. header "type_traits"
  422. export *
  423. }
  424. module typeindex {
  425. header "typeindex"
  426. export *
  427. }
  428. module typeinfo {
  429. header "typeinfo"
  430. export *
  431. }
  432. module unordered_map {
  433. header "unordered_map"
  434. export initializer_list
  435. export *
  436. }
  437. module unordered_set {
  438. header "unordered_set"
  439. export initializer_list
  440. export *
  441. }
  442. module utility {
  443. header "utility"
  444. export initializer_list
  445. export *
  446. }
  447. module valarray {
  448. header "valarray"
  449. export initializer_list
  450. export *
  451. }
  452. module vector {
  453. header "vector"
  454. export initializer_list
  455. export *
  456. }
  457. // FIXME: We don't have modules for the <foo.h> headers, because they might
  458. // be included from the C library's headers, and that would create a #include
  459. // cycle. For the same reason, we don't have a module for __config.
  460. //module __config { header "__config" export * }
  461. // FIXME: These should be private.
  462. module __bit_reference { header "__bit_reference" export * }
  463. module __debug { header "__debug" export * }
  464. module __functional_base { header "__functional_base" export * }
  465. module __hash_table { header "__hash_table" export * }
  466. module __locale { header "__locale" export * }
  467. module __mutex_base { header "__mutex_base" export * }
  468. module __split_buffer { header "__split_buffer" export * }
  469. module __sso_allocator { header "__sso_allocator" export * }
  470. module __std_stream { header "__std_stream" export * }
  471. module __tree { header "__tree" export * }
  472. module __tuple { header "__tuple" export * }
  473. module __undef_min_max { header "__undef_min_max" export * }
  474. module __undef___deallocate { header "__undef___deallocate" export * }
  475. }