diff --git a/pkgs/development/compilers/nim/default.nix b/pkgs/development/compilers/nim/default.nix index 16896c8b6c05..c4be7c27d85c 100644 --- a/pkgs/development/compilers/nim/default.nix +++ b/pkgs/development/compilers/nim/default.nix @@ -98,12 +98,12 @@ in { nim-unwrapped = stdenv.mkDerivation rec { pname = "nim-unwrapped"; - version = "1.4.8"; + version = "1.6.0"; strictDeps = true; src = fetchurl { url = "https://nim-lang.org/download/nim-${version}.tar.xz"; - hash = "sha256-t5jFd0EdfZW4YxJh27Nnbp0a/Z42dA0ESWagVVtBRBo="; + hash = "sha256-UgZdSNcqcnAuwa/l96mDHhFnNTHiec3/nK7AGgfuxj0="; }; buildInputs = [ boehmgc openssl pcre readline sqlite ]; @@ -114,7 +114,7 @@ in { ./nixbuild.patch # Load libraries at runtime by absolute path - ]; + ] ++ lib.optional (!stdenv.hostPlatform.isWindows) ./toLocation.patch; configurePhase = '' runHook preConfigure diff --git a/pkgs/development/compilers/nim/nim.cfg.patch b/pkgs/development/compilers/nim/nim.cfg.patch index a95b672d1c1d..7195132e52f6 100644 --- a/pkgs/development/compilers/nim/nim.cfg.patch +++ b/pkgs/development/compilers/nim/nim.cfg.patch @@ -1,5 +1,5 @@ diff --git a/config/nim.cfg b/config/nim.cfg -index a33a2f0a9..e069193ff 100644 +index 3b964d124..850ed0ed9 100644 --- a/config/nim.cfg +++ b/config/nim.cfg @@ -8,26 +8,12 @@ @@ -29,42 +29,3 @@ index a33a2f0a9..e069193ff 100644 path="$lib/deprecated/core" path="$lib/deprecated/pure" path="$lib/pure/collections" -@@ -111,7 +97,7 @@ path="$lib/pure" - @end - - @if unix: -- @if not bsd or haiku: -+ @if not bsd or genode or haiku: - # -fopenmp - gcc.options.linker = "-ldl" - gcc.cpp.options.linker = "-ldl" -@@ -295,29 +281,6 @@ vcc.cpp.options.size = "/O1" - # Configuration for the Tiny C Compiler: - tcc.options.always = "-w" - --# Configuration for the Genode toolchain --@if genode: -- noCppExceptions # avoid std C++ -- tlsEmulation:on # no TLS segment register magic -- @if i386 or amd64: -- gcc.exe = "genode-x86-gcc" -- gcc.cpp.exe = "genode-x86-g++" -- gcc.cpp.linkerexe = "genode-x86-ld" -- @elif arm: -- gcc.exe = "genode-arm-gcc" -- gcc.cpp.exe = "genode-arm-g++" -- gcc.cpp.linkerexe = "genode-arm-ld" -- @elif arm64: -- gcc.exe = "genode-aarch64-gcc" -- gcc.cpp.exe = "genode-aarch64-g++" -- gcc.cpp.linkerexe = "genode-aarch64-ld" -- @elif riscv64: -- gcc.exe = "genode-riscv-gcc" -- gcc.cpp.exe = "genode-riscv-g++" -- gcc.cpp.linkerexe = "genode-riscv-ld" -- @end --@end -- - @if arm or arm64: - --define:nimEmulateOverflowChecks - @end diff --git a/pkgs/development/compilers/nim/toLocation.patch b/pkgs/development/compilers/nim/toLocation.patch new file mode 100644 index 000000000000..a3db46044049 --- /dev/null +++ b/pkgs/development/compilers/nim/toLocation.patch @@ -0,0 +1,16 @@ +diff --git a/lib/std/private/miscdollars.nim b/lib/std/private/miscdollars.nim +index 840fedf54..6c3436308 100644 +--- a/lib/std/private/miscdollars.nim ++++ b/lib/std/private/miscdollars.nim +@@ -6,9 +6,8 @@ template toLocation*(result: var string, file: string | cstring, line: int, col: + # it can be done in a single place. + result.add file + if line > 0: +- result.add "(" ++ result.add ":" + addInt(result, line) + if col > 0: +- result.add ", " ++ result.add ":" + addInt(result, col) +- result.add ")"