blob: 3fb7428411df95756b86f07ed287f1844a75fc31 [file] [log] [blame]
Richard Smithf33ffcc2014-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++.
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 *
Nico Weber87587962014-09-24 04:44:54 +000019 requires cplusplus11
Richard Smithf33ffcc2014-05-21 00:33:49 +000020 }
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
Richard Smith44d14762015-10-13 22:13:33 +0000458 // FIXME: We don't have modules for the <foo.h> headers, because they might
459 // be included from the C library's headers, and that would create a #include
460 // cycle. For the same reason, we don't have a module for __config.
461 //module __config { header "__config" export * }
462
Richard Smithf33ffcc2014-05-21 00:33:49 +0000463 // FIXME: These should be private.
464 module __bit_reference { header "__bit_reference" export * }
Richard Smithf33ffcc2014-05-21 00:33:49 +0000465 module __debug { header "__debug" export * }
466 module __functional_base { header "__functional_base" export * }
467 module __hash_table { header "__hash_table" export * }
468 module __locale { header "__locale" export * }
469 module __mutex_base { header "__mutex_base" export * }
470 module __split_buffer { header "__split_buffer" export * }
471 module __sso_allocator { header "__sso_allocator" export * }
472 module __std_stream { header "__std_stream" export * }
473 module __tree { header "__tree" export * }
474 module __tuple { header "__tuple" export * }
475 module __undef_min_max { header "__undef_min_max" export * }
Saleem Abdulrasoolf1b30c42015-02-13 22:15:32 +0000476 module __undef___deallocate { header "__undef___deallocate" export * }
Richard Smithf33ffcc2014-05-21 00:33:49 +0000477}