Closed arnetheduck closed 1 year ago
Works on devel.
!nim c
import std/macros
macro async2(f: untyped): untyped =
doAssert f.kind == nnkProcDef
f.addPragma(newColonExpr(ident "stackTrace", ident "off"))
f
func recurse(tree: NimNode): NimNode {.compileTime.}=
doAssert tree.kind in {nnkProcDef, nnkIteratorDef, nnkStmtList}
if tree.kind == nnkStmtList:
for i, child in tree: tree[i] = child.recurse
tree
else:
let name = tree[0]
quote do:
proc `name` {.async2.} = discard
macro turnIntoProc(tree: untyped) = tree.recurse
proc test0 {.turnIntoProc.}
turnIntoProc:
iterator test2
iterator test1 {.turnIntoProc.}
@juancarlospaco (contributor)devel :+1: OK
Output
2023-07-06T18:47:34Z
2023-07-06T18:48:07
2023-07-06T18:48:08
1 minute
nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
Error: Command failed: nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim(13, 5) Error: invalid pragma: stackTrace: false
2023-07-06T18:47:34Z
2023-07-06T18:48:08
2023-07-06T18:48:09
now
nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
Error: Command failed: nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim(13, 5) Error: invalid pragma: stackTrace: false
2023-07-06T18:47:34Z
2023-07-06T18:48:12
2023-07-06T18:48:12
now
nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
Error: Command failed: nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim(13, 5) Error: invalid pragma: stackTrace: false
2023-07-06T18:47:34Z
2023-07-06T18:48:15
2023-07-06T18:48:15
now
nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
Error: Command failed: nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim(13, 5) Error: invalid pragma: stackTrace: false
2023-07-06T18:47:34Z
2023-07-06T18:48:30
2023-07-06T18:48:30
now
nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
Error: Command failed: nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim(13, 5) Error: invalid pragma: stackTrace: false
2023-07-06T18:47:34Z
2023-07-06T18:48:43
2023-07-06T18:48:44
now
nim c --run -d:strip -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --threads:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
The commit that introduced the bug can not be found, but the bug is in the commits:
(Can not find the commit because Nim can not be re-built commit-by-commit to bisect).
38 minutes
bisecting 460
commits at 12
commits per second. @araq Yep fixed on devel.
can the fix be found via the bisect tool, ie which commit fixed it so it can be backported?
also, the bug is reported against 1.6.12 meaning it should not really be closed ideally
can the fix be found via the bisect tool
@arnetheduck DIY
Need smallest as possible but assertive (no echo
but doAssert
) bug repro code sample:
Ideally users can bisect their own bugs by themselves.
Sometimes the specific commit that has the bug can not be found, because Nim can not be re-built commit-by-commit on that specific commit to bisect, but then it gives you the "commits near" where the bug hides (and for context), likely the commit with the bug arrived in pack with other commits in a PR:
ping for reopening / backport
Description
based on https://github.com/status-im/nim-chronos/issues/367
Nim Version
1.6.12
Current Output