diff --git a/compiler/ccgtypes.nim b/compiler/ccgtypes.nim index a3debdb0d65f..a3c3c2a85005 100644 --- a/compiler/ccgtypes.nim +++ b/compiler/ccgtypes.nim @@ -81,7 +81,6 @@ proc fillBackendName(m: BModule; s: PSym) = result.add '_' result.add(idOrSig(s, m.module.name.s.mangle, m.sigConflicts, m.config)) s.loc.snippet = result - writeMangledName(m.ndi, s, m.config) proc fillParamName(m: BModule; s: PSym) = if s.loc.snippet == "": @@ -105,7 +104,6 @@ proc fillParamName(m: BModule; s: PSym) = # That would lead to either needing to reload `proxy` or to overwrite the # executable file for the main module, which is running (or both!) -> error. s.loc.snippet = res.rope - writeMangledName(m.ndi, s, m.config) proc fillLocalName(p: BProc; s: PSym) = assert s.kind in skLocalVars+{skTemp} @@ -121,7 +119,6 @@ proc fillLocalName(p: BProc; s: PSym) = result.add "_" & rope(counter+1) p.sigConflicts.inc(key) s.loc.snippet = result - if s.kind != skTemp: writeMangledName(p.module.ndi, s, p.config) proc scopeMangledParam(p: BProc; param: PSym) = ## parameter generation only takes BModule, not a BProc, so we have to diff --git a/compiler/cgen.nim b/compiler/cgen.nim index 7e7f7258f2ea..e330033f55f3 100644 --- a/compiler/cgen.nim +++ b/compiler/cgen.nim @@ -14,7 +14,7 @@ import nversion, nimsets, msgs, bitsets, idents, types, ccgutils, ropes, wordrecg, treetab, cgmeth, rodutils, renderer, cgendata, aliases, - lowerings, ndi, lineinfos, pathutils, transf, + lowerings, lineinfos, pathutils, transf, injectdestructors, astmsgs, modulepaths, pushpoppragmas, mangleutils @@ -2129,9 +2129,6 @@ proc rawNewModule(g: BModuleList; module: PSym, filename: AbsoluteFile): BModule if sfSystemModule in module.flags: incl result.flags, preventStackTrace excl(result.preInitProc.options, optStackTrace) - let ndiName = if optCDebug in g.config.globalOptions: changeFileExt(completeCfilePath(g.config, filename), "ndi") - else: AbsoluteFile"" - open(result.ndi, ndiName, g.config) proc rawNewModule(g: BModuleList; module: PSym; conf: ConfigRef): BModule = result = rawNewModule(g, module, AbsoluteFile toFullPath(conf, module.position.FileIndex)) @@ -2261,7 +2258,6 @@ proc shouldRecompile(m: BModule; code: Rope, cfile: Cfile): bool = # it would generate multiple 'main' procs, for instance. proc writeModule(m: BModule, pending: bool) = - template onExit() = close(m.ndi, m.config) let cfile = getCFile(m) if moduleHasChanged(m.g.graph, m.module): genInitCode(m) @@ -2279,12 +2275,10 @@ proc writeModule(m: BModule, pending: bool) = when hasTinyCBackend: if m.config.cmd == cmdTcc: tccgen.compileCCode($code, m.config) - onExit() return if not shouldRecompile(m, code, cf): cf.flags = {CfileFlag.Cached} addFileToCompile(m.config, cf) - onExit() proc updateCachedModule(m: BModule) = let cfile = getCFile(m) diff --git a/compiler/cgendata.nim b/compiler/cgendata.nim index 5368e9dc7518..7bc273df300d 100644 --- a/compiler/cgendata.nim +++ b/compiler/cgendata.nim @@ -11,7 +11,7 @@ import ast, ropes, options, - ndi, lineinfos, pathutils, modulegraphs + lineinfos, pathutils, modulegraphs import std/[intsets, tables, sets] @@ -172,7 +172,6 @@ type # OpenGL wrapper sigConflicts*: CountTable[SigHash] g*: BModuleList - ndi*: NdiFile template config*(m: BModule): ConfigRef = m.g.config template config*(p: BProc): ConfigRef = p.module.g.config diff --git a/compiler/ndi.nim b/compiler/ndi.nim deleted file mode 100644 index cc18ab39fdd7..000000000000 --- a/compiler/ndi.nim +++ /dev/null @@ -1,52 +0,0 @@ -# -# -# The Nim Compiler -# (c) Copyright 2017 Andreas Rumpf -# -# See the file "copying.txt", included in this -# distribution, for details about the copyright. -# - -## This module implements the generation of ``.ndi`` files for better debugging -## support of Nim code. "ndi" stands for "Nim debug info". - -import ast, msgs, ropes, options, pathutils - -when defined(nimPreviewSlimSystem): - import std/[syncio, assertions] - -type - NdiFile* = object - enabled: bool - f: File - buf: string - filename: AbsoluteFile - syms: seq[PSym] - -proc doWrite(f: var NdiFile; s: PSym; conf: ConfigRef) = - f.buf.setLen 0 - f.buf.addInt s.info.line.int - f.buf.add "\t" - f.buf.addInt s.info.col.int - f.f.write(s.name.s, "\t") - f.f.writeRope(s.loc.snippet) - f.f.writeLine("\t", toFullPath(conf, s.info), "\t", f.buf) - -template writeMangledName*(f: NdiFile; s: PSym; conf: ConfigRef) = - if f.enabled: f.syms.add s - -proc open*(f: var NdiFile; filename: AbsoluteFile; conf: ConfigRef) = - f.enabled = not filename.isEmpty - if f.enabled: - f.filename = filename - f.buf = newStringOfCap(20) - -proc close*(f: var NdiFile, conf: ConfigRef) = - if f.enabled: - f.f = open(f.filename.string, fmWrite, 8000) - doAssert f.f != nil, f.filename.string - for s in f.syms: - doWrite(f, s, conf) - close(f.f) - f.syms.reset - f.filename.reset