fixes #19162; enable strictEffects for v2 (#19380)

* enable stricteffects
* add gcsafe
* fix tests
* use func
* fixes pegs tests
* explicitly mark repr related procs with noSideEffect
* add nimLegacyEffects
* change URL
* fixes docopt
* add `raises: []` to repr
* fixes weave
* fixes nimyaml
* fixes glob
* fixes parsetoml
* Apply suggestions from code review
* Update testament/important_packages.nim
* add legacy:laxEffects
This commit is contained in:
ringabout 2022-10-15 20:07:40 +08:00 • committed by GitHub
commit 1e15f975b8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 38 additions and 39 deletions

View file

@ -33,7 +33,7 @@ py
py
px
6
proc (){.closure, gcsafe.}
proc (){.closure, noSideEffect, gcsafe.}
'''
"""

View file

@ -21,7 +21,7 @@ createMenuItem(s, "Go to definition...",
)
proc noRaise(x: proc()) {.raises: [].} =
proc noRaise(x: proc()) {.raises: [], effectsOf: x.} =
# unknown call that might raise anything, but valid:
x()

View file

@ -1,5 +1,5 @@
discard """
errormsg: "'mainUnsafe' is not GC-safe"
errormsg: "'mainUnsafe' is not GC-safe as it performs an indirect call here"
line: 26
cmd: "nim $target --hints:on --threads:on $options $file"
"""
@ -13,7 +13,7 @@ proc myproc(i: int) {.gcsafe.} =
if isNil(global_proc):
return
proc mymap(x: proc ()) =
proc mymap(x: proc ()) {.effectsOf: x.} =
x()
var

View file

@ -1,5 +1,5 @@
block: # `.noSideEffect`
func foo(bar: proc(): int): int = bar()
func foo(bar: proc(): int): int {.effectsOf: bar.} = bar()
var count = 0
proc fn1(): int = 1
proc fn2(): int = (count.inc; count)

View file

@ -106,9 +106,9 @@ block:
block:
var
pStack: seq[string] = @[]
valStack: seq[float] = @[]
opStack = ""
pStack {.threadvar.}: seq[string]
valStack {.threadvar.}: seq[float]
opStack {.threadvar.}: string
let
parseArithExpr = pegAst.eventParser:
pkNonTerminal: