diff --git a/Consts-defined-by-the-compiler.md b/Consts-defined-by-the-compiler.md new file mode 100644 index 0000000..854e210 --- /dev/null +++ b/Consts-defined-by-the-compiler.md @@ -0,0 +1,80 @@ +The following three lists are compiled from: +[Nim/compiler/plataform.nim](https://github.com/nim-lang/Nim/blob/devel/compiler/platform.nim) and +[Nim/compiler/extccomp.nim](https://github.com/nim-lang/Nim/blob/1ad729ee3b4738cffcbf0009e8849cb57b729e91/compiler/extccomp.nim) + +One can use some name from them like: +```nim +when defined(Windows): + doSomething() +``` + +### Operating Systems: +* ``DOS`` +* ``Windows`` +* ``OS2`` +* ``Linux`` +* ``MorphOS`` +* ``SkyOS`` +* ``Solaris`` +* ``Irix`` +* ``NetBSD`` +* ``FreeBSD`` +* ``OpenBSD`` +* ``AIX`` +* ``PalmOS`` +* ``QNX`` +* ``Amiga`` +* ``Atari`` +* ``Netware`` +* ``MacOS`` +* ``MacOSX`` +* ``Haiku`` +* ``VxWorks`` +* ``JS`` +* ``NimrodVM`` +* ``Standalone`` + +### CPU Architectures: +* ``i386`` +* ``m68k`` +* ``alpha`` +* ``powerpc`` +* ``powerpc64`` +* ``sparc`` +* ``vm`` +* ``ia64`` +* ``amd64`` +* ``mips`` +* ``arm`` +* ``js`` +* ``nimrodvm`` +* ``avr`` + + +### Compilers: + + +* ``vcc`` Microsoft's Visual C++ +* ``gcc`` Gnu C +* ``llvm_gcc`` LLVM-GCC compiler +* ``icc`` Intel C++ compiler +* ``clang`` Clang compiler +* ``bcc`` Borland C Compiler +* ``dmc`` Digital Mars C Compiler +* ``wcc`` Watcom C Compiler +* ``tcc`` Tiny C Compiler +* ``pcc`` Pelles C Compiler +* ``ucc`` Generic UNIX C compiler + + +# compileOption + +Also remember about how to access the [compiler options](http://nim-lang.org/docs/nimc.html): +```nim + when compileOption("boundChecks"): # d:release should disable this. + if i > q.high: # x < q.low is taken care by the Natural parameter + raise newException(IndexError, "Bla has less than " & $(i+1) & " elements.") + discard +``` + +TODO: List them here and how to correctly access the more complex ones. \ No newline at end of file