Created
January 29, 2021 05:11
-
-
Save timotheecour/882d897733d03854fbb427fa1fd70b79 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8" ?> | |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
<!-- This file is generated by Nim. --> | |
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
<head> | |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<!-- Favicon --> | |
<link rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAUAAAAF////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAIAAABbAAAAlQAAAKIAAACbAAAAmwAAAKIAAACVAAAAWwAAAAL///8A////AP///wD///8A////AAAAABQAAADAAAAAYwAAAA3///8A////AP///wD///8AAAAADQAAAGMAAADAAAAAFP///wD///8A////AP///wAAAACdAAAAOv///wD///8A////AP///wD///8A////AP///wD///8AAAAAOgAAAJ3///8A////AP///wAAAAAnAAAAcP///wAAAAAoAAAASv///wD///8A////AP///wAAAABKAAAAKP///wAAAABwAAAAJ////wD///8AAAAAgQAAABwAAACIAAAAkAAAAJMAAACtAAAAFQAAABUAAACtAAAAkwAAAJAAAACIAAAAHAAAAIH///8A////AAAAAKQAAACrAAAAaP///wD///8AAAAARQAAANIAAADSAAAARf///wD///8AAAAAaAAAAKsAAACk////AAAAADMAAACcAAAAnQAAABj///8A////AP///wAAAAAYAAAAGP///wD///8A////AAAAABgAAACdAAAAnAAAADMAAAB1AAAAwwAAAP8AAADpAAAAsQAAAE4AAAAb////AP///wAAAAAbAAAATgAAALEAAADpAAAA/wAAAMMAAAB1AAAAtwAAAOkAAAD/AAAA/wAAAP8AAADvAAAA3gAAAN4AAADeAAAA3gAAAO8AAAD/AAAA/wAAAP8AAADpAAAAtwAAAGUAAAA/AAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADfAAAAPwAAAGX///8A////AAAAAEgAAADtAAAAvwAAAL0AAADGAAAA7wAAAO8AAADGAAAAvQAAAL8AAADtAAAASP///wD///8A////AP///wD///8AAAAAO////wD///8A////AAAAAIcAAACH////AP///wD///8AAAAAO////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AAD4HwAA7/cAAN/7AAD//wAAoYUAAJ55AACf+QAAh+EAAAAAAADAAwAA4AcAAP5/AAD//wAA//8AAA=="/> | |
<link rel="icon" type="image/png" sizes="32x32" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4QQQEwksSS9ZWwAAAk1JREFUWMPtll2ITVEUx39nn/O7Y5qR8f05wtCUUr6ZIS++8pEnkZInPImneaCQ5METNdOkeFBKUhMPRIkHKfEuUZSUlGlKPN2TrgfncpvmnntnmlEyq1Z7t89/rf9a6+y99oZxGZf/XeIq61EdtgKXgdXA0xrYAvBjOIF1AI9zvjcC74BSpndrJPkBWDScTF8Aa4E3wDlgHbASaANmVqlcCnwHvgDvgVfAJ+AikAAvgfVZwLnSVZHZaOuKoQi3ZOMi4NkYkpe1p4J7A8BpYAD49hfIy/oqG0+hLomiKP2L5L+1ubn5115S+3OAn4EnwBlgMzCjyt6ZAnQCJ4A7wOs88iRJHvw50HoujuPBoCKwHWiosy8MdfZnAdcHk8dxXFJ3VQbQlCTJvRBCGdRbD4M6uc5glpY3eAihpN5S5w12diSEcCCEcKUO4ljdr15T76ur1FDDLIQQ3qv71EdDOe3Kxj3leRXyk+pxdWnFWod6Wt2bY3de3aSuUHcPBVimHs7mK9WrmeOF6lR1o9qnzskh2ar2qm1qizpfXaPeVGdlmGN5pb09qMxz1Xb1kLqgzn1RyH7JUXW52lr5e/Kqi9qpto7V1atuUzfnARrV7jEib1T76gG2qxdGmXyiekkt1GswPTtek0aBfJp6YySGBfWg2tPQ0FAYgf1stUfdmdcjarbYJEniKIq6gY/Aw+zWHAC+p2labGpqiorFYgGYCEzN7oQdQClN07O1/EfDyGgC0ALMBdYAi4FyK+4H3gLPsxfR1zRNi+NP7nH5J+QntnXe5B5mpfQAAAAASUVORK5CYII="> | |
<!-- Google fonts --> | |
<link href='https://fonts.googleapis.com/css?family=Lato:400,600,900' rel='stylesheet' type='text/css'/> | |
<link href='https://fonts.googleapis.com/css?family=Source+Code+Pro:400,500,600' rel='stylesheet' type='text/css'/> | |
<!-- CSS --> | |
<title>system</title> | |
<link rel="stylesheet" type="text/css" href="nimdoc.out.css"> | |
<script type="text/javascript" src="dochack.js"></script> | |
<script type="text/javascript"> | |
function main() { | |
var pragmaDots = document.getElementsByClassName("pragmadots"); | |
for (var i = 0; i < pragmaDots.length; i++) { | |
pragmaDots[i].onclick = function(event) { | |
// Hide tease | |
event.target.parentNode.style.display = "none"; | |
// Show actual | |
event.target.parentNode.nextElementSibling.style.display = "inline"; | |
} | |
} | |
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]'); | |
function switchTheme(e) { | |
if (e.target.checked) { | |
document.documentElement.setAttribute('data-theme', 'dark'); | |
localStorage.setItem('theme', 'dark'); | |
} else { | |
document.documentElement.setAttribute('data-theme', 'light'); | |
localStorage.setItem('theme', 'light'); | |
} | |
} | |
toggleSwitch.addEventListener('change', switchTheme, false); | |
const currentTheme = localStorage.getItem('theme') ? localStorage.getItem('theme') : null; | |
if (currentTheme) { | |
document.documentElement.setAttribute('data-theme', currentTheme); | |
if (currentTheme === 'dark') { | |
toggleSwitch.checked = true; | |
} | |
} | |
} | |
window.addEventListener('DOMContentLoaded', main); | |
</script> | |
</head> | |
<body> | |
<div class="document" id="documentId"> | |
<div class="container"> | |
<h1 class="title">system</h1> | |
<div class="row"> | |
<div class="three columns"> | |
<div class="theme-switch-wrapper"> | |
<label class="theme-switch" for="checkbox"> | |
<input type="checkbox" id="checkbox" /> | |
<div class="slider round"></div> | |
</label> | |
<em>Dark Mode</em> | |
</div> | |
<div id="global-links"> | |
<ul class="simple"> | |
<li> | |
<a href="theindex.html">Index</a> | |
</li> | |
</ul> | |
</div> | |
<div id="searchInputDiv"> | |
Search: <input type="text" id="searchInput" | |
onkeyup="search()" /> | |
</div> | |
<div> | |
Group by: | |
<select onchange="groupBy(this.value)"> | |
<option value="section">Section</option> | |
<option value="type">Type</option> | |
</select> | |
</div> | |
<ul class="simple simple-toc" id="toc-list"> | |
<li><a class="reference" id="system-module_toc" href="#system-module">System module</a></li> | |
<ul class="simple"><li><a class="reference" id="system-module-strings-and-characters_toc" href="#system-module-strings-and-characters">Strings and characters</a></li> | |
<li><a class="reference" id="system-module-seqs_toc" href="#system-module-seqs">Seqs</a></li> | |
<li><a class="reference" id="system-module-sets_toc" href="#system-module-sets">Sets</a></li> | |
<li><a class="reference" id="system-module-numbers_toc" href="#system-module-numbers">Numbers</a></li> | |
<li><a class="reference" id="system-module-ordinals_toc" href="#system-module-ordinals">Ordinals</a></li> | |
<li><a class="reference" id="system-module-misc_toc" href="#system-module-misc">Misc</a></li> | |
</ul><li> | |
<a class="reference reference-toplevel" href="#6" id="56">Imports</a> | |
<ul class="simple simple-toc-section"> | |
</ul> | |
</li> | |
<li> | |
<a class="reference reference-toplevel" href="#7" id="57">Types</a> | |
<ul class="simple simple-toc-section"> | |
<li><a class="reference" href="#float" | |
title="float {.magic: Float.}">float</a></li> | |
<li><a class="reference" href="#float32" | |
title="float32 {.magic: Float32.}">float32</a></li> | |
<li><a class="reference" href="#float64" | |
title="float64 {.magic: Float.}">float64</a></li> | |
<li><a class="reference" href="#char" | |
title="char {.magic: Char.}">char</a></li> | |
<li><a class="reference" href="#string" | |
title="string {.magic: String.}">string</a></li> | |
<li><a class="reference" href="#cstring" | |
title="cstring {.magic: Cstring.}">cstring</a></li> | |
<li><a class="reference" href="#pointer" | |
title="pointer {.magic: Pointer.}">pointer</a></li> | |
<li><a class="reference" href="#typedesc" | |
title="typedesc {.magic: TypeDesc.}">typedesc</a></li> | |
<li><a class="reference" href="#ptr" | |
title="ptr[T] {.magic: Pointer.}">`ptr`</a></li> | |
<li><a class="reference" href="#ref" | |
title="ref[T] {.magic: Pointer.}">`ref`</a></li> | |
<li><a class="reference" href="#void" | |
title="void {.magic: "VoidType".}">void</a></li> | |
<li><a class="reference" href="#auto" | |
title="auto {.magic: Expr.}">auto</a></li> | |
<li><a class="reference" href="#any" | |
title="any = distinct auto">any</a></li> | |
<li><a class="reference" href="#untyped" | |
title="untyped {.magic: Expr.}">untyped</a></li> | |
<li><a class="reference" href="#typed" | |
title="typed {.magic: Stmt.}">typed</a></li> | |
<li><a class="reference" href="#int" | |
title="int {.magic: "Int".}">int</a></li> | |
<li><a class="reference" href="#int8" | |
title="int8 {.magic: "Int8".}">int8</a></li> | |
<li><a class="reference" href="#int16" | |
title="int16 {.magic: "Int16".}">int16</a></li> | |
<li><a class="reference" href="#int32" | |
title="int32 {.magic: "Int32".}">int32</a></li> | |
<li><a class="reference" href="#int64" | |
title="int64 {.magic: "Int64".}">int64</a></li> | |
<li><a class="reference" href="#uint" | |
title="uint {.magic: "UInt".}">uint</a></li> | |
<li><a class="reference" href="#uint8" | |
title="uint8 {.magic: "UInt8".}">uint8</a></li> | |
<li><a class="reference" href="#uint16" | |
title="uint16 {.magic: "UInt16".}">uint16</a></li> | |
<li><a class="reference" href="#uint32" | |
title="uint32 {.magic: "UInt32".}">uint32</a></li> | |
<li><a class="reference" href="#uint64" | |
title="uint64 {.magic: "UInt64".}">uint64</a></li> | |
<li><a class="reference" href="#bool" | |
title="bool {.magic: "Bool".} = enum | |
false = 0, true = 1">bool</a></li> | |
<li><a class="reference" href="#SomeSignedInt" | |
title="SomeSignedInt = int | int8 | int16 | int32 | int64">SomeSignedInt</a></li> | |
<li><a class="reference" href="#SomeUnsignedInt" | |
title="SomeUnsignedInt = uint | uint8 | uint16 | uint32 | uint64">SomeUnsignedInt</a></li> | |
<li><a class="reference" href="#SomeInteger" | |
title="SomeInteger = SomeSignedInt | SomeUnsignedInt">SomeInteger</a></li> | |
<li><a class="reference" href="#SomeOrdinal" | |
title="SomeOrdinal = int | int8 | int16 | int32 | int64 | bool | enum | uint | uint8 | | |
uint16 | | |
uint32 | | |
uint64">SomeOrdinal</a></li> | |
<li><a class="reference" href="#BiggestInt" | |
title="BiggestInt = int64">BiggestInt</a></li> | |
<li><a class="reference" href="#SomeFloat" | |
title="SomeFloat = float | float32 | float64">SomeFloat</a></li> | |
<li><a class="reference" href="#SomeNumber" | |
title="SomeNumber = SomeInteger | SomeFloat">SomeNumber</a></li> | |
<li><a class="reference" href="#Ordinal" | |
title="Ordinal[T] {.magic: Ordinal.}">Ordinal</a></li> | |
<li><a class="reference" href="#static" | |
title="static[T] {.magic: "Static".}">`static`</a></li> | |
<li><a class="reference" href="#type" | |
title="type[T] {.magic: "Type".}">`type`</a></li> | |
<li><a class="reference" href="#TypeOfMode" | |
title="TypeOfMode = enum | |
typeOfProc, ## Prefer the interpretation that means `x` is a proc call. | |
typeOfIter ## Prefer the interpretation that means `x` is an iterator call.">TypeOfMode</a></li> | |
<li><a class="reference" href="#range" | |
title="range[T] {.magic: "Range".}">range</a></li> | |
<li><a class="reference" href="#array" | |
title="array[I; T] {.magic: "Array".}">array</a></li> | |
<li><a class="reference" href="#openArray" | |
title="openArray[T] {.magic: "OpenArray".}">openArray</a></li> | |
<li><a class="reference" href="#varargs" | |
title="varargs[T] {.magic: "Varargs".}">varargs</a></li> | |
<li><a class="reference" href="#seq" | |
title="seq[T] {.magic: "Seq".}">seq</a></li> | |
<li><a class="reference" href="#set" | |
title="set[T] {.magic: "Set".}">set</a></li> | |
<li><a class="reference" href="#UncheckedArray" | |
title="UncheckedArray[T] {.magic: "UncheckedArray".}">UncheckedArray</a></li> | |
<li><a class="reference" href="#sink" | |
title="sink[T] {.magic: "BuiltinType".}">sink</a></li> | |
<li><a class="reference" href="#lent" | |
title="lent[T] {.magic: "BuiltinType".}">lent</a></li> | |
<li><a class="reference" href="#HSlice" | |
title="HSlice[T; U] = object | |
a*: T ## The lower bound (inclusive). | |
b*: U ## The upper bound (inclusive).">HSlice</a></li> | |
<li><a class="reference" href="#Slice" | |
title="Slice[T] = HSlice[T, T]">Slice</a></li> | |
<li><a class="reference" href="#byte" | |
title="byte = uint8">byte</a></li> | |
<li><a class="reference" href="#Natural" | |
title="Natural = range[0 .. high(int)]">Natural</a></li> | |
<li><a class="reference" href="#Positive" | |
title="Positive = range[1 .. high(int)]">Positive</a></li> | |
<li><a class="reference" href="#RootObj" | |
title="RootObj {.compilerproc, inheritable.} = object">RootObj</a></li> | |
<li><a class="reference" href="#RootRef" | |
title="RootRef = ref RootObj">RootRef</a></li> | |
<li><a class="reference" href="#RootEffect" | |
title="RootEffect {.compilerproc.} = object of RootObj">RootEffect</a></li> | |
<li><a class="reference" href="#TimeEffect" | |
title="TimeEffect = object of RootEffect">TimeEffect</a></li> | |
<li><a class="reference" href="#IOEffect" | |
title="IOEffect = object of RootEffect">IOEffect</a></li> | |
<li><a class="reference" href="#ReadIOEffect" | |
title="ReadIOEffect = object of IOEffect">ReadIOEffect</a></li> | |
<li><a class="reference" href="#WriteIOEffect" | |
title="WriteIOEffect = object of IOEffect">WriteIOEffect</a></li> | |
<li><a class="reference" href="#ExecIOEffect" | |
title="ExecIOEffect = object of IOEffect">ExecIOEffect</a></li> | |
<li><a class="reference" href="#StackTraceEntry" | |
title="StackTraceEntry = object | |
procname*: cstring ## Name of the proc that is currently executing. | |
line*: int ## Line number of the proc that is currently executing. | |
filename*: cstring ## Filename of the proc that is currently executing. | |
when NimStackTraceMsgs: | |
frameMsg*: string ## When a stacktrace is generated in a given frame and | |
## rendered at a later time, we should ensure the stacktrace | |
## data isn't invalidated; any pointer into PFrame is | |
## subject to being invalidated so shouldn't be stored. | |
when defined(nimStackTraceOverride): | |
programCounter*: uint ## Program counter - will be used to get the rest of the info, | |
## when `$` is called on this type. We can't use | |
## "cuintptr_t" in here. | |
procnameStr*, filenameStr*: string ## GC-ed objects holding the cstrings in "procname" and "filename"">StackTraceEntry</a></li> | |
<li><a class="reference" href="#Exception" | |
title="Exception {.compilerproc, magic: "Exception".} = object of RootObj | |
parent*: ref Exception ## Parent exception (can be used as a stack). | |
name*: cstring ## The exception's name is its Nim identifier. | |
## This field is filled automatically in the | |
## ``raise`` statement. | |
msg* {.exportc: "message".}: string ## The exception's message. Not | |
## providing an exception message | |
## is bad style. | |
when defined(js): | |
trace: string | |
else: | |
trace: seq[StackTraceEntry] | |
up: ref Exception">Exception</a></li> | |
<li><a class="reference" href="#Defect" | |
title="Defect = object of Exception">Defect</a></li> | |
<li><a class="reference" href="#CatchableError" | |
title="CatchableError = object of Exception">CatchableError</a></li> | |
<li><a class="reference" href="#IOError" | |
title="IOError = object of CatchableError">IOError</a></li> | |
<li><a class="reference" href="#EOFError" | |
title="EOFError = object of IOError">EOFError</a></li> | |
<li><a class="reference" href="#OSError" | |
title="OSError = object of CatchableError | |
errorCode*: int32 ## OS-defined error code describing this error.">OSError</a></li> | |
<li><a class="reference" href="#LibraryError" | |
title="LibraryError = object of OSError">LibraryError</a></li> | |
<li><a class="reference" href="#ResourceExhaustedError" | |
title="ResourceExhaustedError = object of CatchableError">ResourceExhaustedError</a></li> | |
<li><a class="reference" href="#ArithmeticDefect" | |
title="ArithmeticDefect = object of Defect">ArithmeticDefect</a></li> | |
<li><a class="reference" href="#DivByZeroDefect" | |
title="DivByZeroDefect = object of ArithmeticDefect">DivByZeroDefect</a></li> | |
<li><a class="reference" href="#OverflowDefect" | |
title="OverflowDefect = object of ArithmeticDefect">OverflowDefect</a></li> | |
<li><a class="reference" href="#AccessViolationDefect" | |
title="AccessViolationDefect = object of Defect">AccessViolationDefect</a></li> | |
<li><a class="reference" href="#AssertionDefect" | |
title="AssertionDefect = object of Defect">AssertionDefect</a></li> | |
<li><a class="reference" href="#ValueError" | |
title="ValueError = object of CatchableError">ValueError</a></li> | |
<li><a class="reference" href="#KeyError" | |
title="KeyError = object of ValueError">KeyError</a></li> | |
<li><a class="reference" href="#OutOfMemDefect" | |
title="OutOfMemDefect = object of Defect">OutOfMemDefect</a></li> | |
<li><a class="reference" href="#IndexDefect" | |
title="IndexDefect = object of Defect">IndexDefect</a></li> | |
<li><a class="reference" href="#FieldDefect" | |
title="FieldDefect = object of Defect">FieldDefect</a></li> | |
<li><a class="reference" href="#RangeDefect" | |
title="RangeDefect = object of Defect">RangeDefect</a></li> | |
<li><a class="reference" href="#StackOverflowDefect" | |
title="StackOverflowDefect = object of Defect">StackOverflowDefect</a></li> | |
<li><a class="reference" href="#ReraiseDefect" | |
title="ReraiseDefect = object of Defect">ReraiseDefect</a></li> | |
<li><a class="reference" href="#ObjectAssignmentDefect" | |
title="ObjectAssignmentDefect = object of Defect">ObjectAssignmentDefect</a></li> | |
<li><a class="reference" href="#ObjectConversionDefect" | |
title="ObjectConversionDefect = object of Defect">ObjectConversionDefect</a></li> | |
<li><a class="reference" href="#FloatingPointDefect" | |
title="FloatingPointDefect = object of Defect">FloatingPointDefect</a></li> | |
<li><a class="reference" href="#FloatInvalidOpDefect" | |
title="FloatInvalidOpDefect = object of FloatingPointDefect">FloatInvalidOpDefect</a></li> | |
<li><a class="reference" href="#FloatDivByZeroDefect" | |
title="FloatDivByZeroDefect = object of FloatingPointDefect">FloatDivByZeroDefect</a></li> | |
<li><a class="reference" href="#FloatOverflowDefect" | |
title="FloatOverflowDefect = object of FloatingPointDefect">FloatOverflowDefect</a></li> | |
<li><a class="reference" href="#FloatUnderflowDefect" | |
title="FloatUnderflowDefect = object of FloatingPointDefect">FloatUnderflowDefect</a></li> | |
<li><a class="reference" href="#FloatInexactDefect" | |
title="FloatInexactDefect = object of FloatingPointDefect">FloatInexactDefect</a></li> | |
<li><a class="reference" href="#DeadThreadDefect" | |
title="DeadThreadDefect = object of Defect">DeadThreadDefect</a></li> | |
<li><a class="reference" href="#NilAccessDefect" | |
title="NilAccessDefect = object of Defect">NilAccessDefect</a></li> | |
<li><a class="reference" href="#ArithmeticError" | |
title="ArithmeticError {.deprecated: "See corresponding Defect".} = ArithmeticDefect">ArithmeticError</a></li> | |
<li><a class="reference" href="#DivByZeroError" | |
title="DivByZeroError {.deprecated: "See corresponding Defect".} = DivByZeroDefect">DivByZeroError</a></li> | |
<li><a class="reference" href="#OverflowError" | |
title="OverflowError {.deprecated: "See corresponding Defect".} = OverflowDefect">OverflowError</a></li> | |
<li><a class="reference" href="#AccessViolationError" | |
title="AccessViolationError {.deprecated: "See corresponding Defect".} = AccessViolationDefect">AccessViolationError</a></li> | |
<li><a class="reference" href="#AssertionError" | |
title="AssertionError {.deprecated: "See corresponding Defect".} = AssertionDefect">AssertionError</a></li> | |
<li><a class="reference" href="#OutOfMemError" | |
title="OutOfMemError {.deprecated: "See corresponding Defect".} = OutOfMemDefect">OutOfMemError</a></li> | |
<li><a class="reference" href="#IndexError" | |
title="IndexError {.deprecated: "See corresponding Defect".} = IndexDefect">IndexError</a></li> | |
<li><a class="reference" href="#FieldError" | |
title="FieldError {.deprecated: "See corresponding Defect".} = FieldDefect">FieldError</a></li> | |
<li><a class="reference" href="#RangeError" | |
title="RangeError {.deprecated: "See corresponding Defect".} = RangeDefect">RangeError</a></li> | |
<li><a class="reference" href="#StackOverflowError" | |
title="StackOverflowError {.deprecated: "See corresponding Defect".} = StackOverflowDefect">StackOverflowError</a></li> | |
<li><a class="reference" href="#ReraiseError" | |
title="ReraiseError {.deprecated: "See corresponding Defect".} = ReraiseDefect">ReraiseError</a></li> | |
<li><a class="reference" href="#ObjectAssignmentError" | |
title="ObjectAssignmentError {.deprecated: "See corresponding Defect".} = ObjectAssignmentDefect">ObjectAssignmentError</a></li> | |
<li><a class="reference" href="#ObjectConversionError" | |
title="ObjectConversionError {.deprecated: "See corresponding Defect".} = ObjectConversionDefect">ObjectConversionError</a></li> | |
<li><a class="reference" href="#FloatingPointError" | |
title="FloatingPointError {.deprecated: "See corresponding Defect".} = FloatingPointDefect">FloatingPointError</a></li> | |
<li><a class="reference" href="#FloatInvalidOpError" | |
title="FloatInvalidOpError {.deprecated: "See corresponding Defect".} = FloatInvalidOpDefect">FloatInvalidOpError</a></li> | |
<li><a class="reference" href="#FloatDivByZeroError" | |
title="FloatDivByZeroError {.deprecated: "See corresponding Defect".} = FloatDivByZeroDefect">FloatDivByZeroError</a></li> | |
<li><a class="reference" href="#FloatOverflowError" | |
title="FloatOverflowError {.deprecated: "See corresponding Defect".} = FloatOverflowDefect">FloatOverflowError</a></li> | |
<li><a class="reference" href="#FloatUnderflowError" | |
title="FloatUnderflowError {.deprecated: "See corresponding Defect".} = FloatUnderflowDefect">FloatUnderflowError</a></li> | |
<li><a class="reference" href="#FloatInexactError" | |
title="FloatInexactError {.deprecated: "See corresponding Defect".} = FloatInexactDefect">FloatInexactError</a></li> | |
<li><a class="reference" href="#DeadThreadError" | |
title="DeadThreadError {.deprecated: "See corresponding Defect".} = DeadThreadDefect">DeadThreadError</a></li> | |
<li><a class="reference" href="#NilAccessError" | |
title="NilAccessError {.deprecated: "See corresponding Defect".} = NilAccessDefect">NilAccessError</a></li> | |
<li><a class="reference" href="#JsRoot" | |
title="JsRoot = ref object of RootObj">JsRoot</a></li> | |
<li><a class="reference" href="#owned" | |
title="owned[T] {.magic: "BuiltinType".}">owned</a></li> | |
<li><a class="reference" href="#Endianness" | |
title="Endianness = enum | |
littleEndian, bigEndian">Endianness</a></li> | |
<li><a class="reference" href="#TaintedString" | |
title="TaintedString {.deprecated: "Deprecated since 1.5".} = string">TaintedString</a></li> | |
<li><a class="reference" href="#ByteAddress" | |
title="ByteAddress = int">ByteAddress</a></li> | |
<li><a class="reference" href="#BiggestFloat" | |
title="BiggestFloat = float64">BiggestFloat</a></li> | |
<li><a class="reference" href="#BiggestUInt" | |
title="BiggestUInt = uint64">BiggestUInt</a></li> | |
<li><a class="reference" href="#clong" | |
title="clong {.importc: "long", nodecl.} = int">clong</a></li> | |
<li><a class="reference" href="#culong" | |
title="culong {.importc: "unsigned long", nodecl.} = uint">culong</a></li> | |
<li><a class="reference" href="#cchar" | |
title="cchar {.importc: "char", nodecl.} = char">cchar</a></li> | |
<li><a class="reference" href="#cschar" | |
title="cschar {.importc: "signed char", nodecl.} = int8">cschar</a></li> | |
<li><a class="reference" href="#cshort" | |
title="cshort {.importc: "short", nodecl.} = int16">cshort</a></li> | |
<li><a class="reference" href="#cint" | |
title="cint {.importc: "int", nodecl.} = int32">cint</a></li> | |
<li><a class="reference" href="#csize" | |
title="csize {.importc: "size_t", nodecl, deprecated: "use `csize_t` instead".} = int">csize</a></li> | |
<li><a class="reference" href="#csize_t" | |
title="csize_t {.importc: "size_t", nodecl.} = uint">csize_t</a></li> | |
<li><a class="reference" href="#clonglong" | |
title="clonglong {.importc: "long long", nodecl.} = int64">clonglong</a></li> | |
<li><a class="reference" href="#cfloat" | |
title="cfloat {.importc: "float", nodecl.} = float32">cfloat</a></li> | |
<li><a class="reference" href="#cdouble" | |
title="cdouble {.importc: "double", nodecl.} = float64">cdouble</a></li> | |
<li><a class="reference" href="#clongdouble" | |
title="clongdouble {.importc: "long double", nodecl.} = BiggestFloat">clongdouble</a></li> | |
<li><a class="reference" href="#cuchar" | |
title="cuchar {.importc: "unsigned char", nodecl.} = char">cuchar</a></li> | |
<li><a class="reference" href="#cushort" | |
title="cushort {.importc: "unsigned short", nodecl.} = uint16">cushort</a></li> | |
<li><a class="reference" href="#cuint" | |
title="cuint {.importc: "unsigned int", nodecl.} = uint32">cuint</a></li> | |
<li><a class="reference" href="#culonglong" | |
title="culonglong {.importc: "unsigned long long", nodecl.} = uint64">culonglong</a></li> | |
<li><a class="reference" href="#cstringArray" | |
title="cstringArray {.importc: "char**", nodecl.} = ptr UncheckedArray[cstring]">cstringArray</a></li> | |
<li><a class="reference" href="#PFloat32" | |
title="PFloat32 = ptr float32">PFloat32</a></li> | |
<li><a class="reference" href="#PFloat64" | |
title="PFloat64 = ptr float64">PFloat64</a></li> | |
<li><a class="reference" href="#PInt64" | |
title="PInt64 = ptr int64">PInt64</a></li> | |
<li><a class="reference" href="#PInt32" | |
title="PInt32 = ptr int32">PInt32</a></li> | |
<li><a class="reference" href="#AllocStats" | |
title="AllocStats = object | |
allocCount: int | |
deallocCount: int">AllocStats</a></li> | |
<li><a class="reference" href="#AtomType" | |
title="AtomType = SomeNumber | pointer | ptr | char | bool">AtomType</a></li> | |
<li><a class="reference" href="#GC_Strategy" | |
title="GC_Strategy = enum | |
gcThroughput, ## optimize for throughput | |
gcResponsiveness, ## optimize for responsiveness (default) | |
gcOptimizeTime, ## optimize for speed | |
gcOptimizeSpace ## optimize for memory footprint">GC_Strategy</a></li> | |
<li><a class="reference" href="#PFrame" | |
title="PFrame = ptr TFrame">PFrame</a></li> | |
<li><a class="reference" href="#TFrame" | |
title="TFrame {.importc, nodecl, final.} = object | |
prev*: PFrame ## Previous frame; used for chaining the call stack. | |
procname*: cstring ## Name of the proc that is currently executing. | |
line*: int ## Line number of the proc that is currently executing. | |
filename*: cstring ## Filename of the proc that is currently executing. | |
len*: int16 ## Length of the inspectable slots. | |
calldepth*: int16 ## Used for max call depth checking. | |
when NimStackTraceMsgs: | |
frameMsgLen*: int ## end position in frameMsgBuf for this frame.">TFrame</a></li> | |
<li><a class="reference" href="#FileSeekPos" | |
title="FileSeekPos = enum | |
fspSet, ## Seek to absolute value | |
fspCur, ## Seek relative to current position | |
fspEnd ## Seek relative to end">FileSeekPos</a></li> | |
<li><a class="reference" href="#ForeignCell" | |
title="ForeignCell = object | |
data*: pointer | |
owner: ptr GcHeap">ForeignCell</a></li> | |
<li><a class="reference" href="#BackwardsIndex" | |
title="BackwardsIndex = distinct int">BackwardsIndex</a></li> | |
<li><a class="reference" href="#NimNode" | |
title="NimNode {.magic: "PNimrodNode".} = ref NimNodeObj">NimNode</a></li> | |
<li><a class="reference" href="#ForLoopStmt" | |
title="ForLoopStmt {.compilerproc.} = object">ForLoopStmt</a></li> | |
</ul> | |
</li> | |
<li> | |
<a class="reference reference-toplevel" href="#8" id="58">Vars</a> | |
<ul class="simple simple-toc-section"> | |
<li><a class="reference" href="#programResult" | |
title="programResult: int">programResult</a></li> | |
<li><a class="reference" href="#globalRaiseHook" | |
title="globalRaiseHook: proc (e: ref Exception): bool {.nimcall, gcsafe, locks: 0.}">globalRaiseHook</a></li> | |
<li><a class="reference" href="#localRaiseHook" | |
title="localRaiseHook: proc (e: ref Exception): bool {.nimcall, gcsafe, locks: 0.}">localRaiseHook</a></li> | |
<li><a class="reference" href="#outOfMemHook" | |
title="outOfMemHook: proc () {.nimcall, tags: [], gcsafe, locks: 0, raises: [].}">outOfMemHook</a></li> | |
<li><a class="reference" href="#unhandledExceptionHook" | |
title="unhandledExceptionHook: proc (e: ref Exception) {.nimcall, tags: [], gcsafe, | |
locks: 0, raises: [].}">unhandledExceptionHook</a></li> | |
<li><a class="reference" href="#errorMessageWriter" | |
title="errorMessageWriter: (proc (msg: string) {.tags: [WriteIOEffect], gcsafe, | |
locks: 0, nimcall.})">errorMessageWriter</a></li> | |
<li><a class="reference" href="#frameMsgBuf" | |
title="frameMsgBuf: string">frameMsgBuf</a></li> | |
<li><a class="reference" href="#onUnhandledException" | |
title="onUnhandledException: (proc (errorMsg: string) {.nimcall, gcsafe.})">onUnhandledException</a></li> | |
</ul> | |
</li> | |
<li> | |
<a class="reference reference-toplevel" href="#9" id="59">Lets</a> | |
<ul class="simple simple-toc-section"> | |
<li><a class="reference" href="#nimvm" | |
title="nimvm: bool = false">nimvm</a></li> | |
</ul> | |
</li> | |
<li> | |
<a class="reference reference-toplevel" href="#10" id="60">Consts</a> | |
<ul class="simple simple-toc-section"> | |
<li><a class="reference" href="#on" | |
title="on = true">on</a></li> | |
<li><a class="reference" href="#off" | |
title="off = false">off</a></li> | |
<li><a class="reference" href="#appType" | |
title="appType: string = """>appType</a></li> | |
<li><a class="reference" href="#NoFakeVars" | |
title="NoFakeVars = false">NoFakeVars</a></li> | |
<li><a class="reference" href="#isMainModule" | |
title="isMainModule: bool = false">isMainModule</a></li> | |
<li><a class="reference" href="#CompileDate" | |
title="CompileDate: string = "0000-00-00"">CompileDate</a></li> | |
<li><a class="reference" href="#CompileTime" | |
title="CompileTime: string = "00:00:00"">CompileTime</a></li> | |
<li><a class="reference" href="#cpuEndian" | |
title="cpuEndian: Endianness = littleEndian">cpuEndian</a></li> | |
<li><a class="reference" href="#hostOS" | |
title="hostOS: string = """>hostOS</a></li> | |
<li><a class="reference" href="#hostCPU" | |
title="hostCPU: string = """>hostCPU</a></li> | |
<li><a class="reference" href="#nimEnableCovariance" | |
title="nimEnableCovariance = false">nimEnableCovariance</a></li> | |
<li><a class="reference" href="#QuitSuccess" | |
title="QuitSuccess = 0">QuitSuccess</a></li> | |
<li><a class="reference" href="#QuitFailure" | |
title="QuitFailure = 1">QuitFailure</a></li> | |
<li><a class="reference" href="#Inf" | |
title="Inf = 0x7FF0000000000000'f64">Inf</a></li> | |
<li><a class="reference" href="#NegInf" | |
title="NegInf = 0xFFF0000000000000'f64">NegInf</a></li> | |
<li><a class="reference" href="#NaN" | |
title="NaN = 0x7FF7FFFFFFFFFFFF'f64">NaN</a></li> | |
<li><a class="reference" href="#nimCoroutines" | |
title="nimCoroutines = false">nimCoroutines</a></li> | |
<li><a class="reference" href="#NimMajor" | |
title="NimMajor: int = 1">NimMajor</a></li> | |
<li><a class="reference" href="#NimMinor" | |
title="NimMinor: int = 5">NimMinor</a></li> | |
<li><a class="reference" href="#NimPatch" | |
title="NimPatch: int = 1">NimPatch</a></li> | |
<li><a class="reference" href="#NimVersion" | |
title="NimVersion: string = "1.5.1"">NimVersion</a></li> | |
<li><a class="reference" href="#nativeStackTraceSupported" | |
title="nativeStackTraceSupported = false">nativeStackTraceSupported</a></li> | |
</ul> | |
</li> | |
<li> | |
<a class="reference reference-toplevel" href="#12" id="62">Procs</a> | |
<ul class="simple simple-toc-section"> | |
<ul class="simple nested-toc-section">pop | |
<li><a class="reference" href="#pop%2Cseq%5BT%5D" | |
title="pop[T](s: var seq[T]): T">pop[T](s: var seq[T]): T</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">deallocImpl | |
<li><a class="reference" href="#deallocImpl%2Cpointer" | |
title="deallocImpl(p: pointer)">deallocImpl(p: pointer)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">clamp | |
<li><a class="reference" href="#clamp%2CT%2CT%2CT" | |
title="clamp[T](x, a, b: T): T">clamp[T](x, a, b: T): T</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">quit | |
<li><a class="reference" href="#quit%2Cint" | |
title="quit(errorcode: int = QuitSuccess)">quit(errorcode: int = QuitSuccess)</a></li> | |
<li><a class="reference" href="#quit%2Cstring" | |
title="quit(errormsg: string; errorcode = QuitFailure)">quit(errormsg: string; errorcode = QuitFailure)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">del | |
<li><a class="reference" href="#del%2Cseq%5BT%5D%2CNatural" | |
title="del[T](x: var seq[T]; i: Natural)">del[T](x: var seq[T]; i: Natural)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">moveMem | |
<li><a class="reference" href="#moveMem%2Cpointer%2Cpointer%2CNatural" | |
title="moveMem(dest, source: pointer; size: Natural)">moveMem(dest, source: pointer; size: Natural)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">compiles | |
<li><a class="reference" href="#compiles%2Cuntyped" | |
title="compiles(x: untyped): bool">compiles(x: untyped): bool</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">declared | |
<li><a class="reference" href="#declared%2Cuntyped" | |
title="declared(x: untyped): bool">declared(x: untyped): bool</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">reallocSharedImpl | |
<li><a class="reference" href="#reallocSharedImpl%2Cpointer%2CNatural" | |
title="reallocSharedImpl(p: pointer; newSize: Natural): pointer">reallocSharedImpl(p: pointer; newSize: Natural): pointer</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">move | |
<li><a class="reference" href="#move%2CT" | |
title="move[T](x: var T): T">move[T](x: var T): T</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">chr | |
<li><a class="reference" href="#chr%2Crange%5B%5D" | |
title="chr(u: range[0 .. 255]): char">chr(u: range[0 .. 255]): char</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">deepCopy | |
<li><a class="reference" href="#deepCopy%2CT%2CT" | |
title="deepCopy[T](x: var T; y: T)">deepCopy[T](x: var T; y: T)</a></li> | |
<li><a class="reference" href="#deepCopy%2CT" | |
title="deepCopy[T](y: T): T">deepCopy[T](y: T): T</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">addr | |
<li><a class="reference" href="#addr%2CT" | |
title="`addr`[T](x: var T): ptr T">`addr`[T](x: var T): ptr T</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">alloc0Impl | |
<li><a class="reference" href="#alloc0Impl%2CNatural" | |
title="alloc0Impl(size: Natural): pointer">alloc0Impl(size: Natural): pointer</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">* | |
<li><a class="reference" href="#%2A%2Cint%2Cint" | |
title="`*`(x, y: int): int">`*`(x, y: int): int</a></li> | |
<li><a class="reference" href="#%2A%2Cint8%2Cint8" | |
title="`*`(x, y: int8): int8">`*`(x, y: int8): int8</a></li> | |
<li><a class="reference" href="#%2A%2Cint16%2Cint16" | |
title="`*`(x, y: int16): int16">`*`(x, y: int16): int16</a></li> | |
<li><a class="reference" href="#%2A%2Cint32%2Cint32" | |
title="`*`(x, y: int32): int32">`*`(x, y: int32): int32</a></li> | |
<li><a class="reference" href="#%2A%2Cint64%2Cint64" | |
title="`*`(x, y: int64): int64">`*`(x, y: int64): int64</a></li> | |
<li><a class="reference" href="#%2A%2Cuint%2Cuint" | |
title="`*`(x, y: uint): uint">`*`(x, y: uint): uint</a></li> | |
<li><a class="reference" href="#%2A%2Cuint8%2Cuint8" | |
title="`*`(x, y: uint8): uint8">`*`(x, y: uint8): uint8</a></li> | |
<li><a class="reference" href="#%2A%2Cuint16%2Cuint16" | |
title="`*`(x, y: uint16): uint16">`*`(x, y: uint16): uint16</a></li> | |
<li><a class="reference" href="#%2A%2Cuint32%2Cuint32" | |
title="`*`(x, y: uint32): uint32">`*`(x, y: uint32): uint32</a></li> | |
<li><a class="reference" href="#%2A%2Cuint64%2Cuint64" | |
title="`*`(x, y: uint64): uint64">`*`(x, y: uint64): uint64</a></li> | |
<li><a class="reference" href="#%2A%2Cfloat32%2Cfloat32" | |
title="`*`(x, y: float32): float32">`*`(x, y: float32): float32</a></li> | |
<li><a class="reference" href="#%2A%2Cfloat%2Cfloat" | |
title="`*`(x, y: float): float">`*`(x, y: float): float</a></li> | |
<li><a class="reference" href="#%2A%2Cset%5BT%5D%2Cset%5BT%5D" | |
title="`*`[T](x, y: set[T]): set[T]">`*`[T](x, y: set[T]): set[T]</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">protect | |
<li><a class="reference" href="#protect%2Cpointer" | |
title="protect(x: pointer): ForeignCell">protect(x: pointer): ForeignCell</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">-= | |
<li><a class="reference" href="#-%3D%2CT%2CT" | |
title="`-=`[T: SomeInteger](x: var T; y: T)">`-=`[T: SomeInteger](x: var T; y: T)</a></li> | |
<li><a class="reference" href="#-%3D%2CT%2CT_2" | |
title="`-=`[T: float | float32 | float64](x: var T; y: T)">`-=`[T: float | float32 | float64](x: var T; y: T)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">cstringArrayToSeq | |
<li><a class="reference" href="#cstringArrayToSeq%2CcstringArray%2CNatural" | |
title="cstringArrayToSeq(a: cstringArray; len: Natural): seq[string]">cstringArrayToSeq(a: cstringArray; len: Natural): seq[string]</a></li> | |
<li><a class="reference" href="#cstringArrayToSeq%2CcstringArray" | |
title="cstringArrayToSeq(a: cstringArray): seq[string]">cstringArrayToSeq(a: cstringArray): seq[string]</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">deallocHeap | |
<li><a class="reference" href="#deallocHeap" | |
title="deallocHeap(runFinalizers = true; allowGcAfterwards = true)">deallocHeap(runFinalizers = true; allowGcAfterwards = true)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">toU16 | |
<li><a class="reference" href="#toU16%2Cint" | |
title="toU16(x: int): int16">toU16(x: int): int16</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">toOpenArrayByte | |
<li><a class="reference" href="#toOpenArrayByte%2Ccstring%2Cint%2Cint" | |
title="toOpenArrayByte(x: cstring; first, last: int): openArray[byte]">toOpenArrayByte(x: cstring; first, last: int): openArray[byte]</a></li> | |
<li><a class="reference" href="#toOpenArrayByte%2Cstring%2Cint%2Cint" | |
title="toOpenArrayByte(x: string; first, last: int): openArray[byte]">toOpenArrayByte(x: string; first, last: int): openArray[byte]</a></li> | |
<li><a class="reference" href="#toOpenArrayByte%2CopenArray%5Bchar%5D%2Cint%2Cint" | |
title="toOpenArrayByte(x: openArray[char]; first, last: int): openArray[byte]">toOpenArrayByte(x: openArray[char]; first, last: int): openArray[byte]</a></li> | |
<li><a class="reference" href="#toOpenArrayByte%2Cseq%5Bchar%5D%2Cint%2Cint" | |
title="toOpenArrayByte(x: seq[char]; first, last: int): openArray[byte]">toOpenArrayByte(x: seq[char]; first, last: int): openArray[byte]</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">newStringOfCap | |
<li><a class="reference" href="#newStringOfCap%2CNatural" | |
title="newStringOfCap(cap: Natural): string">newStringOfCap(cap: Natural): string</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">=sink | |
<li><a class="reference" href="#%3Dsink%2CT%2CT" | |
title="`=sink`[T](x: var T; y: T)">`=sink`[T](x: var T; y: T)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section"><= | |
<li><a class="reference" href="#%3C%3D%2CEnum%2CEnum" | |
title="`<=`[Enum: enum](x, y: Enum): bool">`<=`[Enum: enum](x, y: Enum): bool</a></li> | |
<li><a class="reference" href="#%3C%3D%2Cstring%2Cstring" | |
title="`<=`(x, y: string): bool">`<=`(x, y: string): bool</a></li> | |
<li><a class="reference" href="#%3C%3D%2Cchar%2Cchar" | |
title="`<=`(x, y: char): bool">`<=`(x, y: char): bool</a></li> | |
<li><a class="reference" href="#%3C%3D%2Cset%5BT%5D%2Cset%5BT%5D" | |
title="`<=`[T](x, y: set[T]): bool">`<=`[T](x, y: set[T]): bool</a></li> | |
<li><a class="reference" href="#%3C%3D%2Cbool%2Cbool" | |
title="`<=`(x, y: bool): bool">`<=`(x, y: bool): bool</a></li> | |
<li><a class="reference" href="#%3C%3D%2Cref.T%2Cref.T" | |
title="`<=`[T](x, y: ref T): bool">`<=`[T](x, y: ref T): bool</a></li> | |
<li><a class="reference" href="#%3C%3D%2Cpointer%2Cpointer" | |
title="`<=`(x, y: pointer): bool">`<=`(x, y: pointer): bool</a></li> | |
<li><a class="reference" href="#%3C%3D%2Cint%2Cint" | |
title="`<=`(x, y: int): bool">`<=`(x, y: int): bool</a></li> | |
<li><a class="reference" href="#%3C%3D%2Cint8%2Cint8" | |
title="`<=`(x, y: int8): bool">`<=`(x, y: int8): bool</a></li> | |
<li><a class="reference" href="#%3C%3D%2Cint16%2Cint16" | |
title="`<=`(x, y: int16): bool">`<=`(x, y: int16): bool</a></li> | |
<li><a class="reference" href="#%3C%3D%2Cint32%2Cint32" | |
title="`<=`(x, y: int32): bool">`<=`(x, y: int32): bool</a></li> | |
<li><a class="reference" href="#%3C%3D%2Cint64%2Cint64" | |
title="`<=`(x, y: int64): bool">`<=`(x, y: int64): bool</a></li> | |
<li><a class="reference" href="#%3C%3D%2Cuint%2Cuint" | |
title="`<=`(x, y: uint): bool">`<=`(x, y: uint): bool</a></li> | |
<li><a class="reference" href="#%3C%3D%2Cuint8%2Cuint8" | |
title="`<=`(x, y: uint8): bool">`<=`(x, y: uint8): bool</a></li> | |
<li><a class="reference" href="#%3C%3D%2Cuint16%2Cuint16" | |
title="`<=`(x, y: uint16): bool">`<=`(x, y: uint16): bool</a></li> | |
<li><a class="reference" href="#%3C%3D%2Cuint32%2Cuint32" | |
title="`<=`(x, y: uint32): bool">`<=`(x, y: uint32): bool</a></li> | |
<li><a class="reference" href="#%3C%3D%2Cuint64%2Cuint64" | |
title="`<=`(x, y: uint64): bool">`<=`(x, y: uint64): bool</a></li> | |
<li><a class="reference" href="#%3C%3D%2Cfloat32%2Cfloat32" | |
title="`<=`(x, y: float32): bool">`<=`(x, y: float32): bool</a></li> | |
<li><a class="reference" href="#%3C%3D%2Cfloat%2Cfloat" | |
title="`<=`(x, y: float): bool">`<=`(x, y: float): bool</a></li> | |
<li><a class="reference" href="#%3C%3D%2CT%2CT" | |
title="`<=`[T: tuple](x, y: T): bool">`<=`[T: tuple](x, y: T): bool</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">/ | |
<li><a class="reference" href="#%2F%2Cfloat32%2Cfloat32" | |
title="`/`(x, y: float32): float32">`/`(x, y: float32): float32</a></li> | |
<li><a class="reference" href="#%2F%2Cfloat%2Cfloat" | |
title="`/`(x, y: float): float">`/`(x, y: float): float</a></li> | |
<li><a class="reference" href="#%2F%2Cint%2Cint" | |
title="`/`(x, y: int): float">`/`(x, y: int): float</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">typeof | |
<li><a class="reference" href="#typeof%2Cuntyped" | |
title="typeof(x: untyped; mode = typeOfIter): typedesc">typeof(x: untyped; mode = typeOfIter): typedesc</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">[]= | |
<li><a class="reference" href="#%5B%5D%3D%2CT%2CI%2CsinkS" | |
title="`[]=`[I: Ordinal; T, S](a: T; i: I; x: sink S)">`[]=`[I: Ordinal; T, S](a: T; i: I; x: sink S)</a></li> | |
<li><a class="reference" href="#%5B%5D%3D%2Cstring%2CHSlice%5BT%2CU%5D%2Cstring" | |
title="`[]=`[T, U](s: var string; x: HSlice[T, U]; b: string)">`[]=`[T, U](s: var string; x: HSlice[T, U]; b: string)</a></li> | |
<li><a class="reference" href="#%5B%5D%3D%2Carray%5BIdx%2CT%5D%2CHSlice%5BU%2CV%5D%2CopenArray%5BT%5D" | |
title="`[]=`[Idx, T, U, V](a: var array[Idx, T]; x: HSlice[U, V]; b: openArray[T])">`[]=`[Idx, T, U, V](a: var array[Idx, T]; x: HSlice[U, V]; b: openArray[T])</a></li> | |
<li><a class="reference" href="#%5B%5D%3D%2Cseq%5BT%5D%2CHSlice%5BU%2CV%5D%2CopenArray%5BT%5D" | |
title="`[]=`[T, U, V](s: var seq[T]; x: HSlice[U, V]; b: openArray[T])">`[]=`[T, U, V](s: var seq[T]; x: HSlice[U, V]; b: openArray[T])</a></li> | |
<li><a class="reference" href="#%5B%5D%3D%2CopenArray%5BT%5D%2CBackwardsIndex%2CT" | |
title="`[]=`[T](s: var openArray[T]; i: BackwardsIndex; x: T)">`[]=`[T](s: var openArray[T]; i: BackwardsIndex; x: T)</a></li> | |
<li><a class="reference" href="#%5B%5D%3D%2Carray%5BIdx%2CT%5D%2CBackwardsIndex%2CT" | |
title="`[]=`[Idx, T](a: var array[Idx, T]; i: BackwardsIndex; x: T)">`[]=`[Idx, T](a: var array[Idx, T]; i: BackwardsIndex; x: T)</a></li> | |
<li><a class="reference" href="#%5B%5D%3D%2Cstring%2CBackwardsIndex%2Cchar" | |
title="`[]=`(s: var string; i: BackwardsIndex; x: char)">`[]=`(s: var string; i: BackwardsIndex; x: char)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">addQuitProc | |
<li><a class="reference" href="#addQuitProc%2Cproc%29" | |
title="addQuitProc(quitProc: proc () {.noconv.})">addQuitProc(quitProc: proc () {.noconv.})</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">allocShared0Impl | |
<li><a class="reference" href="#allocShared0Impl%2CNatural" | |
title="allocShared0Impl(size: Natural): pointer">allocShared0Impl(size: Natural): pointer</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">div | |
<li><a class="reference" href="#div%2Cint%2Cint" | |
title="`div`(x, y: int): int">`div`(x, y: int): int</a></li> | |
<li><a class="reference" href="#div%2Cint8%2Cint8" | |
title="`div`(x, y: int8): int8">`div`(x, y: int8): int8</a></li> | |
<li><a class="reference" href="#div%2Cint16%2Cint16" | |
title="`div`(x, y: int16): int16">`div`(x, y: int16): int16</a></li> | |
<li><a class="reference" href="#div%2Cint32%2Cint32" | |
title="`div`(x, y: int32): int32">`div`(x, y: int32): int32</a></li> | |
<li><a class="reference" href="#div%2Cint64%2Cint64" | |
title="`div`(x, y: int64): int64">`div`(x, y: int64): int64</a></li> | |
<li><a class="reference" href="#div%2Cuint%2Cuint" | |
title="`div`(x, y: uint): uint">`div`(x, y: uint): uint</a></li> | |
<li><a class="reference" href="#div%2Cuint8%2Cuint8" | |
title="`div`(x, y: uint8): uint8">`div`(x, y: uint8): uint8</a></li> | |
<li><a class="reference" href="#div%2Cuint16%2Cuint16" | |
title="`div`(x, y: uint16): uint16">`div`(x, y: uint16): uint16</a></li> | |
<li><a class="reference" href="#div%2Cuint32%2Cuint32" | |
title="`div`(x, y: uint32): uint32">`div`(x, y: uint32): uint32</a></li> | |
<li><a class="reference" href="#div%2Cuint64%2Cuint64" | |
title="`div`(x, y: uint64): uint64">`div`(x, y: uint64): uint64</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">atomicDec | |
<li><a class="reference" href="#atomicDec%2Cint%2Cint" | |
title="atomicDec(memLoc: var int; x: int = 1): int">atomicDec(memLoc: var int; x: int = 1): int</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">staticRead | |
<li><a class="reference" href="#staticRead%2Cstring" | |
title="staticRead(filename: string): string">staticRead(filename: string): string</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">gorge | |
<li><a class="reference" href="#gorge%2Cstring%2Cstring%2Cstring" | |
title="gorge(command: string; input = ""; cache = ""): string">gorge(command: string; input = ""; cache = ""): string</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">GC_unref | |
<li><a class="reference" href="#GC_unref%2Cref.T" | |
title="GC_unref[T](x: ref T)">GC_unref[T](x: ref T)</a></li> | |
<li><a class="reference" href="#GC_unref%2Cseq%5BT%5D" | |
title="GC_unref[T](x: seq[T])">GC_unref[T](x: seq[T])</a></li> | |
<li><a class="reference" href="#GC_unref%2Cstring" | |
title="GC_unref(x: string)">GC_unref(x: string)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">ze | |
<li><a class="reference" href="#ze%2Cint8" | |
title="ze(x: int8): int">ze(x: int8): int</a></li> | |
<li><a class="reference" href="#ze%2Cint16" | |
title="ze(x: int16): int">ze(x: int16): int</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">rawProc | |
<li><a class="reference" href="#rawProc%2CT" | |
title="rawProc[T: proc](x: T): pointer">rawProc[T: proc](x: T): pointer</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">freeShared | |
<li><a class="reference" href="#freeShared%2Cptr.T" | |
title="freeShared[T](p: ptr T)">freeShared[T](p: ptr T)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">insert | |
<li><a class="reference" href="#insert%2Cseq%5BT%5D%2CsinkT" | |
title="insert[T](x: var seq[T]; item: sink T; i = 0.Natural)">insert[T](x: var seq[T]; item: sink T; i = 0.Natural)</a></li> | |
<li><a class="reference" href="#insert%2Cstring%2Cstring" | |
title="insert(x: var string; item: string; i = 0.Natural)">insert(x: var string; item: string; i = 0.Natural)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">@ | |
<li><a class="reference" href="#%40%2Csinkarray%5BIDX%2CT%5D" | |
title="`@`[IDX, T](a: sink array[IDX, T]): seq[T]">`@`[IDX, T](a: sink array[IDX, T]): seq[T]</a></li> | |
<li><a class="reference" href="#%40%2CopenArray%5BT%5D" | |
title="`@`[T](a: openArray[T]): seq[T]">`@`[T](a: openArray[T]): seq[T]</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">wasMoved | |
<li><a class="reference" href="#wasMoved%2CT" | |
title="wasMoved[T](obj: var T)">wasMoved[T](obj: var T)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">shallow | |
<li><a class="reference" href="#shallow%2Cseq%5BT%5D" | |
title="shallow[T](s: var seq[T])">shallow[T](s: var seq[T])</a></li> | |
<li><a class="reference" href="#shallow%2Cstring" | |
title="shallow(s: var string)">shallow(s: var string)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">inc | |
<li><a class="reference" href="#inc%2CT%2Cint" | |
title="inc[T: Ordinal](x: var T; y = 1)">inc[T: Ordinal](x: var T; y = 1)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">dec | |
<li><a class="reference" href="#dec%2CT%2Cint" | |
title="dec[T: Ordinal](x: var T; y = 1)">dec[T: Ordinal](x: var T; y = 1)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">internalNew | |
<li><a class="reference" href="#internalNew%2Cref.T" | |
title="internalNew[T](a: var ref T)">internalNew[T](a: var ref T)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">delete | |
<li><a class="reference" href="#delete%2Cseq%5BT%5D%2CNatural" | |
title="delete[T](x: var seq[T]; i: Natural)">delete[T](x: var seq[T]; i: Natural)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">setControlCHook | |
<li><a class="reference" href="#setControlCHook%2Cproc%29" | |
title="setControlCHook(hook: proc () {.noconv.})">setControlCHook(hook: proc () {.noconv.})</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">locals | |
<li><a class="reference" href="#locals" | |
title="locals(): RootObj">locals(): RootObj</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">newSeq | |
<li><a class="reference" href="#newSeq%2Cseq%5BT%5D%2CNatural" | |
title="newSeq[T](s: var seq[T]; len: Natural)">newSeq[T](s: var seq[T]; len: Natural)</a></li> | |
<li><a class="reference" href="#newSeq" | |
title="newSeq[T](len = 0.Natural): seq[T]">newSeq[T](len = 0.Natural): seq[T]</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">debugEcho | |
<li><a class="reference" href="#debugEcho%2Cvarargs%5Btyped%2C%5D" | |
title="debugEcho(x: varargs[typed, `$`])">debugEcho(x: varargs[typed, `$`])</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">setupForeignThreadGc | |
<li><a class="reference" href="#setupForeignThreadGc" | |
title="setupForeignThreadGc()">setupForeignThreadGc()</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">getCurrentException | |
<li><a class="reference" href="#getCurrentException" | |
title="getCurrentException(): ref Exception">getCurrentException(): ref Exception</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">shr | |
<li><a class="reference" href="#shr%2Cint%2CSomeInteger" | |
title="`shr`(x: int; y: SomeInteger): int">`shr`(x: int; y: SomeInteger): int</a></li> | |
<li><a class="reference" href="#shr%2Cint8%2CSomeInteger" | |
title="`shr`(x: int8; y: SomeInteger): int8">`shr`(x: int8; y: SomeInteger): int8</a></li> | |
<li><a class="reference" href="#shr%2Cint16%2CSomeInteger" | |
title="`shr`(x: int16; y: SomeInteger): int16">`shr`(x: int16; y: SomeInteger): int16</a></li> | |
<li><a class="reference" href="#shr%2Cint32%2CSomeInteger" | |
title="`shr`(x: int32; y: SomeInteger): int32">`shr`(x: int32; y: SomeInteger): int32</a></li> | |
<li><a class="reference" href="#shr%2Cint64%2CSomeInteger" | |
title="`shr`(x: int64; y: SomeInteger): int64">`shr`(x: int64; y: SomeInteger): int64</a></li> | |
<li><a class="reference" href="#shr%2Cuint%2CSomeInteger" | |
title="`shr`(x: uint; y: SomeInteger): uint">`shr`(x: uint; y: SomeInteger): uint</a></li> | |
<li><a class="reference" href="#shr%2Cuint8%2CSomeInteger" | |
title="`shr`(x: uint8; y: SomeInteger): uint8">`shr`(x: uint8; y: SomeInteger): uint8</a></li> | |
<li><a class="reference" href="#shr%2Cuint16%2CSomeInteger" | |
title="`shr`(x: uint16; y: SomeInteger): uint16">`shr`(x: uint16; y: SomeInteger): uint16</a></li> | |
<li><a class="reference" href="#shr%2Cuint32%2CSomeInteger" | |
title="`shr`(x: uint32; y: SomeInteger): uint32">`shr`(x: uint32; y: SomeInteger): uint32</a></li> | |
<li><a class="reference" href="#shr%2Cuint64%2CSomeInteger" | |
title="`shr`(x: uint64; y: SomeInteger): uint64">`shr`(x: uint64; y: SomeInteger): uint64</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">/% | |
<li><a class="reference" href="#%2F%25%2Cint%2Cint" | |
title="`/%`(x, y: int): int">`/%`(x, y: int): int</a></li> | |
<li><a class="reference" href="#%2F%25%2Cint8%2Cint8" | |
title="`/%`(x, y: int8): int8">`/%`(x, y: int8): int8</a></li> | |
<li><a class="reference" href="#%2F%25%2Cint16%2Cint16" | |
title="`/%`(x, y: int16): int16">`/%`(x, y: int16): int16</a></li> | |
<li><a class="reference" href="#%2F%25%2Cint32%2Cint32" | |
title="`/%`(x, y: int32): int32">`/%`(x, y: int32): int32</a></li> | |
<li><a class="reference" href="#%2F%25%2Cint64%2Cint64" | |
title="`/%`(x, y: int64): int64">`/%`(x, y: int64): int64</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">instantiationInfo | |
<li><a class="reference" href="#instantiationInfo" | |
title="instantiationInfo(index = -1; fullPaths = false): tuple[filename: string, | |
line: int, column: int]">instantiationInfo(index = -1; fullPaths = false): tuple[filename: string, | |
line: int, column: int]</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">compileOption | |
<li><a class="reference" href="#compileOption%2Cstring" | |
title="compileOption(option: string): bool">compileOption(option: string): bool</a></li> | |
<li><a class="reference" href="#compileOption%2Cstring%2Cstring" | |
title="compileOption(option, arg: string): bool">compileOption(option, arg: string): bool</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">newSeqOfCap | |
<li><a class="reference" href="#newSeqOfCap%2CNatural" | |
title="newSeqOfCap[T](cap: Natural): seq[T]">newSeqOfCap[T](cap: Natural): seq[T]</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">getFrame | |
<li><a class="reference" href="#getFrame" | |
title="getFrame(): PFrame">getFrame(): PFrame</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">addInt | |
<li><a class="reference" href="#addInt%2Cstring%2Cint64" | |
title="addInt(result: var string; x: int64)">addInt(result: var string; x: int64)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">substr | |
<li><a class="reference" href="#substr%2Cstring%2Cint%2Cint" | |
title="substr(s: string; first, last: int): string">substr(s: string; first, last: int): string</a></li> | |
<li><a class="reference" href="#substr%2Cstring%2Cint" | |
title="substr(s: string; first = 0): string">substr(s: string; first = 0): string</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">writeStackTrace | |
<li><a class="reference" href="#writeStackTrace" | |
title="writeStackTrace()">writeStackTrace()</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">& | |
<li><a class="reference" href="#%26%2Cstring%2Cchar" | |
title="`&`(x: string; y: char): string">`&`(x: string; y: char): string</a></li> | |
<li><a class="reference" href="#%26%2Cchar%2Cchar" | |
title="`&`(x, y: char): string">`&`(x, y: char): string</a></li> | |
<li><a class="reference" href="#%26%2Cstring%2Cstring" | |
title="`&`(x, y: string): string">`&`(x, y: string): string</a></li> | |
<li><a class="reference" href="#%26%2Cchar%2Cstring" | |
title="`&`(x: char; y: string): string">`&`(x: char; y: string): string</a></li> | |
<li><a class="reference" href="#%26%2Cseq%5BT%5D%2Cseq%5BT%5D" | |
title="`&`[T](x, y: seq[T]): seq[T]">`&`[T](x, y: seq[T]): seq[T]</a></li> | |
<li><a class="reference" href="#%26%2Cseq%5BT%5D%2CT" | |
title="`&`[T](x: seq[T]; y: T): seq[T]">`&`[T](x: seq[T]; y: T): seq[T]</a></li> | |
<li><a class="reference" href="#%26%2CT%2Cseq%5BT%5D" | |
title="`&`[T](x: T; y: seq[T]): seq[T]">`&`[T](x: T; y: seq[T]): seq[T]</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">dispose | |
<li><a class="reference" href="#dispose%2CForeignCell" | |
title="dispose(x: ForeignCell)">dispose(x: ForeignCell)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">incl | |
<li><a class="reference" href="#incl%2Cset%5BT%5D%2CT" | |
title="incl[T](x: var set[T]; y: T)">incl[T](x: var set[T]; y: T)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">createSharedU | |
<li><a class="reference" href="#createSharedU%2Ctypedesc" | |
title="createSharedU(T: typedesc; size = 1.Positive): ptr T:type">createSharedU(T: typedesc; size = 1.Positive): ptr T:type</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">deallocSharedImpl | |
<li><a class="reference" href="#deallocSharedImpl%2Cpointer" | |
title="deallocSharedImpl(p: pointer)">deallocSharedImpl(p: pointer)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">getCurrentExceptionMsg | |
<li><a class="reference" href="#getCurrentExceptionMsg" | |
title="getCurrentExceptionMsg(): string">getCurrentExceptionMsg(): string</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">setGcFrame | |
<li><a class="reference" href="#setGcFrame%2CGcFrame" | |
title="setGcFrame(s: GcFrame)">setGcFrame(s: GcFrame)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">&= | |
<li><a class="reference" href="#%26%3D%2Cstring%2Cstring" | |
title="`&=`(x: var string; y: string)">`&=`(x: var string; y: string)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">getFrameState | |
<li><a class="reference" href="#getFrameState" | |
title="getFrameState(): FrameState">getFrameState(): FrameState</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">equalMem | |
<li><a class="reference" href="#equalMem%2Cpointer%2Cpointer%2CNatural" | |
title="equalMem(a, b: pointer; size: Natural): bool">equalMem(a, b: pointer; size: Natural): bool</a></li> | |
</ul> | |
<ul class="simple nested-toc-section"><% | |
<li><a class="reference" href="#%3C%25%2Cint%2Cint" | |
title="`<%`(x, y: int): bool">`<%`(x, y: int): bool</a></li> | |
<li><a class="reference" href="#%3C%25%2Cint8%2Cint8" | |
title="`<%`(x, y: int8): bool">`<%`(x, y: int8): bool</a></li> | |
<li><a class="reference" href="#%3C%25%2Cint16%2Cint16" | |
title="`<%`(x, y: int16): bool">`<%`(x, y: int16): bool</a></li> | |
<li><a class="reference" href="#%3C%25%2Cint32%2Cint32" | |
title="`<%`(x, y: int32): bool">`<%`(x, y: int32): bool</a></li> | |
<li><a class="reference" href="#%3C%25%2Cint64%2Cint64" | |
title="`<%`(x, y: int64): bool">`<%`(x, y: int64): bool</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">setFrameState | |
<li><a class="reference" href="#setFrameState%2CFrameState" | |
title="setFrameState(state: FrameState)">setFrameState(state: FrameState)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">allocImpl | |
<li><a class="reference" href="#allocImpl%2CNatural" | |
title="allocImpl(size: Natural): pointer">allocImpl(size: Natural): pointer</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">procCall | |
<li><a class="reference" href="#procCall%2Cuntyped" | |
title="procCall(x: untyped)">procCall(x: untyped)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">cmpMem | |
<li><a class="reference" href="#cmpMem%2Cpointer%2Cpointer%2CNatural" | |
title="cmpMem(a, b: pointer; size: Natural): int">cmpMem(a, b: pointer; size: Natural): int</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">contains | |
<li><a class="reference" href="#contains%2Cset%5BT%5D%2CT" | |
title="contains[T](x: set[T]; y: T): bool">contains[T](x: set[T]; y: T): bool</a></li> | |
<li><a class="reference" href="#contains%2CHSlice%5BU%2CV%5D%2CW" | |
title="contains[U, V, W](s: HSlice[U, V]; value: W): bool">contains[U, V, W](s: HSlice[U, V]; value: W): bool</a></li> | |
<li><a class="reference" href="#contains%2CopenArray%5BT%5D%2CT" | |
title="contains[T](a: openArray[T]; item: T): bool">contains[T](a: openArray[T]; item: T): bool</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">getStackTraceEntries | |
<li><a class="reference" href="#getStackTraceEntries%2Cref.Exception" | |
title="getStackTraceEntries(e: ref Exception): seq[StackTraceEntry]">getStackTraceEntries(e: ref Exception): seq[StackTraceEntry]</a></li> | |
<li><a class="reference" href="#getStackTraceEntries" | |
title="getStackTraceEntries(): seq[StackTraceEntry]">getStackTraceEntries(): seq[StackTraceEntry]</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">isNil | |
<li><a class="reference" href="#isNil%2Cseq%5BT%5D" | |
title="isNil[T](x: seq[T]): bool">isNil[T](x: seq[T]): bool</a></li> | |
<li><a class="reference" href="#isNil%2Cref.T" | |
title="isNil[T](x: ref T): bool">isNil[T](x: ref T): bool</a></li> | |
<li><a class="reference" href="#isNil%2Cstring" | |
title="isNil(x: string): bool">isNil(x: string): bool</a></li> | |
<li><a class="reference" href="#isNil%2Cptr.T" | |
title="isNil[T](x: ptr T): bool">isNil[T](x: ptr T): bool</a></li> | |
<li><a class="reference" href="#isNil%2Cpointer" | |
title="isNil(x: pointer): bool">isNil(x: pointer): bool</a></li> | |
<li><a class="reference" href="#isNil%2Ccstring" | |
title="isNil(x: cstring): bool">isNil(x: cstring): bool</a></li> | |
<li><a class="reference" href="#isNil%2CT" | |
title="isNil[T: proc](x: T): bool">isNil[T: proc](x: T): bool</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">allocCStringArray | |
<li><a class="reference" href="#allocCStringArray%2CopenArray%5Bstring%5D" | |
title="allocCStringArray(a: openArray[string]): cstringArray">allocCStringArray(a: openArray[string]): cstringArray</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">unsetControlCHook | |
<li><a class="reference" href="#unsetControlCHook" | |
title="unsetControlCHook()">unsetControlCHook()</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">toInt | |
<li><a class="reference" href="#toInt%2Cfloat" | |
title="toInt(f: float): int">toInt(f: float): int</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">card | |
<li><a class="reference" href="#card%2Cset%5BT%5D" | |
title="card[T](x: set[T]): int">card[T](x: set[T]): int</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">and | |
<li><a class="reference" href="#and%2Cbool%2Cbool" | |
title="`and`(x, y: bool): bool">`and`(x, y: bool): bool</a></li> | |
<li><a class="reference" href="#and%2Ctypedesc%2Ctypedesc" | |
title="`and`(a, b: typedesc): typedesc">`and`(a, b: typedesc): typedesc</a></li> | |
<li><a class="reference" href="#and%2Cint%2Cint" | |
title="`and`(x, y: int): int">`and`(x, y: int): int</a></li> | |
<li><a class="reference" href="#and%2Cint8%2Cint8" | |
title="`and`(x, y: int8): int8">`and`(x, y: int8): int8</a></li> | |
<li><a class="reference" href="#and%2Cint16%2Cint16" | |
title="`and`(x, y: int16): int16">`and`(x, y: int16): int16</a></li> | |
<li><a class="reference" href="#and%2Cint32%2Cint32" | |
title="`and`(x, y: int32): int32">`and`(x, y: int32): int32</a></li> | |
<li><a class="reference" href="#and%2Cint64%2Cint64" | |
title="`and`(x, y: int64): int64">`and`(x, y: int64): int64</a></li> | |
<li><a class="reference" href="#and%2Cuint%2Cuint" | |
title="`and`(x, y: uint): uint">`and`(x, y: uint): uint</a></li> | |
<li><a class="reference" href="#and%2Cuint8%2Cuint8" | |
title="`and`(x, y: uint8): uint8">`and`(x, y: uint8): uint8</a></li> | |
<li><a class="reference" href="#and%2Cuint16%2Cuint16" | |
title="`and`(x, y: uint16): uint16">`and`(x, y: uint16): uint16</a></li> | |
<li><a class="reference" href="#and%2Cuint32%2Cuint32" | |
title="`and`(x, y: uint32): uint32">`and`(x, y: uint32): uint32</a></li> | |
<li><a class="reference" href="#and%2Cuint64%2Cuint64" | |
title="`and`(x, y: uint64): uint64">`and`(x, y: uint64): uint64</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">reset | |
<li><a class="reference" href="#reset%2CT" | |
title="reset[T](obj: var T)">reset[T](obj: var T)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">resizeShared | |
<li><a class="reference" href="#resizeShared%2Cptr.T%2CNatural" | |
title="resizeShared[T](p: ptr T; newSize: Natural): ptr T">resizeShared[T](p: ptr T; newSize: Natural): ptr T</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">+% | |
<li><a class="reference" href="#%2B%25%2Cint%2Cint" | |
title="`+%`(x, y: int): int">`+%`(x, y: int): int</a></li> | |
<li><a class="reference" href="#%2B%25%2Cint8%2Cint8" | |
title="`+%`(x, y: int8): int8">`+%`(x, y: int8): int8</a></li> | |
<li><a class="reference" href="#%2B%25%2Cint16%2Cint16" | |
title="`+%`(x, y: int16): int16">`+%`(x, y: int16): int16</a></li> | |
<li><a class="reference" href="#%2B%25%2Cint32%2Cint32" | |
title="`+%`(x, y: int32): int32">`+%`(x, y: int32): int32</a></li> | |
<li><a class="reference" href="#%2B%25%2Cint64%2Cint64" | |
title="`+%`(x, y: int64): int64">`+%`(x, y: int64): int64</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">getMaxMem | |
<li><a class="reference" href="#getMaxMem" | |
title="getMaxMem(): int">getMaxMem(): int</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">cmp | |
<li><a class="reference" href="#cmp%2CT%2CT" | |
title="cmp[T](x, y: T): int">cmp[T](x, y: T): int</a></li> | |
<li><a class="reference" href="#cmp%2Cstring%2Cstring" | |
title="cmp(x, y: string): int">cmp(x, y: string): int</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">addEscapedChar | |
<li><a class="reference" href="#addEscapedChar%2Cstring%2Cchar" | |
title="addEscapedChar(s: var string; c: char)">addEscapedChar(s: var string; c: char)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">dealloc | |
<li><a class="reference" href="#dealloc%2Cpointer" | |
title="dealloc(p: pointer)">dealloc(p: pointer)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">getTotalMem | |
<li><a class="reference" href="#getTotalMem" | |
title="getTotalMem(): int">getTotalMem(): int</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">cpuRelax | |
<li><a class="reference" href="#cpuRelax" | |
title="cpuRelax()">cpuRelax()</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">unsafeAddr | |
<li><a class="reference" href="#unsafeAddr%2CT" | |
title="unsafeAddr[T](x: T): ptr T">unsafeAddr[T](x: T): ptr T</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">runnableExamples | |
<li><a class="reference" href="#runnableExamples%2Cstring%2Cuntyped" | |
title="runnableExamples(rdoccmd = ""; body: untyped)">runnableExamples(rdoccmd = ""; body: untyped)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">gorgeEx | |
<li><a class="reference" href="#gorgeEx%2Cstring%2Cstring%2Cstring" | |
title="gorgeEx(command: string; input = ""; cache = ""): tuple[output: string, | |
exitCode: int]">gorgeEx(command: string; input = ""; cache = ""): tuple[output: string, | |
exitCode: int]</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">%% | |
<li><a class="reference" href="#%25%25%2Cint%2Cint" | |
title="`%%`(x, y: int): int">`%%`(x, y: int): int</a></li> | |
<li><a class="reference" href="#%25%25%2Cint8%2Cint8" | |
title="`%%`(x, y: int8): int8">`%%`(x, y: int8): int8</a></li> | |
<li><a class="reference" href="#%25%25%2Cint16%2Cint16" | |
title="`%%`(x, y: int16): int16">`%%`(x, y: int16): int16</a></li> | |
<li><a class="reference" href="#%25%25%2Cint32%2Cint32" | |
title="`%%`(x, y: int32): int32">`%%`(x, y: int32): int32</a></li> | |
<li><a class="reference" href="#%25%25%2Cint64%2Cint64" | |
title="`%%`(x, y: int64): int64">`%%`(x, y: int64): int64</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">min | |
<li><a class="reference" href="#min%2Cint%2Cint" | |
title="min(x, y: int): int">min(x, y: int): int</a></li> | |
<li><a class="reference" href="#min%2Cint8%2Cint8" | |
title="min(x, y: int8): int8">min(x, y: int8): int8</a></li> | |
<li><a class="reference" href="#min%2Cint16%2Cint16" | |
title="min(x, y: int16): int16">min(x, y: int16): int16</a></li> | |
<li><a class="reference" href="#min%2Cint32%2Cint32" | |
title="min(x, y: int32): int32">min(x, y: int32): int32</a></li> | |
<li><a class="reference" href="#min%2Cint64%2Cint64" | |
title="min(x, y: int64): int64">min(x, y: int64): int64</a></li> | |
<li><a class="reference" href="#min%2CopenArray%5BT%5D" | |
title="min[T](x: openArray[T]): T">min[T](x: openArray[T]): T</a></li> | |
<li><a class="reference" href="#min%2Cfloat32%2Cfloat32" | |
title="min(x, y: float32): float32">min(x, y: float32): float32</a></li> | |
<li><a class="reference" href="#min%2Cfloat64%2Cfloat64" | |
title="min(x, y: float64): float64">min(x, y: float64): float64</a></li> | |
<li><a class="reference" href="#min%2CT%2CT" | |
title="min[T: not SomeFloat](x, y: T): T">min[T: not SomeFloat](x, y: T): T</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">finished | |
<li><a class="reference" href="#finished%2CT" | |
title="finished[T: proc](x: T): bool">finished[T: proc](x: T): bool</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">deallocShared | |
<li><a class="reference" href="#deallocShared%2Cpointer" | |
title="deallocShared(p: pointer)">deallocShared(p: pointer)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">echo | |
<li><a class="reference" href="#echo%2Cvarargs%5Btyped%2C%5D" | |
title="echo(x: varargs[typed, `$`])">echo(x: varargs[typed, `$`])</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">defined | |
<li><a class="reference" href="#defined%2Cuntyped" | |
title="defined(x: untyped): bool">defined(x: untyped): bool</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">+= | |
<li><a class="reference" href="#%2B%3D%2CT%2CT" | |
title="`+=`[T: SomeInteger](x: var T; y: T)">`+=`[T: SomeInteger](x: var T; y: T)</a></li> | |
<li><a class="reference" href="#%2B%3D%2CT%2CT_2" | |
title="`+=`[T: float | float32 | float64](x: var T; y: T)">`+=`[T: float | float32 | float64](x: var T; y: T)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">toU8 | |
<li><a class="reference" href="#toU8%2Cint" | |
title="toU8(x: int): int8">toU8(x: int): int8</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">.. | |
<li><a class="reference" href="#..%2CsinkT%2CsinkU" | |
title="`..`[T, U](a: sink T; b: sink U): HSlice[T, U]">`..`[T, U](a: sink T; b: sink U): HSlice[T, U]</a></li> | |
<li><a class="reference" href="#..%2CsinkT" | |
title="`..`[T](b: sink T): HSlice[int, T]">`..`[T](b: sink T): HSlice[int, T]</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">resize | |
<li><a class="reference" href="#resize%2Cptr.T%2CNatural" | |
title="resize[T](p: ptr T; newSize: Natural): ptr T">resize[T](p: ptr T; newSize: Natural): ptr T</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">getTypeInfo | |
<li><a class="reference" href="#getTypeInfo%2CT" | |
title="getTypeInfo[T](x: T): pointer">getTypeInfo[T](x: T): pointer</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">staticExec | |
<li><a class="reference" href="#staticExec%2Cstring%2Cstring%2Cstring" | |
title="staticExec(command: string; input = ""; cache = ""): string">staticExec(command: string; input = ""; cache = ""): string</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">len | |
<li><a class="reference" href="#len%2CTOpenArray" | |
title="len[TOpenArray: openArray | varargs](x: TOpenArray): int">len[TOpenArray: openArray | varargs](x: TOpenArray): int</a></li> | |
<li><a class="reference" href="#len%2Cstring" | |
title="len(x: string): int">len(x: string): int</a></li> | |
<li><a class="reference" href="#len%2Ccstring" | |
title="len(x: cstring): int">len(x: cstring): int</a></li> | |
<li><a class="reference" href="#len" | |
title="len(x: (type array) | array): int">len(x: (type array) | array): int</a></li> | |
<li><a class="reference" href="#len%2Cseq%5BT%5D" | |
title="len[T](x: seq[T]): int">len[T](x: seq[T]): int</a></li> | |
<li><a class="reference" href="#len%2Cset%5BT%5D" | |
title="len[T](x: set[T]): int">len[T](x: set[T]): int</a></li> | |
<li><a class="reference" href="#len%2CHSlice%5BU%3A+Ordinal%2CV%3A+Ordinal%5D" | |
title="len[U: Ordinal; V: Ordinal](x: HSlice[U, V]): int">len[U: Ordinal; V: Ordinal](x: HSlice[U, V]): int</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">low | |
<li><a class="reference" href="#low%2CT" | |
title="low[T: Ordinal | enum | range](x: T): T">low[T: Ordinal | enum | range](x: T): T</a></li> | |
<li><a class="reference" href="#low%2Ctypedesc%5BT%5D" | |
title="low[T: Ordinal | enum | range](x: typedesc[T]): T">low[T: Ordinal | enum | range](x: typedesc[T]): T</a></li> | |
<li><a class="reference" href="#low%2CopenArray%5BT%5D" | |
title="low[T](x: openArray[T]): int">low[T](x: openArray[T]): int</a></li> | |
<li><a class="reference" href="#low%2Carray%5BI%2CT%5D" | |
title="low[I, T](x: array[I, T]): I">low[I, T](x: array[I, T]): I</a></li> | |
<li><a class="reference" href="#low%2Ctypedesc%5Barray%5BI%2CT%5D%5D" | |
title="low[I, T](x: typedesc[array[I, T]]): I">low[I, T](x: typedesc[array[I, T]]): I</a></li> | |
<li><a class="reference" href="#low%2Ccstring" | |
title="low(x: cstring): int">low(x: cstring): int</a></li> | |
<li><a class="reference" href="#low%2Cstring" | |
title="low(x: string): int">low(x: string): int</a></li> | |
<li><a class="reference" href="#low%2Ctypedesc%5BSomeFloat%5D" | |
title="low(T: typedesc[SomeFloat]): T:type">low(T: typedesc[SomeFloat]): T:type</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">declaredInScope | |
<li><a class="reference" href="#declaredInScope%2Cuntyped" | |
title="declaredInScope(x: untyped): bool">declaredInScope(x: untyped): bool</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">add | |
<li><a class="reference" href="#add%2Cstring%2Cchar" | |
title="add(x: var string; y: char)">add(x: var string; y: char)</a></li> | |
<li><a class="reference" href="#add%2Cstring%2Cstring" | |
title="add(x: var string; y: string)">add(x: var string; y: string)</a></li> | |
<li><a class="reference" href="#add%2Cseq%5BT%5D%2CsinkT" | |
title="add[T](x: var seq[T]; y: sink T)">add[T](x: var seq[T]; y: sink T)</a></li> | |
<li><a class="reference" href="#add%2Cseq%5BT%5D%2CopenArray%5BT%5D" | |
title="add[T](x: var seq[T]; y: openArray[T])">add[T](x: var seq[T]; y: openArray[T])</a></li> | |
<li><a class="reference" href="#add%2Cstring%2Ccstring" | |
title="add(x: var string; y: cstring)">add(x: var string; y: cstring)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">toOpenArray | |
<li><a class="reference" href="#toOpenArray%2Cptr.UncheckedArray%5BT%5D%2Cint%2Cint" | |
title="toOpenArray[T](x: ptr UncheckedArray[T]; first, last: int): openArray[T]">toOpenArray[T](x: ptr UncheckedArray[T]; first, last: int): openArray[T]</a></li> | |
<li><a class="reference" href="#toOpenArray%2Ccstring%2Cint%2Cint" | |
title="toOpenArray(x: cstring; first, last: int): openArray[char]">toOpenArray(x: cstring; first, last: int): openArray[char]</a></li> | |
<li><a class="reference" href="#toOpenArray%2Cseq%5BT%5D%2Cint%2Cint" | |
title="toOpenArray[T](x: seq[T]; first, last: int): openArray[T]">toOpenArray[T](x: seq[T]; first, last: int): openArray[T]</a></li> | |
<li><a class="reference" href="#toOpenArray%2CopenArray%5BT%5D%2Cint%2Cint" | |
title="toOpenArray[T](x: openArray[T]; first, last: int): openArray[T]">toOpenArray[T](x: openArray[T]; first, last: int): openArray[T]</a></li> | |
<li><a class="reference" href="#toOpenArray%2Carray%5BI%2CT%5D%2CI%2CI" | |
title="toOpenArray[I, T](x: array[I, T]; first, last: I): openArray[T]">toOpenArray[I, T](x: array[I, T]; first, last: I): openArray[T]</a></li> | |
<li><a class="reference" href="#toOpenArray%2Cstring%2Cint%2Cint" | |
title="toOpenArray(x: string; first, last: int): openArray[char]">toOpenArray(x: string; first, last: int): openArray[char]</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">- | |
<li><a class="reference" href="#-%2Cint" | |
title="`-`(x: int): int">`-`(x: int): int</a></li> | |
<li><a class="reference" href="#-%2Cint8" | |
title="`-`(x: int8): int8">`-`(x: int8): int8</a></li> | |
<li><a class="reference" href="#-%2Cint16" | |
title="`-`(x: int16): int16">`-`(x: int16): int16</a></li> | |
<li><a class="reference" href="#-%2Cint32" | |
title="`-`(x: int32): int32">`-`(x: int32): int32</a></li> | |
<li><a class="reference" href="#-%2Cint64" | |
title="`-`(x: int64): int64">`-`(x: int64): int64</a></li> | |
<li><a class="reference" href="#-%2Cint%2Cint" | |
title="`-`(x, y: int): int">`-`(x, y: int): int</a></li> | |
<li><a class="reference" href="#-%2Cint8%2Cint8" | |
title="`-`(x, y: int8): int8">`-`(x, y: int8): int8</a></li> | |
<li><a class="reference" href="#-%2Cint16%2Cint16" | |
title="`-`(x, y: int16): int16">`-`(x, y: int16): int16</a></li> | |
<li><a class="reference" href="#-%2Cint32%2Cint32" | |
title="`-`(x, y: int32): int32">`-`(x, y: int32): int32</a></li> | |
<li><a class="reference" href="#-%2Cint64%2Cint64" | |
title="`-`(x, y: int64): int64">`-`(x, y: int64): int64</a></li> | |
<li><a class="reference" href="#-%2Cuint%2Cuint" | |
title="`-`(x, y: uint): uint">`-`(x, y: uint): uint</a></li> | |
<li><a class="reference" href="#-%2Cuint8%2Cuint8" | |
title="`-`(x, y: uint8): uint8">`-`(x, y: uint8): uint8</a></li> | |
<li><a class="reference" href="#-%2Cuint16%2Cuint16" | |
title="`-`(x, y: uint16): uint16">`-`(x, y: uint16): uint16</a></li> | |
<li><a class="reference" href="#-%2Cuint32%2Cuint32" | |
title="`-`(x, y: uint32): uint32">`-`(x, y: uint32): uint32</a></li> | |
<li><a class="reference" href="#-%2Cuint64%2Cuint64" | |
title="`-`(x, y: uint64): uint64">`-`(x, y: uint64): uint64</a></li> | |
<li><a class="reference" href="#-%2Cfloat32" | |
title="`-`(x: float32): float32">`-`(x: float32): float32</a></li> | |
<li><a class="reference" href="#-%2Cfloat32%2Cfloat32" | |
title="`-`(x, y: float32): float32">`-`(x, y: float32): float32</a></li> | |
<li><a class="reference" href="#-%2Cfloat" | |
title="`-`(x: float): float">`-`(x: float): float</a></li> | |
<li><a class="reference" href="#-%2Cfloat%2Cfloat" | |
title="`-`(x, y: float): float">`-`(x, y: float): float</a></li> | |
<li><a class="reference" href="#-%2Cset%5BT%5D%2Cset%5BT%5D" | |
title="`-`[T](x, y: set[T]): set[T]">`-`[T](x, y: set[T]): set[T]</a></li> | |
<li><a class="reference" href="#-%2CAllocStats%2CAllocStats" | |
title="`-`(a, b: AllocStats): AllocStats">`-`(a, b: AllocStats): AllocStats</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">*% | |
<li><a class="reference" href="#%2A%25%2Cint%2Cint" | |
title="`*%`(x, y: int): int">`*%`(x, y: int): int</a></li> | |
<li><a class="reference" href="#%2A%25%2Cint8%2Cint8" | |
title="`*%`(x, y: int8): int8">`*%`(x, y: int8): int8</a></li> | |
<li><a class="reference" href="#%2A%25%2Cint16%2Cint16" | |
title="`*%`(x, y: int16): int16">`*%`(x, y: int16): int16</a></li> | |
<li><a class="reference" href="#%2A%25%2Cint32%2Cint32" | |
title="`*%`(x, y: int32): int32">`*%`(x, y: int32): int32</a></li> | |
<li><a class="reference" href="#%2A%25%2Cint64%2Cint64" | |
title="`*%`(x, y: int64): int64">`*%`(x, y: int64): int64</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">pushGcFrame | |
<li><a class="reference" href="#pushGcFrame%2CGcFrame" | |
title="pushGcFrame(s: GcFrame)">pushGcFrame(s: GcFrame)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">GC_collectZct | |
<li><a class="reference" href="#GC_collectZct" | |
title="GC_collectZct()">GC_collectZct()</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">reallocImpl | |
<li><a class="reference" href="#reallocImpl%2Cpointer%2CNatural" | |
title="reallocImpl(p: pointer; newSize: Natural): pointer">reallocImpl(p: pointer; newSize: Natural): pointer</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">ashr | |
<li><a class="reference" href="#ashr%2Cint%2CSomeInteger" | |
title="ashr(x: int; y: SomeInteger): int">ashr(x: int; y: SomeInteger): int</a></li> | |
<li><a class="reference" href="#ashr%2Cint8%2CSomeInteger" | |
title="ashr(x: int8; y: SomeInteger): int8">ashr(x: int8; y: SomeInteger): int8</a></li> | |
<li><a class="reference" href="#ashr%2Cint16%2CSomeInteger" | |
title="ashr(x: int16; y: SomeInteger): int16">ashr(x: int16; y: SomeInteger): int16</a></li> | |
<li><a class="reference" href="#ashr%2Cint32%2CSomeInteger" | |
title="ashr(x: int32; y: SomeInteger): int32">ashr(x: int32; y: SomeInteger): int32</a></li> | |
<li><a class="reference" href="#ashr%2Cint64%2CSomeInteger" | |
title="ashr(x: int64; y: SomeInteger): int64">ashr(x: int64; y: SomeInteger): int64</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">cas | |
<li><a class="reference" href="#cas%2Cptr.T%2CT%2CT" | |
title="cas[T: bool | int | ptr](p: ptr T; oldValue, newValue: T): bool">cas[T: bool | int | ptr](p: ptr T; oldValue, newValue: T): bool</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">allocSharedImpl | |
<li><a class="reference" href="#allocSharedImpl%2CNatural" | |
title="allocSharedImpl(size: Natural): pointer">allocSharedImpl(size: Natural): pointer</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">toBiggestInt | |
<li><a class="reference" href="#toBiggestInt%2CBiggestFloat" | |
title="toBiggestInt(f: BiggestFloat): BiggestInt">toBiggestInt(f: BiggestFloat): BiggestInt</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">of | |
<li><a class="reference" href="#of%2Ctypedesc%5BT%5D%2Ctypedesc%5BS%5D" | |
title="`of`[T, S](x: typedesc[T]; y: typedesc[S]): bool">`of`[T, S](x: typedesc[T]; y: typedesc[S]): bool</a></li> | |
<li><a class="reference" href="#of%2CT%2Ctypedesc%5BS%5D" | |
title="`of`[T, S](x: T; y: typedesc[S]): bool">`of`[T, S](x: T; y: typedesc[S]): bool</a></li> | |
<li><a class="reference" href="#of%2CT%2CS" | |
title="`of`[T, S](x: T; y: S): bool">`of`[T, S](x: T; y: S): bool</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">setCurrentException | |
<li><a class="reference" href="#setCurrentException%2Cref.Exception" | |
title="setCurrentException(exc: ref Exception)">setCurrentException(exc: ref Exception)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section"><=% | |
<li><a class="reference" href="#%3C%3D%25%2Cint%2Cint" | |
title="`<=%`(x, y: int): bool">`<=%`(x, y: int): bool</a></li> | |
<li><a class="reference" href="#%3C%3D%25%2Cint8%2Cint8" | |
title="`<=%`(x, y: int8): bool">`<=%`(x, y: int8): bool</a></li> | |
<li><a class="reference" href="#%3C%3D%25%2Cint16%2Cint16" | |
title="`<=%`(x, y: int16): bool">`<=%`(x, y: int16): bool</a></li> | |
<li><a class="reference" href="#%3C%3D%25%2Cint32%2Cint32" | |
title="`<=%`(x, y: int32): bool">`<=%`(x, y: int32): bool</a></li> | |
<li><a class="reference" href="#%3C%3D%25%2Cint64%2Cint64" | |
title="`<=%`(x, y: int64): bool">`<=%`(x, y: int64): bool</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">ze64 | |
<li><a class="reference" href="#ze64%2Cint8" | |
title="ze64(x: int8): int64">ze64(x: int8): int64</a></li> | |
<li><a class="reference" href="#ze64%2Cint16" | |
title="ze64(x: int16): int64">ze64(x: int16): int64</a></li> | |
<li><a class="reference" href="#ze64%2Cint32" | |
title="ze64(x: int32): int64">ze64(x: int32): int64</a></li> | |
<li><a class="reference" href="#ze64%2Cint" | |
title="ze64(x: int): int64">ze64(x: int): int64</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">reallocShared0Impl | |
<li><a class="reference" href="#reallocShared0Impl%2Cpointer%2CNatural%2CNatural" | |
title="reallocShared0Impl(p: pointer; oldSize, newSize: Natural): pointer">reallocShared0Impl(p: pointer; oldSize, newSize: Natural): pointer</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">+ | |
<li><a class="reference" href="#%2B%2Cint" | |
title="`+`(x: int): int">`+`(x: int): int</a></li> | |
<li><a class="reference" href="#%2B%2Cint8" | |
title="`+`(x: int8): int8">`+`(x: int8): int8</a></li> | |
<li><a class="reference" href="#%2B%2Cint16" | |
title="`+`(x: int16): int16">`+`(x: int16): int16</a></li> | |
<li><a class="reference" href="#%2B%2Cint32" | |
title="`+`(x: int32): int32">`+`(x: int32): int32</a></li> | |
<li><a class="reference" href="#%2B%2Cint64" | |
title="`+`(x: int64): int64">`+`(x: int64): int64</a></li> | |
<li><a class="reference" href="#%2B%2Cint%2Cint" | |
title="`+`(x, y: int): int">`+`(x, y: int): int</a></li> | |
<li><a class="reference" href="#%2B%2Cint8%2Cint8" | |
title="`+`(x, y: int8): int8">`+`(x, y: int8): int8</a></li> | |
<li><a class="reference" href="#%2B%2Cint16%2Cint16" | |
title="`+`(x, y: int16): int16">`+`(x, y: int16): int16</a></li> | |
<li><a class="reference" href="#%2B%2Cint32%2Cint32" | |
title="`+`(x, y: int32): int32">`+`(x, y: int32): int32</a></li> | |
<li><a class="reference" href="#%2B%2Cint64%2Cint64" | |
title="`+`(x, y: int64): int64">`+`(x, y: int64): int64</a></li> | |
<li><a class="reference" href="#%2B%2Cuint%2Cuint" | |
title="`+`(x, y: uint): uint">`+`(x, y: uint): uint</a></li> | |
<li><a class="reference" href="#%2B%2Cuint8%2Cuint8" | |
title="`+`(x, y: uint8): uint8">`+`(x, y: uint8): uint8</a></li> | |
<li><a class="reference" href="#%2B%2Cuint16%2Cuint16" | |
title="`+`(x, y: uint16): uint16">`+`(x, y: uint16): uint16</a></li> | |
<li><a class="reference" href="#%2B%2Cuint32%2Cuint32" | |
title="`+`(x, y: uint32): uint32">`+`(x, y: uint32): uint32</a></li> | |
<li><a class="reference" href="#%2B%2Cuint64%2Cuint64" | |
title="`+`(x, y: uint64): uint64">`+`(x, y: uint64): uint64</a></li> | |
<li><a class="reference" href="#%2B%2Cfloat32" | |
title="`+`(x: float32): float32">`+`(x: float32): float32</a></li> | |
<li><a class="reference" href="#%2B%2Cfloat32%2Cfloat32" | |
title="`+`(x, y: float32): float32">`+`(x, y: float32): float32</a></li> | |
<li><a class="reference" href="#%2B%2Cfloat" | |
title="`+`(x: float): float">`+`(x: float): float</a></li> | |
<li><a class="reference" href="#%2B%2Cfloat%2Cfloat" | |
title="`+`(x, y: float): float">`+`(x, y: float): float</a></li> | |
<li><a class="reference" href="#%2B%2Cset%5BT%5D%2Cset%5BT%5D" | |
title="`+`[T](x, y: set[T]): set[T]">`+`[T](x, y: set[T]): set[T]</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">toBiggestFloat | |
<li><a class="reference" href="#toBiggestFloat%2CBiggestInt" | |
title="toBiggestFloat(i: BiggestInt): BiggestFloat">toBiggestFloat(i: BiggestInt): BiggestFloat</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">mod | |
<li><a class="reference" href="#mod%2Cint%2Cint" | |
title="`mod`(x, y: int): int">`mod`(x, y: int): int</a></li> | |
<li><a class="reference" href="#mod%2Cint8%2Cint8" | |
title="`mod`(x, y: int8): int8">`mod`(x, y: int8): int8</a></li> | |
<li><a class="reference" href="#mod%2Cint16%2Cint16" | |
title="`mod`(x, y: int16): int16">`mod`(x, y: int16): int16</a></li> | |
<li><a class="reference" href="#mod%2Cint32%2Cint32" | |
title="`mod`(x, y: int32): int32">`mod`(x, y: int32): int32</a></li> | |
<li><a class="reference" href="#mod%2Cint64%2Cint64" | |
title="`mod`(x, y: int64): int64">`mod`(x, y: int64): int64</a></li> | |
<li><a class="reference" href="#mod%2Cuint%2Cuint" | |
title="`mod`(x, y: uint): uint">`mod`(x, y: uint): uint</a></li> | |
<li><a class="reference" href="#mod%2Cuint8%2Cuint8" | |
title="`mod`(x, y: uint8): uint8">`mod`(x, y: uint8): uint8</a></li> | |
<li><a class="reference" href="#mod%2Cuint16%2Cuint16" | |
title="`mod`(x, y: uint16): uint16">`mod`(x, y: uint16): uint16</a></li> | |
<li><a class="reference" href="#mod%2Cuint32%2Cuint32" | |
title="`mod`(x, y: uint32): uint32">`mod`(x, y: uint32): uint32</a></li> | |
<li><a class="reference" href="#mod%2Cuint64%2Cuint64" | |
title="`mod`(x, y: uint64): uint64">`mod`(x, y: uint64): uint64</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">getGcFrame | |
<li><a class="reference" href="#getGcFrame" | |
title="getGcFrame(): GcFrame">getGcFrame(): GcFrame</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">setLen | |
<li><a class="reference" href="#setLen%2Cseq%5BT%5D%2CNatural" | |
title="setLen[T](s: var seq[T]; newlen: Natural)">setLen[T](s: var seq[T]; newlen: Natural)</a></li> | |
<li><a class="reference" href="#setLen%2Cstring%2CNatural" | |
title="setLen(s: var string; newlen: Natural)">setLen(s: var string; newlen: Natural)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">| | |
<li><a class="reference" href="#%7C%2Ctypedesc%2Ctypedesc" | |
title="`|`(a, b: typedesc): typedesc">`|`(a, b: typedesc): typedesc</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">excl | |
<li><a class="reference" href="#excl%2Cset%5BT%5D%2CT" | |
title="excl[T](x: var set[T]; y: T)">excl[T](x: var set[T]; y: T)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">addAndFetch | |
<li><a class="reference" href="#addAndFetch%2Cptr.int%2Cint" | |
title="addAndFetch(p: ptr int; val: int): int">addAndFetch(p: ptr int; val: int): int</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">xor | |
<li><a class="reference" href="#xor%2Cbool%2Cbool" | |
title="`xor`(x, y: bool): bool">`xor`(x, y: bool): bool</a></li> | |
<li><a class="reference" href="#xor%2Cint%2Cint" | |
title="`xor`(x, y: int): int">`xor`(x, y: int): int</a></li> | |
<li><a class="reference" href="#xor%2Cint8%2Cint8" | |
title="`xor`(x, y: int8): int8">`xor`(x, y: int8): int8</a></li> | |
<li><a class="reference" href="#xor%2Cint16%2Cint16" | |
title="`xor`(x, y: int16): int16">`xor`(x, y: int16): int16</a></li> | |
<li><a class="reference" href="#xor%2Cint32%2Cint32" | |
title="`xor`(x, y: int32): int32">`xor`(x, y: int32): int32</a></li> | |
<li><a class="reference" href="#xor%2Cint64%2Cint64" | |
title="`xor`(x, y: int64): int64">`xor`(x, y: int64): int64</a></li> | |
<li><a class="reference" href="#xor%2Cuint%2Cuint" | |
title="`xor`(x, y: uint): uint">`xor`(x, y: uint): uint</a></li> | |
<li><a class="reference" href="#xor%2Cuint8%2Cuint8" | |
title="`xor`(x, y: uint8): uint8">`xor`(x, y: uint8): uint8</a></li> | |
<li><a class="reference" href="#xor%2Cuint16%2Cuint16" | |
title="`xor`(x, y: uint16): uint16">`xor`(x, y: uint16): uint16</a></li> | |
<li><a class="reference" href="#xor%2Cuint32%2Cuint32" | |
title="`xor`(x, y: uint32): uint32">`xor`(x, y: uint32): uint32</a></li> | |
<li><a class="reference" href="#xor%2Cuint64%2Cuint64" | |
title="`xor`(x, y: uint64): uint64">`xor`(x, y: uint64): uint64</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">newString | |
<li><a class="reference" href="#newString%2CNatural" | |
title="newString(len: Natural): string">newString(len: Natural): string</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">GC_ref | |
<li><a class="reference" href="#GC_ref%2Cref.T" | |
title="GC_ref[T](x: ref T)">GC_ref[T](x: ref T)</a></li> | |
<li><a class="reference" href="#GC_ref%2Cseq%5BT%5D" | |
title="GC_ref[T](x: seq[T])">GC_ref[T](x: seq[T])</a></li> | |
<li><a class="reference" href="#GC_ref%2Cstring" | |
title="GC_ref(x: string)">GC_ref(x: string)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">GC_enableMarkAndSweep | |
<li><a class="reference" href="#GC_enableMarkAndSweep" | |
title="GC_enableMarkAndSweep()">GC_enableMarkAndSweep()</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">newSeqUninitialized | |
<li><a class="reference" href="#newSeqUninitialized%2CNatural" | |
title="newSeqUninitialized[T: SomeNumber](len: Natural): seq[T]">newSeqUninitialized[T: SomeNumber](len: Natural): seq[T]</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">sizeof | |
<li><a class="reference" href="#sizeof%2CT" | |
title="sizeof[T](x: T): int">sizeof[T](x: T): int</a></li> | |
<li><a class="reference" href="#sizeof%2Ctypedesc" | |
title="sizeof(x: typedesc): int">sizeof(x: typedesc): int</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">or | |
<li><a class="reference" href="#or%2Cbool%2Cbool" | |
title="`or`(x, y: bool): bool">`or`(x, y: bool): bool</a></li> | |
<li><a class="reference" href="#or%2Ctypedesc%2Ctypedesc" | |
title="`or`(a, b: typedesc): typedesc">`or`(a, b: typedesc): typedesc</a></li> | |
<li><a class="reference" href="#or%2Cint%2Cint" | |
title="`or`(x, y: int): int">`or`(x, y: int): int</a></li> | |
<li><a class="reference" href="#or%2Cint8%2Cint8" | |
title="`or`(x, y: int8): int8">`or`(x, y: int8): int8</a></li> | |
<li><a class="reference" href="#or%2Cint16%2Cint16" | |
title="`or`(x, y: int16): int16">`or`(x, y: int16): int16</a></li> | |
<li><a class="reference" href="#or%2Cint32%2Cint32" | |
title="`or`(x, y: int32): int32">`or`(x, y: int32): int32</a></li> | |
<li><a class="reference" href="#or%2Cint64%2Cint64" | |
title="`or`(x, y: int64): int64">`or`(x, y: int64): int64</a></li> | |
<li><a class="reference" href="#or%2Cuint%2Cuint" | |
title="`or`(x, y: uint): uint">`or`(x, y: uint): uint</a></li> | |
<li><a class="reference" href="#or%2Cuint8%2Cuint8" | |
title="`or`(x, y: uint8): uint8">`or`(x, y: uint8): uint8</a></li> | |
<li><a class="reference" href="#or%2Cuint16%2Cuint16" | |
title="`or`(x, y: uint16): uint16">`or`(x, y: uint16): uint16</a></li> | |
<li><a class="reference" href="#or%2Cuint32%2Cuint32" | |
title="`or`(x, y: uint32): uint32">`or`(x, y: uint32): uint32</a></li> | |
<li><a class="reference" href="#or%2Cuint64%2Cuint64" | |
title="`or`(x, y: uint64): uint64">`or`(x, y: uint64): uint64</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">copyMem | |
<li><a class="reference" href="#copyMem%2Cpointer%2Cpointer%2CNatural" | |
title="copyMem(dest, source: pointer; size: Natural)">copyMem(dest, source: pointer; size: Natural)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">gcInvariant | |
<li><a class="reference" href="#gcInvariant" | |
title="gcInvariant()">gcInvariant()</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">GC_enable | |
<li><a class="reference" href="#GC_enable" | |
title="GC_enable()">GC_enable()</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">is | |
<li><a class="reference" href="#is%2CT%2CS" | |
title="`is`[T, S](x: T; y: S): bool">`is`[T, S](x: T; y: S): bool</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">realloc0Impl | |
<li><a class="reference" href="#realloc0Impl%2Cpointer%2CNatural%2CNatural" | |
title="realloc0Impl(p: pointer; oldSize, newSize: Natural): pointer">realloc0Impl(p: pointer; oldSize, newSize: Natural): pointer</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">getStackTrace | |
<li><a class="reference" href="#getStackTrace" | |
title="getStackTrace(): string">getStackTrace(): string</a></li> | |
<li><a class="reference" href="#getStackTrace%2Cref.Exception" | |
title="getStackTrace(e: ref Exception): string">getStackTrace(e: ref Exception): string</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">find | |
<li><a class="reference" href="#find%2CT%2CS" | |
title="find[T, S](a: T; item: S): int">find[T, S](a: T; item: S): int</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">pred | |
<li><a class="reference" href="#pred%2CT%2Cint" | |
title="pred[T: Ordinal](x: T; y = 1): T">pred[T: Ordinal](x: T; y = 1): T</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">not | |
<li><a class="reference" href="#not%2Cbool" | |
title="`not`(x: bool): bool">`not`(x: bool): bool</a></li> | |
<li><a class="reference" href="#not%2Ctypedesc" | |
title="`not`(a: typedesc): typedesc">`not`(a: typedesc): typedesc</a></li> | |
<li><a class="reference" href="#not%2Cint" | |
title="`not`(x: int): int">`not`(x: int): int</a></li> | |
<li><a class="reference" href="#not%2Cint8" | |
title="`not`(x: int8): int8">`not`(x: int8): int8</a></li> | |
<li><a class="reference" href="#not%2Cint16" | |
title="`not`(x: int16): int16">`not`(x: int16): int16</a></li> | |
<li><a class="reference" href="#not%2Cint32" | |
title="`not`(x: int32): int32">`not`(x: int32): int32</a></li> | |
<li><a class="reference" href="#not%2Cint64" | |
title="`not`(x: int64): int64">`not`(x: int64): int64</a></li> | |
<li><a class="reference" href="#not%2Cuint" | |
title="`not`(x: uint): uint">`not`(x: uint): uint</a></li> | |
<li><a class="reference" href="#not%2Cuint8" | |
title="`not`(x: uint8): uint8">`not`(x: uint8): uint8</a></li> | |
<li><a class="reference" href="#not%2Cuint16" | |
title="`not`(x: uint16): uint16">`not`(x: uint16): uint16</a></li> | |
<li><a class="reference" href="#not%2Cuint32" | |
title="`not`(x: uint32): uint32">`not`(x: uint32): uint32</a></li> | |
<li><a class="reference" href="#not%2Cuint64" | |
title="`not`(x: uint64): uint64">`not`(x: uint64): uint64</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">zeroMem | |
<li><a class="reference" href="#zeroMem%2Cpointer%2CNatural" | |
title="zeroMem(p: pointer; size: Natural)">zeroMem(p: pointer; size: Natural)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">getFreeMem | |
<li><a class="reference" href="#getFreeMem" | |
title="getFreeMem(): int">getFreeMem(): int</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">shl | |
<li><a class="reference" href="#shl%2Cint%2CSomeInteger" | |
title="`shl`(x: int; y: SomeInteger): int">`shl`(x: int; y: SomeInteger): int</a></li> | |
<li><a class="reference" href="#shl%2Cint8%2CSomeInteger" | |
title="`shl`(x: int8; y: SomeInteger): int8">`shl`(x: int8; y: SomeInteger): int8</a></li> | |
<li><a class="reference" href="#shl%2Cint16%2CSomeInteger" | |
title="`shl`(x: int16; y: SomeInteger): int16">`shl`(x: int16; y: SomeInteger): int16</a></li> | |
<li><a class="reference" href="#shl%2Cint32%2CSomeInteger" | |
title="`shl`(x: int32; y: SomeInteger): int32">`shl`(x: int32; y: SomeInteger): int32</a></li> | |
<li><a class="reference" href="#shl%2Cint64%2CSomeInteger" | |
title="`shl`(x: int64; y: SomeInteger): int64">`shl`(x: int64; y: SomeInteger): int64</a></li> | |
<li><a class="reference" href="#shl%2Cuint%2CSomeInteger" | |
title="`shl`(x: uint; y: SomeInteger): uint">`shl`(x: uint; y: SomeInteger): uint</a></li> | |
<li><a class="reference" href="#shl%2Cuint8%2CSomeInteger" | |
title="`shl`(x: uint8; y: SomeInteger): uint8">`shl`(x: uint8; y: SomeInteger): uint8</a></li> | |
<li><a class="reference" href="#shl%2Cuint16%2CSomeInteger" | |
title="`shl`(x: uint16; y: SomeInteger): uint16">`shl`(x: uint16; y: SomeInteger): uint16</a></li> | |
<li><a class="reference" href="#shl%2Cuint32%2CSomeInteger" | |
title="`shl`(x: uint32; y: SomeInteger): uint32">`shl`(x: uint32; y: SomeInteger): uint32</a></li> | |
<li><a class="reference" href="#shl%2Cuint64%2CSomeInteger" | |
title="`shl`(x: uint64; y: SomeInteger): uint64">`shl`(x: uint64; y: SomeInteger): uint64</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">[] | |
<li><a class="reference" href="#%5B%5D%2CT%2CI" | |
title="`[]`[I: Ordinal; T](a: T; i: I): T">`[]`[I: Ordinal; T](a: T; i: I): T</a></li> | |
<li><a class="reference" href="#%5B%5D%2Cstring%2CHSlice%5BT%2CU%5D" | |
title="`[]`[T, U](s: string; x: HSlice[T, U]): string">`[]`[T, U](s: string; x: HSlice[T, U]): string</a></li> | |
<li><a class="reference" href="#%5B%5D%2Carray%5BIdx%2CT%5D%2CHSlice%5BU%2CV%5D" | |
title="`[]`[Idx, T, U, V](a: array[Idx, T]; x: HSlice[U, V]): seq[T]">`[]`[Idx, T, U, V](a: array[Idx, T]; x: HSlice[U, V]): seq[T]</a></li> | |
<li><a class="reference" href="#%5B%5D%2CopenArray%5BT%5D%2CHSlice%5BU%2CV%5D" | |
title="`[]`[T, U, V](s: openArray[T]; x: HSlice[U, V]): seq[T]">`[]`[T, U, V](s: openArray[T]; x: HSlice[U, V]): seq[T]</a></li> | |
<li><a class="reference" href="#%5B%5D%2CopenArray%5BT%5D%2CBackwardsIndex" | |
title="`[]`[T](s: openArray[T]; i: BackwardsIndex): T">`[]`[T](s: openArray[T]; i: BackwardsIndex): T</a></li> | |
<li><a class="reference" href="#%5B%5D%2Carray%5BIdx%2CT%5D%2CBackwardsIndex" | |
title="`[]`[Idx, T](a: array[Idx, T]; i: BackwardsIndex): T">`[]`[Idx, T](a: array[Idx, T]; i: BackwardsIndex): T</a></li> | |
<li><a class="reference" href="#%5B%5D%2Cstring%2CBackwardsIndex" | |
title="`[]`(s: string; i: BackwardsIndex): char">`[]`(s: string; i: BackwardsIndex): char</a></li> | |
<li><a class="reference" href="#%5B%5D%2CopenArray%5BT%5D%2CBackwardsIndex_2" | |
title="`[]`[T](s: var openArray[T]; i: BackwardsIndex): var T">`[]`[T](s: var openArray[T]; i: BackwardsIndex): var T</a></li> | |
<li><a class="reference" href="#%5B%5D%2Carray%5BIdx%2CT%5D%2CBackwardsIndex_2" | |
title="`[]`[Idx, T](a: var array[Idx, T]; i: BackwardsIndex): var T">`[]`[Idx, T](a: var array[Idx, T]; i: BackwardsIndex): var T</a></li> | |
<li><a class="reference" href="#%5B%5D%2Cstring%2CBackwardsIndex_2" | |
title="`[]`(s: var string; i: BackwardsIndex): var char">`[]`(s: var string; i: BackwardsIndex): var char</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">isNotForeign | |
<li><a class="reference" href="#isNotForeign%2CForeignCell" | |
title="isNotForeign(x: ForeignCell): bool">isNotForeign(x: ForeignCell): bool</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">alignof | |
<li><a class="reference" href="#alignof%2CT" | |
title="alignof[T](x: T): int">alignof[T](x: T): int</a></li> | |
<li><a class="reference" href="#alignof%2Ctypedesc" | |
title="alignof(x: typedesc): int">alignof(x: typedesc): int</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">GC_disableMarkAndSweep | |
<li><a class="reference" href="#GC_disableMarkAndSweep" | |
title="GC_disableMarkAndSweep()">GC_disableMarkAndSweep()</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">rawEnv | |
<li><a class="reference" href="#rawEnv%2CT" | |
title="rawEnv[T: proc](x: T): pointer">rawEnv[T: proc](x: T): pointer</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">new | |
<li><a class="reference" href="#new%2Cref.T%2Cproc%28ref.T%29" | |
title="new[T](a: var ref T; finalizer: proc (x: ref T) {.nimcall.})">new[T](a: var ref T; finalizer: proc (x: ref T) {.nimcall.})</a></li> | |
<li><a class="reference" href="#new%2Cref.T" | |
title="new[T](a: var ref T)">new[T](a: var ref T)</a></li> | |
<li><a class="reference" href="#new%2Ctypedesc" | |
title="new(t: typedesc): auto">new(t: typedesc): auto</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">repr | |
<li><a class="reference" href="#repr%2CT" | |
title="repr[T](x: T): string">repr[T](x: T): string</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">high | |
<li><a class="reference" href="#high%2CT" | |
title="high[T: Ordinal | enum | range](x: T): T">high[T: Ordinal | enum | range](x: T): T</a></li> | |
<li><a class="reference" href="#high%2Ctypedesc%5BT%5D" | |
title="high[T: Ordinal | enum | range](x: typedesc[T]): T">high[T: Ordinal | enum | range](x: typedesc[T]): T</a></li> | |
<li><a class="reference" href="#high%2CopenArray%5BT%5D" | |
title="high[T](x: openArray[T]): int">high[T](x: openArray[T]): int</a></li> | |
<li><a class="reference" href="#high%2Carray%5BI%2CT%5D" | |
title="high[I, T](x: array[I, T]): I">high[I, T](x: array[I, T]): I</a></li> | |
<li><a class="reference" href="#high%2Ctypedesc%5Barray%5BI%2CT%5D%5D" | |
title="high[I, T](x: typedesc[array[I, T]]): I">high[I, T](x: typedesc[array[I, T]]): I</a></li> | |
<li><a class="reference" href="#high%2Ccstring" | |
title="high(x: cstring): int">high(x: cstring): int</a></li> | |
<li><a class="reference" href="#high%2Cstring" | |
title="high(x: string): int">high(x: string): int</a></li> | |
<li><a class="reference" href="#high%2Ctypedesc%5BSomeFloat%5D" | |
title="high(T: typedesc[SomeFloat]): T:type">high(T: typedesc[SomeFloat]): T:type</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">< | |
<li><a class="reference" href="#%3C%2CEnum%2CEnum" | |
title="`<`[Enum: enum](x, y: Enum): bool">`<`[Enum: enum](x, y: Enum): bool</a></li> | |
<li><a class="reference" href="#%3C%2Cstring%2Cstring" | |
title="`<`(x, y: string): bool">`<`(x, y: string): bool</a></li> | |
<li><a class="reference" href="#%3C%2Cchar%2Cchar" | |
title="`<`(x, y: char): bool">`<`(x, y: char): bool</a></li> | |
<li><a class="reference" href="#%3C%2Cset%5BT%5D%2Cset%5BT%5D" | |
title="`<`[T](x, y: set[T]): bool">`<`[T](x, y: set[T]): bool</a></li> | |
<li><a class="reference" href="#%3C%2Cbool%2Cbool" | |
title="`<`(x, y: bool): bool">`<`(x, y: bool): bool</a></li> | |
<li><a class="reference" href="#%3C%2Cref.T%2Cref.T" | |
title="`<`[T](x, y: ref T): bool">`<`[T](x, y: ref T): bool</a></li> | |
<li><a class="reference" href="#%3C%2Cptr.T%2Cptr.T" | |
title="`<`[T](x, y: ptr T): bool">`<`[T](x, y: ptr T): bool</a></li> | |
<li><a class="reference" href="#%3C%2Cpointer%2Cpointer" | |
title="`<`(x, y: pointer): bool">`<`(x, y: pointer): bool</a></li> | |
<li><a class="reference" href="#%3C%2Cint%2Cint" | |
title="`<`(x, y: int): bool">`<`(x, y: int): bool</a></li> | |
<li><a class="reference" href="#%3C%2Cint8%2Cint8" | |
title="`<`(x, y: int8): bool">`<`(x, y: int8): bool</a></li> | |
<li><a class="reference" href="#%3C%2Cint16%2Cint16" | |
title="`<`(x, y: int16): bool">`<`(x, y: int16): bool</a></li> | |
<li><a class="reference" href="#%3C%2Cint32%2Cint32" | |
title="`<`(x, y: int32): bool">`<`(x, y: int32): bool</a></li> | |
<li><a class="reference" href="#%3C%2Cint64%2Cint64" | |
title="`<`(x, y: int64): bool">`<`(x, y: int64): bool</a></li> | |
<li><a class="reference" href="#%3C%2Cuint%2Cuint" | |
title="`<`(x, y: uint): bool">`<`(x, y: uint): bool</a></li> | |
<li><a class="reference" href="#%3C%2Cuint8%2Cuint8" | |
title="`<`(x, y: uint8): bool">`<`(x, y: uint8): bool</a></li> | |
<li><a class="reference" href="#%3C%2Cuint16%2Cuint16" | |
title="`<`(x, y: uint16): bool">`<`(x, y: uint16): bool</a></li> | |
<li><a class="reference" href="#%3C%2Cuint32%2Cuint32" | |
title="`<`(x, y: uint32): bool">`<`(x, y: uint32): bool</a></li> | |
<li><a class="reference" href="#%3C%2Cuint64%2Cuint64" | |
title="`<`(x, y: uint64): bool">`<`(x, y: uint64): bool</a></li> | |
<li><a class="reference" href="#%3C%2Cfloat32%2Cfloat32" | |
title="`<`(x, y: float32): bool">`<`(x, y: float32): bool</a></li> | |
<li><a class="reference" href="#%3C%2Cfloat%2Cfloat" | |
title="`<`(x, y: float): bool">`<`(x, y: float): bool</a></li> | |
<li><a class="reference" href="#%3C%2CT%2CT" | |
title="`<`[T: tuple](x, y: T): bool">`<`[T: tuple](x, y: T): bool</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">succ | |
<li><a class="reference" href="#succ%2CT%2Cint" | |
title="succ[T: Ordinal](x: T; y = 1): T">succ[T: Ordinal](x: T; y = 1): T</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">max | |
<li><a class="reference" href="#max%2Cint%2Cint" | |
title="max(x, y: int): int">max(x, y: int): int</a></li> | |
<li><a class="reference" href="#max%2Cint8%2Cint8" | |
title="max(x, y: int8): int8">max(x, y: int8): int8</a></li> | |
<li><a class="reference" href="#max%2Cint16%2Cint16" | |
title="max(x, y: int16): int16">max(x, y: int16): int16</a></li> | |
<li><a class="reference" href="#max%2Cint32%2Cint32" | |
title="max(x, y: int32): int32">max(x, y: int32): int32</a></li> | |
<li><a class="reference" href="#max%2Cint64%2Cint64" | |
title="max(x, y: int64): int64">max(x, y: int64): int64</a></li> | |
<li><a class="reference" href="#max%2CopenArray%5BT%5D" | |
title="max[T](x: openArray[T]): T">max[T](x: openArray[T]): T</a></li> | |
<li><a class="reference" href="#max%2Cfloat32%2Cfloat32" | |
title="max(x, y: float32): float32">max(x, y: float32): float32</a></li> | |
<li><a class="reference" href="#max%2Cfloat64%2Cfloat64" | |
title="max(x, y: float64): float64">max(x, y: float64): float64</a></li> | |
<li><a class="reference" href="#max%2CT%2CT" | |
title="max[T: not SomeFloat](x, y: T): T">max[T: not SomeFloat](x, y: T): T</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">iterToProc | |
<li><a class="reference" href="#iterToProc%2Ctyped%2Ctypedesc%2Cuntyped" | |
title="iterToProc(iter: typed; envType: typedesc; procName: untyped)">iterToProc(iter: typed; envType: typedesc; procName: untyped)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">tearDownForeignThreadGc | |
<li><a class="reference" href="#tearDownForeignThreadGc" | |
title="tearDownForeignThreadGc()">tearDownForeignThreadGc()</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">= | |
<li><a class="reference" href="#%3D%2CT%2CT" | |
title="`=`[T](dest: var T; src: T)">`=`[T](dest: var T; src: T)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">default | |
<li><a class="reference" href="#default%2Ctypedesc" | |
title="default(T: typedesc): T:type">default(T: typedesc): T:type</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">GC_fullCollect | |
<li><a class="reference" href="#GC_fullCollect" | |
title="GC_fullCollect()">GC_fullCollect()</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">addQuoted | |
<li><a class="reference" href="#addQuoted%2Cstring%2CT" | |
title="addQuoted[T](s: var string; x: T)">addQuoted[T](s: var string; x: T)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">nimGC_setStackBottom | |
<li><a class="reference" href="#nimGC_setStackBottom%2Cpointer" | |
title="nimGC_setStackBottom(theStackBottom: pointer)">nimGC_setStackBottom(theStackBottom: pointer)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">getOccupiedMem | |
<li><a class="reference" href="#getOccupiedMem" | |
title="getOccupiedMem(): int">getOccupiedMem(): int</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">toU32 | |
<li><a class="reference" href="#toU32%2Cint64" | |
title="toU32(x: int64): int32">toU32(x: int64): int32</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">setFrame | |
<li><a class="reference" href="#setFrame%2CPFrame" | |
title="setFrame(s: PFrame)">setFrame(s: PFrame)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">atomicInc | |
<li><a class="reference" href="#atomicInc%2Cint%2Cint" | |
title="atomicInc(memLoc: var int; x: int = 1): int">atomicInc(memLoc: var int; x: int = 1): int</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">ord | |
<li><a class="reference" href="#ord%2CT" | |
title="ord[T: Ordinal | enum](x: T): int">ord[T: Ordinal | enum](x: T): int</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">*= | |
<li><a class="reference" href="#%2A%3D%2CT%2CT" | |
title="`*=`[T: SomeInteger](x: var T; y: T)">`*=`[T: SomeInteger](x: var T; y: T)</a></li> | |
<li><a class="reference" href="#%2A%3D%2CT%2CT_2" | |
title="`*=`[T: float | float32 | float64](x: var T; y: T)">`*=`[T: float | float32 | float64](x: var T; y: T)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">GC_disable | |
<li><a class="reference" href="#GC_disable" | |
title="GC_disable()">GC_disable()</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">createShared | |
<li><a class="reference" href="#createShared%2Ctypedesc" | |
title="createShared(T: typedesc; size = 1.Positive): ptr T:type">createShared(T: typedesc; size = 1.Positive): ptr T:type</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">stackTraceAvailable | |
<li><a class="reference" href="#stackTraceAvailable" | |
title="stackTraceAvailable(): bool">stackTraceAvailable(): bool</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">shallowCopy | |
<li><a class="reference" href="#shallowCopy%2CT%2CT" | |
title="shallowCopy[T](x: var T; y: T)">shallowCopy[T](x: var T; y: T)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">GC_getStatistics | |
<li><a class="reference" href="#GC_getStatistics" | |
title="GC_getStatistics(): string">GC_getStatistics(): string</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">swap | |
<li><a class="reference" href="#swap%2CT%2CT" | |
title="swap[T](a, b: var T)">swap[T](a, b: var T)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">toFloat | |
<li><a class="reference" href="#toFloat%2Cint" | |
title="toFloat(i: int): float">toFloat(i: int): float</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">create | |
<li><a class="reference" href="#create%2Ctypedesc" | |
title="create(T: typedesc; size = 1.Positive): ptr T:type">create(T: typedesc; size = 1.Positive): ptr T:type</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">slurp | |
<li><a class="reference" href="#slurp%2Cstring" | |
title="slurp(filename: string): string">slurp(filename: string): string</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">=destroy | |
<li><a class="reference" href="#%3Ddestroy%2CT" | |
title="`=destroy`[T](x: var T)">`=destroy`[T](x: var T)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">createU | |
<li><a class="reference" href="#createU%2Ctypedesc" | |
title="createU(T: typedesc; size = 1.Positive): ptr T:type">createU(T: typedesc; size = 1.Positive): ptr T:type</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">popGcFrame | |
<li><a class="reference" href="#popGcFrame" | |
title="popGcFrame()">popGcFrame()</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">astToStr | |
<li><a class="reference" href="#astToStr%2CT" | |
title="astToStr[T](x: T): string">astToStr[T](x: T): string</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">getAllocStats | |
<li><a class="reference" href="#getAllocStats" | |
title="getAllocStats(): AllocStats">getAllocStats(): AllocStats</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">addFloat | |
<li><a class="reference" href="#addFloat%2Cstring%2Cfloat" | |
title="addFloat(result: var string; x: float)">addFloat(result: var string; x: float)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">-% | |
<li><a class="reference" href="#-%25%2Cint%2Cint" | |
title="`-%`(x, y: int): int">`-%`(x, y: int): int</a></li> | |
<li><a class="reference" href="#-%25%2Cint8%2Cint8" | |
title="`-%`(x, y: int8): int8">`-%`(x, y: int8): int8</a></li> | |
<li><a class="reference" href="#-%25%2Cint16%2Cint16" | |
title="`-%`(x, y: int16): int16">`-%`(x, y: int16): int16</a></li> | |
<li><a class="reference" href="#-%25%2Cint32%2Cint32" | |
title="`-%`(x, y: int32): int32">`-%`(x, y: int32): int32</a></li> | |
<li><a class="reference" href="#-%25%2Cint64%2Cint64" | |
title="`-%`(x, y: int64): int64">`-%`(x, y: int64): int64</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">/= | |
<li><a class="reference" href="#%2F%3D%2Cfloat64%2Cfloat64" | |
title="`/=`(x: var float64; y: float64)">`/=`(x: var float64; y: float64)</a></li> | |
<li><a class="reference" href="#%2F%3D%2CT%2CT" | |
title="`/=`[T: float | float32](x: var T; y: T)">`/=`[T: float | float32](x: var T; y: T)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">abs | |
<li><a class="reference" href="#abs%2CT" | |
title="abs[T: float64 | float32](x: T): T">abs[T: float64 | float32](x: T): T</a></li> | |
<li><a class="reference" href="#abs%2Cint" | |
title="abs(x: int): int">abs(x: int): int</a></li> | |
<li><a class="reference" href="#abs%2Cint8" | |
title="abs(x: int8): int8">abs(x: int8): int8</a></li> | |
<li><a class="reference" href="#abs%2Cint16" | |
title="abs(x: int16): int16">abs(x: int16): int16</a></li> | |
<li><a class="reference" href="#abs%2Cint32" | |
title="abs(x: int32): int32">abs(x: int32): int32</a></li> | |
<li><a class="reference" href="#abs%2Cint64" | |
title="abs(x: int64): int64">abs(x: int64): int64</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">== | |
<li><a class="reference" href="#%3D%3D%2CEnum%2CEnum" | |
title="`==`[Enum: enum](x, y: Enum): bool">`==`[Enum: enum](x, y: Enum): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2Cpointer%2Cpointer" | |
title="`==`(x, y: pointer): bool">`==`(x, y: pointer): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2Cstring%2Cstring" | |
title="`==`(x, y: string): bool">`==`(x, y: string): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2Cchar%2Cchar" | |
title="`==`(x, y: char): bool">`==`(x, y: char): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2Cbool%2Cbool" | |
title="`==`(x, y: bool): bool">`==`(x, y: bool): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2Cset%5BT%5D%2Cset%5BT%5D" | |
title="`==`[T](x, y: set[T]): bool">`==`[T](x, y: set[T]): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2Cref.T%2Cref.T" | |
title="`==`[T](x, y: ref T): bool">`==`[T](x, y: ref T): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2Cptr.T%2Cptr.T" | |
title="`==`[T](x, y: ptr T): bool">`==`[T](x, y: ptr T): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2CT%2CT" | |
title="`==`[T: proc](x, y: T): bool">`==`[T: proc](x, y: T): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2Cint%2Cint" | |
title="`==`(x, y: int): bool">`==`(x, y: int): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2Cint8%2Cint8" | |
title="`==`(x, y: int8): bool">`==`(x, y: int8): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2Cint16%2Cint16" | |
title="`==`(x, y: int16): bool">`==`(x, y: int16): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2Cint32%2Cint32" | |
title="`==`(x, y: int32): bool">`==`(x, y: int32): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2Cint64%2Cint64" | |
title="`==`(x, y: int64): bool">`==`(x, y: int64): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2Cuint%2Cuint" | |
title="`==`(x, y: uint): bool">`==`(x, y: uint): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2Cuint8%2Cuint8" | |
title="`==`(x, y: uint8): bool">`==`(x, y: uint8): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2Cuint16%2Cuint16" | |
title="`==`(x, y: uint16): bool">`==`(x, y: uint16): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2Cuint32%2Cuint32" | |
title="`==`(x, y: uint32): bool">`==`(x, y: uint32): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2Cuint64%2Cuint64" | |
title="`==`(x, y: uint64): bool">`==`(x, y: uint64): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2Carray%5BI%2CT%5D%2Carray%5BI%2CT%5D" | |
title="`==`[I, T](x, y: array[I, T]): bool">`==`[I, T](x, y: array[I, T]): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2CopenArray%5BT%5D%2CopenArray%5BT%5D" | |
title="`==`[T](x, y: openArray[T]): bool">`==`[T](x, y: openArray[T]): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2Cseq%5BT%5D%2Cseq%5BT%5D" | |
title="`==`[T](x, y: seq[T]): bool">`==`[T](x, y: seq[T]): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2Cfloat32%2Cfloat32" | |
title="`==`(x, y: float32): bool">`==`(x, y: float32): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2Cfloat%2Cfloat" | |
title="`==`(x, y: float): bool">`==`(x, y: float): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2CT%2CT_2" | |
title="`==`[T: tuple | object](x, y: T): bool">`==`[T: tuple | object](x, y: T): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2Ccstring%2Ccstring" | |
title="`==`(x, y: cstring): bool">`==`(x, y: cstring): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2Cstring%2C" | |
title="`==`(x: string; y: type(nil) | type(nil)): bool">`==`(x: string; y: type(nil) | type(nil)): bool</a></li> | |
<li><a class="reference" href="#%3D%3D%2C%2Cstring" | |
title="`==`(x: type(nil) | type(nil); y: string): bool">`==`(x: type(nil) | type(nil); y: string): bool</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">deallocCStringArray | |
<li><a class="reference" href="#deallocCStringArray%2CcstringArray" | |
title="deallocCStringArray(a: cstringArray)">deallocCStringArray(a: cstringArray)</a></li> | |
</ul> | |
<ul class="simple nested-toc-section">unsafeNew | |
<li><a class="reference" href="#unsafeNew%2Cref.T%2CNatural" | |
title="unsafeNew[T](a: var ref T; size: Natural)">unsafeNew[T](a: var ref T; size: Natural)</a></li> | |
</ul> | |
</ul> | |
</li> | |
<li> | |
<a class="reference reference-toplevel" href="#15" id="65">Iterators</a> | |
<ul class="simple simple-toc-section"> | |
<li><a class="reference" href="#countdown.i%2CT%2CT%2CPositive" | |
title="countdown[T](a, b: T; step: Positive = 1): T">countdown</a></li> | |
<li><a class="reference" href="#countup.i%2CT%2CT%2CPositive" | |
title="countup[T](a, b: T; step: Positive = 1): T">countup</a></li> | |
<li><a class="reference" href="#...i%2CT%2CT" | |
title="`..`[T](a, b: T): T">`..`</a></li> | |
<li><a class="reference" href="#...i%2Cint64%2Cint64" | |
title="`..`(a, b: int64): int64">`..`</a></li> | |
<li><a class="reference" href="#...i%2Cint32%2Cint32" | |
title="`..`(a, b: int32): int32">`..`</a></li> | |
<li><a class="reference" href="#...i%2Cuint64%2Cuint64" | |
title="`..`(a, b: uint64): uint64">`..`</a></li> | |
<li><a class="reference" href="#...i%2Cuint32%2Cuint32" | |
title="`..`(a, b: uint32): uint32">`..`</a></li> | |
<li><a class="reference" href="#..%3C.i%2CT%2CT" | |
title="`..<`[T](a, b: T): T">`..<`</a></li> | |
<li><a class="reference" href="#..%3C.i%2Cint64%2Cint64" | |
title="`..<`(a, b: int64): int64">`..<`</a></li> | |
<li><a class="reference" href="#..%3C.i%2Cint32%2Cint32" | |
title="`..<`(a, b: int32): int32">`..<`</a></li> | |
<li><a class="reference" href="#..%3C.i%2Cuint64%2Cuint64" | |
title="`..<`(a, b: uint64): uint64">`..<`</a></li> | |
<li><a class="reference" href="#..%3C.i%2Cuint32%2Cuint32" | |
title="`..<`(a, b: uint32): uint32">`..<`</a></li> | |
<li><a class="reference" href="#%7C%7C.i%2CS%2CT%2Cstaticstring" | |
title="`||`[S, T](a: S; b: T; annotation: static string = "parallel for"): T">`||`</a></li> | |
<li><a class="reference" href="#%7C%7C.i%2CS%2CT%2CPositive%2Cstaticstring" | |
title="`||`[S, T](a: S; b: T; step: Positive; | |
annotation: static string = "parallel for"): T">`||`</a></li> | |
</ul> | |
</li> | |
<li> | |
<a class="reference reference-toplevel" href="#17" id="67">Macros</a> | |
<ul class="simple simple-toc-section"> | |
<li><a class="reference" href="#varargsLen.m%2Cvarargs%5Buntyped%5D" | |
title="varargsLen(x: varargs[untyped]): int">varargsLen</a></li> | |
</ul> | |
</li> | |
<li> | |
<a class="reference reference-toplevel" href="#18" id="68">Templates</a> | |
<ul class="simple simple-toc-section"> | |
<li><a class="reference" href="#%21%3D.t%2Cuntyped%2Cuntyped" | |
title="`!=`(x, y: untyped): untyped">`!=`</a></li> | |
<li><a class="reference" href="#%3E%3D.t%2Cuntyped%2Cuntyped" | |
title="`>=`(x, y: untyped): untyped">`>=`</a></li> | |
<li><a class="reference" href="#%3E.t%2Cuntyped%2Cuntyped" | |
title="`>`(x, y: untyped): untyped">`>`</a></li> | |
<li><a class="reference" href="#%3E%3D%25.t%2Cuntyped%2Cuntyped" | |
title="`>=%`(x, y: untyped): untyped">`>=%`</a></li> | |
<li><a class="reference" href="#%3E%25.t%2Cuntyped%2Cuntyped" | |
title="`>%`(x, y: untyped): untyped">`>%`</a></li> | |
<li><a class="reference" href="#offsetOf.t%2Ctypedesc%5BT%5D%2Cuntyped" | |
title="offsetOf[T; ](t: typedesc[T]; member: untyped): int">offsetOf</a></li> | |
<li><a class="reference" href="#offsetOf.t%2CT%2Cuntyped" | |
title="offsetOf[T](value: T; member: untyped): int">offsetOf</a></li> | |
<li><a class="reference" href="#incl.t%2Cset%5BT%5D%2Cset%5BT%5D" | |
title="incl[T](x: var set[T]; y: set[T])">incl</a></li> | |
<li><a class="reference" href="#excl.t%2Cset%5BT%5D%2Cset%5BT%5D" | |
title="excl[T](x: var set[T]; y: set[T])">excl</a></li> | |
<li><a class="reference" href="#in.t%2Cuntyped%2Cuntyped" | |
title="`in`(x, y: untyped): untyped">`in`</a></li> | |
<li><a class="reference" href="#notin.t%2Cuntyped%2Cuntyped" | |
title="`notin`(x, y: untyped): untyped">`notin`</a></li> | |
<li><a class="reference" href="#isnot.t%2Cuntyped%2Cuntyped" | |
title="`isnot`(x, y: untyped): untyped">`isnot`</a></li> | |
<li><a class="reference" href="#unown.t%2Ctyped" | |
title="unown(x: typed): untyped">unown</a></li> | |
<li><a class="reference" href="#%3C%2F%2F%3E.t%2Cuntyped" | |
title="`<//>`(t: untyped): untyped">`<//>`</a></li> | |
<li><a class="reference" href="#disarm.t%2Ctyped" | |
title="disarm(x: typed)">disarm</a></li> | |
<li><a class="reference" href="#dumpAllocstats.t%2Cuntyped" | |
title="dumpAllocstats(code: untyped)">dumpAllocstats</a></li> | |
<li><a class="reference" href="#alloc.t%2CNatural" | |
title="alloc(size: Natural): pointer">alloc</a></li> | |
<li><a class="reference" href="#alloc0.t%2CNatural" | |
title="alloc0(size: Natural): pointer">alloc0</a></li> | |
<li><a class="reference" href="#realloc.t%2Cpointer%2CNatural" | |
title="realloc(p: pointer; newSize: Natural): pointer">realloc</a></li> | |
<li><a class="reference" href="#realloc0.t%2Cpointer%2CNatural%2CNatural" | |
title="realloc0(p: pointer; oldSize, newSize: Natural): pointer">realloc0</a></li> | |
<li><a class="reference" href="#allocShared.t%2CNatural" | |
title="allocShared(size: Natural): pointer">allocShared</a></li> | |
<li><a class="reference" href="#allocShared0.t%2CNatural" | |
title="allocShared0(size: Natural): pointer">allocShared0</a></li> | |
<li><a class="reference" href="#reallocShared.t%2Cpointer%2CNatural" | |
title="reallocShared(p: pointer; newSize: Natural): pointer">reallocShared</a></li> | |
<li><a class="reference" href="#reallocShared0.t%2Cpointer%2CNatural%2CNatural" | |
title="reallocShared0(p: pointer; oldSize, newSize: Natural): pointer">reallocShared0</a></li> | |
<li><a class="reference" href="#newException.t%2Ctypedesc%2Cstring%2Cref.Exception" | |
title="newException(exceptn: typedesc; message: string; | |
parentException: ref Exception = nil): untyped">newException</a></li> | |
<li><a class="reference" href="#likely.t%2Cbool" | |
title="likely(val: bool): bool">likely</a></li> | |
<li><a class="reference" href="#unlikely.t%2Cbool" | |
title="unlikely(val: bool): bool">unlikely</a></li> | |
<li><a class="reference" href="#formatErrorIndexBound.t%2CT%2CT%2CT" | |
title="formatErrorIndexBound[T](i, a, b: T): string">formatErrorIndexBound</a></li> | |
<li><a class="reference" href="#formatErrorIndexBound.t%2CT%2CT" | |
title="formatErrorIndexBound[T](i, n: T): string">formatErrorIndexBound</a></li> | |
<li><a class="reference" href="#%5E.t%2Cint" | |
title="`^`(x: int): BackwardsIndex">`^`</a></li> | |
<li><a class="reference" href="#..%5E.t%2Cuntyped%2Cuntyped" | |
title="`..^`(a, b: untyped): untyped">`..^`</a></li> | |
<li><a class="reference" href="#..%3C.t%2Cuntyped%2Cuntyped" | |
title="`..<`(a, b: untyped): untyped">`..<`</a></li> | |
<li><a class="reference" href="#%5B%5D.t%2Cstring%2Cint" | |
title="`[]`(s: string; i: int): char">`[]`</a></li> | |
<li><a class="reference" href="#%5B%5D%3D.t%2Cstring%2Cint%2Cchar" | |
title="`[]=`(s: string; i: int; val: char)">`[]=`</a></li> | |
<li><a class="reference" href="#%26%3D.t%2Ctyped%2Ctyped" | |
title="`&=`(x, y: typed)">`&=`</a></li> | |
<li><a class="reference" href="#currentSourcePath.t" | |
title="currentSourcePath(): string">currentSourcePath</a></li> | |
<li><a class="reference" href="#rangeCheck.t" | |
title="rangeCheck(cond)">rangeCheck</a></li> | |
<li><a class="reference" href="#closureScope.t%2Cuntyped" | |
title="closureScope(body: untyped): untyped">closureScope</a></li> | |
<li><a class="reference" href="#once.t%2Cuntyped" | |
title="once(body: untyped): untyped">once</a></li> | |
</ul> | |
</li> | |
<li> | |
<a class="reference reference-toplevel" href="#19" id="69">Exports</a> | |
<ul class="simple simple-toc-section"> | |
</ul> | |
</li> | |
</ul> | |
</div> | |
<div class="nine columns" id="content"> | |
<div id="tocRoot"></div> | |
<p class="module-desc"><p>The compiler depends on the System module to work properly and the System module depends on the compiler. Most of the routines listed here use special compiler magic.</p> | |
<p>Each module implicitly imports the System module; it must not be listed explicitly. Because of this there cannot be a user-defined module named <tt class="docutils literal"><span class="pre">system</span></tt>.</p> | |
<h1><a class="toc-backref" id="system-module" href="#system-module">System module</a></h1>The System module imports several separate modules, and their documentation is in separate files:<ul class="simple"><li><a class="reference external" href="iterators.html">iterators</a></li> | |
<li><a class="reference external" href="assertions.html">assertions</a></li> | |
<li><a class="reference external" href="dollars.html">dollars</a></li> | |
<li><a class="reference external" href="io.html">io</a></li> | |
<li><a class="reference external" href="widestrs.html">widestrs</a></li> | |
</ul> | |
<p>Here is a short overview of the most commonly used functions from the <tt class="docutils literal"><span class="pre">system</span></tt> module. Function names in the tables below are clickable and will take you to the full documentation of the function.</p> | |
<p>There are many more functions available than the ones listed in this overview. Use the table of contents on the left-hand side and/or <tt class="docutils literal"><span class="pre">Ctrl+F</span></tt> to navigate through this module.</p> | |
<h2><a class="toc-backref" id="system-module-strings-and-characters" href="#system-module-strings-and-characters">Strings and characters</a></h2><table border="1" class="docutils"><tr><th>Proc</th><th>Usage</th></tr> | |
<tr><td><a class="reference external" href="#len,string">len(s)</a></td><td>Return the length of a string</td></tr> | |
<tr><td><a class="reference external" href="#chr,range[]">chr(i)</a></td><td>Convert an <tt class="docutils literal"><span class="pre">int</span></tt> in the range <tt class="docutils literal"><span class="pre">0..255</span></tt> to a character</td></tr> | |
<tr><td><a class="reference external" href="#ord,T">ord(c)</a></td><td>Return <tt class="docutils literal"><span class="pre">int</span></tt> value of a character</td></tr> | |
<tr><td><a class="reference external" href="#&,string,string">a & b</a></td><td>Concatenate two strings</td></tr> | |
<tr><td><a class="reference external" href="#add,string,char">s.add(c)</a></td><td>Add character to the string</td></tr> | |
<tr><td><a class="reference external" href="dollars.html">$</a></td><td>Convert various types to string</td></tr> | |
</table><p><strong>See also:</strong></p> | |
<ul class="simple"><li><a class="reference external" href="strutils.html">strutils module</a> for common string functions</li> | |
<li><a class="reference external" href="strformat.html">strformat module</a> for string interpolation and formatting</li> | |
<li><a class="reference external" href="unicode.html">unicode module</a> for Unicode UTF-8 handling</li> | |
<li><a class="reference external" href="strscans.html">strscans</a> for <tt class="docutils literal"><span class="pre">scanf</span></tt> and <tt class="docutils literal"><span class="pre">scanp</span></tt> macros, which offer easier substring extraction than regular expressions</li> | |
<li><a class="reference external" href="strtabs.html">strtabs module</a> for efficient hash tables (dictionaries, in some programming languages) mapping from strings to strings</li> | |
</ul> | |
<h2><a class="toc-backref" id="system-module-seqs" href="#system-module-seqs">Seqs</a></h2><table border="1" class="docutils"><tr><th>Proc</th><th>Usage</th></tr> | |
<tr><td><a class="reference external" href="#newSeq">newSeq</a></td><td>Create a new sequence of a given length</td></tr> | |
<tr><td><a class="reference external" href="#newSeqOfCap,Natural">newSeqOfCap</a></td><td>Create a new sequence with zero length and a given capacity</td></tr> | |
<tr><td><a class="reference external" href="#setLen,seq[T],Natural">setLen</a></td><td>Set the length of a sequence</td></tr> | |
<tr><td><a class="reference external" href="#len,seq[T]">len</a></td><td>Return the length of a sequence</td></tr> | |
<tr><td><a class="reference external" href="#@,openArray[T]">@</a></td><td>Turn an array into a sequence</td></tr> | |
<tr><td><a class="reference external" href="#add,seq[T],sinkT">add</a></td><td>Add an item to the sequence</td></tr> | |
<tr><td><a class="reference external" href="#insert,seq[T],sinkT">insert</a></td><td>Insert an item at a specific position</td></tr> | |
<tr><td><a class="reference external" href="#delete,seq[T],Natural">delete</a></td><td>Delete an item while preserving the order of elements (<tt class="docutils literal"><span class="pre">O(n)</span></tt> operation)</td></tr> | |
<tr><td><a class="reference external" href="#del,seq[T],Natural">del</a></td><td><tt class="docutils literal"><span class="pre">O(1)</span></tt> removal, doesn't preserve the order</td></tr> | |
<tr><td><a class="reference external" href="#pop,seq[T]">pop</a></td><td>Remove and return last item of a sequence</td></tr> | |
<tr><td><a class="reference external" href="#&,seq[T],seq[T]">x & y</a></td><td>Concatenate two sequences</td></tr> | |
<tr><td><a class="reference external" href="#[],openArray[T],HSlice[U,V]">x[a .. b]</a></td><td>Slice of a sequence (both ends included)</td></tr> | |
<tr><td><a class="reference external" href="#[],openArray[T],HSlice[U,V]">x[a .. ^b]</a></td><td>Slice of a sequence but <tt class="docutils literal"><span class="pre">b</span></tt> is a reversed index (both ends included)</td></tr> | |
<tr><td><a class="reference external" href="#[],openArray[T],HSlice[U,V]">x[a ..< b]</a></td><td>Slice of a sequence (excluded upper bound)</td></tr> | |
</table><p><strong>See also:</strong></p> | |
<ul class="simple"><li><a class="reference external" href="sequtils.html">sequtils module</a> for operations on container types (including strings)</li> | |
<li><a class="reference external" href="json.html">json module</a> for a structure which allows heterogeneous members</li> | |
<li><a class="reference external" href="lists.html">lists module</a> for linked lists</li> | |
</ul> | |
<h2><a class="toc-backref" id="system-module-sets" href="#system-module-sets">Sets</a></h2><p>Built-in bit sets.</p> | |
<table border="1" class="docutils"><tr><th>Proc</th><th>Usage</th></tr> | |
<tr><td><a class="reference external" href="#incl,set[T],T">incl</a></td><td>Include element <tt class="docutils literal"><span class="pre">y</span></tt> in the set <tt class="docutils literal"><span class="pre">x</span></tt></td></tr> | |
<tr><td><a class="reference external" href="#excl,set[T],T">excl</a></td><td>Exclude element <tt class="docutils literal"><span class="pre">y</span></tt> from the set <tt class="docutils literal"><span class="pre">x</span></tt></td></tr> | |
<tr><td><a class="reference external" href="#card,set[T]">card</a></td><td>Return the cardinality of the set, i.e. the number of elements</td></tr> | |
<tr><td><a class="reference external" href="#*,set[T],set[T]">a * b</a></td><td>Intersection</td></tr> | |
<tr><td><a class="reference external" href="#+,set[T],set[T]">a + b</a></td><td>Union</td></tr> | |
<tr><td><a class="reference external" href="#-,set[T],set[T]">a - b</a></td><td>Difference</td></tr> | |
<tr><td><a class="reference external" href="#contains,set[T],T">contains</a></td><td>Check if an element is in the set</td></tr> | |
<tr><td><a class="reference external" href="#<,set[T],set[T]">a < b</a></td><td>Check if <tt class="docutils literal"><span class="pre">a</span></tt> is a subset of <tt class="docutils literal"><span class="pre">b</span></tt></td></tr> | |
</table><p><strong>See also:</strong></p> | |
<ul class="simple"><li><a class="reference external" href="sets.html">sets module</a> for hash sets</li> | |
<li><a class="reference external" href="intsets.html">intsets module</a> for efficient int sets</li> | |
</ul> | |
<h2><a class="toc-backref" id="system-module-numbers" href="#system-module-numbers">Numbers</a></h2><table border="1" class="docutils"><tr><th>Proc</th><th>Usage </th><th>Also known as (in other languages)</th></tr> | |
<tr><td><a class="reference external" href="#div,int,int">div</a></td><td>Integer division</td><td><tt class="docutils literal"><span class="pre">//</span></tt></td></tr> | |
<tr><td><a class="reference external" href="#mod,int,int">mod</a></td><td>Integer modulo (remainder)</td><td><tt class="docutils literal"><span class="pre">%</span></tt></td></tr> | |
<tr><td><a class="reference external" href="#shl,int,SomeInteger">shl</a></td><td>Shift left</td><td><tt class="docutils literal"><span class="pre"><<</span></tt></td></tr> | |
<tr><td><a class="reference external" href="#shr,int,SomeInteger">shr</a></td><td>Shift right</td><td><tt class="docutils literal"><span class="pre">>></span></tt></td></tr> | |
<tr><td><a class="reference external" href="#ashr,int,SomeInteger">ashr</a></td><td>Arithmetic shift right</td><td></td></tr> | |
<tr><td><a class="reference external" href="#and,int,int">and</a></td><td>Bitwise <tt class="docutils literal"><span class="pre">and</span></tt></td><td><tt class="docutils literal"><span class="pre">&</span></tt></td></tr> | |
<tr><td><a class="reference external" href="#or,int,int">or</a></td><td>Bitwise <tt class="docutils literal"><span class="pre">or</span></tt></td><td><tt class="docutils literal"><span class="pre">|</span></tt></td></tr> | |
<tr><td><a class="reference external" href="#xor,int,int">xor</a></td><td>Bitwise <tt class="docutils literal"><span class="pre">xor</span></tt></td><td><tt class="docutils literal"><span class="pre">^</span></tt></td></tr> | |
<tr><td><a class="reference external" href="#not,int">not</a></td><td>Bitwise <tt class="docutils literal"><span class="pre">not</span></tt> (complement)</td><td><tt class="docutils literal"><span class="pre">~</span></tt></td></tr> | |
<tr><td><a class="reference external" href="#toInt,float">toInt</a></td><td>Convert floating-point number into an <tt class="docutils literal"><span class="pre">int</span></tt></td><td></td></tr> | |
<tr><td><a class="reference external" href="#toFloat,int">toFloat</a></td><td>Convert an integer into a <tt class="docutils literal"><span class="pre">float</span></tt></td><td></td></tr> | |
</table><p><strong>See also:</strong></p> | |
<ul class="simple"><li><a class="reference external" href="math.html">math module</a> for mathematical operations like trigonometric functions, logarithms, square and cubic roots, etc.</li> | |
<li><a class="reference external" href="complex.html">complex module</a> for operations on complex numbers</li> | |
<li><a class="reference external" href="rationals.html">rationals module</a> for rational numbers</li> | |
</ul> | |
<h2><a class="toc-backref" id="system-module-ordinals" href="#system-module-ordinals">Ordinals</a></h2><p><a class="reference external" href="#Ordinal">Ordinal type</a> includes integer, bool, character, and enumeration types, as well as their subtypes.</p> | |
<table border="1" class="docutils"><tr><th>Proc</th><th>Usage</th></tr> | |
<tr><td><a class="reference external" href="#succ,T,int">succ</a></td><td>Successor of the value</td></tr> | |
<tr><td><a class="reference external" href="#pred,T,int">pred</a></td><td>Predecessor of the value</td></tr> | |
<tr><td><a class="reference external" href="#inc,T,int">inc</a></td><td>Increment the ordinal</td></tr> | |
<tr><td><a class="reference external" href="#dec,T,int">dec</a></td><td>Decrement the ordinal</td></tr> | |
<tr><td><a class="reference external" href="#high,T">high</a></td><td>Return the highest possible value</td></tr> | |
<tr><td><a class="reference external" href="#low,T">low</a></td><td>Return the lowest possible value</td></tr> | |
<tr><td><a class="reference external" href="#ord,T">ord</a></td><td>Return <tt class="docutils literal"><span class="pre">int</span></tt> value of an ordinal value</td></tr> | |
</table> | |
<h2><a class="toc-backref" id="system-module-misc" href="#system-module-misc">Misc</a></h2><table border="1" class="docutils"><tr><th>Proc</th><th>Usage</th></tr> | |
<tr><td><a class="reference external" href="#is,T,S">is</a></td><td>Check if two arguments are of the same type</td></tr> | |
<tr><td><a class="reference external" href="#isnot.t,untyped,untyped">isnot</a></td><td>Negated version of <tt class="docutils literal"><span class="pre">is</span></tt></td></tr> | |
<tr><td><a class="reference external" href="#!%3D.t,untyped,untyped">!=</a></td><td>Not equals</td></tr> | |
<tr><td><a class="reference external" href="#addr,T">addr</a></td><td>Take the address of a memory location</td></tr> | |
<tr><td><a class="reference external" href="#and,bool,bool">T and F</a></td><td>Boolean <tt class="docutils literal"><span class="pre">and</span></tt></td></tr> | |
<tr><td><a class="reference external" href="#or,bool,bool">T or F</a></td><td>Boolean <tt class="docutils literal"><span class="pre">or</span></tt></td></tr> | |
<tr><td><a class="reference external" href="#xor,bool,bool">T xor F</a></td><td>Boolean <tt class="docutils literal"><span class="pre">xor</span></tt> (exclusive or)</td></tr> | |
<tr><td><a class="reference external" href="#not,bool">not T</a></td><td>Boolean <tt class="docutils literal"><span class="pre">not</span></tt></td></tr> | |
<tr><td><a class="reference external" href="#^.t,int">a[^x]</a></td><td>Take the element at the reversed index <tt class="docutils literal"><span class="pre">x</span></tt></td></tr> | |
<tr><td><a class="reference external" href="#..,sinkT,sinkU">a .. b</a></td><td>Binary slice that constructs an interval <tt class="docutils literal"><span class="pre">[a, b]</span></tt></td></tr> | |
<tr><td><a class="reference external" href="#..^.t,untyped,untyped">a ..^ b</a></td><td>Interval <tt class="docutils literal"><span class="pre">[a, b]</span></tt> but <tt class="docutils literal"><span class="pre">b</span></tt> as reversed index</td></tr> | |
<tr><td><a class="reference external" href="#..<.t,untyped,untyped">a ..< b</a></td><td>Interval <tt class="docutils literal"><span class="pre">[a, b)</span></tt> (excluded upper bound)</td></tr> | |
<tr><td><a class="reference external" href="#runnableExamples,string,untyped">runnableExamples</a></td><td>Create testable documentation</td></tr> | |
</table></p> | |
<div class="section" id="6"> | |
<h1><a class="toc-backref" href="#6">Imports</a></h1> | |
<dl class="item"> | |
<a class="reference external" href="since.html">since</a>, <a class="reference external" href="ansi_c.html">ansi_c</a>, <a class="reference external" href="memory.html">memory</a>, <a class="reference external" href="assertions.html">assertions</a>, <a class="reference external" href="iterators.html">iterators</a>, <a class="reference external" href="dollars.html">dollars</a>, <a class="reference external" href="miscdollars.html">miscdollars</a>, <a class="reference external" href="stacktraces.html">stacktraces</a>, <a class="reference external" href="formatfloat.html">formatfloat</a>, <a class="reference external" href="widestrs.html">widestrs</a>, <a class="reference external" href="io.html">io</a> | |
</dl></div> | |
<div class="section" id="7"> | |
<h1><a class="toc-backref" href="#7">Types</a></h1> | |
<dl class="item"> | |
<a id="float"></a> | |
<dt><pre><a href="system.html#float"><span class="Identifier">float</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Float</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Default floating point type. | |
</dd> | |
<a id="float32"></a> | |
<dt><pre><a href="system.html#float32"><span class="Identifier">float32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Float32</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
32 bit floating point type. | |
</dd> | |
<a id="float64"></a> | |
<dt><pre><a href="system.html#float64"><span class="Identifier">float64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Float</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
64 bit floating point type. | |
</dd> | |
<a id="char"></a> | |
<dt><pre><a href="system.html#char"><span class="Identifier">char</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Char</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Built-in 8 bit character type (unsigned). | |
</dd> | |
<a id="string"></a> | |
<dt><pre><a href="system.html#string"><span class="Identifier">string</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">String</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Built-in string type. | |
</dd> | |
<a id="cstring"></a> | |
<dt><pre><a href="system.html#cstring"><span class="Identifier">cstring</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Cstring</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Built-in cstring (<em>compatible string</em>) type. | |
</dd> | |
<a id="pointer"></a> | |
<dt><pre><a href="system.html#pointer"><span class="Identifier">pointer</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Pointer</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Built-in pointer type, use the <tt class="docutils literal"><span class="pre">addr</span></tt> operator to get a pointer to a variable. | |
</dd> | |
<a id="typedesc"></a> | |
<dt><pre><a href="system.html#typedesc"><span class="Identifier">typedesc</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">TypeDesc</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Meta type to denote a type description. | |
</dd> | |
<a id="ptr"></a> | |
<dt><pre><a href="system.html#ptr"><span class="Identifier">ptr</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Pointer</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Built-in generic untraced pointer type. | |
</dd> | |
<a id="ref"></a> | |
<dt><pre><a href="system.html#ref"><span class="Identifier">ref</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Pointer</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Built-in generic traced pointer type. | |
</dd> | |
<a id="void"></a> | |
<dt><pre><a href="system.html#void"><span class="Identifier">void</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"VoidType"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Meta type to denote the absence of any type. | |
</dd> | |
<a id="auto"></a> | |
<dt><pre><a href="system.html#auto"><span class="Identifier">auto</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Expr</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Meta type for automatic type determination. | |
</dd> | |
<a id="any"></a> | |
<dt><pre><a href="system.html#any"><span class="Identifier">any</span></a> <span class="Other">=</span> <span class="Keyword">distinct</span> <a href="system.html#auto"><span class="Identifier">auto</span></a></pre></dt> | |
<dd> | |
Meta type for any supported type. | |
</dd> | |
<a id="untyped"></a> | |
<dt><pre><a href="system.html#untyped"><span class="Identifier">untyped</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Expr</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Meta type to denote an expression that is not resolved (for templates). | |
</dd> | |
<a id="typed"></a> | |
<dt><pre><a href="system.html#typed"><span class="Identifier">typed</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Stmt</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Meta type to denote an expression that is resolved (for templates). | |
</dd> | |
<a id="int"></a> | |
<dt><pre><a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Int"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Default integer type; bitwidth depends on architecture, but is always the same as a pointer. | |
</dd> | |
<a id="int8"></a> | |
<dt><pre><a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Int8"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Signed 8 bit integer type. | |
</dd> | |
<a id="int16"></a> | |
<dt><pre><a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Int16"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Signed 16 bit integer type. | |
</dd> | |
<a id="int32"></a> | |
<dt><pre><a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Int32"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Signed 32 bit integer type. | |
</dd> | |
<a id="int64"></a> | |
<dt><pre><a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Int64"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Signed 64 bit integer type. | |
</dd> | |
<a id="uint"></a> | |
<dt><pre><a href="system.html#uint"><span class="Identifier">uint</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"UInt"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Unsigned default integer type. | |
</dd> | |
<a id="uint8"></a> | |
<dt><pre><a href="system.html#uint8"><span class="Identifier">uint8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"UInt8"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Unsigned 8 bit integer type. | |
</dd> | |
<a id="uint16"></a> | |
<dt><pre><a href="system.html#uint16"><span class="Identifier">uint16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"UInt16"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Unsigned 16 bit integer type. | |
</dd> | |
<a id="uint32"></a> | |
<dt><pre><a href="system.html#uint32"><span class="Identifier">uint32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"UInt32"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Unsigned 32 bit integer type. | |
</dd> | |
<a id="uint64"></a> | |
<dt><pre><a href="system.html#uint64"><span class="Identifier">uint64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"UInt64"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Unsigned 64 bit integer type. | |
</dd> | |
<a id="bool"></a> | |
<dt><pre><a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Bool"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <span class="Keyword">enum</span> | |
<span class="Identifier">false</span> <span class="Other">=</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">true</span> <span class="Other">=</span> <span class="DecNumber">1</span></pre></dt> | |
<dd> | |
Built-in boolean type. | |
</dd> | |
<a id="SomeSignedInt"></a> | |
<dt><pre><a href="system.html#SomeSignedInt"><span class="Identifier">SomeSignedInt</span></a> <span class="Other">=</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Operator">|</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span class="Operator">|</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span class="Operator">|</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span class="Operator">|</span> <a href="system.html#int64"><span class="Identifier">int64</span></a></pre></dt> | |
<dd> | |
Type class matching all signed integer types. | |
</dd> | |
<a id="SomeUnsignedInt"></a> | |
<dt><pre><a href="system.html#SomeUnsignedInt"><span class="Identifier">SomeUnsignedInt</span></a> <span class="Other">=</span> <a href="system.html#uint"><span class="Identifier">uint</span></a> <span class="Operator">|</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a> <span class="Operator">|</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a> <span class="Operator">|</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a> <span class="Operator">|</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a></pre></dt> | |
<dd> | |
Type class matching all unsigned integer types. | |
</dd> | |
<a id="SomeInteger"></a> | |
<dt><pre><a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a> <span class="Other">=</span> <a href="system.html#SomeSignedInt"><span class="Identifier">SomeSignedInt</span></a> <span class="Operator">|</span> <a href="system.html#SomeUnsignedInt"><span class="Identifier">SomeUnsignedInt</span></a></pre></dt> | |
<dd> | |
Type class matching all integer types. | |
</dd> | |
<a id="SomeOrdinal"></a> | |
<dt><pre><a href="system.html#SomeOrdinal"><span class="Identifier">SomeOrdinal</span></a> <span class="Other">=</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Operator">|</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span class="Operator">|</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span class="Operator">|</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span class="Operator">|</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span class="Operator">|</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span class="Operator">|</span> <span class="Keyword">enum</span> <span class="Operator">|</span> <a href="system.html#uint"><span class="Identifier">uint</span></a> <span class="Operator">|</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a> <span class="Operator">|</span> | |
<a href="system.html#uint16"><span class="Identifier">uint16</span></a> <span class="Operator">|</span> | |
<a href="system.html#uint32"><span class="Identifier">uint32</span></a> <span class="Operator">|</span> | |
<a href="system.html#uint64"><span class="Identifier">uint64</span></a></pre></dt> | |
<dd> | |
Type class matching all ordinal types; however this includes enums with holes. See also <tt class="docutils literal"><span class="pre">Ordinal</span></tt> | |
</dd> | |
<a id="BiggestInt"></a> | |
<dt><pre><a href="system.html#BiggestInt"><span class="Identifier">BiggestInt</span></a> <span class="Other">=</span> <a href="system.html#int64"><span class="Identifier">int64</span></a></pre></dt> | |
<dd> | |
is an alias for the biggest signed integer type the Nim compiler supports. Currently this is <tt class="docutils literal"><span class="pre">int64</span></tt>, but it is platform-dependent in general. | |
</dd> | |
<a id="SomeFloat"></a> | |
<dt><pre><a href="system.html#SomeFloat"><span class="Identifier">SomeFloat</span></a> <span class="Other">=</span> <a href="system.html#float"><span class="Identifier">float</span></a> <span class="Operator">|</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span class="Operator">|</span> <a href="system.html#float64"><span class="Identifier">float64</span></a></pre></dt> | |
<dd> | |
Type class matching all floating point number types. | |
</dd> | |
<a id="SomeNumber"></a> | |
<dt><pre><a href="system.html#SomeNumber"><span class="Identifier">SomeNumber</span></a> <span class="Other">=</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a> <span class="Operator">|</span> <a href="system.html#SomeFloat"><span class="Identifier">SomeFloat</span></a></pre></dt> | |
<dd> | |
Type class matching all number types. | |
</dd> | |
<a id="Ordinal"></a> | |
<dt><pre><a href="system.html#Ordinal"><span class="Identifier">Ordinal</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Ordinal</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Generic ordinal type. Includes integer, bool, character, and enumeration types as well as their subtypes. See also <tt class="docutils literal"><span class="pre">SomeOrdinal</span></tt>. | |
</dd> | |
<a id="static"></a> | |
<dt><pre><a href="system.html#static"><span class="Identifier">static</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Static"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Meta type representing all values that can be evaluated at compile-time.</p> | |
<p>The type coercion <tt class="docutils literal"><span class="pre">static(x)</span></tt> can be used to force the compile-time evaluation of the given expression <tt class="docutils literal"><span class="pre">x</span></tt>.</p> | |
</dd> | |
<a id="type"></a> | |
<dt><pre><a href="system.html#type"><span class="Identifier">type</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Type"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Meta type representing the type of all type values.</p> | |
<p>The coercion <tt class="docutils literal"><span class="pre">type(x)</span></tt> can be used to obtain the type of the given expression <tt class="docutils literal"><span class="pre">x</span></tt>.</p> | |
</dd> | |
<a id="TypeOfMode"></a> | |
<dt><pre><a href="system.html#TypeOfMode"><span class="Identifier">TypeOfMode</span></a> <span class="Other">=</span> <span class="Keyword">enum</span> | |
<span class="Identifier">typeOfProc</span><span class="Other">,</span> <span class="Comment">## Prefer the interpretation that means `x` is a proc call.</span> | |
<span class="Identifier">typeOfIter</span> <span class="Comment">## Prefer the interpretation that means `x` is an iterator call.</span></pre></dt> | |
<dd> | |
Possible modes of <tt class="docutils literal"><span class="pre">typeof</span></tt>. | |
</dd> | |
<a id="range"></a> | |
<dt><pre><a href="system.html#range"><span class="Identifier">range</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Range"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Generic type to construct range types. | |
</dd> | |
<a id="array"></a> | |
<dt><pre><a href="system.html#array"><span class="Identifier">array</span></a><span class="Other">[</span><span class="Identifier">I</span><span class="Other">;</span> <span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Array"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Generic type to construct fixed-length arrays. | |
</dd> | |
<a id="openArray"></a> | |
<dt><pre><a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"OpenArray"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Generic type to construct open arrays. Open arrays are implemented as a pointer to the array data and a length field. | |
</dd> | |
<a id="varargs"></a> | |
<dt><pre><a href="system.html#varargs"><span class="Identifier">varargs</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Varargs"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Generic type to construct a varargs type. | |
</dd> | |
<a id="seq"></a> | |
<dt><pre><a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Seq"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Generic type to construct sequences. | |
</dd> | |
<a id="set"></a> | |
<dt><pre><a href="system.html#set"><span class="Identifier">set</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Set"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Generic type to construct bit sets. | |
</dd> | |
<a id="UncheckedArray"></a> | |
<dt><pre><a href="system.html#UncheckedArray"><span class="Identifier">UncheckedArray</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"UncheckedArray"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="sink"></a> | |
<dt><pre><a href="system.html#sink"><span class="Identifier">sink</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BuiltinType"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="lent"></a> | |
<dt><pre><a href="system.html#lent"><span class="Identifier">lent</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BuiltinType"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="HSlice"></a> | |
<dt><pre><a href="system.html#HSlice"><span class="Identifier">HSlice</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">U</span><span class="Other">]</span> <span class="Other">=</span> <span class="Keyword">object</span> | |
<span class="Identifier">a</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">T</span> <span class="Comment">## The lower bound (inclusive).</span> | |
<span class="Identifier">b</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">U</span> <span class="Comment">## The upper bound (inclusive).</span> | |
</pre></dt> | |
<dd> | |
"Heterogeneous" slice type. | |
</dd> | |
<a id="Slice"></a> | |
<dt><pre><a href="system.html#Slice"><span class="Identifier">Slice</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span class="Other">=</span> <a href="system.html#HSlice"><span class="Identifier">HSlice</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">,</span> <span class="Identifier">T</span><span class="Other">]</span></pre></dt> | |
<dd> | |
An alias for <tt class="docutils literal"><span class="pre">HSlice[T, T]</span></tt>. | |
</dd> | |
<a id="byte"></a> | |
<dt><pre><a href="system.html#byte"><span class="Identifier">byte</span></a> <span class="Other">=</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a></pre></dt> | |
<dd> | |
This is an alias for <tt class="docutils literal"><span class="pre">uint8</span></tt>, that is an unsigned integer, 8 bits wide. | |
</dd> | |
<a id="Natural"></a> | |
<dt><pre><a href="system.html#Natural"><span class="Identifier">Natural</span></a> <span class="Other">=</span> <a href="system.html#range"><span class="Identifier">range</span></a><span class="Other">[</span><span class="DecNumber">0</span> <span class="Operator">..</span> <span class="Identifier">high</span><span class="Other">(</span><a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">]</span></pre></dt> | |
<dd> | |
is an <tt class="docutils literal"><span class="pre">int</span></tt> type ranging from zero to the maximum value of an <tt class="docutils literal"><span class="pre">int</span></tt>. This type is often useful for documentation and debugging. | |
</dd> | |
<a id="Positive"></a> | |
<dt><pre><a href="system.html#Positive"><span class="Identifier">Positive</span></a> <span class="Other">=</span> <a href="system.html#range"><span class="Identifier">range</span></a><span class="Other">[</span><span class="DecNumber">1</span> <span class="Operator">..</span> <span class="Identifier">high</span><span class="Other">(</span><a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">]</span></pre></dt> | |
<dd> | |
is an <tt class="docutils literal"><span class="pre">int</span></tt> type ranging from one to the maximum value of an <tt class="docutils literal"><span class="pre">int</span></tt>. This type is often useful for documentation and debugging. | |
</dd> | |
<a id="RootObj"></a> | |
<dt><pre><a href="system.html#RootObj"><span class="Identifier">RootObj</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">compilerproc</span><span class="Other">,</span> <span class="Identifier">inheritable</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <span class="Keyword">object</span></pre></dt> | |
<dd> | |
<p>The root of Nim's object hierarchy.</p> | |
<p>Objects should inherit from <tt class="docutils literal"><span class="pre">RootObj</span></tt> or one of its descendants. However, objects that have no ancestor are also allowed.</p> | |
</dd> | |
<a id="RootRef"></a> | |
<dt><pre><a href="system.html#RootRef"><span class="Identifier">RootRef</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <a href="system.html#RootObj"><span class="Identifier">RootObj</span></a></pre></dt> | |
<dd> | |
Reference to <tt class="docutils literal"><span class="pre">RootObj</span></tt>. | |
</dd> | |
<a id="RootEffect"></a> | |
<dt><pre><a href="system.html#RootEffect"><span class="Identifier">RootEffect</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">compilerproc</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#RootObj"><span class="Identifier">RootObj</span></a></pre></dt> | |
<dd> | |
<p> | |
Base effect class.</p> | |
<p>Each effect should inherit from <tt class="docutils literal"><span class="pre">RootEffect</span></tt> unless you know what you're doing.</p> | |
</dd> | |
<a id="TimeEffect"></a> | |
<dt><pre><a href="system.html#TimeEffect"><span class="Identifier">TimeEffect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#RootEffect"><span class="Identifier">RootEffect</span></a></pre></dt> | |
<dd> | |
Time effect. | |
</dd> | |
<a id="IOEffect"></a> | |
<dt><pre><a href="system.html#IOEffect"><span class="Identifier">IOEffect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#RootEffect"><span class="Identifier">RootEffect</span></a></pre></dt> | |
<dd> | |
IO effect. | |
</dd> | |
<a id="ReadIOEffect"></a> | |
<dt><pre><a href="system.html#ReadIOEffect"><span class="Identifier">ReadIOEffect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#IOEffect"><span class="Identifier">IOEffect</span></a></pre></dt> | |
<dd> | |
Effect describing a read IO operation. | |
</dd> | |
<a id="WriteIOEffect"></a> | |
<dt><pre><a href="system.html#WriteIOEffect"><span class="Identifier">WriteIOEffect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#IOEffect"><span class="Identifier">IOEffect</span></a></pre></dt> | |
<dd> | |
Effect describing a write IO operation. | |
</dd> | |
<a id="ExecIOEffect"></a> | |
<dt><pre><a href="system.html#ExecIOEffect"><span class="Identifier">ExecIOEffect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#IOEffect"><span class="Identifier">IOEffect</span></a></pre></dt> | |
<dd> | |
Effect describing an executing IO operation. | |
</dd> | |
<a id="StackTraceEntry"></a> | |
<dt><pre><a href="system.html#StackTraceEntry"><span class="Identifier">StackTraceEntry</span></a> <span class="Other">=</span> <span class="Keyword">object</span> | |
<span class="Identifier">procname</span><span class="Operator">*</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a> <span class="Comment">## Name of the proc that is currently executing.</span> | |
<span class="Identifier">line</span><span class="Operator">*</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Comment">## Line number of the proc that is currently executing.</span> | |
<span class="Identifier">filename</span><span class="Operator">*</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a> <span class="Comment">## Filename of the proc that is currently executing.</span> | |
<span class="Keyword">when</span> <span class="Identifier">NimStackTraceMsgs</span><span class="Other">:</span> | |
<span class="Identifier">frameMsg</span><span class="Operator">*</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span class="Comment">## When a stacktrace is generated in a given frame and</span> | |
<span class="Comment">## rendered at a later time, we should ensure the stacktrace</span> | |
<span class="Comment">## data isn't invalidated; any pointer into PFrame is</span> | |
<span class="Comment">## subject to being invalidated so shouldn't be stored.</span> | |
<span class="Keyword">when</span> <span class="Identifier">defined</span><span class="Other">(</span><span class="Identifier">nimStackTraceOverride</span><span class="Other">)</span><span class="Other">:</span> | |
<span class="Identifier">programCounter</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">uint</span> <span class="Comment">## Program counter - will be used to get the rest of the info,</span> | |
<span class="Comment">## when `$` is called on this type. We can't use</span> | |
<span class="Comment">## "cuintptr_t" in here.</span> | |
<span class="Identifier">procnameStr</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">filenameStr</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">string</span> <span class="Comment">## GC-ed objects holding the cstrings in "procname" and "filename"</span> | |
</pre></dt> | |
<dd> | |
In debug mode exceptions store the stack trace that led to them. A <tt class="docutils literal"><span class="pre">StackTraceEntry</span></tt> is a single entry of the stack trace. | |
</dd> | |
<a id="Exception"></a> | |
<dt><pre><a href="system.html#Exception"><span class="Identifier">Exception</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">compilerproc</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Exception"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#RootObj"><span class="Identifier">RootObj</span></a> | |
<span class="Identifier">parent</span><span class="Operator">*</span><span class="Other">:</span> <span class="Keyword">ref</span> <a href="system.html#Exception"><span class="Identifier">Exception</span></a> <span class="Comment">## Parent exception (can be used as a stack).</span> | |
<span class="Identifier">name</span><span class="Operator">*</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a> <span class="Comment">## The exception's name is its Nim identifier.</span> | |
<span class="Comment">## This field is filled automatically in the</span> | |
<span class="Comment">## ``raise`` statement.</span> | |
<span class="Identifier">msg</span><span class="Operator">*</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">exportc</span><span class="Other">:</span> <span class="StringLit">"message"</span></span><span class="Other">.}</span></span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span class="Comment">## The exception's message. Not</span> | |
<span class="Comment">## providing an exception message</span> | |
<span class="Comment">## is bad style.</span> | |
<span class="Keyword">when</span> <span class="Identifier">defined</span><span class="Other">(</span><span class="Identifier">js</span><span class="Other">)</span><span class="Other">:</span> | |
<span class="Identifier">trace</span><span class="Other">:</span> <span class="Identifier">string</span> | |
<span class="Keyword">else</span><span class="Other">:</span> | |
<span class="Identifier">trace</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><a href="system.html#StackTraceEntry"><span class="Identifier">StackTraceEntry</span></a><span class="Other">]</span> | |
<span class="Identifier">up</span><span class="Other">:</span> <span class="Keyword">ref</span> <a href="system.html#Exception"><span class="Identifier">Exception</span></a> | |
</pre></dt> | |
<dd> | |
<p> | |
Base exception class.</p> | |
<p>Each exception has to inherit from <tt class="docutils literal"><span class="pre">Exception</span></tt>. See the full <a class="reference external" href="manual.html#exception-handling-exception-hierarchy">exception hierarchy</a>.</p> | |
</dd> | |
<a id="Defect"></a> | |
<dt><pre><a href="system.html#Defect"><span class="Identifier">Defect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#Exception"><span class="Identifier">Exception</span></a></pre></dt> | |
<dd> | |
Abstract base class for all exceptions that Nim's runtime raises but that are strictly uncatchable as they can also be mapped to a <tt class="docutils literal"><span class="pre">quit</span></tt> / <tt class="docutils literal"><span class="pre">trap</span></tt> / <tt class="docutils literal"><span class="pre">exit</span></tt> operation. | |
</dd> | |
<a id="CatchableError"></a> | |
<dt><pre><a href="system.html#CatchableError"><span class="Identifier">CatchableError</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#Exception"><span class="Identifier">Exception</span></a></pre></dt> | |
<dd> | |
Abstract class for all exceptions that are catchable. | |
</dd> | |
<a id="IOError"></a> | |
<dt><pre><a href="system.html#IOError"><span class="Identifier">IOError</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#CatchableError"><span class="Identifier">CatchableError</span></a></pre></dt> | |
<dd> | |
Raised if an IO error occurred. | |
</dd> | |
<a id="EOFError"></a> | |
<dt><pre><a href="system.html#EOFError"><span class="Identifier">EOFError</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#IOError"><span class="Identifier">IOError</span></a></pre></dt> | |
<dd> | |
Raised if an IO "end of file" error occurred. | |
</dd> | |
<a id="OSError"></a> | |
<dt><pre><a href="system.html#OSError"><span class="Identifier">OSError</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#CatchableError"><span class="Identifier">CatchableError</span></a> | |
<span class="Identifier">errorCode</span><span class="Operator">*</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span class="Comment">## OS-defined error code describing this error.</span> | |
</pre></dt> | |
<dd> | |
Raised if an operating system service failed. | |
</dd> | |
<a id="LibraryError"></a> | |
<dt><pre><a href="system.html#LibraryError"><span class="Identifier">LibraryError</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#OSError"><span class="Identifier">OSError</span></a></pre></dt> | |
<dd> | |
Raised if a dynamic library could not be loaded. | |
</dd> | |
<a id="ResourceExhaustedError"></a> | |
<dt><pre><a href="system.html#ResourceExhaustedError"><span class="Identifier">ResourceExhaustedError</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#CatchableError"><span class="Identifier">CatchableError</span></a></pre></dt> | |
<dd> | |
Raised if a resource request could not be fulfilled. | |
</dd> | |
<a id="ArithmeticDefect"></a> | |
<dt><pre><a href="system.html#ArithmeticDefect"><span class="Identifier">ArithmeticDefect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#Defect"><span class="Identifier">Defect</span></a></pre></dt> | |
<dd> | |
Raised if any kind of arithmetic error occurred. | |
</dd> | |
<a id="DivByZeroDefect"></a> | |
<dt><pre><a href="system.html#DivByZeroDefect"><span class="Identifier">DivByZeroDefect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#ArithmeticDefect"><span class="Identifier">ArithmeticDefect</span></a></pre></dt> | |
<dd> | |
Raised for runtime integer divide-by-zero errors. | |
</dd> | |
<a id="OverflowDefect"></a> | |
<dt><pre><a href="system.html#OverflowDefect"><span class="Identifier">OverflowDefect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#ArithmeticDefect"><span class="Identifier">ArithmeticDefect</span></a></pre></dt> | |
<dd> | |
<p> | |
Raised for runtime integer overflows.</p> | |
<p>This happens for calculations whose results are too large to fit in the provided bits.</p> | |
</dd> | |
<a id="AccessViolationDefect"></a> | |
<dt><pre><a href="system.html#AccessViolationDefect"><span class="Identifier">AccessViolationDefect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#Defect"><span class="Identifier">Defect</span></a></pre></dt> | |
<dd> | |
Raised for invalid memory access errors | |
</dd> | |
<a id="AssertionDefect"></a> | |
<dt><pre><a href="system.html#AssertionDefect"><span class="Identifier">AssertionDefect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#Defect"><span class="Identifier">Defect</span></a></pre></dt> | |
<dd> | |
<p> | |
Raised when assertion is proved wrong.</p> | |
<p>Usually the result of using the <a class="reference external" href="assertions.html#assert.t,untyped,string">assert() template</a>.</p> | |
</dd> | |
<a id="ValueError"></a> | |
<dt><pre><a href="system.html#ValueError"><span class="Identifier">ValueError</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#CatchableError"><span class="Identifier">CatchableError</span></a></pre></dt> | |
<dd> | |
Raised for string and object conversion errors. | |
</dd> | |
<a id="KeyError"></a> | |
<dt><pre><a href="system.html#KeyError"><span class="Identifier">KeyError</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#ValueError"><span class="Identifier">ValueError</span></a></pre></dt> | |
<dd> | |
<p> | |
Raised if a key cannot be found in a table.</p> | |
<p>Mostly used by the <a class="reference external" href="tables.html">tables</a> module, it can also be raised by other collection modules like <a class="reference external" href="sets.html">sets</a> or <a class="reference external" href="strtabs.html">strtabs</a>.</p> | |
</dd> | |
<a id="OutOfMemDefect"></a> | |
<dt><pre><a href="system.html#OutOfMemDefect"><span class="Identifier">OutOfMemDefect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#Defect"><span class="Identifier">Defect</span></a></pre></dt> | |
<dd> | |
Raised for unsuccessful attempts to allocate memory. | |
</dd> | |
<a id="IndexDefect"></a> | |
<dt><pre><a href="system.html#IndexDefect"><span class="Identifier">IndexDefect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#Defect"><span class="Identifier">Defect</span></a></pre></dt> | |
<dd> | |
Raised if an array index is out of bounds. | |
</dd> | |
<a id="FieldDefect"></a> | |
<dt><pre><a href="system.html#FieldDefect"><span class="Identifier">FieldDefect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#Defect"><span class="Identifier">Defect</span></a></pre></dt> | |
<dd> | |
Raised if a record field is not accessible because its discriminant's value does not fit. | |
</dd> | |
<a id="RangeDefect"></a> | |
<dt><pre><a href="system.html#RangeDefect"><span class="Identifier">RangeDefect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#Defect"><span class="Identifier">Defect</span></a></pre></dt> | |
<dd> | |
Raised if a range check error occurred. | |
</dd> | |
<a id="StackOverflowDefect"></a> | |
<dt><pre><a href="system.html#StackOverflowDefect"><span class="Identifier">StackOverflowDefect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#Defect"><span class="Identifier">Defect</span></a></pre></dt> | |
<dd> | |
Raised if the hardware stack used for subroutine calls overflowed. | |
</dd> | |
<a id="ReraiseDefect"></a> | |
<dt><pre><a href="system.html#ReraiseDefect"><span class="Identifier">ReraiseDefect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#Defect"><span class="Identifier">Defect</span></a></pre></dt> | |
<dd> | |
Raised if there is no exception to reraise. | |
</dd> | |
<a id="ObjectAssignmentDefect"></a> | |
<dt><pre><a href="system.html#ObjectAssignmentDefect"><span class="Identifier">ObjectAssignmentDefect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#Defect"><span class="Identifier">Defect</span></a></pre></dt> | |
<dd> | |
Raised if an object gets assigned to its parent's object. | |
</dd> | |
<a id="ObjectConversionDefect"></a> | |
<dt><pre><a href="system.html#ObjectConversionDefect"><span class="Identifier">ObjectConversionDefect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#Defect"><span class="Identifier">Defect</span></a></pre></dt> | |
<dd> | |
Raised if an object is converted to an incompatible object type. You can use <tt class="docutils literal"><span class="pre">of</span></tt> operator to check if conversion will succeed. | |
</dd> | |
<a id="FloatingPointDefect"></a> | |
<dt><pre><a href="system.html#FloatingPointDefect"><span class="Identifier">FloatingPointDefect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#Defect"><span class="Identifier">Defect</span></a></pre></dt> | |
<dd> | |
Base class for floating point exceptions. | |
</dd> | |
<a id="FloatInvalidOpDefect"></a> | |
<dt><pre><a href="system.html#FloatInvalidOpDefect"><span class="Identifier">FloatInvalidOpDefect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#FloatingPointDefect"><span class="Identifier">FloatingPointDefect</span></a></pre></dt> | |
<dd> | |
<p> | |
Raised by invalid operations according to IEEE.</p> | |
<p>Raised by <tt class="docutils literal"><span class="pre">0.0/0.0</span></tt>, for example.</p> | |
</dd> | |
<a id="FloatDivByZeroDefect"></a> | |
<dt><pre><a href="system.html#FloatDivByZeroDefect"><span class="Identifier">FloatDivByZeroDefect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#FloatingPointDefect"><span class="Identifier">FloatingPointDefect</span></a></pre></dt> | |
<dd> | |
<p> | |
Raised by division by zero.</p> | |
<p>Divisor is zero and dividend is a finite nonzero number.</p> | |
</dd> | |
<a id="FloatOverflowDefect"></a> | |
<dt><pre><a href="system.html#FloatOverflowDefect"><span class="Identifier">FloatOverflowDefect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#FloatingPointDefect"><span class="Identifier">FloatingPointDefect</span></a></pre></dt> | |
<dd> | |
<p> | |
Raised for overflows.</p> | |
<p>The operation produced a result that exceeds the range of the exponent.</p> | |
</dd> | |
<a id="FloatUnderflowDefect"></a> | |
<dt><pre><a href="system.html#FloatUnderflowDefect"><span class="Identifier">FloatUnderflowDefect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#FloatingPointDefect"><span class="Identifier">FloatingPointDefect</span></a></pre></dt> | |
<dd> | |
<p> | |
Raised for underflows.</p> | |
<p>The operation produced a result that is too small to be represented as a normal number.</p> | |
</dd> | |
<a id="FloatInexactDefect"></a> | |
<dt><pre><a href="system.html#FloatInexactDefect"><span class="Identifier">FloatInexactDefect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#FloatingPointDefect"><span class="Identifier">FloatingPointDefect</span></a></pre></dt> | |
<dd> | |
<p> | |
Raised for inexact results.</p> | |
<p>The operation produced a result that cannot be represented with infinite precision -- for example: <tt class="docutils literal"><span class="pre">2.0 / 3.0, log(1.1)</span></tt></p> | |
<p><strong>Note</strong>: Nim currently does not detect these!</p> | |
</dd> | |
<a id="DeadThreadDefect"></a> | |
<dt><pre><a href="system.html#DeadThreadDefect"><span class="Identifier">DeadThreadDefect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#Defect"><span class="Identifier">Defect</span></a></pre></dt> | |
<dd> | |
Raised if it is attempted to send a message to a dead thread. | |
</dd> | |
<a id="NilAccessDefect"></a> | |
<dt><pre><a href="system.html#NilAccessDefect"><span class="Identifier">NilAccessDefect</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#Defect"><span class="Identifier">Defect</span></a></pre></dt> | |
<dd> | |
<p> | |
Raised on dereferences of <tt class="docutils literal"><span class="pre">nil</span></tt> pointers.</p> | |
<p>This is only raised if the <a class="reference external" href="segfaults.html">segfaults module</a> was imported!</p> | |
</dd> | |
<a id="ArithmeticError"></a> | |
<dt><pre><a href="system.html#ArithmeticError"><span class="Identifier">ArithmeticError</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"See corresponding Defect"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#ArithmeticDefect"><span class="Identifier">ArithmeticDefect</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="DivByZeroError"></a> | |
<dt><pre><a href="system.html#DivByZeroError"><span class="Identifier">DivByZeroError</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"See corresponding Defect"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#DivByZeroDefect"><span class="Identifier">DivByZeroDefect</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="OverflowError"></a> | |
<dt><pre><a href="system.html#OverflowError"><span class="Identifier">OverflowError</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"See corresponding Defect"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#OverflowDefect"><span class="Identifier">OverflowDefect</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="AccessViolationError"></a> | |
<dt><pre><a href="system.html#AccessViolationError"><span class="Identifier">AccessViolationError</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"See corresponding Defect"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#AccessViolationDefect"><span class="Identifier">AccessViolationDefect</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="AssertionError"></a> | |
<dt><pre><a href="system.html#AssertionError"><span class="Identifier">AssertionError</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"See corresponding Defect"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#AssertionDefect"><span class="Identifier">AssertionDefect</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="OutOfMemError"></a> | |
<dt><pre><a href="system.html#OutOfMemError"><span class="Identifier">OutOfMemError</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"See corresponding Defect"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#OutOfMemDefect"><span class="Identifier">OutOfMemDefect</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="IndexError"></a> | |
<dt><pre><a href="system.html#IndexError"><span class="Identifier">IndexError</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"See corresponding Defect"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#IndexDefect"><span class="Identifier">IndexDefect</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="FieldError"></a> | |
<dt><pre><a href="system.html#FieldError"><span class="Identifier">FieldError</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"See corresponding Defect"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#FieldDefect"><span class="Identifier">FieldDefect</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="RangeError"></a> | |
<dt><pre><a href="system.html#RangeError"><span class="Identifier">RangeError</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"See corresponding Defect"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#RangeDefect"><span class="Identifier">RangeDefect</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="StackOverflowError"></a> | |
<dt><pre><a href="system.html#StackOverflowError"><span class="Identifier">StackOverflowError</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"See corresponding Defect"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#StackOverflowDefect"><span class="Identifier">StackOverflowDefect</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="ReraiseError"></a> | |
<dt><pre><a href="system.html#ReraiseError"><span class="Identifier">ReraiseError</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"See corresponding Defect"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#ReraiseDefect"><span class="Identifier">ReraiseDefect</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="ObjectAssignmentError"></a> | |
<dt><pre><a href="system.html#ObjectAssignmentError"><span class="Identifier">ObjectAssignmentError</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"See corresponding Defect"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#ObjectAssignmentDefect"><span class="Identifier">ObjectAssignmentDefect</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="ObjectConversionError"></a> | |
<dt><pre><a href="system.html#ObjectConversionError"><span class="Identifier">ObjectConversionError</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"See corresponding Defect"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#ObjectConversionDefect"><span class="Identifier">ObjectConversionDefect</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="FloatingPointError"></a> | |
<dt><pre><a href="system.html#FloatingPointError"><span class="Identifier">FloatingPointError</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"See corresponding Defect"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#FloatingPointDefect"><span class="Identifier">FloatingPointDefect</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="FloatInvalidOpError"></a> | |
<dt><pre><a href="system.html#FloatInvalidOpError"><span class="Identifier">FloatInvalidOpError</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"See corresponding Defect"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#FloatInvalidOpDefect"><span class="Identifier">FloatInvalidOpDefect</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="FloatDivByZeroError"></a> | |
<dt><pre><a href="system.html#FloatDivByZeroError"><span class="Identifier">FloatDivByZeroError</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"See corresponding Defect"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#FloatDivByZeroDefect"><span class="Identifier">FloatDivByZeroDefect</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="FloatOverflowError"></a> | |
<dt><pre><a href="system.html#FloatOverflowError"><span class="Identifier">FloatOverflowError</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"See corresponding Defect"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#FloatOverflowDefect"><span class="Identifier">FloatOverflowDefect</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="FloatUnderflowError"></a> | |
<dt><pre><a href="system.html#FloatUnderflowError"><span class="Identifier">FloatUnderflowError</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"See corresponding Defect"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#FloatUnderflowDefect"><span class="Identifier">FloatUnderflowDefect</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="FloatInexactError"></a> | |
<dt><pre><a href="system.html#FloatInexactError"><span class="Identifier">FloatInexactError</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"See corresponding Defect"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#FloatInexactDefect"><span class="Identifier">FloatInexactDefect</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="DeadThreadError"></a> | |
<dt><pre><a href="system.html#DeadThreadError"><span class="Identifier">DeadThreadError</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"See corresponding Defect"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#DeadThreadDefect"><span class="Identifier">DeadThreadDefect</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="NilAccessError"></a> | |
<dt><pre><a href="system.html#NilAccessError"><span class="Identifier">NilAccessError</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"See corresponding Defect"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#NilAccessDefect"><span class="Identifier">NilAccessDefect</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="JsRoot"></a> | |
<dt><pre><a href="system.html#JsRoot"><span class="Identifier">JsRoot</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#RootObj"><span class="Identifier">RootObj</span></a> | |
</pre></dt> | |
<dd> | |
Root type of the JavaScript object hierarchy | |
</dd> | |
<a id="owned"></a> | |
<dt><pre><a href="system.html#owned"><span class="Identifier">owned</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BuiltinType"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
type constructor to mark a ref/ptr or a closure as <tt class="docutils literal"><span class="pre">owned</span></tt>. | |
</dd> | |
<a id="Endianness"></a> | |
<dt><pre><a href="system.html#Endianness"><span class="Identifier">Endianness</span></a> <span class="Other">=</span> <span class="Keyword">enum</span> | |
<span class="Identifier">littleEndian</span><span class="Other">,</span> <span class="Identifier">bigEndian</span></pre></dt> | |
<dd> | |
Type describing the endianness of a processor. | |
</dd> | |
<a id="TaintedString"></a> | |
<dt><pre><a href="system.html#TaintedString"><span class="Identifier">TaintedString</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"Deprecated since 1.5"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#string"><span class="Identifier">string</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="ByteAddress"></a> | |
<dt><pre><a href="system.html#ByteAddress"><span class="Identifier">ByteAddress</span></a> <span class="Other">=</span> <a href="system.html#int"><span class="Identifier">int</span></a></pre></dt> | |
<dd> | |
is the signed integer type that should be used for converting pointers to integer addresses for readability. | |
</dd> | |
<a id="BiggestFloat"></a> | |
<dt><pre><a href="system.html#BiggestFloat"><span class="Identifier">BiggestFloat</span></a> <span class="Other">=</span> <a href="system.html#float64"><span class="Identifier">float64</span></a></pre></dt> | |
<dd> | |
is an alias for the biggest floating point type the Nim compiler supports. Currently this is <tt class="docutils literal"><span class="pre">float64</span></tt>, but it is platform-dependent in general. | |
</dd> | |
<a id="BiggestUInt"></a> | |
<dt><pre><a href="system.html#BiggestUInt"><span class="Identifier">BiggestUInt</span></a> <span class="Other">=</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a></pre></dt> | |
<dd> | |
is an alias for the biggest unsigned integer type the Nim compiler supports. Currently this is <tt class="docutils literal"><span class="pre">uint32</span></tt> for JS and <tt class="docutils literal"><span class="pre">uint64</span></tt> for other targets. | |
</dd> | |
<a id="clong"></a> | |
<dt><pre><a href="system.html#clong"><span class="Identifier">clong</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"long"</span><span class="Other">,</span> <span class="Identifier">nodecl</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#int"><span class="Identifier">int</span></a></pre></dt> | |
<dd> | |
This is the same as the type <tt class="docutils literal"><span class="pre">long</span></tt> in <em>C</em>. | |
</dd> | |
<a id="culong"></a> | |
<dt><pre><a href="system.html#culong"><span class="Identifier">culong</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"unsigned long"</span><span class="Other">,</span> <span class="Identifier">nodecl</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#uint"><span class="Identifier">uint</span></a></pre></dt> | |
<dd> | |
This is the same as the type <tt class="docutils literal"><span class="pre">unsigned long</span></tt> in <em>C</em>. | |
</dd> | |
<a id="cchar"></a> | |
<dt><pre><a href="system.html#cchar"><span class="Identifier">cchar</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"char"</span><span class="Other">,</span> <span class="Identifier">nodecl</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#char"><span class="Identifier">char</span></a></pre></dt> | |
<dd> | |
This is the same as the type <tt class="docutils literal"><span class="pre">char</span></tt> in <em>C</em>. | |
</dd> | |
<a id="cschar"></a> | |
<dt><pre><a href="system.html#cschar"><span class="Identifier">cschar</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"signed char"</span><span class="Other">,</span> <span class="Identifier">nodecl</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#int8"><span class="Identifier">int8</span></a></pre></dt> | |
<dd> | |
This is the same as the type <tt class="docutils literal"><span class="pre">signed char</span></tt> in <em>C</em>. | |
</dd> | |
<a id="cshort"></a> | |
<dt><pre><a href="system.html#cshort"><span class="Identifier">cshort</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"short"</span><span class="Other">,</span> <span class="Identifier">nodecl</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#int16"><span class="Identifier">int16</span></a></pre></dt> | |
<dd> | |
This is the same as the type <tt class="docutils literal"><span class="pre">short</span></tt> in <em>C</em>. | |
</dd> | |
<a id="cint"></a> | |
<dt><pre><a href="system.html#cint"><span class="Identifier">cint</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"int"</span><span class="Other">,</span> <span class="Identifier">nodecl</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#int32"><span class="Identifier">int32</span></a></pre></dt> | |
<dd> | |
This is the same as the type <tt class="docutils literal"><span class="pre">int</span></tt> in <em>C</em>. | |
</dd> | |
<a id="csize"></a> | |
<dt><pre><a href="system.html#csize"><span class="Identifier">csize</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"size_t"</span><span class="Other">,</span> <span class="Identifier">nodecl</span><span class="Other">,</span> <span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"use `csize_t` instead"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#int"><span class="Identifier">int</span></a></pre></dt> | |
<dd> | |
This isn't the same as <tt class="docutils literal"><span class="pre">size_t</span></tt> in <em>C</em>. Don't use it. | |
</dd> | |
<a id="csize_t"></a> | |
<dt><pre><a href="system.html#csize_t"><span class="Identifier">csize_t</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"size_t"</span><span class="Other">,</span> <span class="Identifier">nodecl</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#uint"><span class="Identifier">uint</span></a></pre></dt> | |
<dd> | |
This is the same as the type <tt class="docutils literal"><span class="pre">size_t</span></tt> in <em>C</em>. | |
</dd> | |
<a id="clonglong"></a> | |
<dt><pre><a href="system.html#clonglong"><span class="Identifier">clonglong</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"long long"</span><span class="Other">,</span> <span class="Identifier">nodecl</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#int64"><span class="Identifier">int64</span></a></pre></dt> | |
<dd> | |
This is the same as the type <tt class="docutils literal"><span class="pre">long long</span></tt> in <em>C</em>. | |
</dd> | |
<a id="cfloat"></a> | |
<dt><pre><a href="system.html#cfloat"><span class="Identifier">cfloat</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"float"</span><span class="Other">,</span> <span class="Identifier">nodecl</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#float32"><span class="Identifier">float32</span></a></pre></dt> | |
<dd> | |
This is the same as the type <tt class="docutils literal"><span class="pre">float</span></tt> in <em>C</em>. | |
</dd> | |
<a id="cdouble"></a> | |
<dt><pre><a href="system.html#cdouble"><span class="Identifier">cdouble</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"double"</span><span class="Other">,</span> <span class="Identifier">nodecl</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#float64"><span class="Identifier">float64</span></a></pre></dt> | |
<dd> | |
This is the same as the type <tt class="docutils literal"><span class="pre">double</span></tt> in <em>C</em>. | |
</dd> | |
<a id="clongdouble"></a> | |
<dt><pre><a href="system.html#clongdouble"><span class="Identifier">clongdouble</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"long double"</span><span class="Other">,</span> <span class="Identifier">nodecl</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#BiggestFloat"><span class="Identifier">BiggestFloat</span></a></pre></dt> | |
<dd> | |
This is the same as the type <tt class="docutils literal"><span class="pre">long double</span></tt> in <em>C</em>. This C type is not supported by Nim's code generator. | |
</dd> | |
<a id="cuchar"></a> | |
<dt><pre><a href="system.html#cuchar"><span class="Identifier">cuchar</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"unsigned char"</span><span class="Other">,</span> <span class="Identifier">nodecl</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#char"><span class="Identifier">char</span></a></pre></dt> | |
<dd> | |
This is the same as the type <tt class="docutils literal"><span class="pre">unsigned char</span></tt> in <em>C</em>. | |
</dd> | |
<a id="cushort"></a> | |
<dt><pre><a href="system.html#cushort"><span class="Identifier">cushort</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"unsigned short"</span><span class="Other">,</span> <span class="Identifier">nodecl</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a></pre></dt> | |
<dd> | |
This is the same as the type <tt class="docutils literal"><span class="pre">unsigned short</span></tt> in <em>C</em>. | |
</dd> | |
<a id="cuint"></a> | |
<dt><pre><a href="system.html#cuint"><span class="Identifier">cuint</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"unsigned int"</span><span class="Other">,</span> <span class="Identifier">nodecl</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a></pre></dt> | |
<dd> | |
This is the same as the type <tt class="docutils literal"><span class="pre">unsigned int</span></tt> in <em>C</em>. | |
</dd> | |
<a id="culonglong"></a> | |
<dt><pre><a href="system.html#culonglong"><span class="Identifier">culonglong</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"unsigned long long"</span><span class="Other">,</span> <span class="Identifier">nodecl</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a></pre></dt> | |
<dd> | |
This is the same as the type <tt class="docutils literal"><span class="pre">unsigned long long</span></tt> in <em>C</em>. | |
</dd> | |
<a id="cstringArray"></a> | |
<dt><pre><a href="system.html#cstringArray"><span class="Identifier">cstringArray</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"char**"</span><span class="Other">,</span> <span class="Identifier">nodecl</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <span class="Keyword">ptr</span> <a href="system.html#UncheckedArray"><span class="Identifier">UncheckedArray</span></a><span class="Other">[</span><a href="system.html#cstring"><span class="Identifier">cstring</span></a><span class="Other">]</span></pre></dt> | |
<dd> | |
This is binary compatible to the type <tt class="docutils literal"><span class="pre">char**</span></tt> in <em>C</em>. The array's high value is large enough to disable bounds checking in practice. Use <a class="reference external" href="#cstringArrayToSeq,cstringArray,Natural">cstringArrayToSeq proc</a> to convert it into a <tt class="docutils literal"><span class="pre">seq[string]</span></tt>. | |
</dd> | |
<a id="PFloat32"></a> | |
<dt><pre><a href="system.html#PFloat32"><span class="Identifier">PFloat32</span></a> <span class="Other">=</span> <span class="Keyword">ptr</span> <a href="system.html#float32"><span class="Identifier">float32</span></a></pre></dt> | |
<dd> | |
An alias for <tt class="docutils literal"><span class="pre">ptr float32</span></tt>. | |
</dd> | |
<a id="PFloat64"></a> | |
<dt><pre><a href="system.html#PFloat64"><span class="Identifier">PFloat64</span></a> <span class="Other">=</span> <span class="Keyword">ptr</span> <a href="system.html#float64"><span class="Identifier">float64</span></a></pre></dt> | |
<dd> | |
An alias for <tt class="docutils literal"><span class="pre">ptr float64</span></tt>. | |
</dd> | |
<a id="PInt64"></a> | |
<dt><pre><a href="system.html#PInt64"><span class="Identifier">PInt64</span></a> <span class="Other">=</span> <span class="Keyword">ptr</span> <a href="system.html#int64"><span class="Identifier">int64</span></a></pre></dt> | |
<dd> | |
An alias for <tt class="docutils literal"><span class="pre">ptr int64</span></tt>. | |
</dd> | |
<a id="PInt32"></a> | |
<dt><pre><a href="system.html#PInt32"><span class="Identifier">PInt32</span></a> <span class="Other">=</span> <span class="Keyword">ptr</span> <a href="system.html#int32"><span class="Identifier">int32</span></a></pre></dt> | |
<dd> | |
An alias for <tt class="docutils literal"><span class="pre">ptr int32</span></tt>. | |
</dd> | |
<a id="AllocStats"></a> | |
<dt><pre><a href="system.html#AllocStats"><span class="Identifier">AllocStats</span></a> <span class="Other">=</span> <span class="Keyword">object</span> | |
<span class="Identifier">allocCount</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> | |
<span class="Identifier">deallocCount</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> | |
</pre></dt> | |
<dd> | |
</dd> | |
<a id="AtomType"></a> | |
<dt><pre><a href="system.html#AtomType"><span class="Identifier">AtomType</span></a> <span class="Other">=</span> <a href="system.html#SomeNumber"><span class="Identifier">SomeNumber</span></a> <span class="Operator">|</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a> <span class="Operator">|</span> <span class="Keyword">ptr</span> <span class="Operator">|</span> <a href="system.html#char"><span class="Identifier">char</span></a> <span class="Operator">|</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt> | |
<dd> | |
Type Class representing valid types for use with atomic procs | |
</dd> | |
<a id="GC_Strategy"></a> | |
<dt><pre><a href="system.html#GC_Strategy"><span class="Identifier">GC_Strategy</span></a> <span class="Other">=</span> <span class="Keyword">enum</span> | |
<span class="Identifier">gcThroughput</span><span class="Other">,</span> <span class="Comment">## optimize for throughput</span> | |
<span class="Identifier">gcResponsiveness</span><span class="Other">,</span> <span class="Comment">## optimize for responsiveness (default)</span> | |
<span class="Identifier">gcOptimizeTime</span><span class="Other">,</span> <span class="Comment">## optimize for speed</span> | |
<span class="Identifier">gcOptimizeSpace</span> <span class="Comment">## optimize for memory footprint</span></pre></dt> | |
<dd> | |
The strategy the GC should use for the application. | |
</dd> | |
<a id="PFrame"></a> | |
<dt><pre><a href="system.html#PFrame"><span class="Identifier">PFrame</span></a> <span class="Other">=</span> <span class="Keyword">ptr</span> <a href="system.html#TFrame"><span class="Identifier">TFrame</span></a></pre></dt> | |
<dd> | |
Represents a runtime frame of the call stack; part of the debugger API. | |
</dd> | |
<a id="TFrame"></a> | |
<dt><pre><a href="system.html#TFrame"><span class="Identifier">TFrame</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">,</span> <span class="Identifier">nodecl</span><span class="Other">,</span> <span class="Identifier">final</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <span class="Keyword">object</span> | |
<span class="Identifier">prev</span><span class="Operator">*</span><span class="Other">:</span> <a href="system.html#PFrame"><span class="Identifier">PFrame</span></a> <span class="Comment">## Previous frame; used for chaining the call stack.</span> | |
<span class="Identifier">procname</span><span class="Operator">*</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a> <span class="Comment">## Name of the proc that is currently executing.</span> | |
<span class="Identifier">line</span><span class="Operator">*</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Comment">## Line number of the proc that is currently executing.</span> | |
<span class="Identifier">filename</span><span class="Operator">*</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a> <span class="Comment">## Filename of the proc that is currently executing.</span> | |
<span class="Identifier">len</span><span class="Operator">*</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span class="Comment">## Length of the inspectable slots.</span> | |
<span class="Identifier">calldepth</span><span class="Operator">*</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span class="Comment">## Used for max call depth checking.</span> | |
<span class="Keyword">when</span> <span class="Identifier">NimStackTraceMsgs</span><span class="Other">:</span> | |
<span class="Identifier">frameMsgLen</span><span class="Operator">*</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Comment">## end position in frameMsgBuf for this frame.</span> | |
</pre></dt> | |
<dd> | |
The frame itself. | |
</dd> | |
<a id="FileSeekPos"></a> | |
<dt><pre><a href="system.html#FileSeekPos"><span class="Identifier">FileSeekPos</span></a> <span class="Other">=</span> <span class="Keyword">enum</span> | |
<span class="Identifier">fspSet</span><span class="Other">,</span> <span class="Comment">## Seek to absolute value</span> | |
<span class="Identifier">fspCur</span><span class="Other">,</span> <span class="Comment">## Seek relative to current position</span> | |
<span class="Identifier">fspEnd</span> <span class="Comment">## Seek relative to end</span></pre></dt> | |
<dd> | |
Position relative to which seek should happen. | |
</dd> | |
<a id="ForeignCell"></a> | |
<dt><pre><a href="system.html#ForeignCell"><span class="Identifier">ForeignCell</span></a> <span class="Other">=</span> <span class="Keyword">object</span> | |
<span class="Identifier">data</span><span class="Operator">*</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a> | |
<span class="Identifier">owner</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">GcHeap</span> | |
</pre></dt> | |
<dd> | |
</dd> | |
<a id="BackwardsIndex"></a> | |
<dt><pre><a href="system.html#BackwardsIndex"><span class="Identifier">BackwardsIndex</span></a> <span class="Other">=</span> <span class="Keyword">distinct</span> <a href="system.html#int"><span class="Identifier">int</span></a></pre></dt> | |
<dd> | |
Type that is constructed by <tt class="docutils literal"><span class="pre">^</span></tt> for reversed array accesses. (See <a class="reference external" href="#^.t,int">^ template</a>) | |
</dd> | |
<a id="NimNode"></a> | |
<dt><pre><a href="system.html#NimNode"><span class="Identifier">NimNode</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"PNimrodNode"</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <span class="Keyword">ref</span> <span class="Identifier">NimNodeObj</span></pre></dt> | |
<dd> | |
Represents a Nim AST node. Macros operate on this type. | |
</dd> | |
<a id="ForLoopStmt"></a> | |
<dt><pre><a href="system.html#ForLoopStmt"><span class="Identifier">ForLoopStmt</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">compilerproc</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <span class="Keyword">object</span></pre></dt> | |
<dd> | |
A special type that marks a macro as a <span id="forminusloop-macro_1">for-loop macro</span>. See <a class="reference external" href="manual.html#macros-for-loop-macro">"For Loop Macro"</a>. | |
</dd> | |
</dl></div> | |
<div class="section" id="8"> | |
<h1><a class="toc-backref" href="#8">Vars</a></h1> | |
<dl class="item"> | |
<a id="programResult"></a> | |
<dt><pre><a href="system.html#programResult"><span class="Identifier">programResult</span></a><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a></pre></dt> | |
<dd> | |
deprecated, prefer <tt class="docutils literal"><span class="pre">quit</span></tt> or <tt class="docutils literal"><span class="pre">exitprocs.getProgramResult</span></tt>, <tt class="docutils literal"><span class="pre">exitprocs.setProgramResult</span></tt>. | |
</dd> | |
<a id="globalRaiseHook"></a> | |
<dt><pre><a href="system.html#globalRaiseHook"><span class="Identifier">globalRaiseHook</span></a><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">e</span><span class="Other">:</span> <span class="Keyword">ref</span> <a href="system.html#Exception"><span class="Identifier">Exception</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">nimcall</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>With this hook you can influence exception handling on a global level. If not nil, every 'raise' statement ends up calling this hook.</p> | |
<p><strong>Warning</strong>: Ordinary application code should never set this hook! You better know what you do when setting this.</p> | |
<p>If <tt class="docutils literal"><span class="pre">globalRaiseHook</span></tt> returns false, the exception is caught and does not propagate further through the call stack.</p> | |
</dd> | |
<a id="localRaiseHook"></a> | |
<dt><pre><a href="system.html#localRaiseHook"><span class="Identifier">localRaiseHook</span></a><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">e</span><span class="Other">:</span> <span class="Keyword">ref</span> <a href="system.html#Exception"><span class="Identifier">Exception</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">nimcall</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>With this hook you can influence exception handling on a thread local level. If not nil, every 'raise' statement ends up calling this hook.</p> | |
<p><strong>Warning</strong>: Ordinary application code should never set this hook! You better know what you do when setting this.</p> | |
<p>If <tt class="docutils literal"><span class="pre">localRaiseHook</span></tt> returns false, the exception is caught and does not propagate further through the call stack.</p> | |
</dd> | |
<a id="outOfMemHook"></a> | |
<dt><pre><a href="system.html#outOfMemHook"><span class="Identifier">outOfMemHook</span></a><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">nimcall</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Set this variable to provide a procedure that should be called in case of an <span id="out-of-memory_1">out of memory</span> event. The standard handler writes an error message and terminates the program.</p> | |
<p><tt class="docutils literal"><span class="pre">outOfMemHook</span></tt> can be used to raise an exception in case of OOM like so:</p> | |
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">gOutOfMem</span><span class="Punctuation">:</span> <span class="Keyword">ref</span> <span class="Identifier">EOutOfMemory</span> | |
<span class="Identifier">new</span><span class="Punctuation">(</span><span class="Identifier">gOutOfMem</span><span class="Punctuation">)</span> <span class="Comment"># need to be allocated *before* OOM really happened!</span> | |
<span class="Identifier">gOutOfMem</span><span class="Operator">.</span><span class="Identifier">msg</span> <span class="Operator">=</span> <span class="StringLit">"out of memory"</span> | |
<span class="Keyword">proc</span> <span class="Identifier">handleOOM</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Operator">=</span> | |
<span class="Keyword">raise</span> <span class="Identifier">gOutOfMem</span> | |
<span class="Identifier">system</span><span class="Operator">.</span><span class="Identifier">outOfMemHook</span> <span class="Operator">=</span> <span class="Identifier">handleOOM</span></pre><p>If the handler does not raise an exception, ordinary control flow continues and the program is terminated.</p> | |
</dd> | |
<a id="unhandledExceptionHook"></a> | |
<dt><pre><a href="system.html#unhandledExceptionHook"><span class="Identifier">unhandledExceptionHook</span></a><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">e</span><span class="Other">:</span> <span class="Keyword">ref</span> <a href="system.html#Exception"><span class="Identifier">Exception</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">nimcall</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> | |
<span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Set this variable to provide a procedure that should be called in case of an <tt class="docutils literal"><span class="pre">unhandle exception</span></tt> event. The standard handler writes an error message and terminates the program, except when using <tt class="docutils literal"><span class="pre">--os:any</span></tt> | |
</dd> | |
<a id="errorMessageWriter"></a> | |
<dt><pre><a href="system.html#errorMessageWriter"><span class="Identifier">errorMessageWriter</span></a><span class="Other">:</span> <span class="Other">(</span><span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">msg</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><a href="system.html#WriteIOEffect"><span class="Identifier">WriteIOEffect</span></a><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> | |
<span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">nimcall</span></span><span class="Other">.}</span></span><span class="Other">)</span></pre></dt> | |
<dd> | |
Function that will be called instead of <tt class="docutils literal"><span class="pre">stdmsg.write</span></tt> when printing stacktrace. Unstable API. | |
</dd> | |
<a id="frameMsgBuf"></a> | |
<dt><pre><a href="system.html#frameMsgBuf"><span class="Identifier">frameMsgBuf</span></a><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="onUnhandledException"></a> | |
<dt><pre><a href="system.html#onUnhandledException"><span class="Identifier">onUnhandledException</span></a><span class="Other">:</span> <span class="Other">(</span><span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">errorMsg</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">nimcall</span><span class="Other">,</span> <span class="Identifier">gcsafe</span></span><span class="Other">.}</span></span><span class="Other">)</span></pre></dt> | |
<dd> | |
<p>Set this error | |
handler to override the existing behaviour on an unhandled exception.</p> | |
<p>The default is to write a stacktrace to <tt class="docutils literal"><span class="pre">stderr</span></tt> and then call <tt class="docutils literal"><span class="pre">quit(1)</span></tt>. Unstable API.</p> | |
</dd> | |
</dl></div> | |
<div class="section" id="9"> | |
<h1><a class="toc-backref" href="#9">Lets</a></h1> | |
<dl class="item"> | |
<a id="nimvm"></a> | |
<dt><pre><a href="system.html#nimvm"><span class="Identifier">nimvm</span></a><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span class="Other">=</span> <span class="DecNumber">false</span></pre></dt> | |
<dd> | |
May be used only in <tt class="docutils literal"><span class="pre">when</span></tt> expression. It is true in Nim VM context and false otherwise. | |
</dd> | |
</dl></div> | |
<div class="section" id="10"> | |
<h1><a class="toc-backref" href="#10">Consts</a></h1> | |
<dl class="item"> | |
<a id="on"></a> | |
<dt><pre><a href="system.html#on"><span class="Identifier">on</span></a> <span class="Other">=</span> <span class="DecNumber">true</span></pre></dt> | |
<dd> | |
Alias for <tt class="docutils literal"><span class="pre">true</span></tt>. | |
</dd> | |
<a id="off"></a> | |
<dt><pre><a href="system.html#off"><span class="Identifier">off</span></a> <span class="Other">=</span> <span class="DecNumber">false</span></pre></dt> | |
<dd> | |
Alias for <tt class="docutils literal"><span class="pre">false</span></tt>. | |
</dd> | |
<a id="appType"></a> | |
<dt><pre><a href="system.html#appType"><span class="Identifier">appType</span></a><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span class="Other">=</span> <span class="StringLit">""</span></pre></dt> | |
<dd> | |
A string that describes the application type. Possible values: <tt class="docutils literal"><span class="pre">"console"</span></tt>, <tt class="docutils literal"><span class="pre">"gui"</span></tt>, <tt class="docutils literal"><span class="pre">"lib"</span></tt>. | |
</dd> | |
<a id="NoFakeVars"></a> | |
<dt><pre><a href="system.html#NoFakeVars"><span class="Identifier">NoFakeVars</span></a> <span class="Other">=</span> <span class="DecNumber">false</span></pre></dt> | |
<dd> | |
<tt class="docutils literal"><span class="pre">true</span></tt> if the backend doesn't support | |
"fake variables" like <tt class="docutils literal"><span class="pre">var EBADF {.importc.}: cint</span></tt>. | |
</dd> | |
<a id="isMainModule"></a> | |
<dt><pre><a href="system.html#isMainModule"><span class="Identifier">isMainModule</span></a><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span class="Other">=</span> <span class="DecNumber">false</span></pre></dt> | |
<dd> | |
True only when accessed in the main module. This works thanks to compiler magic. It is useful to embed testing code in a module. | |
</dd> | |
<a id="CompileDate"></a> | |
<dt><pre><a href="system.html#CompileDate"><span class="Identifier">CompileDate</span></a><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span class="Other">=</span> <span class="StringLit">"0000-00-00"</span></pre></dt> | |
<dd> | |
The date (in UTC) of compilation as a string of the form <tt class="docutils literal"><span class="pre">YYYY-MM-DD</span></tt>. This works thanks to compiler magic. | |
</dd> | |
<a id="CompileTime"></a> | |
<dt><pre><a href="system.html#CompileTime"><span class="Identifier">CompileTime</span></a><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span class="Other">=</span> <span class="StringLit">"00:00:00"</span></pre></dt> | |
<dd> | |
The time (in UTC) of compilation as a string of the form <tt class="docutils literal"><span class="pre">HH:MM:SS</span></tt>. This works thanks to compiler magic. | |
</dd> | |
<a id="cpuEndian"></a> | |
<dt><pre><a href="system.html#cpuEndian"><span class="Identifier">cpuEndian</span></a><span class="Other">:</span> <a href="system.html#Endianness"><span class="Identifier">Endianness</span></a> <span class="Other">=</span> <span class="DecNumber">littleEndian</span></pre></dt> | |
<dd> | |
The endianness of the target CPU. This is a valuable piece of information for low-level code only. This works thanks to compiler magic. | |
</dd> | |
<a id="hostOS"></a> | |
<dt><pre><a href="system.html#hostOS"><span class="Identifier">hostOS</span></a><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span class="Other">=</span> <span class="StringLit">""</span></pre></dt> | |
<dd> | |
<p>A string that describes the host operating system.</p> | |
<p>Possible values: <tt class="docutils literal"><span class="pre">"windows"</span></tt>, <tt class="docutils literal"><span class="pre">"macosx"</span></tt>, <tt class="docutils literal"><span class="pre">"linux"</span></tt>, <tt class="docutils literal"><span class="pre">"netbsd"</span></tt>, <tt class="docutils literal"><span class="pre">"freebsd"</span></tt>, <tt class="docutils literal"><span class="pre">"openbsd"</span></tt>, <tt class="docutils literal"><span class="pre">"solaris"</span></tt>, <tt class="docutils literal"><span class="pre">"aix"</span></tt>, <tt class="docutils literal"><span class="pre">"haiku"</span></tt>, <tt class="docutils literal"><span class="pre">"standalone"</span></tt>.</p> | |
</dd> | |
<a id="hostCPU"></a> | |
<dt><pre><a href="system.html#hostCPU"><span class="Identifier">hostCPU</span></a><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span class="Other">=</span> <span class="StringLit">""</span></pre></dt> | |
<dd> | |
<p>A string that describes the host CPU.</p> | |
<p>Possible values: <tt class="docutils literal"><span class="pre">"i386"</span></tt>, <tt class="docutils literal"><span class="pre">"alpha"</span></tt>, <tt class="docutils literal"><span class="pre">"powerpc"</span></tt>, <tt class="docutils literal"><span class="pre">"powerpc64"</span></tt>, <tt class="docutils literal"><span class="pre">"powerpc64el"</span></tt>, <tt class="docutils literal"><span class="pre">"sparc"</span></tt>, <tt class="docutils literal"><span class="pre">"amd64"</span></tt>, <tt class="docutils literal"><span class="pre">"mips"</span></tt>, <tt class="docutils literal"><span class="pre">"mipsel"</span></tt>, <tt class="docutils literal"><span class="pre">"arm"</span></tt>, <tt class="docutils literal"><span class="pre">"arm64"</span></tt>, <tt class="docutils literal"><span class="pre">"mips64"</span></tt>, <tt class="docutils literal"><span class="pre">"mips64el"</span></tt>, <tt class="docutils literal"><span class="pre">"riscv32"</span></tt>, <tt class="docutils literal"><span class="pre">"riscv64"</span></tt>.</p> | |
</dd> | |
<a id="nimEnableCovariance"></a> | |
<dt><pre><a href="system.html#nimEnableCovariance"><span class="Identifier">nimEnableCovariance</span></a> <span class="Other">=</span> <span class="DecNumber">false</span></pre></dt> | |
<dd> | |
</dd> | |
<a id="QuitSuccess"></a> | |
<dt><pre><a href="system.html#QuitSuccess"><span class="Identifier">QuitSuccess</span></a> <span class="Other">=</span> <span class="DecNumber">0</span></pre></dt> | |
<dd> | |
is the value that should be passed to <a class="reference external" href="#quit,int">quit</a> to indicate success. | |
</dd> | |
<a id="QuitFailure"></a> | |
<dt><pre><a href="system.html#QuitFailure"><span class="Identifier">QuitFailure</span></a> <span class="Other">=</span> <span class="DecNumber">1</span></pre></dt> | |
<dd> | |
is the value that should be passed to <a class="reference external" href="#quit,int">quit</a> to indicate failure. | |
</dd> | |
<a id="Inf"></a> | |
<dt><pre><a href="system.html#Inf"><span class="Identifier">Inf</span></a> <span class="Other">=</span> <span class="FloatNumber">0x7FF0000000000000'f64</span></pre></dt> | |
<dd> | |
Contains the IEEE floating point value of positive infinity. | |
</dd> | |
<a id="NegInf"></a> | |
<dt><pre><a href="system.html#NegInf"><span class="Identifier">NegInf</span></a> <span class="Other">=</span> <span class="FloatNumber">0xFFF0000000000000'f64</span></pre></dt> | |
<dd> | |
Contains the IEEE floating point value of negative infinity. | |
</dd> | |
<a id="NaN"></a> | |
<dt><pre><a href="system.html#NaN"><span class="Identifier">NaN</span></a> <span class="Other">=</span> <span class="FloatNumber">0x7FF7FFFFFFFFFFFF'f64</span></pre></dt> | |
<dd> | |
<p>Contains an IEEE floating point value of <em>Not A Number</em>.</p> | |
<p>Note that you cannot compare a floating point value to this value and expect a reasonable result - use the <tt class="docutils literal"><span class="pre">isNaN</span></tt> or <tt class="docutils literal"><span class="pre">classify</span></tt> procedure in the <a class="reference external" href="math.html">math module</a> for checking for NaN.</p> | |
</dd> | |
<a id="nimCoroutines"></a> | |
<dt><pre><a href="system.html#nimCoroutines"><span class="Identifier">nimCoroutines</span></a> <span class="Other">=</span> <span class="DecNumber">false</span></pre></dt> | |
<dd> | |
</dd> | |
<a id="NimMajor"></a> | |
<dt><pre><a href="system.html#NimMajor"><span class="Identifier">NimMajor</span></a><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Other">=</span> <span class="DecNumber">1</span></pre></dt> | |
<dd> | |
is the major number of Nim's version. Example:<pre class="listing"><span class="Keyword">when</span> <span class="Punctuation">(</span><span class="Identifier">NimMajor</span><span class="Punctuation">,</span> <span class="Identifier">NimMinor</span><span class="Punctuation">,</span> <span class="Identifier">NimPatch</span><span class="Punctuation">)</span> <span class="Operator">>=</span> <span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Keyword">discard</span></pre> | |
</dd> | |
<a id="NimMinor"></a> | |
<dt><pre><a href="system.html#NimMinor"><span class="Identifier">NimMinor</span></a><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Other">=</span> <span class="DecNumber">5</span></pre></dt> | |
<dd> | |
is the minor number of Nim's version. Odd for devel, even for releases. | |
</dd> | |
<a id="NimPatch"></a> | |
<dt><pre><a href="system.html#NimPatch"><span class="Identifier">NimPatch</span></a><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Other">=</span> <span class="DecNumber">1</span></pre></dt> | |
<dd> | |
is the patch number of Nim's version. Odd for devel, even for releases. | |
</dd> | |
<a id="NimVersion"></a> | |
<dt><pre><a href="system.html#NimVersion"><span class="Identifier">NimVersion</span></a><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span class="Other">=</span> <span class="StringLit">"1.5.1"</span></pre></dt> | |
<dd> | |
is the version of Nim as a string. | |
</dd> | |
<a id="nativeStackTraceSupported"></a> | |
<dt><pre><a href="system.html#nativeStackTraceSupported"><span class="Identifier">nativeStackTraceSupported</span></a> <span class="Other">=</span> <span class="DecNumber">false</span></pre></dt> | |
<dd> | |
</dd> | |
</dl></div> | |
<div class="section" id="12"> | |
<h1><a class="toc-backref" href="#12">Procs</a></h1> | |
<dl class="item"> | |
<a id="not,bool"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#not%2Cbool"><span class="Identifier">`not`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Not"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Boolean not; returns true if <tt class="docutils literal"><span class="pre">x == false</span></tt>. | |
</dd> | |
<a id="and,bool,bool"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#and%2Cbool%2Cbool"><span class="Identifier">`and`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"And"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Boolean <tt class="docutils literal"><span class="pre">and</span></tt>; returns true if <tt class="docutils literal"><span class="pre">x == y == true</span></tt> (if both arguments are true).</p> | |
<p>Evaluation is lazy: if <tt class="docutils literal"><span class="pre">x</span></tt> is false, <tt class="docutils literal"><span class="pre">y</span></tt> will not even be evaluated.</p> | |
</dd> | |
<a id="or,bool,bool"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#or%2Cbool%2Cbool"><span class="Identifier">`or`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Or"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Boolean <tt class="docutils literal"><span class="pre">or</span></tt>; returns true if <tt class="docutils literal"><span class="pre">not (not x and not y)</span></tt> (if any of the arguments is true).</p> | |
<p>Evaluation is lazy: if <tt class="docutils literal"><span class="pre">x</span></tt> is true, <tt class="docutils literal"><span class="pre">y</span></tt> will not even be evaluated.</p> | |
</dd> | |
<a id="xor,bool,bool"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#xor%2Cbool%2Cbool"><span class="Identifier">`xor`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Xor"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Boolean <tt class="docutils literal"><span class="pre">exclusive or</span></tt>; returns true if <tt class="docutils literal"><span class="pre">x != y</span></tt> (if either argument is true while the other is false). | |
</dd> | |
<a id="compileOption,string"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#compileOption%2Cstring"><span class="Identifier">compileOption</span></a><span class="Other">(</span><span class="Identifier">option</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"CompileOption"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Can be used to determine an <tt class="docutils literal"><span class="pre">on|off</span></tt> compile-time option. Example:<pre class="listing"><span class="Keyword">when</span> <span class="Identifier">compileOption</span><span class="Punctuation">(</span><span class="StringLit">"floatchecks"</span><span class="Punctuation">)</span><span class="Punctuation">:</span> | |
<span class="Identifier">echo</span> <span class="StringLit">"compiled with floating point NaN and Inf checks"</span></pre> | |
</dd> | |
<a id="compileOption,string,string"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#compileOption%2Cstring%2Cstring"><span class="Identifier">compileOption</span></a><span class="Other">(</span><span class="Identifier">option</span><span class="Other">,</span> <span class="Identifier">arg</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"CompileOptionArg"</span><span class="Other">,</span> | |
<span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Can be used to determine an enum compile-time option. Example:<pre class="listing"><span class="Keyword">when</span> <span class="Identifier">compileOption</span><span class="Punctuation">(</span><span class="StringLit">"opt"</span><span class="Punctuation">,</span> <span class="StringLit">"size"</span><span class="Punctuation">)</span> <span class="Keyword">and</span> <span class="Identifier">compileOption</span><span class="Punctuation">(</span><span class="StringLit">"gc"</span><span class="Punctuation">,</span> <span class="StringLit">"boehm"</span><span class="Punctuation">)</span><span class="Punctuation">:</span> | |
<span class="Identifier">echo</span> <span class="StringLit">"compiled with optimization for size and uses Boehm's GC"</span></pre> | |
</dd> | |
<a id="or,typedesc,typedesc"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#or%2Ctypedesc%2Ctypedesc"><span class="Identifier">`or`</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"TypeTrait"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Constructs an <tt class="docutils literal"><span class="pre">or</span></tt> meta class. | |
</dd> | |
<a id="and,typedesc,typedesc"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#and%2Ctypedesc%2Ctypedesc"><span class="Identifier">`and`</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"TypeTrait"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Constructs an <tt class="docutils literal"><span class="pre">and</span></tt> meta class. | |
</dd> | |
<a id="not,typedesc"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#not%2Ctypedesc"><span class="Identifier">`not`</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"TypeTrait"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Constructs an <tt class="docutils literal"><span class="pre">not</span></tt> meta class. | |
</dd> | |
<a id="defined,untyped"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#defined%2Cuntyped"><span class="Identifier">defined</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Defined"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">compileTime</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Special compile-time procedure that checks whether <tt class="docutils literal"><span class="pre">x</span></tt> is defined.</p> | |
<p><tt class="docutils literal"><span class="pre">x</span></tt> is an external symbol introduced through the compiler's <a class="reference external" href="nimc.html#compiler-usage-compileminustime-symbols">-d:x switch</a> to enable build time conditionals:</p> | |
<pre class="listing"><span class="Keyword">when</span> <span class="Keyword">not</span> <span class="Identifier">defined</span><span class="Punctuation">(</span><span class="Identifier">release</span><span class="Punctuation">)</span><span class="Punctuation">:</span> | |
<span class="Comment"># Do here programmer friendly expensive sanity checks.</span> | |
<span class="Comment"># Put here the normal code</span></pre> | |
</dd> | |
<a id="runnableExamples,string,untyped"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#runnableExamples%2Cstring%2Cuntyped"><span class="Identifier">runnableExamples</span></a><span class="Other">(</span><span class="Identifier">rdoccmd</span> <span class="Other">=</span> <span class="StringLit">""</span><span class="Other">;</span> <span class="Identifier">body</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"RunnableExamples"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
A section you should use to mark <span id="runnable-example_1">runnable example</span> code with.<ul class="simple"><li>In normal debug and release builds code within a <tt class="docutils literal"><span class="pre">runnableExamples</span></tt> section is ignored.</li> | |
<li>The documentation generator is aware of these examples and considers them part of the <tt class="docutils literal"><span class="pre">##</span></tt> doc comment. As the last step of documentation generation each runnableExample is put in its own file <tt class="docutils literal"><span class="pre">$file_examples$i.nim</span></tt>, compiled and tested. The collected examples are put into their own module to ensure the examples do not refer to non-exported symbols.</li> | |
</ul> | |
<p>Usage:</p> | |
<pre class="listing"><span class="Keyword">proc</span> <span class="Identifier">double</span><span class="Operator">*</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">:</span> <span class="Identifier">int</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Identifier">int</span> <span class="Operator">=</span> | |
<span class="Comment">## This proc doubles a number.</span> | |
<span class="Identifier">runnableExamples</span><span class="Punctuation">:</span> | |
<span class="Comment">## at module scope</span> | |
<span class="Identifier">assert</span> <span class="Identifier">double</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">10</span> | |
<span class="Keyword">block</span><span class="Punctuation">:</span> <span class="Comment">## at block scope</span> | |
<span class="Keyword">defer</span><span class="Punctuation">:</span> <span class="Identifier">echo</span> <span class="StringLit">"done"</span> | |
<span class="Identifier">result</span> <span class="Operator">=</span> <span class="DecNumber">2</span> <span class="Operator">*</span> <span class="Identifier">x</span> | |
<span class="Identifier">runnableExamples</span> <span class="StringLit">"-d:foo -b:cpp"</span><span class="Punctuation">:</span> | |
<span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">compilesettings</span> | |
<span class="Identifier">doAssert</span> <span class="Identifier">querySetting</span><span class="Punctuation">(</span><span class="Identifier">backend</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"cpp"</span> | |
<span class="Identifier">runnableExamples</span> <span class="StringLit">"-r:off"</span><span class="Punctuation">:</span> <span class="Comment">## this one is only compiled</span> | |
<span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">browsers</span> | |
<span class="Identifier">openDefaultBrowser</span> <span class="StringLit">"https://forum.nim-lang.org/"</span></pre> | |
</dd> | |
<a id="declared,untyped"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#declared%2Cuntyped"><span class="Identifier">declared</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Declared"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">compileTime</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Special compile-time procedure that checks whether <tt class="docutils literal"><span class="pre">x</span></tt> is declared. <tt class="docutils literal"><span class="pre">x</span></tt> has to be an identifier or a qualified identifier.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#declaredInScope,untyped">declaredInScope</a></li> | |
</ul> | |
<p>This can be used to check whether a library provides a certain feature or not:</p> | |
<pre class="listing"><span class="Keyword">when</span> <span class="Keyword">not</span> <span class="Identifier">declared</span><span class="Punctuation">(</span><span class="Identifier">strutils</span><span class="Operator">.</span><span class="Identifier">toUpper</span><span class="Punctuation">)</span><span class="Punctuation">:</span> | |
<span class="Comment"># provide our own toUpper proc here, because strutils is</span> | |
<span class="Comment"># missing it.</span></pre> | |
</dd> | |
<a id="declaredInScope,untyped"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#declaredInScope%2Cuntyped"><span class="Identifier">declaredInScope</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"DeclaredInScope"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> | |
<span class="Identifier">compileTime</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Special compile-time procedure that checks whether <tt class="docutils literal"><span class="pre">x</span></tt> is declared in the current scope. <tt class="docutils literal"><span class="pre">x</span></tt> has to be an identifier. | |
</dd> | |
<a id="addr,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#addr%2CT"><span class="Identifier">`addr`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">T</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Addr"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Builtin <tt class="docutils literal"><span class="pre">addr</span></tt> operator for taking the address of a memory location. Cannot be overloaded.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#unsafeAddr,T">unsafeAddr</a></li> | |
</ul> | |
<pre class="listing"><span class="Keyword">var</span> | |
<span class="Identifier">buf</span><span class="Punctuation">:</span> <span class="Identifier">seq</span><span class="Punctuation">[</span><span class="Identifier">char</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="CharLit">'a'</span><span class="Punctuation">,</span><span class="CharLit">'b'</span><span class="Punctuation">,</span><span class="CharLit">'c'</span><span class="Punctuation">]</span> | |
<span class="Identifier">p</span> <span class="Operator">=</span> <span class="Identifier">buf</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">]</span><span class="Operator">.</span><span class="Keyword">addr</span> | |
<span class="Identifier">echo</span> <span class="Identifier">p</span><span class="Operator">.</span><span class="Identifier">repr</span> <span class="Comment"># ref 0x7faa35c40059 --> 'b'</span> | |
<span class="Identifier">echo</span> <span class="Identifier">p</span><span class="Punctuation">[</span><span class="Punctuation">]</span> <span class="Comment"># b</span></pre> | |
</dd> | |
<a id="unsafeAddr,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#unsafeAddr%2CT"><span class="Identifier">unsafeAddr</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">T</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Addr"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Builtin <tt class="docutils literal"><span class="pre">addr</span></tt> operator for taking the address of a memory location. This works even for <tt class="docutils literal"><span class="pre">let</span></tt> variables or parameters for better interop with C and so it is considered even more unsafe than the ordinary <a class="reference external" href="#addr,T">addr</a>.</p> | |
<p><strong>Note</strong>: When you use it to write a wrapper for a C library, you should always check that the original library does never write to data behind the pointer that is returned from this procedure.</p> | |
<p>Cannot be overloaded.</p> | |
</dd> | |
<a id="typeof,untyped"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#typeof%2Cuntyped"><span class="Identifier">typeof</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a><span class="Other">;</span> <span class="Identifier">mode</span> <span class="Other">=</span> <span class="Identifier">typeOfIter</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"TypeOf"</span><span class="Other">,</span> | |
<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">compileTime</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Builtin <tt class="docutils literal"><span class="pre">typeof</span></tt> operation for accessing the type of an expression. Since version 0.20.0. | |
</dd> | |
<a id="internalNew,ref.T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#internalNew%2Cref.T"><span class="Identifier">internalNew</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Keyword">ref</span> <span class="Identifier">T</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"New"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Leaked implementation detail. Do not use. | |
</dd> | |
<a id="new,ref.T,proc(ref.T)"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#new%2Cref.T%2Cproc%28ref.T%29"><span class="Identifier">new</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Keyword">ref</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">finalizer</span><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">ref</span> <span class="Identifier">T</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">nimcall</span></span><span class="Other">.}</span></span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"> | |
<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"NewFinalize"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Creates a new object of type <tt class="docutils literal"><span class="pre">T</span></tt> and returns a safe (traced) reference to it in <tt class="docutils literal"><span class="pre">a</span></tt>.</p> | |
<p>When the garbage collector frees the object, <tt class="docutils literal"><span class="pre">finalizer</span></tt> is called. The <tt class="docutils literal"><span class="pre">finalizer</span></tt> may not keep a reference to the object pointed to by <tt class="docutils literal"><span class="pre">x</span></tt>. The <tt class="docutils literal"><span class="pre">finalizer</span></tt> cannot prevent the GC from freeing the object.</p> | |
<p><strong>Note</strong>: The <tt class="docutils literal"><span class="pre">finalizer</span></tt> refers to the type <tt class="docutils literal"><span class="pre">T</span></tt>, not to the object! This means that for each object of type <tt class="docutils literal"><span class="pre">T</span></tt> the finalizer will be called!</p> | |
</dd> | |
<a id="wasMoved,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#wasMoved%2CT"><span class="Identifier">wasMoved</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">T</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"WasMoved"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Resets an object <tt class="docutils literal"><span class="pre">obj</span></tt> to its initial (binary zero) value to signify it was "moved" and to signify its destructor should do nothing and ideally be optimized away. | |
</dd> | |
<a id="move,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#move%2CT"><span class="Identifier">move</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Move"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="high,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#high%2CT"><span class="Identifier">high</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#Ordinal"><span class="Identifier">Ordinal</span></a> <span class="Operator">|</span> <span class="Keyword">enum</span> <span class="Operator">|</span> <a href="system.html#range"><span class="Identifier">range</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"High"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"Deprecated since v1.4; there should not be `high(value)`. Use `high(type)`."</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<div class="deprecation-message"> | |
<b>Deprecated:</b> Deprecated since v1.4; there should not be `high(value)`. Use `high(type)`. | |
</div> | |
<p>Returns the highest possible value of an ordinal value <tt class="docutils literal"><span class="pre">x</span></tt>.</p> | |
<p>As a special semantic rule, <tt class="docutils literal"><span class="pre">x</span></tt> may also be a type identifier.</p> | |
<p><strong>This proc is deprecated</strong>, use this one instead:</p> | |
<ul class="simple"><li><a class="reference external" href="#high,typedesc[T]">high(typedesc)</a></li> | |
</ul> | |
<pre class="listing"><span class="Identifier">high</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Comment"># => 9223372036854775807</span></pre> | |
</dd> | |
<a id="high,typedesc[T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#high%2Ctypedesc%5BT%5D"><span class="Identifier">high</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#Ordinal"><span class="Identifier">Ordinal</span></a> <span class="Operator">|</span> <span class="Keyword">enum</span> <span class="Operator">|</span> <a href="system.html#range"><span class="Identifier">range</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"High"</span><span class="Other">,</span> | |
<span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Returns the highest possible value of an ordinal or enum type.</p> | |
<p><tt class="docutils literal"><span class="pre">high(int)</span></tt> is Nim's way of writing <span id="int-max_1">INT_MAX</span> or <span id="max-int_1">MAX_INT</span>.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#low,typedesc[T]">low(typedesc)</a></li> | |
</ul> | |
<pre class="listing"><span class="Identifier">high</span><span class="Punctuation">(</span><span class="Identifier">int</span><span class="Punctuation">)</span> <span class="Comment"># => 9223372036854775807</span></pre> | |
</dd> | |
<a id="high,openArray[T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#high%2CopenArray%5BT%5D"><span class="Identifier">high</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"High"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Returns the highest possible index of a sequence <tt class="docutils literal"><span class="pre">x</span></tt>.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#low,openArray[T]">low(openArray)</a></li> | |
</ul> | |
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">s</span> <span class="Operator">=</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">]</span> | |
<span class="Identifier">high</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span> <span class="Comment"># => 6</span> | |
<span class="Keyword">for</span> <span class="Identifier">i</span> <span class="Keyword">in</span> <span class="Identifier">low</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span><span class="Operator">..</span><span class="Identifier">high</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span><span class="Punctuation">:</span> | |
<span class="Identifier">echo</span> <span class="Identifier">s</span><span class="Punctuation">[</span><span class="Identifier">i</span><span class="Punctuation">]</span></pre> | |
</dd> | |
<a id="high,array[I,T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#high%2Carray%5BI%2CT%5D"><span class="Identifier">high</span></a><span class="Other">[</span><span class="Identifier">I</span><span class="Other">,</span> <span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#array"><span class="Identifier">array</span></a><span class="Other">[</span><span class="Identifier">I</span><span class="Other">,</span> <span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">I</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"High"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Returns the highest possible index of an array <tt class="docutils literal"><span class="pre">x</span></tt>.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#low,array[I,T]">low(array)</a></li> | |
</ul> | |
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">arr</span> <span class="Operator">=</span> <span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">]</span> | |
<span class="Identifier">high</span><span class="Punctuation">(</span><span class="Identifier">arr</span><span class="Punctuation">)</span> <span class="Comment"># => 6</span> | |
<span class="Keyword">for</span> <span class="Identifier">i</span> <span class="Keyword">in</span> <span class="Identifier">low</span><span class="Punctuation">(</span><span class="Identifier">arr</span><span class="Punctuation">)</span><span class="Operator">..</span><span class="Identifier">high</span><span class="Punctuation">(</span><span class="Identifier">arr</span><span class="Punctuation">)</span><span class="Punctuation">:</span> | |
<span class="Identifier">echo</span> <span class="Identifier">arr</span><span class="Punctuation">[</span><span class="Identifier">i</span><span class="Punctuation">]</span></pre> | |
</dd> | |
<a id="high,typedesc[array[I,T]]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#high%2Ctypedesc%5Barray%5BI%2CT%5D%5D"><span class="Identifier">high</span></a><span class="Other">[</span><span class="Identifier">I</span><span class="Other">,</span> <span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">[</span><a href="system.html#array"><span class="Identifier">array</span></a><span class="Other">[</span><span class="Identifier">I</span><span class="Other">,</span> <span class="Identifier">T</span><span class="Other">]</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">I</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"High"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Returns the highest possible index of an array type.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#low,typedesc[array[I,T]]">low(typedesc[array])</a></li> | |
</ul> | |
<pre class="listing"><span class="Identifier">high</span><span class="Punctuation">(</span><span class="Identifier">array</span><span class="Punctuation">[</span><span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">)</span> <span class="Comment"># => 6</span></pre> | |
</dd> | |
<a id="high,cstring"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#high%2Ccstring"><span class="Identifier">high</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"High"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Returns the highest possible index of a compatible string <tt class="docutils literal"><span class="pre">x</span></tt>. This is sometimes an O(n) operation.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#low,cstring">low(cstring)</a></li> | |
</ul> | |
</dd> | |
<a id="high,string"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#high%2Cstring"><span class="Identifier">high</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"High"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Returns the highest possible index of a string <tt class="docutils literal"><span class="pre">x</span></tt>.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#low,string">low(string)</a></li> | |
</ul> | |
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">str</span> <span class="Operator">=</span> <span class="StringLit">"Hello world!"</span> | |
<span class="Identifier">high</span><span class="Punctuation">(</span><span class="Identifier">str</span><span class="Punctuation">)</span> <span class="Comment"># => 11</span></pre> | |
</dd> | |
<a id="low,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#low%2CT"><span class="Identifier">low</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#Ordinal"><span class="Identifier">Ordinal</span></a> <span class="Operator">|</span> <span class="Keyword">enum</span> <span class="Operator">|</span> <a href="system.html#range"><span class="Identifier">range</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Low"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"Deprecated since v1.4; there should not be `low(value)`. Use `low(type)`."</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<div class="deprecation-message"> | |
<b>Deprecated:</b> Deprecated since v1.4; there should not be `low(value)`. Use `low(type)`. | |
</div> | |
<p>Returns the lowest possible value of an ordinal value <tt class="docutils literal"><span class="pre">x</span></tt>. As a special semantic rule, <tt class="docutils literal"><span class="pre">x</span></tt> may also be a type identifier.</p> | |
<p><strong>This proc is deprecated</strong>, use this one instead:</p> | |
<ul class="simple"><li><a class="reference external" href="#low,typedesc[T]">low(typedesc)</a></li> | |
</ul> | |
<pre class="listing"><span class="Identifier">low</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Comment"># => -9223372036854775808</span></pre> | |
</dd> | |
<a id="low,typedesc[T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#low%2Ctypedesc%5BT%5D"><span class="Identifier">low</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#Ordinal"><span class="Identifier">Ordinal</span></a> <span class="Operator">|</span> <span class="Keyword">enum</span> <span class="Operator">|</span> <a href="system.html#range"><span class="Identifier">range</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Low"</span><span class="Other">,</span> | |
<span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Returns the lowest possible value of an ordinal or enum type.</p> | |
<p><tt class="docutils literal"><span class="pre">low(int)</span></tt> is Nim's way of writing <span id="int-min_1">INT_MIN</span> or <span id="min-int_1">MIN_INT</span>.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#high,typedesc[T]">high(typedesc)</a></li> | |
</ul> | |
<pre class="listing"><span class="Identifier">low</span><span class="Punctuation">(</span><span class="Identifier">int</span><span class="Punctuation">)</span> <span class="Comment"># => -9223372036854775808</span></pre> | |
</dd> | |
<a id="low,openArray[T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#low%2CopenArray%5BT%5D"><span class="Identifier">low</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Low"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Returns the lowest possible index of a sequence <tt class="docutils literal"><span class="pre">x</span></tt>.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#high,openArray[T]">high(openArray)</a></li> | |
</ul> | |
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">s</span> <span class="Operator">=</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">]</span> | |
<span class="Identifier">low</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span> <span class="Comment"># => 0</span> | |
<span class="Keyword">for</span> <span class="Identifier">i</span> <span class="Keyword">in</span> <span class="Identifier">low</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span><span class="Operator">..</span><span class="Identifier">high</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span><span class="Punctuation">:</span> | |
<span class="Identifier">echo</span> <span class="Identifier">s</span><span class="Punctuation">[</span><span class="Identifier">i</span><span class="Punctuation">]</span></pre> | |
</dd> | |
<a id="low,array[I,T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#low%2Carray%5BI%2CT%5D"><span class="Identifier">low</span></a><span class="Other">[</span><span class="Identifier">I</span><span class="Other">,</span> <span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#array"><span class="Identifier">array</span></a><span class="Other">[</span><span class="Identifier">I</span><span class="Other">,</span> <span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">I</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Low"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Returns the lowest possible index of an array <tt class="docutils literal"><span class="pre">x</span></tt>.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#high,array[I,T]">high(array)</a></li> | |
</ul> | |
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">arr</span> <span class="Operator">=</span> <span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">]</span> | |
<span class="Identifier">low</span><span class="Punctuation">(</span><span class="Identifier">arr</span><span class="Punctuation">)</span> <span class="Comment"># => 0</span> | |
<span class="Keyword">for</span> <span class="Identifier">i</span> <span class="Keyword">in</span> <span class="Identifier">low</span><span class="Punctuation">(</span><span class="Identifier">arr</span><span class="Punctuation">)</span><span class="Operator">..</span><span class="Identifier">high</span><span class="Punctuation">(</span><span class="Identifier">arr</span><span class="Punctuation">)</span><span class="Punctuation">:</span> | |
<span class="Identifier">echo</span> <span class="Identifier">arr</span><span class="Punctuation">[</span><span class="Identifier">i</span><span class="Punctuation">]</span></pre> | |
</dd> | |
<a id="low,typedesc[array[I,T]]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#low%2Ctypedesc%5Barray%5BI%2CT%5D%5D"><span class="Identifier">low</span></a><span class="Other">[</span><span class="Identifier">I</span><span class="Other">,</span> <span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">[</span><a href="system.html#array"><span class="Identifier">array</span></a><span class="Other">[</span><span class="Identifier">I</span><span class="Other">,</span> <span class="Identifier">T</span><span class="Other">]</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">I</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Low"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Returns the lowest possible index of an array type.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#high,typedesc[array[I,T]]">high(typedesc[array])</a></li> | |
</ul> | |
<pre class="listing"><span class="Identifier">low</span><span class="Punctuation">(</span><span class="Identifier">array</span><span class="Punctuation">[</span><span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">)</span> <span class="Comment"># => 0</span></pre> | |
</dd> | |
<a id="low,cstring"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#low%2Ccstring"><span class="Identifier">low</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Low"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Returns the lowest possible index of a compatible string <tt class="docutils literal"><span class="pre">x</span></tt>.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#high,cstring">high(cstring)</a></li> | |
</ul> | |
</dd> | |
<a id="low,string"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#low%2Cstring"><span class="Identifier">low</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Low"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Returns the lowest possible index of a string <tt class="docutils literal"><span class="pre">x</span></tt>.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#high,string">high(string)</a></li> | |
</ul> | |
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">str</span> <span class="Operator">=</span> <span class="StringLit">"Hello world!"</span> | |
<span class="Identifier">low</span><span class="Punctuation">(</span><span class="Identifier">str</span><span class="Punctuation">)</span> <span class="Comment"># => 0</span></pre> | |
</dd> | |
<a id="shallowCopy,T,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#shallowCopy%2CT%2CT"><span class="Identifier">shallowCopy</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ShallowCopy"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Use this instead of <tt class="docutils literal"><span class="pre">=</span></tt> for a <span id="shallow-copy_1">shallow copy</span>.</p> | |
<p>The shallow copy only changes the semantics for sequences and strings (and types which contain those).</p> | |
<p>Be careful with the changed semantics though! There is a reason why the default assignment does a deep copy of sequences and strings.</p> | |
</dd> | |
<a id="[],T,I"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2CT%2CI"><span class="Identifier">`[]`</span></a><span class="Other">[</span><span class="Identifier">I</span><span class="Other">:</span> <a href="system.html#Ordinal"><span class="Identifier">Ordinal</span></a><span class="Other">;</span> <span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">i</span><span class="Other">:</span> <span class="Identifier">I</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ArrGet"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="[]=,T,I,sinkS"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2CT%2CI%2CsinkS"><span class="Identifier">`[]=`</span></a><span class="Other">[</span><span class="Identifier">I</span><span class="Other">:</span> <a href="system.html#Ordinal"><span class="Identifier">Ordinal</span></a><span class="Other">;</span> <span class="Identifier">T</span><span class="Other">,</span> <span class="Identifier">S</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">i</span><span class="Other">:</span> <span class="Identifier">I</span><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#sink"><span class="Identifier">sink</span></a> <span class="Identifier">S</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> | |
<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ArrPut"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="=,T,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%2CT%2CT"><span class="Identifier">`=`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">dest</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">src</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Asgn"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="=destroy,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3Ddestroy%2CT"><span class="Identifier">`=destroy`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">T</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Destroy"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Generic <span id="destructor_1">destructor</span> implementation that can be overridden. | |
</dd> | |
<a id="=sink,T,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3Dsink%2CT%2CT"><span class="Identifier">`=sink`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Asgn"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Generic <span id="sink_1">sink</span> implementation that can be overridden. | |
</dd> | |
<a id="..,sinkT,sinkU"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#..%2CsinkT%2CsinkU"><span class="Identifier">`..`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">,</span> <span class="Identifier">U</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="system.html#sink"><span class="Identifier">sink</span></a> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="system.html#sink"><span class="Identifier">sink</span></a> <span class="Identifier">U</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#HSlice"><span class="Identifier">HSlice</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">,</span> <span class="Identifier">U</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> | |
<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"DotDot"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Binary <span id="slice_1">slice</span> operator that constructs an interval <tt class="docutils literal"><span class="pre">[a, b]</span></tt>, both <tt class="docutils literal"><span class="pre">a</span></tt> and <tt class="docutils literal"><span class="pre">b</span></tt> are inclusive.</p> | |
<p>Slices can also be used in the set constructor and in ordinal case statements, but then they are special-cased by the compiler.</p> | |
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">[</span><span class="DecNumber">10</span><span class="Punctuation">,</span> <span class="DecNumber">20</span><span class="Punctuation">,</span> <span class="DecNumber">30</span><span class="Punctuation">,</span> <span class="DecNumber">40</span><span class="Punctuation">,</span> <span class="DecNumber">50</span><span class="Punctuation">]</span> | |
<span class="Identifier">echo</span> <span class="Identifier">a</span><span class="Punctuation">[</span><span class="DecNumber">2</span> <span class="Operator">..</span> <span class="DecNumber">3</span><span class="Punctuation">]</span> <span class="Comment"># @[30, 40]</span></pre> | |
</dd> | |
<a id="..,sinkT"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#..%2CsinkT"><span class="Identifier">`..`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">b</span><span class="Other">:</span> <a href="system.html#sink"><span class="Identifier">sink</span></a> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#HSlice"><span class="Identifier">HSlice</span></a><span class="Other">[</span><a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">,</span> <span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"DotDot"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Unary <span id="slice_2">slice</span> operator that constructs an interval <tt class="docutils literal"><span class="pre">[default(int), b]</span></tt>.<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">[</span><span class="DecNumber">10</span><span class="Punctuation">,</span> <span class="DecNumber">20</span><span class="Punctuation">,</span> <span class="DecNumber">30</span><span class="Punctuation">,</span> <span class="DecNumber">40</span><span class="Punctuation">,</span> <span class="DecNumber">50</span><span class="Punctuation">]</span> | |
<span class="Identifier">echo</span> <span class="Identifier">a</span><span class="Punctuation">[</span><span class="Operator">..</span> <span class="DecNumber">2</span><span class="Punctuation">]</span> <span class="Comment"># @[10, 20, 30]</span></pre> | |
</dd> | |
<a id="succ,T,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#succ%2CT%2Cint"><span class="Identifier">succ</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#Ordinal"><span class="Identifier">Ordinal</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">y</span> <span class="Other">=</span> <span class="DecNumber">1</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Succ"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Returns the <tt class="docutils literal"><span class="pre">y</span></tt>-th successor (default: 1) of the value <tt class="docutils literal"><span class="pre">x</span></tt>.</p> | |
<p>If such a value does not exist, <tt class="docutils literal"><span class="pre">OverflowDefect</span></tt> is raised or a compile time error occurs.</p> | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">succ</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">6</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">succ</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">8</span></pre> | |
</dd> | |
<a id="pred,T,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#pred%2CT%2Cint"><span class="Identifier">pred</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#Ordinal"><span class="Identifier">Ordinal</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">y</span> <span class="Other">=</span> <span class="DecNumber">1</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Pred"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Returns the <tt class="docutils literal"><span class="pre">y</span></tt>-th predecessor (default: 1) of the value <tt class="docutils literal"><span class="pre">x</span></tt>.</p> | |
<p>If such a value does not exist, <tt class="docutils literal"><span class="pre">OverflowDefect</span></tt> is raised or a compile time error occurs.</p> | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">pred</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">4</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">pred</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">2</span></pre> | |
</dd> | |
<a id="inc,T,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#inc%2CT%2Cint"><span class="Identifier">inc</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#Ordinal"><span class="Identifier">Ordinal</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">y</span> <span class="Other">=</span> <span class="DecNumber">1</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Inc"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Increments the ordinal <tt class="docutils literal"><span class="pre">x</span></tt> by <tt class="docutils literal"><span class="pre">y</span></tt>.</p> | |
<p>If such a value does not exist, <tt class="docutils literal"><span class="pre">OverflowDefect</span></tt> is raised or a compile time error occurs. This is a short notation for: <tt class="docutils literal"><span class="pre">x = succ(x, y)</span></tt>.</p> | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Keyword">var</span><span class="Whitespace"> </span><span class="Identifier">i</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="DecNumber">2</span><span class="Whitespace"> | |
</span><span class="Identifier">inc</span><span class="Punctuation">(</span><span class="Identifier">i</span><span class="Punctuation">)</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">i</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Whitespace"> | |
</span><span class="Identifier">inc</span><span class="Punctuation">(</span><span class="Identifier">i</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">)</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">i</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">6</span></pre> | |
</dd> | |
<a id="dec,T,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#dec%2CT%2Cint"><span class="Identifier">dec</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#Ordinal"><span class="Identifier">Ordinal</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">y</span> <span class="Other">=</span> <span class="DecNumber">1</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Dec"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Decrements the ordinal <tt class="docutils literal"><span class="pre">x</span></tt> by <tt class="docutils literal"><span class="pre">y</span></tt>.</p> | |
<p>If such a value does not exist, <tt class="docutils literal"><span class="pre">OverflowDefect</span></tt> is raised or a compile time error occurs. This is a short notation for: <tt class="docutils literal"><span class="pre">x = pred(x, y)</span></tt>.</p> | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Keyword">var</span><span class="Whitespace"> </span><span class="Identifier">i</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="DecNumber">2</span><span class="Whitespace"> | |
</span><span class="Identifier">dec</span><span class="Punctuation">(</span><span class="Identifier">i</span><span class="Punctuation">)</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">i</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">1</span><span class="Whitespace"> | |
</span><span class="Identifier">dec</span><span class="Punctuation">(</span><span class="Identifier">i</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">)</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">i</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="Operator">-</span><span class="DecNumber">2</span></pre> | |
</dd> | |
<a id="ze,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#ze%2Cint8"><span class="Identifier">ze</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<div class="deprecation-message"> | |
<b>Deprecated</b> | |
</div> | |
zero extends a smaller integer type to <tt class="docutils literal"><span class="pre">int</span></tt>. This treats <tt class="docutils literal"><span class="pre">x</span></tt> as unsigned. <strong>Deprecated since version 0.19.9</strong>: Use unsigned integers instead. | |
</dd> | |
<a id="ze,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#ze%2Cint16"><span class="Identifier">ze</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<div class="deprecation-message"> | |
<b>Deprecated</b> | |
</div> | |
zero extends a smaller integer type to <tt class="docutils literal"><span class="pre">int</span></tt>. This treats <tt class="docutils literal"><span class="pre">x</span></tt> as unsigned. <strong>Deprecated since version 0.19.9</strong>: Use unsigned integers instead. | |
</dd> | |
<a id="ze64,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#ze64%2Cint8"><span class="Identifier">ze64</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<div class="deprecation-message"> | |
<b>Deprecated</b> | |
</div> | |
zero extends a smaller integer type to <tt class="docutils literal"><span class="pre">int64</span></tt>. This treats <tt class="docutils literal"><span class="pre">x</span></tt> as unsigned. <strong>Deprecated since version 0.19.9</strong>: Use unsigned integers instead. | |
</dd> | |
<a id="ze64,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#ze64%2Cint16"><span class="Identifier">ze64</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<div class="deprecation-message"> | |
<b>Deprecated</b> | |
</div> | |
zero extends a smaller integer type to <tt class="docutils literal"><span class="pre">int64</span></tt>. This treats <tt class="docutils literal"><span class="pre">x</span></tt> as unsigned. <strong>Deprecated since version 0.19.9</strong>: Use unsigned integers instead. | |
</dd> | |
<a id="ze64,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#ze64%2Cint32"><span class="Identifier">ze64</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<div class="deprecation-message"> | |
<b>Deprecated</b> | |
</div> | |
zero extends a smaller integer type to <tt class="docutils literal"><span class="pre">int64</span></tt>. This treats <tt class="docutils literal"><span class="pre">x</span></tt> as unsigned. <strong>Deprecated since version 0.19.9</strong>: Use unsigned integers instead. | |
</dd> | |
<a id="ze64,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#ze64%2Cint"><span class="Identifier">ze64</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<div class="deprecation-message"> | |
<b>Deprecated</b> | |
</div> | |
zero extends a smaller integer type to <tt class="docutils literal"><span class="pre">int64</span></tt>. This treats <tt class="docutils literal"><span class="pre">x</span></tt> as unsigned. Does nothing if the size of an <tt class="docutils literal"><span class="pre">int</span></tt> is the same as <tt class="docutils literal"><span class="pre">int64</span></tt>. (This is the case on 64 bit processors.) <strong>Deprecated since version 0.19.9</strong>: Use unsigned integers instead. | |
</dd> | |
<a id="toU8,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#toU8%2Cint"><span class="Identifier">toU8</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<div class="deprecation-message"> | |
<b>Deprecated</b> | |
</div> | |
treats <tt class="docutils literal"><span class="pre">x</span></tt> as unsigned and converts it to a byte by taking the last 8 bits from <tt class="docutils literal"><span class="pre">x</span></tt>. <strong>Deprecated since version 0.19.9</strong>: Use unsigned integers instead. | |
</dd> | |
<a id="toU16,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#toU16%2Cint"><span class="Identifier">toU16</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<div class="deprecation-message"> | |
<b>Deprecated</b> | |
</div> | |
treats <tt class="docutils literal"><span class="pre">x</span></tt> as unsigned and converts it to an <tt class="docutils literal"><span class="pre">int16</span></tt> by taking the last 16 bits from <tt class="docutils literal"><span class="pre">x</span></tt>. <strong>Deprecated since version 0.19.9</strong>: Use unsigned integers instead. | |
</dd> | |
<a id="toU32,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#toU32%2Cint64"><span class="Identifier">toU32</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">deprecated</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<div class="deprecation-message"> | |
<b>Deprecated</b> | |
</div> | |
treats <tt class="docutils literal"><span class="pre">x</span></tt> as unsigned and converts it to an <tt class="docutils literal"><span class="pre">int32</span></tt> by taking the last 32 bits from <tt class="docutils literal"><span class="pre">x</span></tt>. <strong>Deprecated since version 0.19.9</strong>: Use unsigned integers instead. | |
</dd> | |
<a id="+,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%2Cint"><span class="Identifier">`+`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"UnaryPlusI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Unary <tt class="docutils literal"><span class="pre">+</span></tt> operator for an integer. Has no effect. | |
</dd> | |
<a id="+,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%2Cint8"><span class="Identifier">`+`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"UnaryPlusI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="+,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%2Cint16"><span class="Identifier">`+`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"UnaryPlusI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="+,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%2Cint32"><span class="Identifier">`+`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"UnaryPlusI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="+,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%2Cint64"><span class="Identifier">`+`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"UnaryPlusI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="-,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%2Cint"><span class="Identifier">`-`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"UnaryMinusI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Unary <tt class="docutils literal"><span class="pre">-</span></tt> operator for an integer. Negates <tt class="docutils literal"><span class="pre">x</span></tt>. | |
</dd> | |
<a id="-,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%2Cint8"><span class="Identifier">`-`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"UnaryMinusI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="-,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%2Cint16"><span class="Identifier">`-`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"UnaryMinusI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="-,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%2Cint32"><span class="Identifier">`-`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"UnaryMinusI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="-,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%2Cint64"><span class="Identifier">`-`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"UnaryMinusI64"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="not,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#not%2Cint"><span class="Identifier">`not`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitnotI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Computes the <tt class="docutils literal"><span class="pre">bitwise complement</span></tt> of the integer <tt class="docutils literal"><span class="pre">x</span></tt>. | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Keyword">not</span><span class="Whitespace"> </span><span class="DecNumber">0'</span><span class="Identifier">u8</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">255</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Keyword">not</span><span class="Whitespace"> </span><span class="DecNumber">0'i8</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="Operator">-</span><span class="DecNumber">1</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Keyword">not</span><span class="Whitespace"> </span><span class="DecNumber">1000'</span><span class="Identifier">u16</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">64535</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Keyword">not</span><span class="Whitespace"> </span><span class="DecNumber">1000'i16</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="Operator">-</span><span class="DecNumber">1001</span></pre> | |
</dd> | |
<a id="not,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#not%2Cint8"><span class="Identifier">`not`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitnotI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="not,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#not%2Cint16"><span class="Identifier">`not`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitnotI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="not,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#not%2Cint32"><span class="Identifier">`not`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitnotI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="not,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#not%2Cint64"><span class="Identifier">`not`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitnotI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="+,int,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%2Cint%2Cint"><span class="Identifier">`+`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AddI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Binary <tt class="docutils literal"><span class="pre">+</span></tt> operator for an integer. | |
</dd> | |
<a id="+,int8,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%2Cint8%2Cint8"><span class="Identifier">`+`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AddI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="+,int16,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%2Cint16%2Cint16"><span class="Identifier">`+`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AddI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="+,int32,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%2Cint32%2Cint32"><span class="Identifier">`+`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AddI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="+,int64,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%2Cint64%2Cint64"><span class="Identifier">`+`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AddI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="-,int,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%2Cint%2Cint"><span class="Identifier">`-`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"SubI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Binary <tt class="docutils literal"><span class="pre">-</span></tt> operator for an integer. | |
</dd> | |
<a id="-,int8,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%2Cint8%2Cint8"><span class="Identifier">`-`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"SubI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="-,int16,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%2Cint16%2Cint16"><span class="Identifier">`-`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"SubI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="-,int32,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%2Cint32%2Cint32"><span class="Identifier">`-`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"SubI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="-,int64,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%2Cint64%2Cint64"><span class="Identifier">`-`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"SubI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="*,int,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2A%2Cint%2Cint"><span class="Identifier">`*`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MulI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Binary <tt class="docutils literal"><span class="pre">*</span></tt> operator for an integer. | |
</dd> | |
<a id="*,int8,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2A%2Cint8%2Cint8"><span class="Identifier">`*`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MulI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="*,int16,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2A%2Cint16%2Cint16"><span class="Identifier">`*`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MulI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="*,int32,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2A%2Cint32%2Cint32"><span class="Identifier">`*`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MulI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="*,int64,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2A%2Cint64%2Cint64"><span class="Identifier">`*`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MulI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="div,int,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#div%2Cint%2Cint"><span class="Identifier">`div`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"DivI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Computes the integer division.</p> | |
<p>This is roughly the same as <tt class="docutils literal"><span class="pre">math.trunc(x/y).int</span></tt>.</p> | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Whitespace"> </span><span class="Keyword">div</span><span class="Whitespace"> </span><span class="DecNumber">2</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">0</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Whitespace"> </span><span class="Keyword">div</span><span class="Whitespace"> </span><span class="DecNumber">2</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">1</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="DecNumber">3</span><span class="Whitespace"> </span><span class="Keyword">div</span><span class="Whitespace"> </span><span class="DecNumber">2</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">1</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="DecNumber">7</span><span class="Whitespace"> </span><span class="Keyword">div</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">2</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="Operator">-</span><span class="DecNumber">7</span><span class="Whitespace"> </span><span class="Keyword">div</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="Operator">-</span><span class="DecNumber">2</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="DecNumber">7</span><span class="Whitespace"> </span><span class="Keyword">div</span><span class="Whitespace"> </span><span class="Operator">-</span><span class="DecNumber">3</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="Operator">-</span><span class="DecNumber">2</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="Operator">-</span><span class="DecNumber">7</span><span class="Whitespace"> </span><span class="Keyword">div</span><span class="Whitespace"> </span><span class="Operator">-</span><span class="DecNumber">3</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">2</span></pre> | |
</dd> | |
<a id="div,int8,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#div%2Cint8%2Cint8"><span class="Identifier">`div`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"DivI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="div,int16,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#div%2Cint16%2Cint16"><span class="Identifier">`div`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"DivI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="div,int32,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#div%2Cint32%2Cint32"><span class="Identifier">`div`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"DivI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="div,int64,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#div%2Cint64%2Cint64"><span class="Identifier">`div`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"DivI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="mod,int,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#mod%2Cint%2Cint"><span class="Identifier">`mod`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ModI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Computes the integer modulo operation (remainder).</p> | |
<p>This is the same as <tt class="docutils literal"><span class="pre">x - (x div y) * y</span></tt>.</p> | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="DecNumber">7</span><span class="Whitespace"> </span><span class="Keyword">mod</span><span class="Whitespace"> </span><span class="DecNumber">5</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">2</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="Operator">-</span><span class="DecNumber">7</span><span class="Whitespace"> </span><span class="Keyword">mod</span><span class="Whitespace"> </span><span class="DecNumber">5</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="Operator">-</span><span class="DecNumber">2</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="DecNumber">7</span><span class="Whitespace"> </span><span class="Keyword">mod</span><span class="Whitespace"> </span><span class="Operator">-</span><span class="DecNumber">5</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">2</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="Operator">-</span><span class="DecNumber">7</span><span class="Whitespace"> </span><span class="Keyword">mod</span><span class="Whitespace"> </span><span class="Operator">-</span><span class="DecNumber">5</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="Operator">-</span><span class="DecNumber">2</span></pre> | |
</dd> | |
<a id="mod,int8,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#mod%2Cint8%2Cint8"><span class="Identifier">`mod`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ModI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="mod,int16,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#mod%2Cint16%2Cint16"><span class="Identifier">`mod`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ModI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="mod,int32,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#mod%2Cint32%2Cint32"><span class="Identifier">`mod`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ModI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="mod,int64,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#mod%2Cint64%2Cint64"><span class="Identifier">`mod`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ModI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="shr,int,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#shr%2Cint%2CSomeInteger"><span class="Identifier">`shr`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AshrI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Computes the <tt class="docutils literal"><span class="pre">shift right</span></tt> operation of <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt>, filling vacant bit positions with the sign bit.</p> | |
<p><strong>Note</strong>: <a class="reference external" href="manual.html#syntax-precedence">Operator precedence</a> is different than in <em>C</em>.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#ashr,int,SomeInteger">ashr func</a> for arithmetic shift right</li> | |
</ul> | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="BinNumber">0b0001_0000'i8</span><span class="Whitespace"> </span><span class="Keyword">shr</span><span class="Whitespace"> </span><span class="DecNumber">2</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="BinNumber">0b0000_0100'i8</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="BinNumber">0b0000_0001'i8</span><span class="Whitespace"> </span><span class="Keyword">shr</span><span class="Whitespace"> </span><span class="DecNumber">1</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="BinNumber">0b0000_0000'i8</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="BinNumber">0b1000_0000'i8</span><span class="Whitespace"> </span><span class="Keyword">shr</span><span class="Whitespace"> </span><span class="DecNumber">4</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="BinNumber">0b1111_1000'i8</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Operator">-</span><span class="DecNumber">1</span><span class="Whitespace"> </span><span class="Keyword">shr</span><span class="Whitespace"> </span><span class="DecNumber">5</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="Operator">-</span><span class="DecNumber">1</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="DecNumber">1</span><span class="Whitespace"> </span><span class="Keyword">shr</span><span class="Whitespace"> </span><span class="DecNumber">5</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">0</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="DecNumber">16</span><span class="Whitespace"> </span><span class="Keyword">shr</span><span class="Whitespace"> </span><span class="DecNumber">2</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">4</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Operator">-</span><span class="DecNumber">16</span><span class="Whitespace"> </span><span class="Keyword">shr</span><span class="Whitespace"> </span><span class="DecNumber">2</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="Operator">-</span><span class="DecNumber">4</span></pre> | |
</dd> | |
<a id="shr,int8,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#shr%2Cint8%2CSomeInteger"><span class="Identifier">`shr`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AshrI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="shr,int16,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#shr%2Cint16%2CSomeInteger"><span class="Identifier">`shr`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AshrI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="shr,int32,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#shr%2Cint32%2CSomeInteger"><span class="Identifier">`shr`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AshrI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="shr,int64,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#shr%2Cint64%2CSomeInteger"><span class="Identifier">`shr`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AshrI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="shl,int,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#shl%2Cint%2CSomeInteger"><span class="Identifier">`shl`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ShlI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Computes the <tt class="docutils literal"><span class="pre">shift left</span></tt> operation of <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt>.</p> | |
<p><strong>Note</strong>: <a class="reference external" href="manual.html#syntax-precedence">Operator precedence</a> is different than in <em>C</em>.</p> | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="DecNumber">1'i32</span><span class="Whitespace"> </span><span class="Keyword">shl</span><span class="Whitespace"> </span><span class="DecNumber">4</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="HexNumber">0x0000_0010</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="DecNumber">1'i64</span><span class="Whitespace"> </span><span class="Keyword">shl</span><span class="Whitespace"> </span><span class="DecNumber">4</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="HexNumber">0x0000_0000_0000_0010</span></pre> | |
</dd> | |
<a id="shl,int8,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#shl%2Cint8%2CSomeInteger"><span class="Identifier">`shl`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ShlI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="shl,int16,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#shl%2Cint16%2CSomeInteger"><span class="Identifier">`shl`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ShlI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="shl,int32,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#shl%2Cint32%2CSomeInteger"><span class="Identifier">`shl`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ShlI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="shl,int64,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#shl%2Cint64%2CSomeInteger"><span class="Identifier">`shl`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ShlI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="ashr,int,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#ashr%2Cint%2CSomeInteger"><span class="Identifier">ashr</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AshrI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Shifts right by pushing copies of the leftmost bit in from the left, and let the rightmost bits fall off.</p> | |
<p>Note that <tt class="docutils literal"><span class="pre">ashr</span></tt> is not an operator so use the normal function call syntax for it.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#shr,int,SomeInteger">shr func</a></li> | |
</ul> | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">ashr</span><span class="Punctuation">(</span><span class="BinNumber">0b0001_0000'i8</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">2</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="BinNumber">0b0000_0100'i8</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">ashr</span><span class="Punctuation">(</span><span class="BinNumber">0b1000_0000'i8</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">8</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="BinNumber">0b1111_1111'i8</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">ashr</span><span class="Punctuation">(</span><span class="BinNumber">0b1000_0000'i8</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">1</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="BinNumber">0b1100_0000'i8</span></pre> | |
</dd> | |
<a id="ashr,int8,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#ashr%2Cint8%2CSomeInteger"><span class="Identifier">ashr</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AshrI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="ashr,int16,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#ashr%2Cint16%2CSomeInteger"><span class="Identifier">ashr</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AshrI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="ashr,int32,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#ashr%2Cint32%2CSomeInteger"><span class="Identifier">ashr</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AshrI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="ashr,int64,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#ashr%2Cint64%2CSomeInteger"><span class="Identifier">ashr</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AshrI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="and,int,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#and%2Cint%2Cint"><span class="Identifier">`and`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitandI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> | |
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Computes the <tt class="docutils literal"><span class="pre">bitwise and</span></tt> of numbers <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt>. | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="BinNumber">0b0011</span><span class="Whitespace"> </span><span class="Keyword">and</span><span class="Whitespace"> </span><span class="BinNumber">0b0101</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="BinNumber">0b0001</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="BinNumber">0b0111</span><span class="Whitespace"> </span><span class="Keyword">and</span><span class="Whitespace"> </span><span class="BinNumber">0b1100</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="BinNumber">0b0100</span></pre> | |
</dd> | |
<a id="and,int8,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#and%2Cint8%2Cint8"><span class="Identifier">`and`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitandI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="and,int16,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#and%2Cint16%2Cint16"><span class="Identifier">`and`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitandI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="and,int32,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#and%2Cint32%2Cint32"><span class="Identifier">`and`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitandI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="and,int64,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#and%2Cint64%2Cint64"><span class="Identifier">`and`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitandI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="or,int,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#or%2Cint%2Cint"><span class="Identifier">`or`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitorI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Computes the <tt class="docutils literal"><span class="pre">bitwise or</span></tt> of numbers <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt>. | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="BinNumber">0b0011</span><span class="Whitespace"> </span><span class="Keyword">or</span><span class="Whitespace"> </span><span class="BinNumber">0b0101</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="BinNumber">0b0111</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="BinNumber">0b0111</span><span class="Whitespace"> </span><span class="Keyword">or</span><span class="Whitespace"> </span><span class="BinNumber">0b1100</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="BinNumber">0b1111</span></pre> | |
</dd> | |
<a id="or,int8,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#or%2Cint8%2Cint8"><span class="Identifier">`or`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitorI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="or,int16,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#or%2Cint16%2Cint16"><span class="Identifier">`or`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitorI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="or,int32,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#or%2Cint32%2Cint32"><span class="Identifier">`or`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitorI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="or,int64,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#or%2Cint64%2Cint64"><span class="Identifier">`or`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitorI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="xor,int,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#xor%2Cint%2Cint"><span class="Identifier">`xor`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitxorI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> | |
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Computes the <tt class="docutils literal"><span class="pre">bitwise xor</span></tt> of numbers <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt>. | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="BinNumber">0b0011</span><span class="Whitespace"> </span><span class="Keyword">xor</span><span class="Whitespace"> </span><span class="BinNumber">0b0101</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="BinNumber">0b0110</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="BinNumber">0b0111</span><span class="Whitespace"> </span><span class="Keyword">xor</span><span class="Whitespace"> </span><span class="BinNumber">0b1100</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="BinNumber">0b1011</span></pre> | |
</dd> | |
<a id="xor,int8,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#xor%2Cint8%2Cint8"><span class="Identifier">`xor`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitxorI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="xor,int16,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#xor%2Cint16%2Cint16"><span class="Identifier">`xor`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitxorI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="xor,int32,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#xor%2Cint32%2Cint32"><span class="Identifier">`xor`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitxorI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="xor,int64,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#xor%2Cint64%2Cint64"><span class="Identifier">`xor`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitxorI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="not,uint"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#not%2Cuint"><span class="Identifier">`not`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitnotI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Computes the <tt class="docutils literal"><span class="pre">bitwise complement</span></tt> of the integer <tt class="docutils literal"><span class="pre">x</span></tt>. | |
</dd> | |
<a id="not,uint8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#not%2Cuint8"><span class="Identifier">`not`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitnotI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="not,uint16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#not%2Cuint16"><span class="Identifier">`not`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitnotI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="not,uint32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#not%2Cuint32"><span class="Identifier">`not`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitnotI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="not,uint64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#not%2Cuint64"><span class="Identifier">`not`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitnotI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="shr,uint,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#shr%2Cuint%2CSomeInteger"><span class="Identifier">`shr`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ShrI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Computes the <tt class="docutils literal"><span class="pre">shift right</span></tt> operation of <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt>. | |
</dd> | |
<a id="shr,uint8,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#shr%2Cuint8%2CSomeInteger"><span class="Identifier">`shr`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ShrI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="shr,uint16,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#shr%2Cuint16%2CSomeInteger"><span class="Identifier">`shr`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ShrI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="shr,uint32,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#shr%2Cuint32%2CSomeInteger"><span class="Identifier">`shr`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ShrI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="shr,uint64,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#shr%2Cuint64%2CSomeInteger"><span class="Identifier">`shr`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ShrI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="shl,uint,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#shl%2Cuint%2CSomeInteger"><span class="Identifier">`shl`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ShlI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Computes the <tt class="docutils literal"><span class="pre">shift left</span></tt> operation of <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt>. | |
</dd> | |
<a id="shl,uint8,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#shl%2Cuint8%2CSomeInteger"><span class="Identifier">`shl`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ShlI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="shl,uint16,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#shl%2Cuint16%2CSomeInteger"><span class="Identifier">`shl`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ShlI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="shl,uint32,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#shl%2Cuint32%2CSomeInteger"><span class="Identifier">`shl`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ShlI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="shl,uint64,SomeInteger"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#shl%2Cuint64%2CSomeInteger"><span class="Identifier">`shl`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ShlI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="and,uint,uint"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#and%2Cuint%2Cuint"><span class="Identifier">`and`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitandI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Computes the <tt class="docutils literal"><span class="pre">bitwise and</span></tt> of numbers <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt>. | |
</dd> | |
<a id="and,uint8,uint8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#and%2Cuint8%2Cuint8"><span class="Identifier">`and`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitandI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="and,uint16,uint16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#and%2Cuint16%2Cuint16"><span class="Identifier">`and`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitandI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="and,uint32,uint32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#and%2Cuint32%2Cuint32"><span class="Identifier">`and`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitandI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="and,uint64,uint64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#and%2Cuint64%2Cuint64"><span class="Identifier">`and`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitandI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="or,uint,uint"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#or%2Cuint%2Cuint"><span class="Identifier">`or`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitorI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Computes the <tt class="docutils literal"><span class="pre">bitwise or</span></tt> of numbers <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt>. | |
</dd> | |
<a id="or,uint8,uint8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#or%2Cuint8%2Cuint8"><span class="Identifier">`or`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitorI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="or,uint16,uint16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#or%2Cuint16%2Cuint16"><span class="Identifier">`or`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitorI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="or,uint32,uint32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#or%2Cuint32%2Cuint32"><span class="Identifier">`or`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitorI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="or,uint64,uint64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#or%2Cuint64%2Cuint64"><span class="Identifier">`or`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitorI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="xor,uint,uint"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#xor%2Cuint%2Cuint"><span class="Identifier">`xor`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitxorI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Computes the <tt class="docutils literal"><span class="pre">bitwise xor</span></tt> of numbers <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt>. | |
</dd> | |
<a id="xor,uint8,uint8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#xor%2Cuint8%2Cuint8"><span class="Identifier">`xor`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitxorI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="xor,uint16,uint16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#xor%2Cuint16%2Cuint16"><span class="Identifier">`xor`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitxorI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="xor,uint32,uint32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#xor%2Cuint32%2Cuint32"><span class="Identifier">`xor`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitxorI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="xor,uint64,uint64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#xor%2Cuint64%2Cuint64"><span class="Identifier">`xor`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"BitxorI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="+,uint,uint"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%2Cuint%2Cuint"><span class="Identifier">`+`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AddU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Binary <tt class="docutils literal"><span class="pre">+</span></tt> operator for unsigned integers. | |
</dd> | |
<a id="+,uint8,uint8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%2Cuint8%2Cuint8"><span class="Identifier">`+`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AddU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="+,uint16,uint16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%2Cuint16%2Cuint16"><span class="Identifier">`+`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AddU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="+,uint32,uint32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%2Cuint32%2Cuint32"><span class="Identifier">`+`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AddU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="+,uint64,uint64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%2Cuint64%2Cuint64"><span class="Identifier">`+`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AddU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="-,uint,uint"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%2Cuint%2Cuint"><span class="Identifier">`-`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"SubU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Binary <tt class="docutils literal"><span class="pre">-</span></tt> operator for unsigned integers. | |
</dd> | |
<a id="-,uint8,uint8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%2Cuint8%2Cuint8"><span class="Identifier">`-`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"SubU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="-,uint16,uint16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%2Cuint16%2Cuint16"><span class="Identifier">`-`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"SubU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="-,uint32,uint32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%2Cuint32%2Cuint32"><span class="Identifier">`-`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"SubU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="-,uint64,uint64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%2Cuint64%2Cuint64"><span class="Identifier">`-`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"SubU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="*,uint,uint"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2A%2Cuint%2Cuint"><span class="Identifier">`*`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MulU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Binary <tt class="docutils literal"><span class="pre">*</span></tt> operator for unsigned integers. | |
</dd> | |
<a id="*,uint8,uint8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2A%2Cuint8%2Cuint8"><span class="Identifier">`*`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MulU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="*,uint16,uint16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2A%2Cuint16%2Cuint16"><span class="Identifier">`*`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MulU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="*,uint32,uint32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2A%2Cuint32%2Cuint32"><span class="Identifier">`*`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MulU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="*,uint64,uint64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2A%2Cuint64%2Cuint64"><span class="Identifier">`*`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MulU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="div,uint,uint"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#div%2Cuint%2Cuint"><span class="Identifier">`div`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"DivU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Computes the integer division for unsigned integers. This is roughly the same as <tt class="docutils literal"><span class="pre">trunc(x/y)</span></tt>. | |
</dd> | |
<a id="div,uint8,uint8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#div%2Cuint8%2Cuint8"><span class="Identifier">`div`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"DivU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="div,uint16,uint16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#div%2Cuint16%2Cuint16"><span class="Identifier">`div`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"DivU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="div,uint32,uint32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#div%2Cuint32%2Cuint32"><span class="Identifier">`div`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"DivU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="div,uint64,uint64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#div%2Cuint64%2Cuint64"><span class="Identifier">`div`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"DivU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="mod,uint,uint"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#mod%2Cuint%2Cuint"><span class="Identifier">`mod`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ModU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Computes the integer modulo operation (remainder) for unsigned integers. This is the same as <tt class="docutils literal"><span class="pre">x - (x div y) * y</span></tt>. | |
</dd> | |
<a id="mod,uint8,uint8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#mod%2Cuint8%2Cuint8"><span class="Identifier">`mod`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ModU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="mod,uint16,uint16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#mod%2Cuint16%2Cuint16"><span class="Identifier">`mod`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ModU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="mod,uint32,uint32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#mod%2Cuint32%2Cuint32"><span class="Identifier">`mod`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ModU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="mod,uint64,uint64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#mod%2Cuint64%2Cuint64"><span class="Identifier">`mod`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ModU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="+%,int,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%25%2Cint%2Cint"><span class="Identifier">`+%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Treats <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt> as unsigned and adds them.</p> | |
<p>The result is truncated to fit into the result. This implements modulo arithmetic. No overflow errors are possible.</p> | |
</dd> | |
<a id="+%,int8,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%25%2Cint8%2Cint8"><span class="Identifier">`+%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="+%,int16,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%25%2Cint16%2Cint16"><span class="Identifier">`+%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="+%,int32,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%25%2Cint32%2Cint32"><span class="Identifier">`+%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="+%,int64,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%25%2Cint64%2Cint64"><span class="Identifier">`+%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="-%,int,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%25%2Cint%2Cint"><span class="Identifier">`-%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Treats <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt> as unsigned and subtracts them.</p> | |
<p>The result is truncated to fit into the result. This implements modulo arithmetic. No overflow errors are possible.</p> | |
</dd> | |
<a id="-%,int8,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%25%2Cint8%2Cint8"><span class="Identifier">`-%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="-%,int16,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%25%2Cint16%2Cint16"><span class="Identifier">`-%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="-%,int32,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%25%2Cint32%2Cint32"><span class="Identifier">`-%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="-%,int64,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%25%2Cint64%2Cint64"><span class="Identifier">`-%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="*%,int,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2A%25%2Cint%2Cint"><span class="Identifier">`*%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Treats <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt> as unsigned and multiplies them.</p> | |
<p>The result is truncated to fit into the result. This implements modulo arithmetic. No overflow errors are possible.</p> | |
</dd> | |
<a id="*%,int8,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2A%25%2Cint8%2Cint8"><span class="Identifier">`*%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="*%,int16,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2A%25%2Cint16%2Cint16"><span class="Identifier">`*%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="*%,int32,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2A%25%2Cint32%2Cint32"><span class="Identifier">`*%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="*%,int64,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2A%25%2Cint64%2Cint64"><span class="Identifier">`*%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="/%,int,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2F%25%2Cint%2Cint"><span class="Identifier">`/%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Treats <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt> as unsigned and divides them.</p> | |
<p>The result is truncated to fit into the result. This implements modulo arithmetic. No overflow errors are possible.</p> | |
</dd> | |
<a id="/%,int8,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2F%25%2Cint8%2Cint8"><span class="Identifier">`/%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="/%,int16,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2F%25%2Cint16%2Cint16"><span class="Identifier">`/%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="/%,int32,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2F%25%2Cint32%2Cint32"><span class="Identifier">`/%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="/%,int64,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2F%25%2Cint64%2Cint64"><span class="Identifier">`/%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="%%,int,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%25%25%2Cint%2Cint"><span class="Identifier">`%%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Treats <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt> as unsigned and compute the modulo of <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt>.</p> | |
<p>The result is truncated to fit into the result. This implements modulo arithmetic. No overflow errors are possible.</p> | |
</dd> | |
<a id="%%,int8,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%25%25%2Cint8%2Cint8"><span class="Identifier">`%%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="%%,int16,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%25%25%2Cint16%2Cint16"><span class="Identifier">`%%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="%%,int32,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%25%25%2Cint32%2Cint32"><span class="Identifier">`%%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="%%,int64,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%25%25%2Cint64%2Cint64"><span class="Identifier">`%%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="+=,T,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%3D%2CT%2CT"><span class="Identifier">`+=`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Inc"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Increments an integer. | |
</dd> | |
<a id="-=,T,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%3D%2CT%2CT"><span class="Identifier">`-=`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Dec"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Decrements an integer. | |
</dd> | |
<a id="*=,T,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2A%3D%2CT%2CT"><span class="Identifier">`*=`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Binary <tt class="docutils literal"><span class="pre">*=</span></tt> operator for integers. | |
</dd> | |
<a id="==,Enum,Enum"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2CEnum%2CEnum"><span class="Identifier">`==`</span></a><span class="Other">[</span><span class="Identifier">Enum</span><span class="Other">:</span> <span class="Keyword">enum</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">Enum</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"EqEnum"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Checks whether values within the <em>same enum</em> have the same underlying value. | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Keyword">type</span><span class="Whitespace"> | |
</span><span class="Identifier">Enum1</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="Keyword">enum</span><span class="Whitespace"> | |
</span><span class="Identifier">field1</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="Identifier">field2</span><span class="Whitespace"> | |
</span><span class="Identifier">Enum2</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="Keyword">enum</span><span class="Whitespace"> | |
</span><span class="Identifier">place1</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="Identifier">place2</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Whitespace"> | |
</span><span class="Keyword">var</span><span class="Whitespace"> | |
</span><span class="Identifier">e1</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="Identifier">field1</span><span class="Whitespace"> | |
</span><span class="Identifier">e2</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="Identifier">Enum1</span><span class="Punctuation">(</span><span class="Identifier">place2</span><span class="Punctuation">)</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">e1</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="Identifier">e2</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Keyword">not</span><span class="Whitespace"> </span><span class="Identifier">compiles</span><span class="Punctuation">(</span><span class="Identifier">e1</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="Identifier">place2</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Comment"># raises error</span></pre> | |
</dd> | |
<a id="==,pointer,pointer"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2Cpointer%2Cpointer"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"EqRef"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> | |
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Checks for equality between two <tt class="docutils literal"><span class="pre">pointer</span></tt> variables. | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Keyword">var</span><span class="Whitespace"> </span><span class="Comment"># this is a wildly dangerous example</span><span class="Whitespace"> | |
</span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="Keyword">cast</span><span class="Punctuation">[</span><span class="Identifier">pointer</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span><span class="Whitespace"> | |
</span><span class="Identifier">b</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="Keyword">cast</span><span class="Punctuation">[</span><span class="Identifier">pointer</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Keyword">nil</span><span class="Punctuation">)</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="Identifier">b</span><span class="Whitespace"> </span><span class="Comment"># true due to the special meaning of `nil`/0 as a pointer</span></pre> | |
</dd> | |
<a id="==,string,string"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2Cstring%2Cstring"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"EqStr"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Checks for equality between two <tt class="docutils literal"><span class="pre">string</span></tt> variables. | |
</dd> | |
<a id="==,char,char"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2Cchar%2Cchar"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"EqCh"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Checks for equality between two <tt class="docutils literal"><span class="pre">char</span></tt> variables. | |
</dd> | |
<a id="==,bool,bool"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2Cbool%2Cbool"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"EqB"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Checks for equality between two <tt class="docutils literal"><span class="pre">bool</span></tt> variables. | |
</dd> | |
<a id="==,set[T],set[T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2Cset%5BT%5D%2Cset%5BT%5D"><span class="Identifier">`==`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#set"><span class="Identifier">set</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"EqSet"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Checks for equality between two variables of type <tt class="docutils literal"><span class="pre">set</span></tt>. | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">1</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">2</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">2</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">}</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">1</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">2</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">}</span><span class="Whitespace"> </span><span class="Comment"># duplication in sets is ignored</span></pre> | |
</dd> | |
<a id="==,ref.T,ref.T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2Cref.T%2Cref.T"><span class="Identifier">`==`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Keyword">ref</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"EqRef"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Checks that two <tt class="docutils literal"><span class="pre">ref</span></tt> variables refer to the same item. | |
</dd> | |
<a id="==,ptr.T,ptr.T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2Cptr.T%2Cptr.T"><span class="Identifier">`==`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"EqRef"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Checks that two <tt class="docutils literal"><span class="pre">ptr</span></tt> variables refer to the same item. | |
</dd> | |
<a id="==,T,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2CT%2CT"><span class="Identifier">`==`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <span class="Keyword">proc</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"EqProc"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Checks that two <tt class="docutils literal"><span class="pre">proc</span></tt> variables refer to the same procedure. | |
</dd> | |
<a id="<=,Enum,Enum"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2CEnum%2CEnum"><span class="Identifier">`<=`</span></a><span class="Other">[</span><span class="Identifier">Enum</span><span class="Other">:</span> <span class="Keyword">enum</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">Enum</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LeEnum"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<=,string,string"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cstring%2Cstring"><span class="Identifier">`<=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LeStr"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> | |
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Compares two strings and returns true if <tt class="docutils literal"><span class="pre">x</span></tt> is lexicographically before <tt class="docutils literal"><span class="pre">y</span></tt> (uppercase letters come before lowercase letters). | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Keyword">let</span><span class="Whitespace"> | |
</span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="StringLit">"abc"</span><span class="Whitespace"> | |
</span><span class="Identifier">b</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="StringLit">"abd"</span><span class="Whitespace"> | |
</span><span class="Identifier">c</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="StringLit">"ZZZ"</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator"><=</span><span class="Whitespace"> </span><span class="Identifier">b</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator"><=</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Keyword">not</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator"><=</span><span class="Whitespace"> </span><span class="Identifier">c</span><span class="Punctuation">)</span></pre> | |
</dd> | |
<a id="<=,char,char"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cchar%2Cchar"><span class="Identifier">`<=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LeCh"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Compares two chars and returns true if <tt class="docutils literal"><span class="pre">x</span></tt> is lexicographically before <tt class="docutils literal"><span class="pre">y</span></tt> (uppercase letters come before lowercase letters). | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Keyword">let</span><span class="Whitespace"> | |
</span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="CharLit">'a'</span><span class="Whitespace"> | |
</span><span class="Identifier">b</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="CharLit">'b'</span><span class="Whitespace"> | |
</span><span class="Identifier">c</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="CharLit">'Z'</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator"><=</span><span class="Whitespace"> </span><span class="Identifier">b</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator"><=</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Keyword">not</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator"><=</span><span class="Whitespace"> </span><span class="Identifier">c</span><span class="Punctuation">)</span></pre> | |
</dd> | |
<a id="<=,set[T],set[T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cset%5BT%5D%2Cset%5BT%5D"><span class="Identifier">`<=`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#set"><span class="Identifier">set</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LeSet"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Returns true if <tt class="docutils literal"><span class="pre">x</span></tt> is a subset of <tt class="docutils literal"><span class="pre">y</span></tt>.</p> | |
<p>A subset <tt class="docutils literal"><span class="pre">x</span></tt> has all of its members in <tt class="docutils literal"><span class="pre">y</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt> doesn't necessarily have more members than <tt class="docutils literal"><span class="pre">x</span></tt>. That is, <tt class="docutils literal"><span class="pre">x</span></tt> can be equal to <tt class="docutils literal"><span class="pre">y</span></tt>.</p> | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Keyword">let</span><span class="Whitespace"> | |
</span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">3</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">5</span><span class="Punctuation">}</span><span class="Whitespace"> | |
</span><span class="Identifier">b</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">1</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">5</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">7</span><span class="Punctuation">}</span><span class="Whitespace"> | |
</span><span class="Identifier">c</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">2</span><span class="Punctuation">}</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator"><=</span><span class="Whitespace"> </span><span class="Identifier">b</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator"><=</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Keyword">not</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator"><=</span><span class="Whitespace"> </span><span class="Identifier">c</span><span class="Punctuation">)</span></pre> | |
</dd> | |
<a id="<=,bool,bool"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cbool%2Cbool"><span class="Identifier">`<=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LeB"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<=,ref.T,ref.T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cref.T%2Cref.T"><span class="Identifier">`<=`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Keyword">ref</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LePtr"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<=,pointer,pointer"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cpointer%2Cpointer"><span class="Identifier">`<=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LePtr"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<,Enum,Enum"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%2CEnum%2CEnum"><span class="Identifier">`<`</span></a><span class="Other">[</span><span class="Identifier">Enum</span><span class="Other">:</span> <span class="Keyword">enum</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">Enum</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LtEnum"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<,string,string"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cstring%2Cstring"><span class="Identifier">`<`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LtStr"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> | |
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Compares two strings and returns true if <tt class="docutils literal"><span class="pre">x</span></tt> is lexicographically before <tt class="docutils literal"><span class="pre">y</span></tt> (uppercase letters come before lowercase letters). | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Keyword">let</span><span class="Whitespace"> | |
</span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="StringLit">"abc"</span><span class="Whitespace"> | |
</span><span class="Identifier">b</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="StringLit">"abd"</span><span class="Whitespace"> | |
</span><span class="Identifier">c</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="StringLit">"ZZZ"</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator"><</span><span class="Whitespace"> </span><span class="Identifier">b</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Keyword">not</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator"><</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Punctuation">)</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Keyword">not</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator"><</span><span class="Whitespace"> </span><span class="Identifier">c</span><span class="Punctuation">)</span></pre> | |
</dd> | |
<a id="<,char,char"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cchar%2Cchar"><span class="Identifier">`<`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LtCh"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Compares two chars and returns true if <tt class="docutils literal"><span class="pre">x</span></tt> is lexicographically before <tt class="docutils literal"><span class="pre">y</span></tt> (uppercase letters come before lowercase letters). | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Keyword">let</span><span class="Whitespace"> | |
</span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="CharLit">'a'</span><span class="Whitespace"> | |
</span><span class="Identifier">b</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="CharLit">'b'</span><span class="Whitespace"> | |
</span><span class="Identifier">c</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="CharLit">'Z'</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator"><</span><span class="Whitespace"> </span><span class="Identifier">b</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Keyword">not</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator"><</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Punctuation">)</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Keyword">not</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator"><</span><span class="Whitespace"> </span><span class="Identifier">c</span><span class="Punctuation">)</span></pre> | |
</dd> | |
<a id="<,set[T],set[T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cset%5BT%5D%2Cset%5BT%5D"><span class="Identifier">`<`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#set"><span class="Identifier">set</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LtSet"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Returns true if <tt class="docutils literal"><span class="pre">x</span></tt> is a strict or proper subset of <tt class="docutils literal"><span class="pre">y</span></tt>.</p> | |
<p>A strict or proper subset <tt class="docutils literal"><span class="pre">x</span></tt> has all of its members in <tt class="docutils literal"><span class="pre">y</span></tt> but <tt class="docutils literal"><span class="pre">y</span></tt> has more elements than <tt class="docutils literal"><span class="pre">y</span></tt>.</p> | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Keyword">let</span><span class="Whitespace"> | |
</span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">3</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">5</span><span class="Punctuation">}</span><span class="Whitespace"> | |
</span><span class="Identifier">b</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">1</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">5</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">7</span><span class="Punctuation">}</span><span class="Whitespace"> | |
</span><span class="Identifier">c</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">2</span><span class="Punctuation">}</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator"><</span><span class="Whitespace"> </span><span class="Identifier">b</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Keyword">not</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator"><</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Punctuation">)</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Keyword">not</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator"><</span><span class="Whitespace"> </span><span class="Identifier">c</span><span class="Punctuation">)</span></pre> | |
</dd> | |
<a id="<,bool,bool"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cbool%2Cbool"><span class="Identifier">`<`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LtB"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<,ref.T,ref.T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cref.T%2Cref.T"><span class="Identifier">`<`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Keyword">ref</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LtPtr"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<,ptr.T,ptr.T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cptr.T%2Cptr.T"><span class="Identifier">`<`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LtPtr"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<,pointer,pointer"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cpointer%2Cpointer"><span class="Identifier">`<`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LtPtr"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="==,int,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2Cint%2Cint"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"EqI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Compares two integers for equality. | |
</dd> | |
<a id="==,int8,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2Cint8%2Cint8"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"EqI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="==,int16,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2Cint16%2Cint16"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"EqI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="==,int32,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2Cint32%2Cint32"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"EqI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="==,int64,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2Cint64%2Cint64"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"EqI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<=,int,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cint%2Cint"><span class="Identifier">`<=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LeI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Returns true if <tt class="docutils literal"><span class="pre">x</span></tt> is less than or equal to <tt class="docutils literal"><span class="pre">y</span></tt>. | |
</dd> | |
<a id="<=,int8,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cint8%2Cint8"><span class="Identifier">`<=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LeI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<=,int16,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cint16%2Cint16"><span class="Identifier">`<=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LeI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<=,int32,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cint32%2Cint32"><span class="Identifier">`<=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LeI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<=,int64,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cint64%2Cint64"><span class="Identifier">`<=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LeI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<,int,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cint%2Cint"><span class="Identifier">`<`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LtI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Returns true if <tt class="docutils literal"><span class="pre">x</span></tt> is less than <tt class="docutils literal"><span class="pre">y</span></tt>. | |
</dd> | |
<a id="<,int8,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cint8%2Cint8"><span class="Identifier">`<`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LtI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<,int16,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cint16%2Cint16"><span class="Identifier">`<`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LtI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<,int32,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cint32%2Cint32"><span class="Identifier">`<`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LtI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<,int64,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cint64%2Cint64"><span class="Identifier">`<`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LtI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<=,uint,uint"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cuint%2Cuint"><span class="Identifier">`<=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LeU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Returns true if <tt class="docutils literal"><span class="pre">x <= y</span></tt>. | |
</dd> | |
<a id="<=,uint8,uint8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cuint8%2Cuint8"><span class="Identifier">`<=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LeU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<=,uint16,uint16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cuint16%2Cuint16"><span class="Identifier">`<=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LeU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<=,uint32,uint32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cuint32%2Cuint32"><span class="Identifier">`<=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LeU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<=,uint64,uint64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cuint64%2Cuint64"><span class="Identifier">`<=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LeU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<,uint,uint"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cuint%2Cuint"><span class="Identifier">`<`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LtU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Returns true if <tt class="docutils literal"><span class="pre">x < y</span></tt>. | |
</dd> | |
<a id="<,uint8,uint8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cuint8%2Cuint8"><span class="Identifier">`<`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LtU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<,uint16,uint16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cuint16%2Cuint16"><span class="Identifier">`<`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LtU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<,uint32,uint32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cuint32%2Cuint32"><span class="Identifier">`<`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LtU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<,uint64,uint64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cuint64%2Cuint64"><span class="Identifier">`<`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LtU"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<=%,int,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%25%2Cint%2Cint"><span class="Identifier">`<=%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Treats <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt> as unsigned and compares them. Returns true if <tt class="docutils literal"><span class="pre">unsigned(x) <= unsigned(y)</span></tt>. | |
</dd> | |
<a id="<=%,int8,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%25%2Cint8%2Cint8"><span class="Identifier">`<=%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<=%,int16,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%25%2Cint16%2Cint16"><span class="Identifier">`<=%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<=%,int32,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%25%2Cint32%2Cint32"><span class="Identifier">`<=%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<=%,int64,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%25%2Cint64%2Cint64"><span class="Identifier">`<=%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<%,int,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%25%2Cint%2Cint"><span class="Identifier">`<%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Treats <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt> as unsigned and compares them. Returns true if <tt class="docutils literal"><span class="pre">unsigned(x) < unsigned(y)</span></tt>. | |
</dd> | |
<a id="<%,int8,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%25%2Cint8%2Cint8"><span class="Identifier">`<%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<%,int16,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%25%2Cint16%2Cint16"><span class="Identifier">`<%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<%,int32,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%25%2Cint32%2Cint32"><span class="Identifier">`<%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<%,int64,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%25%2Cint64%2Cint64"><span class="Identifier">`<%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="==,uint,uint"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2Cuint%2Cuint"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"EqI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Compares two unsigned integers for equality. | |
</dd> | |
<a id="==,uint8,uint8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2Cuint8%2Cuint8"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"EqI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="==,uint16,uint16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2Cuint16%2Cuint16"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"EqI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="==,uint32,uint32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2Cuint32%2Cuint32"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"EqI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="==,uint64,uint64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2Cuint64%2Cuint64"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"EqI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="min,int,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#min%2Cint%2Cint"><span class="Identifier">min</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MinI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="min,int8,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#min%2Cint8%2Cint8"><span class="Identifier">min</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MinI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="min,int16,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#min%2Cint16%2Cint16"><span class="Identifier">min</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MinI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="min,int32,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#min%2Cint32%2Cint32"><span class="Identifier">min</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MinI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="min,int64,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#min%2Cint64%2Cint64"><span class="Identifier">min</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MinI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
The minimum value of two integers. | |
</dd> | |
<a id="max,int,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#max%2Cint%2Cint"><span class="Identifier">max</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MaxI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="max,int8,int8"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#max%2Cint8%2Cint8"><span class="Identifier">max</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MaxI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="max,int16,int16"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#max%2Cint16%2Cint16"><span class="Identifier">max</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MaxI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="max,int32,int32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#max%2Cint32%2Cint32"><span class="Identifier">max</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MaxI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="max,int64,int64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#max%2Cint64%2Cint64"><span class="Identifier">max</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MaxI"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
The maximum value of two integers. | |
</dd> | |
<a id="min,openArray[T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#min%2CopenArray%5BT%5D"><span class="Identifier">min</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt> | |
<dd> | |
The minimum value of <tt class="docutils literal"><span class="pre">x</span></tt>. <tt class="docutils literal"><span class="pre">T</span></tt> needs to have a <tt class="docutils literal"><span class="pre"><</span></tt> operator. | |
</dd> | |
<a id="max,openArray[T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#max%2CopenArray%5BT%5D"><span class="Identifier">max</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt> | |
<dd> | |
The maximum value of <tt class="docutils literal"><span class="pre">x</span></tt>. <tt class="docutils literal"><span class="pre">T</span></tt> needs to have a <tt class="docutils literal"><span class="pre"><</span></tt> operator. | |
</dd> | |
<a id="clamp,T,T,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#clamp%2CT%2CT%2CT"><span class="Identifier">clamp</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt> | |
<dd> | |
<p>Limits the value <tt class="docutils literal"><span class="pre">x</span></tt> within the interval [a, b]. This proc is equivalent to but fatser than <tt class="docutils literal"><span class="pre">max(a, min(b, x))</span></tt>.</p> | |
<p><strong>Note:</strong> <tt class="docutils literal"><span class="pre">a <= b</span></tt> is assumed and will not be checked.</p> | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="FloatNumber">1.4</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">clamp</span><span class="Punctuation">(</span><span class="FloatNumber">0.0</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="FloatNumber">1.0</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="FloatNumber">1.0</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Punctuation">(</span><span class="FloatNumber">0.5</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">clamp</span><span class="Punctuation">(</span><span class="FloatNumber">0.0</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="FloatNumber">1.0</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="FloatNumber">0.5</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="FloatNumber">4.</span><span class="Identifier">clamp</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="Identifier">max</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="Identifier">min</span><span class="Punctuation">(</span><span class="DecNumber">3</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">4</span><span class="Punctuation">)</span><span class="Punctuation">)</span></pre> | |
</dd> | |
<a id="==,array[I,T],array[I,T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2Carray%5BI%2CT%5D%2Carray%5BI%2CT%5D"><span class="Identifier">`==`</span></a><span class="Other">[</span><span class="Identifier">I</span><span class="Other">,</span> <span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#array"><span class="Identifier">array</span></a><span class="Other">[</span><span class="Identifier">I</span><span class="Other">,</span> <span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="==,openArray[T],openArray[T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2CopenArray%5BT%5D%2CopenArray%5BT%5D"><span class="Identifier">`==`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="==,seq[T],seq[T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2Cseq%5BT%5D%2Cseq%5BT%5D"><span class="Identifier">`==`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Generic equals operator for sequences: relies on a equals operator for the element type <tt class="docutils literal"><span class="pre">T</span></tt>. | |
</dd> | |
<a id="unsafeNew,ref.T,Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#unsafeNew%2Cref.T%2CNatural"><span class="Identifier">unsafeNew</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Keyword">ref</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">size</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"New"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Creates a new object of type <tt class="docutils literal"><span class="pre">T</span></tt> and returns a safe (traced) reference to it in <tt class="docutils literal"><span class="pre">a</span></tt>.</p> | |
<p>This is <strong>unsafe</strong> as it allocates an object of the passed <tt class="docutils literal"><span class="pre">size</span></tt>. This should only be used for optimization purposes when you know what you're doing!</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#new,ref.T,proc(ref.T)">new</a></li> | |
</ul> | |
</dd> | |
<a id="sizeof,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#sizeof%2CT"><span class="Identifier">sizeof</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"SizeOf"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Returns the size of <tt class="docutils literal"><span class="pre">x</span></tt> in bytes.</p> | |
<p>Since this is a low-level proc, its usage is discouraged - using <a class="reference external" href="#new,ref.T,proc(ref.T)">new</a> for the most cases suffices that one never needs to know <tt class="docutils literal"><span class="pre">x</span></tt>'s size.</p> | |
<p>As a special semantic rule, <tt class="docutils literal"><span class="pre">x</span></tt> may also be a type identifier (<tt class="docutils literal"><span class="pre">sizeof(int)</span></tt> is valid).</p> | |
<p>Limitations: If used for types that are imported from C or C++, sizeof should fallback to the <tt class="docutils literal"><span class="pre">sizeof</span></tt> in the C compiler. The result isn't available for the Nim compiler and therefore can't be used inside of macros.</p> | |
<pre class="listing"><span class="Identifier">sizeof</span><span class="Punctuation">(</span><span class="CharLit">'A'</span><span class="Punctuation">)</span> <span class="Comment"># => 1</span> | |
<span class="Identifier">sizeof</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Comment"># => 8</span></pre> | |
</dd> | |
<a id="alignof,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#alignof%2CT"><span class="Identifier">alignof</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AlignOf"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="alignof,typedesc"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#alignof%2Ctypedesc"><span class="Identifier">alignof</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AlignOf"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="sizeof,typedesc"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#sizeof%2Ctypedesc"><span class="Identifier">sizeof</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"SizeOf"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="newSeq,seq[T],Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#newSeq%2Cseq%5BT%5D%2CNatural"><span class="Identifier">newSeq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">len</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"NewSeq"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Creates a new sequence of type <tt class="docutils literal"><span class="pre">seq[T]</span></tt> with length <tt class="docutils literal"><span class="pre">len</span></tt>.</p> | |
<p>This is equivalent to <tt class="docutils literal"><span class="pre">s = @[]; setlen(s, len)</span></tt>, but more efficient since no reallocation is needed.</p> | |
<p>Note that the sequence will be filled with zeroed entries. After the creation of the sequence you should assign entries to the sequence instead of adding them. Example:</p> | |
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">inputStrings</span><span class="Punctuation">:</span> <span class="Identifier">seq</span><span class="Punctuation">[</span><span class="Identifier">string</span><span class="Punctuation">]</span> | |
<span class="Identifier">newSeq</span><span class="Punctuation">(</span><span class="Identifier">inputStrings</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">)</span> | |
<span class="Identifier">assert</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">inputStrings</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">3</span> | |
<span class="Identifier">inputStrings</span><span class="Punctuation">[</span><span class="DecNumber">0</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="StringLit">"The fourth"</span> | |
<span class="Identifier">inputStrings</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="StringLit">"assignment"</span> | |
<span class="Identifier">inputStrings</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="StringLit">"would crash"</span> | |
<span class="Comment">#inputStrings[3] = "out of bounds"</span></pre> | |
</dd> | |
<a id="newSeq"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#newSeq"><span class="Identifier">newSeq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">len</span> <span class="Other">=</span> <span class="DecNumber">0</span><span class="Other">.</span><span class="Identifier">Natural</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span></pre></dt> | |
<dd> | |
<p>Creates a new sequence of type <tt class="docutils literal"><span class="pre">seq[T]</span></tt> with length <tt class="docutils literal"><span class="pre">len</span></tt>.</p> | |
<p>Note that the sequence will be filled with zeroed entries. After the creation of the sequence you should assign entries to the sequence instead of adding them.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#newSeqOfCap,Natural">newSeqOfCap</a></li> | |
<li><a class="reference external" href="#newSeqUninitialized,Natural">newSeqUninitialized</a></li> | |
</ul> | |
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">inputStrings</span> <span class="Operator">=</span> <span class="Identifier">newSeq</span><span class="Punctuation">[</span><span class="Identifier">string</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="DecNumber">3</span><span class="Punctuation">)</span> | |
<span class="Identifier">assert</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">inputStrings</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">3</span> | |
<span class="Identifier">inputStrings</span><span class="Punctuation">[</span><span class="DecNumber">0</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="StringLit">"The fourth"</span> | |
<span class="Identifier">inputStrings</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="StringLit">"assignment"</span> | |
<span class="Identifier">inputStrings</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="StringLit">"would crash"</span> | |
<span class="Comment">#inputStrings[3] = "out of bounds"</span></pre> | |
</dd> | |
<a id="newSeqOfCap,Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#newSeqOfCap%2CNatural"><span class="Identifier">newSeqOfCap</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">cap</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"NewSeqOfCap"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Creates a new sequence of type <tt class="docutils literal"><span class="pre">seq[T]</span></tt> with length zero and capacity <tt class="docutils literal"><span class="pre">cap</span></tt>.<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">x</span> <span class="Operator">=</span> <span class="Identifier">newSeqOfCap</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">)</span> | |
<span class="Identifier">assert</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">0</span> | |
<span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="DecNumber">10</span><span class="Punctuation">)</span> | |
<span class="Identifier">assert</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">1</span></pre> | |
</dd> | |
<a id="newSeqUninitialized,Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#newSeqUninitialized%2CNatural"><span class="Identifier">newSeqUninitialized</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#SomeNumber"><span class="Identifier">SomeNumber</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">len</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span></pre></dt> | |
<dd> | |
<p>Creates a new sequence of type <tt class="docutils literal"><span class="pre">seq[T]</span></tt> with length <tt class="docutils literal"><span class="pre">len</span></tt>.</p> | |
<p>Only available for numbers types. Note that the sequence will be uninitialized. After the creation of the sequence you should assign entries to the sequence instead of adding them.</p> | |
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">x</span> <span class="Operator">=</span> <span class="Identifier">newSeqUninitialized</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="DecNumber">3</span><span class="Punctuation">)</span> | |
<span class="Identifier">assert</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">3</span> | |
<span class="Identifier">x</span><span class="Punctuation">[</span><span class="DecNumber">0</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="DecNumber">10</span></pre> | |
</dd> | |
<a id="len,TOpenArray"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#len%2CTOpenArray"><span class="Identifier">len</span></a><span class="Other">[</span><span class="Identifier">TOpenArray</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a> <span class="Operator">|</span> <a href="system.html#varargs"><span class="Identifier">varargs</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">TOpenArray</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"> | |
<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LengthOpenArray"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Returns the length of an openArray.<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">s</span> <span class="Operator">=</span> <span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">]</span> | |
<span class="Identifier">echo</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span> <span class="Comment"># => 5</span></pre> | |
</dd> | |
<a id="len,string"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#len%2Cstring"><span class="Identifier">len</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LengthStr"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Returns the length of a string.<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">str</span> <span class="Operator">=</span> <span class="StringLit">"Hello world!"</span> | |
<span class="Identifier">echo</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">str</span><span class="Punctuation">)</span> <span class="Comment"># => 12</span></pre> | |
</dd> | |
<a id="len,cstring"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#len%2Ccstring"><span class="Identifier">len</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LengthStr"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> | |
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Returns the length of a compatible string. This is an O(n) operation except in js at runtime.</p> | |
<p><strong>Note:</strong> On the JS backend this currently counts UTF-16 code points instead of bytes at runtime (not at compile time). For now, if you need the byte length of the UTF-8 encoding, convert to string with <tt class="docutils literal"><span class="pre">$</span></tt> first then call <tt class="docutils literal"><span class="pre">len</span></tt>.</p> | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Identifier">doAssert</span><span class="Whitespace"> </span><span class="Identifier">len</span><span class="Punctuation">(</span><span class="RawData">cstring"abc"</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Whitespace"> | |
</span><span class="Identifier">doAssert</span><span class="Whitespace"> </span><span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">cstring</span><span class="Whitespace"> </span><span class="RawData">r"ab\0c"</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">5</span><span class="Whitespace"> </span><span class="Comment"># \0 is escaped</span><span class="Whitespace"> | |
</span><span class="Identifier">doAssert</span><span class="Whitespace"> </span><span class="Identifier">len</span><span class="Punctuation">(</span><span class="RawData">cstring"ab\0c"</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">5</span><span class="Whitespace"> </span><span class="Comment"># ditto</span><span class="Whitespace"> | |
</span><span class="Keyword">var</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Punctuation">:</span><span class="Whitespace"> </span><span class="Identifier">cstring</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="StringLit">"ab</span><span class="EscapeSequence">\0</span><span class="StringLit">c"</span><span class="Whitespace"> | |
</span><span class="Keyword">when</span><span class="Whitespace"> </span><span class="Identifier">defined</span><span class="Punctuation">(</span><span class="Identifier">js</span><span class="Punctuation">)</span><span class="Punctuation">:</span><span class="Whitespace"> </span><span class="Identifier">doAssert</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">len</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">4</span><span class="Whitespace"> </span><span class="Comment"># len ignores \0 for js</span><span class="Whitespace"> | |
</span><span class="Keyword">else</span><span class="Punctuation">:</span><span class="Whitespace"> </span><span class="Identifier">doAssert</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">len</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">2</span><span class="Whitespace"> </span><span class="Comment"># \0 is a null terminator</span><span class="Whitespace"> | |
</span><span class="Keyword">static</span><span class="Punctuation">:</span><span class="Whitespace"> | |
</span><span class="Keyword">var</span><span class="Whitespace"> </span><span class="Identifier">a2</span><span class="Punctuation">:</span><span class="Whitespace"> </span><span class="Identifier">cstring</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="StringLit">"ab</span><span class="EscapeSequence">\0</span><span class="StringLit">c"</span><span class="Whitespace"> | |
</span><span class="Identifier">doAssert</span><span class="Whitespace"> </span><span class="Identifier">a2</span><span class="Operator">.</span><span class="Identifier">len</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">2</span><span class="Whitespace"> </span><span class="Comment"># \0 is a null terminator, even in js vm</span></pre> | |
</dd> | |
<a id="len"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#len"><span class="Identifier">len</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Other">(</span><span class="Keyword">type</span> <span class="Identifier">array</span><span class="Other">)</span> <span class="Operator">|</span> <a href="system.html#array"><span class="Identifier">array</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LengthArray"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Returns the length of an array or an array type. This is roughly the same as <tt class="docutils literal"><span class="pre">high(T)-low(T)+1</span></tt>.<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">arr</span> <span class="Operator">=</span> <span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">]</span> | |
<span class="Identifier">echo</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">arr</span><span class="Punctuation">)</span> <span class="Comment"># => 5</span> | |
<span class="Identifier">echo</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">array</span><span class="Punctuation">[</span><span class="FloatNumber">3.</span><span class="Operator">.</span><span class="DecNumber">8</span><span class="Punctuation">,</span> <span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">)</span> <span class="Comment"># => 6</span></pre> | |
</dd> | |
<a id="len,seq[T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#len%2Cseq%5BT%5D"><span class="Identifier">len</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LengthSeq"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Returns the length of a sequence.<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">s</span> <span class="Operator">=</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">]</span> | |
<span class="Identifier">echo</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span> <span class="Comment"># => 5</span></pre> | |
</dd> | |
<a id="ord,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#ord%2CT"><span class="Identifier">ord</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#Ordinal"><span class="Identifier">Ordinal</span></a> <span class="Operator">|</span> <span class="Keyword">enum</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Ord"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Returns the internal <tt class="docutils literal"><span class="pre">int</span></tt> value of an ordinal value <tt class="docutils literal"><span class="pre">x</span></tt>.<pre class="listing"><span class="Identifier">echo</span> <span class="Identifier">ord</span><span class="Punctuation">(</span><span class="CharLit">'A'</span><span class="Punctuation">)</span> <span class="Comment"># => 65</span> | |
<span class="Identifier">echo</span> <span class="Identifier">ord</span><span class="Punctuation">(</span><span class="CharLit">'a'</span><span class="Punctuation">)</span> <span class="Comment"># => 97</span></pre> | |
</dd> | |
<a id="chr,range[]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#chr%2Crange%5B%5D"><span class="Identifier">chr</span></a><span class="Other">(</span><span class="Identifier">u</span><span class="Other">:</span> <a href="system.html#range"><span class="Identifier">range</span></a><span class="Other">[</span><span class="DecNumber">0</span> <span class="Operator">..</span> <span class="DecNumber">255</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Chr"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Converts an <tt class="docutils literal"><span class="pre">int</span></tt> in the range <tt class="docutils literal"><span class="pre">0..255</span></tt> to a character.<pre class="listing"><span class="Identifier">echo</span> <span class="Identifier">chr</span><span class="Punctuation">(</span><span class="DecNumber">65</span><span class="Punctuation">)</span> <span class="Comment"># => A</span> | |
<span class="Identifier">echo</span> <span class="Identifier">chr</span><span class="Punctuation">(</span><span class="DecNumber">97</span><span class="Punctuation">)</span> <span class="Comment"># => a</span></pre> | |
</dd> | |
<a id="+,float32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%2Cfloat32"><span class="Identifier">`+`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"UnaryPlusF64"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="-,float32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%2Cfloat32"><span class="Identifier">`-`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"UnaryMinusF64"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="+,float32,float32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%2Cfloat32%2Cfloat32"><span class="Identifier">`+`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AddF64"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="-,float32,float32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%2Cfloat32%2Cfloat32"><span class="Identifier">`-`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"SubF64"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="*,float32,float32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2A%2Cfloat32%2Cfloat32"><span class="Identifier">`*`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MulF64"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="/,float32,float32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2F%2Cfloat32%2Cfloat32"><span class="Identifier">`/`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"DivF64"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="+,float"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%2Cfloat"><span class="Identifier">`+`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"UnaryPlusF64"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="-,float"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%2Cfloat"><span class="Identifier">`-`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"UnaryMinusF64"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="+,float,float"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2B%2Cfloat%2Cfloat"><span class="Identifier">`+`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AddF64"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="-,float,float"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%2Cfloat%2Cfloat"><span class="Identifier">`-`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"SubF64"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="*,float,float"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2A%2Cfloat%2Cfloat"><span class="Identifier">`*`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MulF64"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="/,float,float"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%2F%2Cfloat%2Cfloat"><span class="Identifier">`/`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"DivF64"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="==,float32,float32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2Cfloat32%2Cfloat32"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"EqF64"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<=,float32,float32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cfloat32%2Cfloat32"><span class="Identifier">`<=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LeF64"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<,float32,float32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cfloat32%2Cfloat32"><span class="Identifier">`<`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LtF64"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="==,float,float"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2Cfloat%2Cfloat"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"EqF64"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<=,float,float"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cfloat%2Cfloat"><span class="Identifier">`<=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LeF64"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="<,float,float"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cfloat%2Cfloat"><span class="Identifier">`<`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"LtF64"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="incl,set[T],T"></a> | |
<dt><pre><span class="Keyword">func</span> <a href="#incl%2Cset%5BT%5D%2CT"><span class="Identifier">incl</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#set"><span class="Identifier">set</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Incl"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Includes element <tt class="docutils literal"><span class="pre">y</span></tt> in the set <tt class="docutils literal"><span class="pre">x</span></tt>.</p> | |
<p>This is the same as <tt class="docutils literal"><span class="pre">x = x + {y}</span></tt>, but it might be more efficient.</p> | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Keyword">var</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">1</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">5</span><span class="Punctuation">}</span><span class="Whitespace"> | |
</span><span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">incl</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">)</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">1</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">2</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">5</span><span class="Punctuation">}</span><span class="Whitespace"> | |
</span><span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">incl</span><span class="Punctuation">(</span><span class="DecNumber">4</span><span class="Punctuation">)</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">1</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">2</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">4</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">5</span><span class="Punctuation">}</span></pre> | |
</dd> | |
<a id="excl,set[T],T"></a> | |
<dt><pre><span class="Keyword">func</span> <a href="#excl%2Cset%5BT%5D%2CT"><span class="Identifier">excl</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#set"><span class="Identifier">set</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Excl"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Excludes element <tt class="docutils literal"><span class="pre">y</span></tt> from the set <tt class="docutils literal"><span class="pre">x</span></tt>.</p> | |
<p>This is the same as <tt class="docutils literal"><span class="pre">x = x - {y}</span></tt>, but it might be more efficient.</p> | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Keyword">var</span><span class="Whitespace"> </span><span class="Identifier">b</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">2</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">5</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">6</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">12</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">545</span><span class="Punctuation">}</span><span class="Whitespace"> | |
</span><span class="Identifier">b</span><span class="Operator">.</span><span class="Identifier">excl</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">)</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">b</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">2</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">6</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">12</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">545</span><span class="Punctuation">}</span></pre> | |
</dd> | |
<a id="card,set[T]"></a> | |
<dt><pre><span class="Keyword">func</span> <a href="#card%2Cset%5BT%5D"><span class="Identifier">card</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#set"><span class="Identifier">set</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Card"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Returns the cardinality of the set <tt class="docutils literal"><span class="pre">x</span></tt>, i.e. the number of elements in the set. | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Keyword">var</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">1</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">5</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">7</span><span class="Punctuation">}</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">card</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">4</span><span class="Whitespace"> | |
</span><span class="Keyword">var</span><span class="Whitespace"> </span><span class="Identifier">b</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">1</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">5</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">7</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">5</span><span class="Punctuation">}</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">card</span><span class="Punctuation">(</span><span class="Identifier">b</span><span class="Punctuation">)</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">4</span><span class="Whitespace"> </span><span class="Comment"># repeated 5 doesn't count</span></pre> | |
</dd> | |
<a id="len,set[T]"></a> | |
<dt><pre><span class="Keyword">func</span> <a href="#len%2Cset%5BT%5D"><span class="Identifier">len</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#set"><span class="Identifier">set</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Card"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
An alias for <tt class="docutils literal"><span class="pre">card(x)</span></tt>. | |
</dd> | |
<a id="*,set[T],set[T]"></a> | |
<dt><pre><span class="Keyword">func</span> <a href="#%2A%2Cset%5BT%5D%2Cset%5BT%5D"><span class="Identifier">`*`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#set"><span class="Identifier">set</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#set"><span class="Identifier">set</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MulSet"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
This operator computes the intersection of two sets. | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">1</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">2</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">}</span><span class="Whitespace"> </span><span class="Operator">*</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">2</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">4</span><span class="Punctuation">}</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">2</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">}</span></pre> | |
</dd> | |
<a id="+,set[T],set[T]"></a> | |
<dt><pre><span class="Keyword">func</span> <a href="#%2B%2Cset%5BT%5D%2Cset%5BT%5D"><span class="Identifier">`+`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#set"><span class="Identifier">set</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#set"><span class="Identifier">set</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"PlusSet"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
This operator computes the union of two sets. | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">1</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">2</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">}</span><span class="Whitespace"> </span><span class="Operator">+</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">2</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">4</span><span class="Punctuation">}</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">1</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">2</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">4</span><span class="Punctuation">}</span></pre> | |
</dd> | |
<a id="-,set[T],set[T]"></a> | |
<dt><pre><span class="Keyword">func</span> <a href="#-%2Cset%5BT%5D%2Cset%5BT%5D"><span class="Identifier">`-`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#set"><span class="Identifier">set</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#set"><span class="Identifier">set</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"MinusSet"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
This operator computes the difference of two sets. | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">1</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">2</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">}</span><span class="Whitespace"> </span><span class="Operator">-</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">2</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">4</span><span class="Punctuation">}</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="DecNumber">1</span><span class="Punctuation">}</span></pre> | |
</dd> | |
<a id="contains,set[T],T"></a> | |
<dt><pre><span class="Keyword">func</span> <a href="#contains%2Cset%5BT%5D%2CT"><span class="Identifier">contains</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#set"><span class="Identifier">set</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"InSet"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>One should overload this proc if one wants to overload the <tt class="docutils literal"><span class="pre">in</span></tt> operator.</p> | |
<p>The parameters are in reverse order! <tt class="docutils literal"><span class="pre">a in b</span></tt> is a template for <tt class="docutils literal"><span class="pre">contains(b, a)</span></tt>. This is because the unification algorithm that Nim uses for overload resolution works from left to right. But for the <tt class="docutils literal"><span class="pre">in</span></tt> operator that would be the wrong direction for this piece of code:</p> | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Keyword">var</span><span class="Whitespace"> </span><span class="Identifier">s</span><span class="Punctuation">:</span><span class="Whitespace"> </span><span class="Identifier">set</span><span class="Punctuation">[</span><span class="Identifier">range</span><span class="Punctuation">[</span><span class="CharLit">'a'</span><span class="Operator">..</span><span class="CharLit">'z'</span><span class="Punctuation">]</span><span class="Punctuation">]</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="Punctuation">{</span><span class="CharLit">'a'</span><span class="Operator">..</span><span class="CharLit">'c'</span><span class="Punctuation">}</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">contains</span><span class="Punctuation">(</span><span class="CharLit">'c'</span><span class="Punctuation">)</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="CharLit">'b'</span><span class="Whitespace"> </span><span class="Keyword">in</span><span class="Whitespace"> </span><span class="Identifier">s</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="CharLit">'d'</span><span class="Whitespace"> </span><span class="Keyword">notin</span><span class="Whitespace"> </span><span class="Identifier">s</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">set</span><span class="Punctuation">[</span><span class="CharLit">'a'</span><span class="Operator">..</span><span class="CharLit">'z'</span><span class="Punctuation">]</span><span class="Whitespace"> </span><span class="Keyword">is</span><span class="Whitespace"> </span><span class="Identifier">set</span><span class="Punctuation">[</span><span class="Identifier">range</span><span class="Punctuation">[</span><span class="CharLit">'a'</span><span class="Operator">..</span><span class="CharLit">'z'</span><span class="Punctuation">]</span><span class="Punctuation">]</span></pre>If <tt class="docutils literal"><span class="pre">in</span></tt> had been declared as <tt class="docutils literal"><span class="pre">[T](elem: T, s: set[T])</span></tt> then <tt class="docutils literal"><span class="pre">T</span></tt> would have been bound to <tt class="docutils literal"><span class="pre">char</span></tt>. But <tt class="docutils literal"><span class="pre">s</span></tt> is not compatible to type <tt class="docutils literal"><span class="pre">set[char]</span></tt>! The solution is to bind <tt class="docutils literal"><span class="pre">T</span></tt> to <tt class="docutils literal"><span class="pre">range['a'..'z']</span></tt>. This is achieved by reversing the parameters for <tt class="docutils literal"><span class="pre">contains</span></tt>; <tt class="docutils literal"><span class="pre">in</span></tt> then passes its arguments in reverse order. | |
</dd> | |
<a id="contains,HSlice[U,V],W"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#contains%2CHSlice%5BU%2CV%5D%2CW"><span class="Identifier">contains</span></a><span class="Other">[</span><span class="Identifier">U</span><span class="Other">,</span> <span class="Identifier">V</span><span class="Other">,</span> <span class="Identifier">W</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#HSlice"><span class="Identifier">HSlice</span></a><span class="Other">[</span><span class="Identifier">U</span><span class="Other">,</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">value</span><span class="Other">:</span> <span class="Identifier">W</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Checks if <tt class="docutils literal"><span class="pre">value</span></tt> is within the range of <tt class="docutils literal"><span class="pre">s</span></tt>; returns true if <tt class="docutils literal"><span class="pre">value >= s.a and value <= s.b</span></tt><pre class="listing"><span class="Identifier">assert</span><span class="Punctuation">(</span><span class="Punctuation">(</span><span class="FloatNumber">1.</span><span class="Operator">.</span><span class="DecNumber">3</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">contains</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">true</span><span class="Punctuation">)</span> | |
<span class="Identifier">assert</span><span class="Punctuation">(</span><span class="Punctuation">(</span><span class="FloatNumber">1.</span><span class="Operator">.</span><span class="DecNumber">3</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">contains</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">true</span><span class="Punctuation">)</span> | |
<span class="Identifier">assert</span><span class="Punctuation">(</span><span class="Punctuation">(</span><span class="FloatNumber">1.</span><span class="Operator">.</span><span class="DecNumber">3</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">contains</span><span class="Punctuation">(</span><span class="DecNumber">4</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">false</span><span class="Punctuation">)</span></pre> | |
</dd> | |
<a id="is,T,S"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#is%2CT%2CS"><span class="Identifier">`is`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">,</span> <span class="Identifier">S</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">S</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Is"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Checks if <tt class="docutils literal"><span class="pre">T</span></tt> is of the same type as <tt class="docutils literal"><span class="pre">S</span></tt>.</p> | |
<p>For a negated version, use <a class="reference external" href="#isnot.t,untyped,untyped">isnot</a>.</p> | |
<pre class="listing"><span class="Identifier">assert</span> <span class="DecNumber">42</span> <span class="Keyword">is</span> <span class="Identifier">int</span> | |
<span class="Identifier">assert</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">]</span> <span class="Keyword">is</span> <span class="Identifier">seq</span> | |
<span class="Keyword">proc</span> <span class="Identifier">test</span><span class="Punctuation">[</span><span class="Identifier">T</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">:</span> <span class="Identifier">T</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Identifier">int</span> <span class="Operator">=</span> | |
<span class="Keyword">when</span> <span class="Punctuation">(</span><span class="Identifier">T</span> <span class="Keyword">is</span> <span class="Identifier">int</span><span class="Punctuation">)</span><span class="Punctuation">:</span> | |
<span class="Keyword">return</span> <span class="Identifier">a</span> | |
<span class="Keyword">else</span><span class="Punctuation">:</span> | |
<span class="Keyword">return</span> <span class="DecNumber">0</span> | |
<span class="Identifier">assert</span><span class="Punctuation">(</span><span class="Identifier">test</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">3</span><span class="Punctuation">)</span> | |
<span class="Identifier">assert</span><span class="Punctuation">(</span><span class="Identifier">test</span><span class="Punctuation">[</span><span class="Identifier">string</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="StringLit">"xyz"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">0</span><span class="Punctuation">)</span></pre> | |
</dd> | |
<a id="new,ref.T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#new%2Cref.T"><span class="Identifier">new</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Keyword">ref</span> <span class="Identifier">T</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"New"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Creates a new object of type <tt class="docutils literal"><span class="pre">T</span></tt> and returns a safe (traced) reference to it in <tt class="docutils literal"><span class="pre">a</span></tt>. | |
</dd> | |
<a id="new,typedesc"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#new%2Ctypedesc"><span class="Identifier">new</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#auto"><span class="Identifier">auto</span></a></pre></dt> | |
<dd> | |
<p>Creates a new object of type <tt class="docutils literal"><span class="pre">T</span></tt> and returns a safe (traced) reference to it as result value.</p> | |
<p>When <tt class="docutils literal"><span class="pre">T</span></tt> is a ref type then the resulting type will be <tt class="docutils literal"><span class="pre">T</span></tt>, otherwise it will be <tt class="docutils literal"><span class="pre">ref T</span></tt>.</p> | |
</dd> | |
<a id="of,typedesc[T],typedesc[S]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#of%2Ctypedesc%5BT%5D%2Ctypedesc%5BS%5D"><span class="Identifier">`of`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">,</span> <span class="Identifier">S</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">[</span><span class="Identifier">S</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Of"</span><span class="Other">,</span> | |
<span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="of,T,typedesc[S]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#of%2CT%2Ctypedesc%5BS%5D"><span class="Identifier">`of`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">,</span> <span class="Identifier">S</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">[</span><span class="Identifier">S</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Of"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="of,T,S"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#of%2CT%2CS"><span class="Identifier">`of`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">,</span> <span class="Identifier">S</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">S</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Of"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Checks if <tt class="docutils literal"><span class="pre">x</span></tt> has a type of <tt class="docutils literal"><span class="pre">y</span></tt>.<pre class="listing"><span class="Identifier">assert</span><span class="Punctuation">(</span><span class="Identifier">FloatingPointDefect</span> <span class="Keyword">of</span> <span class="Identifier">Exception</span><span class="Punctuation">)</span> | |
<span class="Identifier">assert</span><span class="Punctuation">(</span><span class="Identifier">DivByZeroDefect</span> <span class="Keyword">of</span> <span class="Identifier">Exception</span><span class="Punctuation">)</span></pre> | |
</dd> | |
<a id="cmp,T,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#cmp%2CT%2CT"><span class="Identifier">cmp</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a></pre></dt> | |
<dd> | |
<p>Generic compare proc.</p> | |
<p>Returns:</p> | |
<ul class="simple"><li>a value less than zero, if <tt class="docutils literal"><span class="pre">x < y</span></tt></li> | |
<li>a value greater than zero, if <tt class="docutils literal"><span class="pre">x > y</span></tt></li> | |
<li>zero, if <tt class="docutils literal"><span class="pre">x == y</span></tt></li> | |
</ul> | |
<p>This is useful for writing generic algorithms without performance loss. This generic implementation uses the <tt class="docutils literal"><span class="pre">==</span></tt> and <tt class="docutils literal"><span class="pre"><</span></tt> operators.</p> | |
<pre class="listing"><span class="Keyword">import</span> <span class="Identifier">algorithm</span> | |
<span class="Identifier">echo</span> <span class="Identifier">sorted</span><span class="Punctuation">(</span><span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">]</span><span class="Punctuation">,</span> <span class="Identifier">cmp</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">)</span></pre> | |
</dd> | |
<a id="@,sinkarray[IDX,T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%40%2Csinkarray%5BIDX%2CT%5D"><span class="Identifier">`@`</span></a><span class="Other">[</span><span class="Identifier">IDX</span><span class="Other">,</span> <span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="system.html#sink"><span class="Identifier">sink</span></a> <a href="system.html#array"><span class="Identifier">array</span></a><span class="Other">[</span><span class="Identifier">IDX</span><span class="Other">,</span> <span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ArrToSeq"</span><span class="Other">,</span> | |
<span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Turns an array into a sequence.</p> | |
<p>This most often useful for constructing sequences with the array constructor: <tt class="docutils literal"><span class="pre">@[1, 2, 3]</span></tt> has the type <tt class="docutils literal"><span class="pre">seq[int]</span></tt>, while <tt class="docutils literal"><span class="pre">[1, 2, 3]</span></tt> has the type <tt class="docutils literal"><span class="pre">array[0..2, int]</span></tt>.</p> | |
<pre class="listing"><span class="Keyword">let</span> | |
<span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">]</span> | |
<span class="Identifier">b</span> <span class="Operator">=</span> <span class="StringLit">"foo"</span> | |
<span class="Identifier">echo</span> <span class="Operator">@</span><span class="Identifier">a</span> <span class="Comment"># => @[1, 3, 5]</span> | |
<span class="Identifier">echo</span> <span class="Operator">@</span><span class="Identifier">b</span> <span class="Comment"># => @['f', 'o', 'o']</span></pre> | |
</dd> | |
<a id="default,typedesc"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#default%2Ctypedesc"><span class="Identifier">default</span></a><span class="Other">(</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T:type</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Default"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
returns the default value of the type <tt class="docutils literal"><span class="pre">T</span></tt>. | |
</dd> | |
<a id="reset,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#reset%2CT"><span class="Identifier">reset</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">T</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Resets an object <tt class="docutils literal"><span class="pre">obj</span></tt> to its default value. | |
</dd> | |
<a id="setLen,seq[T],Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#setLen%2Cseq%5BT%5D%2CNatural"><span class="Identifier">setLen</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">newlen</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"SetLengthSeq"</span><span class="Other">,</span> | |
<span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Sets the length of seq <tt class="docutils literal"><span class="pre">s</span></tt> to <tt class="docutils literal"><span class="pre">newlen</span></tt>. <tt class="docutils literal"><span class="pre">T</span></tt> may be any sequence type.</p> | |
<p>If the current length is greater than the new length, <tt class="docutils literal"><span class="pre">s</span></tt> will be truncated.</p> | |
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">x</span> <span class="Operator">=</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">10</span><span class="Punctuation">,</span> <span class="DecNumber">20</span><span class="Punctuation">]</span> | |
<span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">setLen</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">)</span> | |
<span class="Identifier">x</span><span class="Punctuation">[</span><span class="DecNumber">4</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="DecNumber">50</span> | |
<span class="Identifier">assert</span> <span class="Identifier">x</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">10</span><span class="Punctuation">,</span> <span class="DecNumber">20</span><span class="Punctuation">,</span> <span class="DecNumber">0</span><span class="Punctuation">,</span> <span class="DecNumber">0</span><span class="Punctuation">,</span> <span class="DecNumber">50</span><span class="Punctuation">]</span> | |
<span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">setLen</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">)</span> | |
<span class="Identifier">assert</span> <span class="Identifier">x</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">10</span><span class="Punctuation">]</span></pre> | |
</dd> | |
<a id="setLen,string,Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#setLen%2Cstring%2CNatural"><span class="Identifier">setLen</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">newlen</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"SetLengthStr"</span><span class="Other">,</span> | |
<span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Sets the length of string <tt class="docutils literal"><span class="pre">s</span></tt> to <tt class="docutils literal"><span class="pre">newlen</span></tt>.</p> | |
<p>If the current length is greater than the new length, <tt class="docutils literal"><span class="pre">s</span></tt> will be truncated.</p> | |
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">myS</span> <span class="Operator">=</span> <span class="StringLit">"Nim is great!!"</span> | |
<span class="Identifier">myS</span><span class="Operator">.</span><span class="Identifier">setLen</span><span class="Punctuation">(</span><span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Comment"># myS <- "Nim"</span> | |
<span class="Identifier">echo</span> <span class="Identifier">myS</span><span class="Punctuation">,</span> <span class="StringLit">" is fantastic!!"</span></pre> | |
</dd> | |
<a id="newString,Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#newString%2CNatural"><span class="Identifier">newString</span></a><span class="Other">(</span><span class="Identifier">len</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"NewString"</span><span class="Other">,</span> | |
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"mnewString"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Returns a new string of length <tt class="docutils literal"><span class="pre">len</span></tt> but with uninitialized content. One needs to fill the string character after character with the index operator <tt class="docutils literal"><span class="pre">s[i]</span></tt>.</p> | |
<p>This procedure exists only for optimization purposes; the same effect can be achieved with the <tt class="docutils literal"><span class="pre">&</span></tt> operator or with <tt class="docutils literal"><span class="pre">add</span></tt>.</p> | |
</dd> | |
<a id="newStringOfCap,Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#newStringOfCap%2CNatural"><span class="Identifier">newStringOfCap</span></a><span class="Other">(</span><span class="Identifier">cap</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"NewStringOfCap"</span><span class="Other">,</span> | |
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"rawNewString"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Returns a new string of length <tt class="docutils literal"><span class="pre">0</span></tt> but with capacity <tt class="docutils literal"><span class="pre">cap</span></tt>.</p> | |
<p>This procedure exists only for optimization purposes; the same effect can be achieved with the <tt class="docutils literal"><span class="pre">&</span></tt> operator or with <tt class="docutils literal"><span class="pre">add</span></tt>.</p> | |
</dd> | |
<a id="&,string,char"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%26%2Cstring%2Cchar"><span class="Identifier">`&`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ConStrStr"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">merge</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Concatenates <tt class="docutils literal"><span class="pre">x</span></tt> with <tt class="docutils literal"><span class="pre">y</span></tt>.<pre class="listing"><span class="Identifier">assert</span><span class="Punctuation">(</span><span class="StringLit">"ab"</span> <span class="Operator">&</span> <span class="CharLit">'c'</span> <span class="Operator">==</span> <span class="StringLit">"abc"</span><span class="Punctuation">)</span></pre> | |
</dd> | |
<a id="&,char,char"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%26%2Cchar%2Cchar"><span class="Identifier">`&`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ConStrStr"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">merge</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Concatenates characters <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt> into a string.<pre class="listing"><span class="Identifier">assert</span><span class="Punctuation">(</span><span class="CharLit">'a'</span> <span class="Operator">&</span> <span class="CharLit">'b'</span> <span class="Operator">==</span> <span class="StringLit">"ab"</span><span class="Punctuation">)</span></pre> | |
</dd> | |
<a id="&,string,string"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%26%2Cstring%2Cstring"><span class="Identifier">`&`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ConStrStr"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">merge</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Concatenates strings <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt>.<pre class="listing"><span class="Identifier">assert</span><span class="Punctuation">(</span><span class="StringLit">"ab"</span> <span class="Operator">&</span> <span class="StringLit">"cd"</span> <span class="Operator">==</span> <span class="StringLit">"abcd"</span><span class="Punctuation">)</span></pre> | |
</dd> | |
<a id="&,char,string"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%26%2Cchar%2Cstring"><span class="Identifier">`&`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"ConStrStr"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">merge</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Concatenates <tt class="docutils literal"><span class="pre">x</span></tt> with <tt class="docutils literal"><span class="pre">y</span></tt>.<pre class="listing"><span class="Identifier">assert</span><span class="Punctuation">(</span><span class="CharLit">'a'</span> <span class="Operator">&</span> <span class="StringLit">"bc"</span> <span class="Operator">==</span> <span class="StringLit">"abc"</span><span class="Punctuation">)</span></pre> | |
</dd> | |
<a id="add,string,char"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#add%2Cstring%2Cchar"><span class="Identifier">add</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AppendStrCh"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Appends <tt class="docutils literal"><span class="pre">y</span></tt> to <tt class="docutils literal"><span class="pre">x</span></tt> in place.<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">tmp</span> <span class="Operator">=</span> <span class="StringLit">""</span> | |
<span class="Identifier">tmp</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="CharLit">'a'</span><span class="Punctuation">)</span> | |
<span class="Identifier">tmp</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="CharLit">'b'</span><span class="Punctuation">)</span> | |
<span class="Identifier">assert</span><span class="Punctuation">(</span><span class="Identifier">tmp</span> <span class="Operator">==</span> <span class="StringLit">"ab"</span><span class="Punctuation">)</span></pre> | |
</dd> | |
<a id="add,string,string"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#add%2Cstring%2Cstring"><span class="Identifier">add</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AppendStrStr"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Concatenates <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt> in place.<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">tmp</span> <span class="Operator">=</span> <span class="StringLit">""</span> | |
<span class="Identifier">tmp</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="StringLit">"ab"</span><span class="Punctuation">)</span> | |
<span class="Identifier">tmp</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="StringLit">"cd"</span><span class="Punctuation">)</span> | |
<span class="Identifier">assert</span><span class="Punctuation">(</span><span class="Identifier">tmp</span> <span class="Operator">==</span> <span class="StringLit">"abcd"</span><span class="Punctuation">)</span></pre> | |
</dd> | |
<a id="quit,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#quit%2Cint"><span class="Identifier">quit</span></a><span class="Other">(</span><span class="Identifier">errorcode</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Other">=</span> <span class="Identifier">QuitSuccess</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Exit"</span><span class="Other">,</span> <span class="Identifier">noreturn</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Stops the program immediately with an exit code.</p> | |
<p>Before stopping the program the "exit procedures" are called in the opposite order they were added with <a class="reference external" href="exitprocs.html#addExitProc,proc)">addExitProc</a>. <tt class="docutils literal"><span class="pre">quit</span></tt> never returns and ignores any exception that may have been raised by the quit procedures. It does <em>not</em> call the garbage collector to free all the memory, unless a quit procedure calls <a class="reference external" href="#GC_fullCollect">GC_fullCollect</a>.</p> | |
<p>The proc <tt class="docutils literal"><span class="pre">quit(QuitSuccess)</span></tt> is called implicitly when your nim program finishes without incident for platforms where this is the expected behavior. A raised unhandled exception is equivalent to calling <tt class="docutils literal"><span class="pre">quit(QuitFailure)</span></tt>.</p> | |
<p>Note that this is a <em>runtime</em> call and using <tt class="docutils literal"><span class="pre">quit</span></tt> inside a macro won't have any compile time effect. If you need to stop the compiler inside a macro, use the <a class="reference external" href="manual.html#pragmas-error-pragma">error</a> or <a class="reference external" href="manual.html#pragmas-fatal-pragma">fatal</a> pragmas.</p> | |
</dd> | |
<a id="add,seq[T],sinkT"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#add%2Cseq%5BT%5D%2CsinkT"><span class="Identifier">add</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#sink"><span class="Identifier">sink</span></a> <span class="Identifier">T</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AppendSeqElem"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Generic proc for adding a data item <tt class="docutils literal"><span class="pre">y</span></tt> to a container <tt class="docutils literal"><span class="pre">x</span></tt>.</p> | |
<p>For containers that have an order, <tt class="docutils literal"><span class="pre">add</span></tt> means <em>append</em>. New generic containers should also call their adding proc <tt class="docutils literal"><span class="pre">add</span></tt> for consistency. Generic code becomes much easier to write if the Nim naming scheme is respected.</p> | |
</dd> | |
<a id="add,seq[T],openArray[T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#add%2Cseq%5BT%5D%2CopenArray%5BT%5D"><span class="Identifier">add</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Generic proc for adding a container <tt class="docutils literal"><span class="pre">y</span></tt> to a container <tt class="docutils literal"><span class="pre">x</span></tt>.</p> | |
<p>For containers that have an order, <tt class="docutils literal"><span class="pre">add</span></tt> means <em>append</em>. New generic containers should also call their adding proc <tt class="docutils literal"><span class="pre">add</span></tt> for consistency. Generic code becomes much easier to write if the Nim naming scheme is respected.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#&,seq[T],seq[T]">& proc</a></li> | |
</ul> | |
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">s</span><span class="Punctuation">:</span> <span class="Identifier">seq</span><span class="Punctuation">[</span><span class="Identifier">string</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">"test2"</span><span class="Punctuation">,</span><span class="StringLit">"test2"</span><span class="Punctuation">]</span> | |
<span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="StringLit">"test"</span><span class="Punctuation">)</span> <span class="Comment"># s <- @[test2, test2, test]</span></pre> | |
</dd> | |
<a id="del,seq[T],Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#del%2Cseq%5BT%5D%2CNatural"><span class="Identifier">del</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">i</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Deletes the item at index <tt class="docutils literal"><span class="pre">i</span></tt> by putting <tt class="docutils literal"><span class="pre">x[high(x)]</span></tt> into position <tt class="docutils literal"><span class="pre">i</span></tt>.</p> | |
<p>This is an <tt class="docutils literal"><span class="pre">O(1)</span></tt> operation.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#delete,seq[T],Natural">delete</a> for preserving the order</li> | |
</ul> | |
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">i</span> <span class="Operator">=</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">]</span> | |
<span class="Identifier">i</span><span class="Operator">.</span><span class="Identifier">del</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Comment"># => @[1, 2, 5, 4]</span></pre> | |
</dd> | |
<a id="delete,seq[T],Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#delete%2Cseq%5BT%5D%2CNatural"><span class="Identifier">delete</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">i</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Deletes the item at index <tt class="docutils literal"><span class="pre">i</span></tt> by moving all <tt class="docutils literal"><span class="pre">x[i+1..]</span></tt> items by one position.</p> | |
<p>This is an <tt class="docutils literal"><span class="pre">O(n)</span></tt> operation.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#delete,seq[T],Natural">del</a> for O(1) operation</li> | |
</ul> | |
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">i</span> <span class="Operator">=</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">]</span> | |
<span class="Identifier">i</span><span class="Operator">.</span><span class="Identifier">delete</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Comment"># => @[1, 2, 4, 5]</span></pre> | |
</dd> | |
<a id="insert,seq[T],sinkT"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#insert%2Cseq%5BT%5D%2CsinkT"><span class="Identifier">insert</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">item</span><span class="Other">:</span> <a href="system.html#sink"><span class="Identifier">sink</span></a> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">i</span> <span class="Other">=</span> <span class="DecNumber">0</span><span class="Other">.</span><span class="Identifier">Natural</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Inserts <tt class="docutils literal"><span class="pre">item</span></tt> into <tt class="docutils literal"><span class="pre">x</span></tt> at position <tt class="docutils literal"><span class="pre">i</span></tt>.<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">i</span> <span class="Operator">=</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">]</span> | |
<span class="Identifier">i</span><span class="Operator">.</span><span class="Identifier">insert</span><span class="Punctuation">(</span><span class="DecNumber">99</span><span class="Punctuation">,</span> <span class="DecNumber">0</span><span class="Punctuation">)</span> <span class="Comment"># i <- @[99, 1, 3, 5]</span></pre> | |
</dd> | |
<a id="repr,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#repr%2CT"><span class="Identifier">repr</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Repr"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Takes any Nim variable and returns its string representation. No trailing newline is inserted (so <tt class="docutils literal"><span class="pre">echo</span></tt> won't add an empty newline). Use <tt class="docutils literal"><span class="pre">-d:nimLegacyReprWithNewline</span></tt> to revert to old behavior where newlines were added in some cases.</p> | |
<p>It works even for complex data graphs with cycles. This is a great debugging tool.</p> | |
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">s</span><span class="Punctuation">:</span> <span class="Identifier">seq</span><span class="Punctuation">[</span><span class="Identifier">string</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">"test2"</span><span class="Punctuation">,</span> <span class="StringLit">"test2"</span><span class="Punctuation">]</span> | |
<span class="Keyword">var</span> <span class="Identifier">i</span> <span class="Operator">=</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">]</span> | |
<span class="Identifier">echo</span> <span class="Identifier">repr</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span> <span class="Comment"># => 0x1055eb050[0x1055ec050"test2", 0x1055ec078"test2"]</span> | |
<span class="Identifier">echo</span> <span class="Identifier">repr</span><span class="Punctuation">(</span><span class="Identifier">i</span><span class="Punctuation">)</span> <span class="Comment"># => 0x1055ed050[1, 2, 3, 4, 5]</span></pre> | |
</dd> | |
<a id="toFloat,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#toFloat%2Cint"><span class="Identifier">toFloat</span></a><span class="Other">(</span><span class="Identifier">i</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Converts an integer <tt class="docutils literal"><span class="pre">i</span></tt> into a <tt class="docutils literal"><span class="pre">float</span></tt>.</p> | |
<p>If the conversion fails, <tt class="docutils literal"><span class="pre">ValueError</span></tt> is raised. However, on most platforms the conversion cannot fail.</p> | |
<pre class="listing"><span class="Keyword">let</span> | |
<span class="Identifier">a</span> <span class="Operator">=</span> <span class="DecNumber">2</span> | |
<span class="Identifier">b</span> <span class="Operator">=</span> <span class="FloatNumber">3.7</span> | |
<span class="Identifier">echo</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">toFloat</span> <span class="Operator">+</span> <span class="Identifier">b</span> <span class="Comment"># => 5.7</span></pre> | |
</dd> | |
<a id="toBiggestFloat,BiggestInt"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#toBiggestFloat%2CBiggestInt"><span class="Identifier">toBiggestFloat</span></a><span class="Other">(</span><span class="Identifier">i</span><span class="Other">:</span> <a href="system.html#BiggestInt"><span class="Identifier">BiggestInt</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#BiggestFloat"><span class="Identifier">BiggestFloat</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> | |
<span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Same as <a class="reference external" href="#toFloat,int">toFloat</a> but for <tt class="docutils literal"><span class="pre">BiggestInt</span></tt> to <tt class="docutils literal"><span class="pre">BiggestFloat</span></tt>. | |
</dd> | |
<a id="toInt,float"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#toInt%2Cfloat"><span class="Identifier">toInt</span></a><span class="Other">(</span><span class="Identifier">f</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Converts a floating point number <tt class="docutils literal"><span class="pre">f</span></tt> into an <tt class="docutils literal"><span class="pre">int</span></tt>.</p> | |
<p>Conversion rounds <tt class="docutils literal"><span class="pre">f</span></tt> half away from 0, see <a class="reference external" href="https://en.wikipedia.org/wiki/Rounding#Round_half_away_from_zero">Round half away from zero</a>.</p> | |
<p>Note that some floating point numbers (e.g. infinity or even 1e19) cannot be accurately converted.</p> | |
<pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">toInt</span><span class="Punctuation">(</span><span class="FloatNumber">0.49</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">0</span> | |
<span class="Identifier">doAssert</span> <span class="Identifier">toInt</span><span class="Punctuation">(</span><span class="FloatNumber">0.5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">1</span> | |
<span class="Identifier">doAssert</span> <span class="Identifier">toInt</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="FloatNumber">0.5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">1</span> <span class="Comment"># rounding is symmetrical</span></pre> | |
</dd> | |
<a id="toBiggestInt,BiggestFloat"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#toBiggestInt%2CBiggestFloat"><span class="Identifier">toBiggestInt</span></a><span class="Other">(</span><span class="Identifier">f</span><span class="Other">:</span> <a href="system.html#BiggestFloat"><span class="Identifier">BiggestFloat</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#BiggestInt"><span class="Identifier">BiggestInt</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> | |
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Same as <a class="reference external" href="#toInt,float">toInt</a> but for <tt class="docutils literal"><span class="pre">BiggestFloat</span></tt> to <tt class="docutils literal"><span class="pre">BiggestInt</span></tt>. | |
</dd> | |
<a id="addQuitProc,proc)"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#addQuitProc%2Cproc%29"><span class="Identifier">addQuitProc</span></a><span class="Other">(</span><span class="Identifier">quitProc</span><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noconv</span></span><span class="Other">.}</span></span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"atexit"</span><span class="Other">,</span> | |
<span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<stdlib.h>"</span><span class="Other">,</span> <span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"use exitprocs.addExitProc"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<div class="deprecation-message"> | |
<b>Deprecated:</b> use exitprocs.addExitProc | |
</div> | |
<p>Adds/registers a quit procedure.</p> | |
<p>Each call to <tt class="docutils literal"><span class="pre">addQuitProc</span></tt> registers another quit procedure. Up to 30 procedures can be registered. They are executed on a last-in, first-out basis (that is, the last function registered is the first to be executed). <tt class="docutils literal"><span class="pre">addQuitProc</span></tt> raises an EOutOfIndex exception if <tt class="docutils literal"><span class="pre">quitProc</span></tt> cannot be registered.</p> | |
</dd> | |
<a id="swap,T,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#swap%2CT%2CT"><span class="Identifier">swap</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">T</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Swap"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Swaps the values <tt class="docutils literal"><span class="pre">a</span></tt> and <tt class="docutils literal"><span class="pre">b</span></tt>.</p> | |
<p>This is often more efficient than <tt class="docutils literal"><span class="pre">tmp = a; a = b; b = tmp</span></tt>. Particularly useful for sorting algorithms.</p> | |
<pre class="listing"><span class="Keyword">var</span> | |
<span class="Identifier">a</span> <span class="Operator">=</span> <span class="DecNumber">5</span> | |
<span class="Identifier">b</span> <span class="Operator">=</span> <span class="DecNumber">9</span> | |
<span class="Identifier">swap</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">,</span> <span class="Identifier">b</span><span class="Punctuation">)</span> | |
<span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="DecNumber">9</span> | |
<span class="Identifier">assert</span> <span class="Identifier">b</span> <span class="Operator">==</span> <span class="DecNumber">5</span></pre> | |
</dd> | |
<a id="-,AllocStats,AllocStats"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#-%2CAllocStats%2CAllocStats"><span class="Identifier">`-`</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="system.html#AllocStats"><span class="Identifier">AllocStats</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#AllocStats"><span class="Identifier">AllocStats</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="getAllocStats"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#getAllocStats"><span class="Identifier">getAllocStats</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#AllocStats"><span class="Identifier">AllocStats</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="createU,typedesc"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#createU%2Ctypedesc"><span class="Identifier">createU</span></a><span class="Other">(</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">;</span> <span class="Identifier">size</span> <span class="Other">=</span> <span class="DecNumber">1</span><span class="Other">.</span><span class="Identifier">Positive</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">T:type</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> | |
<span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Allocates a new memory block with at least <tt class="docutils literal"><span class="pre">T.sizeof * size</span></tt> bytes.</p> | |
<p>The block has to be freed with <a class="reference external" href="#resize,ptr.T,Natural">resize(block, 0)</a> or <a class="reference external" href="#dealloc,pointer">dealloc(block)</a>. The block is not initialized, so reading from it before writing to it is undefined behaviour!</p> | |
<p>The allocated memory belongs to its allocating thread! Use <a class="reference external" href="#createSharedU,typedesc">createSharedU</a> to allocate from a shared heap.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#create,typedesc">create</a></li> | |
</ul> | |
</dd> | |
<a id="create,typedesc"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#create%2Ctypedesc"><span class="Identifier">create</span></a><span class="Other">(</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">;</span> <span class="Identifier">size</span> <span class="Other">=</span> <span class="DecNumber">1</span><span class="Other">.</span><span class="Identifier">Positive</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">T:type</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> | |
<span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Allocates a new memory block with at least <tt class="docutils literal"><span class="pre">T.sizeof * size</span></tt> bytes.</p> | |
<p>The block has to be freed with <a class="reference external" href="#resize,ptr.T,Natural">resize(block, 0)</a> or <a class="reference external" href="#dealloc,pointer">dealloc(block)</a>. The block is initialized with all bytes containing zero, so it is somewhat safer than <a class="reference external" href="#createU,typedesc">createU</a>.</p> | |
<p>The allocated memory belongs to its allocating thread! Use <a class="reference external" href="#createShared,typedesc">createShared</a> to allocate from a shared heap.</p> | |
</dd> | |
<a id="resize,ptr.T,Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#resize%2Cptr.T%2CNatural"><span class="Identifier">resize</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">p</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">newSize</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">T</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> | |
<span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Grows or shrinks a given memory block.</p> | |
<p>If <tt class="docutils literal"><span class="pre">p</span></tt> is <strong>nil</strong> then a new memory block is returned. In either way the block has at least <tt class="docutils literal"><span class="pre">T.sizeof * newSize</span></tt> bytes. If <tt class="docutils literal"><span class="pre">newSize == 0</span></tt> and <tt class="docutils literal"><span class="pre">p</span></tt> is not <strong>nil</strong> <tt class="docutils literal"><span class="pre">resize</span></tt> calls <tt class="docutils literal"><span class="pre">dealloc(p)</span></tt>. In other cases the block has to be freed with <tt class="docutils literal"><span class="pre">free</span></tt>.</p> | |
<p>The allocated memory belongs to its allocating thread! Use <a class="reference external" href="#resizeShared,ptr.T,Natural">resizeShared</a> to reallocate from a shared heap.</p> | |
</dd> | |
<a id="dealloc,pointer"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#dealloc%2Cpointer"><span class="Identifier">dealloc</span></a><span class="Other">(</span><span class="Identifier">p</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noconv</span><span class="Other">,</span> <span class="Identifier">compilerproc</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> | |
<span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Frees the memory allocated with <tt class="docutils literal"><span class="pre">alloc</span></tt>, <tt class="docutils literal"><span class="pre">alloc0</span></tt> or <tt class="docutils literal"><span class="pre">realloc</span></tt>.</p> | |
<p><strong>This procedure is dangerous!</strong> If one forgets to free the memory a leak occurs; if one tries to access freed memory (or just freeing it twice!) a core dump may happen or other memory may be corrupted.</p> | |
<p>The freed memory must belong to its allocating thread! Use <a class="reference external" href="#deallocShared,pointer">deallocShared</a> to deallocate from a shared heap.</p> | |
</dd> | |
<a id="createSharedU,typedesc"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#createSharedU%2Ctypedesc"><span class="Identifier">createSharedU</span></a><span class="Other">(</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">;</span> <span class="Identifier">size</span> <span class="Other">=</span> <span class="DecNumber">1</span><span class="Other">.</span><span class="Identifier">Positive</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">T:type</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> | |
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Allocates a new memory block on the shared heap with at least <tt class="docutils literal"><span class="pre">T.sizeof * size</span></tt> bytes.</p> | |
<p>The block has to be freed with <a class="reference external" href="#resizeShared,ptr.T,Natural">resizeShared(block, 0)</a> or <a class="reference external" href="#freeShared,ptr.T">freeShared(block)</a>.</p> | |
<p>The block is not initialized, so reading from it before writing to it is undefined behaviour!</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#createShared,typedesc">createShared</a></li> | |
</ul> | |
</dd> | |
<a id="createShared,typedesc"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#createShared%2Ctypedesc"><span class="Identifier">createShared</span></a><span class="Other">(</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">;</span> <span class="Identifier">size</span> <span class="Other">=</span> <span class="DecNumber">1</span><span class="Other">.</span><span class="Identifier">Positive</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">T:type</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Allocates a new memory block on the shared heap with at least <tt class="docutils literal"><span class="pre">T.sizeof * size</span></tt> bytes.</p> | |
<p>The block has to be freed with <a class="reference external" href="#resizeShared,ptr.T,Natural">resizeShared(block, 0)</a> or <a class="reference external" href="#freeShared,ptr.T">freeShared(block)</a>.</p> | |
<p>The block is initialized with all bytes containing zero, so it is somewhat safer than <a class="reference external" href="#createSharedU,typedesc">createSharedU</a>.</p> | |
</dd> | |
<a id="resizeShared,ptr.T,Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#resizeShared%2Cptr.T%2CNatural"><span class="Identifier">resizeShared</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">p</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">newSize</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">T</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Grows or shrinks a given memory block on the heap.</p> | |
<p>If <tt class="docutils literal"><span class="pre">p</span></tt> is <strong>nil</strong> then a new memory block is returned. In either way the block has at least <tt class="docutils literal"><span class="pre">T.sizeof * newSize</span></tt> bytes. If <tt class="docutils literal"><span class="pre">newSize == 0</span></tt> and <tt class="docutils literal"><span class="pre">p</span></tt> is not <strong>nil</strong> <tt class="docutils literal"><span class="pre">resizeShared</span></tt> calls <tt class="docutils literal"><span class="pre">freeShared(p)</span></tt>. In other cases the block has to be freed with <a class="reference external" href="#freeShared,ptr.T">freeShared</a>.</p> | |
</dd> | |
<a id="deallocShared,pointer"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#deallocShared%2Cpointer"><span class="Identifier">deallocShared</span></a><span class="Other">(</span><span class="Identifier">p</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noconv</span><span class="Other">,</span> <span class="Identifier">compilerproc</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> | |
<span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Frees the memory allocated with <tt class="docutils literal"><span class="pre">allocShared</span></tt>, <tt class="docutils literal"><span class="pre">allocShared0</span></tt> or <tt class="docutils literal"><span class="pre">reallocShared</span></tt>.</p> | |
<p><strong>This procedure is dangerous!</strong> If one forgets to free the memory a leak occurs; if one tries to access freed memory (or just freeing it twice!) a core dump may happen or other memory may be corrupted.</p> | |
</dd> | |
<a id="freeShared,ptr.T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#freeShared%2Cptr.T"><span class="Identifier">freeShared</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">p</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">T</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Frees the memory allocated with <tt class="docutils literal"><span class="pre">createShared</span></tt>, <tt class="docutils literal"><span class="pre">createSharedU</span></tt> or <tt class="docutils literal"><span class="pre">resizeShared</span></tt>.</p> | |
<p><strong>This procedure is dangerous!</strong> If one forgets to free the memory a leak occurs; if one tries to access freed memory (or just freeing it twice!) a core dump may happen or other memory may be corrupted.</p> | |
</dd> | |
<a id="|,typedesc,typedesc"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%7C%2Ctypedesc%2Ctypedesc"><span class="Identifier">`|`</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a></pre></dt> | |
<dd> | |
</dd> | |
<a id="abs,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#abs%2CT"><span class="Identifier">abs</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> <span class="Operator">|</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="min,float32,float32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#min%2Cfloat32%2Cfloat32"><span class="Identifier">min</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="min,float64,float64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#min%2Cfloat64%2Cfloat64"><span class="Identifier">min</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="max,float32,float32"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#max%2Cfloat32%2Cfloat32"><span class="Identifier">max</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="max,float64,float64"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#max%2Cfloat64%2Cfloat64"><span class="Identifier">max</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="min,T,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#min%2CT%2CT"><span class="Identifier">min</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <span class="Keyword">not</span> <a href="system.html#SomeFloat"><span class="Identifier">SomeFloat</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="max,T,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#max%2CT%2CT"><span class="Identifier">max</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <span class="Keyword">not</span> <a href="system.html#SomeFloat"><span class="Identifier">SomeFloat</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="high,typedesc[SomeFloat]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#high%2Ctypedesc%5BSomeFloat%5D"><span class="Identifier">high</span></a><span class="Other">(</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">[</span><a href="system.html#SomeFloat"><span class="Identifier">SomeFloat</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T:type</span></pre></dt> | |
<dd> | |
</dd> | |
<a id="low,typedesc[SomeFloat]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#low%2Ctypedesc%5BSomeFloat%5D"><span class="Identifier">low</span></a><span class="Other">(</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">[</span><a href="system.html#SomeFloat"><span class="Identifier">SomeFloat</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T:type</span></pre></dt> | |
<dd> | |
</dd> | |
<a id="len,HSlice[U: Ordinal,V: Ordinal]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#len%2CHSlice%5BU%3A+Ordinal%2CV%3A+Ordinal%5D"><span class="Identifier">len</span></a><span class="Other">[</span><span class="Identifier">U</span><span class="Other">:</span> <a href="system.html#Ordinal"><span class="Identifier">Ordinal</span></a><span class="Other">;</span> <span class="Identifier">V</span><span class="Other">:</span> <a href="system.html#Ordinal"><span class="Identifier">Ordinal</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#HSlice"><span class="Identifier">HSlice</span></a><span class="Other">[</span><span class="Identifier">U</span><span class="Other">,</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Length of ordinal slice. When x.b < x.a returns zero length.<pre class="listing"><span class="Identifier">assert</span><span class="Punctuation">(</span><span class="Punctuation">(</span><span class="FloatNumber">0.</span><span class="Operator">.</span><span class="DecNumber">5</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">len</span> <span class="Operator">==</span> <span class="DecNumber">6</span><span class="Punctuation">)</span> | |
<span class="Identifier">assert</span><span class="Punctuation">(</span><span class="Punctuation">(</span><span class="FloatNumber">5.</span><span class="Operator">.</span><span class="DecNumber">2</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">len</span> <span class="Operator">==</span> <span class="DecNumber">0</span><span class="Punctuation">)</span></pre> | |
</dd> | |
<a id="isNil,seq[T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#isNil%2Cseq%5BT%5D"><span class="Identifier">isNil</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"IsNil"</span><span class="Other">,</span> <span class="Identifier">error</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Requires <tt class="docutils literal"><span class="pre">--nilseqs:on</span></tt> since 0.19.</p> | |
<p>Seqs are no longer nil by default, but set and empty. Check for zero length instead.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#isNil,string">isNil(string)</a></li> | |
</ul> | |
</dd> | |
<a id="isNil,ref.T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#isNil%2Cref.T"><span class="Identifier">isNil</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">ref</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"IsNil"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="isNil,string"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#isNil%2Cstring"><span class="Identifier">isNil</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"IsNil"</span><span class="Other">,</span> <span class="Identifier">error</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Requires <tt class="docutils literal"><span class="pre">--nilseqs:on</span></tt>.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#isNil,seq[T]">isNil(seq[T])</a></li> | |
</ul> | |
</dd> | |
<a id="isNil,ptr.T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#isNil%2Cptr.T"><span class="Identifier">isNil</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"IsNil"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="isNil,pointer"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#isNil%2Cpointer"><span class="Identifier">isNil</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"IsNil"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="isNil,cstring"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#isNil%2Ccstring"><span class="Identifier">isNil</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"IsNil"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="isNil,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#isNil%2CT"><span class="Identifier">isNil</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <span class="Keyword">proc</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"IsNil"</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Fast check whether <tt class="docutils literal"><span class="pre">x</span></tt> is nil. This is sometimes more efficient than <tt class="docutils literal"><span class="pre">== nil</span></tt>. | |
</dd> | |
<a id="@,openArray[T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%40%2CopenArray%5BT%5D"><span class="Identifier">`@`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span></pre></dt> | |
<dd> | |
<p>Turns an <em>openArray</em> into a sequence.</p> | |
<p>This is not as efficient as turning a fixed length array into a sequence as it always copies every element of <tt class="docutils literal"><span class="pre">a</span></tt>.</p> | |
</dd> | |
<a id="&,seq[T],seq[T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%26%2Cseq%5BT%5D%2Cseq%5BT%5D"><span class="Identifier">`&`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Concatenates two sequences.</p> | |
<p>Requires copying of the sequences.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#add,seq[T],openArray[T]">add(var seq[T], openArray[T])</a></li> | |
</ul> | |
<pre class="listing"><span class="Identifier">assert</span><span class="Punctuation">(</span><span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">]</span> <span class="Operator">&</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">]</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">]</span><span class="Punctuation">)</span></pre> | |
</dd> | |
<a id="&,seq[T],T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%26%2Cseq%5BT%5D%2CT"><span class="Identifier">`&`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Appends element y to the end of the sequence.</p> | |
<p>Requires copying of the sequence.</p> | |
<p>See also:</p> | |
<ul class="simple"><li><a class="reference external" href="#add,seq[T],sinkT">add(var seq[T], T)</a></li> | |
</ul> | |
<pre class="listing"><span class="Identifier">assert</span><span class="Punctuation">(</span><span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">]</span> <span class="Operator">&</span> <span class="DecNumber">4</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">]</span><span class="Punctuation">)</span></pre> | |
</dd> | |
<a id="&,T,seq[T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%26%2CT%2Cseq%5BT%5D"><span class="Identifier">`&`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Prepends the element x to the beginning of the sequence.</p> | |
<p>Requires copying of the sequence.</p> | |
<pre class="listing"><span class="Identifier">assert</span><span class="Punctuation">(</span><span class="DecNumber">1</span> <span class="Operator">&</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">]</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">]</span><span class="Punctuation">)</span></pre> | |
</dd> | |
<a id="astToStr,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#astToStr%2CT"><span class="Identifier">astToStr</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AstToStr"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Converts the AST of <tt class="docutils literal"><span class="pre">x</span></tt> into a string representation. This is very useful for debugging. | |
</dd> | |
<a id="instantiationInfo"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#instantiationInfo"><span class="Identifier">instantiationInfo</span></a><span class="Other">(</span><span class="Identifier">index</span> <span class="Other">=</span> <span class="Operator">-</span><span class="DecNumber">1</span><span class="Other">;</span> <span class="Identifier">fullPaths</span> <span class="Other">=</span> <span class="Identifier">false</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">tuple</span><span class="Other">[</span><span class="Identifier">filename</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">,</span> | |
<span class="Identifier">line</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">,</span> <span class="Identifier">column</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"InstantiationInfo"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Provides access to the compiler's instantiation stack line information of a template.</p> | |
<p>While similar to the <span id="caller-info_1">caller info</span> of other languages, it is determined at compile time.</p> | |
<p>This proc is mostly useful for meta programming (eg. <tt class="docutils literal"><span class="pre">assert</span></tt> template) to retrieve information about the current filename and line number. Example:</p> | |
<pre class="listing"><span class="Keyword">import</span> <span class="Identifier">strutils</span> | |
<span class="Keyword">template</span> <span class="Identifier">testException</span><span class="Punctuation">(</span><span class="Identifier">exception</span><span class="Punctuation">,</span> <span class="Identifier">code</span><span class="Punctuation">:</span> <span class="Identifier">untyped</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Identifier">typed</span> <span class="Operator">=</span> | |
<span class="Keyword">try</span><span class="Punctuation">:</span> | |
<span class="Keyword">let</span> <span class="Identifier">pos</span> <span class="Operator">=</span> <span class="Identifier">instantiationInfo</span><span class="Punctuation">(</span><span class="Punctuation">)</span> | |
<span class="Keyword">discard</span><span class="Punctuation">(</span><span class="Identifier">code</span><span class="Punctuation">)</span> | |
<span class="Identifier">echo</span> <span class="StringLit">"Test failure at $1:$2 with '$3'"</span> <span class="Operator">%</span> <span class="Punctuation">[</span><span class="Identifier">pos</span><span class="Operator">.</span><span class="Identifier">filename</span><span class="Punctuation">,</span> | |
<span class="Operator">$</span><span class="Identifier">pos</span><span class="Operator">.</span><span class="Identifier">line</span><span class="Punctuation">,</span> <span class="Identifier">astToStr</span><span class="Punctuation">(</span><span class="Identifier">code</span><span class="Punctuation">)</span><span class="Punctuation">]</span> | |
<span class="Identifier">assert</span> <span class="Identifier">false</span><span class="Punctuation">,</span> <span class="StringLit">"A test expecting failure succeeded?"</span> | |
<span class="Keyword">except</span> <span class="Identifier">exception</span><span class="Punctuation">:</span> | |
<span class="Keyword">discard</span> | |
<span class="Keyword">proc</span> <span class="Identifier">tester</span><span class="Punctuation">(</span><span class="Identifier">pos</span><span class="Punctuation">:</span> <span class="Identifier">int</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Identifier">int</span> <span class="Operator">=</span> | |
<span class="Keyword">let</span> | |
<span class="Identifier">a</span> <span class="Operator">=</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">]</span> | |
<span class="Identifier">result</span> <span class="Operator">=</span> <span class="Identifier">a</span><span class="Punctuation">[</span><span class="Identifier">pos</span><span class="Punctuation">]</span> | |
<span class="Keyword">when</span> <span class="Identifier">isMainModule</span><span class="Punctuation">:</span> | |
<span class="Identifier">testException</span><span class="Punctuation">(</span><span class="Identifier">IndexDefect</span><span class="Punctuation">,</span> <span class="Identifier">tester</span><span class="Punctuation">(</span><span class="DecNumber">30</span><span class="Punctuation">)</span><span class="Punctuation">)</span> | |
<span class="Identifier">testException</span><span class="Punctuation">(</span><span class="Identifier">IndexDefect</span><span class="Punctuation">,</span> <span class="Identifier">tester</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">)</span><span class="Punctuation">)</span> | |
<span class="Comment"># --> Test failure at example.nim:20 with 'tester(1)'</span></pre> | |
</dd> | |
<a id="compiles,untyped"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#compiles%2Cuntyped"><span class="Identifier">compiles</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Compiles"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">compileTime</span><span class="Other">,</span> | |
<span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Special compile-time procedure that checks whether <tt class="docutils literal"><span class="pre">x</span></tt> can be compiled without any semantic error. This can be used to check whether a type supports some operation:<pre class="listing"><span class="Keyword">when</span> <span class="Identifier">compiles</span><span class="Punctuation">(</span><span class="DecNumber">3</span> <span class="Operator">+</span> <span class="DecNumber">4</span><span class="Punctuation">)</span><span class="Punctuation">:</span> | |
<span class="Identifier">echo</span> <span class="StringLit">"'+' for integers is available"</span></pre> | |
</dd> | |
<a id="atomicInc,int,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#atomicInc%2Cint%2Cint"><span class="Identifier">atomicInc</span></a><span class="Other">(</span><span class="Identifier">memLoc</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Other">=</span> <span class="DecNumber">1</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">discardable</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> | |
<span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Atomic increment of <tt class="docutils literal"><span class="pre">memLoc</span></tt>. Returns the value after the operation. | |
</dd> | |
<a id="atomicDec,int,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#atomicDec%2Cint%2Cint"><span class="Identifier">atomicDec</span></a><span class="Other">(</span><span class="Identifier">memLoc</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Other">=</span> <span class="DecNumber">1</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">discardable</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> | |
<span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Atomic decrement of <tt class="docutils literal"><span class="pre">memLoc</span></tt>. Returns the value after the operation. | |
</dd> | |
<a id="addAndFetch,ptr.int,int"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#addAndFetch%2Cptr.int%2Cint"><span class="Identifier">addAndFetch</span></a><span class="Other">(</span><span class="Identifier">p</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="cas,ptr.T,T,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#cas%2Cptr.T%2CT%2CT"><span class="Identifier">cas</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span class="Operator">|</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Operator">|</span> <span class="Keyword">ptr</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">p</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">oldValue</span><span class="Other">,</span> <span class="Identifier">newValue</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"> | |
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"__sync_bool_compare_and_swap"</span><span class="Other">,</span> <span class="Identifier">nodecl</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="cpuRelax"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#cpuRelax"><span class="Identifier">cpuRelax</span></a><span class="Other">(</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="find,T,S"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#find%2CT%2CS"><span class="Identifier">find</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">,</span> <span class="Identifier">S</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">item</span><span class="Other">:</span> <span class="Identifier">S</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Returns the first index of <tt class="docutils literal"><span class="pre">item</span></tt> in <tt class="docutils literal"><span class="pre">a</span></tt> or -1 if not found. This requires appropriate <tt class="docutils literal"><span class="pre">items</span></tt> and <tt class="docutils literal"><span class="pre">==</span></tt> operations to work. | |
</dd> | |
<a id="contains,openArray[T],T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#contains%2CopenArray%5BT%5D%2CT"><span class="Identifier">contains</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">item</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Returns true if <tt class="docutils literal"><span class="pre">item</span></tt> is in <tt class="docutils literal"><span class="pre">a</span></tt> or false if not found. This is a shortcut for <tt class="docutils literal"><span class="pre">find(a, item) >= 0</span></tt>.</p> | |
<p>This allows the <tt class="docutils literal"><span class="pre">in</span></tt> operator: <tt class="docutils literal"><span class="pre">a.contains(item)</span></tt> is the same as <tt class="docutils literal"><span class="pre">item in a</span></tt>.</p> | |
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">]</span> | |
<span class="Identifier">assert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">contains</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">)</span> | |
<span class="Identifier">assert</span> <span class="DecNumber">3</span> <span class="Keyword">in</span> <span class="Identifier">a</span> | |
<span class="Identifier">assert</span> <span class="DecNumber">99</span> <span class="Keyword">notin</span> <span class="Identifier">a</span></pre> | |
</dd> | |
<a id="pop,seq[T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#pop%2Cseq%5BT%5D"><span class="Identifier">pop</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Returns the last item of <tt class="docutils literal"><span class="pre">s</span></tt> and decreases <tt class="docutils literal"><span class="pre">s.len</span></tt> by one. This treats <tt class="docutils literal"><span class="pre">s</span></tt> as a stack and implements the common <em>pop</em> operation. | |
<p><strong class="examples_text">Example:</strong></p> | |
<pre class="listing"><span class="Keyword">var</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">5</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">7</span><span class="Punctuation">]</span><span class="Whitespace"> | |
</span><span class="Keyword">let</span><span class="Whitespace"> </span><span class="Identifier">b</span><span class="Whitespace"> </span><span class="Operator">=</span><span class="Whitespace"> </span><span class="Identifier">pop</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">b</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="DecNumber">7</span><span class="Whitespace"> | |
</span><span class="Identifier">assert</span><span class="Whitespace"> </span><span class="Identifier">a</span><span class="Whitespace"> </span><span class="Operator">==</span><span class="Whitespace"> </span><span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">3</span><span class="Punctuation">,</span><span class="Whitespace"> </span><span class="DecNumber">5</span><span class="Punctuation">]</span></pre> | |
</dd> | |
<a id="==,T,T_2"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2CT%2CT_2"><span class="Identifier">`==`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <span class="Keyword">tuple</span> <span class="Operator">|</span> <span class="Keyword">object</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt> | |
<dd> | |
Generic <tt class="docutils literal"><span class="pre">==</span></tt> operator for tuples that is lifted from the components. of <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt>. | |
</dd> | |
<a id="<=,T,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2CT%2CT"><span class="Identifier">`<=`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <span class="Keyword">tuple</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt> | |
<dd> | |
Generic lexicographic <tt class="docutils literal"><span class="pre"><=</span></tt> operator for tuples that is lifted from the components of <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt>. This implementation uses <tt class="docutils literal"><span class="pre">cmp</span></tt>. | |
</dd> | |
<a id="<,T,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#%3C%2CT%2CT"><span class="Identifier">`<`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <span class="Keyword">tuple</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt> | |
<dd> | |
Generic lexicographic <tt class="docutils literal"><span class="pre"><</span></tt> operator for tuples that is lifted from the components of <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt>. This implementation uses <tt class="docutils literal"><span class="pre">cmp</span></tt>. | |
</dd> | |
<a id="GC_ref,ref.T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#GC_ref%2Cref.T"><span class="Identifier">GC_ref</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">ref</span> <span class="Identifier">T</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"GCref"</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="GC_ref,seq[T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#GC_ref%2Cseq%5BT%5D"><span class="Identifier">GC_ref</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"GCref"</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="GC_ref,string"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#GC_ref%2Cstring"><span class="Identifier">GC_ref</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"GCref"</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Marks the object <tt class="docutils literal"><span class="pre">x</span></tt> as referenced, so that it will not be freed until it is unmarked via <tt class="docutils literal"><span class="pre">GC_unref</span></tt>. If called n-times for the same object <tt class="docutils literal"><span class="pre">x</span></tt>, n calls to <tt class="docutils literal"><span class="pre">GC_unref</span></tt> are needed to unmark <tt class="docutils literal"><span class="pre">x</span></tt>. | |
</dd> | |
<a id="GC_unref,ref.T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#GC_unref%2Cref.T"><span class="Identifier">GC_unref</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">ref</span> <span class="Identifier">T</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"GCunref"</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="GC_unref,seq[T]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#GC_unref%2Cseq%5BT%5D"><span class="Identifier">GC_unref</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"GCunref"</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="GC_unref,string"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#GC_unref%2Cstring"><span class="Identifier">GC_unref</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"GCunref"</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
See the documentation of <a class="reference external" href="#GC_ref,string">GC_ref</a>. | |
</dd> | |
<a id="add,string,cstring"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#add%2Cstring%2Ccstring"><span class="Identifier">add</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="echo,varargs[typed,]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#echo%2Cvarargs%5Btyped%2C%5D"><span class="Identifier">echo</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#varargs"><span class="Identifier">varargs</span></a><span class="Other">[</span><a href="system.html#typed"><span class="Identifier">typed</span></a><span class="Other">,</span> <span class="Other">`</span><span class="Operator">$</span><span class="Other">`</span><span class="Other">]</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Echo"</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><a href="system.html#WriteIOEffect"><span class="Identifier">WriteIOEffect</span></a><span class="Other">]</span><span class="Other">,</span> | |
<span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">sideEffect</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Writes and flushes the parameters to the standard output.</p> | |
<p>Special built-in that takes a variable number of arguments. Each argument is converted to a string via <tt class="docutils literal"><span class="pre">$</span></tt>, so it works for user-defined types that have an overloaded <tt class="docutils literal"><span class="pre">$</span></tt> operator. It is roughly equivalent to <tt class="docutils literal"><span class="pre">writeLine(stdout, x); flushFile(stdout)</span></tt>, but available for the JavaScript target too.</p> | |
<p>Unlike other IO operations this is guaranteed to be thread-safe as <tt class="docutils literal"><span class="pre">echo</span></tt> is very often used for debugging convenience. If you want to use <tt class="docutils literal"><span class="pre">echo</span></tt> inside a <a class="reference external" href="manual.html#pragmas-nosideeffect-pragma">proc without side effects</a> you can use <a class="reference external" href="#debugEcho,varargs[typed,]">debugEcho</a> instead.</p> | |
</dd> | |
<a id="debugEcho,varargs[typed,]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#debugEcho%2Cvarargs%5Btyped%2C%5D"><span class="Identifier">debugEcho</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#varargs"><span class="Identifier">varargs</span></a><span class="Other">[</span><a href="system.html#typed"><span class="Identifier">typed</span></a><span class="Other">,</span> <span class="Other">`</span><span class="Operator">$</span><span class="Other">`</span><span class="Other">]</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Echo"</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> | |
<span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Same as <a class="reference external" href="#echo,varargs[typed,]">echo</a>, but as a special semantic rule, <tt class="docutils literal"><span class="pre">debugEcho</span></tt> pretends to be free of side effects, so that it can be used for debugging routines marked as <a class="reference external" href="manual.html#pragmas-nosideeffect-pragma">noSideEffect</a>. | |
</dd> | |
<a id="getTypeInfo,T"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#getTypeInfo%2CT"><span class="Identifier">getTypeInfo</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"GetTypeInfo"</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Get type information for <tt class="docutils literal"><span class="pre">x</span></tt>.</p> | |
<p>Ordinary code should not use this, but the <a class="reference external" href="typeinfo.html">typeinfo module</a> instead.</p> | |
</dd> | |
<a id="abs,int"></a> | |
<dt><pre><span class="Keyword">func</span> <a href="#abs%2Cint"><span class="Identifier">abs</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AbsI"</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="abs,int8"></a> | |
<dt><pre><span class="Keyword">func</span> <a href="#abs%2Cint8"><span class="Identifier">abs</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AbsI"</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="abs,int16"></a> | |
<dt><pre><span class="Keyword">func</span> <a href="#abs%2Cint16"><span class="Identifier">abs</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AbsI"</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="abs,int32"></a> | |
<dt><pre><span class="Keyword">func</span> <a href="#abs%2Cint32"><span class="Identifier">abs</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AbsI"</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="abs,int64"></a> | |
<dt><pre><span class="Keyword">func</span> <a href="#abs%2Cint64"><span class="Identifier">abs</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"AbsI"</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Returns the absolute value of <tt class="docutils literal"><span class="pre">x</span></tt>.</p> | |
<p>If <tt class="docutils literal"><span class="pre">x</span></tt> is <tt class="docutils literal"><span class="pre">low(x)</span></tt> (that is -MININT for its type), an overflow exception is thrown (if overflow checking is turned on).</p> | |
</dd> | |
<a id="zeroMem,pointer,Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#zeroMem%2Cpointer%2CNatural"><span class="Identifier">zeroMem</span></a><span class="Other">(</span><span class="Identifier">p</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a><span class="Other">;</span> <span class="Identifier">size</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> | |
<span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Overwrites the contents of the memory at <tt class="docutils literal"><span class="pre">p</span></tt> with the value 0.</p> | |
<p>Exactly <tt class="docutils literal"><span class="pre">size</span></tt> bytes will be overwritten. Like any procedure dealing with raw memory this is <strong>unsafe</strong>.</p> | |
</dd> | |
<a id="copyMem,pointer,pointer,Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#copyMem%2Cpointer%2Cpointer%2CNatural"><span class="Identifier">copyMem</span></a><span class="Other">(</span><span class="Identifier">dest</span><span class="Other">,</span> <span class="Identifier">source</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a><span class="Other">;</span> <span class="Identifier">size</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> | |
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Copies the contents from the memory at <tt class="docutils literal"><span class="pre">source</span></tt> to the memory at <tt class="docutils literal"><span class="pre">dest</span></tt>. Exactly <tt class="docutils literal"><span class="pre">size</span></tt> bytes will be copied. The memory regions may not overlap. Like any procedure dealing with raw memory this is <strong>unsafe</strong>. | |
</dd> | |
<a id="moveMem,pointer,pointer,Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#moveMem%2Cpointer%2Cpointer%2CNatural"><span class="Identifier">moveMem</span></a><span class="Other">(</span><span class="Identifier">dest</span><span class="Other">,</span> <span class="Identifier">source</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a><span class="Other">;</span> <span class="Identifier">size</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> | |
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Copies the contents from the memory at <tt class="docutils literal"><span class="pre">source</span></tt> to the memory at <tt class="docutils literal"><span class="pre">dest</span></tt>.</p> | |
<p>Exactly <tt class="docutils literal"><span class="pre">size</span></tt> bytes will be copied. The memory regions may overlap, <tt class="docutils literal"><span class="pre">moveMem</span></tt> handles this case appropriately and is thus somewhat more safe than <tt class="docutils literal"><span class="pre">copyMem</span></tt>. Like any procedure dealing with raw memory this is still <strong>unsafe</strong>, though.</p> | |
</dd> | |
<a id="equalMem,pointer,pointer,Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#equalMem%2Cpointer%2Cpointer%2CNatural"><span class="Identifier">equalMem</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a><span class="Other">;</span> <span class="Identifier">size</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> | |
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Compares the memory blocks <tt class="docutils literal"><span class="pre">a</span></tt> and <tt class="docutils literal"><span class="pre">b</span></tt>. <tt class="docutils literal"><span class="pre">size</span></tt> bytes will be compared.</p> | |
<p>If the blocks are equal, <tt class="docutils literal"><span class="pre">true</span></tt> is returned, <tt class="docutils literal"><span class="pre">false</span></tt> otherwise. Like any procedure dealing with raw memory this is <strong>unsafe</strong>.</p> | |
</dd> | |
<a id="cmpMem,pointer,pointer,Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#cmpMem%2Cpointer%2Cpointer%2CNatural"><span class="Identifier">cmpMem</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a><span class="Other">;</span> <span class="Identifier">size</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> | |
<span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Compares the memory blocks <tt class="docutils literal"><span class="pre">a</span></tt> and <tt class="docutils literal"><span class="pre">b</span></tt>. <tt class="docutils literal"><span class="pre">size</span></tt> bytes will be compared.</p> | |
<p>Returns:</p> | |
<ul class="simple"><li>a value less than zero, if <tt class="docutils literal"><span class="pre">a < b</span></tt></li> | |
<li>a value greater than zero, if <tt class="docutils literal"><span class="pre">a > b</span></tt></li> | |
<li>zero, if <tt class="docutils literal"><span class="pre">a == b</span></tt></li> | |
</ul> | |
<p>Like any procedure dealing with raw memory this is <strong>unsafe</strong>.</p> | |
</dd> | |
<a id="cmp,string,string"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#cmp%2Cstring%2Cstring"><span class="Identifier">cmp</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Compare proc for strings. More efficient than the generic version.</p> | |
<p><strong>Note</strong>: The precise result values depend on the used C runtime library and can differ between operating systems!</p> | |
</dd> | |
<a id="cstringArrayToSeq,cstringArray,Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#cstringArrayToSeq%2CcstringArray%2CNatural"><span class="Identifier">cstringArrayToSeq</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="system.html#cstringArray"><span class="Identifier">cstringArray</span></a><span class="Other">;</span> <span class="Identifier">len</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> | |
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Converts a <tt class="docutils literal"><span class="pre">cstringArray</span></tt> to a <tt class="docutils literal"><span class="pre">seq[string]</span></tt>. <tt class="docutils literal"><span class="pre">a</span></tt> is supposed to be of length <tt class="docutils literal"><span class="pre">len</span></tt>. | |
</dd> | |
<a id="cstringArrayToSeq,cstringArray"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#cstringArrayToSeq%2CcstringArray"><span class="Identifier">cstringArrayToSeq</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="system.html#cstringArray"><span class="Identifier">cstringArray</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Converts a <tt class="docutils literal"><span class="pre">cstringArray</span></tt> to a <tt class="docutils literal"><span class="pre">seq[string]</span></tt>. <tt class="docutils literal"><span class="pre">a</span></tt> is supposed to be terminated by <tt class="docutils literal"><span class="pre">nil</span></tt>. | |
</dd> | |
<a id="allocCStringArray,openArray[string]"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#allocCStringArray%2CopenArray%5Bstring%5D"><span class="Identifier">allocCStringArray</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#cstringArray"><span class="Identifier">cstringArray</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> | |
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Creates a NULL terminated cstringArray from <tt class="docutils literal"><span class="pre">a</span></tt>. The result has to be freed with <tt class="docutils literal"><span class="pre">deallocCStringArray</span></tt> after it's not needed anymore. | |
</dd> | |
<a id="deallocCStringArray,cstringArray"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#deallocCStringArray%2CcstringArray"><span class="Identifier">deallocCStringArray</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="system.html#cstringArray"><span class="Identifier">cstringArray</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Frees a NULL terminated cstringArray. | |
</dd> | |
<a id="setControlCHook,proc)"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#setControlCHook%2Cproc%29"><span class="Identifier">setControlCHook</span></a><span class="Other">(</span><span class="Identifier">hook</span><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noconv</span></span><span class="Other">.}</span></span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Allows you to override the behaviour of your application when CTRL+C is pressed. Only one such hook is supported. | |
</dd> | |
<a id="unsetControlCHook"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#unsetControlCHook"><span class="Identifier">unsetControlCHook</span></a><span class="Other">(</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Reverts a call to setControlCHook. | |
</dd> | |
<a id="getStackTrace"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#getStackTrace"><span class="Identifier">getStackTrace</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Gets the current stack trace. This only works for debug builds. | |
</dd> | |
<a id="getStackTrace,ref.Exception"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#getStackTrace%2Cref.Exception"><span class="Identifier">getStackTrace</span></a><span class="Other">(</span><span class="Identifier">e</span><span class="Other">:</span> <span class="Keyword">ref</span> <a href="system.html#Exception"><span class="Identifier">Exception</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Gets the stack trace associated with <tt class="docutils literal"><span class="pre">e</span></tt>, which is the stack that lead to the <tt class="docutils literal"><span class="pre">raise</span></tt> statement. This only works for debug builds. | |
</dd> | |
<a id="getFrameState"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#getFrameState"><span class="Identifier">getFrameState</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">FrameState</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">compilerproc</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="setFrameState,FrameState"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#setFrameState%2CFrameState"><span class="Identifier">setFrameState</span></a><span class="Other">(</span><span class="Identifier">state</span><span class="Other">:</span> <span class="Identifier">FrameState</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">compilerproc</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> | |
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="getFrame"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#getFrame"><span class="Identifier">getFrame</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#PFrame"><span class="Identifier">PFrame</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">compilerproc</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="setFrame,PFrame"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#setFrame%2CPFrame"><span class="Identifier">setFrame</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#PFrame"><span class="Identifier">PFrame</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">compilerproc</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="getGcFrame"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#getGcFrame"><span class="Identifier">getGcFrame</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">GcFrame</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">compilerproc</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="popGcFrame"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#popGcFrame"><span class="Identifier">popGcFrame</span></a><span class="Other">(</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">compilerproc</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="setGcFrame,GcFrame"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#setGcFrame%2CGcFrame"><span class="Identifier">setGcFrame</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">GcFrame</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">compilerproc</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="pushGcFrame,GcFrame"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#pushGcFrame%2CGcFrame"><span class="Identifier">pushGcFrame</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">GcFrame</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">compilerproc</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="stackTraceAvailable"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#stackTraceAvailable"><span class="Identifier">stackTraceAvailable</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="writeStackTrace"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#writeStackTrace"><span class="Identifier">writeStackTrace</span></a><span class="Other">(</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Writes the current stack trace to <tt class="docutils literal"><span class="pre">stderr</span></tt>. This is only works for debug builds. Since it's usually used for debugging, this is proclaimed to have no IO effect! | |
</dd> | |
<a id="getStackTraceEntries,ref.Exception"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#getStackTraceEntries%2Cref.Exception"><span class="Identifier">getStackTraceEntries</span></a><span class="Other">(</span><span class="Identifier">e</span><span class="Other">:</span> <span class="Keyword">ref</span> <a href="system.html#Exception"><span class="Identifier">Exception</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><a href="system.html#StackTraceEntry"><span class="Identifier">StackTraceEntry</span></a><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> | |
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Returns the attached stack trace to the exception <tt class="docutils literal"><span class="pre">e</span></tt> as a <tt class="docutils literal"><span class="pre">seq</span></tt>. This is not yet available for the JS backend. | |
</dd> | |
<a id="getStackTraceEntries"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#getStackTraceEntries"><span class="Identifier">getStackTraceEntries</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><a href="system.html#StackTraceEntry"><span class="Identifier">StackTraceEntry</span></a><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Returns the stack trace entries for the current stack trace. This is not yet available for the JS backend. | |
</dd> | |
<a id="iterToProc,typed,typedesc,untyped"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#iterToProc%2Ctyped%2Ctypedesc%2Cuntyped"><span class="Identifier">iterToProc</span></a><span class="Other">(</span><span class="Identifier">iter</span><span class="Other">:</span> <a href="system.html#typed"><span class="Identifier">typed</span></a><span class="Other">;</span> <span class="Identifier">envType</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">;</span> <span class="Identifier">procName</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"> | |
<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">"Plugin"</span><span class="Other">,</span> <span class="Identifier">compileTime</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="allocImpl,Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#allocImpl%2CNatural"><span class="Identifier">allocImpl</span></a><span class="Other">(</span><span class="Identifier">size</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noconv</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> | |
<span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="alloc0Impl,Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#alloc0Impl%2CNatural"><span class="Identifier">alloc0Impl</span></a><span class="Other">(</span><span class="Identifier">size</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noconv</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> | |
<span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="deallocImpl,pointer"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#deallocImpl%2Cpointer"><span class="Identifier">deallocImpl</span></a><span class="Other">(</span><span class="Identifier">p</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noconv</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> | |
<span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="reallocImpl,pointer,Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#reallocImpl%2Cpointer%2CNatural"><span class="Identifier">reallocImpl</span></a><span class="Other">(</span><span class="Identifier">p</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a><span class="Other">;</span> <span class="Identifier">newSize</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noconv</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> | |
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="realloc0Impl,pointer,Natural,Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#realloc0Impl%2Cpointer%2CNatural%2CNatural"><span class="Identifier">realloc0Impl</span></a><span class="Other">(</span><span class="Identifier">p</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a><span class="Other">;</span> <span class="Identifier">oldSize</span><span class="Other">,</span> <span class="Identifier">newSize</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noconv</span><span class="Other">,</span> | |
<span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="getFreeMem"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#getFreeMem"><span class="Identifier">getFreeMem</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Returns the number of bytes that are owned by the process, but do not hold any meaningful data. | |
</dd> | |
<a id="getTotalMem"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#getTotalMem"><span class="Identifier">getTotalMem</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Returns the number of bytes that are owned by the process. | |
</dd> | |
<a id="getOccupiedMem"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#getOccupiedMem"><span class="Identifier">getOccupiedMem</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Returns the number of bytes that are owned by the process and hold data. | |
</dd> | |
<a id="getMaxMem"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#getMaxMem"><span class="Identifier">getMaxMem</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="allocSharedImpl,Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#allocSharedImpl%2CNatural"><span class="Identifier">allocSharedImpl</span></a><span class="Other">(</span><span class="Identifier">size</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noconv</span><span class="Other">,</span> <span class="Identifier">compilerproc</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> | |
<span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="allocShared0Impl,Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#allocShared0Impl%2CNatural"><span class="Identifier">allocShared0Impl</span></a><span class="Other">(</span><span class="Identifier">size</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noconv</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> | |
<span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="deallocSharedImpl,pointer"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#deallocSharedImpl%2Cpointer"><span class="Identifier">deallocSharedImpl</span></a><span class="Other">(</span><span class="Identifier">p</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noconv</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> | |
<span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="reallocSharedImpl,pointer,Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#reallocSharedImpl%2Cpointer%2CNatural"><span class="Identifier">reallocSharedImpl</span></a><span class="Other">(</span><span class="Identifier">p</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a><span class="Other">;</span> <span class="Identifier">newSize</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">noconv</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> | |
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="reallocShared0Impl,pointer,Natural,Natural"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#reallocShared0Impl%2Cpointer%2CNatural%2CNatural"><span class="Identifier">reallocShared0Impl</span></a><span class="Other">(</span><span class="Identifier">p</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a><span class="Other">;</span> <span class="Identifier">oldSize</span><span class="Other">,</span> <span class="Identifier">newSize</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"> | |
<span class="Identifier">noconv</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="protect,pointer"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#protect%2Cpointer"><span class="Identifier">protect</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#ForeignCell"><span class="Identifier">ForeignCell</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="dispose,ForeignCell"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#dispose%2CForeignCell"><span class="Identifier">dispose</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#ForeignCell"><span class="Identifier">ForeignCell</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="isNotForeign,ForeignCell"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#isNotForeign%2CForeignCell"><span class="Identifier">isNotForeign</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#ForeignCell"><span class="Identifier">ForeignCell</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
returns true if 'x' belongs to the calling thread. No deep copy has to be performed then. | |
</dd> | |
<a id="setupForeignThreadGc"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#setupForeignThreadGc"><span class="Identifier">setupForeignThreadGc</span></a><span class="Other">(</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Call this if you registered a callback that will be run from a thread not under your control. This has a cheap thread-local guard, so the GC for this thread will only be initialized once per thread, no matter how often it is called.</p> | |
<p>This function is available only when <tt class="docutils literal"><span class="pre">--threads:on</span></tt> and <tt class="docutils literal"><span class="pre">--tlsEmulation:off</span></tt> switches are used</p> | |
</dd> | |
<a id="tearDownForeignThreadGc"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#tearDownForeignThreadGc"><span class="Identifier">tearDownForeignThreadGc</span></a><span class="Other">(</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Call this to tear down the GC, previously initialized by <tt class="docutils literal"><span class="pre">setupForeignThreadGc</span></tt>. If GC has not been previously initialized, or has already been torn down, the call does nothing.</p> | |
<p>This function is available only when <tt class="docutils literal"><span class="pre">--threads:on</span></tt> and <tt class="docutils literal"><span class="pre">--tlsEmulation:off</span></tt> switches are used</p> | |
</dd> | |
<a id="nimGC_setStackBottom,pointer"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#nimGC_setStackBottom%2Cpointer"><span class="Identifier">nimGC_setStackBottom</span></a><span class="Other">(</span><span class="Identifier">theStackBottom</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">compilerproc</span><span class="Other">,</span> <span class="Identifier">noinline</span><span class="Other">,</span> | |
<span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Expands operating GC stack range to <tt class="docutils literal"><span class="pre">theStackBottom</span></tt>. Does nothing if current stack bottom is already lower than <tt class="docutils literal"><span class="pre">theStackBottom</span></tt>. | |
</dd> | |
<a id="deallocHeap"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#deallocHeap"><span class="Identifier">deallocHeap</span></a><span class="Other">(</span><span class="Identifier">runFinalizers</span> <span class="Other">=</span> <span class="Identifier">true</span><span class="Other">;</span> <span class="Identifier">allowGcAfterwards</span> <span class="Other">=</span> <span class="Identifier">true</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"> | |
<span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Frees the thread local heap. Runs every finalizer if <tt class="docutils literal"><span class="pre">runFinalizers</span></tt> is true. If <tt class="docutils literal"><span class="pre">allowGcAfterwards</span></tt> is true, a minimal amount of allocation happens to ensure the GC can continue to work after the call to <tt class="docutils literal"><span class="pre">deallocHeap</span></tt>. | |
</dd> | |
<a id="gcInvariant"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#gcInvariant"><span class="Identifier">gcInvariant</span></a><span class="Other">(</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="GC_collectZct"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#GC_collectZct"><span class="Identifier">GC_collectZct</span></a><span class="Other">(</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Collect the ZCT (zero count table). Unstable, experimental API for testing purposes. DO NOT USE! | |
</dd> | |
<a id="GC_disable"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#GC_disable"><span class="Identifier">GC_disable</span></a><span class="Other">(</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
<p>Disables the GC. If called <tt class="docutils literal"><span class="pre">n</span></tt> times, <tt class="docutils literal"><span class="pre">n</span></tt> calls to <tt class="docutils literal"><span class="pre">GC_enable</span></tt> are needed to reactivate the GC.</p> | |
<p>Note that in most circumstances one should only disable the mark and sweep phase with <a class="reference external" href="#GC_disableMarkAndSweep">GC_disableMarkAndSweep</a>.</p> | |
</dd> | |
<a id="GC_enable"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#GC_enable"><span class="Identifier">GC_enable</span></a><span class="Other">(</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
Enables the GC again. | |
</dd> | |
<a id="GC_enableMarkAndSweep"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#GC_enableMarkAndSweep"><span class="Identifier">GC_enableMarkAndSweep</span></a><span class="Other">(</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
</dd> | |
<a id="GC_disableMarkAndSweep"></a> | |
<dt><pre><span class="Keyword">proc</span> <a href="#GC_disableMarkAndSweep"><span class="Identifier">GC_disableMarkAndSweep</span></a><span class="Other">(</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">locks</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt> | |
<dd> | |
The current implementation uses a refere |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment