strict effects (#18777)
* fixes #17369 * megatest is green for --cpu:arm64 * docgen output includes more tags/raises * implemented 'effectsOf' * algorithm.nim: uses new effectsOf annotation * closes #18376 * closes #17475 * closes #13905 * allow effectsOf: [a, b] * added a test case * parameters that are not ours cannot be declared as .effectsOf * documentation * manual: added the 'sort' example * bootstrap with the new better options
This commit is contained in:
parent
72fa5833ad
commit
e0ef859130
35 changed files with 482 additions and 203 deletions
|
|
@ -261,7 +261,7 @@ proc cpDir*(`from`, to: string) {.raises: [OSError].} =
|
|||
checkOsError()
|
||||
|
||||
proc exec*(command: string) {.
|
||||
raises: [OSError], tags: [ExecIOEffect].} =
|
||||
raises: [OSError], tags: [ExecIOEffect, WriteIOEffect].} =
|
||||
## Executes an external process. If the external process terminates with
|
||||
## a non-zero exit code, an OSError exception is raised.
|
||||
##
|
||||
|
|
@ -274,7 +274,7 @@ proc exec*(command: string) {.
|
|||
checkOsError()
|
||||
|
||||
proc exec*(command: string, input: string, cache = "") {.
|
||||
raises: [OSError], tags: [ExecIOEffect].} =
|
||||
raises: [OSError], tags: [ExecIOEffect, WriteIOEffect].} =
|
||||
## Executes an external process. If the external process terminates with
|
||||
## a non-zero exit code, an OSError exception is raised.
|
||||
log "exec: " & command:
|
||||
|
|
@ -284,7 +284,7 @@ proc exec*(command: string, input: string, cache = "") {.
|
|||
echo output
|
||||
|
||||
proc selfExec*(command: string) {.
|
||||
raises: [OSError], tags: [ExecIOEffect].} =
|
||||
raises: [OSError], tags: [ExecIOEffect, WriteIOEffect].} =
|
||||
## Executes an external command with the current nim/nimble executable.
|
||||
## `Command` must not contain the "nim " part.
|
||||
let c = selfExe() & " " & command
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue