From bb8586923794291ddabd122490fd2ab7ccc71ee0 Mon Sep 17 00:00:00 2001 From: Neelesh Chandola Date: Thu, 13 Dec 2018 13:35:24 +0530 Subject: [PATCH] Undefine some symbols and globalOptions when processing nimscript (#9945) [backport] * Undefine some symbols when processing nimscript * Undefine taintMode when processing nimscript * Reload .cfg configuration --- compiler/cmdlinehelper.nim | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/compiler/cmdlinehelper.nim b/compiler/cmdlinehelper.nim index 8bd0733140..9fbf4a0b07 100644 --- a/compiler/cmdlinehelper.nim +++ b/compiler/cmdlinehelper.nim @@ -48,6 +48,15 @@ proc loadConfigsAndRunMainCommand*(self: NimProg, cache: IdentCache; conf: Confi if self.suggestMode: conf.command = "nimsuggest" + # These defines/options should not be enabled while processing nimscript + # bug #4446, #9420, #8991, #9589, #9153 + undefSymbol(conf.symbols, "profiler") + undefSymbol(conf.symbols, "memProfiler") + undefSymbol(conf.symbols, "nodejs") + + # bug #9120 + conf.globalOptions.excl(optTaintMode) + proc runNimScriptIfExists(path: AbsoluteFile)= if fileExists(path): runNimScript(cache, path, freshDefines = false, conf) @@ -79,6 +88,9 @@ proc loadConfigsAndRunMainCommand*(self: NimProg, cache: IdentCache; conf: Confi # 'nimsuggest foo.nims' means to just auto-complete the NimScript file discard + # Reload configuration from .cfg file + loadConfigs(DefaultConfig, cache, conf) + # now process command line arguments again, because some options in the # command line can overwite the config file's settings extccomp.initVars(conf)