blob: 3199d3d90213eb67d00ca6489826169cb4394144 [file] [log] [blame]
Richard Smith31cfef02014-05-21 00:33:49 +00001module 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++.
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +00006
7 // Deprecated C-compatibility headers. These can all be included from within
8 // an 'extern "C"' context.
9 module depr [extern_c] {
10 // <assert.h> provided by C library.
11 module ctype_h {
12 header "ctype.h"
13 export *
14 }
15 module errno_h {
16 header "errno.h"
17 export *
18 }
19 // <fenv.h> provided by C library.
20 // <float.h> provided by compiler or C library.
21 module inttypes_h {
22 header "inttypes.h"
23 export stdint_h
Eric Fiselier7466c852016-11-21 11:26:10 +000024/*
25 export_macros
26 PRId8, PRId16, PRId32, PRId64, PRIdFAST8, PRIdFAST16, PRIdFAST32, PRIdFAST64, PRIdLEAST8, PRIdLEAST16, PRIdLEAST32, PRIdLEAST64, PRIdMAX, PRIdPTR,
27 PRIi8, PRIi16, PRIi32, PRIi64, PRIiFAST8, PRIiFAST16, PRIiFAST32, PRIiFAST64, PRIiLEAST8, PRIiLEAST16, PRIiLEAST32, PRIiLEAST64, PRIiMAX, PRIiPTR,
28 PRIo8, PRIo16, PRIo32, PRIo64, PRIoFAST8, PRIoFAST16, PRIoFAST32, PRIoFAST64, PRIoLEAST8, PRIoLEAST16, PRIoLEAST32, PRIoLEAST64, PRIoMAX, PRIoPTR,
29 PRIu8, PRIu16, PRIu32, PRIu64, PRIuFAST8, PRIuFAST16, PRIuFAST32, PRIuFAST64, PRIuLEAST8, PRIuLEAST16, PRIuLEAST32, PRIuLEAST64, PRIuMAX, PRIuPTR,
30 PRIx8, PRIx16, PRIx32, PRIx64, PRIxFAST8, PRIxFAST16, PRIxFAST32, PRIxFAST64, PRIxLEAST8, PRIxLEAST16, PRIxLEAST32, PRIxLEAST64, PRIxMAX, PRIxPTR,
31 PRIX8, PRIX16, PRIX32, PRIX64, PRIXFAST8, PRIXFAST16, PRIXFAST32, PRIXFAST64, PRIXLEAST8, PRIXLEAST16, PRIXLEAST32, PRIXLEAST64, PRIXMAX, PRIXPTR,
32 SCNd8, SCNd16, SCNd32, SCNd64, SCNdFAST8, SCNdFAST16, SCNdFAST32, SCNdFAST64, SCNdLEAST8, SCNdLEAST16, SCNdLEAST32, SCNdLEAST64, SCNdMAX, SCNdPTR,
33 SCNi8, SCNi16, SCNi32, SCNi64, SCNiFAST8, SCNiFAST16, SCNiFAST32, SCNiFAST64, SCNiLEAST8, SCNiLEAST16, SCNiLEAST32, SCNiLEAST64, SCNiMAX, SCNiPTR,
34 SCNo8, SCNo16, SCNo32, SCNo64, SCNoFAST8, SCNoFAST16, SCNoFAST32, SCNoFAST64, SCNoLEAST8, SCNoLEAST16, SCNoLEAST32, SCNoLEAST64, SCNoMAX, SCNoPTR,
35 SCNu8, SCNu16, SCNu32, SCNu64, SCNuFAST8, SCNuFAST16, SCNuFAST32, SCNuFAST64, SCNuLEAST8, SCNuLEAST16, SCNuLEAST32, SCNuLEAST64, SCNuMAX, SCNuPTR,
36 SCNx8, SCNx16, SCNx32, SCNx64, SCNxFAST8, SCNxFAST16, SCNxFAST32, SCNxFAST64, SCNxLEAST8, SCNxLEAST16, SCNxLEAST32, SCNxLEAST64, SCNxMAX, SCNxPTR,
37 SCNX8, SCNX16, SCNX32, SCNX64, SCNXFAST8, SCNXFAST16, SCNXFAST32, SCNXFAST64, SCNXLEAST8, SCNXLEAST16, SCNXLEAST32, SCNXLEAST64, SCNXMAX, SCNXPTR
38*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +000039 export *
40 }
41 // <iso646.h> provided by compiler.
42 // <limits.h> provided by compiler or C library.
Eric Fiselierc6213332016-11-19 01:14:15 +000043 module locale_h {
44 header "locale.h"
Eric Fiselier7466c852016-11-21 11:26:10 +000045/*
46 export_macros LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC LC_TIME
47*/
Eric Fiselierc6213332016-11-19 01:14:15 +000048 export *
49 }
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +000050 module math_h {
51 header "math.h"
Eric Fiselier7466c852016-11-21 11:26:10 +000052/*
53 export_macros FP_FAST_FMA, FP_FAST_FMAF, FP_FAST_FMAL, FP_ILOGBO, FP_ILOGBNAN,
54 FP_INFINITE, FP_NAN, FP_NORMAL, FP_SUBNORMAL, FP_ZERO,
55 HUGE_VAL, HUGE_VALF, HUGE_VALL, INFINITY, NAN,
56 MATH_ERRNO, MATH_ERREXCEPT, math_errhandling
57*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +000058 export *
59 }
60 module setjmp_h {
61 header "setjmp.h"
Eric Fiselier7466c852016-11-21 11:26:10 +000062/*
63 export_macros setjmp
64*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +000065 export *
66 }
67 // FIXME: <stdalign.h> is missing.
68 // <signal.h> provided by C library.
69 // <stdarg.h> provided by compiler.
70 // <stdbool.h> provided by compiler.
71 module stddef_h {
72 // <stddef.h>'s __need_* macros require textual inclusion.
73 textual header "stddef.h"
74 }
Eric Fiselier7466c852016-11-21 11:26:10 +000075 // <stdint.h> provided by compiler or C library.
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +000076 module stdio_h {
77 // <stdio.h>'s __need_* macros require textual inclusion.
78 textual header "stdio.h"
Eric Fiselier7466c852016-11-21 11:26:10 +000079/*
80 export_macros BUFSIZ, EOF, FILENAME_MAX, FOPEN_MAX, L_tmpnam, NULL,
81 SEEK_CUR, SEEK_END, SEEK_SET, TMP_MAX, _IOFBF, _IOLBF,
82 stdin, stdout, stderr
83*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +000084 export *
85 }
86 module stdlib_h {
87 // <stdlib.h>'s __need_* macros require textual inclusion.
88 textual header "stdlib.h"
Eric Fiselier7466c852016-11-21 11:26:10 +000089/*
90 export_macros RAND_MAX
91*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +000092 export *
93 }
94 module string_h {
95 header "string.h"
Eric Fiselier7466c852016-11-21 11:26:10 +000096/*
97 export_macros NULL
98*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +000099 export *
100 }
101 // FIXME: <uchar.h> is missing.
102 // <time.h> provided by C library.
103 module wchar_h {
104 // <wchar.h>'s __need_* macros require textual inclusion.
105 textual header "wchar.h"
Eric Fiselier7466c852016-11-21 11:26:10 +0000106/*
107 export_macros NULL, WCHAR_MAX, WCHAR_MIN, WEOF
108*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +0000109 export *
110 }
111 module wctype_h {
112 header "wctype.h"
Eric Fiselier7466c852016-11-21 11:26:10 +0000113/*
114 export_macros WEOF
115*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +0000116 export *
117 }
118 }
119
120 // <complex.h> and <tgmath.h> are not C headers in any real sense, do not
121 // allow their use in extern "C" contexts.
122 module complex_h {
123 header "complex.h"
124 export ccomplex
125 export *
126 }
127 module tgmath_h {
128 header "tgmath.h"
129 export ccomplex
130 export cmath
131 export *
132 }
133
134 // C compatibility headers.
135 module compat {
136 module cassert {
137 // <cassert>'s use of NDEBUG requires textual inclusion.
138 textual header "cassert"
139 }
140 module ccomplex {
141 header "ccomplex"
142 export complex
143 export *
144 }
145 module cctype {
146 header "cctype"
147 export *
148 }
149 module cerrno {
150 header "cerrno"
Eric Fiselier7466c852016-11-21 11:26:10 +0000151/*
152 export_macros ECONNREFUSED, EIO, ENODEV, ENOTEMPTY, ERANGE,
153 E2BIG, ECONNRESET, EISCONN, ENOENT, ENOTRECOVERABLE, EROFS,
154 EACCES, EDEADLK, EISDIR, ENOEXEC, ENOTSOCK, ESPIPE,
155 EADDRINUSE, EDESTADDRREQ, ELOOP, ENOLCK, ENOTSUP, ESRCH,
156 EADDRNOTAVAIL, EDOM, EMFILE, ENOLINK, ENOTTY, ETIME,
157 EAFNOSUPPORT, EEXIST, EMLINK, ENOMEM, ENXIO, ETIMEDOUT,
158 EAGAIN, EFAULT, EMSGSIZE, ENOMSG, EOPNOTSUPP, ETXTBSY,
159 EALREADY, EFBIG, ENAMETOOLONG, ENOPROTOOPT, EOVERFLOW, EWOULDBLOCK,
160 EBADF, EHOSTUNREACH, ENETDOWN, ENOSPC, EOWNERDEAD, EXDEV,
161 EBADMSG, EIDRM, ENETRESET, ENOSR, EPERM, errno,
162 EBUSY, EILSEQ, ENETUNREACH, ENOSTR, EPIPE,
163 ECANCELED, EINPROGRESS, ENFILE, ENOSYS, EPROTO,
164 ECHILD, EINTR, ENOBUFS, ENOTCONN, EPROTONOSUPPORT,
165 ECONNABORTED, EINVAL, ENODATA, ENOTDIR, EPROTOTYPE
166*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +0000167 export *
168 }
169 module cfenv {
170 header "cfenv"
Eric Fiselier7466c852016-11-21 11:26:10 +0000171/*
172 export_macros FE_ALL_EXCEPT, FE_DIVBYZERO, FE_INEXACT, FE_INVALID, FE_OVERFLOW,
173 FE_UNDERFLOW, FE_DOWNWARD, FE_TONEAREST, FE_TOWARDZERO, FE_UPWARD,
174 FE_DFL_ENV
175*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +0000176 export *
177 }
178 module cfloat {
179 header "cfloat"
Eric Fiselier7466c852016-11-21 11:26:10 +0000180/*
181 export_macros FLT_EVAL_METHOD, FLT_RADIX, FLT_ROUNDS,
182 FLT_DIG, FLT_EPSILON, FLT_MANT_DIG,
183 FLT_MAX, FLT_MAX_10_EXP, FLT_MAX_EXP,
184 FLT_MIN, FLT_MIN_10_EXP, FLT_MIN_EXP,
185 DBL_DIG, DBL_EPSILON, DBL_MANT_DIG,
186 DBL_MAX, DBL_MAX_10_EXP, DBL_MAX_EXP,
187 DBL_MIN, DBL_MIN_10_EXP, DBL_MIN_EXP,
188 LDBL_DIG, LDBL_EPSILON, LDBL_MANT_DIG,
189 LDBL_MAX, LDBL_MAX_10_EXP, LDBL_MAX_EXP,
190 LDBL_MIN, LDBL_MIN_10_EXP, LDBL_MIN_EXP
191*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +0000192 export *
193 }
194 module cinttypes {
195 header "cinttypes"
196 export cstdint
Eric Fiselier7466c852016-11-21 11:26:10 +0000197/*
198 export_macros
199 PRId8, PRId16, PRId32, PRId64, PRIdFAST8, PRIdFAST16, PRIdFAST32, PRIdFAST64, PRIdLEAST8, PRIdLEAST16, PRIdLEAST32, PRIdLEAST64, PRIdMAX, PRIdPTR,
200 PRIi8, PRIi16, PRIi32, PRIi64, PRIiFAST8, PRIiFAST16, PRIiFAST32, PRIiFAST64, PRIiLEAST8, PRIiLEAST16, PRIiLEAST32, PRIiLEAST64, PRIiMAX, PRIiPTR,
201 PRIo8, PRIo16, PRIo32, PRIo64, PRIoFAST8, PRIoFAST16, PRIoFAST32, PRIoFAST64, PRIoLEAST8, PRIoLEAST16, PRIoLEAST32, PRIoLEAST64, PRIoMAX, PRIoPTR,
202 PRIu8, PRIu16, PRIu32, PRIu64, PRIuFAST8, PRIuFAST16, PRIuFAST32, PRIuFAST64, PRIuLEAST8, PRIuLEAST16, PRIuLEAST32, PRIuLEAST64, PRIuMAX, PRIuPTR,
203 PRIx8, PRIx16, PRIx32, PRIx64, PRIxFAST8, PRIxFAST16, PRIxFAST32, PRIxFAST64, PRIxLEAST8, PRIxLEAST16, PRIxLEAST32, PRIxLEAST64, PRIxMAX, PRIxPTR,
204 PRIX8, PRIX16, PRIX32, PRIX64, PRIXFAST8, PRIXFAST16, PRIXFAST32, PRIXFAST64, PRIXLEAST8, PRIXLEAST16, PRIXLEAST32, PRIXLEAST64, PRIXMAX, PRIXPTR,
205 SCNd8, SCNd16, SCNd32, SCNd64, SCNdFAST8, SCNdFAST16, SCNdFAST32, SCNdFAST64, SCNdLEAST8, SCNdLEAST16, SCNdLEAST32, SCNdLEAST64, SCNdMAX, SCNdPTR,
206 SCNi8, SCNi16, SCNi32, SCNi64, SCNiFAST8, SCNiFAST16, SCNiFAST32, SCNiFAST64, SCNiLEAST8, SCNiLEAST16, SCNiLEAST32, SCNiLEAST64, SCNiMAX, SCNiPTR,
207 SCNo8, SCNo16, SCNo32, SCNo64, SCNoFAST8, SCNoFAST16, SCNoFAST32, SCNoFAST64, SCNoLEAST8, SCNoLEAST16, SCNoLEAST32, SCNoLEAST64, SCNoMAX, SCNoPTR,
208 SCNu8, SCNu16, SCNu32, SCNu64, SCNuFAST8, SCNuFAST16, SCNuFAST32, SCNuFAST64, SCNuLEAST8, SCNuLEAST16, SCNuLEAST32, SCNuLEAST64, SCNuMAX, SCNuPTR,
209 SCNx8, SCNx16, SCNx32, SCNx64, SCNxFAST8, SCNxFAST16, SCNxFAST32, SCNxFAST64, SCNxLEAST8, SCNxLEAST16, SCNxLEAST32, SCNxLEAST64, SCNxMAX, SCNxPTR,
210 SCNX8, SCNX16, SCNX32, SCNX64, SCNXFAST8, SCNXFAST16, SCNXFAST32, SCNXFAST64, SCNXLEAST8, SCNXLEAST16, SCNXLEAST32, SCNXLEAST64, SCNXMAX, SCNXPTR
211*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +0000212 export *
213 }
214 module ciso646 {
215 header "ciso646"
216 export *
217 }
218 module climits {
219 header "climits"
Eric Fiselier7466c852016-11-21 11:26:10 +0000220/*
221 export_macros CHAR_BIT, CHAR_MIN, CHAR_MAX,
222 SCHAR_MIN, SCHAR_MAX, UCHAR_MAX,
223 SHRT_MIN, SHRT_MAX, USHRT_MAX,
224 INT_MIN, INT_MAX, UINT_MAX,
225 LONG_MIN, LONG_MAX, ULONG_MAX,
226 LLONG_MIN, LLONG_MAX, ULLONG_MAX,
227 MB_LEN_MAX
228*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +0000229 export *
230 }
231 module clocale {
232 header "clocale"
Eric Fiselier7466c852016-11-21 11:26:10 +0000233/*
234 export_macros LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME, NULL
235*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +0000236 export *
237 }
238 module cmath {
239 header "cmath"
Eric Fiselier7466c852016-11-21 11:26:10 +0000240/*
241 export_macros FP_FAST_FMA, FP_FAST_FMAF, FP_FAST_FMAL, FP_ILOGBO, FP_ILOGBNAN,
242 FP_INFINITE, FP_NAN, FP_NORMAL, FP_SUBNORMAL, FP_ZERO,
243 HUGE_VAL, HUGE_VALF, HUGE_VALL, INFINITY, NAN,
244 MATH_ERRNO, MATH_ERREXCEPT, math_errhandling
245*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +0000246 export *
247 }
248 module csetjmp {
249 header "csetjmp"
Eric Fiselier7466c852016-11-21 11:26:10 +0000250/*
251 export_macros setjmp
252*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +0000253 export *
254 }
255 module csignal {
256 header "csignal"
Eric Fiselier7466c852016-11-21 11:26:10 +0000257/*
258 export_macros SIGABRT, SIGFPE, SIGILL, SIGINT, SIGSEGV, SIGTERM,
259 SIG_DFL, SIG_IGN, SIG_ERR
260*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +0000261 export *
262 }
263 // FIXME: <cstdalign> is missing.
264 module cstdarg {
265 header "cstdarg"
Eric Fiselier7466c852016-11-21 11:26:10 +0000266/*
267 export_macros va_arg, va_start, va_end, va_copy
268*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +0000269 export *
270 }
271 module cstdbool {
272 header "cstdbool"
Eric Fiselier7466c852016-11-21 11:26:10 +0000273/*
274 export_macros __bool_true_false_are_defined
275*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +0000276 export *
277 }
278 module cstddef {
279 header "cstddef"
Eric Fiselier7466c852016-11-21 11:26:10 +0000280/*
281 export_macros NULL, offsetof
282*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +0000283 export *
284 }
285 module cstdint {
286 header "cstdint"
Eric Fiselier7466c852016-11-21 11:26:10 +0000287/*
288 export_macros
289 INT_8_MIN, INT_8_MAX, UINT_8_MAX, INT_16_MIN, INT_16_MAX, UINT_16_MAX,
290 INT_32_MIN, INT_32_MAX, UINT_32_MAX, INT_64_MIN, INT_64_MAX, UINT_64_MAX,
291 INT_FAST8_MIN, INT_FAST8_MAX, UINT_FAST8_MAX, INT_FAST16_MIN, INT_FAST16_MAX, UINT_FAST16_MAX,
292 INT_FAST32_MIN, INT_FAST32_MAX, UINT_FAST32_MAX, INT_FAST64_MIN, INT_FAST64_MAX, UINT_FAST64_MAX,
293 INT_LEAST8_MIN, INT_LEAST8_MAX, UINT_LEAST8_MAX, INT_LEAST16_MIN, INT_LEAST16_MAX, UINT_LEAST16_MAX,
294 INT_LEAST32_MIN, INT_LEAST32_MAX, UINT_LEAST32_MAX, INT_LEAST64_MIN, INT_LEAST64_MAX, UINT_LEAST64_MAX,
295 INT_MAX_MIN, INT_MAX_MAX, UINT_MAX_MAX, INT_PTR_MIN, INT_PTR_MAX, UINT_PTR_MAX,
296 PTRDIFF_MIN, PTRDIFF_MAX, SIG_ATOMIC_MIN, SIG_ATOMIC_MAX, WCHAR_MIN, WCHAR_MAX, WINT_MIN, WINT_MAX,
297 SIZE_MAX
298*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +0000299 export *
300 }
301 module cstdio {
302 header "cstdio"
Eric Fiselier7466c852016-11-21 11:26:10 +0000303/*
304 export_macros BUFSIZ, EOF, FILENAME_MAX, FOPEN_MAX, L_tmpnam, NULL,
305 SEEK_CUR, SEEK_END, SEEK_SET, TMP_MAX, _IOFBF, _IOLBF,
306 stdin, stdout, stderr
307*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +0000308 export *
309 }
310 module cstdlib {
311 header "cstdlib"
Eric Fiselier7466c852016-11-21 11:26:10 +0000312/*
313 export_macros RAND_MAX
314*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +0000315 export *
316 }
317 module cstring {
318 header "cstring"
Eric Fiselier7466c852016-11-21 11:26:10 +0000319/*
320 export_macros NULL
321*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +0000322 export *
323 }
324 module ctgmath {
325 header "ctgmath"
326 export ccomplex
327 export cmath
328 export *
329 }
330 module ctime {
331 header "ctime"
Eric Fiselier7466c852016-11-21 11:26:10 +0000332/*
333 export_macros NULL, CLOCKS_PER_SEC
334*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +0000335 export *
336 }
337 // FIXME: <cuchar> is missing.
338 module cwchar {
339 header "cwchar"
Eric Fiselier7466c852016-11-21 11:26:10 +0000340/*
341 export_macros NULL, WCHAR_MAX, WCHAR_MIN, WEOF
342*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +0000343 export *
344 }
345 module cwctype {
346 header "cwctype"
Eric Fiselier7466c852016-11-21 11:26:10 +0000347/*
348 export_macros WEOF
349*/
Bruno Cardoso Lopes7fd29e02016-10-21 03:14:27 +0000350 export *
351 }
352 }
353
Richard Smith31cfef02014-05-21 00:33:49 +0000354 module algorithm {
355 header "algorithm"
356 export initializer_list
357 export *
358 }
359 module array {
360 header "array"
361 export initializer_list
362 export *
363 }
364 module atomic {
365 header "atomic"
366 export *
Nico Webera6789802014-09-24 04:44:54 +0000367 requires cplusplus11
Richard Smith31cfef02014-05-21 00:33:49 +0000368 }
369 module bitset {
370 header "bitset"
371 export string
372 export iosfwd
373 export *
374 }
375 // No submodule for cassert. It fundamentally needs repeated, textual inclusion.
Eric Fiselier7466c852016-11-21 11:26:10 +0000376 module ccomplex {
377 header "ccomplex"
378 export complex
379 export *
380 }
381 module cctype {
382 header "cctype"
383 export *
384 }
385 module cerrno {
386 header "cerrno"
387/*
388 export_macros ECONNREFUSED, EIO, ENODEV, ENOTEMPTY, ERANGE,
389 E2BIG, ECONNRESET, EISCONN, ENOENT, ENOTRECOVERABLE, EROFS,
390 EACCES, EDEADLK, EISDIR, ENOEXEC, ENOTSOCK, ESPIPE,
391 EADDRINUSE, EDESTADDRREQ, ELOOP, ENOLCK, ENOTSUP, ESRCH,
392 EADDRNOTAVAIL, EDOM, EMFILE, ENOLINK, ENOTTY, ETIME,
393 EAFNOSUPPORT, EEXIST, EMLINK, ENOMEM, ENXIO, ETIMEDOUT,
394 EAGAIN, EFAULT, EMSGSIZE, ENOMSG, EOPNOTSUPP, ETXTBSY,
395 EALREADY, EFBIG, ENAMETOOLONG, ENOPROTOOPT, EOVERFLOW, EWOULDBLOCK,
396 EBADF, EHOSTUNREACH, ENETDOWN, ENOSPC, EOWNERDEAD, EXDEV,
397 EBADMSG, EIDRM, ENETRESET, ENOSR, EPERM, errno,
398 EBUSY, EILSEQ, ENETUNREACH, ENOSTR, EPIPE,
399 ECANCELED, EINPROGRESS, ENFILE, ENOSYS, EPROTO,
400 ECHILD, EINTR, ENOBUFS, ENOTCONN, EPROTONOSUPPORT,
401 ECONNABORTED, EINVAL, ENODATA, ENOTDIR, EPROTOTYPE
402*/
403 export *
404 }
405 module cfenv {
406 header "cfenv"
407/*
408 export_macros FE_ALL_EXCEPT, FE_DIVBYZERO, FE_INEXACT, FE_INVALID, FE_OVERFLOW,
409 FE_UNDERFLOW, FE_DOWNWARD, FE_TONEAREST, FE_TOWARDZERO, FE_UPWARD,
410 FE_DFL_ENV
411*/
412 export *
413 }
414 module cfloat {
415 header "cfloat"
416/*
417 export_macros FLT_EVAL_METHOD, FLT_RADIX, FLT_ROUNDS,
418 FLT_DIG, FLT_EPSILON, FLT_MANT_DIG,
419 FLT_MAX, FLT_MAX_10_EXP, FLT_MAX_EXP,
420 FLT_MIN, FLT_MIN_10_EXP, FLT_MIN_EXP,
421 DBL_DIG, DBL_EPSILON, DBL_MANT_DIG,
422 DBL_MAX, DBL_MAX_10_EXP, DBL_MAX_EXP,
423 DBL_MIN, DBL_MIN_10_EXP, DBL_MIN_EXP,
424 LDBL_DIG, LDBL_EPSILON, LDBL_MANT_DIG,
425 LDBL_MAX, LDBL_MAX_10_EXP, LDBL_MAX_EXP,
426 LDBL_MIN, LDBL_MIN_10_EXP, LDBL_MIN_EXP
427*/
428 export *
429 }
Richard Smith31cfef02014-05-21 00:33:49 +0000430 module chrono {
431 header "chrono"
432 export *
433 }
Eric Fiselier7466c852016-11-21 11:26:10 +0000434 module cinttypes {
435 header "cinttypes"
436 export cstdint
437/*
438 export_macros
439 PRId8, PRId16, PRId32, PRId64, PRIdFAST8, PRIdFAST16, PRIdFAST32, PRIdFAST64, PRIdLEAST8, PRIdLEAST16, PRIdLEAST32, PRIdLEAST64, PRIdMAX, PRIdPTR,
440 PRIi8, PRIi16, PRIi32, PRIi64, PRIiFAST8, PRIiFAST16, PRIiFAST32, PRIiFAST64, PRIiLEAST8, PRIiLEAST16, PRIiLEAST32, PRIiLEAST64, PRIiMAX, PRIiPTR,
441 PRIo8, PRIo16, PRIo32, PRIo64, PRIoFAST8, PRIoFAST16, PRIoFAST32, PRIoFAST64, PRIoLEAST8, PRIoLEAST16, PRIoLEAST32, PRIoLEAST64, PRIoMAX, PRIoPTR,
442 PRIu8, PRIu16, PRIu32, PRIu64, PRIuFAST8, PRIuFAST16, PRIuFAST32, PRIuFAST64, PRIuLEAST8, PRIuLEAST16, PRIuLEAST32, PRIuLEAST64, PRIuMAX, PRIuPTR,
443 PRIx8, PRIx16, PRIx32, PRIx64, PRIxFAST8, PRIxFAST16, PRIxFAST32, PRIxFAST64, PRIxLEAST8, PRIxLEAST16, PRIxLEAST32, PRIxLEAST64, PRIxMAX, PRIxPTR,
444 PRIX8, PRIX16, PRIX32, PRIX64, PRIXFAST8, PRIXFAST16, PRIXFAST32, PRIXFAST64, PRIXLEAST8, PRIXLEAST16, PRIXLEAST32, PRIXLEAST64, PRIXMAX, PRIXPTR,
445 SCNd8, SCNd16, SCNd32, SCNd64, SCNdFAST8, SCNdFAST16, SCNdFAST32, SCNdFAST64, SCNdLEAST8, SCNdLEAST16, SCNdLEAST32, SCNdLEAST64, SCNdMAX, SCNdPTR,
446 SCNi8, SCNi16, SCNi32, SCNi64, SCNiFAST8, SCNiFAST16, SCNiFAST32, SCNiFAST64, SCNiLEAST8, SCNiLEAST16, SCNiLEAST32, SCNiLEAST64, SCNiMAX, SCNiPTR,
447 SCNo8, SCNo16, SCNo32, SCNo64, SCNoFAST8, SCNoFAST16, SCNoFAST32, SCNoFAST64, SCNoLEAST8, SCNoLEAST16, SCNoLEAST32, SCNoLEAST64, SCNoMAX, SCNoPTR,
448 SCNu8, SCNu16, SCNu32, SCNu64, SCNuFAST8, SCNuFAST16, SCNuFAST32, SCNuFAST64, SCNuLEAST8, SCNuLEAST16, SCNuLEAST32, SCNuLEAST64, SCNuMAX, SCNuPTR,
449 SCNx8, SCNx16, SCNx32, SCNx64, SCNxFAST8, SCNxFAST16, SCNxFAST32, SCNxFAST64, SCNxLEAST8, SCNxLEAST16, SCNxLEAST32, SCNxLEAST64, SCNxMAX, SCNxPTR,
450 SCNX8, SCNX16, SCNX32, SCNX64, SCNXFAST8, SCNXFAST16, SCNXFAST32, SCNXFAST64, SCNXLEAST8, SCNXLEAST16, SCNXLEAST32, SCNXLEAST64, SCNXMAX, SCNXPTR
451*/
452 export *
453 }
454 module ciso646 {
455 header "ciso646"
456 export *
457 }
458 module climits {
459 header "climits"
460/*
461 export_macros CHAR_BIT, CHAR_MIN, CHAR_MAX,
462 SCHAR_MIN, SCHAR_MAX, UCHAR_MAX,
463 SHRT_MIN, SHRT_MAX, USHRT_MAX,
464 INT_MIN, INT_MAX, UINT_MAX,
465 LONG_MIN, LONG_MAX, ULONG_MAX,
466 LLONG_MIN, LLONG_MAX, ULLONG_MAX,
467 MB_LEN_MAX
468*/
469 export *
470 }
471 module clocale {
472 header "clocale"
473/*
474 export_macros LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME, NULL
475*/
476 export *
477 }
478 module cmath {
479 header "cmath"
480/*
481 export_macros FP_FAST_FMA, FP_FAST_FMAF, FP_FAST_FMAL, FP_ILOGBO, FP_ILOGBNAN,
482 FP_INFINITE, FP_NAN, FP_NORMAL, FP_SUBNORMAL, FP_ZERO,
483 HUGE_VAL, HUGE_VALF, HUGE_VALL, INFINITY, NAN,
484 MATH_ERRNO, MATH_ERREXCEPT, math_errhandling
485*/
486 export *
487 }
Richard Smith31cfef02014-05-21 00:33:49 +0000488 module codecvt {
489 header "codecvt"
490 export *
491 }
492 module complex {
493 header "complex"
494 export *
495 }
496 module condition_variable {
497 header "condition_variable"
498 export *
499 }
Eric Fiselier7466c852016-11-21 11:26:10 +0000500 module csetjmp {
501 header "csetjmp"
502/*
503 export_macros setjmp
504*/
505 export *
506 }
507 module csignal {
508 header "csignal"
509/*
510 export_macros SIGABRT, SIGFPE, SIGILL, SIGINT, SIGSEGV, SIGTERM,
511 SIG_DFL, SIG_IGN, SIG_ERR
512*/
513 export *
514 }
515 module cstdarg {
516 header "cstdarg"
517/*
518 export_macros va_arg, va_start, va_end, va_copy
519*/
520 export *
521 }
522 module cstdbool {
523 header "cstdbool"
524/*
525 export_macros __bool_true_false_are_defined
526*/
527 export *
528 }
529 module cstddef {
530 header "cstddef"
531/*
532 export_macros NULL, offsetof
533*/
534 export *
535 }
536 module cstdint {
537 header "cstdint"
538/*
539 export_macros
540 INT_8_MIN, INT_8_MAX, UINT_8_MAX, INT_16_MIN, INT_16_MAX, UINT_16_MAX,
541 INT_32_MIN, INT_32_MAX, UINT_32_MAX, INT_64_MIN, INT_64_MAX, UINT_64_MAX,
542 INT_FAST8_MIN, INT_FAST8_MAX, UINT_FAST8_MAX, INT_FAST16_MIN, INT_FAST16_MAX, UINT_FAST16_MAX,
543 INT_FAST32_MIN, INT_FAST32_MAX, UINT_FAST32_MAX, INT_FAST64_MIN, INT_FAST64_MAX, UINT_FAST64_MAX,
544 INT_LEAST8_MIN, INT_LEAST8_MAX, UINT_LEAST8_MAX, INT_LEAST16_MIN, INT_LEAST16_MAX, UINT_LEAST16_MAX,
545 INT_LEAST32_MIN, INT_LEAST32_MAX, UINT_LEAST32_MAX, INT_LEAST64_MIN, INT_LEAST64_MAX, UINT_LEAST64_MAX,
546 INT_MAX_MIN, INT_MAX_MAX, UINT_MAX_MAX, INT_PTR_MIN, INT_PTR_MAX, UINT_PTR_MAX,
547 PTRDIFF_MIN, PTRDIFF_MAX, SIG_ATOMIC_MIN, SIG_ATOMIC_MAX, WCHAR_MIN, WCHAR_MAX, WINT_MIN, WINT_MAX,
548 SIZE_MAX
549*/
550 export *
551 }
552 module cstdio {
553 header "cstdio"
554/*
555 export_macros BUFSIZ, EOF, FILENAME_MAX, FOPEN_MAX, L_tmpnam, NULL,
556 SEEK_CUR, SEEK_END, SEEK_SET, TMP_MAX, _IOFBF, _IOLBF,
557 stdin, stdout, stderr
558*/
559 export *
560 }
561 module cstdlib {
562 header "cstdlib"
563/*
564 export_macros RAND_MAX
565*/
566 export *
567 }
568 module cstring {
569 header "cstring"
570/*
571 export_macros NULL
572*/
573 export *
574 }
575 module ctgmath {
576 header "ctgmath"
577 export ccomplex
578 export cmath
579 export *
580 }
581 module ctime {
582 header "ctime"
583/*
584 export_macros NULL, CLOCKS_PER_SEC
585*/
586 export *
587 }
588 module cwchar {
589 header "cwchar"
590/*
591 export_macros NULL, WCHAR_MAX, WCHAR_MIN, WEOF
592*/
593 export *
594 }
595 module cwctype {
596 header "cwctype"
597/*
598 export_macros WEOF
599*/
600 export *
601 }
Richard Smith31cfef02014-05-21 00:33:49 +0000602 module deque {
603 header "deque"
604 export initializer_list
605 export *
606 }
607 module exception {
608 header "exception"
609 export *
610 }
611 module forward_list {
612 header "forward_list"
613 export initializer_list
614 export *
615 }
616 module fstream {
617 header "fstream"
618 export *
619 }
620 module functional {
621 header "functional"
622 export *
623 }
624 module future {
625 header "future"
626 export *
627 }
628 module initializer_list {
629 header "initializer_list"
630 export *
631 }
632 module iomanip {
633 header "iomanip"
634 export *
635 }
636 module ios {
637 header "ios"
638 export iosfwd
639 export *
640 }
641 module iosfwd {
642 header "iosfwd"
643 export *
644 }
645 module iostream {
646 header "iostream"
647 export ios
648 export streambuf
649 export istream
650 export ostream
651 export *
652 }
653 module istream {
654 header "istream"
655 // FIXME: should re-export ios, streambuf?
656 export *
657 }
658 module iterator {
659 header "iterator"
660 export *
661 }
662 module limits {
663 header "limits"
664 export *
665 }
666 module list {
667 header "list"
668 export initializer_list
669 export *
670 }
671 module locale {
672 header "locale"
673 export *
674 }
675 module map {
676 header "map"
677 export initializer_list
678 export *
679 }
680 module memory {
681 header "memory"
682 export *
683 }
684 module mutex {
685 header "mutex"
686 export *
687 }
688 module new {
689 header "new"
690 export *
691 }
692 module numeric {
693 header "numeric"
694 export *
695 }
696 module ostream {
697 header "ostream"
698 // FIXME: should re-export ios, streambuf?
699 export *
700 }
701 module queue {
702 header "queue"
703 export initializer_list
704 export *
705 }
706 module random {
707 header "random"
708 export initializer_list
709 export *
710 }
711 module ratio {
712 header "ratio"
713 export *
714 }
715 module regex {
716 header "regex"
717 export initializer_list
718 export *
719 }
720 module scoped_allocator {
721 header "scoped_allocator"
722 export *
723 }
724 module set {
725 header "set"
726 export initializer_list
727 export *
728 }
729 module sstream {
730 header "sstream"
731 // FIXME: should re-export istream, ostream, ios, streambuf, string?
732 export *
733 }
734 module stack {
735 header "stack"
736 export initializer_list
737 export *
738 }
739 module stdexcept {
740 header "stdexcept"
741 export *
742 }
743 module streambuf {
744 header "streambuf"
745 export *
746 }
747 module string {
748 header "string"
749 export initializer_list
750 export *
751 }
752 module strstream {
753 header "strstream"
754 requires !cplusplus11
755 }
756 module system_error {
757 header "system_error"
758 export *
759 }
760 module thread {
761 header "thread"
762 export *
763 }
764 module tuple {
765 header "tuple"
766 export *
767 }
768 module type_traits {
769 header "type_traits"
770 export *
771 }
772 module typeindex {
773 header "typeindex"
774 export *
775 }
776 module typeinfo {
777 header "typeinfo"
778 export *
779 }
780 module unordered_map {
781 header "unordered_map"
782 export initializer_list
783 export *
784 }
785 module unordered_set {
786 header "unordered_set"
787 export initializer_list
788 export *
789 }
790 module utility {
791 header "utility"
792 export initializer_list
793 export *
794 }
795 module valarray {
796 header "valarray"
797 export initializer_list
798 export *
799 }
800 module vector {
801 header "vector"
802 export initializer_list
803 export *
804 }
805
Richard Smith2d1b6372015-10-13 22:13:33 +0000806 // FIXME: We don't have modules for the <foo.h> headers, because they might
807 // be included from the C library's headers, and that would create a #include
808 // cycle. For the same reason, we don't have a module for __config.
809 //module __config { header "__config" export * }
810
Richard Smith31cfef02014-05-21 00:33:49 +0000811 // FIXME: These should be private.
812 module __bit_reference { header "__bit_reference" export * }
Richard Smith31cfef02014-05-21 00:33:49 +0000813 module __debug { header "__debug" export * }
814 module __functional_base { header "__functional_base" export * }
815 module __hash_table { header "__hash_table" export * }
816 module __locale { header "__locale" export * }
817 module __mutex_base { header "__mutex_base" export * }
818 module __split_buffer { header "__split_buffer" export * }
819 module __sso_allocator { header "__sso_allocator" export * }
820 module __std_stream { header "__std_stream" export * }
821 module __tree { header "__tree" export * }
822 module __tuple { header "__tuple" export * }
823 module __undef_min_max { header "__undef_min_max" export * }
Saleem Abdulrasooldcf27a62015-02-13 22:15:32 +0000824 module __undef___deallocate { header "__undef___deallocate" export * }
Richard Smith31cfef02014-05-21 00:33:49 +0000825}