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