summary refs log tree commit diff stats
path: root/doc/advopt.txt
blob: 9b7f29a5e5e746044d6e352db170d3d6b93c27d8 (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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
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
                            use `--docCmd:skip` to skip compiling snippets
  //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
  --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
  --usenimcache             will use `outdir=$$nimcache`, whichever it resolves
                            to after all options have been processed
  --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
  --warningAsError[X]:on|off
                            turn specific warning X into an error 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
                            see also https://nim-lang.org/docs/nimc.html#compiler-usage-generated-c-code-directory
  -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
  --cc:SYMBOL               specify the C compiler
  --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)
  --docRoot:path            `nim doc --docRoot:/foo --project --outdir:docs /foo/sub/main.nim`
                            generates: docs/sub/main.html
                            if path == @pkg, will use nimble file enclosing dir
                            if path == @path, will use first matching dir in `--path`
                            if path == @default (the default and most useful), will use
                            best match among @pkg,@path.
                            if these are nonexistent, will use project path
  -b, --backend:c|cpp|js|objc sets backend to use with commands like `nim doc` or `nim r`
  --docCmd:cmd              if `cmd == skip`, skips runnableExamples
                            else, runs runnableExamples with given options, eg:
                            `--docCmd:"-d:foo --threads:on"`
  --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
  --stackTraceMsgs:on|off   enable user defined stack frame msgs via `setFrameMsg`
  --nilseqs:on|off          allow 'nil' for strings/seqs for
                            backwards compatibility
  --seqsv2:on|off           use the new string/seq implementation based on
                            destructors
  --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|arc|orc|markAndSweep|boehm|go|none|regions
                            select the GC to use; default is 'refc'
  --exceptions:setjmp|cpp|goto
                            select the exception handling implementation
  --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
  --clearNimblePath         empty the list of Nimble package search paths
  --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
  --expandArc:PROCNAME      show how PROCNAME looks like after diverse optimizations
                            before the final backend phase (mostly ARC/ORC specific)
  --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 compilation commands; can be combined with
                            `--hint:exec:on` and `--hint:link:on`
  --asm                     produce assembler code
  --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
  --maxLoopIterationsVM:N   set max iterations for all VM loops
  --experimental:$1
                            enable experimental language feature
  --legacy:$2
                            enable obsolete/legacy language feature
  --useVersion:1.0          emulate Nim version X of the Nim compiler
  --profiler:on|off         enable profiling; requires `import nimprof`, and
                            works better with `--stackTrace:on`
                            see also https://nim-lang.github.io/Nim/estp.html
  --benchmarkVM:on|off      enable benchmarking of VM code with cpuTime()
  --profileVM:on|off        enable compile time VM profiler
  --sinkInference:on|off    en-/disable sink parameter inference (default: on)
  --panics:on|off           turn panics into process terminations (default: off)