Hyperlinks echo variants with noSideEffect pragma. Refs #1379.
This commit is contained in:
parent
81d287f758
commit
eafb79b721
2 changed files with 14 additions and 8 deletions
|
|
@ -2026,19 +2026,25 @@ elif hostOS != "standalone":
|
|||
{.pop.}
|
||||
|
||||
proc echo*[T](x: varargs[T, `$`]) {.magic: "Echo", tags: [FWriteIO], gcsafe.}
|
||||
## special built-in that takes a variable number of arguments. Each argument
|
||||
## Writes and flushes the parameters to the standard output.
|
||||
##
|
||||
## Special built-in that takes a variable number of arguments. Each argument
|
||||
## is converted to a string via ``$``, so it works for user-defined
|
||||
## types that have an overloaded ``$`` operator.
|
||||
## It is roughly equivalent to ``writeln(stdout, x); flush(stdout)``, but
|
||||
## available for the JavaScript target too.
|
||||
##
|
||||
## Unlike other IO operations this is guaranteed to be thread-safe as
|
||||
## ``echo`` is very often used for debugging convenience.
|
||||
## ``echo`` is very often used for debugging convenience. If you want to use
|
||||
## ``echo`` inside a `proc without side effects
|
||||
## <manual.html#nosideeffect-pragma>`_ you can use `debugEcho <#debugEcho>`_
|
||||
## instead.
|
||||
|
||||
proc debugEcho*[T](x: varargs[T, `$`]) {.magic: "Echo", noSideEffect,
|
||||
tags: [], raises: [].}
|
||||
## Same as ``echo``, but as a special semantic rule, ``debugEcho`` pretends
|
||||
## to be free of side effects, so that it can be used for debugging routines
|
||||
## marked as ``noSideEffect``.
|
||||
## Same as `echo <#echo>`_, but as a special semantic rule, ``debugEcho``
|
||||
## pretends to be free of side effects, so that it can be used for debugging
|
||||
## routines marked as `noSideEffect <manual.html#nosideeffect-pragma>`_.
|
||||
|
||||
template newException*(exceptn: typedesc, message: string): expr =
|
||||
## creates an exception object of type ``exceptn`` and sets its ``msg`` field
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue