Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CI] now enables NIM_COMPILE_TO_CPP=true to run without allow_failures #10315

Merged
merged 3 commits into from
Jan 17, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,9 @@ matrix:
- os: osx
env: NIM_COMPILE_TO_CPP=true

allow_failures:
- env: NIM_COMPILE_TO_CPP=true
# To allow failures for a failing configuration, use something like:
# allow_failures:
# - env: NIM_COMPILE_TO_CPP=true
# - os: osx

addons:
Expand Down
21 changes: 13 additions & 8 deletions koch.nim
Original file line number Diff line number Diff line change
Expand Up @@ -281,19 +281,24 @@ proc boot(args: string) =
let smartNimcache = (if "release" in args: "nimcache/r_" else: "nimcache/d_") &
hostOs & "_" & hostCpu

copyExe(findStartNim(), 0.thVersion)
for i in 0..2+ord(useCpp):
# do the first iteration in C mode in order to avoid problem #10315:
let defaultCommand = if useCpp and i > 0: "cpp" else: "c"
let nimStart = findStartNim()
copyExe(nimStart, 0.thVersion)
for i in 0..2:
let defaultCommand = if useCpp: "cpp" else: "c"
let bootOptions = if args.len == 0 or args.startsWith("-"): defaultCommand else: ""

echo "iteration: ", i+1
let extraOption = if i == 0:
"--skipUserCfg --skipParentCfg"
var extraOption = ""
if i == 0:
extraOption.add " --skipUserCfg --skipParentCfg"
# Note(D20190115T162028:here): the configs are skipped for bootstrap
# (1st iteration) to prevent newer flags from breaking bootstrap phase.
# fixes #10030.
else: ""
let ret = execCmdEx(nimStart & " --version")
doAssert ret.exitCode == 0
let version = ret.output.splitLines[0]
if version.startsWith "Nim Compiler Version 0.19.0":
extraOption.add " -d:nimBoostrapCsources0_19_0"
# remove this when csources get updated
exec i.thVersion & " $# $# $# --nimcache:$# compiler" / "nim.nim" %
[bootOptions, extraOption, args, smartNimcache]
if sameFileContent(output, i.thVersion):
Expand Down
7 changes: 6 additions & 1 deletion lib/system.nim
Original file line number Diff line number Diff line change
Expand Up @@ -569,7 +569,12 @@ type
trace: string
else:
trace: seq[StackTraceEntry]
raiseId: uint # set when exception is raised
when defined(nimBoostrapCsources0_19_0):
# see #10315, bootstrap with `nim cpp` from csources gave error:
# error: no member named 'raise_id' in 'Exception'
raise_id: uint # set when exception is raised
else:
raiseId: uint # set when exception is raised
up: ref Exception # used for stacking exceptions. Not exported!

Defect* = object of Exception ## \
Expand Down
2 changes: 2 additions & 0 deletions tests/exception/t9657.nim
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
discard """
action: run
exitcode: 1
target: "c"
"""
# todo: remove `target: "c"` workaround once #10343 is properly fixed
close stdmsg
writeLine stdmsg, "exception!"