summary refs log tree commit diff stats
path: root/doc/advopt.txt
blob: f5359c0c071388033833ec147976757e9029a6bb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
Advanced commands:
  //compileToC, cc          compile project with C code generator
  //compileToCpp, cpp       compile project to C++ code
  //compileToOC, objc       compile project to Objective C code
  //js                      compile project to Javascript
  //e                       run a Nimscript file
  //rst2html                convert a reStructuredText file to HTML
  //rst2tex                 convert a reStructuredText file to TeX
  //jsondoc                 extract the documentation to a json file
  //ctags                   create a tags file
  //buildIndex              build an index for the whole documentation
  //genDepend               generate a DOT file containing the
                          module dependency graph
  //dump                    dump all defined conditionals and search paths
                          see also: --dump.format:json (useful with: ` | jq`)
  //check                   checks the project for syntax and semantic

Runtime checks (see -x):
  --objChecks:on|off        turn obj conversion checks on|off
  --fieldChecks:on|off      turn case variant field checks on|off
  --rangeChecks:on|off      turn range checks on|off
  --boundChecks:on|off      turn bound checks on|off
  --overflowChecks:on|off   turn int over-/underflow checks on|off
  --floatChecks:on|off      turn all floating point (NaN/Inf) checks on|off
  --nanChecks:on|off        turn NaN checks on|off
  --infChecks:on|off        turn Inf checks on|off
  --nilChecks:on|off        turn nil checks on|off
  --refChecks:on|off        turn ref checks on|off (only for --newruntime)

Advanced options:
  -o:FILE, --out:FILE       set the output filename
  --outdir:DIR              set the path where the output file will be written
  --stdout:on|off           output to stdout
  --colors:on|off           turn compiler messages coloring on|off
  --listFullPaths:on|off    list full paths in messages
  -w:on|off|list, --warnings:on|off|list
                            turn all warnings on|off or list all available
  --warning[X]:on|off       turn specific warning X on|off
  --hints:on|off|list       turn all hints on|off or list all available
  --hint[X]:on|off          turn specific hint X on|off
  --styleCheck:off|hint|error
                            produce hints or errors for Nim identifiers that
                            do not adhere to Nim's official style guide
                            https://nim-lang.org/docs/nep1.html
  --showAllMismatches:on|off
                            show all mismatching candidates in overloading
                            resolution
  --lib:PATH                set the system library path
  --import:PATH             add an automatically imported module
  --include:PATH            add an automatically included module
  --nimcache:PATH           set the path used for generated files
  -c, --compileOnly:on|off  compile Nim files only; do not assemble or link
  --noLinking:on|off        compile Nim and generated files but do not link
  --noMain:on|off           do not generate a main procedure
  --genScript:on|off        generate a compile script (in the 'nimcache'
                            subdirectory named 'compile_$$project$$scriptext'),
                            implies --compileOnly
  --genDeps:on|off          generate a '.deps' file containing the dependencies
  --os:SYMBOL               set the target operating system (cross-compilation)
  --cpu:SYMBOL              set the target processor (cross-compilation)
  --debuginfo:on|off        enables debug information
  -t, --passC:OPTION        pass an option to the C compiler
  -l, --passL:OPTION        pass an option to the linker
  --cincludes:DIR           modify the C compiler header search path
  --clibdir:DIR             modify the linker library search path
  --clib:LIBNAME            link an additional C library
                            (you should omit platform-specific extensions)
  --project                 document the whole project (doc2)
  --docSeeSrcUrl:url        activate 'see source' for doc and doc2 commands
                            (see doc.item.seesrc in config/nimdoc.cfg)
  --docInternal             also generate documentation for non-exported symbols
  --lineDir:on|off          generation of #line directive on|off
  --embedsrc:on|off         embeds the original source code as comments
                            in the generated output
  --threadanalysis:on|off   turn thread analysis on|off
  --tlsEmulation:on|off     turn thread local storage emulation on|off
  --taintMode:on|off        turn taint mode on|off
  --implicitStatic:on|off   turn implicit compile time evaluation on|off
  --trmacros:on|off         turn term rewriting macros on|off
  --multimethods:on|off     turn multi-methods on|off
  --memTracker:on|off       turn memory tracker on|off
  --hotCodeReloading:on|off
                            turn support for hot code reloading on|off
  --excessiveStackTrace:on|off
                            stack traces use full file paths
  --oldNewlines:on|off      turn on|off the old behaviour of "\n"
  --laxStrings:on|off       when turned on, accessing the zero terminator in
                            strings is allowed; only for backwards compatibility
  --nilseqs:on|off          allow 'nil' for strings/seqs for
                            backwards compatibility
  --oldast:on|off           use old AST for backwards compatibility
  --skipCfg:on|off          do not read the nim installation's configuration file
  --skipUserCfg:on|off      do not read the user's configuration file
  --skipParentCfg:on|off    do not read the parent dirs' configuration files
  --skipProjCfg:on|off      do not read the project's configuration file
  --gc:refc|markAndSweep|boehm|go|none|regions
                            select the GC to use; default is 'refc'
  --index:on|off            turn index file generation on|off
  --putenv:key=value        set an environment variable
  --NimblePath:PATH         add a path for Nimble support
  --noNimblePath            deactivate the Nimble path
  --noCppExceptions         use default exception handling with C++ backend
  --cppCompileToNamespace:namespace
                            use the provided namespace for the generated C++ code,
                            if no namespace is provided "Nim" will be used
  --expandMacro:MACRO       dump every generated AST from MACRO
  --excludePath:PATH        exclude a path from the list of search paths
  --dynlibOverride:SYMBOL   marks SYMBOL so that dynlib:SYMBOL
                            has no effect and can be statically linked instead;
                            symbol matching is fuzzy so
                            that --dynlibOverride:lua matches
                            dynlib: "liblua.so.3"
  --dynlibOverrideAll
                            disables the effects of the dynlib pragma
  --listCmd                 list the commands used to execute external programs
  --parallelBuild:0|1|...   perform a parallel build
                            value = number of processors (0 for auto-detect)
  --incremental:on|off      only recompile the changed modules (experimental!)
  --verbosity:0|1|2|3       set Nim's verbosity level (1 is default)
  --errorMax:N              stop compilation after N errors; 0 means unlimited
  --experimental:$1
                            enable experimental language feature
  --legacy:$2
                            enable obsolete/legacy language feature
                            legacy code.
  --newruntime              use an alternative runtime that uses destructors
                            and that uses a shared heap via -d:useMalloc
  --profiler:on|off         enable profiling; requires `import nimprof`, and
                            works better with `--stackTrace:on`
                            see also https://nim-lang.github.io/Nim/estp.html