From daaf50ae0383e4b8250cfca7cfe3cee27a0290d9 Mon Sep 17 00:00:00 2001 From: Timothee Cour Date: Sun, 9 Dec 2018 19:11:08 -0800 Subject: refs #9906; --errorMax:10 allows stopping after 10 errors --- compiler/commands.nim | 5 +++++ doc/advopt.txt | 1 + 2 files changed, 6 insertions(+) diff --git a/compiler/commands.nim b/compiler/commands.nim index fa17e9851..576a7dc7f 100644 --- a/compiler/commands.nim +++ b/compiler/commands.nim @@ -617,6 +617,11 @@ proc processSwitch*(switch, arg: string, pass: TCmdLinePass, info: TLineInfo; of "run", "r": expectNoArg(conf, switch, arg, pass, info) incl(conf.globalOptions, optRun) + of "errormax": + # Note: `nim check` (etc) can overwrite this; + # `0` is meaningless and has same effect as `1` + expectArg(conf, switch, arg, pass, info) + conf.errorMax = parseInt(arg) of "verbosity": expectArg(conf, switch, arg, pass, info) let verbosity = parseInt(arg) diff --git a/doc/advopt.txt b/doc/advopt.txt index 7cd72f6c3..11af58392 100644 --- a/doc/advopt.txt +++ b/doc/advopt.txt @@ -103,6 +103,7 @@ Advanced options: 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:int stop after n (>=1) errors in semantic pass --experimental:$1 enable experimental language feature -v, --version show detailed version information -- cgit 1.4.1-2-gfad0 From 9d10278a9ca0d90a5fe82fa6e7dfb7d7dcb0f38a Mon Sep 17 00:00:00 2001 From: Timothee Cour Date: Sun, 9 Dec 2018 23:39:57 -0800 Subject: --errorMax:0 means: unlimited --- compiler/commands.nim | 10 +++++++--- doc/advopt.txt | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/compiler/commands.nim b/compiler/commands.nim index 576a7dc7f..40283489c 100644 --- a/compiler/commands.nim +++ b/compiler/commands.nim @@ -618,10 +618,14 @@ proc processSwitch*(switch, arg: string, pass: TCmdLinePass, info: TLineInfo; expectNoArg(conf, switch, arg, pass, info) incl(conf.globalOptions, optRun) of "errormax": - # Note: `nim check` (etc) can overwrite this; - # `0` is meaningless and has same effect as `1` expectArg(conf, switch, arg, pass, info) - conf.errorMax = parseInt(arg) + conf.errorMax = block: + # Note: `nim check` (etc) can overwrite this. + # `0` is meaningless, give it a useful meaning as in clang's -ferror-limit + # If user doesn't set this flag and the code doesn't either, it'd + # have the same effect as errorMax = 1 + let ret = parseInt(arg) + if ret == 0: high(int) else: ret of "verbosity": expectArg(conf, switch, arg, pass, info) let verbosity = parseInt(arg) diff --git a/doc/advopt.txt b/doc/advopt.txt index 11af58392..eca7b0a08 100644 --- a/doc/advopt.txt +++ b/doc/advopt.txt @@ -103,7 +103,7 @@ Advanced options: 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:int stop after n (>=1) errors in semantic pass + --errorMax:int stop after n errors in semantic pass; 0 means unlimited --experimental:$1 enable experimental language feature -v, --version show detailed version information -- cgit 1.4.1-2-gfad0