Skip to content

Commit

Permalink
properly fixes #13758 so that import std/macros stays legal (#14291)
Browse files Browse the repository at this point in the history
* properly fix #12389
* use --lib:lib in koch.nim.cfg instead
* third time is the charm
  • Loading branch information
timotheecour authored May 12, 2020
1 parent a39123c commit b8ec07f
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 7 deletions.
2 changes: 1 addition & 1 deletion compiler/nim.nim
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import
idents, lineinfos, cmdlinehelper,
pathutils

from browsers import openDefaultBrowser
from std/browsers import openDefaultBrowser
from nodejs import findNodeJs

when hasTinyCBackend:
Expand Down
12 changes: 9 additions & 3 deletions koch.nim
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,10 @@ when defined(amd64) and defined(windows) and defined(vcc):
when defined(i386) and defined(windows) and defined(vcc):
{.link: "icons/koch-i386-windows-vcc.res".}

import
os, strutils, parseopt, osproc
import std/[os, strutils, parseopt, osproc]
# Using `std/os` instead of `os` to fail early if config isn't set up properly.
# If this fails with: `Error: cannot open file: std/os`, see
# https://github.com/nim-lang/Nim/pull/14291 for explanation + how to fix.

import tools / kochdocs
import tools / deps
Expand Down Expand Up @@ -318,9 +320,13 @@ proc boot(args: string) =
let ret = execCmdEx(nimStart & " --version")
doAssert ret.exitCode == 0
let version = ret.output.splitLines[0]
# remove these when csources get updated
template addLib() =
extraOption.add " --lib:lib" # see https://github.com/nim-lang/Nim/pull/14291
if version.startsWith "Nim Compiler Version 0.19.0":
extraOption.add " -d:nimBoostrapCsources0_19_0"
# remove this when csources get updated
addLib()
elif version.startsWith "Nim Compiler Version 0.20.0": addLib()

# in order to use less memory, we split the build into two steps:
# --compileOnly produces a $project.json file and does not run GCC/Clang.
Expand Down
8 changes: 7 additions & 1 deletion koch.nim.cfg
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
-d:booting
-d:booting

@if openbsd:
# because openbsd getAppFilename was broken in v0.20.0
# workaround see https://github.com/nim-lang/Nim/pull/14291
--lib:lib
@end
3 changes: 1 addition & 2 deletions lib/pure/typetraits.nim
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,7 @@ since (1, 1):
type StaticParam*[value: static type] = object
## used to wrap a static value in `genericParams`

# NOTE: See https://github.com/nim-lang/Nim/issues/13758 - `import std/macros` does not work on OpenBSD
import macros
import std/macros

macro genericParamsImpl(T: typedesc): untyped =
# auxiliary macro needed, can't do it directly in `genericParams`
Expand Down

0 comments on commit b8ec07f

Please sign in to comment.