codekingpro/portable-devtools
115k
1// define the module for __config outside of the top level 'std' module2// since __config may be included from C headers which may create an3// include cycle.4module std_config [system] [extern_c] {5 header "__config"6}7 8module std [system] {9 export std_config10 // FIXME: The standard does not require that each of these submodules11 // re-exports its imported modules. We should provide an alternative form of12 // export that issues a warning if a name from the submodule is used, and13 // use that to provide a 'strict mode' for libc++.14 15 // Deprecated C-compatibility headers. These can all be included from within16 // an 'extern "C"' context.17 module depr [extern_c] {18 // <assert.h> provided by C library.19 module ctype_h {20 header "ctype.h"21 export *22 }23 module errno_h {24 header "errno.h"25 export *26 }27 module fenv_h {28 header "fenv.h"29 export *30 }31 // <float.h> provided by compiler or C library.32 module inttypes_h {33 header "inttypes.h"34 export stdint_h35 export *36 }37 // <iso646.h> provided by compiler.38 // <limits.h> provided by compiler or C library.39 module locale_h {40 header "locale.h"41 export *42 }43 module math_h {44 header "math.h"45 export *46 }47 module setjmp_h {48 header "setjmp.h"49 export *50 }51 // FIXME: <stdalign.h> is missing.52 // <signal.h> provided by C library.53 // <stdarg.h> provided by compiler.54 // <stdbool.h> provided by compiler.55 module stddef_h {56 // <stddef.h>'s __need_* macros require textual inclusion.57 textual header "stddef.h"58 }59 module stdint_h {60 header "stdint.h"61 export *62 // FIXME: This module only exists on OS X and for some reason the63 // wildcard above doesn't export it.64 export Darwin.C.stdint65 }66 module stdio_h {67 // <stdio.h>'s __need_* macros require textual inclusion.68 textual header "stdio.h"69 export *70 export Darwin.C.stdio71 }72 module stdlib_h {73 // <stdlib.h>'s __need_* macros require textual inclusion.74 textual header "stdlib.h"75 export *76 }77 module string_h {78 header "string.h"79 export *80 }81 // FIXME: <uchar.h> is missing.82 // <time.h> provided by C library.83 module wchar_h {84 // <wchar.h>'s __need_* macros require textual inclusion.85 textual header "wchar.h"86 export *87 }88 module wctype_h {89 header "wctype.h"90 export *91 }92 }93 94 // <complex.h> and <tgmath.h> are not C headers in any real sense, do not95 // allow their use in extern "C" contexts.96 module complex_h {97 header "complex.h"98 export ccomplex99 export *100 }101 module tgmath_h {102 header "tgmath.h"103 export ccomplex104 export cmath105 export *106 }107 108 // C compatibility headers.109 module compat {110 module cassert {111 // <cassert>'s use of NDEBUG requires textual inclusion.112 textual header "cassert"113 }114 module ccomplex {115 header "ccomplex"116 export complex117 export *118 }119 module cctype {120 header "cctype"121 export *122 }123 module cerrno {124 header "cerrno"125 export *126 }127 module cfenv {128 header "cfenv"129 export *130 }131 module cfloat {132 header "cfloat"133 export *134 }135 module cinttypes {136 header "cinttypes"137 export cstdint138 export *139 }140 module ciso646 {141 header "ciso646"142 export *143 }144 module climits {145 header "climits"146 export *147 }148 module clocale {149 header "clocale"150 export *151 }152 module cmath {153 header "cmath"154 export *155 }156 module csetjmp {157 header "csetjmp"158 export *159 }160 module csignal {161 header "csignal"162 export *163 }164 // FIXME: <cstdalign> is missing.165 module cstdarg {166 header "cstdarg"167 export *168 }169 module cstdbool {170 header "cstdbool"171 export *172 }173 module cstddef {174 header "cstddef"175 export *176 }177 module cstdint {178 header "cstdint"179 export depr.stdint_h180 export *181 }182 module cstdio {183 header "cstdio"184 export *185 }186 module cstdlib {187 header "cstdlib"188 export *189 }190 module cstring {191 header "cstring"192 export *193 }194 module ctgmath {195 header "ctgmath"196 export ccomplex197 export cmath198 export *199 }200 module ctime {201 header "ctime"202 export *203 }204 // FIXME: <cuchar> is missing.205 module cwchar {206 header "cwchar"207 export depr.stdio_h208 export *209 }210 module cwctype {211 header "cwctype"212 export *213 }214 }215 216 module algorithm {217 header "algorithm"218 export initializer_list219 export *220 }221 module any {222 header "any"223 export *224 }225 module array {226 header "array"227 export initializer_list228 export *229 }230 module atomic {231 header "atomic"232 export *233 }234 module bit {235 header "bit"236 export *237 }238 module bitset {239 header "bitset"240 export string241 export iosfwd242 export *243 }244 // No submodule for cassert. It fundamentally needs repeated, textual inclusion.245 module charconv {246 header "charconv"247 export *248 }249 module chrono {250 header "chrono"251 export *252 }253 module codecvt {254 header "codecvt"255 export *256 }257 module compare {258 header "compare"259 export *260 }261 module complex {262 header "complex"263 export *264 }265 module condition_variable {266 header "condition_variable"267 export *268 }269 module deque {270 header "deque"271 export initializer_list272 export *273 }274 module exception {275 header "exception"276 export *277 }278 module execution {279 header "execution"280 export *281 }282 module filesystem {283 header "filesystem"284 export *285 }286 module forward_list {287 header "forward_list"288 export initializer_list289 export *290 }291 module fstream {292 header "fstream"293 export *294 }295 module functional {296 header "functional"297 export *298 }299 module future {300 header "future"301 export *302 }303 module initializer_list {304 header "initializer_list"305 export *306 }307 module iomanip {308 header "iomanip"309 export *310 }311 module ios {312 header "ios"313 export iosfwd314 export *315 }316 module iosfwd {317 header "iosfwd"318 export *319 }320 module iostream {321 header "iostream"322 export ios323 export streambuf324 export istream325 export ostream326 export *327 }328 module istream {329 header "istream"330 // FIXME: should re-export ios, streambuf?331 export *332 }333 module iterator {334 header "iterator"335 export *336 }337 module limits {338 header "limits"339 export *340 }341 module list {342 header "list"343 export initializer_list344 export *345 }346 module locale {347 header "locale"348 export *349 }350 module map {351 header "map"352 export initializer_list353 export *354 }355 module memory {356 header "memory"357 export *358 }359 module mutex {360 header "mutex"361 export *362 }363 module new {364 header "new"365 export *366 }367 module numeric {368 header "numeric"369 export *370 }371 module optional {372 header "optional"373 export *374 }375 module ostream {376 header "ostream"377 // FIXME: should re-export ios, streambuf?378 export *379 }380 module queue {381 header "queue"382 export initializer_list383 export *384 }385 module random {386 header "random"387 export initializer_list388 export *389 }390 module ratio {391 header "ratio"392 export *393 }394 module regex {395 header "regex"396 export initializer_list397 export *398 }399 module scoped_allocator {400 header "scoped_allocator"401 export *402 }403 module set {404 header "set"405 export initializer_list406 export *407 }408 module sstream {409 header "sstream"410 // FIXME: should re-export istream, ostream, ios, streambuf, string?411 export *412 }413 module stack {414 header "stack"415 export initializer_list416 export *417 }418 module stdexcept {419 header "stdexcept"420 export *421 }422 module streambuf {423 header "streambuf"424 export *425 }426 module string {427 header "string"428 export initializer_list429 export string_view430 export __string431 export *432 }433 module string_view {434 header "string_view"435 export initializer_list436 export __string437 export *438 }439 module strstream {440 header "strstream"441 export *442 }443 module system_error {444 header "system_error"445 export *446 }447 module thread {448 header "thread"449 export *450 }451 module tuple {452 header "tuple"453 export *454 }455 module type_traits {456 header "type_traits"457 export *458 }459 module typeindex {460 header "typeindex"461 export *462 }463 module typeinfo {464 header "typeinfo"465 export *466 }467 module unordered_map {468 header "unordered_map"469 export initializer_list470 export *471 }472 module unordered_set {473 header "unordered_set"474 export initializer_list475 export *476 }477 module utility {478 header "utility"479 export initializer_list480 export *481 }482 module valarray {483 header "valarray"484 export initializer_list485 export *486 }487 module variant {488 header "variant"489 export *490 }491 module vector {492 header "vector"493 export initializer_list494 export *495 }496 module version {497 header "version"498 export *499 }500 501 // FIXME: These should be private.502 module __bit_reference { header "__bit_reference" export * }503 module __debug { header "__debug" export * }504 module __errc { header "__errc" export * }505 module __functional_base { header "__functional_base" export * }506 module __hash_table { header "__hash_table" export * }507 module __locale { header "__locale" export * }508 module __mutex_base { header "__mutex_base" export * }509 module __split_buffer { header "__split_buffer" export * }510 module __sso_allocator { header "__sso_allocator" export * }511 module __std_stream { header "__std_stream" export * }512 module __string { header "__string" export * }513 module __tree { header "__tree" export * }514 module __undef_macros { header "__undef_macros" export * }515 module __node_handle { header "__node_handle" export * }516 517 module experimental {518 requires cplusplus11519 520 module algorithm {521 header "experimental/algorithm"522 export *523 }524 module coroutine {525 requires coroutines526 header "experimental/coroutine"527 export *528 }529 module deque {530 header "experimental/deque"531 export *532 }533 module filesystem {534 header "experimental/filesystem"535 export *536 }537 module forward_list {538 header "experimental/forward_list"539 export *540 }541 module functional {542 header "experimental/functional"543 export *544 }545 module iterator {546 header "experimental/iterator"547 export *548 }549 module list {550 header "experimental/list"551 export *552 }553 module map {554 header "experimental/map"555 export *556 }557 module memory_resource {558 header "experimental/memory_resource"559 export *560 }561 module propagate_const {562 header "experimental/propagate_const"563 export *564 }565 module regex {566 header "experimental/regex"567 export *568 }569 module simd {570 header "experimental/simd"571 export *572 }573 module set {574 header "experimental/set"575 export *576 }577 module span {578 header "span"579 export *580 }581 module string {582 header "experimental/string"583 export *584 }585 module type_traits {586 header "experimental/type_traits"587 export *588 }589 module unordered_map {590 header "experimental/unordered_map"591 export *592 }593 module unordered_set {594 header "experimental/unordered_set"595 export *596 }597 module utility {598 header "experimental/utility"599 export *600 }601 module vector {602 header "experimental/vector"603 export *604 }605 // FIXME these should be private606 module __memory {607 header "experimental/__memory"608 export *609 }610 } // end experimental611}612 