system.html 1.3 MB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <!-- This file is generated by Nim. -->
  4. <html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en" data-theme="auto">
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  8. <title>system</title>
  9. <!-- Google fonts -->
  10. <link href='https://fonts.googleapis.com/css?family=Lato:400,600,900' rel='stylesheet' type='text/css'/>
  11. <link href='https://fonts.googleapis.com/css?family=Source+Code+Pro:400,500,600' rel='stylesheet' type='text/css'/>
  12. <!-- Favicon -->
  13. <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=="/>
  14. <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=">
  15. <!-- CSS -->
  16. <link rel="stylesheet" type="text/css" href="nimdoc.out.css?v=2.3.1">
  17. <!-- JS -->
  18. <script type="text/javascript" src="dochack.js?v=2.3.1"></script>
  19. </head>
  20. <body>
  21. <div class="document" id="documentId">
  22. <div class="container">
  23. <h1 class="title">system</h1>
  24. <div class="row">
  25. <div class="three columns">
  26. <div class="theme-select-wrapper">
  27. <label for="theme-select">Theme:&nbsp;</label>
  28. <select id="theme-select" onchange="setTheme(this.value)">
  29. <option value="auto">🌗 Match OS</option>
  30. <option value="dark">🌑 Dark</option>
  31. <option value="light">🌕 Light</option>
  32. </select>
  33. </div>
  34. <div id="global-links">
  35. <ul class="simple-boot">
  36. <li><a href="manual.html">Manual</a></li>
  37. <li><a href="lib.html">Standard library</a></li>
  38. <li> <a id="indexLink" href="theindex.html">Index</a></li>
  39. <li><a href="compiler/theindex.html">Compiler docs</a></li>
  40. <li><a href="https://nim-lang.github.io/fusion/theindex.html">Fusion docs</a></li>
  41. <li><a href="https://nim-lang.github.io/Nim/">devel</a>, <a href="https://nim-lang.org/documentation.html">stable</a></li>
  42. </ul>
  43. </div>
  44. <div id="searchInputDiv">
  45. Search: <input type="search" id="searchInput"
  46. oninput="search()" />
  47. </div>
  48. <ul class="simple simple-toc" id="toc-list">
  49. <li><a class="reference" id="system-module_toc" href="#system-module">System module</a></li>
  50. <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>
  51. <li><a class="reference" id="system-module-seqs_toc" href="#system-module-seqs">Seqs</a></li>
  52. <li><a class="reference" id="system-module-sets_toc" href="#system-module-sets">Sets</a></li>
  53. <li><a class="reference" id="system-module-numbers_toc" href="#system-module-numbers">Numbers</a></li>
  54. <li><a class="reference" id="system-module-ordinals_toc" href="#system-module-ordinals">Ordinals</a></li>
  55. <li><a class="reference" id="system-module-misc_toc" href="#system-module-misc">Misc</a></li>
  56. </ul><li>
  57. <a class="reference reference-toplevel" href="#6" id="56">Imports</a>
  58. </li>
  59. <li>
  60. <details open>
  61. <summary><a class="reference reference-toplevel" href="#7" id="57">Types</a></summary>
  62. <ul class="simple simple-toc-section">
  63. <li><a class="reference" href="#ptr" title="ptr[T] {.magic: Pointer.}">`ptr`</a></li>
  64. <li><a class="reference" href="#ref" title="ref[T] {.magic: Pointer.}">`ref`</a></li>
  65. <li><a class="reference" href="#static" title="static[T] {.magic: &quot;Static&quot;.}">`static`</a></li>
  66. <li><a class="reference" href="#type" title="type[T] {.magic: &quot;Type&quot;.}">`type`</a></li>
  67. <li><a class="reference" href="#AllocStats" title="AllocStats = object">AllocStats</a></li>
  68. <li><a class="reference" href="#any" title="any {.deprecated: &quot;Deprecated since v1.5; Use auto instead.&quot;.} = distinct auto">any</a></li>
  69. <li><a class="reference" href="#array" title="array[I; T] {.magic: &quot;Array&quot;.}">array</a></li>
  70. <li><a class="reference" href="#auto" title="auto {.magic: Expr.}">auto</a></li>
  71. <li><a class="reference" href="#BackwardsIndex" title="BackwardsIndex = distinct int">BackwardsIndex</a></li>
  72. <li><a class="reference" href="#bool" title="bool {.magic: &quot;Bool&quot;.} = enum
  73. false = 0, true = 1">bool</a></li>
  74. <li><a class="reference" href="#byte" title="byte = uint8">byte</a></li>
  75. <li><a class="reference" href="#CatchableError" title="CatchableError = object of Exception">CatchableError</a></li>
  76. <li><a class="reference" href="#char" title="char {.magic: Char.}">char</a></li>
  77. <li><a class="reference" href="#cstring" title="cstring {.magic: Cstring.}">cstring</a></li>
  78. <li><a class="reference" href="#Defect" title="Defect = object of Exception">Defect</a></li>
  79. <li><a class="reference" href="#Endianness" title="Endianness = enum
  80. littleEndian, bigEndian">Endianness</a></li>
  81. <li><a class="reference" href="#Exception" title="Exception {.compilerproc, magic: &quot;Exception&quot;.} = object of RootObj
  82. parent*: ref Exception ## Parent exception (can be used as a stack).
  83. name*: cstring ## The exception's name is its Nim identifier.
  84. ## This field is filled automatically in the
  85. ## `raise` statement.
  86. msg* {.exportc: &quot;message&quot;.}: string ## The exception's message. Not
  87. ## providing an exception message
  88. ## is bad style.
  89. when defined(js):
  90. trace*: string
  91. else:
  92. trace*: seq[StackTraceEntry]">Exception</a></li>
  93. <li><a class="reference" href="#float" title="float {.magic: Float.}">float</a></li>
  94. <li><a class="reference" href="#float32" title="float32 {.magic: Float32.}">float32</a></li>
  95. <li><a class="reference" href="#float64" title="float64 {.magic: Float.}">float64</a></li>
  96. <li><a class="reference" href="#ForeignCell" title="ForeignCell = object
  97. data*: pointer">ForeignCell</a></li>
  98. <li><a class="reference" href="#ForLoopStmt" title="ForLoopStmt {.compilerproc.} = object">ForLoopStmt</a></li>
  99. <li><a class="reference" href="#GC_Strategy" title="GC_Strategy = enum
  100. gcThroughput, ## optimize for throughput
  101. gcResponsiveness, ## optimize for responsiveness (default)
  102. gcOptimizeTime, ## optimize for speed
  103. gcOptimizeSpace ## optimize for memory footprint">GC_Strategy</a></li>
  104. <li><a class="reference" href="#HSlice" title="HSlice[T; U] = object
  105. a*: T ## The lower bound (inclusive).
  106. b*: U ## The upper bound (inclusive).">HSlice</a></li>
  107. <li><a class="reference" href="#int" title="int {.magic: Int.}">int</a></li>
  108. <li><a class="reference" href="#int8" title="int8 {.magic: Int8.}">int8</a></li>
  109. <li><a class="reference" href="#int16" title="int16 {.magic: Int16.}">int16</a></li>
  110. <li><a class="reference" href="#int32" title="int32 {.magic: Int32.}">int32</a></li>
  111. <li><a class="reference" href="#int64" title="int64 {.magic: Int64.}">int64</a></li>
  112. <li><a class="reference" href="#iterable" title="iterable[T] {.magic: IterableType.}">iterable</a></li>
  113. <li><a class="reference" href="#JsRoot" title="JsRoot = ref object of RootObj">JsRoot</a></li>
  114. <li><a class="reference" href="#lent" title="lent[T] {.magic: &quot;BuiltinType&quot;.}">lent</a></li>
  115. <li><a class="reference" href="#Natural" title="Natural = range[0 .. high(int)]">Natural</a></li>
  116. <li><a class="reference" href="#NimNode" title="NimNode {.magic: &quot;PNimrodNode&quot;.} = ref NimNodeObj">NimNode</a></li>
  117. <li><a class="reference" href="#NimSeqV2" title="NimSeqV2[T] = object">NimSeqV2</a></li>
  118. <li><a class="reference" href="#openArray" title="openArray[T] {.magic: &quot;OpenArray&quot;.}">openArray</a></li>
  119. <li><a class="reference" href="#Ordinal" title="Ordinal[T] {.magic: Ordinal.}">Ordinal</a></li>
  120. <li><a class="reference" href="#owned" title="owned[T] {.magic: &quot;BuiltinType&quot;.}">owned</a></li>
  121. <li><a class="reference" href="#PFrame" title="PFrame = ptr TFrame">PFrame</a></li>
  122. <li><a class="reference" href="#pointer" title="pointer {.magic: Pointer.}">pointer</a></li>
  123. <li><a class="reference" href="#Positive" title="Positive = range[1 .. high(int)]">Positive</a></li>
  124. <li><a class="reference" href="#range" title="range[T] {.magic: &quot;Range&quot;.}">range</a></li>
  125. <li><a class="reference" href="#RootEffect" title="RootEffect {.compilerproc.} = object of RootObj">RootEffect</a></li>
  126. <li><a class="reference" href="#RootObj" title="RootObj {.compilerproc, inheritable.} = object">RootObj</a></li>
  127. <li><a class="reference" href="#RootRef" title="RootRef = ref RootObj">RootRef</a></li>
  128. <li><a class="reference" href="#seq" title="seq[T] {.magic: &quot;Seq&quot;.}">seq</a></li>
  129. <li><a class="reference" href="#set" title="set[T] {.magic: &quot;Set&quot;.}">set</a></li>
  130. <li><a class="reference" href="#sink" title="sink[T] {.magic: &quot;BuiltinType&quot;.}">sink</a></li>
  131. <li><a class="reference" href="#Slice" title="Slice[T] = HSlice[T, T]">Slice</a></li>
  132. <li><a class="reference" href="#SomeFloat" title="SomeFloat = float | float32 | float64">SomeFloat</a></li>
  133. <li><a class="reference" href="#SomeInteger" title="SomeInteger = SomeSignedInt | SomeUnsignedInt">SomeInteger</a></li>
  134. <li><a class="reference" href="#SomeNumber" title="SomeNumber = SomeInteger | SomeFloat">SomeNumber</a></li>
  135. <li><a class="reference" href="#SomeOrdinal" title="SomeOrdinal = int | int8 | int16 | int32 | int64 | bool | enum | uint | uint8 |
  136. uint16 |
  137. uint32 |
  138. uint64">SomeOrdinal</a></li>
  139. <li><a class="reference" href="#SomeSignedInt" title="SomeSignedInt = int | int8 | int16 | int32 | int64">SomeSignedInt</a></li>
  140. <li><a class="reference" href="#SomeUnsignedInt" title="SomeUnsignedInt = uint | uint8 | uint16 | uint32 | uint64">SomeUnsignedInt</a></li>
  141. <li><a class="reference" href="#StackTraceEntry" title="StackTraceEntry = object
  142. procname*: cstring ## Name of the proc that is currently executing.
  143. line*: int ## Line number of the proc that is currently executing.
  144. filename*: cstring ## Filename of the proc that is currently executing.
  145. when NimStackTraceMsgs:
  146. frameMsg*: string ## When a stacktrace is generated in a given frame and
  147. ## rendered at a later time, we should ensure the stacktrace
  148. ## data isn't invalidated; any pointer into PFrame is
  149. ## subject to being invalidated so shouldn't be stored.
  150. when defined(nimStackTraceOverride):
  151. programCounter*: uint ## Program counter - will be used to get the rest of the info,
  152. ## when `$` is called on this type. We can't use
  153. ## &quot;cuintptr_t&quot; in here.
  154. procnameStr*, filenameStr*: string ## GC-ed alternatives to &quot;procname&quot; and &quot;filename&quot;">StackTraceEntry</a></li>
  155. <li><a class="reference" href="#string" title="string {.magic: String.}">string</a></li>
  156. <li><a class="reference" href="#TFrame" title="TFrame {.importc, nodecl, final.} = object
  157. prev*: PFrame ## Previous frame; used for chaining the call stack.
  158. procname*: cstring ## Name of the proc that is currently executing.
  159. line*: int ## Line number of the proc that is currently executing.
  160. filename*: cstring ## Filename of the proc that is currently executing.
  161. len*: int16 ## Length of the inspectable slots.
  162. calldepth*: int16 ## Used for max call depth checking.
  163. when NimStackTraceMsgs:
  164. frameMsgLen*: int ## end position in frameMsgBuf for this frame.">TFrame</a></li>
  165. <li><a class="reference" href="#typed" title="typed {.magic: Stmt.}">typed</a></li>
  166. <li><a class="reference" href="#typedesc" title="typedesc {.magic: TypeDesc.}">typedesc</a></li>
  167. <li><a class="reference" href="#TypeOfMode" title="TypeOfMode = enum
  168. typeOfProc, ## Prefer the interpretation that means `x` is a proc call.
  169. typeOfIter ## Prefer the interpretation that means `x` is an iterator call.">TypeOfMode</a></li>
  170. <li><a class="reference" href="#uint" title="uint {.magic: UInt.}">uint</a></li>
  171. <li><a class="reference" href="#uint8" title="uint8 {.magic: UInt8.}">uint8</a></li>
  172. <li><a class="reference" href="#uint16" title="uint16 {.magic: UInt16.}">uint16</a></li>
  173. <li><a class="reference" href="#uint32" title="uint32 {.magic: UInt32.}">uint32</a></li>
  174. <li><a class="reference" href="#uint64" title="uint64 {.magic: UInt64.}">uint64</a></li>
  175. <li><a class="reference" href="#UncheckedArray" title="UncheckedArray[T] {.magic: &quot;UncheckedArray&quot;.}">UncheckedArray</a></li>
  176. <li><a class="reference" href="#untyped" title="untyped {.magic: Expr.}">untyped</a></li>
  177. <li><a class="reference" href="#varargs" title="varargs[T] {.magic: &quot;Varargs&quot;.}">varargs</a></li>
  178. <li><a class="reference" href="#void" title="void {.magic: &quot;VoidType&quot;.}">void</a></li>
  179. </ul>
  180. </details>
  181. </li>
  182. <li>
  183. <details open>
  184. <summary><a class="reference reference-toplevel" href="#8" id="58">Vars</a></summary>
  185. <ul class="simple simple-toc-section">
  186. <li><a class="reference" href="#errorMessageWriter" title="errorMessageWriter: (proc (msg: string) {.tags: [WriteIOEffect], gcsafe, nimcall.})">errorMessageWriter</a></li>
  187. <li><a class="reference" href="#globalRaiseHook" title="globalRaiseHook: proc (e: ref Exception): bool {.nimcall, gcsafe.}">globalRaiseHook</a></li>
  188. <li><a class="reference" href="#localRaiseHook" title="localRaiseHook {.threadvar.}: proc (e: ref Exception): bool {.nimcall, gcsafe.}">localRaiseHook</a></li>
  189. <li><a class="reference" href="#nimThreadDestructionHandlers" title="nimThreadDestructionHandlers {.threadvar.}: seq[
  190. proc () {.closure, gcsafe, raises: [].}]">nimThreadDestructionHandlers</a></li>
  191. <li><a class="reference" href="#onUnhandledException" title="onUnhandledException: (proc (errorMsg: string) {.nimcall, gcsafe.})">onUnhandledException</a></li>
  192. <li><a class="reference" href="#outOfMemHook" title="outOfMemHook: proc () {.nimcall, tags: [], gcsafe, raises: [].}">outOfMemHook</a></li>
  193. <li><a class="reference" href="#programResult" title="programResult {.compilerproc, exportc: &quot;nim_program_result&quot;.}: int">programResult</a></li>
  194. <li><a class="reference" href="#unhandledExceptionHook" title="unhandledExceptionHook: proc (e: ref Exception) {.nimcall, tags: [], gcsafe,
  195. raises: [].}">unhandledExceptionHook</a></li>
  196. </ul>
  197. </details>
  198. </li>
  199. <li>
  200. <details open>
  201. <summary><a class="reference reference-toplevel" href="#9" id="59">Lets</a></summary>
  202. <ul class="simple simple-toc-section">
  203. <li><a class="reference" href="#nimvm" title="nimvm {.magic: &quot;Nimvm&quot;, compileTime.}: bool = false">nimvm</a></li>
  204. </ul>
  205. </details>
  206. </li>
  207. <li>
  208. <details open>
  209. <summary><a class="reference reference-toplevel" href="#10" id="60">Consts</a></summary>
  210. <ul class="simple simple-toc-section">
  211. <li><a class="reference" href="#appType" title="appType {.magic: &quot;AppType&quot;.}: string = &quot;&quot;">appType</a></li>
  212. <li><a class="reference" href="#CompileDate" title="CompileDate {.magic: &quot;CompileDate&quot;.}: string = &quot;0000-00-00&quot;">CompileDate</a></li>
  213. <li><a class="reference" href="#CompileTime" title="CompileTime {.magic: &quot;CompileTime&quot;.}: string = &quot;00:00:00&quot;">CompileTime</a></li>
  214. <li><a class="reference" href="#cpuEndian" title="cpuEndian {.magic: &quot;CpuEndian&quot;.}: Endianness = littleEndian">cpuEndian</a></li>
  215. <li><a class="reference" href="#hostCPU" title="hostCPU {.magic: &quot;HostCPU&quot;.}: string = &quot;&quot;">hostCPU</a></li>
  216. <li><a class="reference" href="#hostOS" title="hostOS {.magic: &quot;HostOS&quot;.}: string = &quot;&quot;">hostOS</a></li>
  217. <li><a class="reference" href="#Inf" title="Inf = 0x7FF0000000000000'f64">Inf</a></li>
  218. <li><a class="reference" href="#isMainModule" title="isMainModule {.magic: &quot;IsMainModule&quot;.}: bool = false">isMainModule</a></li>
  219. <li><a class="reference" href="#NaN" title="NaN = 0x7FF7FFFFFFFFFFFF'f64">NaN</a></li>
  220. <li><a class="reference" href="#NegInf" title="NegInf = 0xFFF0000000000000'f64">NegInf</a></li>
  221. <li><a class="reference" href="#NimMajor" title="NimMajor {.intdefine.}: int = 2">NimMajor</a></li>
  222. <li><a class="reference" href="#NimMinor" title="NimMinor {.intdefine.}: int = 3">NimMinor</a></li>
  223. <li><a class="reference" href="#NimPatch" title="NimPatch {.intdefine.}: int = 1">NimPatch</a></li>
  224. <li><a class="reference" href="#NimVersion" title="NimVersion: string = &quot;2.3.1&quot;">NimVersion</a></li>
  225. <li><a class="reference" href="#off" title="off = false">off</a></li>
  226. <li><a class="reference" href="#on" title="on = true">on</a></li>
  227. <li><a class="reference" href="#QuitFailure" title="QuitFailure = 1">QuitFailure</a></li>
  228. <li><a class="reference" href="#QuitSuccess" title="QuitSuccess = 0">QuitSuccess</a></li>
  229. </ul>
  230. </details>
  231. </li>
  232. <li>
  233. <details open>
  234. <summary><a class="reference reference-toplevel" href="#12" id="62">Procs</a></summary>
  235. <ul class="simple simple-toc-section">
  236. <ul class="simple nested-toc-section">%%
  237. <li><a class="reference" href="#%25%25%2Cint%2Cint" title="`%%`(x, y: int): int">`%%`(x, y: int): int</a></li>
  238. <li><a class="reference" href="#%25%25%2Cint8%2Cint8" title="`%%`(x, y: int8): int8">`%%`(x, y: int8): int8</a></li>
  239. <li><a class="reference" href="#%25%25%2Cint16%2Cint16" title="`%%`(x, y: int16): int16">`%%`(x, y: int16): int16</a></li>
  240. <li><a class="reference" href="#%25%25%2Cint32%2Cint32" title="`%%`(x, y: int32): int32">`%%`(x, y: int32): int32</a></li>
  241. <li><a class="reference" href="#%25%25%2Cint64%2Cint64" title="`%%`(x, y: int64): int64">`%%`(x, y: int64): int64</a></li>
  242. </ul>
  243. <ul class="simple nested-toc-section">&
  244. <li><a class="reference" href="#%26%2Cchar%2Cchar" title="`&amp;`(x, y: char): string">`&amp;`(x, y: char): string</a></li>
  245. <li><a class="reference" href="#%26%2Cstring%2Cstring" title="`&amp;`(x, y: string): string">`&amp;`(x, y: string): string</a></li>
  246. <li><a class="reference" href="#%26%2Cchar%2Cstring" title="`&amp;`(x: char; y: string): string">`&amp;`(x: char; y: string): string</a></li>
  247. <li><a class="reference" href="#%26%2Cstring%2Cchar" title="`&amp;`(x: string; y: char): string">`&amp;`(x: string; y: char): string</a></li>
  248. <li><a class="reference" href="#%26%2Csinkseq%5BT%5D%2Csinkseq%5BT%5D" title="`&amp;`[T](x, y: sink seq[T]): seq[T]">`&amp;`[T](x, y: sink seq[T]): seq[T]</a></li>
  249. <li><a class="reference" href="#%26%2Csinkseq%5BT%5D%2CsinkT" title="`&amp;`[T](x: sink seq[T]; y: sink T): seq[T]">`&amp;`[T](x: sink seq[T]; y: sink T): seq[T]</a></li>
  250. <li><a class="reference" href="#%26%2CsinkT%2Csinkseq%5BT%5D" title="`&amp;`[T](x: sink T; y: sink seq[T]): seq[T]">`&amp;`[T](x: sink T; y: sink seq[T]): seq[T]</a></li>
  251. </ul>
  252. <ul class="simple nested-toc-section">&=
  253. <li><a class="reference" href="#%26%3D%2Cstring%2Cstring" title="`&amp;=`(x: var string; y: string)">`&amp;=`(x: var string; y: string)</a></li>
  254. </ul>
  255. <ul class="simple nested-toc-section">*
  256. <li><a class="reference" href="#%2A%2Cfloat%2Cfloat" title="`*`(x, y: float): float">`*`(x, y: float): float</a></li>
  257. <li><a class="reference" href="#%2A%2Cfloat32%2Cfloat32" title="`*`(x, y: float32): float32">`*`(x, y: float32): float32</a></li>
  258. <li><a class="reference" href="#%2A%2Cint%2Cint" title="`*`(x, y: int): int">`*`(x, y: int): int</a></li>
  259. <li><a class="reference" href="#%2A%2Cint8%2Cint8" title="`*`(x, y: int8): int8">`*`(x, y: int8): int8</a></li>
  260. <li><a class="reference" href="#%2A%2Cint16%2Cint16" title="`*`(x, y: int16): int16">`*`(x, y: int16): int16</a></li>
  261. <li><a class="reference" href="#%2A%2Cint32%2Cint32" title="`*`(x, y: int32): int32">`*`(x, y: int32): int32</a></li>
  262. <li><a class="reference" href="#%2A%2Cint64%2Cint64" title="`*`(x, y: int64): int64">`*`(x, y: int64): int64</a></li>
  263. <li><a class="reference" href="#%2A%2Cuint%2Cuint" title="`*`(x, y: uint): uint">`*`(x, y: uint): uint</a></li>
  264. <li><a class="reference" href="#%2A%2Cuint8%2Cuint8" title="`*`(x, y: uint8): uint8">`*`(x, y: uint8): uint8</a></li>
  265. <li><a class="reference" href="#%2A%2Cuint16%2Cuint16" title="`*`(x, y: uint16): uint16">`*`(x, y: uint16): uint16</a></li>
  266. <li><a class="reference" href="#%2A%2Cuint32%2Cuint32" title="`*`(x, y: uint32): uint32">`*`(x, y: uint32): uint32</a></li>
  267. <li><a class="reference" href="#%2A%2Cuint64%2Cuint64" title="`*`(x, y: uint64): uint64">`*`(x, y: uint64): uint64</a></li>
  268. <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>
  269. </ul>
  270. <ul class="simple nested-toc-section">*%
  271. <li><a class="reference" href="#%2A%25%2Cint%2Cint" title="`*%`(x, y: int): int">`*%`(x, y: int): int</a></li>
  272. <li><a class="reference" href="#%2A%25%2Cint8%2Cint8" title="`*%`(x, y: int8): int8">`*%`(x, y: int8): int8</a></li>
  273. <li><a class="reference" href="#%2A%25%2Cint16%2Cint16" title="`*%`(x, y: int16): int16">`*%`(x, y: int16): int16</a></li>
  274. <li><a class="reference" href="#%2A%25%2Cint32%2Cint32" title="`*%`(x, y: int32): int32">`*%`(x, y: int32): int32</a></li>
  275. <li><a class="reference" href="#%2A%25%2Cint64%2Cint64" title="`*%`(x, y: int64): int64">`*%`(x, y: int64): int64</a></li>
  276. </ul>
  277. <ul class="simple nested-toc-section">*=
  278. <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>
  279. <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>
  280. </ul>
  281. <ul class="simple nested-toc-section">+
  282. <li><a class="reference" href="#%2B%2Cfloat%2Cfloat" title="`+`(x, y: float): float">`+`(x, y: float): float</a></li>
  283. <li><a class="reference" href="#%2B%2Cfloat32%2Cfloat32" title="`+`(x, y: float32): float32">`+`(x, y: float32): float32</a></li>
  284. <li><a class="reference" href="#%2B%2Cint%2Cint" title="`+`(x, y: int): int">`+`(x, y: int): int</a></li>
  285. <li><a class="reference" href="#%2B%2Cint8%2Cint8" title="`+`(x, y: int8): int8">`+`(x, y: int8): int8</a></li>
  286. <li><a class="reference" href="#%2B%2Cint16%2Cint16" title="`+`(x, y: int16): int16">`+`(x, y: int16): int16</a></li>
  287. <li><a class="reference" href="#%2B%2Cint32%2Cint32" title="`+`(x, y: int32): int32">`+`(x, y: int32): int32</a></li>
  288. <li><a class="reference" href="#%2B%2Cint64%2Cint64" title="`+`(x, y: int64): int64">`+`(x, y: int64): int64</a></li>
  289. <li><a class="reference" href="#%2B%2Cuint%2Cuint" title="`+`(x, y: uint): uint">`+`(x, y: uint): uint</a></li>
  290. <li><a class="reference" href="#%2B%2Cuint8%2Cuint8" title="`+`(x, y: uint8): uint8">`+`(x, y: uint8): uint8</a></li>
  291. <li><a class="reference" href="#%2B%2Cuint16%2Cuint16" title="`+`(x, y: uint16): uint16">`+`(x, y: uint16): uint16</a></li>
  292. <li><a class="reference" href="#%2B%2Cuint32%2Cuint32" title="`+`(x, y: uint32): uint32">`+`(x, y: uint32): uint32</a></li>
  293. <li><a class="reference" href="#%2B%2Cuint64%2Cuint64" title="`+`(x, y: uint64): uint64">`+`(x, y: uint64): uint64</a></li>
  294. <li><a class="reference" href="#%2B%2Cfloat" title="`+`(x: float): float">`+`(x: float): float</a></li>
  295. <li><a class="reference" href="#%2B%2Cfloat32" title="`+`(x: float32): float32">`+`(x: float32): float32</a></li>
  296. <li><a class="reference" href="#%2B%2Cint" title="`+`(x: int): int">`+`(x: int): int</a></li>
  297. <li><a class="reference" href="#%2B%2Cint8" title="`+`(x: int8): int8">`+`(x: int8): int8</a></li>
  298. <li><a class="reference" href="#%2B%2Cint16" title="`+`(x: int16): int16">`+`(x: int16): int16</a></li>
  299. <li><a class="reference" href="#%2B%2Cint32" title="`+`(x: int32): int32">`+`(x: int32): int32</a></li>
  300. <li><a class="reference" href="#%2B%2Cint64" title="`+`(x: int64): int64">`+`(x: int64): int64</a></li>
  301. <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>
  302. </ul>
  303. <ul class="simple nested-toc-section">+%
  304. <li><a class="reference" href="#%2B%25%2Cint%2Cint" title="`+%`(x, y: int): int">`+%`(x, y: int): int</a></li>
  305. <li><a class="reference" href="#%2B%25%2Cint8%2Cint8" title="`+%`(x, y: int8): int8">`+%`(x, y: int8): int8</a></li>
  306. <li><a class="reference" href="#%2B%25%2Cint16%2Cint16" title="`+%`(x, y: int16): int16">`+%`(x, y: int16): int16</a></li>
  307. <li><a class="reference" href="#%2B%25%2Cint32%2Cint32" title="`+%`(x, y: int32): int32">`+%`(x, y: int32): int32</a></li>
  308. <li><a class="reference" href="#%2B%25%2Cint64%2Cint64" title="`+%`(x, y: int64): int64">`+%`(x, y: int64): int64</a></li>
  309. </ul>
  310. <ul class="simple nested-toc-section">+=
  311. <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>
  312. <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>
  313. </ul>
  314. <ul class="simple nested-toc-section">-
  315. <li><a class="reference" href="#-%2CAllocStats%2CAllocStats" title="`-`(a, b: AllocStats): AllocStats">`-`(a, b: AllocStats): AllocStats</a></li>
  316. <li><a class="reference" href="#-%2Cfloat%2Cfloat" title="`-`(x, y: float): float">`-`(x, y: float): float</a></li>
  317. <li><a class="reference" href="#-%2Cfloat32%2Cfloat32" title="`-`(x, y: float32): float32">`-`(x, y: float32): float32</a></li>
  318. <li><a class="reference" href="#-%2Cint%2Cint" title="`-`(x, y: int): int">`-`(x, y: int): int</a></li>
  319. <li><a class="reference" href="#-%2Cint8%2Cint8" title="`-`(x, y: int8): int8">`-`(x, y: int8): int8</a></li>
  320. <li><a class="reference" href="#-%2Cint16%2Cint16" title="`-`(x, y: int16): int16">`-`(x, y: int16): int16</a></li>
  321. <li><a class="reference" href="#-%2Cint32%2Cint32" title="`-`(x, y: int32): int32">`-`(x, y: int32): int32</a></li>
  322. <li><a class="reference" href="#-%2Cint64%2Cint64" title="`-`(x, y: int64): int64">`-`(x, y: int64): int64</a></li>
  323. <li><a class="reference" href="#-%2Cuint%2Cuint" title="`-`(x, y: uint): uint">`-`(x, y: uint): uint</a></li>
  324. <li><a class="reference" href="#-%2Cuint8%2Cuint8" title="`-`(x, y: uint8): uint8">`-`(x, y: uint8): uint8</a></li>
  325. <li><a class="reference" href="#-%2Cuint16%2Cuint16" title="`-`(x, y: uint16): uint16">`-`(x, y: uint16): uint16</a></li>
  326. <li><a class="reference" href="#-%2Cuint32%2Cuint32" title="`-`(x, y: uint32): uint32">`-`(x, y: uint32): uint32</a></li>
  327. <li><a class="reference" href="#-%2Cuint64%2Cuint64" title="`-`(x, y: uint64): uint64">`-`(x, y: uint64): uint64</a></li>
  328. <li><a class="reference" href="#-%2Cfloat" title="`-`(x: float): float">`-`(x: float): float</a></li>
  329. <li><a class="reference" href="#-%2Cfloat32" title="`-`(x: float32): float32">`-`(x: float32): float32</a></li>
  330. <li><a class="reference" href="#-%2Cint" title="`-`(x: int): int">`-`(x: int): int</a></li>
  331. <li><a class="reference" href="#-%2Cint8" title="`-`(x: int8): int8">`-`(x: int8): int8</a></li>
  332. <li><a class="reference" href="#-%2Cint16" title="`-`(x: int16): int16">`-`(x: int16): int16</a></li>
  333. <li><a class="reference" href="#-%2Cint32" title="`-`(x: int32): int32">`-`(x: int32): int32</a></li>
  334. <li><a class="reference" href="#-%2Cint64" title="`-`(x: int64): int64">`-`(x: int64): int64</a></li>
  335. <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>
  336. </ul>
  337. <ul class="simple nested-toc-section">-%
  338. <li><a class="reference" href="#-%25%2Cint%2Cint" title="`-%`(x, y: int): int">`-%`(x, y: int): int</a></li>
  339. <li><a class="reference" href="#-%25%2Cint8%2Cint8" title="`-%`(x, y: int8): int8">`-%`(x, y: int8): int8</a></li>
  340. <li><a class="reference" href="#-%25%2Cint16%2Cint16" title="`-%`(x, y: int16): int16">`-%`(x, y: int16): int16</a></li>
  341. <li><a class="reference" href="#-%25%2Cint32%2Cint32" title="`-%`(x, y: int32): int32">`-%`(x, y: int32): int32</a></li>
  342. <li><a class="reference" href="#-%25%2Cint64%2Cint64" title="`-%`(x, y: int64): int64">`-%`(x, y: int64): int64</a></li>
  343. </ul>
  344. <ul class="simple nested-toc-section">-=
  345. <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>
  346. <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>
  347. </ul>
  348. <ul class="simple nested-toc-section">..
  349. <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>
  350. <li><a class="reference" href="#..%2CsinkT" title="`..`[T](b: sink T): HSlice[int, T]">`..`[T](b: sink T): HSlice[int, T]</a></li>
  351. </ul>
  352. <ul class="simple nested-toc-section">/
  353. <li><a class="reference" href="#%2F%2Cfloat%2Cfloat" title="`/`(x, y: float): float">`/`(x, y: float): float</a></li>
  354. <li><a class="reference" href="#%2F%2Cfloat32%2Cfloat32" title="`/`(x, y: float32): float32">`/`(x, y: float32): float32</a></li>
  355. <li><a class="reference" href="#%2F%2Cint%2Cint" title="`/`(x, y: int): float">`/`(x, y: int): float</a></li>
  356. </ul>
  357. <ul class="simple nested-toc-section">/%
  358. <li><a class="reference" href="#%2F%25%2Cint%2Cint" title="`/%`(x, y: int): int">`/%`(x, y: int): int</a></li>
  359. <li><a class="reference" href="#%2F%25%2Cint8%2Cint8" title="`/%`(x, y: int8): int8">`/%`(x, y: int8): int8</a></li>
  360. <li><a class="reference" href="#%2F%25%2Cint16%2Cint16" title="`/%`(x, y: int16): int16">`/%`(x, y: int16): int16</a></li>
  361. <li><a class="reference" href="#%2F%25%2Cint32%2Cint32" title="`/%`(x, y: int32): int32">`/%`(x, y: int32): int32</a></li>
  362. <li><a class="reference" href="#%2F%25%2Cint64%2Cint64" title="`/%`(x, y: int64): int64">`/%`(x, y: int64): int64</a></li>
  363. </ul>
  364. <ul class="simple nested-toc-section">/=
  365. <li><a class="reference" href="#%2F%3D%2Cfloat64%2Cfloat64" title="`/=`(x: var float64; y: float64)">`/=`(x: var float64; y: float64)</a></li>
  366. <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>
  367. </ul>
  368. <ul class="simple nested-toc-section"><
  369. <li><a class="reference" href="#%3C%2Cbool%2Cbool" title="`&lt;`(x, y: bool): bool">`&lt;`(x, y: bool): bool</a></li>
  370. <li><a class="reference" href="#%3C%2Cchar%2Cchar" title="`&lt;`(x, y: char): bool">`&lt;`(x, y: char): bool</a></li>
  371. <li><a class="reference" href="#%3C%2Cfloat%2Cfloat" title="`&lt;`(x, y: float): bool">`&lt;`(x, y: float): bool</a></li>
  372. <li><a class="reference" href="#%3C%2Cfloat32%2Cfloat32" title="`&lt;`(x, y: float32): bool">`&lt;`(x, y: float32): bool</a></li>
  373. <li><a class="reference" href="#%3C%2Cint%2Cint" title="`&lt;`(x, y: int): bool">`&lt;`(x, y: int): bool</a></li>
  374. <li><a class="reference" href="#%3C%2Cint8%2Cint8" title="`&lt;`(x, y: int8): bool">`&lt;`(x, y: int8): bool</a></li>
  375. <li><a class="reference" href="#%3C%2Cint16%2Cint16" title="`&lt;`(x, y: int16): bool">`&lt;`(x, y: int16): bool</a></li>
  376. <li><a class="reference" href="#%3C%2Cint32%2Cint32" title="`&lt;`(x, y: int32): bool">`&lt;`(x, y: int32): bool</a></li>
  377. <li><a class="reference" href="#%3C%2Cint64%2Cint64" title="`&lt;`(x, y: int64): bool">`&lt;`(x, y: int64): bool</a></li>
  378. <li><a class="reference" href="#%3C%2Cpointer%2Cpointer" title="`&lt;`(x, y: pointer): bool">`&lt;`(x, y: pointer): bool</a></li>
  379. <li><a class="reference" href="#%3C%2Cstring%2Cstring" title="`&lt;`(x, y: string): bool">`&lt;`(x, y: string): bool</a></li>
  380. <li><a class="reference" href="#%3C%2Cuint%2Cuint" title="`&lt;`(x, y: uint): bool">`&lt;`(x, y: uint): bool</a></li>
  381. <li><a class="reference" href="#%3C%2Cuint8%2Cuint8" title="`&lt;`(x, y: uint8): bool">`&lt;`(x, y: uint8): bool</a></li>
  382. <li><a class="reference" href="#%3C%2Cuint16%2Cuint16" title="`&lt;`(x, y: uint16): bool">`&lt;`(x, y: uint16): bool</a></li>
  383. <li><a class="reference" href="#%3C%2Cuint32%2Cuint32" title="`&lt;`(x, y: uint32): bool">`&lt;`(x, y: uint32): bool</a></li>
  384. <li><a class="reference" href="#%3C%2Cuint64%2Cuint64" title="`&lt;`(x, y: uint64): bool">`&lt;`(x, y: uint64): bool</a></li>
  385. <li><a class="reference" href="#%3C%2CEnum%2CEnum" title="`&lt;`[Enum: enum](x, y: Enum): bool">`&lt;`[Enum: enum](x, y: Enum): bool</a></li>
  386. <li><a class="reference" href="#%3C%2CT%2CT" title="`&lt;`[T: tuple](x, y: T): bool">`&lt;`[T: tuple](x, y: T): bool</a></li>
  387. <li><a class="reference" href="#%3C%2Cptr.T%2Cptr.T" title="`&lt;`[T](x, y: ptr T): bool">`&lt;`[T](x, y: ptr T): bool</a></li>
  388. <li><a class="reference" href="#%3C%2Cref.T%2Cref.T" title="`&lt;`[T](x, y: ref T): bool">`&lt;`[T](x, y: ref T): bool</a></li>
  389. <li><a class="reference" href="#%3C%2Cset%5BT%5D%2Cset%5BT%5D" title="`&lt;`[T](x, y: set[T]): bool">`&lt;`[T](x, y: set[T]): bool</a></li>
  390. </ul>
  391. <ul class="simple nested-toc-section"><%
  392. <li><a class="reference" href="#%3C%25%2Cint%2Cint" title="`&lt;%`(x, y: int): bool">`&lt;%`(x, y: int): bool</a></li>
  393. <li><a class="reference" href="#%3C%25%2Cint8%2Cint8" title="`&lt;%`(x, y: int8): bool">`&lt;%`(x, y: int8): bool</a></li>
  394. <li><a class="reference" href="#%3C%25%2Cint16%2Cint16" title="`&lt;%`(x, y: int16): bool">`&lt;%`(x, y: int16): bool</a></li>
  395. <li><a class="reference" href="#%3C%25%2Cint32%2Cint32" title="`&lt;%`(x, y: int32): bool">`&lt;%`(x, y: int32): bool</a></li>
  396. <li><a class="reference" href="#%3C%25%2Cint64%2Cint64" title="`&lt;%`(x, y: int64): bool">`&lt;%`(x, y: int64): bool</a></li>
  397. </ul>
  398. <ul class="simple nested-toc-section"><=
  399. <li><a class="reference" href="#%3C%3D%2Cbool%2Cbool" title="`&lt;=`(x, y: bool): bool">`&lt;=`(x, y: bool): bool</a></li>
  400. <li><a class="reference" href="#%3C%3D%2Cchar%2Cchar" title="`&lt;=`(x, y: char): bool">`&lt;=`(x, y: char): bool</a></li>
  401. <li><a class="reference" href="#%3C%3D%2Cfloat%2Cfloat" title="`&lt;=`(x, y: float): bool">`&lt;=`(x, y: float): bool</a></li>
  402. <li><a class="reference" href="#%3C%3D%2Cfloat32%2Cfloat32" title="`&lt;=`(x, y: float32): bool">`&lt;=`(x, y: float32): bool</a></li>
  403. <li><a class="reference" href="#%3C%3D%2Cint%2Cint" title="`&lt;=`(x, y: int): bool">`&lt;=`(x, y: int): bool</a></li>
  404. <li><a class="reference" href="#%3C%3D%2Cint8%2Cint8" title="`&lt;=`(x, y: int8): bool">`&lt;=`(x, y: int8): bool</a></li>
  405. <li><a class="reference" href="#%3C%3D%2Cint16%2Cint16" title="`&lt;=`(x, y: int16): bool">`&lt;=`(x, y: int16): bool</a></li>
  406. <li><a class="reference" href="#%3C%3D%2Cint32%2Cint32" title="`&lt;=`(x, y: int32): bool">`&lt;=`(x, y: int32): bool</a></li>
  407. <li><a class="reference" href="#%3C%3D%2Cint64%2Cint64" title="`&lt;=`(x, y: int64): bool">`&lt;=`(x, y: int64): bool</a></li>
  408. <li><a class="reference" href="#%3C%3D%2Cpointer%2Cpointer" title="`&lt;=`(x, y: pointer): bool">`&lt;=`(x, y: pointer): bool</a></li>
  409. <li><a class="reference" href="#%3C%3D%2Cstring%2Cstring" title="`&lt;=`(x, y: string): bool">`&lt;=`(x, y: string): bool</a></li>
  410. <li><a class="reference" href="#%3C%3D%2Cuint%2Cuint" title="`&lt;=`(x, y: uint): bool">`&lt;=`(x, y: uint): bool</a></li>
  411. <li><a class="reference" href="#%3C%3D%2Cuint8%2Cuint8" title="`&lt;=`(x, y: uint8): bool">`&lt;=`(x, y: uint8): bool</a></li>
  412. <li><a class="reference" href="#%3C%3D%2Cuint16%2Cuint16" title="`&lt;=`(x, y: uint16): bool">`&lt;=`(x, y: uint16): bool</a></li>
  413. <li><a class="reference" href="#%3C%3D%2Cuint32%2Cuint32" title="`&lt;=`(x, y: uint32): bool">`&lt;=`(x, y: uint32): bool</a></li>
  414. <li><a class="reference" href="#%3C%3D%2Cuint64%2Cuint64" title="`&lt;=`(x, y: uint64): bool">`&lt;=`(x, y: uint64): bool</a></li>
  415. <li><a class="reference" href="#%3C%3D%2CEnum%2CEnum" title="`&lt;=`[Enum: enum](x, y: Enum): bool">`&lt;=`[Enum: enum](x, y: Enum): bool</a></li>
  416. <li><a class="reference" href="#%3C%3D%2CT%2CT" title="`&lt;=`[T: tuple](x, y: T): bool">`&lt;=`[T: tuple](x, y: T): bool</a></li>
  417. <li><a class="reference" href="#%3C%3D%2Cref.T%2Cref.T" title="`&lt;=`[T](x, y: ref T): bool">`&lt;=`[T](x, y: ref T): bool</a></li>
  418. <li><a class="reference" href="#%3C%3D%2Cset%5BT%5D%2Cset%5BT%5D" title="`&lt;=`[T](x, y: set[T]): bool">`&lt;=`[T](x, y: set[T]): bool</a></li>
  419. </ul>
  420. <ul class="simple nested-toc-section"><=%
  421. <li><a class="reference" href="#%3C%3D%25%2Cint%2Cint" title="`&lt;=%`(x, y: int): bool">`&lt;=%`(x, y: int): bool</a></li>
  422. <li><a class="reference" href="#%3C%3D%25%2Cint8%2Cint8" title="`&lt;=%`(x, y: int8): bool">`&lt;=%`(x, y: int8): bool</a></li>
  423. <li><a class="reference" href="#%3C%3D%25%2Cint16%2Cint16" title="`&lt;=%`(x, y: int16): bool">`&lt;=%`(x, y: int16): bool</a></li>
  424. <li><a class="reference" href="#%3C%3D%25%2Cint32%2Cint32" title="`&lt;=%`(x, y: int32): bool">`&lt;=%`(x, y: int32): bool</a></li>
  425. <li><a class="reference" href="#%3C%3D%25%2Cint64%2Cint64" title="`&lt;=%`(x, y: int64): bool">`&lt;=%`(x, y: int64): bool</a></li>
  426. </ul>
  427. <ul class="simple nested-toc-section">=
  428. <li><a class="reference" href="#%3D%2CT%2CT" title="`=`[T](dest: var T; src: T)">`=`[T](dest: var T; src: T)</a></li>
  429. </ul>
  430. <ul class="simple nested-toc-section">==
  431. <li><a class="reference" href="#%3D%3D%2Cbool%2Cbool" title="`==`(x, y: bool): bool">`==`(x, y: bool): bool</a></li>
  432. <li><a class="reference" href="#%3D%3D%2Cchar%2Cchar" title="`==`(x, y: char): bool">`==`(x, y: char): bool</a></li>
  433. <li><a class="reference" href="#%3D%3D%2Ccstring%2Ccstring" title="`==`(x, y: cstring): bool">`==`(x, y: cstring): bool</a></li>
  434. <li><a class="reference" href="#%3D%3D%2Cfloat%2Cfloat" title="`==`(x, y: float): bool">`==`(x, y: float): bool</a></li>
  435. <li><a class="reference" href="#%3D%3D%2Cfloat32%2Cfloat32" title="`==`(x, y: float32): bool">`==`(x, y: float32): bool</a></li>
  436. <li><a class="reference" href="#%3D%3D%2Cint%2Cint" title="`==`(x, y: int): bool">`==`(x, y: int): bool</a></li>
  437. <li><a class="reference" href="#%3D%3D%2Cint8%2Cint8" title="`==`(x, y: int8): bool">`==`(x, y: int8): bool</a></li>
  438. <li><a class="reference" href="#%3D%3D%2Cint16%2Cint16" title="`==`(x, y: int16): bool">`==`(x, y: int16): bool</a></li>
  439. <li><a class="reference" href="#%3D%3D%2Cint32%2Cint32" title="`==`(x, y: int32): bool">`==`(x, y: int32): bool</a></li>
  440. <li><a class="reference" href="#%3D%3D%2Cint64%2Cint64" title="`==`(x, y: int64): bool">`==`(x, y: int64): bool</a></li>
  441. <li><a class="reference" href="#%3D%3D%2Cpointer%2Cpointer" title="`==`(x, y: pointer): bool">`==`(x, y: pointer): bool</a></li>
  442. <li><a class="reference" href="#%3D%3D%2Cstring%2Cstring" title="`==`(x, y: string): bool">`==`(x, y: string): bool</a></li>
  443. <li><a class="reference" href="#%3D%3D%2Cuint%2Cuint" title="`==`(x, y: uint): bool">`==`(x, y: uint): bool</a></li>
  444. <li><a class="reference" href="#%3D%3D%2Cuint8%2Cuint8" title="`==`(x, y: uint8): bool">`==`(x, y: uint8): bool</a></li>
  445. <li><a class="reference" href="#%3D%3D%2Cuint16%2Cuint16" title="`==`(x, y: uint16): bool">`==`(x, y: uint16): bool</a></li>
  446. <li><a class="reference" href="#%3D%3D%2Cuint32%2Cuint32" title="`==`(x, y: uint32): bool">`==`(x, y: uint32): bool</a></li>
  447. <li><a class="reference" href="#%3D%3D%2Cuint64%2Cuint64" title="`==`(x, y: uint64): bool">`==`(x, y: uint64): bool</a></li>
  448. <li><a class="reference" href="#%3D%3D%2CEnum%2CEnum" title="`==`[Enum: enum](x, y: Enum): bool">`==`[Enum: enum](x, y: Enum): bool</a></li>
  449. <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>
  450. <li><a class="reference" href="#%3D%3D%2CT%2CT" title="`==`[T: proc | iterator](x, y: T): bool">`==`[T: proc | iterator](x, y: T): bool</a></li>
  451. <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>
  452. <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>
  453. <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>
  454. <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>
  455. <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>
  456. <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>
  457. </ul>
  458. <ul class="simple nested-toc-section">=copy
  459. <li><a class="reference" href="#%3Dcopy%2CT%2CT" title="`=copy`[T](dest: var T; src: T)">`=copy`[T](dest: var T; src: T)</a></li>
  460. </ul>
  461. <ul class="simple nested-toc-section">=destroy
  462. <li><a class="reference" href="#%3Ddestroy%2Cstring" title="`=destroy`(x: string)">`=destroy`(x: string)</a></li>
  463. <li><a class="reference" href="#%3Ddestroy%2Cref.T" title="`=destroy`[T](x: ref T)">`=destroy`[T](x: ref T)</a></li>
  464. <li><a class="reference" href="#%3Ddestroy%2Cseq%5BT%5D" title="`=destroy`[T](x: seq[T])">`=destroy`[T](x: seq[T])</a></li>
  465. <li><a class="reference" href="#%3Ddestroy%2CT" title="`=destroy`[T](x: var T)">`=destroy`[T](x: var T)</a></li>
  466. </ul>
  467. <ul class="simple nested-toc-section">=dup
  468. <li><a class="reference" href="#%3Ddup%2CT" title="`=dup`[T](x: T): T">`=dup`[T](x: T): T</a></li>
  469. </ul>
  470. <ul class="simple nested-toc-section">=sink
  471. <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>
  472. </ul>
  473. <ul class="simple nested-toc-section">=trace
  474. <li><a class="reference" href="#%3Dtrace%2CT%2Cpointer" title="`=trace`[T](x: var T; env: pointer)">`=trace`[T](x: var T; env: pointer)</a></li>
  475. </ul>
  476. <ul class="simple nested-toc-section">=wasMoved
  477. <li><a class="reference" href="#%3DwasMoved%2CT" title="`=wasMoved`[T](obj: var T)">`=wasMoved`[T](obj: var T)</a></li>
  478. </ul>
  479. <ul class="simple nested-toc-section">@
  480. <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>
  481. <li><a class="reference" href="#%40%2CopenArray%5BT%5D" title="`@`[T](a: openArray[T]): seq[T]">`@`[T](a: openArray[T]): seq[T]</a></li>
  482. </ul>
  483. <ul class="simple nested-toc-section">[]
  484. <li><a class="reference" href="#%5B%5D%2Cstring%2CBackwardsIndex" title="`[]`(s: string; i: BackwardsIndex): char">`[]`(s: string; i: BackwardsIndex): char</a></li>
  485. <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>
  486. <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>
  487. <li><a class="reference" href="#%5B%5D%2Carray%5BIdx%2CT%5D%2CHSlice%5BU%3A%20Ordinal%2CV%3A%20Ordinal%5D" title="`[]`[Idx, T; U, V: Ordinal](a: array[Idx, T]; x: HSlice[U, V]): seq[T]">`[]`[Idx, T; U, V: Ordinal](a: array[Idx, T]; x: HSlice[U, V]): seq[T]</a></li>
  488. <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>
  489. <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>
  490. <li><a class="reference" href="#%5B%5D%2Cstring%2CHSlice%5BT%3A%20Ordinal%2CU%3A%20Ordinal%5D" title="`[]`[T, U: Ordinal](s: string; x: HSlice[T, U]): string">`[]`[T, U: Ordinal](s: string; x: HSlice[T, U]): string</a></li>
  491. <li><a class="reference" href="#%5B%5D%2CopenArray%5BT%5D%2CHSlice%5BU%3A%20Ordinal%2CV%3A%20Ordinal%5D" title="`[]`[T; U, V: Ordinal](s: openArray[T]; x: HSlice[U, V]): seq[T]">`[]`[T; U, V: Ordinal](s: openArray[T]; x: HSlice[U, V]): seq[T]</a></li>
  492. <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>
  493. <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>
  494. </ul>
  495. <ul class="simple nested-toc-section">[]=
  496. <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>
  497. <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>
  498. <li><a class="reference" href="#%5B%5D%3D%2Carray%5BIdx%2CT%5D%2CHSlice%5BU%3A%20Ordinal%2CV%3A%20Ordinal%5D%2CopenArray%5BT%5D" title="`[]=`[Idx, T; U, V: Ordinal](a: var array[Idx, T]; x: HSlice[U, V];
  499. b: openArray[T])">`[]=`[Idx, T; U, V: Ordinal](a: var array[Idx, T]; x: HSlice[U, V];
  500. b: openArray[T])</a></li>
  501. <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>
  502. <li><a class="reference" href="#%5B%5D%3D%2Cstring%2CHSlice%5BT%3A%20Ordinal%2CU%3A%20Ordinal%5D%2Cstring" title="`[]=`[T, U: Ordinal](s: var string; x: HSlice[T, U]; b: string)">`[]=`[T, U: Ordinal](s: var string; x: HSlice[T, U]; b: string)</a></li>
  503. <li><a class="reference" href="#%5B%5D%3D%2Cseq%5BT%5D%2CHSlice%5BU%3A%20Ordinal%2CV%3A%20Ordinal%5D%2CopenArray%5BT%5D" title="`[]=`[T; U, V: Ordinal](s: var seq[T]; x: HSlice[U, V]; b: openArray[T])">`[]=`[T; U, V: Ordinal](s: var seq[T]; x: HSlice[U, V]; b: openArray[T])</a></li>
  504. <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>
  505. </ul>
  506. <ul class="simple nested-toc-section">abs
  507. <li><a class="reference" href="#abs%2Cint" title="abs(x: int): int">abs(x: int): int</a></li>
  508. <li><a class="reference" href="#abs%2Cint8" title="abs(x: int8): int8">abs(x: int8): int8</a></li>
  509. <li><a class="reference" href="#abs%2Cint16" title="abs(x: int16): int16">abs(x: int16): int16</a></li>
  510. <li><a class="reference" href="#abs%2Cint32" title="abs(x: int32): int32">abs(x: int32): int32</a></li>
  511. <li><a class="reference" href="#abs%2Cint64" title="abs(x: int64): int64">abs(x: int64): int64</a></li>
  512. <li><a class="reference" href="#abs%2CT" title="abs[T: float64 | float32](x: T): T">abs[T: float64 | float32](x: T): T</a></li>
  513. </ul>
  514. <ul class="simple nested-toc-section">add
  515. <li><a class="reference" href="#add%2Ccstring%2Ccstring" title="add(x: var cstring; y: cstring)">add(x: var cstring; y: cstring)</a></li>
  516. <li><a class="reference" href="#add%2Cstring%2Cchar" title="add(x: var string; y: char)">add(x: var string; y: char)</a></li>
  517. <li><a class="reference" href="#add%2Cstring%2Ccstring" title="add(x: var string; y: cstring)">add(x: var string; y: cstring)</a></li>
  518. <li><a class="reference" href="#add%2Cstring%2Cstring" title="add(x: var string; y: string)">add(x: var string; y: string)</a></li>
  519. <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>
  520. <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>
  521. </ul>
  522. <ul class="simple nested-toc-section">addEscapedChar
  523. <li><a class="reference" href="#addEscapedChar%2Cstring%2Cchar" title="addEscapedChar(s: var string; c: char)">addEscapedChar(s: var string; c: char)</a></li>
  524. </ul>
  525. <ul class="simple nested-toc-section">addQuoted
  526. <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>
  527. </ul>
  528. <ul class="simple nested-toc-section">addr
  529. <li><a class="reference" href="#addr%2CT" title="`addr`[T](x: T): ptr T">`addr`[T](x: T): ptr T</a></li>
  530. </ul>
  531. <ul class="simple nested-toc-section">alignof
  532. <li><a class="reference" href="#alignof%2Ctypedesc" title="alignof(x: typedesc): int">alignof(x: typedesc): int</a></li>
  533. <li><a class="reference" href="#alignof%2CT" title="alignof[T](x: T): int">alignof[T](x: T): int</a></li>
  534. </ul>
  535. <ul class="simple nested-toc-section">alloc0Impl
  536. <li><a class="reference" href="#alloc0Impl%2CNatural" title="alloc0Impl(size: Natural): pointer">alloc0Impl(size: Natural): pointer</a></li>
  537. </ul>
  538. <ul class="simple nested-toc-section">allocCStringArray
  539. <li><a class="reference" href="#allocCStringArray%2CopenArray%5Bstring%5D" title="allocCStringArray(a: openArray[string]): cstringArray">allocCStringArray(a: openArray[string]): cstringArray</a></li>
  540. </ul>
  541. <ul class="simple nested-toc-section">allocImpl
  542. <li><a class="reference" href="#allocImpl%2CNatural" title="allocImpl(size: Natural): pointer">allocImpl(size: Natural): pointer</a></li>
  543. </ul>
  544. <ul class="simple nested-toc-section">allocShared0Impl
  545. <li><a class="reference" href="#allocShared0Impl%2CNatural" title="allocShared0Impl(size: Natural): pointer">allocShared0Impl(size: Natural): pointer</a></li>
  546. </ul>
  547. <ul class="simple nested-toc-section">allocSharedImpl
  548. <li><a class="reference" href="#allocSharedImpl%2CNatural" title="allocSharedImpl(size: Natural): pointer">allocSharedImpl(size: Natural): pointer</a></li>
  549. </ul>
  550. <ul class="simple nested-toc-section">and
  551. <li><a class="reference" href="#and%2Ctypedesc%2Ctypedesc" title="`and`(a, b: typedesc): typedesc">`and`(a, b: typedesc): typedesc</a></li>
  552. <li><a class="reference" href="#and%2Cbool%2Cbool" title="`and`(x, y: bool): bool">`and`(x, y: bool): bool</a></li>
  553. <li><a class="reference" href="#and%2Cint%2Cint" title="`and`(x, y: int): int">`and`(x, y: int): int</a></li>
  554. <li><a class="reference" href="#and%2Cint8%2Cint8" title="`and`(x, y: int8): int8">`and`(x, y: int8): int8</a></li>
  555. <li><a class="reference" href="#and%2Cint16%2Cint16" title="`and`(x, y: int16): int16">`and`(x, y: int16): int16</a></li>
  556. <li><a class="reference" href="#and%2Cint32%2Cint32" title="`and`(x, y: int32): int32">`and`(x, y: int32): int32</a></li>
  557. <li><a class="reference" href="#and%2Cint64%2Cint64" title="`and`(x, y: int64): int64">`and`(x, y: int64): int64</a></li>
  558. <li><a class="reference" href="#and%2Cuint%2Cuint" title="`and`(x, y: uint): uint">`and`(x, y: uint): uint</a></li>
  559. <li><a class="reference" href="#and%2Cuint8%2Cuint8" title="`and`(x, y: uint8): uint8">`and`(x, y: uint8): uint8</a></li>
  560. <li><a class="reference" href="#and%2Cuint16%2Cuint16" title="`and`(x, y: uint16): uint16">`and`(x, y: uint16): uint16</a></li>
  561. <li><a class="reference" href="#and%2Cuint32%2Cuint32" title="`and`(x, y: uint32): uint32">`and`(x, y: uint32): uint32</a></li>
  562. <li><a class="reference" href="#and%2Cuint64%2Cuint64" title="`and`(x, y: uint64): uint64">`and`(x, y: uint64): uint64</a></li>
  563. </ul>
  564. <ul class="simple nested-toc-section">arrayWith
  565. <li><a class="reference" href="#arrayWith%2CT%2Cstaticint" title="arrayWith[T](y: T; size: static int): array[size, T]">arrayWith[T](y: T; size: static int): array[size, T]</a></li>
  566. </ul>
  567. <ul class="simple nested-toc-section">arrayWithDefault
  568. <li><a class="reference" href="#arrayWithDefault%2Cstaticint" title="arrayWithDefault[T](size: static int): array[size, T]">arrayWithDefault[T](size: static int): array[size, T]</a></li>
  569. </ul>
  570. <ul class="simple nested-toc-section">ashr
  571. <li><a class="reference" href="#ashr%2Cint8%2CSomeInteger" title="ashr(x: int8; y: SomeInteger): int8">ashr(x: int8; y: SomeInteger): int8</a></li>
  572. <li><a class="reference" href="#ashr%2Cint16%2CSomeInteger" title="ashr(x: int16; y: SomeInteger): int16">ashr(x: int16; y: SomeInteger): int16</a></li>
  573. <li><a class="reference" href="#ashr%2Cint32%2CSomeInteger" title="ashr(x: int32; y: SomeInteger): int32">ashr(x: int32; y: SomeInteger): int32</a></li>
  574. <li><a class="reference" href="#ashr%2Cint64%2CSomeInteger" title="ashr(x: int64; y: SomeInteger): int64">ashr(x: int64; y: SomeInteger): int64</a></li>
  575. <li><a class="reference" href="#ashr%2Cint%2CSomeInteger" title="ashr(x: int; y: SomeInteger): int">ashr(x: int; y: SomeInteger): int</a></li>
  576. </ul>
  577. <ul class="simple nested-toc-section">astToStr
  578. <li><a class="reference" href="#astToStr%2CT" title="astToStr[T](x: T): string">astToStr[T](x: T): string</a></li>
  579. </ul>
  580. <ul class="simple nested-toc-section">capacity
  581. <li><a class="reference" href="#capacity%2Cstring" title="capacity(self: string): int">capacity(self: string): int</a></li>
  582. <li><a class="reference" href="#capacity%2Cseq%5BT%5D" title="capacity[T](self: seq[T]): int">capacity[T](self: seq[T]): int</a></li>
  583. </ul>
  584. <ul class="simple nested-toc-section">card
  585. <li><a class="reference" href="#card%2Cset%5BT%5D" title="card[T](x: set[T]): int">card[T](x: set[T]): int</a></li>
  586. </ul>
  587. <ul class="simple nested-toc-section">chr
  588. <li><a class="reference" href="#chr%2Crange%5B%5D" title="chr(u: range[0 .. 255]): char">chr(u: range[0 .. 255]): char</a></li>
  589. </ul>
  590. <ul class="simple nested-toc-section">clamp
  591. <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>
  592. </ul>
  593. <ul class="simple nested-toc-section">cmp
  594. <li><a class="reference" href="#cmp%2Cstring%2Cstring" title="cmp(x, y: string): int">cmp(x, y: string): int</a></li>
  595. <li><a class="reference" href="#cmp%2CT%2CT" title="cmp[T](x, y: T): int">cmp[T](x, y: T): int</a></li>
  596. </ul>
  597. <ul class="simple nested-toc-section">cmpMem
  598. <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>
  599. </ul>
  600. <ul class="simple nested-toc-section">compileOption
  601. <li><a class="reference" href="#compileOption%2Cstring%2Cstring" title="compileOption(option, arg: string): bool">compileOption(option, arg: string): bool</a></li>
  602. <li><a class="reference" href="#compileOption%2Cstring" title="compileOption(option: string): bool">compileOption(option: string): bool</a></li>
  603. </ul>
  604. <ul class="simple nested-toc-section">compiles
  605. <li><a class="reference" href="#compiles%2Cuntyped" title="compiles(x: untyped): bool">compiles(x: untyped): bool</a></li>
  606. </ul>
  607. <ul class="simple nested-toc-section">contains
  608. <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>
  609. <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>
  610. <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>
  611. </ul>
  612. <ul class="simple nested-toc-section">copyMem
  613. <li><a class="reference" href="#copyMem%2Cpointer%2Cpointer%2CNatural" title="copyMem(dest, source: pointer; size: Natural)">copyMem(dest, source: pointer; size: Natural)</a></li>
  614. </ul>
  615. <ul class="simple nested-toc-section">create
  616. <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>
  617. </ul>
  618. <ul class="simple nested-toc-section">createShared
  619. <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>
  620. </ul>
  621. <ul class="simple nested-toc-section">createSharedU
  622. <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>
  623. </ul>
  624. <ul class="simple nested-toc-section">createU
  625. <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>
  626. </ul>
  627. <ul class="simple nested-toc-section">cstringArrayToSeq
  628. <li><a class="reference" href="#cstringArrayToSeq%2CcstringArray" title="cstringArrayToSeq(a: cstringArray): seq[string]">cstringArrayToSeq(a: cstringArray): seq[string]</a></li>
  629. <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>
  630. </ul>
  631. <ul class="simple nested-toc-section">dealloc
  632. <li><a class="reference" href="#dealloc%2Cpointer" title="dealloc(p: pointer)">dealloc(p: pointer)</a></li>
  633. </ul>
  634. <ul class="simple nested-toc-section">deallocCStringArray
  635. <li><a class="reference" href="#deallocCStringArray%2CcstringArray" title="deallocCStringArray(a: cstringArray)">deallocCStringArray(a: cstringArray)</a></li>
  636. </ul>
  637. <ul class="simple nested-toc-section">deallocImpl
  638. <li><a class="reference" href="#deallocImpl%2Cpointer" title="deallocImpl(p: pointer)">deallocImpl(p: pointer)</a></li>
  639. </ul>
  640. <ul class="simple nested-toc-section">deallocShared
  641. <li><a class="reference" href="#deallocShared%2Cpointer" title="deallocShared(p: pointer)">deallocShared(p: pointer)</a></li>
  642. </ul>
  643. <ul class="simple nested-toc-section">deallocSharedImpl
  644. <li><a class="reference" href="#deallocSharedImpl%2Cpointer" title="deallocSharedImpl(p: pointer)">deallocSharedImpl(p: pointer)</a></li>
  645. </ul>
  646. <ul class="simple nested-toc-section">debugEcho
  647. <li><a class="reference" href="#debugEcho%2Cvarargs%5Btyped%2C%5D" title="debugEcho(x: varargs[typed, `$`])">debugEcho(x: varargs[typed, `$`])</a></li>
  648. </ul>
  649. <ul class="simple nested-toc-section">dec
  650. <li><a class="reference" href="#dec%2CT%2CV" title="dec[T, V: Ordinal](x: var T; y: V = 1)">dec[T, V: Ordinal](x: var T; y: V = 1)</a></li>
  651. </ul>
  652. <ul class="simple nested-toc-section">declared
  653. <li><a class="reference" href="#declared%2Cuntyped" title="declared(x: untyped): bool">declared(x: untyped): bool</a></li>
  654. </ul>
  655. <ul class="simple nested-toc-section">declaredInScope
  656. <li><a class="reference" href="#declaredInScope%2Cuntyped" title="declaredInScope(x: untyped): bool">declaredInScope(x: untyped): bool</a></li>
  657. </ul>
  658. <ul class="simple nested-toc-section">deepCopy
  659. <li><a class="reference" href="#deepCopy%2C%2CT" title="deepCopy[T](x: out T; y: T)">deepCopy[T](x: out T; y: T)</a></li>
  660. <li><a class="reference" href="#deepCopy%2CT" title="deepCopy[T](y: T): T">deepCopy[T](y: T): T</a></li>
  661. </ul>
  662. <ul class="simple nested-toc-section">default
  663. <li><a class="reference" href="#default%2Ctypedesc%5BT%5D" title="default[T](_: typedesc[T]): T">default[T](_: typedesc[T]): T</a></li>
  664. </ul>
  665. <ul class="simple nested-toc-section">defined
  666. <li><a class="reference" href="#defined%2Cuntyped" title="defined(x: untyped): bool">defined(x: untyped): bool</a></li>
  667. </ul>
  668. <ul class="simple nested-toc-section">del
  669. <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>
  670. </ul>
  671. <ul class="simple nested-toc-section">delete
  672. <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>
  673. </ul>
  674. <ul class="simple nested-toc-section">dispose
  675. <li><a class="reference" href="#dispose%2CForeignCell" title="dispose(x: ForeignCell)">dispose(x: ForeignCell)</a></li>
  676. </ul>
  677. <ul class="simple nested-toc-section">div
  678. <li><a class="reference" href="#div%2Cint%2Cint" title="`div`(x, y: int): int">`div`(x, y: int): int</a></li>
  679. <li><a class="reference" href="#div%2Cint8%2Cint8" title="`div`(x, y: int8): int8">`div`(x, y: int8): int8</a></li>
  680. <li><a class="reference" href="#div%2Cint16%2Cint16" title="`div`(x, y: int16): int16">`div`(x, y: int16): int16</a></li>
  681. <li><a class="reference" href="#div%2Cint32%2Cint32" title="`div`(x, y: int32): int32">`div`(x, y: int32): int32</a></li>
  682. <li><a class="reference" href="#div%2Cint64%2Cint64" title="`div`(x, y: int64): int64">`div`(x, y: int64): int64</a></li>
  683. <li><a class="reference" href="#div%2Cuint%2Cuint" title="`div`(x, y: uint): uint">`div`(x, y: uint): uint</a></li>
  684. <li><a class="reference" href="#div%2Cuint8%2Cuint8" title="`div`(x, y: uint8): uint8">`div`(x, y: uint8): uint8</a></li>
  685. <li><a class="reference" href="#div%2Cuint16%2Cuint16" title="`div`(x, y: uint16): uint16">`div`(x, y: uint16): uint16</a></li>
  686. <li><a class="reference" href="#div%2Cuint32%2Cuint32" title="`div`(x, y: uint32): uint32">`div`(x, y: uint32): uint32</a></li>
  687. <li><a class="reference" href="#div%2Cuint64%2Cuint64" title="`div`(x, y: uint64): uint64">`div`(x, y: uint64): uint64</a></li>
  688. </ul>
  689. <ul class="simple nested-toc-section">echo
  690. <li><a class="reference" href="#echo%2Cvarargs%5Btyped%2C%5D" title="echo(x: varargs[typed, `$`])">echo(x: varargs[typed, `$`])</a></li>
  691. </ul>
  692. <ul class="simple nested-toc-section">ensureMove
  693. <li><a class="reference" href="#ensureMove%2CT" title="ensureMove[T](x: T): T">ensureMove[T](x: T): T</a></li>
  694. </ul>
  695. <ul class="simple nested-toc-section">equalMem
  696. <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>
  697. </ul>
  698. <ul class="simple nested-toc-section">excl
  699. <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>
  700. </ul>
  701. <ul class="simple nested-toc-section">find
  702. <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>
  703. </ul>
  704. <ul class="simple nested-toc-section">finished
  705. <li><a class="reference" href="#finished%2CT" title="finished[T: iterator {.closure.}](x: T): bool">finished[T: iterator {.closure.}](x: T): bool</a></li>
  706. </ul>
  707. <ul class="simple nested-toc-section">freeShared
  708. <li><a class="reference" href="#freeShared%2Cptr.T" title="freeShared[T](p: ptr T)">freeShared[T](p: ptr T)</a></li>
  709. </ul>
  710. <ul class="simple nested-toc-section">GC_disableMarkAndSweep
  711. <li><a class="reference" href="#GC_disableMarkAndSweep" title="GC_disableMarkAndSweep()">GC_disableMarkAndSweep()</a></li>
  712. </ul>
  713. <ul class="simple nested-toc-section">GC_disableOrc
  714. <li><a class="reference" href="#GC_disableOrc" title="GC_disableOrc()">GC_disableOrc()</a></li>
  715. </ul>
  716. <ul class="simple nested-toc-section">GC_enableMarkAndSweep
  717. <li><a class="reference" href="#GC_enableMarkAndSweep" title="GC_enableMarkAndSweep()">GC_enableMarkAndSweep()</a></li>
  718. </ul>
  719. <ul class="simple nested-toc-section">GC_enableOrc
  720. <li><a class="reference" href="#GC_enableOrc" title="GC_enableOrc()">GC_enableOrc()</a></li>
  721. </ul>
  722. <ul class="simple nested-toc-section">GC_fullCollect
  723. <li><a class="reference" href="#GC_fullCollect" title="GC_fullCollect()">GC_fullCollect()</a></li>
  724. </ul>
  725. <ul class="simple nested-toc-section">GC_getStatistics
  726. <li><a class="reference" href="#GC_getStatistics" title="GC_getStatistics(): string">GC_getStatistics(): string</a></li>
  727. </ul>
  728. <ul class="simple nested-toc-section">GC_partialCollect
  729. <li><a class="reference" href="#GC_partialCollect%2Cint" title="GC_partialCollect(limit: int)">GC_partialCollect(limit: int)</a></li>
  730. </ul>
  731. <ul class="simple nested-toc-section">GC_prepareOrc
  732. <li><a class="reference" href="#GC_prepareOrc" title="GC_prepareOrc(): int">GC_prepareOrc(): int</a></li>
  733. </ul>
  734. <ul class="simple nested-toc-section">GC_ref
  735. <li><a class="reference" href="#GC_ref%2Cref.T" title="GC_ref[T](x: ref T)">GC_ref[T](x: ref T)</a></li>
  736. </ul>
  737. <ul class="simple nested-toc-section">GC_runOrc
  738. <li><a class="reference" href="#GC_runOrc" title="GC_runOrc()">GC_runOrc()</a></li>
  739. </ul>
  740. <ul class="simple nested-toc-section">GC_unref
  741. <li><a class="reference" href="#GC_unref%2Cref.T" title="GC_unref[T](x: ref T)">GC_unref[T](x: ref T)</a></li>
  742. </ul>
  743. <ul class="simple nested-toc-section">getAllocStats
  744. <li><a class="reference" href="#getAllocStats" title="getAllocStats(): AllocStats">getAllocStats(): AllocStats</a></li>
  745. </ul>
  746. <ul class="simple nested-toc-section">getCurrentException
  747. <li><a class="reference" href="#getCurrentException" title="getCurrentException(): ref Exception">getCurrentException(): ref Exception</a></li>
  748. </ul>
  749. <ul class="simple nested-toc-section">getCurrentExceptionMsg
  750. <li><a class="reference" href="#getCurrentExceptionMsg" title="getCurrentExceptionMsg(): string">getCurrentExceptionMsg(): string</a></li>
  751. </ul>
  752. <ul class="simple nested-toc-section">getFrame
  753. <li><a class="reference" href="#getFrame" title="getFrame(): PFrame">getFrame(): PFrame</a></li>
  754. </ul>
  755. <ul class="simple nested-toc-section">getFrameState
  756. <li><a class="reference" href="#getFrameState" title="getFrameState(): FrameState">getFrameState(): FrameState</a></li>
  757. </ul>
  758. <ul class="simple nested-toc-section">getFreeMem
  759. <li><a class="reference" href="#getFreeMem" title="getFreeMem(): int">getFreeMem(): int</a></li>
  760. </ul>
  761. <ul class="simple nested-toc-section">getFreeSharedMem
  762. <li><a class="reference" href="#getFreeSharedMem" title="getFreeSharedMem(): int">getFreeSharedMem(): int</a></li>
  763. </ul>
  764. <ul class="simple nested-toc-section">getMaxMem
  765. <li><a class="reference" href="#getMaxMem" title="getMaxMem(): int">getMaxMem(): int</a></li>
  766. </ul>
  767. <ul class="simple nested-toc-section">getOccupiedMem
  768. <li><a class="reference" href="#getOccupiedMem" title="getOccupiedMem(): int">getOccupiedMem(): int</a></li>
  769. </ul>
  770. <ul class="simple nested-toc-section">getOccupiedSharedMem
  771. <li><a class="reference" href="#getOccupiedSharedMem" title="getOccupiedSharedMem(): int">getOccupiedSharedMem(): int</a></li>
  772. </ul>
  773. <ul class="simple nested-toc-section">getStackTrace
  774. <li><a class="reference" href="#getStackTrace" title="getStackTrace(): string">getStackTrace(): string</a></li>
  775. <li><a class="reference" href="#getStackTrace%2Cref.Exception" title="getStackTrace(e: ref Exception): string">getStackTrace(e: ref Exception): string</a></li>
  776. </ul>
  777. <ul class="simple nested-toc-section">getStackTraceEntries
  778. <li><a class="reference" href="#getStackTraceEntries" title="getStackTraceEntries(): seq[StackTraceEntry]">getStackTraceEntries(): seq[StackTraceEntry]</a></li>
  779. <li><a class="reference" href="#getStackTraceEntries%2Cref.Exception" title="getStackTraceEntries(e: ref Exception): lent seq[StackTraceEntry]">getStackTraceEntries(e: ref Exception): lent seq[StackTraceEntry]</a></li>
  780. </ul>
  781. <ul class="simple nested-toc-section">getThreadId
  782. <li><a class="reference" href="#getThreadId" title="getThreadId(): int">getThreadId(): int</a></li>
  783. </ul>
  784. <ul class="simple nested-toc-section">getTotalMem
  785. <li><a class="reference" href="#getTotalMem" title="getTotalMem(): int">getTotalMem(): int</a></li>
  786. </ul>
  787. <ul class="simple nested-toc-section">getTotalSharedMem
  788. <li><a class="reference" href="#getTotalSharedMem" title="getTotalSharedMem(): int">getTotalSharedMem(): int</a></li>
  789. </ul>
  790. <ul class="simple nested-toc-section">getTypeInfo
  791. <li><a class="reference" href="#getTypeInfo%2CT" title="getTypeInfo[T](x: T): pointer">getTypeInfo[T](x: T): pointer</a></li>
  792. </ul>
  793. <ul class="simple nested-toc-section">gorge
  794. <li><a class="reference" href="#gorge%2Cstring%2Cstring%2Cstring" title="gorge(command: string; input = &quot;&quot;; cache = &quot;&quot;): string">gorge(command: string; input = &quot;&quot;; cache = &quot;&quot;): string</a></li>
  795. </ul>
  796. <ul class="simple nested-toc-section">gorgeEx
  797. <li><a class="reference" href="#gorgeEx%2Cstring%2Cstring%2Cstring" title="gorgeEx(command: string; input = &quot;&quot;; cache = &quot;&quot;): tuple[output: string,
  798. exitCode: int]">gorgeEx(command: string; input = &quot;&quot;; cache = &quot;&quot;): tuple[output: string,
  799. exitCode: int]</a></li>
  800. </ul>
  801. <ul class="simple nested-toc-section">grow
  802. <li><a class="reference" href="#grow%2Cseq%5BT%5D%2CNatural%2CT" title="grow[T](x: var seq[T]; newLen: Natural; value: T)">grow[T](x: var seq[T]; newLen: Natural; value: T)</a></li>
  803. </ul>
  804. <ul class="simple nested-toc-section">high
  805. <li><a class="reference" href="#high%2Ctypedesc%5BSomeFloat%5D" title="high(T: typedesc[SomeFloat]): T:type">high(T: typedesc[SomeFloat]): T:type</a></li>
  806. <li><a class="reference" href="#high%2Ccstring" title="high(x: cstring): int">high(x: cstring): int</a></li>
  807. <li><a class="reference" href="#high%2Cstring" title="high(x: string): int">high(x: string): int</a></li>
  808. <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>
  809. <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>
  810. <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>
  811. <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>
  812. <li><a class="reference" href="#high%2CopenArray%5BT%5D" title="high[T](x: openArray[T]): int">high[T](x: openArray[T]): int</a></li>
  813. </ul>
  814. <ul class="simple nested-toc-section">inc
  815. <li><a class="reference" href="#inc%2CT%2CV" title="inc[T, V: Ordinal](x: var T; y: V = 1)">inc[T, V: Ordinal](x: var T; y: V = 1)</a></li>
  816. </ul>
  817. <ul class="simple nested-toc-section">incl
  818. <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>
  819. </ul>
  820. <ul class="simple nested-toc-section">insert
  821. <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>
  822. <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>
  823. </ul>
  824. <ul class="simple nested-toc-section">instantiationInfo
  825. <li><a class="reference" href="#instantiationInfo%2Cint" title="instantiationInfo(index = -1; fullPaths = false): tuple[filename: string,
  826. line: int, column: int]">instantiationInfo(index = -1; fullPaths = false): tuple[filename: string,
  827. line: int, column: int]</a></li>
  828. </ul>
  829. <ul class="simple nested-toc-section">is
  830. <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>
  831. </ul>
  832. <ul class="simple nested-toc-section">isNil
  833. <li><a class="reference" href="#isNil%2Ccstring" title="isNil(x: cstring): bool">isNil(x: cstring): bool</a></li>
  834. <li><a class="reference" href="#isNil%2Cpointer" title="isNil(x: pointer): bool">isNil(x: pointer): bool</a></li>
  835. <li><a class="reference" href="#isNil%2CT" title="isNil[T: proc | iterator {.closure.}](x: T): bool">isNil[T: proc | iterator {.closure.}](x: T): bool</a></li>
  836. <li><a class="reference" href="#isNil%2Cptr.T" title="isNil[T](x: ptr T): bool">isNil[T](x: ptr T): bool</a></li>
  837. <li><a class="reference" href="#isNil%2Cref.T" title="isNil[T](x: ref T): bool">isNil[T](x: ref T): bool</a></li>
  838. </ul>
  839. <ul class="simple nested-toc-section">isNotForeign
  840. <li><a class="reference" href="#isNotForeign%2CForeignCell" title="isNotForeign(x: ForeignCell): bool">isNotForeign(x: ForeignCell): bool</a></li>
  841. </ul>
  842. <ul class="simple nested-toc-section">isUniqueRef
  843. <li><a class="reference" href="#isUniqueRef%2Cref.T" title="isUniqueRef[T](x: ref T): bool">isUniqueRef[T](x: ref T): bool</a></li>
  844. </ul>
  845. <ul class="simple nested-toc-section">iterToProc
  846. <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>
  847. </ul>
  848. <ul class="simple nested-toc-section">len
  849. <li><a class="reference" href="#len" title="len(x: (type array) | array): int">len(x: (type array) | array): int</a></li>
  850. <li><a class="reference" href="#len%2Ccstring" title="len(x: cstring): int">len(x: cstring): int</a></li>
  851. <li><a class="reference" href="#len%2Cstring" title="len(x: string): int">len(x: string): int</a></li>
  852. <li><a class="reference" href="#len%2Cseq%5BT%5D" title="len[T](x: seq[T]): int">len[T](x: seq[T]): int</a></li>
  853. <li><a class="reference" href="#len%2Cset%5BT%5D" title="len[T](x: set[T]): int">len[T](x: set[T]): int</a></li>
  854. <li><a class="reference" href="#len%2CTOpenArray" title="len[TOpenArray: openArray | varargs](x: TOpenArray): int">len[TOpenArray: openArray | varargs](x: TOpenArray): int</a></li>
  855. <li><a class="reference" href="#len%2CHSlice%5BU%3A%20Ordinal%2CV%3A%20Ordinal%5D" title="len[U: Ordinal; V: Ordinal](x: HSlice[U, V]): int">len[U: Ordinal; V: Ordinal](x: HSlice[U, V]): int</a></li>
  856. </ul>
  857. <ul class="simple nested-toc-section">locals
  858. <li><a class="reference" href="#locals" title="locals(): RootObj">locals(): RootObj</a></li>
  859. </ul>
  860. <ul class="simple nested-toc-section">low
  861. <li><a class="reference" href="#low%2Ctypedesc%5BSomeFloat%5D" title="low(T: typedesc[SomeFloat]): T:type">low(T: typedesc[SomeFloat]): T:type</a></li>
  862. <li><a class="reference" href="#low%2Ccstring" title="low(x: cstring): int">low(x: cstring): int</a></li>
  863. <li><a class="reference" href="#low%2Cstring" title="low(x: string): int">low(x: string): int</a></li>
  864. <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>
  865. <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>
  866. <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>
  867. <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>
  868. <li><a class="reference" href="#low%2CopenArray%5BT%5D" title="low[T](x: openArray[T]): int">low[T](x: openArray[T]): int</a></li>
  869. </ul>
  870. <ul class="simple nested-toc-section">max
  871. <li><a class="reference" href="#max%2Cfloat32%2Cfloat32" title="max(x, y: float32): float32">max(x, y: float32): float32</a></li>
  872. <li><a class="reference" href="#max%2Cfloat64%2Cfloat64" title="max(x, y: float64): float64">max(x, y: float64): float64</a></li>
  873. <li><a class="reference" href="#max%2Cint%2Cint" title="max(x, y: int): int">max(x, y: int): int</a></li>
  874. <li><a class="reference" href="#max%2Cint8%2Cint8" title="max(x, y: int8): int8">max(x, y: int8): int8</a></li>
  875. <li><a class="reference" href="#max%2Cint16%2Cint16" title="max(x, y: int16): int16">max(x, y: int16): int16</a></li>
  876. <li><a class="reference" href="#max%2Cint32%2Cint32" title="max(x, y: int32): int32">max(x, y: int32): int32</a></li>
  877. <li><a class="reference" href="#max%2Cint64%2Cint64" title="max(x, y: int64): int64">max(x, y: int64): int64</a></li>
  878. <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>
  879. <li><a class="reference" href="#max%2CopenArray%5BT%5D" title="max[T](x: openArray[T]): T">max[T](x: openArray[T]): T</a></li>
  880. </ul>
  881. <ul class="simple nested-toc-section">min
  882. <li><a class="reference" href="#min%2Cfloat32%2Cfloat32" title="min(x, y: float32): float32">min(x, y: float32): float32</a></li>
  883. <li><a class="reference" href="#min%2Cfloat64%2Cfloat64" title="min(x, y: float64): float64">min(x, y: float64): float64</a></li>
  884. <li><a class="reference" href="#min%2Cint%2Cint" title="min(x, y: int): int">min(x, y: int): int</a></li>
  885. <li><a class="reference" href="#min%2Cint8%2Cint8" title="min(x, y: int8): int8">min(x, y: int8): int8</a></li>
  886. <li><a class="reference" href="#min%2Cint16%2Cint16" title="min(x, y: int16): int16">min(x, y: int16): int16</a></li>
  887. <li><a class="reference" href="#min%2Cint32%2Cint32" title="min(x, y: int32): int32">min(x, y: int32): int32</a></li>
  888. <li><a class="reference" href="#min%2Cint64%2Cint64" title="min(x, y: int64): int64">min(x, y: int64): int64</a></li>
  889. <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>
  890. <li><a class="reference" href="#min%2CopenArray%5BT%5D" title="min[T](x: openArray[T]): T">min[T](x: openArray[T]): T</a></li>
  891. </ul>
  892. <ul class="simple nested-toc-section">mod
  893. <li><a class="reference" href="#mod%2Cint%2Cint" title="`mod`(x, y: int): int">`mod`(x, y: int): int</a></li>
  894. <li><a class="reference" href="#mod%2Cint8%2Cint8" title="`mod`(x, y: int8): int8">`mod`(x, y: int8): int8</a></li>
  895. <li><a class="reference" href="#mod%2Cint16%2Cint16" title="`mod`(x, y: int16): int16">`mod`(x, y: int16): int16</a></li>
  896. <li><a class="reference" href="#mod%2Cint32%2Cint32" title="`mod`(x, y: int32): int32">`mod`(x, y: int32): int32</a></li>
  897. <li><a class="reference" href="#mod%2Cint64%2Cint64" title="`mod`(x, y: int64): int64">`mod`(x, y: int64): int64</a></li>
  898. <li><a class="reference" href="#mod%2Cuint%2Cuint" title="`mod`(x, y: uint): uint">`mod`(x, y: uint): uint</a></li>
  899. <li><a class="reference" href="#mod%2Cuint8%2Cuint8" title="`mod`(x, y: uint8): uint8">`mod`(x, y: uint8): uint8</a></li>
  900. <li><a class="reference" href="#mod%2Cuint16%2Cuint16" title="`mod`(x, y: uint16): uint16">`mod`(x, y: uint16): uint16</a></li>
  901. <li><a class="reference" href="#mod%2Cuint32%2Cuint32" title="`mod`(x, y: uint32): uint32">`mod`(x, y: uint32): uint32</a></li>
  902. <li><a class="reference" href="#mod%2Cuint64%2Cuint64" title="`mod`(x, y: uint64): uint64">`mod`(x, y: uint64): uint64</a></li>
  903. </ul>
  904. <ul class="simple nested-toc-section">move
  905. <li><a class="reference" href="#move%2CT" title="move[T](x: var T): T">move[T](x: var T): T</a></li>
  906. </ul>
  907. <ul class="simple nested-toc-section">moveMem
  908. <li><a class="reference" href="#moveMem%2Cpointer%2Cpointer%2CNatural" title="moveMem(dest, source: pointer; size: Natural)">moveMem(dest, source: pointer; size: Natural)</a></li>
  909. </ul>
  910. <ul class="simple nested-toc-section">new
  911. <li><a class="reference" href="#new%2Ctypedesc" title="new(t: typedesc): auto">new(t: typedesc): auto</a></li>
  912. <li><a class="reference" href="#new%2Cref.T" title="new[T](a: var ref T)">new[T](a: var ref T)</a></li>
  913. <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>
  914. <li><a class="reference" href="#new%2Cref.T%2Cproc%28T%29" title="new[T](a: var ref T; finalizer: proc (x: T) {.nimcall.})">new[T](a: var ref T; finalizer: proc (x: T) {.nimcall.})</a></li>
  915. </ul>
  916. <ul class="simple nested-toc-section">newSeq
  917. <li><a class="reference" href="#newSeq" title="newSeq[T](len = 0.Natural): seq[T]">newSeq[T](len = 0.Natural): seq[T]</a></li>
  918. <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>
  919. </ul>
  920. <ul class="simple nested-toc-section">newSeqOfCap
  921. <li><a class="reference" href="#newSeqOfCap%2CNatural" title="newSeqOfCap[T](cap: Natural): seq[T]">newSeqOfCap[T](cap: Natural): seq[T]</a></li>
  922. </ul>
  923. <ul class="simple nested-toc-section">newSeqUninit
  924. <li><a class="reference" href="#newSeqUninit%2CNatural" title="newSeqUninit[T](len: Natural): seq[T]">newSeqUninit[T](len: Natural): seq[T]</a></li>
  925. </ul>
  926. <ul class="simple nested-toc-section">newSeqUninitialized
  927. <li><a class="reference" href="#newSeqUninitialized%2CNatural" title="newSeqUninitialized[T: SomeNumber](len: Natural): seq[T]">newSeqUninitialized[T: SomeNumber](len: Natural): seq[T]</a></li>
  928. </ul>
  929. <ul class="simple nested-toc-section">newString
  930. <li><a class="reference" href="#newString%2CNatural" title="newString(len: Natural): string">newString(len: Natural): string</a></li>
  931. </ul>
  932. <ul class="simple nested-toc-section">newStringOfCap
  933. <li><a class="reference" href="#newStringOfCap%2CNatural" title="newStringOfCap(cap: Natural): string">newStringOfCap(cap: Natural): string</a></li>
  934. </ul>
  935. <ul class="simple nested-toc-section">newStringUninit
  936. <li><a class="reference" href="#newStringUninit%2CNatural" title="newStringUninit(len: Natural): string">newStringUninit(len: Natural): string</a></li>
  937. </ul>
  938. <ul class="simple nested-toc-section">not
  939. <li><a class="reference" href="#not%2Ctypedesc" title="`not`(a: typedesc): typedesc">`not`(a: typedesc): typedesc</a></li>
  940. <li><a class="reference" href="#not%2Cbool" title="`not`(x: bool): bool">`not`(x: bool): bool</a></li>
  941. <li><a class="reference" href="#not%2Cint" title="`not`(x: int): int">`not`(x: int): int</a></li>
  942. <li><a class="reference" href="#not%2Cint8" title="`not`(x: int8): int8">`not`(x: int8): int8</a></li>
  943. <li><a class="reference" href="#not%2Cint16" title="`not`(x: int16): int16">`not`(x: int16): int16</a></li>
  944. <li><a class="reference" href="#not%2Cint32" title="`not`(x: int32): int32">`not`(x: int32): int32</a></li>
  945. <li><a class="reference" href="#not%2Cint64" title="`not`(x: int64): int64">`not`(x: int64): int64</a></li>
  946. <li><a class="reference" href="#not%2Cuint" title="`not`(x: uint): uint">`not`(x: uint): uint</a></li>
  947. <li><a class="reference" href="#not%2Cuint8" title="`not`(x: uint8): uint8">`not`(x: uint8): uint8</a></li>
  948. <li><a class="reference" href="#not%2Cuint16" title="`not`(x: uint16): uint16">`not`(x: uint16): uint16</a></li>
  949. <li><a class="reference" href="#not%2Cuint32" title="`not`(x: uint32): uint32">`not`(x: uint32): uint32</a></li>
  950. <li><a class="reference" href="#not%2Cuint64" title="`not`(x: uint64): uint64">`not`(x: uint64): uint64</a></li>
  951. </ul>
  952. <ul class="simple nested-toc-section">of
  953. <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>
  954. </ul>
  955. <ul class="simple nested-toc-section">onThreadDestruction
  956. <li><a class="reference" href="#onThreadDestruction%2Cproc%29" title="onThreadDestruction(handler: proc () {.closure, gcsafe, raises: [].})">onThreadDestruction(handler: proc () {.closure, gcsafe, raises: [].})</a></li>
  957. </ul>
  958. <ul class="simple nested-toc-section">or
  959. <li><a class="reference" href="#or%2Ctypedesc%2Ctypedesc" title="`or`(a, b: typedesc): typedesc">`or`(a, b: typedesc): typedesc</a></li>
  960. <li><a class="reference" href="#or%2Cbool%2Cbool" title="`or`(x, y: bool): bool">`or`(x, y: bool): bool</a></li>
  961. <li><a class="reference" href="#or%2Cint%2Cint" title="`or`(x, y: int): int">`or`(x, y: int): int</a></li>
  962. <li><a class="reference" href="#or%2Cint8%2Cint8" title="`or`(x, y: int8): int8">`or`(x, y: int8): int8</a></li>
  963. <li><a class="reference" href="#or%2Cint16%2Cint16" title="`or`(x, y: int16): int16">`or`(x, y: int16): int16</a></li>
  964. <li><a class="reference" href="#or%2Cint32%2Cint32" title="`or`(x, y: int32): int32">`or`(x, y: int32): int32</a></li>
  965. <li><a class="reference" href="#or%2Cint64%2Cint64" title="`or`(x, y: int64): int64">`or`(x, y: int64): int64</a></li>
  966. <li><a class="reference" href="#or%2Cuint%2Cuint" title="`or`(x, y: uint): uint">`or`(x, y: uint): uint</a></li>
  967. <li><a class="reference" href="#or%2Cuint8%2Cuint8" title="`or`(x, y: uint8): uint8">`or`(x, y: uint8): uint8</a></li>
  968. <li><a class="reference" href="#or%2Cuint16%2Cuint16" title="`or`(x, y: uint16): uint16">`or`(x, y: uint16): uint16</a></li>
  969. <li><a class="reference" href="#or%2Cuint32%2Cuint32" title="`or`(x, y: uint32): uint32">`or`(x, y: uint32): uint32</a></li>
  970. <li><a class="reference" href="#or%2Cuint64%2Cuint64" title="`or`(x, y: uint64): uint64">`or`(x, y: uint64): uint64</a></li>
  971. </ul>
  972. <ul class="simple nested-toc-section">ord
  973. <li><a class="reference" href="#ord%2CT" title="ord[T: Ordinal | enum](x: T): int">ord[T: Ordinal | enum](x: T): int</a></li>
  974. </ul>
  975. <ul class="simple nested-toc-section">pop
  976. <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>
  977. </ul>
  978. <ul class="simple nested-toc-section">pred
  979. <li><a class="reference" href="#pred%2CT%2CV" title="pred[T, V: Ordinal](x: T; y: V = 1): T">pred[T, V: Ordinal](x: T; y: V = 1): T</a></li>
  980. </ul>
  981. <ul class="simple nested-toc-section">prepareMutation
  982. <li><a class="reference" href="#prepareMutation%2Cstring" title="prepareMutation(s: var string)">prepareMutation(s: var string)</a></li>
  983. </ul>
  984. <ul class="simple nested-toc-section">procCall
  985. <li><a class="reference" href="#procCall%2Cuntyped" title="procCall(x: untyped)">procCall(x: untyped)</a></li>
  986. </ul>
  987. <ul class="simple nested-toc-section">protect
  988. <li><a class="reference" href="#protect%2Cpointer" title="protect(x: pointer): ForeignCell">protect(x: pointer): ForeignCell</a></li>
  989. </ul>
  990. <ul class="simple nested-toc-section">quit
  991. <li><a class="reference" href="#quit%2Cint" title="quit(errorcode: int = QuitSuccess)">quit(errorcode: int = QuitSuccess)</a></li>
  992. <li><a class="reference" href="#quit%2Cstring" title="quit(errormsg: string; errorcode = QuitFailure)">quit(errormsg: string; errorcode = QuitFailure)</a></li>
  993. </ul>
  994. <ul class="simple nested-toc-section">rawEnv
  995. <li><a class="reference" href="#rawEnv%2CT" title="rawEnv[T: proc {.closure.} | iterator {.closure.}](x: T): pointer">rawEnv[T: proc {.closure.} | iterator {.closure.}](x: T): pointer</a></li>
  996. </ul>
  997. <ul class="simple nested-toc-section">rawProc
  998. <li><a class="reference" href="#rawProc%2CT" title="rawProc[T: proc {.closure.} | iterator {.closure.}](x: T): pointer">rawProc[T: proc {.closure.} | iterator {.closure.}](x: T): pointer</a></li>
  999. </ul>
  1000. <ul class="simple nested-toc-section">realloc0Impl
  1001. <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>
  1002. </ul>
  1003. <ul class="simple nested-toc-section">reallocImpl
  1004. <li><a class="reference" href="#reallocImpl%2Cpointer%2CNatural" title="reallocImpl(p: pointer; newSize: Natural): pointer">reallocImpl(p: pointer; newSize: Natural): pointer</a></li>
  1005. </ul>
  1006. <ul class="simple nested-toc-section">reallocShared0Impl
  1007. <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>
  1008. </ul>
  1009. <ul class="simple nested-toc-section">reallocSharedImpl
  1010. <li><a class="reference" href="#reallocSharedImpl%2Cpointer%2CNatural" title="reallocSharedImpl(p: pointer; newSize: Natural): pointer">reallocSharedImpl(p: pointer; newSize: Natural): pointer</a></li>
  1011. </ul>
  1012. <ul class="simple nested-toc-section">repr
  1013. <li><a class="reference" href="#repr%2CHSlice%5BT%2CU%5D" title="repr[T, U](x: HSlice[T, U]): string">repr[T, U](x: HSlice[T, U]): string</a></li>
  1014. </ul>
  1015. <ul class="simple nested-toc-section">reset
  1016. <li><a class="reference" href="#reset%2CT" title="reset[T](obj: var T)">reset[T](obj: var T)</a></li>
  1017. </ul>
  1018. <ul class="simple nested-toc-section">resize
  1019. <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>
  1020. </ul>
  1021. <ul class="simple nested-toc-section">resizeShared
  1022. <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>
  1023. </ul>
  1024. <ul class="simple nested-toc-section">runnableExamples
  1025. <li><a class="reference" href="#runnableExamples%2Cstring%2Cuntyped" title="runnableExamples(rdoccmd = &quot;&quot;; body: untyped)">runnableExamples(rdoccmd = &quot;&quot;; body: untyped)</a></li>
  1026. </ul>
  1027. <ul class="simple nested-toc-section">setControlCHook
  1028. <li><a class="reference" href="#setControlCHook%2Cproc%29" title="setControlCHook(hook: proc () {.noconv.})">setControlCHook(hook: proc () {.noconv.})</a></li>
  1029. </ul>
  1030. <ul class="simple nested-toc-section">setCurrentException
  1031. <li><a class="reference" href="#setCurrentException%2Cref.Exception" title="setCurrentException(exc: ref Exception)">setCurrentException(exc: ref Exception)</a></li>
  1032. </ul>
  1033. <ul class="simple nested-toc-section">setFrame
  1034. <li><a class="reference" href="#setFrame%2CPFrame" title="setFrame(s: PFrame)">setFrame(s: PFrame)</a></li>
  1035. </ul>
  1036. <ul class="simple nested-toc-section">setFrameState
  1037. <li><a class="reference" href="#setFrameState%2CFrameState" title="setFrameState(state: FrameState)">setFrameState(state: FrameState)</a></li>
  1038. </ul>
  1039. <ul class="simple nested-toc-section">setLen
  1040. <li><a class="reference" href="#setLen%2Cstring%2CNatural" title="setLen(s: var string; newlen: Natural)">setLen(s: var string; newlen: Natural)</a></li>
  1041. <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>
  1042. </ul>
  1043. <ul class="simple nested-toc-section">setLenUninit
  1044. <li><a class="reference" href="#setLenUninit%2Cseq%5BT%5D%2CNatural" title="setLenUninit[T](s: var seq[T]; newlen: Natural)">setLenUninit[T](s: var seq[T]; newlen: Natural)</a></li>
  1045. </ul>
  1046. <ul class="simple nested-toc-section">shl
  1047. <li><a class="reference" href="#shl%2Cint8%2CSomeInteger" title="`shl`(x: int8; y: SomeInteger): int8">`shl`(x: int8; y: SomeInteger): int8</a></li>
  1048. <li><a class="reference" href="#shl%2Cint16%2CSomeInteger" title="`shl`(x: int16; y: SomeInteger): int16">`shl`(x: int16; y: SomeInteger): int16</a></li>
  1049. <li><a class="reference" href="#shl%2Cint32%2CSomeInteger" title="`shl`(x: int32; y: SomeInteger): int32">`shl`(x: int32; y: SomeInteger): int32</a></li>
  1050. <li><a class="reference" href="#shl%2Cint64%2CSomeInteger" title="`shl`(x: int64; y: SomeInteger): int64">`shl`(x: int64; y: SomeInteger): int64</a></li>
  1051. <li><a class="reference" href="#shl%2Cint%2CSomeInteger" title="`shl`(x: int; y: SomeInteger): int">`shl`(x: int; y: SomeInteger): int</a></li>
  1052. <li><a class="reference" href="#shl%2Cuint8%2CSomeInteger" title="`shl`(x: uint8; y: SomeInteger): uint8">`shl`(x: uint8; y: SomeInteger): uint8</a></li>
  1053. <li><a class="reference" href="#shl%2Cuint16%2CSomeInteger" title="`shl`(x: uint16; y: SomeInteger): uint16">`shl`(x: uint16; y: SomeInteger): uint16</a></li>
  1054. <li><a class="reference" href="#shl%2Cuint32%2CSomeInteger" title="`shl`(x: uint32; y: SomeInteger): uint32">`shl`(x: uint32; y: SomeInteger): uint32</a></li>
  1055. <li><a class="reference" href="#shl%2Cuint64%2CSomeInteger" title="`shl`(x: uint64; y: SomeInteger): uint64">`shl`(x: uint64; y: SomeInteger): uint64</a></li>
  1056. <li><a class="reference" href="#shl%2Cuint%2CSomeInteger" title="`shl`(x: uint; y: SomeInteger): uint">`shl`(x: uint; y: SomeInteger): uint</a></li>
  1057. </ul>
  1058. <ul class="simple nested-toc-section">shr
  1059. <li><a class="reference" href="#shr%2Cint8%2CSomeInteger" title="`shr`(x: int8; y: SomeInteger): int8">`shr`(x: int8; y: SomeInteger): int8</a></li>
  1060. <li><a class="reference" href="#shr%2Cint16%2CSomeInteger" title="`shr`(x: int16; y: SomeInteger): int16">`shr`(x: int16; y: SomeInteger): int16</a></li>
  1061. <li><a class="reference" href="#shr%2Cint32%2CSomeInteger" title="`shr`(x: int32; y: SomeInteger): int32">`shr`(x: int32; y: SomeInteger): int32</a></li>
  1062. <li><a class="reference" href="#shr%2Cint64%2CSomeInteger" title="`shr`(x: int64; y: SomeInteger): int64">`shr`(x: int64; y: SomeInteger): int64</a></li>
  1063. <li><a class="reference" href="#shr%2Cint%2CSomeInteger" title="`shr`(x: int; y: SomeInteger): int">`shr`(x: int; y: SomeInteger): int</a></li>
  1064. <li><a class="reference" href="#shr%2Cuint8%2CSomeInteger" title="`shr`(x: uint8; y: SomeInteger): uint8">`shr`(x: uint8; y: SomeInteger): uint8</a></li>
  1065. <li><a class="reference" href="#shr%2Cuint16%2CSomeInteger" title="`shr`(x: uint16; y: SomeInteger): uint16">`shr`(x: uint16; y: SomeInteger): uint16</a></li>
  1066. <li><a class="reference" href="#shr%2Cuint32%2CSomeInteger" title="`shr`(x: uint32; y: SomeInteger): uint32">`shr`(x: uint32; y: SomeInteger): uint32</a></li>
  1067. <li><a class="reference" href="#shr%2Cuint64%2CSomeInteger" title="`shr`(x: uint64; y: SomeInteger): uint64">`shr`(x: uint64; y: SomeInteger): uint64</a></li>
  1068. <li><a class="reference" href="#shr%2Cuint%2CSomeInteger" title="`shr`(x: uint; y: SomeInteger): uint">`shr`(x: uint; y: SomeInteger): uint</a></li>
  1069. </ul>
  1070. <ul class="simple nested-toc-section">shrink
  1071. <li><a class="reference" href="#shrink%2Cseq%5BT%5D%2CNatural" title="shrink[T](x: var seq[T]; newLen: Natural)">shrink[T](x: var seq[T]; newLen: Natural)</a></li>
  1072. </ul>
  1073. <ul class="simple nested-toc-section">sizeof
  1074. <li><a class="reference" href="#sizeof%2Ctypedesc" title="sizeof(x: typedesc): int">sizeof(x: typedesc): int</a></li>
  1075. <li><a class="reference" href="#sizeof%2CT" title="sizeof[T](x: T): int">sizeof[T](x: T): int</a></li>
  1076. </ul>
  1077. <ul class="simple nested-toc-section">slurp
  1078. <li><a class="reference" href="#slurp%2Cstring" title="slurp(filename: string): string">slurp(filename: string): string</a></li>
  1079. </ul>
  1080. <ul class="simple nested-toc-section">stackTraceAvailable
  1081. <li><a class="reference" href="#stackTraceAvailable" title="stackTraceAvailable(): bool">stackTraceAvailable(): bool</a></li>
  1082. </ul>
  1083. <ul class="simple nested-toc-section">staticExec
  1084. <li><a class="reference" href="#staticExec%2Cstring%2Cstring%2Cstring" title="staticExec(command: string; input = &quot;&quot;; cache = &quot;&quot;): string">staticExec(command: string; input = &quot;&quot;; cache = &quot;&quot;): string</a></li>
  1085. </ul>
  1086. <ul class="simple nested-toc-section">staticRead
  1087. <li><a class="reference" href="#staticRead%2Cstring" title="staticRead(filename: string): string">staticRead(filename: string): string</a></li>
  1088. </ul>
  1089. <ul class="simple nested-toc-section">substr
  1090. <li><a class="reference" href="#substr%2CopenArray%5Bchar%5D" title="substr(s: openArray[char]): string">substr(s: openArray[char]): string</a></li>
  1091. <li><a class="reference" href="#substr%2Cstring%2Cint" title="substr(s: string; first = 0): string">substr(s: string; first = 0): string</a></li>
  1092. <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>
  1093. </ul>
  1094. <ul class="simple nested-toc-section">succ
  1095. <li><a class="reference" href="#succ%2CT%2CV" title="succ[T, V: Ordinal](x: T; y: V = 1): T">succ[T, V: Ordinal](x: T; y: V = 1): T</a></li>
  1096. </ul>
  1097. <ul class="simple nested-toc-section">swap
  1098. <li><a class="reference" href="#swap%2CT%2CT" title="swap[T](a, b: var T)">swap[T](a, b: var T)</a></li>
  1099. </ul>
  1100. <ul class="simple nested-toc-section">toBiggestFloat
  1101. <li><a class="reference" href="#toBiggestFloat%2CBiggestInt" title="toBiggestFloat(i: BiggestInt): BiggestFloat">toBiggestFloat(i: BiggestInt): BiggestFloat</a></li>
  1102. </ul>
  1103. <ul class="simple nested-toc-section">toBiggestInt
  1104. <li><a class="reference" href="#toBiggestInt%2CBiggestFloat" title="toBiggestInt(f: BiggestFloat): BiggestInt">toBiggestInt(f: BiggestFloat): BiggestInt</a></li>
  1105. </ul>
  1106. <ul class="simple nested-toc-section">toFloat
  1107. <li><a class="reference" href="#toFloat%2Cint" title="toFloat(i: int): float">toFloat(i: int): float</a></li>
  1108. </ul>
  1109. <ul class="simple nested-toc-section">toInt
  1110. <li><a class="reference" href="#toInt%2Cfloat" title="toInt(f: float): int">toInt(f: float): int</a></li>
  1111. </ul>
  1112. <ul class="simple nested-toc-section">toOpenArray
  1113. <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>
  1114. <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>
  1115. <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>
  1116. <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>
  1117. <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>
  1118. <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>
  1119. </ul>
  1120. <ul class="simple nested-toc-section">toOpenArrayByte
  1121. <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>
  1122. <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>
  1123. <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>
  1124. <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>
  1125. </ul>
  1126. <ul class="simple nested-toc-section">toOpenArrayChar
  1127. <li><a class="reference" href="#toOpenArrayChar%2CopenArray%5Bbyte%5D%2Cint%2Cint" title="toOpenArrayChar(x: openArray[byte]; first, last: int): openArray[char]">toOpenArrayChar(x: openArray[byte]; first, last: int): openArray[char]</a></li>
  1128. </ul>
  1129. <ul class="simple nested-toc-section">typeof
  1130. <li><a class="reference" href="#typeof%2Cuntyped" title="typeof(x: untyped; mode = typeOfIter): typedesc">typeof(x: untyped; mode = typeOfIter): typedesc</a></li>
  1131. </ul>
  1132. <ul class="simple nested-toc-section">unsafeAddr
  1133. <li><a class="reference" href="#unsafeAddr%2CT" title="unsafeAddr[T](x: T): ptr T">unsafeAddr[T](x: T): ptr T</a></li>
  1134. </ul>
  1135. <ul class="simple nested-toc-section">unsafeNew
  1136. <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>
  1137. </ul>
  1138. <ul class="simple nested-toc-section">unsetControlCHook
  1139. <li><a class="reference" href="#unsetControlCHook" title="unsetControlCHook()">unsetControlCHook()</a></li>
  1140. </ul>
  1141. <ul class="simple nested-toc-section">wasMoved
  1142. <li><a class="reference" href="#wasMoved%2CT" title="wasMoved[T](obj: var T)">wasMoved[T](obj: var T)</a></li>
  1143. </ul>
  1144. <ul class="simple nested-toc-section">writeStackTrace
  1145. <li><a class="reference" href="#writeStackTrace" title="writeStackTrace()">writeStackTrace()</a></li>
  1146. </ul>
  1147. <ul class="simple nested-toc-section">xor
  1148. <li><a class="reference" href="#xor%2Cbool%2Cbool" title="`xor`(x, y: bool): bool">`xor`(x, y: bool): bool</a></li>
  1149. <li><a class="reference" href="#xor%2Cint%2Cint" title="`xor`(x, y: int): int">`xor`(x, y: int): int</a></li>
  1150. <li><a class="reference" href="#xor%2Cint8%2Cint8" title="`xor`(x, y: int8): int8">`xor`(x, y: int8): int8</a></li>
  1151. <li><a class="reference" href="#xor%2Cint16%2Cint16" title="`xor`(x, y: int16): int16">`xor`(x, y: int16): int16</a></li>
  1152. <li><a class="reference" href="#xor%2Cint32%2Cint32" title="`xor`(x, y: int32): int32">`xor`(x, y: int32): int32</a></li>
  1153. <li><a class="reference" href="#xor%2Cint64%2Cint64" title="`xor`(x, y: int64): int64">`xor`(x, y: int64): int64</a></li>
  1154. <li><a class="reference" href="#xor%2Cuint%2Cuint" title="`xor`(x, y: uint): uint">`xor`(x, y: uint): uint</a></li>
  1155. <li><a class="reference" href="#xor%2Cuint8%2Cuint8" title="`xor`(x, y: uint8): uint8">`xor`(x, y: uint8): uint8</a></li>
  1156. <li><a class="reference" href="#xor%2Cuint16%2Cuint16" title="`xor`(x, y: uint16): uint16">`xor`(x, y: uint16): uint16</a></li>
  1157. <li><a class="reference" href="#xor%2Cuint32%2Cuint32" title="`xor`(x, y: uint32): uint32">`xor`(x, y: uint32): uint32</a></li>
  1158. <li><a class="reference" href="#xor%2Cuint64%2Cuint64" title="`xor`(x, y: uint64): uint64">`xor`(x, y: uint64): uint64</a></li>
  1159. </ul>
  1160. <ul class="simple nested-toc-section">zeroDefault
  1161. <li><a class="reference" href="#zeroDefault%2Ctypedesc%5BT%5D" title="zeroDefault[T](_: typedesc[T]): T">zeroDefault[T](_: typedesc[T]): T</a></li>
  1162. </ul>
  1163. <ul class="simple nested-toc-section">zeroMem
  1164. <li><a class="reference" href="#zeroMem%2Cpointer%2CNatural" title="zeroMem(p: pointer; size: Natural)">zeroMem(p: pointer; size: Natural)</a></li>
  1165. </ul>
  1166. <ul class="simple nested-toc-section">|
  1167. <li><a class="reference" href="#%7C%2Ctypedesc%2Ctypedesc" title="`|`(a, b: typedesc): typedesc">`|`(a, b: typedesc): typedesc</a></li>
  1168. </ul>
  1169. </ul>
  1170. </details>
  1171. </li>
  1172. <li>
  1173. <details open>
  1174. <summary><a class="reference reference-toplevel" href="#15" id="65">Iterators</a></summary>
  1175. <ul class="simple simple-toc-section">
  1176. <ul class="simple nested-toc-section">..
  1177. <li><a class="reference" href="#...i%2Cint32%2Cint32" title="`..`(a, b: int32): int32">`..`(a, b: int32): int32</a></li>
  1178. <li><a class="reference" href="#...i%2Cint64%2Cint64" title="`..`(a, b: int64): int64">`..`(a, b: int64): int64</a></li>
  1179. <li><a class="reference" href="#...i%2Cuint32%2Cuint32" title="`..`(a, b: uint32): uint32">`..`(a, b: uint32): uint32</a></li>
  1180. <li><a class="reference" href="#...i%2Cuint64%2Cuint64" title="`..`(a, b: uint64): uint64">`..`(a, b: uint64): uint64</a></li>
  1181. <li><a class="reference" href="#...i%2CT%2CT" title="`..`[T](a, b: T): T">`..`[T](a, b: T): T</a></li>
  1182. </ul>
  1183. <ul class="simple nested-toc-section">..<
  1184. <li><a class="reference" href="#..%3C.i%2Cint32%2Cint32" title="`..&lt;`(a, b: int32): int32">`..&lt;`(a, b: int32): int32</a></li>
  1185. <li><a class="reference" href="#..%3C.i%2Cint64%2Cint64" title="`..&lt;`(a, b: int64): int64">`..&lt;`(a, b: int64): int64</a></li>
  1186. <li><a class="reference" href="#..%3C.i%2Cuint32%2Cuint32" title="`..&lt;`(a, b: uint32): uint32">`..&lt;`(a, b: uint32): uint32</a></li>
  1187. <li><a class="reference" href="#..%3C.i%2Cuint64%2Cuint64" title="`..&lt;`(a, b: uint64): uint64">`..&lt;`(a, b: uint64): uint64</a></li>
  1188. <li><a class="reference" href="#..%3C.i%2CT%2CT" title="`..&lt;`[T](a, b: T): T">`..&lt;`[T](a, b: T): T</a></li>
  1189. </ul>
  1190. <ul class="simple nested-toc-section">countdown
  1191. <li><a class="reference" href="#countdown.i%2CT%2CT%2CPositive" title="countdown[T](a, b: T; step: Positive = 1): T">countdown[T](a, b: T; step: Positive = 1): T</a></li>
  1192. </ul>
  1193. <ul class="simple nested-toc-section">countup
  1194. <li><a class="reference" href="#countup.i%2CT%2CT%2CPositive" title="countup[T](a, b: T; step: Positive = 1): T">countup[T](a, b: T; step: Positive = 1): T</a></li>
  1195. </ul>
  1196. <ul class="simple nested-toc-section">||
  1197. <li><a class="reference" href="#%7C%7C.i%2CS%2CT%2Cstaticstring" title="`||`[S, T](a: S; b: T; annotation: static string = &quot;parallel for&quot;): T">`||`[S, T](a: S; b: T; annotation: static string = &quot;parallel for&quot;): T</a></li>
  1198. <li><a class="reference" href="#%7C%7C.i%2CS%2CT%2CPositive%2Cstaticstring" title="`||`[S, T](a: S; b: T; step: Positive;
  1199. annotation: static string = &quot;parallel for&quot;): T">`||`[S, T](a: S; b: T; step: Positive;
  1200. annotation: static string = &quot;parallel for&quot;): T</a></li>
  1201. </ul>
  1202. </ul>
  1203. </details>
  1204. </li>
  1205. <li>
  1206. <details open>
  1207. <summary><a class="reference reference-toplevel" href="#17" id="67">Macros</a></summary>
  1208. <ul class="simple simple-toc-section">
  1209. <ul class="simple nested-toc-section">varargsLen
  1210. <li><a class="reference" href="#varargsLen.m%2Cvarargs%5Buntyped%5D" title="varargsLen(x: varargs[untyped]): int">varargsLen(x: varargs[untyped]): int</a></li>
  1211. </ul>
  1212. </ul>
  1213. </details>
  1214. </li>
  1215. <li>
  1216. <details open>
  1217. <summary><a class="reference reference-toplevel" href="#18" id="68">Templates</a></summary>
  1218. <ul class="simple simple-toc-section">
  1219. <ul class="simple nested-toc-section">!=
  1220. <li><a class="reference" href="#%21%3D.t%2Cuntyped%2Cuntyped" title="`!=`(x, y: untyped): untyped">`!=`(x, y: untyped): untyped</a></li>
  1221. </ul>
  1222. <ul class="simple nested-toc-section">&=
  1223. <li><a class="reference" href="#%26%3D.t%2Ctyped%2Ctyped" title="`&amp;=`(x, y: typed)">`&amp;=`(x, y: typed)</a></li>
  1224. </ul>
  1225. <ul class="simple nested-toc-section">..<
  1226. <li><a class="reference" href="#..%3C.t%2Cuntyped%2Cuntyped" title="`..&lt;`(a, b: untyped): untyped">`..&lt;`(a, b: untyped): untyped</a></li>
  1227. </ul>
  1228. <ul class="simple nested-toc-section">..^
  1229. <li><a class="reference" href="#..%5E.t%2Cuntyped%2Cuntyped" title="`..^`(a, b: untyped): untyped">`..^`(a, b: untyped): untyped</a></li>
  1230. </ul>
  1231. <ul class="simple nested-toc-section">=dispose
  1232. <li><a class="reference" href="#%3Ddispose.t" title="`=dispose`[T](x: owned(ref T))">`=dispose`[T](x: owned(ref T))</a></li>
  1233. </ul>
  1234. <ul class="simple nested-toc-section">>
  1235. <li><a class="reference" href="#%3E.t%2Cuntyped%2Cuntyped" title="`&gt;`(x, y: untyped): untyped">`&gt;`(x, y: untyped): untyped</a></li>
  1236. </ul>
  1237. <ul class="simple nested-toc-section">>%
  1238. <li><a class="reference" href="#%3E%25.t%2Cuntyped%2Cuntyped" title="`&gt;%`(x, y: untyped): untyped">`&gt;%`(x, y: untyped): untyped</a></li>
  1239. </ul>
  1240. <ul class="simple nested-toc-section">>=
  1241. <li><a class="reference" href="#%3E%3D.t%2Cuntyped%2Cuntyped" title="`&gt;=`(x, y: untyped): untyped">`&gt;=`(x, y: untyped): untyped</a></li>
  1242. </ul>
  1243. <ul class="simple nested-toc-section">>=%
  1244. <li><a class="reference" href="#%3E%3D%25.t%2Cuntyped%2Cuntyped" title="`&gt;=%`(x, y: untyped): untyped">`&gt;=%`(x, y: untyped): untyped</a></li>
  1245. </ul>
  1246. <ul class="simple nested-toc-section">[]
  1247. <li><a class="reference" href="#%5B%5D.t%2Cstring%2Cint" title="`[]`(s: string; i: int): char">`[]`(s: string; i: int): char</a></li>
  1248. </ul>
  1249. <ul class="simple nested-toc-section">[]=
  1250. <li><a class="reference" href="#%5B%5D%3D.t%2Cstring%2Cint%2Cchar" title="`[]=`(s: string; i: int; val: char)">`[]=`(s: string; i: int; val: char)</a></li>
  1251. </ul>
  1252. <ul class="simple nested-toc-section">^
  1253. <li><a class="reference" href="#%5E.t%2Cint" title="`^`(x: int): BackwardsIndex">`^`(x: int): BackwardsIndex</a></li>
  1254. </ul>
  1255. <ul class="simple nested-toc-section">alloc
  1256. <li><a class="reference" href="#alloc.t%2CNatural" title="alloc(size: Natural): pointer">alloc(size: Natural): pointer</a></li>
  1257. </ul>
  1258. <ul class="simple nested-toc-section">alloc0
  1259. <li><a class="reference" href="#alloc0.t%2CNatural" title="alloc0(size: Natural): pointer">alloc0(size: Natural): pointer</a></li>
  1260. </ul>
  1261. <ul class="simple nested-toc-section">allocShared
  1262. <li><a class="reference" href="#allocShared.t%2CNatural" title="allocShared(size: Natural): pointer">allocShared(size: Natural): pointer</a></li>
  1263. </ul>
  1264. <ul class="simple nested-toc-section">allocShared0
  1265. <li><a class="reference" href="#allocShared0.t%2CNatural" title="allocShared0(size: Natural): pointer">allocShared0(size: Natural): pointer</a></li>
  1266. </ul>
  1267. <ul class="simple nested-toc-section">closureScope
  1268. <li><a class="reference" href="#closureScope.t%2Cuntyped" title="closureScope(body: untyped): untyped">closureScope(body: untyped): untyped</a></li>
  1269. </ul>
  1270. <ul class="simple nested-toc-section">currentSourcePath
  1271. <li><a class="reference" href="#currentSourcePath.t" title="currentSourcePath(): string">currentSourcePath(): string</a></li>
  1272. </ul>
  1273. <ul class="simple nested-toc-section">disarm
  1274. <li><a class="reference" href="#disarm.t%2Ctyped" title="disarm(x: typed)">disarm(x: typed)</a></li>
  1275. </ul>
  1276. <ul class="simple nested-toc-section">dumpAllocstats
  1277. <li><a class="reference" href="#dumpAllocstats.t%2Cuntyped" title="dumpAllocstats(code: untyped)">dumpAllocstats(code: untyped)</a></li>
  1278. </ul>
  1279. <ul class="simple nested-toc-section">excl
  1280. <li><a class="reference" href="#excl.t%2Cset%5BT%5D%2Cset%5BT%5D" title="excl[T](x: var set[T]; y: set[T])">excl[T](x: var set[T]; y: set[T])</a></li>
  1281. </ul>
  1282. <ul class="simple nested-toc-section">formatErrorIndexBound
  1283. <li><a class="reference" href="#formatErrorIndexBound.t%2CT%2CT%2CT" title="formatErrorIndexBound[T](i, a, b: T): string">formatErrorIndexBound[T](i, a, b: T): string</a></li>
  1284. <li><a class="reference" href="#formatErrorIndexBound.t%2CT%2CT" title="formatErrorIndexBound[T](i, n: T): string">formatErrorIndexBound[T](i, n: T): string</a></li>
  1285. </ul>
  1286. <ul class="simple nested-toc-section">formatFieldDefect
  1287. <li><a class="reference" href="#formatFieldDefect.t%2C%2C" title="formatFieldDefect(f, discVal): string">formatFieldDefect(f, discVal): string</a></li>
  1288. </ul>
  1289. <ul class="simple nested-toc-section">in
  1290. <li><a class="reference" href="#in.t%2Cuntyped%2Cuntyped" title="`in`(x, y: untyped): untyped">`in`(x, y: untyped): untyped</a></li>
  1291. </ul>
  1292. <ul class="simple nested-toc-section">incl
  1293. <li><a class="reference" href="#incl.t%2Cset%5BT%5D%2Cset%5BT%5D" title="incl[T](x: var set[T]; y: set[T])">incl[T](x: var set[T]; y: set[T])</a></li>
  1294. </ul>
  1295. <ul class="simple nested-toc-section">isnot
  1296. <li><a class="reference" href="#isnot.t%2Cuntyped%2Cuntyped" title="`isnot`(x, y: untyped): untyped">`isnot`(x, y: untyped): untyped</a></li>
  1297. </ul>
  1298. <ul class="simple nested-toc-section">likely
  1299. <li><a class="reference" href="#likely.t%2Cbool" title="likely(val: bool): bool">likely(val: bool): bool</a></li>
  1300. </ul>
  1301. <ul class="simple nested-toc-section">newException
  1302. <li><a class="reference" href="#newException.t%2Ctypedesc%2Cstring%2Cref.Exception" title="newException(exceptn: typedesc; message: string;
  1303. parentException: ref Exception = nil): untyped">newException(exceptn: typedesc; message: string;
  1304. parentException: ref Exception = nil): untyped</a></li>
  1305. </ul>
  1306. <ul class="simple nested-toc-section">nimThreadProcWrapperBody
  1307. <li><a class="reference" href="#nimThreadProcWrapperBody.t%2Cuntyped" title="nimThreadProcWrapperBody(closure: untyped): untyped">nimThreadProcWrapperBody(closure: untyped): untyped</a></li>
  1308. </ul>
  1309. <ul class="simple nested-toc-section">notin
  1310. <li><a class="reference" href="#notin.t%2Cuntyped%2Cuntyped" title="`notin`(x, y: untyped): untyped">`notin`(x, y: untyped): untyped</a></li>
  1311. </ul>
  1312. <ul class="simple nested-toc-section">offsetOf
  1313. <li><a class="reference" href="#offsetOf.t%2Ctypedesc%5BT%5D%2Cuntyped" title="offsetOf[T](t: typedesc[T]; member: untyped): int">offsetOf[T](t: typedesc[T]; member: untyped): int</a></li>
  1314. <li><a class="reference" href="#offsetOf.t%2CT%2Cuntyped" title="offsetOf[T](value: T; member: untyped): int">offsetOf[T](value: T; member: untyped): int</a></li>
  1315. </ul>
  1316. <ul class="simple nested-toc-section">once
  1317. <li><a class="reference" href="#once.t%2Cuntyped" title="once(body: untyped): untyped">once(body: untyped): untyped</a></li>
  1318. </ul>
  1319. <ul class="simple nested-toc-section">rangeCheck
  1320. <li><a class="reference" href="#rangeCheck.t" title="rangeCheck(cond)">rangeCheck(cond)</a></li>
  1321. </ul>
  1322. <ul class="simple nested-toc-section">realloc
  1323. <li><a class="reference" href="#realloc.t%2Cpointer%2CNatural" title="realloc(p: pointer; newSize: Natural): pointer">realloc(p: pointer; newSize: Natural): pointer</a></li>
  1324. </ul>
  1325. <ul class="simple nested-toc-section">realloc0
  1326. <li><a class="reference" href="#realloc0.t%2Cpointer%2CNatural%2CNatural" title="realloc0(p: pointer; oldSize, newSize: Natural): pointer">realloc0(p: pointer; oldSize, newSize: Natural): pointer</a></li>
  1327. </ul>
  1328. <ul class="simple nested-toc-section">reallocShared
  1329. <li><a class="reference" href="#reallocShared.t%2Cpointer%2CNatural" title="reallocShared(p: pointer; newSize: Natural): pointer">reallocShared(p: pointer; newSize: Natural): pointer</a></li>
  1330. </ul>
  1331. <ul class="simple nested-toc-section">reallocShared0
  1332. <li><a class="reference" href="#reallocShared0.t%2Cpointer%2CNatural%2CNatural" title="reallocShared0(p: pointer; oldSize, newSize: Natural): pointer">reallocShared0(p: pointer; oldSize, newSize: Natural): pointer</a></li>
  1333. </ul>
  1334. <ul class="simple nested-toc-section">setupForeignThreadGc
  1335. <li><a class="reference" href="#setupForeignThreadGc.t" title="setupForeignThreadGc()">setupForeignThreadGc()</a></li>
  1336. </ul>
  1337. <ul class="simple nested-toc-section">tearDownForeignThreadGc
  1338. <li><a class="reference" href="#tearDownForeignThreadGc.t" title="tearDownForeignThreadGc()">tearDownForeignThreadGc()</a></li>
  1339. </ul>
  1340. <ul class="simple nested-toc-section">unlikely
  1341. <li><a class="reference" href="#unlikely.t%2Cbool" title="unlikely(val: bool): bool">unlikely(val: bool): bool</a></li>
  1342. </ul>
  1343. <ul class="simple nested-toc-section">unown
  1344. <li><a class="reference" href="#unown.t%2Ctyped" title="unown(x: typed): untyped">unown(x: typed): untyped</a></li>
  1345. </ul>
  1346. </ul>
  1347. </details>
  1348. </li>
  1349. </ul>
  1350. </div>
  1351. <div class="nine columns" id="content">
  1352. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1353. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1354. <div id="tocRoot"></div>
  1355. <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>
  1356. <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"><span class="Identifier">system</span></span></tt>.</p>
  1357. <h1><a class="toc-backref" id="system-module" href="#system-module">System module</a></h1><p>The System module imports several separate modules, and their documentation is in separate files:</p>
  1358. <ul class="simple"><li><a class="reference external" href="iterators.html">iterators</a></li>
  1359. <li><a class="reference external" href="exceptions.html">exceptions</a></li>
  1360. <li><a class="reference external" href="assertions.html">assertions</a></li>
  1361. <li><a class="reference external" href="dollars.html">dollars</a></li>
  1362. <li><a class="reference external" href="ctypes.html">ctypes</a></li>
  1363. <li><a class="reference external" href="repr_v2.html">repr_v2</a></li>
  1364. </ul>
  1365. <p>Here is a short overview of the most commonly used functions from the <tt class="docutils literal"><span class="pre"><span class="Identifier">system</span></span></tt> module. Function names in the tables below are clickable and will take you to the full documentation of the function.</p>
  1366. <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"><span class="Identifier">Ctrl</span><span class="Operator">+</span><span class="Identifier">F</span></span></tt> to navigate through this module.</p>
  1367. <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>
  1368. <tr><td><a class="reference external" href="#len,string">len(s)</a></td><td>Return the length of a string</td></tr>
  1369. <tr><td><a class="reference external" href="#chr,range[]">chr(i)</a></td><td>Convert an <tt class="docutils literal"><span class="pre"><span class="Identifier">int</span></span></tt> in the range <tt class="docutils literal"><span class="pre"><span class="FloatNumber">0.</span><span class="Operator">.</span><span class="DecNumber">255</span></span></tt> to a character</td></tr>
  1370. <tr><td><a class="reference external" href="#ord,T">ord(c)</a></td><td>Return <tt class="docutils literal"><span class="pre"><span class="Identifier">int</span></span></tt> value of a character</td></tr>
  1371. <tr><td><a class="reference external" href="#&amp;,string,string">a &amp; b</a></td><td>Concatenate two strings</td></tr>
  1372. <tr><td><a class="reference external" href="#add,string,char">s.add(c)</a></td><td>Add character to the string</td></tr>
  1373. <tr><td><a class="reference external" href="dollars.html">$</a></td><td>Convert various types to string</td></tr>
  1374. </table><p><strong>See also:</strong></p>
  1375. <ul class="simple"><li><a class="reference external" href="strutils.html">strutils module</a> for common string functions</li>
  1376. <li><a class="reference external" href="strformat.html">strformat module</a> for string interpolation and formatting</li>
  1377. <li><a class="reference external" href="unicode.html">unicode module</a> for Unicode UTF-8 handling</li>
  1378. <li><a class="reference external" href="strscans.html">strscans</a> for <tt class="docutils literal"><span class="pre"><span class="Identifier">scanf</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">scanp</span></span></tt> macros, which offer easier substring extraction than regular expressions</li>
  1379. <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>
  1380. </ul>
  1381. <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>
  1382. <tr><td><a class="reference external" href="#newSeq">newSeq</a></td><td>Create a new sequence of a given length</td></tr>
  1383. <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>
  1384. <tr><td><a class="reference external" href="#setLen,seq[T],Natural">setLen</a></td><td>Set the length of a sequence</td></tr>
  1385. <tr><td><a class="reference external" href="#len,seq[T]">len</a></td><td>Return the length of a sequence</td></tr>
  1386. <tr><td><a class="reference external" href="#@,openArray[T]">@</a></td><td>Turn an array into a sequence</td></tr>
  1387. <tr><td><a class="reference external" href="#add,seq[T],sinkT">add</a></td><td>Add an item to the sequence</td></tr>
  1388. <tr><td><a class="reference external" href="#insert,seq[T],sinkT">insert</a></td><td>Insert an item at a specific position</td></tr>
  1389. <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"><span class="Identifier">O</span><span class="Punctuation">(</span><span class="Identifier">n</span><span class="Punctuation">)</span></span></tt> operation)</td></tr>
  1390. <tr><td><a class="reference external" href="#del,seq[T],Natural">del</a></td><td><tt class="docutils literal"><span class="pre"><span class="Identifier">O</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">)</span></span></tt> removal, doesn't preserve the order</td></tr>
  1391. <tr><td><a class="reference external" href="#pop,seq[T]">pop</a></td><td>Remove and return last item of a sequence</td></tr>
  1392. <tr><td><a class="reference external" href="#&amp;,seq[T],seq[T]">x &amp; y</a></td><td>Concatenate two sequences</td></tr>
  1393. <tr><td><a class="reference external" href="#[],openArray[T],HSlice[U: Ordinal,V: Ordinal]">x[a .. b]</a></td><td>Slice of a sequence (both ends included)</td></tr>
  1394. <tr><td><a class="reference external" href="#[],openArray[T],HSlice[U: Ordinal,V: Ordinal]">x[a .. ^b]</a></td><td>Slice of a sequence but <tt class="docutils literal"><span class="pre"><span class="Identifier">b</span></span></tt> is a reversed index (both ends included)</td></tr>
  1395. <tr><td><a class="reference external" href="#[],openArray[T],HSlice[U: Ordinal,V: Ordinal]">x[a ..&lt; b]</a></td><td>Slice of a sequence (excluded upper bound)</td></tr>
  1396. </table><p><strong>See also:</strong></p>
  1397. <ul class="simple"><li><a class="reference external" href="sequtils.html">sequtils module</a> for operations on container types (including strings)</li>
  1398. <li><a class="reference external" href="json.html">json module</a> for a structure which allows heterogeneous members</li>
  1399. <li><a class="reference external" href="lists.html">lists module</a> for linked lists</li>
  1400. </ul>
  1401. <h2><a class="toc-backref" id="system-module-sets" href="#system-module-sets">Sets</a></h2><p>Built-in bit sets.</p>
  1402. <table border="1" class="docutils"><tr><th>Proc</th><th>Usage</th></tr>
  1403. <tr><td><a class="reference external" href="#incl,set[T],T">incl</a></td><td>Include element <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> in the set <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt></td></tr>
  1404. <tr><td><a class="reference external" href="#excl,set[T],T">excl</a></td><td>Exclude element <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> from the set <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt></td></tr>
  1405. <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>
  1406. <tr><td><a class="reference external" href="#*,set[T],set[T]">a * b</a></td><td>Intersection</td></tr>
  1407. <tr><td><a class="reference external" href="#+,set[T],set[T]">a + b</a></td><td>Union</td></tr>
  1408. <tr><td><a class="reference external" href="#-,set[T],set[T]">a - b</a></td><td>Difference</td></tr>
  1409. <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>
  1410. <tr><td><a class="reference external" href="#&lt;,set[T],set[T]">a &lt; b</a></td><td>Check if <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt> is a subset of <tt class="docutils literal"><span class="pre"><span class="Identifier">b</span></span></tt></td></tr>
  1411. </table><p><strong>See also:</strong></p>
  1412. <ul class="simple"><li><a class="reference external" href="setutils.html">setutils module</a> for bit set convenience functions</li>
  1413. <li><a class="reference external" href="sets.html">sets module</a> for hash sets</li>
  1414. <li><a class="reference external" href="intsets.html">intsets module</a> for efficient int sets</li>
  1415. </ul>
  1416. <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>
  1417. <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 class="Operator">//</span></span></tt></td></tr>
  1418. <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 class="Operator">%</span></span></tt></td></tr>
  1419. <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 class="Operator">&lt;&lt;</span></span></tt></td></tr>
  1420. <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 class="Operator">&gt;&gt;</span></span></tt></td></tr>
  1421. <tr><td><a class="reference external" href="#ashr,int,SomeInteger">ashr</a></td><td>Arithmetic shift right</td><td></td></tr>
  1422. <tr><td><a class="reference external" href="#and,int,int">and</a></td><td>Bitwise <tt class="docutils literal"><span class="pre"><span class="Keyword">and</span></span></tt></td><td><tt class="docutils literal"><span class="pre"><span class="Operator">&amp;</span></span></tt></td></tr>
  1423. <tr><td><a class="reference external" href="#or,int,int">or</a></td><td>Bitwise <tt class="docutils literal"><span class="pre"><span class="Keyword">or</span></span></tt></td><td><tt class="docutils literal"><span class="pre"><span class="Operator">|</span></span></tt></td></tr>
  1424. <tr><td><a class="reference external" href="#xor,int,int">xor</a></td><td>Bitwise <tt class="docutils literal"><span class="pre"><span class="Keyword">xor</span></span></tt></td><td><tt class="docutils literal"><span class="pre"><span class="Operator">^</span></span></tt></td></tr>
  1425. <tr><td><a class="reference external" href="#not,int">not</a></td><td>Bitwise <tt class="docutils literal"><span class="pre"><span class="Keyword">not</span></span></tt> (complement)</td><td><tt class="docutils literal"><span class="pre"><span class="Operator">~</span></span></tt></td></tr>
  1426. <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"><span class="Identifier">int</span></span></tt></td><td></td></tr>
  1427. <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"><span class="Identifier">float</span></span></tt></td><td></td></tr>
  1428. </table><p><strong>See also:</strong></p>
  1429. <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>
  1430. <li><a class="reference external" href="complex.html">complex module</a> for operations on complex numbers</li>
  1431. <li><a class="reference external" href="rationals.html">rationals module</a> for rational numbers</li>
  1432. </ul>
  1433. <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>
  1434. <table border="1" class="docutils"><tr><th>Proc</th><th>Usage</th></tr>
  1435. <tr><td><a class="reference internal nimdoc" title="proc succ[T, V: Ordinal](x: T; y: V = 1): T" href="#succ,T,V">succ</a></td><td>Successor of the value</td></tr>
  1436. <tr><td><a class="reference internal nimdoc" title="proc pred[T, V: Ordinal](x: T; y: V = 1): T" href="#pred,T,V">pred</a></td><td>Predecessor of the value</td></tr>
  1437. <tr><td><a class="reference internal nimdoc" title="proc inc[T, V: Ordinal](x: var T; y: V = 1)" href="#inc,T,V">inc</a></td><td>Increment the ordinal</td></tr>
  1438. <tr><td><a class="reference internal nimdoc" title="proc dec[T, V: Ordinal](x: var T; y: V = 1)" href="#dec,T,V">dec</a></td><td>Decrement the ordinal</td></tr>
  1439. <tr><td><a class="reference external" href="#high,T">high</a></td><td>Return the highest possible value</td></tr>
  1440. <tr><td><a class="reference external" href="#low,T">low</a></td><td>Return the lowest possible value</td></tr>
  1441. <tr><td><a class="reference external" href="#ord,T">ord</a></td><td>Return <tt class="docutils literal"><span class="pre"><span class="Identifier">int</span></span></tt> value of an ordinal value</td></tr>
  1442. </table>
  1443. <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>
  1444. <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>
  1445. <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"><span class="Keyword">is</span></span></tt></td></tr>
  1446. <tr><td><a class="reference external" href="#!%3D.t,untyped,untyped">!=</a></td><td>Not equals</td></tr>
  1447. <tr><td><a class="reference external" href="#addr,T">addr</a></td><td>Take the address of a memory location</td></tr>
  1448. <tr><td><a class="reference external" href="#and,bool,bool">T and F</a></td><td>Boolean <tt class="docutils literal"><span class="pre"><span class="Keyword">and</span></span></tt></td></tr>
  1449. <tr><td><a class="reference external" href="#or,bool,bool">T or F</a></td><td>Boolean <tt class="docutils literal"><span class="pre"><span class="Keyword">or</span></span></tt></td></tr>
  1450. <tr><td><a class="reference external" href="#xor,bool,bool">T xor F</a></td><td>Boolean <tt class="docutils literal"><span class="pre"><span class="Keyword">xor</span></span></tt> (exclusive or)</td></tr>
  1451. <tr><td><a class="reference external" href="#not,bool">not T</a></td><td>Boolean <tt class="docutils literal"><span class="pre"><span class="Keyword">not</span></span></tt></td></tr>
  1452. <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"><span class="Identifier">x</span></span></tt></td></tr>
  1453. <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"><span class="Punctuation">[</span><span class="Identifier">a</span><span class="Punctuation">,</span> <span class="Identifier">b</span><span class="Punctuation">]</span></span></tt></td></tr>
  1454. <tr><td><a class="reference external" href="#..^.t,untyped,untyped">a ..^ b</a></td><td>Interval <tt class="docutils literal"><span class="pre"><span class="Punctuation">[</span><span class="Identifier">a</span><span class="Punctuation">,</span> <span class="Identifier">b</span><span class="Punctuation">]</span></span></tt> but <tt class="docutils literal"><span class="pre"><span class="Identifier">b</span></span></tt> as reversed index</td></tr>
  1455. <tr><td><a class="reference external" href="#..&lt;.t,untyped,untyped">a ..&lt; b</a></td><td>Interval <tt class="docutils literal"><span class="pre"><span class="Punctuation">[</span><span class="Identifier">a</span><span class="Punctuation">,</span> <span class="Identifier">b</span><span class="Punctuation">)</span></span></tt> (excluded upper bound)</td></tr>
  1456. <tr><td><a class="reference external" href="#runnableExamples,string,untyped">runnableExamples</a></td><td>Create testable documentation</td></tr>
  1457. </table>Default new string implementation used by Nim's core.Default seq implementation used by Nim's core.</p>
  1458. <div class="section" id="6">
  1459. <h1><a class="toc-backref" href="#6">Imports</a></h1>
  1460. <dl class="item">
  1461. <a class="reference external" href="exceptions.html">exceptions</a>, <a class="reference external" href="since.html">since</a>, <a class="reference external" href="ctypes.html">ctypes</a>, <a class="reference external" href="sysatomics.html">sysatomics</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="syslocks.html">syslocks</a>, <a class="reference external" href="threadtypes.html">threadtypes</a>, <a class="reference external" href="iterators.html">iterators</a>, <a class="reference external" href="coro_detection.html">coro_detection</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="countbits_impl.html">countbits_impl</a>, <a class="reference external" href="syslocks.html">syslocks</a>, <a class="reference external" href="sysatomics.html">sysatomics</a>, <a class="reference external" href="digitsutils.html">digitsutils</a>, <a class="reference external" href="digitsutils.html">digitsutils</a>, <a class="reference external" href="repr_v2.html">repr_v2</a>, <a class="reference external" href="assertions.html">assertions</a>
  1462. </dl>
  1463. </div>
  1464. <div class="section" id="7">
  1465. <h1><a class="toc-backref" href="#7">Types</a></h1>
  1466. <dl class="item">
  1467. <div id="AllocStats">
  1468. <dt><pre><a href="system.html#AllocStats"><span class="Identifier">AllocStats</span></a> <span class="Other">=</span> <span class="Keyword">object</span></pre></dt>
  1469. <dd>
  1470. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L67" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1471. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L67" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1472. </dd>
  1473. </div>
  1474. <div id="any">
  1475. <dt><pre><a href="system.html#any"><span class="Identifier">any</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">&quot;Deprecated since v1.5; Use auto instead.&quot;</span></span>.} <span class="Other">=</span> <span class="Keyword">distinct</span> <a href="system.html#auto"><span class="Identifier">auto</span></a></pre></dt>
  1476. <dd>
  1477. <div class="deprecation-message">
  1478. <b>Deprecated:</b> Deprecated since v1.5; Use auto instead.
  1479. </div>
  1480. Deprecated; Use <tt class="docutils literal"><span class="pre"><span class="Identifier">auto</span></span></tt> instead. See <a class="reference external" href="https://github.com/nim-lang/RFCs/issues/281">https://github.com/nim-lang/RFCs/issues/281</a>
  1481. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L38" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1482. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L38" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1483. </dd>
  1484. </div>
  1485. <div id="array">
  1486. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Array&quot;</span>.}</pre></dt>
  1487. <dd>
  1488. Generic type to construct fixed-length arrays.
  1489. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L190" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1490. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L190" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1491. </dd>
  1492. </div>
  1493. <div id="auto">
  1494. <dt><pre><a href="system.html#auto"><span class="Identifier">auto</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Expr</span>.}</pre></dt>
  1495. <dd>
  1496. Meta type for automatic type determination.
  1497. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L37" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1498. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L37" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1499. </dd>
  1500. </div>
  1501. <div id="BackwardsIndex">
  1502. <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>
  1503. <dd>
  1504. Type that is constructed by <tt class="docutils literal"><span class="pre"><span class="Operator">^</span></span></tt> for reversed array accesses. (See <a class="reference external" href="#^.t,int">^ template</a>)
  1505. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indices.nim#L5" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1506. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indices.nim#L5" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1507. </dd>
  1508. </div>
  1509. <div id="bool">
  1510. <dt><pre><a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Bool&quot;</span>.} <span class="Other">=</span> <span class="Keyword">enum</span>
  1511. <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>
  1512. <dd>
  1513. Built-in boolean type.
  1514. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L45" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1515. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L45" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1516. </dd>
  1517. </div>
  1518. <div id="byte">
  1519. <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>
  1520. <dd>
  1521. This is an alias for <tt class="docutils literal"><span class="pre"><span class="Identifier">uint8</span></span></tt>, that is an unsigned integer, 8 bits wide.
  1522. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L486" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1523. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L486" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1524. </dd>
  1525. </div>
  1526. <div id="CatchableError">
  1527. <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>
  1528. <dd>
  1529. Abstract class for all exceptions that are catchable.
  1530. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L555" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1531. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L555" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1532. </dd>
  1533. </div>
  1534. <div id="char">
  1535. <dt><pre><a href="system.html#char"><span class="Identifier">char</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Char</span>.}</pre></dt>
  1536. <dd>
  1537. Built-in 8 bit character type (unsigned).
  1538. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L22" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1539. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L22" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1540. </dd>
  1541. </div>
  1542. <div id="cstring">
  1543. <dt><pre><a href="system.html#cstring"><span class="Identifier">cstring</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Cstring</span>.}</pre></dt>
  1544. <dd>
  1545. Built-in cstring (<em>compatible string</em>) type.
  1546. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L24" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1547. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L24" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1548. </dd>
  1549. </div>
  1550. <div id="Defect">
  1551. <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>
  1552. <dd>
  1553. 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"><span class="Identifier">quit</span></span></tt> / <tt class="docutils literal"><span class="pre"><span class="Identifier">trap</span></span></tt> / <tt class="docutils literal"><span class="pre"><span class="Identifier">exit</span></span></tt> operation.
  1554. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L550" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1555. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L550" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1556. </dd>
  1557. </div>
  1558. <div id="Endianness">
  1559. <dt><pre><a href="system.html#Endianness"><span class="Identifier">Endianness</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
  1560. <span class="Identifier">littleEndian</span><span class="Other">,</span> <span class="Identifier">bigEndian</span></pre></dt>
  1561. <dd>
  1562. Type describing the endianness of a processor.
  1563. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1036" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1564. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1036" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1565. </dd>
  1566. </div>
  1567. <div id="Exception">
  1568. <dt><pre><a href="system.html#Exception"><span class="Identifier">Exception</span></a> {.<span class="Identifier">compilerproc</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Exception&quot;</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>
  1569. <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>
  1570. <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>
  1571. <span class="Comment">## This field is filled automatically in the</span>
  1572. <span class="Comment">## `raise` statement.</span>
  1573. <span class="Identifier">msg</span><span class="Operator">*</span> {.<span class="Identifier">exportc</span><span class="Other">:</span> <span class="StringLit">&quot;message&quot;</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>
  1574. <span class="Comment">## providing an exception message</span>
  1575. <span class="Comment">## is bad style.</span>
  1576. <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>
  1577. <span class="Identifier">trace</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">string</span>
  1578. <span class="Keyword">else</span><span class="Other">:</span>
  1579. <span class="Identifier">trace</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><span class="Identifier">StackTraceEntry</span><span class="Other">]</span></pre></dt>
  1580. <dd>
  1581. <p>
  1582. Base exception class.</p>
  1583. <p>Each exception has to inherit from <tt class="docutils literal"><span class="pre"><span class="Identifier">Exception</span></span></tt>. See the full <a class="reference external" href="manual.html#exception-handling-exception-hierarchy">exception hierarchy</a>.</p>
  1584. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L532" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1585. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L532" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1586. </dd>
  1587. </div>
  1588. <div id="float">
  1589. <dt><pre><a href="system.html#float"><span class="Identifier">float</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Float</span>.}</pre></dt>
  1590. <dd>
  1591. Default floating point type.
  1592. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L15" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1593. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L15" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1594. </dd>
  1595. </div>
  1596. <div id="float32">
  1597. <dt><pre><a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Float32</span>.}</pre></dt>
  1598. <dd>
  1599. 32 bit floating point type.
  1600. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L16" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1601. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L16" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1602. </dd>
  1603. </div>
  1604. <div id="float64">
  1605. <dt><pre><a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Float</span>.}</pre></dt>
  1606. <dd>
  1607. 64 bit floating point type.
  1608. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L17" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1609. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L17" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1610. </dd>
  1611. </div>
  1612. <div id="ForeignCell">
  1613. <dt><pre><a href="system.html#ForeignCell"><span class="Identifier">ForeignCell</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
  1614. <span class="Identifier">data</span><span class="Operator">*</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a></pre></dt>
  1615. <dd>
  1616. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/mmdisp.nim#L115" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1617. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/mmdisp.nim#L115" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1618. </dd>
  1619. </div>
  1620. <div id="ForLoopStmt">
  1621. <dt><pre><a href="system.html#ForLoopStmt"><span class="Identifier">ForLoopStmt</span></a> {.<span class="Identifier">compilerproc</span>.} <span class="Other">=</span> <span class="Keyword">object</span></pre></dt>
  1622. <dd>
  1623. 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">&quot;For Loop Macro&quot;</a>.
  1624. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2524" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1625. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2524" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1626. </dd>
  1627. </div>
  1628. <div id="GC_Strategy">
  1629. <dt><pre><a href="system.html#GC_Strategy"><span class="Identifier">GC_Strategy</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
  1630. <span class="Identifier">gcThroughput</span><span class="Other">,</span> <span class="Comment">## optimize for throughput</span>
  1631. <span class="Identifier">gcResponsiveness</span><span class="Other">,</span> <span class="Comment">## optimize for responsiveness (default)</span>
  1632. <span class="Identifier">gcOptimizeTime</span><span class="Other">,</span> <span class="Comment">## optimize for speed</span>
  1633. <span class="Identifier">gcOptimizeSpace</span> <span class="Comment">## optimize for memory footprint</span></pre></dt>
  1634. <dd>
  1635. The strategy the GC should use for the application.
  1636. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/gc_interface.nim#L10" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1637. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/gc_interface.nim#L10" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1638. </dd>
  1639. </div>
  1640. <div id="HSlice">
  1641. <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>
  1642. <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>
  1643. <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>
  1644. <dd>
  1645. &quot;Heterogeneous&quot; slice type.
  1646. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L423" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1647. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L423" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1648. </dd>
  1649. </div>
  1650. <div id="int">
  1651. <dt><pre><a href="system.html#int"><span class="Identifier">int</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Int</span>.}</pre></dt>
  1652. <dd>
  1653. Default integer type; bitwidth depends on architecture, but is always the same as a pointer.
  1654. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L2" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1655. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L2" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1656. </dd>
  1657. </div>
  1658. <div id="int8">
  1659. <dt><pre><a href="system.html#int8"><span class="Identifier">int8</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Int8</span>.}</pre></dt>
  1660. <dd>
  1661. Signed 8 bit integer type.
  1662. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L4" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1663. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L4" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1664. </dd>
  1665. </div>
  1666. <div id="int16">
  1667. <dt><pre><a href="system.html#int16"><span class="Identifier">int16</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Int16</span>.}</pre></dt>
  1668. <dd>
  1669. Signed 16 bit integer type.
  1670. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L5" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1671. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L5" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1672. </dd>
  1673. </div>
  1674. <div id="int32">
  1675. <dt><pre><a href="system.html#int32"><span class="Identifier">int32</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Int32</span>.}</pre></dt>
  1676. <dd>
  1677. Signed 32 bit integer type.
  1678. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L6" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1679. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L6" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1680. </dd>
  1681. </div>
  1682. <div id="int64">
  1683. <dt><pre><a href="system.html#int64"><span class="Identifier">int64</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Int64</span>.}</pre></dt>
  1684. <dd>
  1685. Signed 64 bit integer type.
  1686. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L7" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1687. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L7" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1688. </dd>
  1689. </div>
  1690. <div id="iterable">
  1691. <dt><pre><a href="system.html#iterable"><span class="Identifier">iterable</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">IterableType</span>.}</pre></dt>
  1692. <dd>
  1693. Represents an expression that yields <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt>
  1694. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L90" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1695. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L90" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1696. </dd>
  1697. </div>
  1698. <div id="JsRoot">
  1699. <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>
  1700. <dd>
  1701. Root type of the JavaScript object hierarchy
  1702. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L566" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1703. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L566" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1704. </dd>
  1705. </div>
  1706. <div id="lent">
  1707. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BuiltinType&quot;</span>.}</pre></dt>
  1708. <dd>
  1709. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L205" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1710. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L205" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1711. </dd>
  1712. </div>
  1713. <div id="Natural">
  1714. <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>
  1715. <dd>
  1716. is an <tt class="docutils literal"><span class="pre"><span class="Identifier">int</span></span></tt> type ranging from zero to the maximum value of an <tt class="docutils literal"><span class="pre"><span class="Identifier">int</span></span></tt>. This type is often useful for documentation and debugging.
  1717. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L489" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1718. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L489" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1719. </dd>
  1720. </div>
  1721. <div id="NimNode">
  1722. <dt><pre><a href="system.html#NimNode"><span class="Identifier">NimNode</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;PNimrodNode&quot;</span>.} <span class="Other">=</span> <span class="Keyword">ref</span> <span class="Identifier">NimNodeObj</span></pre></dt>
  1723. <dd>
  1724. Represents a Nim AST node. Macros operate on this type.
  1725. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2520" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1726. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2520" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1727. </dd>
  1728. </div>
  1729. <div id="NimSeqV2">
  1730. <dt><pre><a href="system.html#NimSeqV2"><span class="Identifier">NimSeqV2</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span class="Other">=</span> <span class="Keyword">object</span></pre></dt>
  1731. <dd>
  1732. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/seqs_v2.nim#L28" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1733. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/seqs_v2.nim#L28" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1734. </dd>
  1735. </div>
  1736. <div id="openArray">
  1737. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;OpenArray&quot;</span>.}</pre></dt>
  1738. <dd>
  1739. Generic type to construct open arrays. Open arrays are implemented as a pointer to the array data and a length field.
  1740. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L192" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1741. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L192" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1742. </dd>
  1743. </div>
  1744. <div id="Ordinal">
  1745. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Ordinal</span>.}</pre></dt>
  1746. <dd>
  1747. Generic ordinal type. Includes integer, bool, character, and enumeration types as well as their subtypes. See also <tt class="docutils literal"><span class="pre"><span class="Identifier">SomeOrdinal</span></span></tt>.
  1748. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L93" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1749. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L93" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1750. </dd>
  1751. </div>
  1752. <div id="owned">
  1753. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BuiltinType&quot;</span>.}</pre></dt>
  1754. <dd>
  1755. type constructor to mark a ref/ptr or a closure as <tt class="docutils literal"><span class="pre"><span class="Identifier">owned</span></span></tt>.
  1756. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L798" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1757. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L798" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1758. </dd>
  1759. </div>
  1760. <div id="PFrame">
  1761. <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>
  1762. <dd>
  1763. Represents a runtime frame of the call stack; part of the debugger API.
  1764. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1724" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1765. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1724" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1766. </dd>
  1767. </div>
  1768. <div id="pointer">
  1769. <dt><pre><a href="system.html#pointer"><span class="Identifier">pointer</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Pointer</span>.}</pre></dt>
  1770. <dd>
  1771. Built-in pointer type, use the <tt class="docutils literal"><span class="pre"><span class="Keyword">addr</span></span></tt> operator to get a pointer to a variable.
  1772. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L25" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1773. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L25" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1774. </dd>
  1775. </div>
  1776. <div id="Positive">
  1777. <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>
  1778. <dd>
  1779. is an <tt class="docutils literal"><span class="pre"><span class="Identifier">int</span></span></tt> type ranging from one to the maximum value of an <tt class="docutils literal"><span class="pre"><span class="Identifier">int</span></span></tt>. This type is often useful for documentation and debugging.
  1780. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L493" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1781. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L493" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1782. </dd>
  1783. </div>
  1784. <div id="ptr">
  1785. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Pointer</span>.}</pre></dt>
  1786. <dd>
  1787. Built-in generic untraced pointer type.
  1788. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L31" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1789. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L31" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1790. </dd>
  1791. </div>
  1792. <div id="range">
  1793. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Range&quot;</span>.}</pre></dt>
  1794. <dd>
  1795. Generic type to construct range types.
  1796. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L189" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1797. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L189" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1798. </dd>
  1799. </div>
  1800. <div id="ref">
  1801. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Pointer</span>.}</pre></dt>
  1802. <dd>
  1803. Built-in generic traced pointer type.
  1804. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L32" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1805. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L32" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1806. </dd>
  1807. </div>
  1808. <div id="RootEffect">
  1809. <dt><pre><a href="system.html#RootEffect"><span class="Identifier">RootEffect</span></a> {.<span class="Identifier">compilerproc</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>
  1810. <dd>
  1811. <p>
  1812. Base effect class.</p>
  1813. <p>Each effect should inherit from <tt class="docutils literal"><span class="pre"><span class="Identifier">RootEffect</span></span></tt> unless you know what you're doing.</p>
  1814. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L508" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1815. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L508" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1816. </dd>
  1817. </div>
  1818. <div id="RootObj">
  1819. <dt><pre><a href="system.html#RootObj"><span class="Identifier">RootObj</span></a> {.<span class="Identifier">compilerproc</span><span class="Other">,</span> <span class="Identifier">inheritable</span>.} <span class="Other">=</span> <span class="Keyword">object</span></pre></dt>
  1820. <dd>
  1821. <p>The root of Nim's object hierarchy.</p>
  1822. <p>Objects should inherit from <tt class="docutils literal"><span class="pre"><span class="Identifier">RootObj</span></span></tt> or one of its descendants. However, objects that have no ancestor are also allowed.</p>
  1823. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L498" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1824. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L498" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1825. </dd>
  1826. </div>
  1827. <div id="RootRef">
  1828. <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>
  1829. <dd>
  1830. Reference to <tt class="docutils literal"><span class="pre"><span class="Identifier">RootObj</span></span></tt>.
  1831. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L503" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1832. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L503" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1833. </dd>
  1834. </div>
  1835. <div id="seq">
  1836. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Seq&quot;</span>.}</pre></dt>
  1837. <dd>
  1838. Generic type to construct sequences.
  1839. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L197" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1840. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L197" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1841. </dd>
  1842. </div>
  1843. <div id="set">
  1844. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Set&quot;</span>.}</pre></dt>
  1845. <dd>
  1846. Generic type to construct bit sets.
  1847. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L198" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1848. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L198" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1849. </dd>
  1850. </div>
  1851. <div id="sink">
  1852. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BuiltinType&quot;</span>.}</pre></dt>
  1853. <dd>
  1854. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L204" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1855. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L204" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1856. </dd>
  1857. </div>
  1858. <div id="Slice">
  1859. <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>
  1860. <dd>
  1861. An alias for <tt class="docutils literal"><span class="pre"><span class="Identifier">HSlice</span><span class="Punctuation">[</span><span class="Identifier">T</span><span class="Punctuation">,</span> <span class="Identifier">T</span><span class="Punctuation">]</span></span></tt>.
  1862. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L426" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1863. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L426" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1864. </dd>
  1865. </div>
  1866. <div id="SomeFloat">
  1867. <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>
  1868. <dd>
  1869. Type class matching all floating point number types.
  1870. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L62" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1871. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L62" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1872. </dd>
  1873. </div>
  1874. <div id="SomeInteger">
  1875. <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>
  1876. <dd>
  1877. Type class matching all integer types.
  1878. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L59" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1879. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L59" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1880. </dd>
  1881. </div>
  1882. <div id="SomeNumber">
  1883. <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>
  1884. <dd>
  1885. Type class matching all number types.
  1886. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L65" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1887. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L65" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1888. </dd>
  1889. </div>
  1890. <div id="SomeOrdinal">
  1891. <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>
  1892. <a href="system.html#uint16"><span class="Identifier">uint16</span></a> <span class="Operator">|</span>
  1893. <a href="system.html#uint32"><span class="Identifier">uint32</span></a> <span class="Operator">|</span>
  1894. <a href="system.html#uint64"><span class="Identifier">uint64</span></a></pre></dt>
  1895. <dd>
  1896. Type class matching all ordinal types; however this includes enums with holes. See also <tt class="docutils literal"><span class="pre"><span class="Identifier">Ordinal</span></span></tt>
  1897. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L68" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1898. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L68" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1899. </dd>
  1900. </div>
  1901. <div id="SomeSignedInt">
  1902. <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>
  1903. <dd>
  1904. Type class matching all signed integer types.
  1905. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L53" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1906. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L53" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1907. </dd>
  1908. </div>
  1909. <div id="SomeUnsignedInt">
  1910. <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>
  1911. <dd>
  1912. Type class matching all unsigned integer types.
  1913. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L56" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1914. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L56" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1915. </dd>
  1916. </div>
  1917. <div id="StackTraceEntry">
  1918. <dt><pre><a href="system.html#StackTraceEntry"><span class="Identifier">StackTraceEntry</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
  1919. <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>
  1920. <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>
  1921. <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>
  1922. <span class="Keyword">when</span> <span class="Identifier">NimStackTraceMsgs</span><span class="Other">:</span>
  1923. <span class="Identifier">frameMsg</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">string</span> <span class="Comment">## When a stacktrace is generated in a given frame and</span>
  1924. <span class="Comment">## rendered at a later time, we should ensure the stacktrace</span>
  1925. <span class="Comment">## data isn't invalidated; any pointer into PFrame is</span>
  1926. <span class="Comment">## subject to being invalidated so shouldn't be stored.</span>
  1927. <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>
  1928. <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>
  1929. <span class="Comment">## when `$` is called on this type. We can't use</span>
  1930. <span class="Comment">## &quot;cuintptr_t&quot; in here.</span>
  1931. <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 alternatives to &quot;procname&quot; and &quot;filename&quot;</span></pre></dt>
  1932. <dd>
  1933. In debug mode exceptions store the stack trace that led to them. A <tt class="docutils literal"><span class="pre"><span class="Identifier">StackTraceEntry</span></span></tt> is a single entry of the stack trace.
  1934. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L515" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1935. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L515" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1936. </dd>
  1937. </div>
  1938. <div id="static">
  1939. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Static&quot;</span>.}</pre></dt>
  1940. <dd>
  1941. <p>Meta type representing all values that can be evaluated at compile-time.</p>
  1942. <p>The type coercion <tt class="docutils literal"><span class="pre"><span class="Keyword">static</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span></span></tt> can be used to force the compile-time evaluation of the given expression <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
  1943. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L40" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1944. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L40" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1945. </dd>
  1946. </div>
  1947. <div id="string">
  1948. <dt><pre><a href="system.html#string"><span class="Identifier">string</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">String</span>.}</pre></dt>
  1949. <dd>
  1950. Built-in string type.
  1951. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L23" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1952. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L23" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1953. </dd>
  1954. </div>
  1955. <div id="TFrame">
  1956. <dt><pre><a href="system.html#TFrame"><span class="Identifier">TFrame</span></a> {.<span class="Identifier">importc</span><span class="Other">,</span> <span class="Identifier">nodecl</span><span class="Other">,</span> <span class="Identifier">final</span>.} <span class="Other">=</span> <span class="Keyword">object</span>
  1957. <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>
  1958. <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>
  1959. <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>
  1960. <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>
  1961. <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>
  1962. <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>
  1963. <span class="Keyword">when</span> <span class="Identifier">NimStackTraceMsgs</span><span class="Other">:</span>
  1964. <span class="Identifier">frameMsgLen</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span> <span class="Comment">## end position in frameMsgBuf for this frame.</span></pre></dt>
  1965. <dd>
  1966. The frame itself.
  1967. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1727" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1968. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1727" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1969. </dd>
  1970. </div>
  1971. <div id="type">
  1972. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Type&quot;</span>.}</pre></dt>
  1973. <dd>
  1974. <p>Meta type representing the type of all type values.</p>
  1975. <p>The coercion <tt class="docutils literal"><span class="pre"><span class="Keyword">type</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span></span></tt> can be used to obtain the type of the given expression <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
  1976. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L46" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1977. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L46" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1978. </dd>
  1979. </div>
  1980. <div id="typed">
  1981. <dt><pre><a href="system.html#typed"><span class="Identifier">typed</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Stmt</span>.}</pre></dt>
  1982. <dd>
  1983. Meta type to denote an expression that is resolved (for templates).
  1984. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L41" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1985. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L41" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1986. </dd>
  1987. </div>
  1988. <div id="typedesc">
  1989. <dt><pre><a href="system.html#typedesc"><span class="Identifier">typedesc</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">TypeDesc</span>.}</pre></dt>
  1990. <dd>
  1991. Meta type to denote a type description.
  1992. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L28" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1993. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L28" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1994. </dd>
  1995. </div>
  1996. <div id="TypeOfMode">
  1997. <dt><pre><a href="system.html#TypeOfMode"><span class="Identifier">TypeOfMode</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
  1998. <span class="Identifier">typeOfProc</span><span class="Other">,</span> <span class="Comment">## Prefer the interpretation that means `x` is a proc call.</span>
  1999. <span class="Identifier">typeOfIter</span> <span class="Comment">## Prefer the interpretation that means `x` is an iterator call.</span></pre></dt>
  2000. <dd>
  2001. Possible modes of <tt class="docutils literal"><span class="pre"><span class="Identifier">typeof</span></span></tt>.
  2002. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L53" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2003. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L53" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2004. </dd>
  2005. </div>
  2006. <div id="uint">
  2007. <dt><pre><a href="system.html#uint"><span class="Identifier">uint</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">UInt</span>.}</pre></dt>
  2008. <dd>
  2009. Unsigned default integer type.
  2010. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L8" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2011. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L8" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2012. </dd>
  2013. </div>
  2014. <div id="uint8">
  2015. <dt><pre><a href="system.html#uint8"><span class="Identifier">uint8</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">UInt8</span>.}</pre></dt>
  2016. <dd>
  2017. Unsigned 8 bit integer type.
  2018. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L9" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2019. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L9" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2020. </dd>
  2021. </div>
  2022. <div id="uint16">
  2023. <dt><pre><a href="system.html#uint16"><span class="Identifier">uint16</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">UInt16</span>.}</pre></dt>
  2024. <dd>
  2025. Unsigned 16 bit integer type.
  2026. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L10" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2027. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L10" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2028. </dd>
  2029. </div>
  2030. <div id="uint32">
  2031. <dt><pre><a href="system.html#uint32"><span class="Identifier">uint32</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">UInt32</span>.}</pre></dt>
  2032. <dd>
  2033. Unsigned 32 bit integer type.
  2034. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L11" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2035. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L11" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2036. </dd>
  2037. </div>
  2038. <div id="uint64">
  2039. <dt><pre><a href="system.html#uint64"><span class="Identifier">uint64</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">UInt64</span>.}</pre></dt>
  2040. <dd>
  2041. Unsigned 64 bit integer type.
  2042. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L12" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2043. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L12" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2044. </dd>
  2045. </div>
  2046. <div id="UncheckedArray">
  2047. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;UncheckedArray&quot;</span>.}</pre></dt>
  2048. <dd>
  2049. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L201" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2050. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L201" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2051. </dd>
  2052. </div>
  2053. <div id="untyped">
  2054. <dt><pre><a href="system.html#untyped"><span class="Identifier">untyped</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="Identifier">Expr</span>.}</pre></dt>
  2055. <dd>
  2056. Meta type to denote an expression that is not resolved (for templates).
  2057. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L39" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2058. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L39" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2059. </dd>
  2060. </div>
  2061. <div id="varargs">
  2062. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Varargs&quot;</span>.}</pre></dt>
  2063. <dd>
  2064. Generic type to construct a varargs type.
  2065. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L196" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2066. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L196" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2067. </dd>
  2068. </div>
  2069. <div id="void">
  2070. <dt><pre><a href="system.html#void"><span class="Identifier">void</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;VoidType&quot;</span>.}</pre></dt>
  2071. <dd>
  2072. Meta type to denote the absence of any type.
  2073. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L36" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2074. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L36" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2075. </dd>
  2076. </div>
  2077. </dl>
  2078. </div>
  2079. <div class="section" id="8">
  2080. <h1><a class="toc-backref" href="#8">Vars</a></h1>
  2081. <dl class="item">
  2082. <div id="errorMessageWriter">
  2083. <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 pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><a href="exceptions.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><span class="Identifier">nimcall</span>.}<span class="Other">)</span></pre></dt>
  2084. <dd>
  2085. Function that will be called instead of <tt class="docutils literal"><span class="pre"><span class="Identifier">stdmsg</span><span class="Operator">.</span><span class="Identifier">write</span></span></tt> when printing stacktrace. Unstable API.
  2086. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/excpt.nim#L19" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2087. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/excpt.nim#L19" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2088. </dd>
  2089. </div>
  2090. <div id="globalRaiseHook">
  2091. <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 class="Identifier">nimcall</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span></span>.}</pre></dt>
  2092. <dd>
  2093. With this hook you can influence exception handling on a global level. If not nil, every 'raise' statement ends up calling this hook.<div class="admonition admonition-warning"><span class="admonition-warning-text"><b>Warning:</b></span>
  2094. Ordinary application code should never set this hook! You better know what you do when setting this.</div>
  2095. <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">globalRaiseHook</span></span></tt> returns false, the exception is caught and does not propagate further through the call stack.</p>
  2096. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1840" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2097. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1840" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2098. </dd>
  2099. </div>
  2100. <div id="localRaiseHook">
  2101. <dt><pre><a href="system.html#localRaiseHook"><span class="Identifier">localRaiseHook</span></a> {.<span class="Identifier">threadvar</span>.}<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 class="Identifier">nimcall</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span></span>.}</pre></dt>
  2102. <dd>
  2103. With this hook you can influence exception handling on a thread local level. If not nil, every 'raise' statement ends up calling this hook.<div class="admonition admonition-warning"><span class="admonition-warning-text"><b>Warning:</b></span>
  2104. Ordinary application code should never set this hook! You better know what you do when setting this.</div>
  2105. <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">localRaiseHook</span></span></tt> returns false, the exception is caught and does not propagate further through the call stack.</p>
  2106. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1849" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2107. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1849" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2108. </dd>
  2109. </div>
  2110. <div id="nimThreadDestructionHandlers">
  2111. <dt><pre><a href="system.html#nimThreadDestructionHandlers"><span class="Identifier">nimThreadDestructionHandlers</span></a> {.<span class="Identifier">threadvar</span>.}<span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span>
  2112. <span class="Keyword">proc</span> <span class="Other">(</span><span class="Other">)</span> {.<span class="Identifier">closure</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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></pre></dt>
  2113. <dd>
  2114. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/threadimpl.nim#L2" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2115. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/threadimpl.nim#L2" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2116. </dd>
  2117. </div>
  2118. <div id="onUnhandledException">
  2119. <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 class="Identifier">nimcall</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span></span>.}<span class="Other">)</span></pre></dt>
  2120. <dd>
  2121. <p>Set this error
  2122. handler to override the existing behaviour on an unhandled exception.</p>
  2123. <p>The default is to write a stacktrace to <tt class="docutils literal"><span class="pre"><span class="Identifier">stderr</span></span></tt> and then call <tt class="docutils literal"><span class="pre"><span class="Identifier">quit</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">)</span></span></tt>. Unstable API.</p>
  2124. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/excpt.nim#L370" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2125. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/excpt.nim#L370" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2126. </dd>
  2127. </div>
  2128. <div id="outOfMemHook">
  2129. <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 class="Identifier">nimcall</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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>.}</pre></dt>
  2130. <dd>
  2131. <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>
  2132. <p><tt class="docutils literal"><span class="pre"><span class="Identifier">outOfMemHook</span></span></tt> can be used to raise an exception in case of OOM like so:</p>
  2133. <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>
  2134. <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>
  2135. <span class="Identifier">gOutOfMem</span><span class="Operator">.</span><span class="Identifier">msg</span> <span class="Operator">=</span> <span class="StringLit">&quot;out of memory&quot;</span>
  2136. <span class="Keyword">proc</span> <span class="Identifier">handleOOM</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Operator">=</span>
  2137. <span class="Keyword">raise</span> <span class="Identifier">gOutOfMem</span>
  2138. <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>
  2139. <p>If the handler does not raise an exception, ordinary control flow continues and the program is terminated.</p>
  2140. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1859" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2141. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1859" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2142. </dd>
  2143. </div>
  2144. <div id="programResult">
  2145. <dt><pre><a href="system.html#programResult"><span class="Identifier">programResult</span></a> {.<span class="Identifier">compilerproc</span><span class="Other">,</span> <span class="Identifier">exportc</span><span class="Other">:</span> <span class="StringLit">&quot;nim_program_result&quot;</span>.}<span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a></pre></dt>
  2146. <dd>
  2147. deprecated, prefer <tt class="docutils literal"><span class="pre"><span class="Identifier">quit</span></span></tt> or <tt class="docutils literal"><span class="pre"><span class="Identifier">exitprocs</span><span class="Operator">.</span><span class="Identifier">getProgramResult</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">exitprocs</span><span class="Operator">.</span><span class="Identifier">setProgramResult</span></span></tt>.
  2148. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1114" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2149. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1114" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2150. </dd>
  2151. </div>
  2152. <div id="unhandledExceptionHook">
  2153. <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 class="Identifier">nimcall</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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>
  2154. <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2155. <dd>
  2156. Set this variable to provide a procedure that should be called in case of an <tt class="docutils literal"><span class="pre"><span class="Identifier">unhandle</span> <span class="Identifier">exception</span></span></tt> event. The standard handler writes an error message and terminates the program, except when using <tt class="docutils literal"><span class="pre"><span class="Operator">--</span><span class="Identifier">os</span><span class="Punctuation">:</span><span class="Identifier">any</span></span></tt>
  2157. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1879" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2158. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1879" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2159. </dd>
  2160. </div>
  2161. </dl>
  2162. </div>
  2163. <div class="section" id="9">
  2164. <h1><a class="toc-backref" href="#9">Lets</a></h1>
  2165. <dl class="item">
  2166. <div id="nimvm">
  2167. <dt><pre><a href="system.html#nimvm"><span class="Identifier">nimvm</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Nimvm&quot;</span><span class="Other">,</span> <span class="Identifier">compileTime</span>.}<span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span class="Other">=</span> <span class="Identifier">false</span></pre></dt>
  2168. <dd>
  2169. May be used only in <tt class="docutils literal"><span class="pre"><span class="Keyword">when</span></span></tt> expression. It is true in Nim VM context and false otherwise.
  2170. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/compilation.nim#L18" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2171. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/compilation.nim#L18" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2172. </dd>
  2173. </div>
  2174. </dl>
  2175. </div>
  2176. <div class="section" id="10">
  2177. <h1><a class="toc-backref" href="#10">Consts</a></h1>
  2178. <dl class="item">
  2179. <div id="appType">
  2180. <dt><pre><a href="system.html#appType"><span class="Identifier">appType</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AppType&quot;</span>.}<span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span class="Other">=</span> <span class="StringLit">&quot;&quot;</span></pre></dt>
  2181. <dd>
  2182. A string that describes the application type. Possible values: <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;console&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;gui&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;lib&quot;</span></span></tt>.
  2183. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L458" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2184. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L458" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2185. </dd>
  2186. </div>
  2187. <div id="CompileDate">
  2188. <dt><pre><a href="system.html#CompileDate"><span class="Identifier">CompileDate</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;CompileDate&quot;</span>.}<span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span class="Other">=</span> <span class="StringLit">&quot;0000-00-00&quot;</span></pre></dt>
  2189. <dd>
  2190. The date (in UTC) of compilation as a string of the form <tt class="docutils literal"><span class="pre"><span class="Identifier">YYYY</span><span class="Operator">-</span><span class="Identifier">MM</span><span class="Operator">-</span><span class="Identifier">DD</span></span></tt>. This works thanks to compiler magic.
  2191. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/compilation.nim#L28" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2192. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/compilation.nim#L28" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2193. </dd>
  2194. </div>
  2195. <div id="CompileTime">
  2196. <dt><pre><a href="system.html#CompileTime"><span class="Identifier">CompileTime</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;CompileTime&quot;</span>.}<span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span class="Other">=</span> <span class="StringLit">&quot;00:00:00&quot;</span></pre></dt>
  2197. <dd>
  2198. The time (in UTC) of compilation as a string of the form <tt class="docutils literal"><span class="pre"><span class="Identifier">HH</span><span class="Punctuation">:</span><span class="Identifier">MM</span><span class="Punctuation">:</span><span class="Identifier">SS</span></span></tt>. This works thanks to compiler magic.
  2199. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/compilation.nim#L32" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2200. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/compilation.nim#L32" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2201. </dd>
  2202. </div>
  2203. <div id="cpuEndian">
  2204. <dt><pre><a href="system.html#cpuEndian"><span class="Identifier">cpuEndian</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;CpuEndian&quot;</span>.}<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>
  2205. <dd>
  2206. The endianness of the target CPU. This is a valuable piece of information for low-level code only. This works thanks to compiler magic.
  2207. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1040" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2208. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1040" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2209. </dd>
  2210. </div>
  2211. <div id="hostCPU">
  2212. <dt><pre><a href="system.html#hostCPU"><span class="Identifier">hostCPU</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;HostCPU&quot;</span>.}<span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span class="Other">=</span> <span class="StringLit">&quot;&quot;</span></pre></dt>
  2213. <dd>
  2214. <p>A string that describes the host CPU.</p>
  2215. <p>Possible values: <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;i386&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;alpha&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;powerpc&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;powerpc64&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;powerpc64el&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;sparc&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;amd64&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;mips&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;mipsel&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;arm&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;arm64&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;mips64&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;mips64el&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;riscv32&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;riscv64&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;loongarch64&quot;</span></span></tt>.</p>
  2216. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1052" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2217. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1052" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2218. </dd>
  2219. </div>
  2220. <div id="hostOS">
  2221. <dt><pre><a href="system.html#hostOS"><span class="Identifier">hostOS</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;HostOS&quot;</span>.}<span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span class="Other">=</span> <span class="StringLit">&quot;&quot;</span></pre></dt>
  2222. <dd>
  2223. <p>A string that describes the host operating system.</p>
  2224. <p>Possible values: <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;windows&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;macosx&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;linux&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;netbsd&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;freebsd&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;openbsd&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;solaris&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;aix&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;haiku&quot;</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;standalone&quot;</span></span></tt>.</p>
  2225. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1045" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2226. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1045" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2227. </dd>
  2228. </div>
  2229. <div id="Inf">
  2230. <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>
  2231. <dd>
  2232. Contains the IEEE floating point value of positive infinity.
  2233. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1277" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2234. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1277" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2235. </dd>
  2236. </div>
  2237. <div id="isMainModule">
  2238. <dt><pre><a href="system.html#isMainModule"><span class="Identifier">isMainModule</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;IsMainModule&quot;</span>.}<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>
  2239. <dd>
  2240. True only when accessed in the main module. This works thanks to compiler magic. It is useful to embed testing code in a module.
  2241. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/compilation.nim#L24" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2242. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/compilation.nim#L24" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2243. </dd>
  2244. </div>
  2245. <div id="NaN">
  2246. <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>
  2247. <dd>
  2248. <p>Contains an IEEE floating point value of <em>Not A Number</em>.</p>
  2249. <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"><span class="Identifier">isNaN</span></span></tt> or <tt class="docutils literal"><span class="pre"><span class="Identifier">classify</span></span></tt> procedure in the <a class="reference external" href="math.html">math module</a> for checking for NaN.</p>
  2250. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1281" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2251. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1281" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2252. </dd>
  2253. </div>
  2254. <div id="NegInf">
  2255. <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>
  2256. <dd>
  2257. Contains the IEEE floating point value of negative infinity.
  2258. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1279" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2259. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1279" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2260. </dd>
  2261. </div>
  2262. <div id="NimMajor">
  2263. <dt><pre><a href="system.html#NimMajor"><span class="Identifier">NimMajor</span></a> {.<span class="Identifier">intdefine</span>.}<span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Other">=</span> <span class="DecNumber">2</span></pre></dt>
  2264. <dd>
  2265. <p>is the major number of Nim's version. Example:</p>
  2266. <p><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">&gt;=</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></p>
  2267. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/compilation.nim#L2" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2268. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/compilation.nim#L2" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2269. </dd>
  2270. </div>
  2271. <div id="NimMinor">
  2272. <dt><pre><a href="system.html#NimMinor"><span class="Identifier">NimMinor</span></a> {.<span class="Identifier">intdefine</span>.}<span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Other">=</span> <span class="DecNumber">3</span></pre></dt>
  2273. <dd>
  2274. is the minor number of Nim's version. Odd for devel, even for releases.
  2275. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/compilation.nim#L9" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2276. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/compilation.nim#L9" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2277. </dd>
  2278. </div>
  2279. <div id="NimPatch">
  2280. <dt><pre><a href="system.html#NimPatch"><span class="Identifier">NimPatch</span></a> {.<span class="Identifier">intdefine</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></pre></dt>
  2281. <dd>
  2282. is the patch number of Nim's version. Odd for devel, even for releases.
  2283. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/compilation.nim#L13" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2284. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/compilation.nim#L13" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2285. </dd>
  2286. </div>
  2287. <div id="NimVersion">
  2288. <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">&quot;2.3.1&quot;</span></pre></dt>
  2289. <dd>
  2290. is the version of Nim as a string.
  2291. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2049" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2292. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2049" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2293. </dd>
  2294. </div>
  2295. <div id="off">
  2296. <dt><pre><a href="system.html#off"><span class="Identifier">off</span></a> <span class="Other">=</span> <span class="DecNumber">false</span></pre></dt>
  2297. <dd>
  2298. Alias for <tt class="docutils literal"><span class="pre"><span class="Identifier">false</span></span></tt>.
  2299. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L50" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2300. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L50" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2301. </dd>
  2302. </div>
  2303. <div id="on">
  2304. <dt><pre><a href="system.html#on"><span class="Identifier">on</span></a> <span class="Other">=</span> <span class="DecNumber">true</span></pre></dt>
  2305. <dd>
  2306. Alias for <tt class="docutils literal"><span class="pre"><span class="Identifier">true</span></span></tt>.
  2307. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L49" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2308. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L49" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2309. </dd>
  2310. </div>
  2311. <div id="QuitFailure">
  2312. <dt><pre><a href="system.html#QuitFailure"><span class="Identifier">QuitFailure</span></a> <span class="Other">=</span> <span class="DecNumber">1</span></pre></dt>
  2313. <dd>
  2314. is the value that should be passed to <a class="reference external" href="#quit,int">quit</a> to indicate failure.
  2315. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1109" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2316. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1109" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2317. </dd>
  2318. </div>
  2319. <div id="QuitSuccess">
  2320. <dt><pre><a href="system.html#QuitSuccess"><span class="Identifier">QuitSuccess</span></a> <span class="Other">=</span> <span class="DecNumber">0</span></pre></dt>
  2321. <dd>
  2322. is the value that should be passed to <a class="reference external" href="#quit,int">quit</a> to indicate success.
  2323. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1105" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2324. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1105" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2325. </dd>
  2326. </div>
  2327. </dl>
  2328. </div>
  2329. <div class="section" id="12">
  2330. <h1><a class="toc-backref" href="#12">Procs</a></h1>
  2331. <dl class="item">
  2332. <div id="%%-procs-all">
  2333. <div id="%%,int,int">
  2334. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2335. <dd>
  2336. <p>Treats <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> as unsigned and compute the modulo of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.</p>
  2337. <p>The result is truncated to fit into the result. This implements modulo arithmetic. No overflow errors are possible.</p>
  2338. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L396" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2339. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L396" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2340. </dd>
  2341. </div>
  2342. <div id="%%,int8,int8">
  2343. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2344. <dd>
  2345. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L402" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2346. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L402" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2347. </dd>
  2348. </div>
  2349. <div id="%%,int16,int16">
  2350. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2351. <dd>
  2352. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L403" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2353. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L403" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2354. </dd>
  2355. </div>
  2356. <div id="%%,int32,int32">
  2357. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2358. <dd>
  2359. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L404" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2360. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L404" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2361. </dd>
  2362. </div>
  2363. <div id="%%,int64,int64">
  2364. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2365. <dd>
  2366. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L405" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2367. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L405" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2368. </dd>
  2369. </div>
  2370. </div>
  2371. <div id="&amp;-procs-all">
  2372. <div id="&,char,char">
  2373. <dt><pre><span class="Keyword">proc</span> <a href="#%26%2Cchar%2Cchar"><span class="Identifier">`&amp;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ConStrStr&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2374. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2375. <dd>
  2376. <p>Concatenates characters <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> into a string.</p>
  2377. <p><pre class="listing"><span class="Identifier">assert</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">' &amp; '</span><span class="Identifier">b</span><span class="CharLit">' == &quot;ab&quot;)</span></pre></p>
  2378. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L994" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2379. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L994" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2380. </dd>
  2381. </div>
  2382. <div id="&,string,string">
  2383. <dt><pre><span class="Keyword">proc</span> <a href="#%26%2Cstring%2Cstring"><span class="Identifier">`&amp;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ConStrStr&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2384. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2385. <dd>
  2386. <p>Concatenates strings <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.</p>
  2387. <p><pre class="listing"><span class="Identifier">assert</span><span class="Punctuation">(</span><span class="StringLit">&quot;ab&quot;</span> <span class="Operator">&amp;</span> <span class="StringLit">&quot;cd&quot;</span> <span class="Operator">==</span> <span class="StringLit">&quot;abcd&quot;</span><span class="Punctuation">)</span></pre></p>
  2388. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1000" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2389. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1000" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2390. </dd>
  2391. </div>
  2392. <div id="&,char,string">
  2393. <dt><pre><span class="Keyword">proc</span> <a href="#%26%2Cchar%2Cstring"><span class="Identifier">`&amp;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ConStrStr&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  2394. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2395. <dd>
  2396. <p>Concatenates <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> with <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.</p>
  2397. <p><pre class="listing"><span class="Identifier">assert</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">' &amp; &quot;bc&quot; == &quot;abc&quot;)</span></pre></p>
  2398. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1006" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2399. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1006" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2400. </dd>
  2401. </div>
  2402. <div id="&,string,char">
  2403. <dt><pre><span class="Keyword">proc</span> <a href="#%26%2Cstring%2Cchar"><span class="Identifier">`&amp;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ConStrStr&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  2404. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2405. <dd>
  2406. <p>Concatenates <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> with <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.</p>
  2407. <p><pre class="listing"><span class="Identifier">assert</span><span class="Punctuation">(</span><span class="StringLit">&quot;ab&quot;</span> <span class="Operator">&amp;</span> <span class="CharLit">'c'</span> <span class="Operator">==</span> <span class="StringLit">&quot;abc&quot;</span><span class="Punctuation">)</span></pre></p>
  2408. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L988" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2409. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L988" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2410. </dd>
  2411. </div>
  2412. <div id="&,sinkseq[T],sinkseq[T]">
  2413. <dt><pre><span class="Keyword">proc</span> <a href="#%26%2Csinkseq%5BT%5D%2Csinkseq%5BT%5D"><span class="Identifier">`&amp;`</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#sink"><span class="Identifier">sink</span></a> <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 class="Identifier">noSideEffect</span>.}</pre></dt>
  2414. <dd>
  2415. <p>Concatenates two sequences.</p>
  2416. <p>Requires copying of the sequences.</p>
  2417. <p><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">&amp;</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></p>
  2418. <p>See also:</p>
  2419. <ul class="simple"><li><a class="reference external" href="#add,seq[T],openArray[T]">add(var seq[T], openArray[T])</a></li>
  2420. </ul>
  2421. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1475" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2422. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1475" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2423. </dd>
  2424. </div>
  2425. <div id="&,sinkseq[T],sinkT">
  2426. <dt><pre><span class="Keyword">proc</span> <a href="#%26%2Csinkseq%5BT%5D%2CsinkT"><span class="Identifier">`&amp;`</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#sink"><span class="Identifier">sink</span></a> <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 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="Identifier">noSideEffect</span>.}</pre></dt>
  2427. <dd>
  2428. <p>Appends element y to the end of the sequence.</p>
  2429. <p>Requires copying of the sequence.</p>
  2430. <p><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">&amp;</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></p>
  2431. <p>See also:</p>
  2432. <ul class="simple"><li><a class="reference external" href="#add,seq[T],sinkT">add(var seq[T], T)</a></li>
  2433. </ul>
  2434. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1491" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2435. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1491" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2436. </dd>
  2437. </div>
  2438. <div id="&,sinkT,sinkseq[T]">
  2439. <dt><pre><span class="Keyword">proc</span> <a href="#%26%2CsinkT%2Csinkseq%5BT%5D"><span class="Identifier">`&amp;`</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#sink"><span class="Identifier">sink</span></a> <span class="Identifier">T</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> <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 class="Identifier">noSideEffect</span>.}</pre></dt>
  2440. <dd>
  2441. <p>Prepends the element x to the beginning of the sequence.</p>
  2442. <p>Requires copying of the sequence.</p>
  2443. <p><pre class="listing"><span class="Identifier">assert</span><span class="Punctuation">(</span><span class="DecNumber">1</span> <span class="Operator">&amp;</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></p>
  2444. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1506" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2445. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1506" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2446. </dd>
  2447. </div>
  2448. </div>
  2449. <div id="&amp;=-procs-all">
  2450. <div id="&=,string,string">
  2451. <dt><pre><span class="Keyword">proc</span> <a href="#%26%3D%2Cstring%2Cstring"><span class="Identifier">`&amp;=`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AppendStrStr&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  2452. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2453. <dd>
  2454. <p>Appends in place to a string.</p>
  2455. <p><pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;abc&quot;</span>
  2456. <span class="Identifier">a</span> <span class="Operator">&amp;=</span> <span class="StringLit">&quot;de&quot;</span> <span class="Comment"># a &lt;- &quot;abcde&quot;</span></pre></p>
  2457. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2469" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2458. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2469" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2459. </dd>
  2460. </div>
  2461. </div>
  2462. <div id="*-procs-all">
  2463. <div id="*,float,float">
  2464. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MulF64&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2465. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2466. <dd>
  2467. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L324" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2468. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L324" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2469. </dd>
  2470. </div>
  2471. <div id="*,float32,float32">
  2472. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MulF64&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2473. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2474. <dd>
  2475. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L317" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2476. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L317" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2477. </dd>
  2478. </div>
  2479. <div id="*,int,int">
  2480. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MulI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  2481. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2482. <dd>
  2483. Binary <tt class="docutils literal"><span class="pre"><span class="Operator">*</span></span></tt> operator for an integer.
  2484. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L89" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2485. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L89" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2486. </dd>
  2487. </div>
  2488. <div id="*,int8,int8">
  2489. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MulI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  2490. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2491. <dd>
  2492. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L91" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2493. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L91" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2494. </dd>
  2495. </div>
  2496. <div id="*,int16,int16">
  2497. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MulI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2498. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2499. <dd>
  2500. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L92" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2501. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L92" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2502. </dd>
  2503. </div>
  2504. <div id="*,int32,int32">
  2505. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MulI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2506. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2507. <dd>
  2508. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L93" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2509. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L93" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2510. </dd>
  2511. </div>
  2512. <div id="*,int64,int64">
  2513. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MulI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2514. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2515. <dd>
  2516. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L94" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2517. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L94" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2518. </dd>
  2519. </div>
  2520. <div id="*,uint,uint">
  2521. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MulU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  2522. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2523. <dd>
  2524. Binary <tt class="docutils literal"><span class="pre"><span class="Operator">*</span></span></tt> operator for unsigned integers.
  2525. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L276" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2526. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L276" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2527. </dd>
  2528. </div>
  2529. <div id="*,uint8,uint8">
  2530. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MulU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2531. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2532. <dd>
  2533. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L278" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2534. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L278" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2535. </dd>
  2536. </div>
  2537. <div id="*,uint16,uint16">
  2538. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MulU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2539. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2540. <dd>
  2541. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L279" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2542. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L279" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2543. </dd>
  2544. </div>
  2545. <div id="*,uint32,uint32">
  2546. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MulU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2547. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2548. <dd>
  2549. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L280" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2550. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L280" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2551. </dd>
  2552. </div>
  2553. <div id="*,uint64,uint64">
  2554. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MulU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2555. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2556. <dd>
  2557. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L281" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2558. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L281" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2559. </dd>
  2560. </div>
  2561. <div id="*,set[T],set[T]">
  2562. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MulSet&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  2563. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2564. <dd>
  2565. This operator computes the intersection of two sets.
  2566. <p><strong class="examples_text">Example:</strong></p>
  2567. <pre class="listing"><span class="Identifier">assert</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="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="Punctuation">{</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">}</span></pre>
  2568. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/setops.nim#L55" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2569. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/setops.nim#L55" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2570. </dd>
  2571. </div>
  2572. </div>
  2573. <div id="*%-procs-all">
  2574. <div id="*%,int,int">
  2575. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2576. <dd>
  2577. <p>Treats <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> as unsigned and multiplies them.</p>
  2578. <p>The result is truncated to fit into the result. This implements modulo arithmetic. No overflow errors are possible.</p>
  2579. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L374" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2580. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L374" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2581. </dd>
  2582. </div>
  2583. <div id="*%,int8,int8">
  2584. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2585. <dd>
  2586. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L380" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2587. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L380" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2588. </dd>
  2589. </div>
  2590. <div id="*%,int16,int16">
  2591. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2592. <dd>
  2593. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L381" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2594. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L381" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2595. </dd>
  2596. </div>
  2597. <div id="*%,int32,int32">
  2598. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2599. <dd>
  2600. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L382" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2601. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L382" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2602. </dd>
  2603. </div>
  2604. <div id="*%,int64,int64">
  2605. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2606. <dd>
  2607. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L383" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2608. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L383" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2609. </dd>
  2610. </div>
  2611. </div>
  2612. <div id="*=-procs-all">
  2613. <div id="*=,T,T_2">
  2614. <dt><pre><span class="Keyword">proc</span> <a href="#%2A%3D%2CT%2CT_2"><span class="Identifier">`*=`</span></a><span class="Other">[</span><span class="Identifier">T</span><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><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 class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span>.}</pre></dt>
  2615. <dd>
  2616. Multiplies in place a floating point number.
  2617. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L337" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2618. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L337" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2619. </dd>
  2620. </div>
  2621. <div id="*=,T,T">
  2622. <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 class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span>.}</pre></dt>
  2623. <dd>
  2624. Binary <tt class="docutils literal"><span class="pre"><span class="Operator">*=</span></span></tt> operator for integers.
  2625. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L307" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2626. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L307" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2627. </dd>
  2628. </div>
  2629. </div>
  2630. <div id="+-procs-all">
  2631. <div id="+,float,float">
  2632. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AddF64&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2633. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2634. <dd>
  2635. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L322" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2636. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L322" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2637. </dd>
  2638. </div>
  2639. <div id="+,float32,float32">
  2640. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AddF64&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2641. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2642. <dd>
  2643. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L315" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2644. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L315" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2645. </dd>
  2646. </div>
  2647. <div id="+,int,int">
  2648. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AddI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  2649. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2650. <dd>
  2651. Binary <tt class="docutils literal"><span class="pre"><span class="Operator">+</span></span></tt> operator for an integer.
  2652. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L75" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2653. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L75" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2654. </dd>
  2655. </div>
  2656. <div id="+,int8,int8">
  2657. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AddI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  2658. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2659. <dd>
  2660. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L77" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2661. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L77" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2662. </dd>
  2663. </div>
  2664. <div id="+,int16,int16">
  2665. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AddI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2666. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2667. <dd>
  2668. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L78" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2669. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L78" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2670. </dd>
  2671. </div>
  2672. <div id="+,int32,int32">
  2673. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AddI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2674. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2675. <dd>
  2676. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L79" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2677. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L79" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2678. </dd>
  2679. </div>
  2680. <div id="+,int64,int64">
  2681. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AddI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2682. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2683. <dd>
  2684. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L80" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2685. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L80" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2686. </dd>
  2687. </div>
  2688. <div id="+,uint,uint">
  2689. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AddU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  2690. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2691. <dd>
  2692. Binary <tt class="docutils literal"><span class="pre"><span class="Operator">+</span></span></tt> operator for unsigned integers.
  2693. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L262" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2694. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L262" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2695. </dd>
  2696. </div>
  2697. <div id="+,uint8,uint8">
  2698. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AddU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2699. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2700. <dd>
  2701. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L264" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2702. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L264" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2703. </dd>
  2704. </div>
  2705. <div id="+,uint16,uint16">
  2706. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AddU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2707. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2708. <dd>
  2709. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L265" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2710. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L265" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2711. </dd>
  2712. </div>
  2713. <div id="+,uint32,uint32">
  2714. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AddU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2715. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2716. <dd>
  2717. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L266" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2718. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L266" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2719. </dd>
  2720. </div>
  2721. <div id="+,uint64,uint64">
  2722. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AddU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2723. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2724. <dd>
  2725. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L267" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2726. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L267" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2727. </dd>
  2728. </div>
  2729. <div id="+,float">
  2730. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;UnaryPlusF64&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2731. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2732. <dd>
  2733. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L320" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2734. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L320" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2735. </dd>
  2736. </div>
  2737. <div id="+,float32">
  2738. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;UnaryPlusF64&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2739. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2740. <dd>
  2741. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L313" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2742. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L313" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2743. </dd>
  2744. </div>
  2745. <div id="+,int">
  2746. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;UnaryPlusI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  2747. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2748. <dd>
  2749. Unary <tt class="docutils literal"><span class="pre"><span class="Operator">+</span></span></tt> operator for an integer. Has no effect.
  2750. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L49" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2751. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L49" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2752. </dd>
  2753. </div>
  2754. <div id="+,int8">
  2755. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;UnaryPlusI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2756. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2757. <dd>
  2758. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L51" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2759. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L51" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2760. </dd>
  2761. </div>
  2762. <div id="+,int16">
  2763. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;UnaryPlusI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2764. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2765. <dd>
  2766. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L52" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2767. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L52" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2768. </dd>
  2769. </div>
  2770. <div id="+,int32">
  2771. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;UnaryPlusI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2772. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2773. <dd>
  2774. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L53" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2775. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L53" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2776. </dd>
  2777. </div>
  2778. <div id="+,int64">
  2779. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;UnaryPlusI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2780. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2781. <dd>
  2782. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L54" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2783. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L54" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2784. </dd>
  2785. </div>
  2786. <div id="+,set[T],set[T]">
  2787. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;PlusSet&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  2788. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2789. <dd>
  2790. This operator computes the union of two sets.
  2791. <p><strong class="examples_text">Example:</strong></p>
  2792. <pre class="listing"><span class="Identifier">assert</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="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="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></pre>
  2793. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/setops.nim#L60" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2794. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/setops.nim#L60" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2795. </dd>
  2796. </div>
  2797. </div>
  2798. <div id="+%-procs-all">
  2799. <div id="+%,int,int">
  2800. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2801. <dd>
  2802. <p>Treats <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> as unsigned and adds them.</p>
  2803. <p>The result is truncated to fit into the result. This implements modulo arithmetic. No overflow errors are possible.</p>
  2804. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L352" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2805. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L352" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2806. </dd>
  2807. </div>
  2808. <div id="+%,int8,int8">
  2809. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2810. <dd>
  2811. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L358" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2812. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L358" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2813. </dd>
  2814. </div>
  2815. <div id="+%,int16,int16">
  2816. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2817. <dd>
  2818. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L359" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2819. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L359" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2820. </dd>
  2821. </div>
  2822. <div id="+%,int32,int32">
  2823. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2824. <dd>
  2825. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L360" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2826. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L360" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2827. </dd>
  2828. </div>
  2829. <div id="+%,int64,int64">
  2830. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2831. <dd>
  2832. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L361" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2833. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L361" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2834. </dd>
  2835. </div>
  2836. </div>
  2837. <div id="+=-procs-all">
  2838. <div id="+=,T,T_2">
  2839. <dt><pre><span class="Keyword">proc</span> <a href="#%2B%3D%2CT%2CT_2"><span class="Identifier">`+=`</span></a><span class="Other">[</span><span class="Identifier">T</span><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><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 class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span>.}</pre></dt>
  2840. <dd>
  2841. Increments in place a floating point number.
  2842. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L327" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2843. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L327" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2844. </dd>
  2845. </div>
  2846. <div id="+=,T,T">
  2847. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Inc&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  2848. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2849. <dd>
  2850. Increments an integer.
  2851. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L299" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2852. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L299" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2853. </dd>
  2854. </div>
  2855. </div>
  2856. <div id="--procs-all">
  2857. <div id="-,AllocStats,AllocStats">
  2858. <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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2859. <dd>
  2860. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L71" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2861. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L71" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2862. </dd>
  2863. </div>
  2864. <div id="-,float,float">
  2865. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;SubF64&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2866. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2867. <dd>
  2868. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L323" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2869. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L323" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2870. </dd>
  2871. </div>
  2872. <div id="-,float32,float32">
  2873. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;SubF64&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2874. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2875. <dd>
  2876. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L316" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2877. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L316" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2878. </dd>
  2879. </div>
  2880. <div id="-,int,int">
  2881. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;SubI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  2882. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2883. <dd>
  2884. Binary <tt class="docutils literal"><span class="pre"><span class="Operator">-</span></span></tt> operator for an integer.
  2885. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L82" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2886. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L82" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2887. </dd>
  2888. </div>
  2889. <div id="-,int8,int8">
  2890. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;SubI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  2891. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2892. <dd>
  2893. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L84" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2894. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L84" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2895. </dd>
  2896. </div>
  2897. <div id="-,int16,int16">
  2898. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;SubI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2899. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2900. <dd>
  2901. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L85" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2902. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L85" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2903. </dd>
  2904. </div>
  2905. <div id="-,int32,int32">
  2906. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;SubI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2907. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2908. <dd>
  2909. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L86" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2910. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L86" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2911. </dd>
  2912. </div>
  2913. <div id="-,int64,int64">
  2914. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;SubI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2915. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2916. <dd>
  2917. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L87" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2918. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L87" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2919. </dd>
  2920. </div>
  2921. <div id="-,uint,uint">
  2922. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;SubU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  2923. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2924. <dd>
  2925. Binary <tt class="docutils literal"><span class="pre"><span class="Operator">-</span></span></tt> operator for unsigned integers.
  2926. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L269" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2927. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L269" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2928. </dd>
  2929. </div>
  2930. <div id="-,uint8,uint8">
  2931. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;SubU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2932. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2933. <dd>
  2934. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L271" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2935. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L271" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2936. </dd>
  2937. </div>
  2938. <div id="-,uint16,uint16">
  2939. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;SubU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2940. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2941. <dd>
  2942. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L272" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2943. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L272" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2944. </dd>
  2945. </div>
  2946. <div id="-,uint32,uint32">
  2947. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;SubU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2948. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2949. <dd>
  2950. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L273" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2951. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L273" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2952. </dd>
  2953. </div>
  2954. <div id="-,uint64,uint64">
  2955. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;SubU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2956. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2957. <dd>
  2958. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L274" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2959. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L274" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2960. </dd>
  2961. </div>
  2962. <div id="-,float">
  2963. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;UnaryMinusF64&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2964. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2965. <dd>
  2966. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L321" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2967. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L321" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2968. </dd>
  2969. </div>
  2970. <div id="-,float32">
  2971. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;UnaryMinusF64&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  2972. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2973. <dd>
  2974. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L314" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2975. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L314" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2976. </dd>
  2977. </div>
  2978. <div id="-,int">
  2979. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;UnaryMinusI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2980. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2981. <dd>
  2982. Unary <tt class="docutils literal"><span class="pre"><span class="Operator">-</span></span></tt> operator for an integer. Negates <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.
  2983. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L56" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2984. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L56" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2985. </dd>
  2986. </div>
  2987. <div id="-,int8">
  2988. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;UnaryMinusI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2989. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2990. <dd>
  2991. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L58" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  2992. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L58" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  2993. </dd>
  2994. </div>
  2995. <div id="-,int16">
  2996. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;UnaryMinusI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  2997. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  2998. <dd>
  2999. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L59" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3000. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L59" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3001. </dd>
  3002. </div>
  3003. <div id="-,int32">
  3004. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;UnaryMinusI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3005. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3006. <dd>
  3007. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L60" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3008. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L60" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3009. </dd>
  3010. </div>
  3011. <div id="-,int64">
  3012. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;UnaryMinusI64&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3013. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3014. <dd>
  3015. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L61" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3016. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L61" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3017. </dd>
  3018. </div>
  3019. <div id="-,set[T],set[T]">
  3020. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MinusSet&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3021. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3022. <dd>
  3023. This operator computes the difference of two sets.
  3024. <p><strong class="examples_text">Example:</strong></p>
  3025. <pre class="listing"><span class="Identifier">assert</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="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="Punctuation">{</span><span class="DecNumber">1</span><span class="Punctuation">}</span></pre>
  3026. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/setops.nim#L65" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3027. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/setops.nim#L65" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3028. </dd>
  3029. </div>
  3030. </div>
  3031. <div id="-%-procs-all">
  3032. <div id="-%,int,int">
  3033. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3034. <dd>
  3035. <p>Treats <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> as unsigned and subtracts them.</p>
  3036. <p>The result is truncated to fit into the result. This implements modulo arithmetic. No overflow errors are possible.</p>
  3037. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L363" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3038. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L363" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3039. </dd>
  3040. </div>
  3041. <div id="-%,int8,int8">
  3042. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3043. <dd>
  3044. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L369" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3045. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L369" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3046. </dd>
  3047. </div>
  3048. <div id="-%,int16,int16">
  3049. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3050. <dd>
  3051. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L370" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3052. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L370" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3053. </dd>
  3054. </div>
  3055. <div id="-%,int32,int32">
  3056. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3057. <dd>
  3058. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L371" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3059. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L371" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3060. </dd>
  3061. </div>
  3062. <div id="-%,int64,int64">
  3063. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3064. <dd>
  3065. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L372" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3066. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L372" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3067. </dd>
  3068. </div>
  3069. </div>
  3070. <div id="-=-procs-all">
  3071. <div id="-=,T,T_2">
  3072. <dt><pre><span class="Keyword">proc</span> <a href="#-%3D%2CT%2CT_2"><span class="Identifier">`-=`</span></a><span class="Other">[</span><span class="Identifier">T</span><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><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 class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span>.}</pre></dt>
  3073. <dd>
  3074. Decrements in place a floating point number.
  3075. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L332" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3076. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L332" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3077. </dd>
  3078. </div>
  3079. <div id="-=,T,T">
  3080. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Dec&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  3081. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3082. <dd>
  3083. Decrements an integer.
  3084. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L303" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3085. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L303" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3086. </dd>
  3087. </div>
  3088. </div>
  3089. <div id="..-procs-all">
  3090. <div id="..,sinkT,sinkU">
  3091. <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 class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span>
  3092. <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;DotDot&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3093. <dd>
  3094. <p>Binary <span id="slice_1">slice</span> operator that constructs an interval <tt class="docutils literal"><span class="pre"><span class="Punctuation">[</span><span class="Identifier">a</span><span class="Punctuation">,</span> <span class="Identifier">b</span><span class="Punctuation">]</span></span></tt>, both <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">b</span></span></tt> are inclusive.</p>
  3095. <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>
  3096. <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>
  3097. <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></p>
  3098. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L428" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3099. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L428" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3100. </dd>
  3101. </div>
  3102. <div id="..,sinkT">
  3103. <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 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">&quot;DotDot&quot;</span><span class="Other">,</span>
  3104. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">&quot;replace `..b` with `0..b`&quot;</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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3105. <dd>
  3106. <div class="deprecation-message">
  3107. <b>Deprecated:</b> replace `..b` with `0..b`
  3108. </div>
  3109. <p>Unary <span id="slice_2">slice</span> operator that constructs an interval <tt class="docutils literal"><span class="pre"><span class="Punctuation">[</span><span class="Identifier">default</span><span class="Punctuation">(</span><span class="Identifier">int</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="Identifier">b</span><span class="Punctuation">]</span></span></tt>.</p>
  3110. <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>
  3111. <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></p>
  3112. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L440" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3113. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L440" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3114. </dd>
  3115. </div>
  3116. </div>
  3117. <div id="/-procs-all">
  3118. <div id="/,float,float">
  3119. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;DivF64&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3120. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3121. <dd>
  3122. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L325" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3123. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L325" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3124. </dd>
  3125. </div>
  3126. <div id="/,float32,float32">
  3127. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;DivF64&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3128. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3129. <dd>
  3130. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L318" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3131. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L318" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3132. </dd>
  3133. </div>
  3134. <div id="/,int,int">
  3135. <dt><pre><span class="Keyword">proc</span> <a href="#%2F%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#float"><span class="Identifier">float</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3136. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3137. <dd>
  3138. <p>Division of integers that results in a float.</p>
  3139. <p><pre class="listing"><span class="Identifier">echo</span> <span class="DecNumber">7</span> <span class="Operator">/</span> <span class="DecNumber">5</span> <span class="Comment"># =&gt; 1.4</span></pre></p>
  3140. <p>See also:</p>
  3141. <ul class="simple"><li><a class="reference external" href="system.html#div,int,int">div</a></li>
  3142. <li><a class="reference external" href="system.html#mod,int,int">mod</a></li>
  3143. </ul>
  3144. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1331" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3145. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1331" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3146. </dd>
  3147. </div>
  3148. </div>
  3149. <div id="/%-procs-all">
  3150. <div id="/%,int,int">
  3151. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3152. <dd>
  3153. <p>Treats <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> as unsigned and divides them.</p>
  3154. <p>The result is truncated to fit into the result. This implements modulo arithmetic. No overflow errors are possible.</p>
  3155. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L385" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3156. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L385" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3157. </dd>
  3158. </div>
  3159. <div id="/%,int8,int8">
  3160. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3161. <dd>
  3162. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L391" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3163. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L391" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3164. </dd>
  3165. </div>
  3166. <div id="/%,int16,int16">
  3167. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3168. <dd>
  3169. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L392" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3170. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L392" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3171. </dd>
  3172. </div>
  3173. <div id="/%,int32,int32">
  3174. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3175. <dd>
  3176. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L393" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3177. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L393" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3178. </dd>
  3179. </div>
  3180. <div id="/%,int64,int64">
  3181. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3182. <dd>
  3183. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L394" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3184. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L394" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3185. </dd>
  3186. </div>
  3187. </div>
  3188. <div id="/=-procs-all">
  3189. <div id="/=,float64,float64">
  3190. <dt><pre><span class="Keyword">proc</span> <a href="#%2F%3D%2Cfloat64%2Cfloat64"><span class="Identifier">`/=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><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="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3191. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3192. <dd>
  3193. Divides in place a floating point number.
  3194. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L342" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3195. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L342" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3196. </dd>
  3197. </div>
  3198. <div id="/=,T,T">
  3199. <dt><pre><span class="Keyword">proc</span> <a href="#%2F%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#float"><span class="Identifier">float</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="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 class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span>.}</pre></dt>
  3200. <dd>
  3201. Divides in place a floating point number.
  3202. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L346" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3203. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L346" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3204. </dd>
  3205. </div>
  3206. </div>
  3207. <div id="&lt;-procs-all">
  3208. <div id="<,bool,bool">
  3209. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cbool%2Cbool"><span class="Identifier">`&lt;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LtB&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3210. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3211. <dd>
  3212. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L123" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3213. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L123" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3214. </dd>
  3215. </div>
  3216. <div id="<,char,char">
  3217. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cchar%2Cchar"><span class="Identifier">`&lt;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LtCh&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3218. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3219. <dd>
  3220. Compares two chars and returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is lexicographically before <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> (uppercase letters come before lowercase letters).
  3221. <p><strong class="examples_text">Example:</strong></p>
  3222. <pre class="listing"><span class="Keyword">let</span>
  3223. <span class="Identifier">a</span> <span class="Operator">=</span> <span class="CharLit">'a'</span>
  3224. <span class="Identifier">b</span> <span class="Operator">=</span> <span class="CharLit">'b'</span>
  3225. <span class="Identifier">c</span> <span class="Operator">=</span> <span class="CharLit">'Z'</span>
  3226. <span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">&lt;</span> <span class="Identifier">b</span>
  3227. <span class="Identifier">assert</span> <span class="Keyword">not</span> <span class="Punctuation">(</span><span class="Identifier">a</span> <span class="Operator">&lt;</span> <span class="Identifier">a</span><span class="Punctuation">)</span>
  3228. <span class="Identifier">assert</span> <span class="Keyword">not</span> <span class="Punctuation">(</span><span class="Identifier">a</span> <span class="Operator">&lt;</span> <span class="Identifier">c</span><span class="Punctuation">)</span></pre>
  3229. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L97" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3230. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L97" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3231. </dd>
  3232. </div>
  3233. <div id="<,float,float">
  3234. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cfloat%2Cfloat"><span class="Identifier">`&lt;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LtF64&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3235. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3236. <dd>
  3237. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L216" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3238. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L216" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3239. </dd>
  3240. </div>
  3241. <div id="<,float32,float32">
  3242. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cfloat32%2Cfloat32"><span class="Identifier">`&lt;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LtF64&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3243. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3244. <dd>
  3245. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L215" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3246. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L215" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3247. </dd>
  3248. </div>
  3249. <div id="<,int,int">
  3250. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cint%2Cint"><span class="Identifier">`&lt;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LtI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3251. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3252. <dd>
  3253. Returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is less than <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.
  3254. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L158" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3255. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L158" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3256. </dd>
  3257. </div>
  3258. <div id="<,int8,int8">
  3259. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cint8%2Cint8"><span class="Identifier">`&lt;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LtI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3260. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3261. <dd>
  3262. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L160" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3263. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L160" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3264. </dd>
  3265. </div>
  3266. <div id="<,int16,int16">
  3267. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cint16%2Cint16"><span class="Identifier">`&lt;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LtI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3268. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3269. <dd>
  3270. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L161" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3271. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L161" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3272. </dd>
  3273. </div>
  3274. <div id="<,int32,int32">
  3275. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cint32%2Cint32"><span class="Identifier">`&lt;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LtI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3276. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3277. <dd>
  3278. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L162" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3279. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L162" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3280. </dd>
  3281. </div>
  3282. <div id="<,int64,int64">
  3283. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cint64%2Cint64"><span class="Identifier">`&lt;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LtI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3284. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3285. <dd>
  3286. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L163" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3287. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L163" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3288. </dd>
  3289. </div>
  3290. <div id="<,pointer,pointer">
  3291. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cpointer%2Cpointer"><span class="Identifier">`&lt;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LtPtr&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3292. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3293. <dd>
  3294. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L126" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3295. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L126" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3296. </dd>
  3297. </div>
  3298. <div id="<,string,string">
  3299. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cstring%2Cstring"><span class="Identifier">`&lt;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LtStr&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3300. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3301. <dd>
  3302. Compares two strings and returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is lexicographically before <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> (uppercase letters come before lowercase letters).
  3303. <p><strong class="examples_text">Example:</strong></p>
  3304. <pre class="listing"><span class="Keyword">let</span>
  3305. <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;abc&quot;</span>
  3306. <span class="Identifier">b</span> <span class="Operator">=</span> <span class="StringLit">&quot;abd&quot;</span>
  3307. <span class="Identifier">c</span> <span class="Operator">=</span> <span class="StringLit">&quot;ZZZ&quot;</span>
  3308. <span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">&lt;</span> <span class="Identifier">b</span>
  3309. <span class="Identifier">assert</span> <span class="Keyword">not</span> <span class="Punctuation">(</span><span class="Identifier">a</span> <span class="Operator">&lt;</span> <span class="Identifier">a</span><span class="Punctuation">)</span>
  3310. <span class="Identifier">assert</span> <span class="Keyword">not</span> <span class="Punctuation">(</span><span class="Identifier">a</span> <span class="Operator">&lt;</span> <span class="Identifier">c</span><span class="Punctuation">)</span></pre>
  3311. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L85" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3312. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L85" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3313. </dd>
  3314. </div>
  3315. <div id="<,uint,uint">
  3316. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cuint%2Cuint"><span class="Identifier">`&lt;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LtU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3317. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3318. <dd>
  3319. Returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span> <span class="Operator">&lt;</span> <span class="Identifier">y</span></span></tt>.
  3320. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L172" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3321. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L172" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3322. </dd>
  3323. </div>
  3324. <div id="<,uint8,uint8">
  3325. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cuint8%2Cuint8"><span class="Identifier">`&lt;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LtU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3326. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3327. <dd>
  3328. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L174" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3329. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L174" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3330. </dd>
  3331. </div>
  3332. <div id="<,uint16,uint16">
  3333. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cuint16%2Cuint16"><span class="Identifier">`&lt;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LtU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3334. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3335. <dd>
  3336. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L175" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3337. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L175" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3338. </dd>
  3339. </div>
  3340. <div id="<,uint32,uint32">
  3341. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cuint32%2Cuint32"><span class="Identifier">`&lt;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LtU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3342. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3343. <dd>
  3344. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L176" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3345. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L176" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3346. </dd>
  3347. </div>
  3348. <div id="<,uint64,uint64">
  3349. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cuint64%2Cuint64"><span class="Identifier">`&lt;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LtU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3350. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3351. <dd>
  3352. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L177" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3353. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L177" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3354. </dd>
  3355. </div>
  3356. <div id="<,Enum,Enum">
  3357. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%2CEnum%2CEnum"><span class="Identifier">`&lt;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LtEnum&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  3358. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3359. <dd>
  3360. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L84" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3361. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L84" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3362. </dd>
  3363. </div>
  3364. <div id="<,T,T">
  3365. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%2CT%2CT"><span class="Identifier">`&lt;`</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>
  3366. <dd>
  3367. Generic lexicographic <tt class="docutils literal"><span class="pre"><span class="Operator">&lt;</span></span></tt> operator for tuples that is lifted from the components of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>. This implementation uses <tt class="docutils literal"><span class="pre"><span class="Identifier">cmp</span></span></tt>.
  3368. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1815" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3369. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1815" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3370. </dd>
  3371. </div>
  3372. <div id="<,ptr.T,ptr.T">
  3373. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cptr.T%2Cptr.T"><span class="Identifier">`&lt;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LtPtr&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3374. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3375. <dd>
  3376. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L125" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3377. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L125" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3378. </dd>
  3379. </div>
  3380. <div id="<,ref.T,ref.T">
  3381. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cref.T%2Cref.T"><span class="Identifier">`&lt;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LtPtr&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3382. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3383. <dd>
  3384. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L124" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3385. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L124" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3386. </dd>
  3387. </div>
  3388. <div id="<,set[T],set[T]">
  3389. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%2Cset%5BT%5D%2Cset%5BT%5D"><span class="Identifier">`&lt;`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LtSet&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3390. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3391. <dd>
  3392. <p>Returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is a strict or proper subset of <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.</p>
  3393. <p>A strict or proper subset <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> has all of its members in <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> but <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> has more elements than <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.</p>
  3394. <p><strong class="examples_text">Example:</strong></p>
  3395. <pre class="listing"><span class="Keyword">let</span>
  3396. <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">}</span>
  3397. <span class="Identifier">b</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="DecNumber">7</span><span class="Punctuation">}</span>
  3398. <span class="Identifier">c</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="DecNumber">2</span><span class="Punctuation">}</span>
  3399. <span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">&lt;</span> <span class="Identifier">b</span>
  3400. <span class="Identifier">assert</span> <span class="Keyword">not</span> <span class="Punctuation">(</span><span class="Identifier">a</span> <span class="Operator">&lt;</span> <span class="Identifier">a</span><span class="Punctuation">)</span>
  3401. <span class="Identifier">assert</span> <span class="Keyword">not</span> <span class="Punctuation">(</span><span class="Identifier">a</span> <span class="Operator">&lt;</span> <span class="Identifier">c</span><span class="Punctuation">)</span></pre>
  3402. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L109" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3403. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L109" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3404. </dd>
  3405. </div>
  3406. </div>
  3407. <div id="&lt;%-procs-all">
  3408. <div id="<%,int,int">
  3409. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%25%2Cint%2Cint"><span class="Identifier">`&lt;%`</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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3410. <dd>
  3411. Treats <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> as unsigned and compares them. Returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">unsigned</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span> <span class="Operator">&lt;</span> <span class="Identifier">unsigned</span><span class="Punctuation">(</span><span class="Identifier">y</span><span class="Punctuation">)</span></span></tt>.
  3412. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L188" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3413. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L188" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3414. </dd>
  3415. </div>
  3416. <div id="<%,int8,int8">
  3417. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%25%2Cint8%2Cint8"><span class="Identifier">`&lt;%`</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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3418. <dd>
  3419. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L192" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3420. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L192" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3421. </dd>
  3422. </div>
  3423. <div id="<%,int16,int16">
  3424. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%25%2Cint16%2Cint16"><span class="Identifier">`&lt;%`</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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3425. <dd>
  3426. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L193" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3427. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L193" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3428. </dd>
  3429. </div>
  3430. <div id="<%,int32,int32">
  3431. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%25%2Cint32%2Cint32"><span class="Identifier">`&lt;%`</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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3432. <dd>
  3433. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L194" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3434. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L194" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3435. </dd>
  3436. </div>
  3437. <div id="<%,int64,int64">
  3438. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%25%2Cint64%2Cint64"><span class="Identifier">`&lt;%`</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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3439. <dd>
  3440. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L195" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3441. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L195" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3442. </dd>
  3443. </div>
  3444. </div>
  3445. <div id="&lt;=-procs-all">
  3446. <div id="<=,bool,bool">
  3447. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cbool%2Cbool"><span class="Identifier">`&lt;=`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LeB&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3448. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3449. <dd>
  3450. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L80" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3451. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L80" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3452. </dd>
  3453. </div>
  3454. <div id="<=,char,char">
  3455. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cchar%2Cchar"><span class="Identifier">`&lt;=`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LeCh&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3456. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3457. <dd>
  3458. Compares two chars and returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is lexicographically before <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> (uppercase letters come before lowercase letters).
  3459. <p><strong class="examples_text">Example:</strong></p>
  3460. <pre class="listing"><span class="Keyword">let</span>
  3461. <span class="Identifier">a</span> <span class="Operator">=</span> <span class="CharLit">'a'</span>
  3462. <span class="Identifier">b</span> <span class="Operator">=</span> <span class="CharLit">'b'</span>
  3463. <span class="Identifier">c</span> <span class="Operator">=</span> <span class="CharLit">'Z'</span>
  3464. <span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">&lt;=</span> <span class="Identifier">b</span>
  3465. <span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">&lt;=</span> <span class="Identifier">a</span>
  3466. <span class="Identifier">assert</span> <span class="Keyword">not</span> <span class="Punctuation">(</span><span class="Identifier">a</span> <span class="Operator">&lt;=</span> <span class="Identifier">c</span><span class="Punctuation">)</span></pre>
  3467. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L54" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3468. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L54" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3469. </dd>
  3470. </div>
  3471. <div id="<=,float,float">
  3472. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cfloat%2Cfloat"><span class="Identifier">`&lt;=`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LeF64&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3473. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3474. <dd>
  3475. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L213" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3476. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L213" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3477. </dd>
  3478. </div>
  3479. <div id="<=,float32,float32">
  3480. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cfloat32%2Cfloat32"><span class="Identifier">`&lt;=`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LeF64&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3481. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3482. <dd>
  3483. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L212" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3484. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L212" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3485. </dd>
  3486. </div>
  3487. <div id="<=,int,int">
  3488. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cint%2Cint"><span class="Identifier">`&lt;=`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LeI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3489. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3490. <dd>
  3491. Returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is less than or equal to <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.
  3492. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L151" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3493. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L151" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3494. </dd>
  3495. </div>
  3496. <div id="<=,int8,int8">
  3497. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cint8%2Cint8"><span class="Identifier">`&lt;=`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LeI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3498. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3499. <dd>
  3500. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L153" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3501. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L153" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3502. </dd>
  3503. </div>
  3504. <div id="<=,int16,int16">
  3505. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cint16%2Cint16"><span class="Identifier">`&lt;=`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LeI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3506. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3507. <dd>
  3508. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L154" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3509. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L154" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3510. </dd>
  3511. </div>
  3512. <div id="<=,int32,int32">
  3513. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cint32%2Cint32"><span class="Identifier">`&lt;=`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LeI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3514. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3515. <dd>
  3516. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L155" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3517. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L155" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3518. </dd>
  3519. </div>
  3520. <div id="<=,int64,int64">
  3521. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cint64%2Cint64"><span class="Identifier">`&lt;=`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LeI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3522. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3523. <dd>
  3524. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L156" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3525. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L156" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3526. </dd>
  3527. </div>
  3528. <div id="<=,pointer,pointer">
  3529. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cpointer%2Cpointer"><span class="Identifier">`&lt;=`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LePtr&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3530. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3531. <dd>
  3532. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L82" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3533. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L82" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3534. </dd>
  3535. </div>
  3536. <div id="<=,string,string">
  3537. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cstring%2Cstring"><span class="Identifier">`&lt;=`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LeStr&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3538. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3539. <dd>
  3540. Compares two strings and returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is lexicographically before <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> (uppercase letters come before lowercase letters).
  3541. <p><strong class="examples_text">Example:</strong></p>
  3542. <pre class="listing"><span class="Keyword">let</span>
  3543. <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;abc&quot;</span>
  3544. <span class="Identifier">b</span> <span class="Operator">=</span> <span class="StringLit">&quot;abd&quot;</span>
  3545. <span class="Identifier">c</span> <span class="Operator">=</span> <span class="StringLit">&quot;ZZZ&quot;</span>
  3546. <span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">&lt;=</span> <span class="Identifier">b</span>
  3547. <span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">&lt;=</span> <span class="Identifier">a</span>
  3548. <span class="Identifier">assert</span> <span class="Keyword">not</span> <span class="Punctuation">(</span><span class="Identifier">a</span> <span class="Operator">&lt;=</span> <span class="Identifier">c</span><span class="Punctuation">)</span></pre>
  3549. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L42" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3550. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L42" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3551. </dd>
  3552. </div>
  3553. <div id="<=,uint,uint">
  3554. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cuint%2Cuint"><span class="Identifier">`&lt;=`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LeU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3555. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3556. <dd>
  3557. Returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span> <span class="Operator">&lt;=</span> <span class="Identifier">y</span></span></tt>.
  3558. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L165" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3559. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L165" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3560. </dd>
  3561. </div>
  3562. <div id="<=,uint8,uint8">
  3563. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cuint8%2Cuint8"><span class="Identifier">`&lt;=`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LeU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3564. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3565. <dd>
  3566. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L167" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3567. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L167" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3568. </dd>
  3569. </div>
  3570. <div id="<=,uint16,uint16">
  3571. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cuint16%2Cuint16"><span class="Identifier">`&lt;=`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LeU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3572. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3573. <dd>
  3574. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L168" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3575. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L168" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3576. </dd>
  3577. </div>
  3578. <div id="<=,uint32,uint32">
  3579. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cuint32%2Cuint32"><span class="Identifier">`&lt;=`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LeU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3580. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3581. <dd>
  3582. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L169" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3583. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L169" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3584. </dd>
  3585. </div>
  3586. <div id="<=,uint64,uint64">
  3587. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cuint64%2Cuint64"><span class="Identifier">`&lt;=`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LeU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3588. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3589. <dd>
  3590. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L170" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3591. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L170" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3592. </dd>
  3593. </div>
  3594. <div id="<=,Enum,Enum">
  3595. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2CEnum%2CEnum"><span class="Identifier">`&lt;=`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LeEnum&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  3596. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3597. <dd>
  3598. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L41" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3599. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L41" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3600. </dd>
  3601. </div>
  3602. <div id="<=,T,T">
  3603. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2CT%2CT"><span class="Identifier">`&lt;=`</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>
  3604. <dd>
  3605. Generic lexicographic <tt class="docutils literal"><span class="pre"><span class="Operator">&lt;=</span></span></tt> operator for tuples that is lifted from the components of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>. This implementation uses <tt class="docutils literal"><span class="pre"><span class="Identifier">cmp</span></span></tt>.
  3606. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1806" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3607. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1806" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3608. </dd>
  3609. </div>
  3610. <div id="<=,ref.T,ref.T">
  3611. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cref.T%2Cref.T"><span class="Identifier">`&lt;=`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LePtr&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3612. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3613. <dd>
  3614. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L81" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3615. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L81" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3616. </dd>
  3617. </div>
  3618. <div id="<=,set[T],set[T]">
  3619. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2Cset%5BT%5D%2Cset%5BT%5D"><span class="Identifier">`&lt;=`</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LeSet&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3620. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3621. <dd>
  3622. <p>Returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is a subset of <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.</p>
  3623. <p>A subset <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> has all of its members in <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> doesn't necessarily have more members than <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. That is, <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> can be equal to <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.</p>
  3624. <p><strong class="examples_text">Example:</strong></p>
  3625. <pre class="listing"><span class="Keyword">let</span>
  3626. <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">}</span>
  3627. <span class="Identifier">b</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="DecNumber">7</span><span class="Punctuation">}</span>
  3628. <span class="Identifier">c</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="DecNumber">2</span><span class="Punctuation">}</span>
  3629. <span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">&lt;=</span> <span class="Identifier">b</span>
  3630. <span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">&lt;=</span> <span class="Identifier">a</span>
  3631. <span class="Identifier">assert</span> <span class="Keyword">not</span> <span class="Punctuation">(</span><span class="Identifier">a</span> <span class="Operator">&lt;=</span> <span class="Identifier">c</span><span class="Punctuation">)</span></pre>
  3632. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L66" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3633. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L66" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3634. </dd>
  3635. </div>
  3636. </div>
  3637. <div id="&lt;=%-procs-all">
  3638. <div id="<=%,int,int">
  3639. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%25%2Cint%2Cint"><span class="Identifier">`&lt;=%`</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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3640. <dd>
  3641. Treats <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> as unsigned and compares them. Returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">unsigned</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span> <span class="Operator">&lt;=</span> <span class="Identifier">unsigned</span><span class="Punctuation">(</span><span class="Identifier">y</span><span class="Punctuation">)</span></span></tt>.
  3642. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L179" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3643. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L179" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3644. </dd>
  3645. </div>
  3646. <div id="<=%,int8,int8">
  3647. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%25%2Cint8%2Cint8"><span class="Identifier">`&lt;=%`</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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3648. <dd>
  3649. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L183" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3650. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L183" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3651. </dd>
  3652. </div>
  3653. <div id="<=%,int16,int16">
  3654. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%25%2Cint16%2Cint16"><span class="Identifier">`&lt;=%`</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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3655. <dd>
  3656. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L184" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3657. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L184" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3658. </dd>
  3659. </div>
  3660. <div id="<=%,int32,int32">
  3661. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%25%2Cint32%2Cint32"><span class="Identifier">`&lt;=%`</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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3662. <dd>
  3663. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L185" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3664. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L185" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3665. </dd>
  3666. </div>
  3667. <div id="<=%,int64,int64">
  3668. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%25%2Cint64%2Cint64"><span class="Identifier">`&lt;=%`</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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3669. <dd>
  3670. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L186" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3671. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L186" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3672. </dd>
  3673. </div>
  3674. </div>
  3675. <div id="=-procs-all">
  3676. <div id="=,T,T">
  3677. <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 class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Asgn&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3678. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3679. <dd>
  3680. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L377" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3681. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L377" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3682. </dd>
  3683. </div>
  3684. </div>
  3685. <div id="==-procs-all">
  3686. <div id="==,bool,bool">
  3687. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;EqB&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3688. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3689. <dd>
  3690. Checks for equality between two <tt class="docutils literal"><span class="pre"><span class="Identifier">bool</span></span></tt> variables.
  3691. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L27" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3692. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L27" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3693. </dd>
  3694. </div>
  3695. <div id="==,char,char">
  3696. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;EqCh&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3697. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3698. <dd>
  3699. Checks for equality between two <tt class="docutils literal"><span class="pre"><span class="Identifier">char</span></span></tt> variables.
  3700. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L25" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3701. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L25" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3702. </dd>
  3703. </div>
  3704. <div id="==,cstring,cstring">
  3705. <dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2Ccstring%2Ccstring"><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#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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;EqCString&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span>
  3706. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3707. <dd>
  3708. Checks for equality between two <tt class="docutils literal"><span class="pre"><span class="Identifier">cstring</span></span></tt> variables.
  3709. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2719" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3710. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2719" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3711. </dd>
  3712. </div>
  3713. <div id="==,float,float">
  3714. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;EqF64&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3715. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3716. <dd>
  3717. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L219" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3718. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L219" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3719. </dd>
  3720. </div>
  3721. <div id="==,float32,float32">
  3722. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;EqF64&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3723. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3724. <dd>
  3725. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L218" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3726. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L218" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3727. </dd>
  3728. </div>
  3729. <div id="==,int,int">
  3730. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;EqI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3731. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3732. <dd>
  3733. Compares two integers for equality.
  3734. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L144" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3735. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L144" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3736. </dd>
  3737. </div>
  3738. <div id="==,int8,int8">
  3739. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;EqI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3740. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3741. <dd>
  3742. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L146" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3743. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L146" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3744. </dd>
  3745. </div>
  3746. <div id="==,int16,int16">
  3747. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;EqI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3748. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3749. <dd>
  3750. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L147" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3751. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L147" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3752. </dd>
  3753. </div>
  3754. <div id="==,int32,int32">
  3755. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;EqI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3756. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3757. <dd>
  3758. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L148" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3759. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L148" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3760. </dd>
  3761. </div>
  3762. <div id="==,int64,int64">
  3763. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;EqI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3764. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3765. <dd>
  3766. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L149" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3767. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L149" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3768. </dd>
  3769. </div>
  3770. <div id="==,pointer,pointer">
  3771. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;EqRef&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3772. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3773. <dd>
  3774. Checks for equality between two <tt class="docutils literal"><span class="pre"><span class="Identifier">pointer</span></span></tt> variables.
  3775. <p><strong class="examples_text">Example:</strong></p>
  3776. <pre class="listing"><span class="Keyword">var</span> <span class="Comment"># this is a wildly dangerous example</span>
  3777. <span class="Identifier">a</span> <span class="Operator">=</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>
  3778. <span class="Identifier">b</span> <span class="Operator">=</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>
  3779. <span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Identifier">b</span> <span class="Comment"># true due to the special meaning of `nil`/0 as a pointer</span></pre>
  3780. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L15" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3781. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L15" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3782. </dd>
  3783. </div>
  3784. <div id="==,string,string">
  3785. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;EqStr&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3786. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3787. <dd>
  3788. Checks for equality between two <tt class="docutils literal"><span class="pre"><span class="Identifier">string</span></span></tt> variables.
  3789. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L22" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3790. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L22" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3791. </dd>
  3792. </div>
  3793. <div id="==,uint,uint">
  3794. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;EqI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3795. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3796. <dd>
  3797. Compares two unsigned integers for equality.
  3798. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L205" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3799. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L205" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3800. </dd>
  3801. </div>
  3802. <div id="==,uint8,uint8">
  3803. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;EqI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3804. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3805. <dd>
  3806. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L207" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3807. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L207" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3808. </dd>
  3809. </div>
  3810. <div id="==,uint16,uint16">
  3811. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;EqI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3812. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3813. <dd>
  3814. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L208" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3815. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L208" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3816. </dd>
  3817. </div>
  3818. <div id="==,uint32,uint32">
  3819. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;EqI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3820. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3821. <dd>
  3822. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L209" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3823. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L209" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3824. </dd>
  3825. </div>
  3826. <div id="==,uint64,uint64">
  3827. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;EqI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3828. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3829. <dd>
  3830. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L210" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3831. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L210" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3832. </dd>
  3833. </div>
  3834. <div id="==,Enum,Enum">
  3835. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;EqEnum&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  3836. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3837. <dd>
  3838. Checks whether values within the <em>same enum</em> have the same underlying value.
  3839. <p><strong class="examples_text">Example:</strong></p>
  3840. <pre class="listing"><span class="Keyword">type</span>
  3841. <span class="Identifier">Enum1</span> <span class="Operator">=</span> <span class="Keyword">enum</span>
  3842. <span class="Identifier">field1</span> <span class="Operator">=</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="Identifier">field2</span>
  3843. <span class="Identifier">Enum2</span> <span class="Operator">=</span> <span class="Keyword">enum</span>
  3844. <span class="Identifier">place1</span><span class="Punctuation">,</span> <span class="Identifier">place2</span> <span class="Operator">=</span> <span class="DecNumber">3</span>
  3845. <span class="Keyword">var</span>
  3846. <span class="Identifier">e1</span> <span class="Operator">=</span> <span class="Identifier">field1</span>
  3847. <span class="Identifier">e2</span> <span class="Operator">=</span> <span class="Identifier">place2</span><span class="Operator">.</span><span class="Identifier">ord</span><span class="Operator">.</span><span class="Identifier">Enum1</span>
  3848. <span class="Identifier">assert</span> <span class="Identifier">e1</span> <span class="Operator">==</span> <span class="Identifier">e2</span>
  3849. <span class="Identifier">assert</span> <span class="Keyword">not</span> <span class="Identifier">compiles</span><span class="Punctuation">(</span><span class="Identifier">e1</span> <span class="Operator">==</span> <span class="Identifier">place2</span><span class="Punctuation">)</span> <span class="Comment"># raises error</span></pre>
  3850. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L2" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3851. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L2" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3852. </dd>
  3853. </div>
  3854. <div id="==,array[I,T],array[I,T]">
  3855. <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>
  3856. <dd>
  3857. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L294" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3858. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L294" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3859. </dd>
  3860. </div>
  3861. <div id="==,T,T">
  3862. <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="Operator">|</span> <span class="Keyword">iterator</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;EqProc&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  3863. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3864. <dd>
  3865. Checks that two <tt class="docutils literal"><span class="pre"><span class="Keyword">proc</span></span></tt> variables refer to the same procedure.
  3866. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L38" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3867. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L38" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3868. </dd>
  3869. </div>
  3870. <div id="==,T,T_2">
  3871. <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>
  3872. <dd>
  3873. Generic <tt class="docutils literal"><span class="pre"><span class="Operator">==</span></span></tt> operator for tuples that is lifted from the components. of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.
  3874. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1799" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3875. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1799" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3876. </dd>
  3877. </div>
  3878. <div id="==,openArray[T],openArray[T]">
  3879. <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>
  3880. <dd>
  3881. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L300" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3882. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L300" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3883. </dd>
  3884. </div>
  3885. <div id="==,ptr.T,ptr.T">
  3886. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;EqRef&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3887. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3888. <dd>
  3889. Checks that two <tt class="docutils literal"><span class="pre"><span class="Keyword">ptr</span></span></tt> variables refer to the same item.
  3890. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L36" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3891. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L36" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3892. </dd>
  3893. </div>
  3894. <div id="==,ref.T,ref.T">
  3895. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;EqRef&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3896. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3897. <dd>
  3898. Checks that two <tt class="docutils literal"><span class="pre"><span class="Keyword">ref</span></span></tt> variables refer to the same item.
  3899. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L34" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3900. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L34" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3901. </dd>
  3902. </div>
  3903. <div id="==,seq[T],seq[T]">
  3904. <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 class="Identifier">noSideEffect</span>.}</pre></dt>
  3905. <dd>
  3906. Generic equals operator for sequences: relies on a equals operator for the element type <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt>.
  3907. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L309" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3908. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L309" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3909. </dd>
  3910. </div>
  3911. <div id="==,set[T],set[T]">
  3912. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;EqSet&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3913. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3914. <dd>
  3915. Checks for equality between two variables of type <tt class="docutils literal"><span class="pre"><span class="Identifier">set</span></span></tt>.
  3916. <p><strong class="examples_text">Example:</strong></p>
  3917. <pre class="listing"><span class="Identifier">assert</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">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</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="Comment"># duplication in sets is ignored</span></pre>
  3918. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L29" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3919. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L29" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3920. </dd>
  3921. </div>
  3922. </div>
  3923. <div id="=copy-procs-all">
  3924. <div id="=copy,T,T">
  3925. <dt><pre><span class="Keyword">proc</span> <a href="#%3Dcopy%2CT%2CT"><span class="Identifier">`=copy`</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 class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Asgn&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3926. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3927. <dd>
  3928. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L378" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3929. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L378" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3930. </dd>
  3931. </div>
  3932. </div>
  3933. <div id="=destroy-procs-all">
  3934. <div id="=destroy,string">
  3935. <dt><pre><span class="Keyword">proc</span> <a href="#%3Ddestroy%2Cstring"><span class="Identifier">`=destroy`</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">inline</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Destroy&quot;</span><span class="Other">,</span> <span class="Identifier">enforceNoRaises</span><span class="Other">,</span>
  3936. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3937. <dd>
  3938. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L396" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3939. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L396" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3940. </dd>
  3941. </div>
  3942. <div id="=destroy,ref.T">
  3943. <dt><pre><span class="Keyword">proc</span> <a href="#%3Ddestroy%2Cref.T"><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">ref</span> <span class="Identifier">T</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">&quot;Destroy&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3944. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3945. <dd>
  3946. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L402" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3947. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L402" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3948. </dd>
  3949. </div>
  3950. <div id="=destroy,seq[T]">
  3951. <dt><pre><span class="Keyword">proc</span> <a href="#%3Ddestroy%2Cseq%5BT%5D"><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> <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">inline</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Destroy&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3952. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3953. <dd>
  3954. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L399" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3955. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L399" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3956. </dd>
  3957. </div>
  3958. <div id="=destroy,T">
  3959. <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 class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Destroy&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3960. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3961. <dd>
  3962. Generic <span id="destructor_1">destructor</span> implementation that can be overridden.
  3963. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L391" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3964. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L391" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3965. </dd>
  3966. </div>
  3967. </div>
  3968. <div id="=dup-procs-all">
  3969. <div id="=dup,T">
  3970. <dt><pre><span class="Keyword">proc</span> <a href="#%3Ddup%2CT"><span class="Identifier">`=dup`</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="Identifier">T</span> {.<span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Dup&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  3971. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3972. <dd>
  3973. Generic <span id="dup_1">dup</span> implementation that can be overridden.
  3974. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L406" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3975. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L406" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3976. </dd>
  3977. </div>
  3978. </div>
  3979. <div id="=sink-procs-all">
  3980. <div id="=sink,T,T">
  3981. <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 class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">nodestroy</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Asgn&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3982. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3983. <dd>
  3984. Generic <span id="sink_1">sink</span> implementation that can be overridden.
  3985. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L410" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3986. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L410" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3987. </dd>
  3988. </div>
  3989. </div>
  3990. <div id="=trace-procs-all">
  3991. <div id="=trace,T,pointer">
  3992. <dt><pre><span class="Keyword">proc</span> <a href="#%3Dtrace%2CT%2Cpointer"><span class="Identifier">`=trace`</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">env</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</span></a><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">&quot;Trace&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  3993. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  3994. <dd>
  3995. Generic <span id="trace_1">trace</span> implementation that can be overridden.
  3996. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L418" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  3997. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L418" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  3998. </dd>
  3999. </div>
  4000. </div>
  4001. <div id="=wasMoved-procs-all">
  4002. <div id="=wasMoved,T">
  4003. <dt><pre><span class="Keyword">proc</span> <a href="#%3DwasMoved%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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;WasMoved&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  4004. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4005. <dd>
  4006. Generic <span id="wasmoved_1">wasMoved</span> implementation that can be overridden.
  4007. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L161" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4008. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L161" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4009. </dd>
  4010. </div>
  4011. </div>
  4012. <div id="@-procs-all">
  4013. <div id="@,sinkarray[IDX,T]">
  4014. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ArrToSeq&quot;</span><span class="Other">,</span>
  4015. <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4016. <dd>
  4017. <p>Turns an array into a sequence.</p>
  4018. <p>This most often useful for constructing sequences with the array constructor: <tt class="docutils literal"><span class="pre"><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></tt> has the type <tt class="docutils literal"><span class="pre"><span class="Identifier">seq</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">]</span></span></tt>, while <tt class="docutils literal"><span class="pre"><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></tt> has the type <tt class="docutils literal"><span class="pre"><span class="Identifier">array</span><span class="Punctuation">[</span><span class="FloatNumber">0.</span><span class="Operator">.</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="Identifier">int</span><span class="Punctuation">]</span></span></tt>.</p>
  4019. <p><pre class="listing"><span class="Keyword">let</span>
  4020. <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>
  4021. <span class="Identifier">b</span> <span class="Operator">=</span> <span class="StringLit">&quot;foo&quot;</span>
  4022. <span class="Identifier">echo</span> <span class="Operator">@</span><span class="Identifier">a</span> <span class="Comment"># =&gt; @[1, 3, 5]</span>
  4023. <span class="Identifier">echo</span> <span class="Operator">@</span><span class="Identifier">b</span> <span class="Comment"># =&gt; @['f', 'o', 'o']</span></pre></p>
  4024. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L902" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4025. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L902" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4026. </dd>
  4027. </div>
  4028. <div id="@,openArray[T]">
  4029. <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> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;OpenArrayToSeq&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  4030. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4031. <dd>
  4032. <p>Turns an <em>openArray</em> into a sequence.</p>
  4033. <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"><span class="Identifier">a</span></span></tt>.</p>
  4034. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1456" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4035. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1456" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4036. </dd>
  4037. </div>
  4038. </div>
  4039. <div id="[]-procs-all">
  4040. <div id="[],string,BackwardsIndex">
  4041. <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2Cstring%2CBackwardsIndex"><span class="Identifier">`[]`</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">i</span><span class="Other">:</span> <a href="system.html#BackwardsIndex"><span class="Identifier">BackwardsIndex</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">systemRaisesDefect</span><span class="Other">,</span>
  4042. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4043. <dd>
  4044. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indices.nim#L27" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4045. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indices.nim#L27" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4046. </dd>
  4047. </div>
  4048. <div id="[],string,BackwardsIndex_2">
  4049. <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2Cstring%2CBackwardsIndex_2"><span class="Identifier">`[]`</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">i</span><span class="Other">:</span> <a href="system.html#BackwardsIndex"><span class="Identifier">BackwardsIndex</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#char"><span class="Identifier">char</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span>
  4050. <span class="Identifier">systemRaisesDefect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4051. <dd>
  4052. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indices.nim#L33" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4053. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indices.nim#L33" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4054. </dd>
  4055. </div>
  4056. <div id="[],T,I">
  4057. <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 class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ArrGet&quot;</span><span class="Other">,</span>
  4058. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4059. <dd>
  4060. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L373" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4061. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L373" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4062. </dd>
  4063. </div>
  4064. <div id="[],array[Idx,T],HSlice[U: Ordinal,V: Ordinal]">
  4065. <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2Carray%5BIdx%2CT%5D%2CHSlice%5BU%3A%20Ordinal%2CV%3A%20Ordinal%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="Identifier">U</span><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">a</span><span class="Other">:</span> <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="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#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> {.
  4066. <span class="Identifier">systemRaisesDefect</span>.}</pre></dt>
  4067. <dd>
  4068. <p>Slice operation for arrays. Returns the inclusive range <tt class="docutils literal"><span class="pre"><span class="Punctuation">[</span><span class="Identifier">a</span><span class="Punctuation">[</span><span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">a</span><span class="Punctuation">]</span><span class="Punctuation">,</span> <span class="Identifier">a</span><span class="Punctuation">[</span><span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">b</span><span class="Punctuation">]</span><span class="Punctuation">]</span></span></tt>:</p>
  4069. <p><pre class="listing"><span class="Keyword">var</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">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">]</span>
  4070. <span class="Identifier">assert</span> <span class="Identifier">a</span><span class="Punctuation">[</span><span class="FloatNumber">0.</span><span class="Operator">.</span><span class="DecNumber">2</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></pre></p>
  4071. <p>See also:</p>
  4072. <ul class="simple"><li><a class="reference external" href="#toOpenArray,array[I,T],I,I">toOpenArray(array[I, T];I,I)</a></li>
  4073. </ul>
  4074. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indices.nim#L106" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4075. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indices.nim#L106" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4076. </dd>
  4077. </div>
  4078. <div id="[],array[Idx,T],BackwardsIndex">
  4079. <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2Carray%5BIdx%2CT%5D%2CBackwardsIndex"><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#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="Identifier">i</span><span class="Other">:</span> <a href="system.html#BackwardsIndex"><span class="Identifier">BackwardsIndex</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> {.<span class="Identifier">inline</span><span class="Other">,</span>
  4080. <span class="Identifier">systemRaisesDefect</span>.}</pre></dt>
  4081. <dd>
  4082. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indices.nim#L25" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4083. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indices.nim#L25" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4084. </dd>
  4085. </div>
  4086. <div id="[],array[Idx,T],BackwardsIndex_2">
  4087. <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2Carray%5BIdx%2CT%5D%2CBackwardsIndex_2"><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> <span class="Keyword">var</span> <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="Identifier">i</span><span class="Other">:</span> <a href="system.html#BackwardsIndex"><span class="Identifier">BackwardsIndex</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">T</span> {.<span class="Identifier">inline</span><span class="Other">,</span>
  4088. <span class="Identifier">systemRaisesDefect</span>.}</pre></dt>
  4089. <dd>
  4090. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indices.nim#L31" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4091. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indices.nim#L31" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4092. </dd>
  4093. </div>
  4094. <div id="[],string,HSlice[T: Ordinal,U: Ordinal]">
  4095. <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2Cstring%2CHSlice%5BT%3A%20Ordinal%2CU%3A%20Ordinal%5D"><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> <a href="system.html#Ordinal"><span class="Identifier">Ordinal</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><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">T</span><span class="Other">,</span> <span class="Identifier">U</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span>
  4096. <span class="Identifier">systemRaisesDefect</span>.}</pre></dt>
  4097. <dd>
  4098. <p>Slice operation for strings. Returns the inclusive range <tt class="docutils literal"><span class="pre"><span class="Punctuation">[</span><span class="Identifier">s</span><span class="Punctuation">[</span><span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">a</span><span class="Punctuation">]</span><span class="Punctuation">,</span> <span class="Identifier">s</span><span class="Punctuation">[</span><span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">b</span><span class="Punctuation">]</span><span class="Punctuation">]</span></span></tt>:</p>
  4099. <p><pre class="listing"><span class="Keyword">var</span> <span class="Identifier">s</span> <span class="Operator">=</span> <span class="StringLit">&quot;abcdef&quot;</span>
  4100. <span class="Identifier">assert</span> <span class="Identifier">s</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="StringLit">&quot;bcd&quot;</span></pre></p>
  4101. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indices.nim#L76" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4102. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indices.nim#L76" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4103. </dd>
  4104. </div>
  4105. <div id="[],openArray[T],HSlice[U: Ordinal,V: Ordinal]">
  4106. <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2CopenArray%5BT%5D%2CHSlice%5BU%3A%20Ordinal%2CV%3A%20Ordinal%5D"><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="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">s</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">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#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> {.
  4107. <span class="Identifier">systemRaisesDefect</span>.}</pre></dt>
  4108. <dd>
  4109. <p>Slice operation for sequences. Returns the inclusive range <tt class="docutils literal"><span class="pre"><span class="Punctuation">[</span><span class="Identifier">s</span><span class="Punctuation">[</span><span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">a</span><span class="Punctuation">]</span><span class="Punctuation">,</span> <span class="Identifier">s</span><span class="Punctuation">[</span><span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">b</span><span class="Punctuation">]</span><span class="Punctuation">]</span></span></tt>:</p>
  4110. <p><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>
  4111. <span class="Identifier">assert</span> <span class="Identifier">s</span><span class="Punctuation">[</span><span class="FloatNumber">0.</span><span class="Operator">.</span><span class="DecNumber">2</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></pre></p>
  4112. <p>See also:</p>
  4113. <ul class="simple"><li><a class="reference external" href="#toOpenArray,openArray[T],int,int">toOpenArray(openArray[T];int,int)</a></li>
  4114. </ul>
  4115. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indices.nim#L135" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4116. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indices.nim#L135" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4117. </dd>
  4118. </div>
  4119. <div id="[],openArray[T],BackwardsIndex">
  4120. <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2CopenArray%5BT%5D%2CBackwardsIndex"><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">s</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">i</span><span class="Other">:</span> <a href="system.html#BackwardsIndex"><span class="Identifier">BackwardsIndex</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> {.<span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">systemRaisesDefect</span>.}</pre></dt>
  4121. <dd>
  4122. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indices.nim#L22" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4123. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indices.nim#L22" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4124. </dd>
  4125. </div>
  4126. <div id="[],openArray[T],BackwardsIndex_2">
  4127. <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2CopenArray%5BT%5D%2CBackwardsIndex_2"><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">s</span><span class="Other">:</span> <span class="Keyword">var</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">i</span><span class="Other">:</span> <a href="system.html#BackwardsIndex"><span class="Identifier">BackwardsIndex</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">T</span> {.<span class="Identifier">inline</span><span class="Other">,</span>
  4128. <span class="Identifier">systemRaisesDefect</span>.}</pre></dt>
  4129. <dd>
  4130. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indices.nim#L29" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4131. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indices.nim#L29" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4132. </dd>
  4133. </div>
  4134. </div>
  4135. <div id="[]=-procs-all">
  4136. <div id="[]=,string,BackwardsIndex,char">
  4137. <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2Cstring%2CBackwardsIndex%2Cchar"><span class="Identifier">`[]=`</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">i</span><span class="Other">:</span> <a href="system.html#BackwardsIndex"><span class="Identifier">BackwardsIndex</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">inline</span><span class="Other">,</span>
  4138. <span class="Identifier">systemRaisesDefect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4139. <dd>
  4140. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indices.nim#L39" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4141. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indices.nim#L39" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4142. </dd>
  4143. </div>
  4144. <div id="[]=,T,I,sinkS">
  4145. <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 class="Identifier">noSideEffect</span><span class="Other">,</span>
  4146. <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ArrPut&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4147. <dd>
  4148. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L375" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4149. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L375" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4150. </dd>
  4151. </div>
  4152. <div id="[]=,array[Idx,T],HSlice[U: Ordinal,V: Ordinal],openArray[T]">
  4153. <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2Carray%5BIdx%2CT%5D%2CHSlice%5BU%3A%20Ordinal%2CV%3A%20Ordinal%5D%2CopenArray%5BT%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="Identifier">U</span><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">a</span><span class="Other">:</span> <span class="Keyword">var</span> <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="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>
  4154. <span class="Identifier">b</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">systemRaisesDefect</span>.}</pre></dt>
  4155. <dd>
  4156. <p>Slice assignment for arrays.</p>
  4157. <p><pre class="listing"><span class="Keyword">var</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>
  4158. <span class="Identifier">a</span><span class="Punctuation">[</span><span class="FloatNumber">1.</span><span class="Operator">.</span><span class="DecNumber">2</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">99</span><span class="Punctuation">,</span> <span class="DecNumber">88</span><span class="Punctuation">]</span>
  4159. <span class="Identifier">assert</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">99</span><span class="Punctuation">,</span> <span class="DecNumber">88</span><span class="Punctuation">,</span> <span class="DecNumber">40</span><span class="Punctuation">,</span> <span class="DecNumber">50</span><span class="Punctuation">]</span></pre></p>
  4160. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indices.nim#L121" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4161. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indices.nim#L121" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4162. </dd>
  4163. </div>
  4164. <div id="[]=,array[Idx,T],BackwardsIndex,T">
  4165. <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2Carray%5BIdx%2CT%5D%2CBackwardsIndex%2CT"><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> <span class="Keyword">var</span> <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="Identifier">i</span><span class="Other">:</span> <a href="system.html#BackwardsIndex"><span class="Identifier">BackwardsIndex</span></a><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">inline</span><span class="Other">,</span>
  4166. <span class="Identifier">systemRaisesDefect</span>.}</pre></dt>
  4167. <dd>
  4168. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indices.nim#L37" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4169. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indices.nim#L37" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4170. </dd>
  4171. </div>
  4172. <div id="[]=,string,HSlice[T: Ordinal,U: Ordinal],string">
  4173. <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2Cstring%2CHSlice%5BT%3A%20Ordinal%2CU%3A%20Ordinal%5D%2Cstring"><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> <a href="system.html#Ordinal"><span class="Identifier">Ordinal</span></a><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#string"><span class="Identifier">string</span></a><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">T</span><span class="Other">,</span> <span class="Identifier">U</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span> {.
  4174. <span class="Identifier">systemRaisesDefect</span>.}</pre></dt>
  4175. <dd>
  4176. <p>Slice assignment for strings.</p>
  4177. <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">b</span><span class="Operator">.</span><span class="Identifier">len</span></span></tt> is not exactly the number of elements that are referred to by <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>, a <span id="splice_1">splice</span> is performed: </p>
  4178. <p><strong class="examples_text">Example:</strong></p>
  4179. <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">s</span> <span class="Operator">=</span> <span class="StringLit">&quot;abcdefgh&quot;</span>
  4180. <span class="Identifier">s</span><span class="Punctuation">[</span><span class="DecNumber">1</span> <span class="Operator">..</span> <span class="Operator">^</span><span class="DecNumber">2</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="StringLit">&quot;xyz&quot;</span>
  4181. <span class="Identifier">assert</span> <span class="Identifier">s</span> <span class="Operator">==</span> <span class="StringLit">&quot;axyzh&quot;</span></pre>
  4182. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indices.nim#L88" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4183. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indices.nim#L88" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4184. </dd>
  4185. </div>
  4186. <div id="[]=,seq[T],HSlice[U: Ordinal,V: Ordinal],openArray[T]">
  4187. <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2Cseq%5BT%5D%2CHSlice%5BU%3A%20Ordinal%2CV%3A%20Ordinal%5D%2CopenArray%5BT%5D"><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="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">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">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="Identifier">b</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> {.
  4188. <span class="Identifier">systemRaisesDefect</span>.}</pre></dt>
  4189. <dd>
  4190. <p>Slice assignment for sequences.</p>
  4191. <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">b</span><span class="Operator">.</span><span class="Identifier">len</span></span></tt> is not exactly the number of elements that are referred to by <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>, a <span id="splice_2">splice</span> is performed.</p>
  4192. <p><strong class="examples_text">Example:</strong></p>
  4193. <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">s</span> <span class="Operator">=</span> <span class="Operator">@</span><span class="StringLit">&quot;abcdefgh&quot;</span>
  4194. <span class="Identifier">s</span><span class="Punctuation">[</span><span class="DecNumber">1</span> <span class="Operator">..</span> <span class="Operator">^</span><span class="DecNumber">2</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="Operator">@</span><span class="StringLit">&quot;xyz&quot;</span>
  4195. <span class="Identifier">assert</span> <span class="Identifier">s</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="StringLit">&quot;axyzh&quot;</span></pre>
  4196. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indices.nim#L150" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4197. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indices.nim#L150" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4198. </dd>
  4199. </div>
  4200. <div id="[]=,openArray[T],BackwardsIndex,T">
  4201. <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2CopenArray%5BT%5D%2CBackwardsIndex%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">s</span><span class="Other">:</span> <span class="Keyword">var</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">i</span><span class="Other">:</span> <a href="system.html#BackwardsIndex"><span class="Identifier">BackwardsIndex</span></a><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">inline</span><span class="Other">,</span>
  4202. <span class="Identifier">systemRaisesDefect</span>.}</pre></dt>
  4203. <dd>
  4204. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indices.nim#L35" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4205. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indices.nim#L35" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4206. </dd>
  4207. </div>
  4208. </div>
  4209. <div id="abs-procs-all">
  4210. <div id="abs,int">
  4211. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AbsI&quot;</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4212. <dd>
  4213. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1363" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4214. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1363" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4215. </dd>
  4216. </div>
  4217. <div id="abs,int8">
  4218. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AbsI&quot;</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  4219. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4220. <dd>
  4221. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1365" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4222. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1365" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4223. </dd>
  4224. </div>
  4225. <div id="abs,int16">
  4226. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AbsI&quot;</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  4227. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4228. <dd>
  4229. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1367" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4230. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1367" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4231. </dd>
  4232. </div>
  4233. <div id="abs,int32">
  4234. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AbsI&quot;</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  4235. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4236. <dd>
  4237. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1369" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4238. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1369" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4239. </dd>
  4240. </div>
  4241. <div id="abs,int64">
  4242. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AbsI&quot;</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  4243. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4244. <dd>
  4245. <p>Returns the absolute value of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
  4246. <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is <tt class="docutils literal"><span class="pre"><span class="Identifier">low</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span></span></tt> (that is -MININT for its type), an overflow exception is thrown (if overflow checking is turned on).</p>
  4247. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1371" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4248. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1371" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4249. </dd>
  4250. </div>
  4251. <div id="abs,T">
  4252. <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 class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span>.}</pre></dt>
  4253. <dd>
  4254. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1350" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4255. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1350" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4256. </dd>
  4257. </div>
  4258. </div>
  4259. <div id="add-procs-all">
  4260. <div id="add,cstring,cstring">
  4261. <dt><pre><span class="Keyword">proc</span> <a href="#add%2Ccstring%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#cstring"><span class="Identifier">cstring</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AppendStrStr&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  4262. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4263. <dd>
  4264. Appends <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> to <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> in place. Only implemented for JS backend.
  4265. <p><strong class="examples_text">Example:</strong></p>
  4266. <pre class="listing"><span class="Keyword">when</span> <span class="Identifier">defined</span><span class="Punctuation">(</span><span class="Identifier">js</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
  4267. <span class="Keyword">var</span> <span class="Identifier">tmp</span><span class="Punctuation">:</span> <span class="Identifier">cstring</span> <span class="Operator">=</span> <span class="StringLit">&quot;&quot;</span>
  4268. <span class="Identifier">tmp</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="Identifier">cstring</span><span class="Punctuation">(</span><span class="StringLit">&quot;ab&quot;</span><span class="Punctuation">)</span><span class="Punctuation">)</span>
  4269. <span class="Identifier">tmp</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="Identifier">cstring</span><span class="Punctuation">(</span><span class="StringLit">&quot;cd&quot;</span><span class="Punctuation">)</span><span class="Punctuation">)</span>
  4270. <span class="Identifier">doAssert</span> <span class="Identifier">tmp</span> <span class="Operator">==</span> <span class="Identifier">cstring</span><span class="Punctuation">(</span><span class="StringLit">&quot;abcd&quot;</span><span class="Punctuation">)</span></pre>
  4271. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1901" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4272. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1901" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4273. </dd>
  4274. </div>
  4275. <div id="add,string,char">
  4276. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AppendStrCh&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  4277. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4278. <dd>
  4279. <p>Appends <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> to <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> in place.</p>
  4280. <p><pre class="listing"><span class="Keyword">var</span> <span class="Identifier">tmp</span> <span class="Operator">=</span> <span class="StringLit">&quot;&quot;</span>
  4281. <span class="Identifier">tmp</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">')</span>
  4282. <span class="Identifier">tmp</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">')</span>
  4283. <span class="Identifier">assert</span><span class="Punctuation">(</span><span class="Identifier">tmp</span> <span class="Operator">==</span> <span class="StringLit">&quot;ab&quot;</span><span class="Punctuation">)</span></pre></p>
  4284. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1016" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4285. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1016" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4286. </dd>
  4287. </div>
  4288. <div id="add,string,cstring">
  4289. <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 class="Identifier">asmNoStackFrame</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  4290. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4291. <dd>
  4292. Appends <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> to <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> in place.
  4293. <p><strong class="examples_text">Example:</strong></p>
  4294. <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">tmp</span> <span class="Operator">=</span> <span class="StringLit">&quot;&quot;</span>
  4295. <span class="Identifier">tmp</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="Identifier">cstring</span><span class="Punctuation">(</span><span class="StringLit">&quot;ab&quot;</span><span class="Punctuation">)</span><span class="Punctuation">)</span>
  4296. <span class="Identifier">tmp</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="Identifier">cstring</span><span class="Punctuation">(</span><span class="StringLit">&quot;cd&quot;</span><span class="Punctuation">)</span><span class="Punctuation">)</span>
  4297. <span class="Identifier">doAssert</span> <span class="Identifier">tmp</span> <span class="Operator">==</span> <span class="StringLit">&quot;abcd&quot;</span></pre>
  4298. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1886" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4299. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1886" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4300. </dd>
  4301. </div>
  4302. <div id="add,string,string">
  4303. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AppendStrStr&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  4304. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4305. <dd>
  4306. <p>Concatenates <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> in place.</p>
  4307. <p>See also <tt class="docutils literal"><span class="pre"><span class="Identifier">strbasics</span><span class="Operator">.</span><span class="Identifier">add</span></span></tt>.</p>
  4308. <p><strong class="examples_text">Example:</strong></p>
  4309. <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">tmp</span> <span class="Operator">=</span> <span class="StringLit">&quot;&quot;</span>
  4310. <span class="Identifier">tmp</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="StringLit">&quot;ab&quot;</span><span class="Punctuation">)</span>
  4311. <span class="Identifier">tmp</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="StringLit">&quot;cd&quot;</span><span class="Punctuation">)</span>
  4312. <span class="Identifier">assert</span> <span class="Identifier">tmp</span> <span class="Operator">==</span> <span class="StringLit">&quot;abcd&quot;</span></pre>
  4313. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1025" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4314. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1025" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4315. </dd>
  4316. </div>
  4317. <div id="add,seq[T],openArray[T]">
  4318. <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 class="Identifier">noSideEffect</span>.}</pre></dt>
  4319. <dd>
  4320. <p>Generic proc for adding a container <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> to a container <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
  4321. <p>For containers that have an order, <tt class="docutils literal"><span class="pre"><span class="Identifier">add</span></span></tt> means <em>append</em>. New generic containers should also call their adding proc <tt class="docutils literal"><span class="pre"><span class="Identifier">add</span></span></tt> for consistency. Generic code becomes much easier to write if the Nim naming scheme is respected.</p>
  4322. <p>See also:</p>
  4323. <ul class="simple"><li><a class="reference external" href="#&amp;,seq[T],seq[T]">&amp; proc</a></li>
  4324. </ul>
  4325. <p><strong class="examples_text">Example:</strong></p>
  4326. <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="StringLit">&quot;a1&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;a2&quot;</span><span class="Punctuation">]</span>
  4327. <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="Punctuation">[</span><span class="StringLit">&quot;b1&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;b2&quot;</span><span class="Punctuation">]</span><span class="Punctuation">)</span>
  4328. <span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">&quot;a1&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;a2&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;b1&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;b2&quot;</span><span class="Punctuation">]</span>
  4329. <span class="Keyword">var</span> <span class="Identifier">c</span> <span class="Operator">=</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">&quot;c0&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;c1&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;c2&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;c3&quot;</span><span class="Punctuation">]</span>
  4330. <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="Identifier">c</span><span class="Operator">.</span><span class="Identifier">toOpenArray</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="Punctuation">)</span>
  4331. <span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">&quot;a1&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;a2&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;b1&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;b2&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;c1&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;c2&quot;</span><span class="Punctuation">]</span></pre>
  4332. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1185" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4333. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1185" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4334. </dd>
  4335. </div>
  4336. <div id="add,seq[T],sinkT">
  4337. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AppendSeqElem&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  4338. <span class="Identifier">nodestroy</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  4339. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4340. <dd>
  4341. <p>Generic proc for adding a data item <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> to a container <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
  4342. <p>For containers that have an order, <tt class="docutils literal"><span class="pre"><span class="Identifier">add</span></span></tt> means <em>append</em>. New generic containers should also call their adding proc <tt class="docutils literal"><span class="pre"><span class="Identifier">add</span></span></tt> for consistency. Generic code becomes much easier to write if the Nim naming scheme is respected.</p>
  4343. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/seqs_v2.nim#L153" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4344. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/seqs_v2.nim#L153" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4345. </dd>
  4346. </div>
  4347. </div>
  4348. <div id="addEscapedChar-procs-all">
  4349. <div id="addEscapedChar,string,char">
  4350. <dt><pre><span class="Keyword">proc</span> <a href="#addEscapedChar%2Cstring%2Cchar"><span class="Identifier">addEscapedChar</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">c</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">)</span> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  4351. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4352. <dd>
  4353. Adds a char to string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> and applies the following escaping:<ul class="simple"><li>replaces any <tt class="docutils literal"><span class="pre">\</span></tt> by <tt class="docutils literal"><span class="pre"><span class="Operator">\\</span></span></tt></li>
  4354. <li>replaces any <tt class="docutils literal"><span class="pre"><span class="CharLit">'</span></span></tt> by <tt class="docutils literal"><span class="pre"><span class="Operator">\</span><span class="CharLit">'</span></span></tt></li>
  4355. <li>replaces any <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;</span></span></tt> by <tt class="docutils literal"><span class="pre"><span class="Operator">\</span><span class="StringLit">&quot;</span></span></tt></li>
  4356. <li>replaces any <tt class="docutils literal"><span class="pre"><span class="Operator">\</span><span class="Identifier">a</span></span></tt> by <tt class="docutils literal"><span class="pre"><span class="Operator">\\</span><span class="Identifier">a</span></span></tt></li>
  4357. <li>replaces any <tt class="docutils literal"><span class="pre"><span class="Operator">\</span><span class="Identifier">b</span></span></tt> by <tt class="docutils literal"><span class="pre"><span class="Operator">\\</span><span class="Identifier">b</span></span></tt></li>
  4358. <li>replaces any <tt class="docutils literal"><span class="pre"><span class="Operator">\</span><span class="Identifier">t</span></span></tt> by <tt class="docutils literal"><span class="pre"><span class="Operator">\\</span><span class="Identifier">t</span></span></tt></li>
  4359. <li>replaces any <tt class="docutils literal"><span class="pre"><span class="Operator">\</span><span class="Identifier">n</span></span></tt> by <tt class="docutils literal"><span class="pre"><span class="Operator">\\</span><span class="Identifier">n</span></span></tt></li>
  4360. <li>replaces any <tt class="docutils literal"><span class="pre"><span class="Operator">\</span><span class="Identifier">v</span></span></tt> by <tt class="docutils literal"><span class="pre"><span class="Operator">\\</span><span class="Identifier">v</span></span></tt></li>
  4361. <li>replaces any <tt class="docutils literal"><span class="pre"><span class="Operator">\</span><span class="Identifier">f</span></span></tt> by <tt class="docutils literal"><span class="pre"><span class="Operator">\\</span><span class="Identifier">f</span></span></tt></li>
  4362. <li>replaces any <tt class="docutils literal"><span class="pre"><span class="Operator">\</span><span class="Identifier">r</span></span></tt> by <tt class="docutils literal"><span class="pre"><span class="Operator">\\</span><span class="Identifier">r</span></span></tt></li>
  4363. <li>replaces any <tt class="docutils literal"><span class="pre"><span class="Operator">\</span><span class="Identifier">e</span></span></tt> by <tt class="docutils literal"><span class="pre"><span class="Operator">\\</span><span class="Identifier">e</span></span></tt></li>
  4364. <li>replaces any other character not in the set <tt class="docutils literal"><span class="pre"><span class="Punctuation">{</span><span class="Operator">\</span><span class="FloatNumber">21.</span><span class="Operator">.\</span><span class="DecNumber">126</span><span class="Punctuation">}</span></span></tt> by <tt class="docutils literal"><span class="pre"><span class="Operator">\</span><span class="Identifier">xHH</span></span></tt> where <tt class="docutils literal"><span class="pre"><span class="Identifier">HH</span></span></tt> is its hexadecimal value</li>
  4365. </ul>
  4366. <p>The procedure has been designed so that its output is usable for many different common syntaxes.</p>
  4367. <div class="admonition admonition-warning"><span class="admonition-warning-text"><b>Warning:</b></span>
  4368. This is <strong>not correct</strong> for producing ANSI C code!</div>
  4369. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2573" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4370. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2573" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4371. </dd>
  4372. </div>
  4373. </div>
  4374. <div id="addQuoted-procs-all">
  4375. <div id="addQuoted,string,T">
  4376. <dt><pre><span class="Keyword">proc</span> <a href="#addQuoted%2Cstring%2CT"><span class="Identifier">addQuoted</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#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span></pre></dt>
  4377. <dd>
  4378. <p>Appends <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> to string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> in place, applying quoting and escaping if <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is a string or char.</p>
  4379. <p>See <a class="reference external" href="#addEscapedChar,string,char">addEscapedChar</a> for the escaping scheme. When <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is a string, characters in the range <tt class="docutils literal"><span class="pre"><span class="Punctuation">{</span><span class="Operator">\</span><span class="FloatNumber">128.</span><span class="Operator">.\</span><span class="DecNumber">255</span><span class="Punctuation">}</span></span></tt> are never escaped so that multibyte UTF-8 characters are untouched (note that this behavior is different from <tt class="docutils literal"><span class="pre"><span class="Identifier">addEscapedChar</span></span></tt>).</p>
  4380. <p>The Nim standard library uses this function on the elements of collections when producing a string representation of a collection. It is recommended to use this function as well for user-side collections. Users may overload <tt class="docutils literal"><span class="pre"><span class="Identifier">addQuoted</span></span></tt> for custom (string-like) types if they want to implement a customized element representation.</p>
  4381. <p><pre class="listing"><span class="Keyword">var</span> <span class="Identifier">tmp</span> <span class="Operator">=</span> <span class="StringLit">&quot;&quot;</span>
  4382. <span class="Identifier">tmp</span><span class="Operator">.</span><span class="Identifier">addQuoted</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">)</span>
  4383. <span class="Identifier">tmp</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="StringLit">&quot;, &quot;</span><span class="Punctuation">)</span>
  4384. <span class="Identifier">tmp</span><span class="Operator">.</span><span class="Identifier">addQuoted</span><span class="Punctuation">(</span><span class="StringLit">&quot;string&quot;</span><span class="Punctuation">)</span>
  4385. <span class="Identifier">tmp</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="StringLit">&quot;, &quot;</span><span class="Punctuation">)</span>
  4386. <span class="Identifier">tmp</span><span class="Operator">.</span><span class="Identifier">addQuoted</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">c</span><span class="CharLit">')</span>
  4387. <span class="Identifier">assert</span><span class="Punctuation">(</span><span class="Identifier">tmp</span> <span class="Operator">==</span> <span class="LongStringLit">&quot;&quot;&quot;1, &quot;string&quot;, 'c'&quot;&quot;&quot;</span><span class="Punctuation">)</span></pre></p>
  4388. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2615" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4389. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2615" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4390. </dd>
  4391. </div>
  4392. </div>
  4393. <div id="addr-procs-all">
  4394. <div id="addr,T">
  4395. <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="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">T</span> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Addr&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  4396. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4397. <dd>
  4398. Builtin <tt class="docutils literal"><span class="pre"><span class="Keyword">addr</span></span></tt> operator for taking the address of a memory location.<div class="admonition admonition-info"><span class="admonition-info-text"><b>Note:</b></span>
  4399. This works for <tt class="docutils literal"><span class="pre"><span class="Keyword">let</span></span></tt> variables or parameters for better interop with C. When you use it to write a wrapper for a C library and take the address of <tt class="docutils literal"><span class="pre"><span class="Keyword">let</span></span></tt> variables or parameters, you should always check that the original library does never write to data behind the pointer that is returned from this procedure.</div>
  4400. <p>Cannot be overloaded.</p>
  4401. <p><pre class="listing"><span class="Keyword">var</span>
  4402. <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="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">','</span><span class="Identifier">b</span><span class="CharLit">','</span><span class="Identifier">c</span><span class="CharLit">']</span>
  4403. <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>
  4404. <span class="Identifier">echo</span> <span class="Identifier">p</span><span class="Operator">.</span><span class="Identifier">repr</span> <span class="Comment"># ref 0x7faa35c40059 --&gt; 'b'</span>
  4405. <span class="Identifier">echo</span> <span class="Identifier">p</span><span class="Punctuation">[</span><span class="Punctuation">]</span> <span class="Comment"># b</span></pre></p>
  4406. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L99" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4407. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L99" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4408. </dd>
  4409. </div>
  4410. </div>
  4411. <div id="alignof-procs-all">
  4412. <div id="alignof,typedesc">
  4413. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AlignOf&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  4414. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4415. <dd>
  4416. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L600" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4417. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L600" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4418. </dd>
  4419. </div>
  4420. <div id="alignof,T">
  4421. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AlignOf&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  4422. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4423. <dd>
  4424. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L599" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4425. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L599" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4426. </dd>
  4427. </div>
  4428. </div>
  4429. <div id="alloc0Impl-procs-all">
  4430. <div id="alloc0Impl,Natural">
  4431. <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 class="Identifier">noconv</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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>
  4432. <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4433. <dd>
  4434. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L52" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4435. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L52" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4436. </dd>
  4437. </div>
  4438. </div>
  4439. <div id="allocCStringArray-procs-all">
  4440. <div id="allocCStringArray,openArray[string]">
  4441. <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="ctypes.html#cstringArray"><span class="Identifier">cstringArray</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  4442. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4443. <dd>
  4444. Creates a NULL terminated cstringArray from <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt>. The result has to be freed with <tt class="docutils literal"><span class="pre"><span class="Identifier">deallocCStringArray</span></span></tt> after it's not needed anymore.
  4445. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2138" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4446. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2138" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4447. </dd>
  4448. </div>
  4449. </div>
  4450. <div id="allocImpl-procs-all">
  4451. <div id="allocImpl,Natural">
  4452. <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 class="Identifier">noconv</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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>
  4453. <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4454. <dd>
  4455. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L51" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4456. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L51" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4457. </dd>
  4458. </div>
  4459. </div>
  4460. <div id="allocShared0Impl-procs-all">
  4461. <div id="allocShared0Impl,Natural">
  4462. <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 class="Identifier">noconv</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span>
  4463. <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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4464. <dd>
  4465. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L58" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4466. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L58" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4467. </dd>
  4468. </div>
  4469. </div>
  4470. <div id="allocSharedImpl-procs-all">
  4471. <div id="allocSharedImpl,Natural">
  4472. <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 class="Identifier">noconv</span><span class="Other">,</span> <span class="Identifier">compilerproc</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span>
  4473. <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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4474. <dd>
  4475. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L57" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4476. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L57" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4477. </dd>
  4478. </div>
  4479. </div>
  4480. <div id="and-procs-all">
  4481. <div id="and,typedesc,typedesc">
  4482. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;TypeTrait&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  4483. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4484. <dd>
  4485. Constructs an <tt class="docutils literal"><span class="pre"><span class="Keyword">and</span></span></tt> meta class.
  4486. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L82" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4487. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L82" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4488. </dd>
  4489. </div>
  4490. <div id="and,bool,bool">
  4491. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;And&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  4492. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4493. <dd>
  4494. <p>Boolean <tt class="docutils literal"><span class="pre"><span class="Keyword">and</span></span></tt>; returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span> <span class="Operator">==</span> <span class="Identifier">y</span> <span class="Operator">==</span> <span class="Identifier">true</span></span></tt> (if both arguments are true).</p>
  4495. <p>Evaluation is lazy: if <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is false, <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> will not even be evaluated.</p>
  4496. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L79" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4497. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L79" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4498. </dd>
  4499. </div>
  4500. <div id="and,int,int">
  4501. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitandI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  4502. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4503. <dd>
  4504. Computes the <tt class="docutils literal"><span class="pre"><span class="Identifier">bitwise</span> <span class="Keyword">and</span></span></tt> of numbers <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.
  4505. <p><strong class="examples_text">Example:</strong></p>
  4506. <pre class="listing"><span class="Identifier">assert</span> <span class="Punctuation">(</span><span class="BinNumber">0b0011</span> <span class="Keyword">and</span> <span class="BinNumber">0b0101</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="BinNumber">0b0001</span>
  4507. <span class="Identifier">assert</span> <span class="Punctuation">(</span><span class="BinNumber">0b0111</span> <span class="Keyword">and</span> <span class="BinNumber">0b1100</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="BinNumber">0b0100</span></pre>
  4508. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L189" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4509. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L189" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4510. </dd>
  4511. </div>
  4512. <div id="and,int8,int8">
  4513. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitandI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  4514. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4515. <dd>
  4516. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L194" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4517. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L194" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4518. </dd>
  4519. </div>
  4520. <div id="and,int16,int16">
  4521. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitandI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  4522. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4523. <dd>
  4524. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L195" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4525. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L195" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4526. </dd>
  4527. </div>
  4528. <div id="and,int32,int32">
  4529. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitandI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  4530. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4531. <dd>
  4532. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L196" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4533. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L196" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4534. </dd>
  4535. </div>
  4536. <div id="and,int64,int64">
  4537. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitandI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  4538. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4539. <dd>
  4540. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L197" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4541. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L197" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4542. </dd>
  4543. </div>
  4544. <div id="and,uint,uint">
  4545. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitandI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  4546. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4547. <dd>
  4548. Computes the <tt class="docutils literal"><span class="pre"><span class="Identifier">bitwise</span> <span class="Keyword">and</span></span></tt> of numbers <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.
  4549. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L241" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4550. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L241" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4551. </dd>
  4552. </div>
  4553. <div id="and,uint8,uint8">
  4554. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitandI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  4555. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4556. <dd>
  4557. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L243" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4558. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L243" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4559. </dd>
  4560. </div>
  4561. <div id="and,uint16,uint16">
  4562. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitandI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  4563. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4564. <dd>
  4565. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L244" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4566. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L244" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4567. </dd>
  4568. </div>
  4569. <div id="and,uint32,uint32">
  4570. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitandI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  4571. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4572. <dd>
  4573. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L245" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4574. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L245" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4575. </dd>
  4576. </div>
  4577. <div id="and,uint64,uint64">
  4578. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitandI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  4579. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4580. <dd>
  4581. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L246" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4582. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L246" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4583. </dd>
  4584. </div>
  4585. </div>
  4586. <div id="arrayWith-procs-all">
  4587. <div id="arrayWith,T,staticint">
  4588. <dt><pre><span class="Keyword">proc</span> <a href="#arrayWith%2CT%2Cstaticint"><span class="Identifier">arrayWith</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="Identifier">size</span><span class="Other">:</span> <a href="system.html#static"><span class="Identifier">static</span></a> <span class="Identifier">int</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#array"><span class="Identifier">array</span></a><span class="Other">[</span><span class="Identifier">size</span><span class="Other">,</span> <span class="Identifier">T</span><span class="Other">]</span> {.<span class="Identifier">noinit</span><span class="Other">,</span> <span class="Identifier">nodestroy</span><span class="Other">,</span>
  4589. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4590. <dd>
  4591. Creates a new array filled with <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.
  4592. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2968" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4593. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2968" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4594. </dd>
  4595. </div>
  4596. </div>
  4597. <div id="arrayWithDefault-procs-all">
  4598. <div id="arrayWithDefault,staticint">
  4599. <dt><pre><span class="Keyword">proc</span> <a href="#arrayWithDefault%2Cstaticint"><span class="Identifier">arrayWithDefault</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">size</span><span class="Other">:</span> <a href="system.html#static"><span class="Identifier">static</span></a> <span class="Identifier">int</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#array"><span class="Identifier">array</span></a><span class="Other">[</span><span class="Identifier">size</span><span class="Other">,</span> <span class="Identifier">T</span><span class="Other">]</span> {.<span class="Identifier">noinit</span><span class="Other">,</span> <span class="Identifier">nodestroy</span><span class="Other">,</span>
  4600. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4601. <dd>
  4602. Creates a new array filled with <tt class="docutils literal"><span class="pre"><span class="Identifier">default</span><span class="Punctuation">(</span><span class="Identifier">T</span><span class="Punctuation">)</span></span></tt>.
  4603. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2977" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4604. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2977" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4605. </dd>
  4606. </div>
  4607. </div>
  4608. <div id="ashr-procs-all">
  4609. <div id="ashr,int8,SomeInteger">
  4610. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AshrI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  4611. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4612. <dd>
  4613. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L184" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4614. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L184" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4615. </dd>
  4616. </div>
  4617. <div id="ashr,int16,SomeInteger">
  4618. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AshrI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  4619. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4620. <dd>
  4621. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L185" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4622. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L185" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4623. </dd>
  4624. </div>
  4625. <div id="ashr,int32,SomeInteger">
  4626. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AshrI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  4627. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4628. <dd>
  4629. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L186" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4630. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L186" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4631. </dd>
  4632. </div>
  4633. <div id="ashr,int64,SomeInteger">
  4634. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AshrI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  4635. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4636. <dd>
  4637. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L187" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4638. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L187" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4639. </dd>
  4640. </div>
  4641. <div id="ashr,int,SomeInteger">
  4642. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AshrI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  4643. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4644. <dd>
  4645. <p>Shifts right by pushing copies of the leftmost bit in from the left, and let the rightmost bits fall off.</p>
  4646. <p>Note that <tt class="docutils literal"><span class="pre"><span class="Identifier">ashr</span></span></tt> is not an operator so use the normal function call syntax for it.</p>
  4647. <p>See also:</p>
  4648. <ul class="simple"><li><a class="reference external" href="#shr,int,SomeInteger">shr func</a></li>
  4649. </ul>
  4650. <p><strong class="examples_text">Example:</strong></p>
  4651. <pre class="listing"><span class="Identifier">assert</span> <span class="Identifier">ashr</span><span class="Punctuation">(</span><span class="BinNumber">0b0001_0000'i8</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="BinNumber">0b0000_0100'i8</span>
  4652. <span class="Identifier">assert</span> <span class="Identifier">ashr</span><span class="Punctuation">(</span><span class="BinNumber">0b1000_0000'i8</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="BinNumber">0b1111_1111'i8</span>
  4653. <span class="Identifier">assert</span> <span class="Identifier">ashr</span><span class="Punctuation">(</span><span class="BinNumber">0b1000_0000'i8</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="BinNumber">0b1100_0000'i8</span></pre>
  4654. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L171" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4655. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L171" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4656. </dd>
  4657. </div>
  4658. </div>
  4659. <div id="astToStr-procs-all">
  4660. <div id="astToStr,T">
  4661. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AstToStr&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  4662. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4663. <dd>
  4664. Converts the AST of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> into a string representation. This is very useful for debugging.
  4665. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/compilation.nim#L83" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4666. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/compilation.nim#L83" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4667. </dd>
  4668. </div>
  4669. </div>
  4670. <div id="capacity-procs-all">
  4671. <div id="capacity,string">
  4672. <dt><pre><span class="Keyword">func</span> <a href="#capacity%2Cstring"><span class="Identifier">capacity</span></a><span class="Other">(</span><span class="Identifier">self</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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4673. <dd>
  4674. Returns the current capacity of the string.
  4675. <p><strong class="examples_text">Example:</strong></p>
  4676. <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">str</span> <span class="Operator">=</span> <span class="Identifier">newStringOfCap</span><span class="Punctuation">(</span><span class="Identifier">cap</span> <span class="Operator">=</span> <span class="DecNumber">42</span><span class="Punctuation">)</span>
  4677. <span class="Identifier">str</span><span class="Operator">.</span><span class="Identifier">add</span> <span class="StringLit">&quot;Nim&quot;</span>
  4678. <span class="Identifier">assert</span> <span class="Identifier">str</span><span class="Operator">.</span><span class="Identifier">capacity</span> <span class="Operator">==</span> <span class="DecNumber">42</span></pre>
  4679. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/strs_v2.nim#L216" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4680. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/strs_v2.nim#L216" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4681. </dd>
  4682. </div>
  4683. <div id="capacity,seq[T]">
  4684. <dt><pre><span class="Keyword">func</span> <a href="#capacity%2Cseq%5BT%5D"><span class="Identifier">capacity</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">self</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 class="Identifier">inline</span>.}</pre></dt>
  4685. <dd>
  4686. Returns the current capacity of the seq.
  4687. <p><strong class="examples_text">Example:</strong></p>
  4688. <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">lst</span> <span class="Operator">=</span> <span class="Identifier">newSeqOfCap</span><span class="Punctuation">[</span><span class="Identifier">string</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Identifier">cap</span> <span class="Operator">=</span> <span class="DecNumber">42</span><span class="Punctuation">)</span>
  4689. <span class="Identifier">lst</span><span class="Operator">.</span><span class="Identifier">add</span> <span class="StringLit">&quot;Nim&quot;</span>
  4690. <span class="Identifier">assert</span> <span class="Identifier">lst</span><span class="Operator">.</span><span class="Identifier">capacity</span> <span class="Operator">==</span> <span class="DecNumber">42</span></pre>
  4691. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/seqs_v2.nim#L194" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4692. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/seqs_v2.nim#L194" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4693. </dd>
  4694. </div>
  4695. </div>
  4696. <div id="card-procs-all">
  4697. <div id="card,set[T]">
  4698. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Card&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4699. <dd>
  4700. Returns the cardinality of the set <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>, i.e. the number of elements in the set.
  4701. <p><strong class="examples_text">Example:</strong></p>
  4702. <pre class="listing"><span class="Keyword">var</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="DecNumber">7</span><span class="Punctuation">}</span>
  4703. <span class="Identifier">assert</span> <span class="Identifier">card</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">4</span>
  4704. <span class="Keyword">var</span> <span class="Identifier">b</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="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">}</span>
  4705. <span class="Identifier">assert</span> <span class="Identifier">card</span><span class="Punctuation">(</span><span class="Identifier">b</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">4</span> <span class="Comment"># repeated 5 doesn't count</span></pre>
  4706. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/setops.nim#L42" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4707. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/setops.nim#L42" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4708. </dd>
  4709. </div>
  4710. </div>
  4711. <div id="chr-procs-all">
  4712. <div id="chr,range[]">
  4713. <dt><pre><span class="Keyword">func</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Chr&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  4714. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4715. <dd>
  4716. Converts <tt class="docutils literal"><span class="pre"><span class="Identifier">u</span></span></tt> to a <tt class="docutils literal"><span class="pre"><span class="Identifier">char</span></span></tt>, same as <tt class="docutils literal"><span class="pre"><span class="Identifier">char</span><span class="Punctuation">(</span><span class="Identifier">u</span><span class="Punctuation">)</span></span></tt>.
  4717. <p><strong class="examples_text">Example:</strong></p>
  4718. <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">chr</span><span class="Punctuation">(</span><span class="DecNumber">65</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="CharLit">'A'</span>
  4719. <span class="Identifier">doAssert</span> <span class="Identifier">chr</span><span class="Punctuation">(</span><span class="DecNumber">255</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="CharLit">'\255'</span>
  4720. <span class="Identifier">doAssert</span> <span class="Identifier">chr</span><span class="Punctuation">(</span><span class="DecNumber">255</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">char</span><span class="Punctuation">(</span><span class="DecNumber">255</span><span class="Punctuation">)</span>
  4721. <span class="Identifier">doAssert</span> <span class="Keyword">not</span> <span class="Identifier">compiles</span> <span class="Identifier">chr</span><span class="Punctuation">(</span><span class="DecNumber">256</span><span class="Punctuation">)</span>
  4722. <span class="Identifier">doAssert</span> <span class="Keyword">not</span> <span class="Identifier">compiles</span> <span class="Identifier">char</span><span class="Punctuation">(</span><span class="DecNumber">256</span><span class="Punctuation">)</span>
  4723. <span class="Keyword">var</span> <span class="Identifier">x</span> <span class="Operator">=</span> <span class="DecNumber">256</span>
  4724. <span class="Identifier">doAssertRaises</span><span class="Punctuation">(</span><span class="Identifier">RangeDefect</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Keyword">discard</span> <span class="Identifier">chr</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span>
  4725. <span class="Identifier">doAssertRaises</span><span class="Punctuation">(</span><span class="Identifier">RangeDefect</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Keyword">discard</span> <span class="Identifier">char</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span></pre>
  4726. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L730" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4727. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L730" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4728. </dd>
  4729. </div>
  4730. </div>
  4731. <div id="clamp-procs-all">
  4732. <div id="clamp,T,T,T">
  4733. <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>
  4734. <dd>
  4735. Limits the value <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> within the interval [a, b]. This proc is equivalent to but faster than <tt class="docutils literal"><span class="pre"><span class="Identifier">max</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">,</span> <span class="Identifier">min</span><span class="Punctuation">(</span><span class="Identifier">b</span><span class="Punctuation">,</span> <span class="Identifier">x</span><span class="Punctuation">)</span><span class="Punctuation">)</span></span></tt>.<div class="admonition admonition-warning"><span class="admonition-warning-text"><b>Warning:</b></span>
  4736. <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span> <span class="Operator">&lt;=</span> <span class="Identifier">b</span></span></tt> is assumed and will not be checked (currently).</div>
  4737. <p><strong>See also:</strong> <tt class="docutils literal"><span class="pre"><span class="Identifier">math</span><span class="Operator">.</span><span class="Identifier">clamp</span></span></tt> for a version that takes a <tt class="docutils literal"><span class="pre"><span class="Identifier">Slice</span><span class="Punctuation">[</span><span class="Identifier">T</span><span class="Punctuation">]</span></span></tt> instead.</p>
  4738. <p><strong class="examples_text">Example:</strong></p>
  4739. <pre class="listing"><span class="Identifier">assert</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="FloatNumber">1.0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="FloatNumber">1.0</span>
  4740. <span class="Identifier">assert</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="FloatNumber">1.0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="FloatNumber">0.5</span>
  4741. <span class="Identifier">assert</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="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">max</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="Identifier">min</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>
  4742. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L277" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4743. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L277" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4744. </dd>
  4745. </div>
  4746. </div>
  4747. <div id="cmp-procs-all">
  4748. <div id="cmp,string,string">
  4749. <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 class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4750. <dd>
  4751. <p>Compare proc for strings. More efficient than the generic version.</p>
  4752. <p><strong>Note</strong>: The precise result values depend on the used C runtime library and can differ between operating systems!</p>
  4753. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L896" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4754. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L896" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4755. </dd>
  4756. </div>
  4757. <div id="cmp,T,T">
  4758. <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>
  4759. <dd>
  4760. <p>Generic compare proc.</p>
  4761. <p>Returns:</p>
  4762. <ul class="simple"><li>a value less than zero, if <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span> <span class="Operator">&lt;</span> <span class="Identifier">y</span></span></tt></li>
  4763. <li>a value greater than zero, if <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span> <span class="Operator">&gt;</span> <span class="Identifier">y</span></span></tt></li>
  4764. <li>zero, if <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span> <span class="Operator">==</span> <span class="Identifier">y</span></span></tt></li>
  4765. </ul>
  4766. <p>This is useful for writing generic algorithms without performance loss. This generic implementation uses the <tt class="docutils literal"><span class="pre"><span class="Operator">==</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Operator">&lt;</span></span></tt> operators.</p>
  4767. <p><pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">algorithm</span>
  4768. <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></p>
  4769. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L878" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4770. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L878" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4771. </dd>
  4772. </div>
  4773. </div>
  4774. <div id="cmpMem-procs-all">
  4775. <div id="cmpMem,pointer,pointer,Natural">
  4776. <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 class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  4777. <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4778. <dd>
  4779. <p>Compares the memory blocks <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">b</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">size</span></span></tt> bytes will be compared.</p>
  4780. <p>Returns:</p>
  4781. <ul class="simple"><li>a value less than zero, if <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span> <span class="Operator">&lt;</span> <span class="Identifier">b</span></span></tt></li>
  4782. <li>a value greater than zero, if <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span> <span class="Operator">&gt;</span> <span class="Identifier">b</span></span></tt></li>
  4783. <li>zero, if <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span> <span class="Operator">==</span> <span class="Identifier">b</span></span></tt></li>
  4784. </ul>
  4785. <p>Like any procedure dealing with raw memory this is <strong>unsafe</strong>.</p>
  4786. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L36" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4787. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L36" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4788. </dd>
  4789. </div>
  4790. </div>
  4791. <div id="compileOption-procs-all">
  4792. <div id="compileOption,string,string">
  4793. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;CompileOptionArg&quot;</span><span class="Other">,</span>
  4794. <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4795. <dd>
  4796. <p>Can be used to determine an enum compile-time option.</p>
  4797. <p>See also:</p>
  4798. <ul class="simple"><li><a class="reference external" href="#compileOption,string">compileOption</a> for <tt class="docutils literal"><span class="pre"><span class="Identifier">on</span><span class="Operator">|</span><span class="Identifier">off</span></span></tt> options</li>
  4799. <li><a class="reference external" href="#defined,untyped">defined</a></li>
  4800. <li><a class="reference external" href="compilesettings.html">std/compilesettings module</a></li>
  4801. </ul>
  4802. <p><strong class="examples_text">Example:</strong></p>
  4803. <pre class="listing"><span class="Keyword">when</span> <span class="Identifier">compileOption</span><span class="Punctuation">(</span><span class="StringLit">&quot;opt&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;size&quot;</span><span class="Punctuation">)</span> <span class="Keyword">and</span> <span class="Identifier">compileOption</span><span class="Punctuation">(</span><span class="StringLit">&quot;gc&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;boehm&quot;</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
  4804. <span class="Keyword">discard</span> <span class="StringLit">&quot;compiled with optimization for size and uses Boehm's GC&quot;</span></pre>
  4805. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/compilation.nim#L131" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4806. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/compilation.nim#L131" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4807. </dd>
  4808. </div>
  4809. <div id="compileOption,string">
  4810. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;CompileOption&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  4811. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4812. <dd>
  4813. <p>Can be used to determine an <tt class="docutils literal"><span class="pre"><span class="Identifier">on</span><span class="Operator">|</span><span class="Identifier">off</span></span></tt> compile-time option.</p>
  4814. <p>See also:</p>
  4815. <ul class="simple"><li><a class="reference external" href="#compileOption,string,string">compileOption</a> for enum options</li>
  4816. <li><a class="reference external" href="#defined,untyped">defined</a></li>
  4817. <li><a class="reference external" href="compilesettings.html">std/compilesettings module</a></li>
  4818. </ul>
  4819. <p><strong class="examples_text">Example: cmd: --floatChecks:off</strong></p>
  4820. <pre class="listing"><span class="Keyword">static</span><span class="Punctuation">:</span> <span class="Identifier">doAssert</span> <span class="Keyword">not</span> <span class="Identifier">compileOption</span><span class="Punctuation">(</span><span class="StringLit">&quot;floatchecks&quot;</span><span class="Punctuation">)</span>
  4821. <span class="Punctuation">{</span><span class="Operator">.</span><span class="Identifier">push</span> <span class="Identifier">floatChecks</span><span class="Punctuation">:</span> <span class="Identifier">on</span><span class="Operator">.</span><span class="Punctuation">}</span>
  4822. <span class="Keyword">static</span><span class="Punctuation">:</span> <span class="Identifier">doAssert</span> <span class="Identifier">compileOption</span><span class="Punctuation">(</span><span class="StringLit">&quot;floatchecks&quot;</span><span class="Punctuation">)</span>
  4823. <span class="Comment"># floating point NaN and Inf checks enabled in this scope</span>
  4824. <span class="Punctuation">{</span><span class="Operator">.</span><span class="Identifier">pop</span><span class="Operator">.</span><span class="Punctuation">}</span></pre>
  4825. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/compilation.nim#L116" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4826. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/compilation.nim#L116" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4827. </dd>
  4828. </div>
  4829. </div>
  4830. <div id="compiles-procs-all">
  4831. <div id="compiles,untyped">
  4832. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Compiles&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">compileTime</span><span class="Other">,</span>
  4833. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4834. <dd>
  4835. <p>Special compile-time procedure that checks whether <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> can be compiled without any semantic error. This can be used to check whether a type supports some operation:</p>
  4836. <p><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>
  4837. <span class="Identifier">echo</span> <span class="StringLit">&quot;'+' for integers is available&quot;</span></pre></p>
  4838. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/compilation.nim#L73" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4839. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/compilation.nim#L73" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4840. </dd>
  4841. </div>
  4842. </div>
  4843. <div id="contains-procs-all">
  4844. <div id="contains,openArray[T],T">
  4845. <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 class="Identifier">inline</span>.}</pre></dt>
  4846. <dd>
  4847. <p>Returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">item</span></span></tt> is in <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt> or false if not found. This is a shortcut for <tt class="docutils literal"><span class="pre"><span class="Identifier">find</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">,</span> <span class="Identifier">item</span><span class="Punctuation">)</span> <span class="Operator">&gt;=</span> <span class="DecNumber">0</span></span></tt>.</p>
  4848. <p>This allows the <tt class="docutils literal"><span class="pre"><span class="Keyword">in</span></span></tt> operator: <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">contains</span><span class="Punctuation">(</span><span class="Identifier">item</span><span class="Punctuation">)</span></span></tt> is the same as <tt class="docutils literal"><span class="pre"><span class="Identifier">item</span> <span class="Keyword">in</span> <span class="Identifier">a</span></span></tt>.</p>
  4849. <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>
  4850. <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>
  4851. <span class="Identifier">assert</span> <span class="DecNumber">3</span> <span class="Keyword">in</span> <span class="Identifier">a</span>
  4852. <span class="Identifier">assert</span> <span class="DecNumber">99</span> <span class="Keyword">notin</span> <span class="Identifier">a</span></pre></p>
  4853. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1766" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4854. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1766" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4855. </dd>
  4856. </div>
  4857. <div id="contains,set[T],T">
  4858. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;InSet&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  4859. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4860. <dd>
  4861. <p>One should overload this proc if one wants to overload the <tt class="docutils literal"><span class="pre"><span class="Keyword">in</span></span></tt> operator.</p>
  4862. <p>The parameters are in reverse order! <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span> <span class="Keyword">in</span> <span class="Identifier">b</span></span></tt> is a template for <tt class="docutils literal"><span class="pre"><span class="Identifier">contains</span><span class="Punctuation">(</span><span class="Identifier">b</span><span class="Punctuation">,</span> <span class="Identifier">a</span><span class="Punctuation">)</span></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"><span class="Keyword">in</span></span></tt> operator that would be the wrong direction for this piece of code:</p>
  4863. <p><strong class="examples_text">Example:</strong></p>
  4864. <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">s</span><span class="Punctuation">:</span> <span class="Identifier">set</span><span class="Punctuation">[</span><span class="Identifier">range</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">'..'</span><span class="Identifier">z</span><span class="CharLit">']] = {'</span><span class="Identifier">a</span><span class="CharLit">'..'</span><span class="Identifier">c</span><span class="CharLit">'}</span>
  4865. <span class="Identifier">assert</span> <span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">contains</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">c</span><span class="CharLit">')</span>
  4866. <span class="Identifier">assert</span> <span class="CharLit">'b'</span> <span class="Keyword">in</span> <span class="Identifier">s</span>
  4867. <span class="Identifier">assert</span> <span class="CharLit">'d'</span> <span class="Keyword">notin</span> <span class="Identifier">s</span>
  4868. <span class="Identifier">assert</span> <span class="Identifier">set</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">'..'</span><span class="Identifier">z</span><span class="CharLit">'] is set[range['</span><span class="Identifier">a</span><span class="CharLit">'..'</span><span class="Identifier">z</span><span class="CharLit">']]</span></pre>If <tt class="docutils literal"><span class="pre"><span class="Keyword">in</span></span></tt> had been declared as <tt class="docutils literal"><span class="pre"><span class="Punctuation">[</span><span class="Identifier">T</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Identifier">elem</span><span class="Punctuation">:</span> <span class="Identifier">T</span><span class="Punctuation">,</span> <span class="Identifier">s</span><span class="Punctuation">:</span> <span class="Identifier">set</span><span class="Punctuation">[</span><span class="Identifier">T</span><span class="Punctuation">]</span><span class="Punctuation">)</span></span></tt> then <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt> would have been bound to <tt class="docutils literal"><span class="pre"><span class="Identifier">char</span></span></tt>. But <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is not compatible to type <tt class="docutils literal"><span class="pre"><span class="Identifier">set</span><span class="Punctuation">[</span><span class="Identifier">char</span><span class="Punctuation">]</span></span></tt>! The solution is to bind <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt> to <tt class="docutils literal"><span class="pre"><span class="Identifier">range</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">'..'</span><span class="Identifier">z</span><span class="CharLit">']</span></span></tt>. This is achieved by reversing the parameters for <tt class="docutils literal"><span class="pre"><span class="Identifier">contains</span></span></tt>; <tt class="docutils literal"><span class="pre"><span class="Keyword">in</span></span></tt> then passes its arguments in reverse order.
  4869. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/setops.nim#L70" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4870. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/setops.nim#L70" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4871. </dd>
  4872. </div>
  4873. <div id="contains,HSlice[U,V],W">
  4874. <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 class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span>.}</pre></dt>
  4875. <dd>
  4876. <p>Checks if <tt class="docutils literal"><span class="pre"><span class="Identifier">value</span></span></tt> is within the range of <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>; returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">value</span> <span class="Operator">&gt;=</span> <span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">a</span> <span class="Keyword">and</span> <span class="Identifier">value</span> <span class="Operator">&lt;=</span> <span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">b</span></span></tt>.</p>
  4877. <p><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>
  4878. <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>
  4879. <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></p>
  4880. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L746" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4881. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L746" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4882. </dd>
  4883. </div>
  4884. </div>
  4885. <div id="copyMem-procs-all">
  4886. <div id="copyMem,pointer,pointer,Natural">
  4887. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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>
  4888. <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4889. <dd>
  4890. Copies the contents from the memory at <tt class="docutils literal"><span class="pre"><span class="Identifier">source</span></span></tt> to the memory at <tt class="docutils literal"><span class="pre"><span class="Identifier">dest</span></span></tt>. Exactly <tt class="docutils literal"><span class="pre"><span class="Identifier">size</span></span></tt> bytes will be copied. The memory regions may not overlap. Like any procedure dealing with raw memory this is <strong>unsafe</strong>.
  4891. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L9" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4892. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L9" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4893. </dd>
  4894. </div>
  4895. </div>
  4896. <div id="create-procs-all">
  4897. <div id="create,typedesc">
  4898. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span>
  4899. <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4900. <dd>
  4901. <p>Allocates a new memory block with at least <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span><span class="Operator">.</span><span class="Identifier">sizeof</span> <span class="Operator">*</span> <span class="Identifier">size</span></span></tt> bytes.</p>
  4902. <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>
  4903. <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>
  4904. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L134" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4905. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L134" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4906. </dd>
  4907. </div>
  4908. </div>
  4909. <div id="createShared-procs-all">
  4910. <div id="createShared,typedesc">
  4911. <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 class="Identifier">inline</span>.}</pre></dt>
  4912. <dd>
  4913. <p>Allocates a new memory block on the shared heap with at least <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span><span class="Operator">.</span><span class="Identifier">sizeof</span> <span class="Operator">*</span> <span class="Identifier">size</span></span></tt> bytes.</p>
  4914. <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>
  4915. <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>
  4916. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L250" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4917. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L250" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4918. </dd>
  4919. </div>
  4920. </div>
  4921. <div id="createSharedU-procs-all">
  4922. <div id="createSharedU,typedesc">
  4923. <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 class="Identifier">inline</span><span class="Other">,</span>
  4924. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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>.}</pre></dt>
  4925. <dd>
  4926. <p>Allocates a new memory block on the shared heap with at least <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span><span class="Operator">.</span><span class="Identifier">sizeof</span> <span class="Operator">*</span> <span class="Identifier">size</span></span></tt> bytes.</p>
  4927. <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>
  4928. <p>The block is not initialized, so reading from it before writing to it is undefined behaviour!</p>
  4929. <p>See also:</p>
  4930. <ul class="simple"><li><a class="reference external" href="#createShared,typedesc">createShared</a></li>
  4931. </ul>
  4932. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L220" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4933. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L220" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4934. </dd>
  4935. </div>
  4936. </div>
  4937. <div id="createU-procs-all">
  4938. <div id="createU,typedesc">
  4939. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span>
  4940. <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4941. <dd>
  4942. <p>Allocates a new memory block with at least <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span><span class="Operator">.</span><span class="Identifier">sizeof</span> <span class="Operator">*</span> <span class="Identifier">size</span></span></tt> bytes.</p>
  4943. <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>
  4944. <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>
  4945. <p>See also:</p>
  4946. <ul class="simple"><li><a class="reference external" href="#create,typedesc">create</a></li>
  4947. </ul>
  4948. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L106" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4949. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L106" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4950. </dd>
  4951. </div>
  4952. </div>
  4953. <div id="cstringArrayToSeq-procs-all">
  4954. <div id="cstringArrayToSeq,cstringArray">
  4955. <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="ctypes.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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  4956. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4957. <dd>
  4958. Converts a <tt class="docutils literal"><span class="pre"><span class="Identifier">cstringArray</span></span></tt> to a <tt class="docutils literal"><span class="pre"><span class="Identifier">seq</span><span class="Punctuation">[</span><span class="Identifier">string</span><span class="Punctuation">]</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt> is supposed to be terminated by <tt class="docutils literal"><span class="pre"><span class="Keyword">nil</span></span></tt>.
  4959. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2128" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4960. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2128" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4961. </dd>
  4962. </div>
  4963. <div id="cstringArrayToSeq,cstringArray,Natural">
  4964. <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="ctypes.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 pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  4965. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4966. <dd>
  4967. Converts a <tt class="docutils literal"><span class="pre"><span class="Identifier">cstringArray</span></span></tt> to a <tt class="docutils literal"><span class="pre"><span class="Identifier">seq</span><span class="Punctuation">[</span><span class="Identifier">string</span><span class="Punctuation">]</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt> is supposed to be of length <tt class="docutils literal"><span class="pre"><span class="Identifier">len</span></span></tt>.
  4968. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2121" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4969. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2121" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4970. </dd>
  4971. </div>
  4972. </div>
  4973. <div id="dealloc-procs-all">
  4974. <div id="dealloc,pointer">
  4975. <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 class="Identifier">noconv</span><span class="Other">,</span> <span class="Identifier">compilerproc</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</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 class="Other">,</span>
  4976. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4977. <dd>
  4978. <p>Frees the memory allocated with <tt class="docutils literal"><span class="pre"><span class="Identifier">alloc</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">alloc0</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">realloc</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">create</span></span></tt> or <tt class="docutils literal"><span class="pre"><span class="Identifier">createU</span></span></tt>.</p>
  4979. <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>
  4980. <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>
  4981. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L190" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4982. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L190" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4983. </dd>
  4984. </div>
  4985. </div>
  4986. <div id="deallocCStringArray-procs-all">
  4987. <div id="deallocCStringArray,cstringArray">
  4988. <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="ctypes.html#cstringArray"><span class="Identifier">cstringArray</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  4989. <dd>
  4990. Frees a NULL terminated cstringArray.
  4991. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2148" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  4992. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2148" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  4993. </dd>
  4994. </div>
  4995. </div>
  4996. <div id="deallocImpl-procs-all">
  4997. <div id="deallocImpl,pointer">
  4998. <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 class="Identifier">noconv</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  4999. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5000. <dd>
  5001. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L53" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5002. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L53" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5003. </dd>
  5004. </div>
  5005. </div>
  5006. <div id="deallocShared-procs-all">
  5007. <div id="deallocShared,pointer">
  5008. <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 class="Identifier">noconv</span><span class="Other">,</span> <span class="Identifier">compilerproc</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span>
  5009. <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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5010. <dd>
  5011. <p>Frees the memory allocated with <tt class="docutils literal"><span class="pre"><span class="Identifier">allocShared</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">allocShared0</span></span></tt> or <tt class="docutils literal"><span class="pre"><span class="Identifier">reallocShared</span></span></tt>.</p>
  5012. <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>
  5013. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L299" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5014. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L299" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5015. </dd>
  5016. </div>
  5017. </div>
  5018. <div id="deallocSharedImpl-procs-all">
  5019. <div id="deallocSharedImpl,pointer">
  5020. <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 class="Identifier">noconv</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</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 class="Other">,</span>
  5021. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5022. <dd>
  5023. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L59" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5024. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L59" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5025. </dd>
  5026. </div>
  5027. </div>
  5028. <div id="debugEcho-procs-all">
  5029. <div id="debugEcho,varargs[typed,]">
  5030. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Echo&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  5031. <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5032. <dd>
  5033. 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"><span class="Identifier">debugEcho</span></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>.
  5034. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1936" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5035. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1936" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5036. </dd>
  5037. </div>
  5038. </div>
  5039. <div id="dec-procs-all">
  5040. <div id="dec,T,V">
  5041. <dt><pre><span class="Keyword">proc</span> <a href="#dec%2CT%2CV"><span class="Identifier">dec</span></a><span class="Other">[</span><span class="Identifier">T</span><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> <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">V</span> <span class="Other">=</span> <span class="DecNumber">1</span><span class="Other">)</span> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Dec&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  5042. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5043. <dd>
  5044. <p>Decrements the ordinal <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> by <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.</p>
  5045. <p>If such a value does not exist, <tt class="docutils literal"><span class="pre"><span class="Identifier">OverflowDefect</span></span></tt> is raised or a compile time error occurs. This is a short notation for: <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span> <span class="Operator">=</span> <span class="Identifier">pred</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">,</span> <span class="Identifier">y</span><span class="Punctuation">)</span></span></tt>.</p>
  5046. <p><strong class="examples_text">Example:</strong></p>
  5047. <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">i</span> <span class="Operator">=</span> <span class="DecNumber">2</span>
  5048. <span class="Identifier">dec</span><span class="Punctuation">(</span><span class="Identifier">i</span><span class="Punctuation">)</span>
  5049. <span class="Identifier">assert</span> <span class="Identifier">i</span> <span class="Operator">==</span> <span class="DecNumber">1</span>
  5050. <span class="Identifier">dec</span><span class="Punctuation">(</span><span class="Identifier">i</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">)</span>
  5051. <span class="Identifier">assert</span> <span class="Identifier">i</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">2</span></pre>
  5052. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L31" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5053. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L31" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5054. </dd>
  5055. </div>
  5056. </div>
  5057. <div id="declared-procs-all">
  5058. <div id="declared,untyped">
  5059. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Declared&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">compileTime</span><span class="Other">,</span>
  5060. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5061. <dd>
  5062. <p>Special compile-time procedure that checks whether <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is declared. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> has to be an identifier or a qualified identifier.</p>
  5063. <p>This can be used to check whether a library provides a certain feature or not:</p>
  5064. <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>
  5065. <span class="Comment"># provide our own toUpper proc here, because strutils is</span>
  5066. <span class="Comment"># missing it.</span></pre></p>
  5067. <p>See also:</p>
  5068. <ul class="simple"><li><a class="reference external" href="#declaredInScope,untyped">declaredInScope</a></li>
  5069. </ul>
  5070. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/compilation.nim#L54" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5071. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/compilation.nim#L54" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5072. </dd>
  5073. </div>
  5074. </div>
  5075. <div id="declaredInScope-procs-all">
  5076. <div id="declaredInScope,untyped">
  5077. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;DeclaredInScope&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  5078. <span class="Identifier">compileTime</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5079. <dd>
  5080. Special compile-time procedure that checks whether <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is declared in the current scope. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> has to be an identifier.
  5081. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/compilation.nim#L69" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5082. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/compilation.nim#L69" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5083. </dd>
  5084. </div>
  5085. </div>
  5086. <div id="deepCopy-procs-all">
  5087. <div id="deepCopy,,T">
  5088. <dt><pre><span class="Keyword">proc</span> <a href="#deepCopy%2C%2CT"><span class="Identifier">deepCopy</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">out</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 class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;DeepCopy&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  5089. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5090. <dd>
  5091. <p>Performs a deep copy of <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> and copies it into <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
  5092. <p>This is also used by the code generator for the implementation of <tt class="docutils literal"><span class="pre"><span class="Identifier">spawn</span></span></tt>.</p>
  5093. <p>For <tt class="docutils literal"><span class="pre"><span class="Operator">--</span><span class="Identifier">mm</span><span class="Punctuation">:</span><span class="Identifier">arc</span></span></tt> or <tt class="docutils literal"><span class="pre"><span class="Operator">--</span><span class="Identifier">mm</span><span class="Punctuation">:</span><span class="Identifier">orc</span></span></tt> deepcopy support has to be enabled via <tt class="docutils literal"><span class="pre"><span class="Operator">--</span><span class="Identifier">deepcopy</span><span class="Punctuation">:</span><span class="Identifier">on</span></span></tt>.</p>
  5094. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2693" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5095. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2693" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5096. </dd>
  5097. </div>
  5098. <div id="deepCopy,T">
  5099. <dt><pre><span class="Keyword">proc</span> <a href="#deepCopy%2CT"><span class="Identifier">deepCopy</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> <span class="Identifier">T</span></pre></dt>
  5100. <dd>
  5101. Convenience wrapper around <tt class="docutils literal"><span class="pre"><span class="Identifier">deepCopy</span></span></tt> overload.
  5102. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2703" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5103. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2703" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5104. </dd>
  5105. </div>
  5106. </div>
  5107. <div id="default-procs-all">
  5108. <div id="default,typedesc[T]">
  5109. <dt><pre><span class="Keyword">proc</span> <a href="#default%2Ctypedesc%5BT%5D"><span class="Identifier">default</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Operator">_</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Default&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  5110. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5111. <dd>
  5112. <p>Returns the default value of the type <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt>. Contrary to <tt class="docutils literal"><span class="pre"><span class="Identifier">zeroDefault</span></span></tt>, it takes default fields of an object into consideration.</p>
  5113. <p>See also:</p>
  5114. <ul class="simple"><li><a class="reference external" href="#zeroDefault,typedesc[T]">zeroDefault</a></li>
  5115. </ul>
  5116. <p><strong class="examples_text">Example: cmd: -d:nimPreviewRangeDefault</strong></p>
  5117. <pre class="listing"><span class="Identifier">assert</span> <span class="Punctuation">(</span><span class="Identifier">int</span><span class="Punctuation">,</span> <span class="Identifier">float</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">default</span> <span class="Operator">==</span> <span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">,</span> <span class="FloatNumber">0.0</span><span class="Punctuation">)</span>
  5118. <span class="Keyword">type</span> <span class="Identifier">Foo</span> <span class="Operator">=</span> <span class="Keyword">object</span>
  5119. <span class="Identifier">a</span><span class="Punctuation">:</span> <span class="Identifier">range</span><span class="Punctuation">[</span><span class="FloatNumber">2.</span><span class="Operator">.</span><span class="DecNumber">6</span><span class="Punctuation">]</span>
  5120. <span class="Keyword">var</span> <span class="Identifier">x</span> <span class="Operator">=</span> <span class="Identifier">Foo</span><span class="Operator">.</span><span class="Identifier">default</span>
  5121. <span class="Identifier">assert</span> <span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">a</span> <span class="Operator">==</span> <span class="DecNumber">2</span></pre>
  5122. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L918" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5123. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L918" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5124. </dd>
  5125. </div>
  5126. </div>
  5127. <div id="defined-procs-all">
  5128. <div id="defined,untyped">
  5129. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Defined&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">compileTime</span><span class="Other">,</span>
  5130. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5131. <dd>
  5132. <p>Special compile-time procedure that checks whether <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is defined.</p>
  5133. <p><tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></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>
  5134. <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>
  5135. <span class="Comment"># Do here programmer friendly expensive sanity checks.</span>
  5136. <span class="Comment"># Put here the normal code</span></pre></p>
  5137. <p>See also:</p>
  5138. <ul class="simple"><li><a class="reference external" href="#compileOption,string">compileOption</a> for <tt class="docutils literal"><span class="pre"><span class="Identifier">on</span><span class="Operator">|</span><span class="Identifier">off</span></span></tt> options</li>
  5139. <li><a class="reference external" href="#compileOption,string,string">compileOption</a> for enum options</li>
  5140. <li><a class="reference external" href="manual.html#implementation-specific-pragmas-compileminustime-define-pragmas">define pragmas</a></li>
  5141. </ul>
  5142. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/compilation.nim#L36" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5143. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/compilation.nim#L36" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5144. </dd>
  5145. </div>
  5146. </div>
  5147. <div id="del-procs-all">
  5148. <div id="del,seq[T],Natural">
  5149. <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 class="Identifier">noSideEffect</span>.}</pre></dt>
  5150. <dd>
  5151. <p>Deletes the item at index <tt class="docutils literal"><span class="pre"><span class="Identifier">i</span></span></tt> by putting <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span><span class="Punctuation">[</span><span class="Identifier">high</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span><span class="Punctuation">]</span></span></tt> into position <tt class="docutils literal"><span class="pre"><span class="Identifier">i</span></span></tt>.</p>
  5152. <p>This is an <tt class="docutils literal"><span class="pre"><span class="Identifier">O</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">)</span></span></tt> operation.</p>
  5153. <p>See also:</p>
  5154. <ul class="simple"><li><a class="reference external" href="#delete,seq[T],Natural">delete</a> for preserving the order</li>
  5155. </ul>
  5156. <p><strong class="examples_text">Example:</strong></p>
  5157. <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">10</span><span class="Punctuation">,</span> <span class="DecNumber">11</span><span class="Punctuation">,</span> <span class="DecNumber">12</span><span class="Punctuation">,</span> <span class="DecNumber">13</span><span class="Punctuation">,</span> <span class="DecNumber">14</span><span class="Punctuation">]</span>
  5158. <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">del</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">)</span>
  5159. <span class="Identifier">assert</span> <span class="Identifier">a</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">11</span><span class="Punctuation">,</span> <span class="DecNumber">14</span><span class="Punctuation">,</span> <span class="DecNumber">13</span><span class="Punctuation">]</span></pre>
  5160. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1216" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5161. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1216" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5162. </dd>
  5163. </div>
  5164. </div>
  5165. <div id="delete-procs-all">
  5166. <div id="delete,seq[T],Natural">
  5167. <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 class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">systemRaisesDefect</span>.}</pre></dt>
  5168. <dd>
  5169. <p>Deletes the item at index <tt class="docutils literal"><span class="pre"><span class="Identifier">i</span></span></tt> by moving all <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span><span class="Punctuation">[</span><span class="Identifier">i</span><span class="Operator">+</span><span class="FloatNumber">1.</span><span class="Operator">.^</span><span class="DecNumber">1</span><span class="Punctuation">]</span></span></tt> items by one position.</p>
  5170. <p>This is an <tt class="docutils literal"><span class="pre"><span class="Identifier">O</span><span class="Punctuation">(</span><span class="Identifier">n</span><span class="Punctuation">)</span></span></tt> operation.</p>
  5171. <p>See also:</p>
  5172. <ul class="simple"><li><a class="reference external" href="#del,seq[T],Natural">del</a> for O(1) operation</li>
  5173. </ul>
  5174. <p><strong class="examples_text">Example:</strong></p>
  5175. <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>
  5176. <span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">delete</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">)</span>
  5177. <span class="Identifier">doAssert</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">4</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">]</span></pre>
  5178. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2016" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5179. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2016" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5180. </dd>
  5181. </div>
  5182. </div>
  5183. <div id="dispose-procs-all">
  5184. <div id="dispose,ForeignCell">
  5185. <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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5186. <dd>
  5187. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/mmdisp.nim#L119" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5188. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/mmdisp.nim#L119" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5189. </dd>
  5190. </div>
  5191. </div>
  5192. <div id="div-procs-all">
  5193. <div id="div,int,int">
  5194. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;DivI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  5195. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5196. <dd>
  5197. <p>Computes the integer division.</p>
  5198. <p>This is roughly the same as <tt class="docutils literal"><span class="pre"><span class="Identifier">math</span><span class="Operator">.</span><span class="Identifier">trunc</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Operator">/</span><span class="Identifier">y</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">int</span></span></tt>.</p>
  5199. <p><strong class="examples_text">Example:</strong></p>
  5200. <pre class="listing"><span class="Identifier">assert</span> <span class="Punctuation">(</span><span class="DecNumber">1</span> <span class="Keyword">div</span> <span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">0</span>
  5201. <span class="Identifier">assert</span> <span class="Punctuation">(</span><span class="DecNumber">2</span> <span class="Keyword">div</span> <span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">1</span>
  5202. <span class="Identifier">assert</span> <span class="Punctuation">(</span><span class="DecNumber">3</span> <span class="Keyword">div</span> <span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">1</span>
  5203. <span class="Identifier">assert</span> <span class="Punctuation">(</span><span class="DecNumber">7</span> <span class="Keyword">div</span> <span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">2</span>
  5204. <span class="Identifier">assert</span> <span class="Punctuation">(</span><span class="Operator">-</span><span class="DecNumber">7</span> <span class="Keyword">div</span> <span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">2</span>
  5205. <span class="Identifier">assert</span> <span class="Punctuation">(</span><span class="DecNumber">7</span> <span class="Keyword">div</span> <span class="Operator">-</span><span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">2</span>
  5206. <span class="Identifier">assert</span> <span class="Punctuation">(</span><span class="Operator">-</span><span class="DecNumber">7</span> <span class="Keyword">div</span> <span class="Operator">-</span><span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">2</span></pre>
  5207. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L96" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5208. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L96" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5209. </dd>
  5210. </div>
  5211. <div id="div,int8,int8">
  5212. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;DivI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  5213. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5214. <dd>
  5215. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L108" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5216. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L108" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5217. </dd>
  5218. </div>
  5219. <div id="div,int16,int16">
  5220. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;DivI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  5221. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5222. <dd>
  5223. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L109" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5224. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L109" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5225. </dd>
  5226. </div>
  5227. <div id="div,int32,int32">
  5228. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;DivI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  5229. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5230. <dd>
  5231. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L110" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5232. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L110" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5233. </dd>
  5234. </div>
  5235. <div id="div,int64,int64">
  5236. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;DivI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  5237. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5238. <dd>
  5239. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L111" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5240. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L111" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5241. </dd>
  5242. </div>
  5243. <div id="div,uint,uint">
  5244. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;DivU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  5245. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5246. <dd>
  5247. Computes the integer division for unsigned integers. This is roughly the same as <tt class="docutils literal"><span class="pre"><span class="Identifier">trunc</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Operator">/</span><span class="Identifier">y</span><span class="Punctuation">)</span></span></tt>.
  5248. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L283" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5249. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L283" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5250. </dd>
  5251. </div>
  5252. <div id="div,uint8,uint8">
  5253. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;DivU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  5254. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5255. <dd>
  5256. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L286" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5257. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L286" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5258. </dd>
  5259. </div>
  5260. <div id="div,uint16,uint16">
  5261. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;DivU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  5262. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5263. <dd>
  5264. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L287" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5265. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L287" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5266. </dd>
  5267. </div>
  5268. <div id="div,uint32,uint32">
  5269. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;DivU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  5270. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5271. <dd>
  5272. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L288" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5273. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L288" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5274. </dd>
  5275. </div>
  5276. <div id="div,uint64,uint64">
  5277. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;DivU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  5278. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5279. <dd>
  5280. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L289" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5281. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L289" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5282. </dd>
  5283. </div>
  5284. </div>
  5285. <div id="echo-procs-all">
  5286. <div id="echo,varargs[typed,]">
  5287. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Echo&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span> </span><span class="Identifier">sideEffect</span><span class="Other">,</span>
  5288. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5289. <dd>
  5290. <p>Writes and flushes the parameters to the standard output.</p>
  5291. <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 class="Operator">$</span></span></tt>, so it works for user-defined types that have an overloaded <tt class="docutils literal"><span class="pre"><span class="Operator">$</span></span></tt> operator. It is roughly equivalent to <tt class="docutils literal"><span class="pre"><span class="Identifier">writeLine</span><span class="Punctuation">(</span><span class="Identifier">stdout</span><span class="Punctuation">,</span> <span class="Identifier">x</span><span class="Punctuation">)</span><span class="Punctuation">;</span> <span class="Identifier">flushFile</span><span class="Punctuation">(</span><span class="Identifier">stdout</span><span class="Punctuation">)</span></span></tt>, but available for the JavaScript target too.</p>
  5292. <p>Unlike other IO operations this is guaranteed to be thread-safe as <tt class="docutils literal"><span class="pre"><span class="Identifier">echo</span></span></tt> is very often used for debugging convenience. If you want to use <tt class="docutils literal"><span class="pre"><span class="Identifier">echo</span></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>
  5293. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1921" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5294. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1921" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5295. </dd>
  5296. </div>
  5297. </div>
  5298. <div id="ensureMove-procs-all">
  5299. <div id="ensureMove,T">
  5300. <dt><pre><span class="Keyword">proc</span> <a href="#ensureMove%2CT"><span class="Identifier">ensureMove</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="Identifier">T</span> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;EnsureMove&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  5301. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5302. <dd>
  5303. Ensures that <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is moved to the new location, otherwise it gives an error at the compile time.
  5304. <p><strong class="examples_text">Example:</strong></p>
  5305. <pre class="listing"><span class="Keyword">proc</span> <span class="Identifier">foo</span> <span class="Operator">=</span>
  5306. <span class="Keyword">var</span> <span class="Identifier">x</span> <span class="Operator">=</span> <span class="StringLit">&quot;Hello&quot;</span>
  5307. <span class="Keyword">let</span> <span class="Identifier">y</span> <span class="Operator">=</span> <span class="Identifier">ensureMove</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span>
  5308. <span class="Identifier">doAssert</span> <span class="Identifier">y</span> <span class="Operator">==</span> <span class="StringLit">&quot;Hello&quot;</span>
  5309. <span class="Identifier">foo</span><span class="Punctuation">(</span><span class="Punctuation">)</span></pre>
  5310. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L177" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5311. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L177" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5312. </dd>
  5313. </div>
  5314. </div>
  5315. <div id="equalMem-procs-all">
  5316. <div id="equalMem,pointer,pointer,Natural">
  5317. <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 class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  5318. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5319. <dd>
  5320. <p>Compares the memory blocks <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">b</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">size</span></span></tt> bytes will be compared.</p>
  5321. <p>If the blocks are equal, <tt class="docutils literal"><span class="pre"><span class="Identifier">true</span></span></tt> is returned, <tt class="docutils literal"><span class="pre"><span class="Identifier">false</span></span></tt> otherwise. Like any procedure dealing with raw memory this is <strong>unsafe</strong>.</p>
  5322. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L27" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5323. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L27" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5324. </dd>
  5325. </div>
  5326. </div>
  5327. <div id="excl-procs-all">
  5328. <div id="excl,set[T],T">
  5329. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Excl&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  5330. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5331. <dd>
  5332. <p>Excludes element <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> from the set <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
  5333. <p>This is the same as <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span> <span class="Operator">=</span> <span class="Identifier">x</span> <span class="Operator">-</span> <span class="Punctuation">{</span><span class="Identifier">y</span><span class="Punctuation">}</span></span></tt>, but it might be more efficient.</p>
  5334. <p><strong class="examples_text">Example:</strong></p>
  5335. <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">b</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">5</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">12</span><span class="Punctuation">,</span> <span class="DecNumber">54</span><span class="Punctuation">}</span>
  5336. <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>
  5337. <span class="Identifier">assert</span> <span class="Identifier">b</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">6</span><span class="Punctuation">,</span> <span class="DecNumber">12</span><span class="Punctuation">,</span> <span class="DecNumber">54</span><span class="Punctuation">}</span></pre>
  5338. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/setops.nim#L24" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5339. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/setops.nim#L24" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5340. </dd>
  5341. </div>
  5342. </div>
  5343. <div id="find-procs-all">
  5344. <div id="find,T,S">
  5345. <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 class="Identifier">inline</span>.}</pre></dt>
  5346. <dd>
  5347. Returns the first index of <tt class="docutils literal"><span class="pre"><span class="Identifier">item</span></span></tt> in <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt> or -1 if not found. This requires appropriate <tt class="docutils literal"><span class="pre"><span class="Identifier">items</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Operator">==</span></span></tt> operations to work.
  5348. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1757" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5349. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1757" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5350. </dd>
  5351. </div>
  5352. </div>
  5353. <div id="finished-procs-all">
  5354. <div id="finished,T">
  5355. <dt><pre><span class="Keyword">proc</span> <a href="#finished%2CT"><span class="Identifier">finished</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <span class="Keyword">iterator</span> {.<span class="Identifier">closure</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 class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span>
  5356. <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Finished&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5357. <dd>
  5358. It can be used to determine if a first class iterator has finished.
  5359. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2373" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5360. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2373" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5361. </dd>
  5362. </div>
  5363. </div>
  5364. <div id="freeShared-procs-all">
  5365. <div id="freeShared,ptr.T">
  5366. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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>.}</pre></dt>
  5367. <dd>
  5368. <p>Frees the memory allocated with <tt class="docutils literal"><span class="pre"><span class="Identifier">createShared</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">createSharedU</span></span></tt> or <tt class="docutils literal"><span class="pre"><span class="Identifier">resizeShared</span></span></tt>.</p>
  5369. <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>
  5370. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L310" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5371. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L310" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5372. </dd>
  5373. </div>
  5374. </div>
  5375. <div id="GC_disableMarkAndSweep-procs-all">
  5376. <div id="GC_disableMarkAndSweep">
  5377. <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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5378. <dd>
  5379. For <tt class="docutils literal"><span class="pre"><span class="Operator">--</span><span class="Identifier">mm</span><span class="Punctuation">:</span><span class="Identifier">orc</span></span></tt> an alias for <tt class="docutils literal"><span class="pre"><span class="Identifier">GC_disableOrc</span></span></tt>.
  5380. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/orc.nim#L486" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5381. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/orc.nim#L486" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5382. </dd>
  5383. </div>
  5384. </div>
  5385. <div id="GC_disableOrc-procs-all">
  5386. <div id="GC_disableOrc">
  5387. <dt><pre><span class="Keyword">proc</span> <a href="#GC_disableOrc"><span class="Identifier">GC_disableOrc</span></a><span class="Other">(</span><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5388. <dd>
  5389. Disables the cycle collector subsystem of <tt class="docutils literal"><span class="pre"><span class="Operator">--</span><span class="Identifier">mm</span><span class="Punctuation">:</span><span class="Identifier">orc</span></span></tt>. This is a <tt class="docutils literal"><span class="pre"><span class="Operator">--</span><span class="Identifier">mm</span><span class="Punctuation">:</span><span class="Identifier">orc</span></span></tt> specific API. Check with <tt class="docutils literal"><span class="pre"><span class="Keyword">when</span> <span class="Identifier">defined</span><span class="Punctuation">(</span><span class="Identifier">gcOrc</span><span class="Punctuation">)</span></span></tt> for its existence.
  5390. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/orc.nim#L466" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5391. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/orc.nim#L466" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5392. </dd>
  5393. </div>
  5394. </div>
  5395. <div id="GC_enableMarkAndSweep-procs-all">
  5396. <div id="GC_enableMarkAndSweep">
  5397. <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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5398. <dd>
  5399. For <tt class="docutils literal"><span class="pre"><span class="Operator">--</span><span class="Identifier">mm</span><span class="Punctuation">:</span><span class="Identifier">orc</span></span></tt> an alias for <tt class="docutils literal"><span class="pre"><span class="Identifier">GC_enableOrc</span></span></tt>.
  5400. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/orc.nim#L482" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5401. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/orc.nim#L482" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5402. </dd>
  5403. </div>
  5404. </div>
  5405. <div id="GC_enableOrc-procs-all">
  5406. <div id="GC_enableOrc">
  5407. <dt><pre><span class="Keyword">proc</span> <a href="#GC_enableOrc"><span class="Identifier">GC_enableOrc</span></a><span class="Other">(</span><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5408. <dd>
  5409. Enables the cycle collector subsystem of <tt class="docutils literal"><span class="pre"><span class="Operator">--</span><span class="Identifier">mm</span><span class="Punctuation">:</span><span class="Identifier">orc</span></span></tt>. This is a <tt class="docutils literal"><span class="pre"><span class="Operator">--</span><span class="Identifier">mm</span><span class="Punctuation">:</span><span class="Identifier">orc</span></span></tt> specific API. Check with <tt class="docutils literal"><span class="pre"><span class="Keyword">when</span> <span class="Identifier">defined</span><span class="Punctuation">(</span><span class="Identifier">gcOrc</span><span class="Punctuation">)</span></span></tt> for its existence.
  5410. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/orc.nim#L460" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5411. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/orc.nim#L460" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5412. </dd>
  5413. </div>
  5414. </div>
  5415. <div id="GC_fullCollect-procs-all">
  5416. <div id="GC_fullCollect">
  5417. <dt><pre><span class="Keyword">proc</span> <a href="#GC_fullCollect"><span class="Identifier">GC_fullCollect</span></a><span class="Other">(</span><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5418. <dd>
  5419. Forces a full garbage collection pass. With <tt class="docutils literal"><span class="pre"><span class="Operator">--</span><span class="Identifier">mm</span><span class="Punctuation">:</span><span class="Identifier">orc</span></span></tt> triggers the cycle collector. This is an alias for <tt class="docutils literal"><span class="pre"><span class="Identifier">GC_runOrc</span></span></tt>.
  5420. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/orc.nim#L477" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5421. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/orc.nim#L477" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5422. </dd>
  5423. </div>
  5424. </div>
  5425. <div id="GC_getStatistics-procs-all">
  5426. <div id="GC_getStatistics">
  5427. <dt><pre><span class="Keyword">proc</span> <a href="#GC_getStatistics"><span class="Identifier">GC_getStatistics</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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5428. <dd>
  5429. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/strmantle.nim#L258" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5430. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/strmantle.nim#L258" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5431. </dd>
  5432. </div>
  5433. </div>
  5434. <div id="GC_partialCollect-procs-all">
  5435. <div id="GC_partialCollect,int">
  5436. <dt><pre><span class="Keyword">proc</span> <a href="#GC_partialCollect%2Cint"><span class="Identifier">GC_partialCollect</span></a><span class="Other">(</span><span class="Identifier">limit</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  5437. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5438. <dd>
  5439. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/orc.nim#L474" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5440. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/orc.nim#L474" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5441. </dd>
  5442. </div>
  5443. </div>
  5444. <div id="GC_prepareOrc-procs-all">
  5445. <div id="GC_prepareOrc">
  5446. <dt><pre><span class="Keyword">proc</span> <a href="#GC_prepareOrc"><span class="Identifier">GC_prepareOrc</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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5447. <dd>
  5448. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/orc.nim#L472" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5449. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/orc.nim#L472" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5450. </dd>
  5451. </div>
  5452. </div>
  5453. <div id="GC_ref-procs-all">
  5454. <div id="GC_ref,ref.T">
  5455. <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></pre></dt>
  5456. <dd>
  5457. New runtime only supports this operation for 'ref T'.
  5458. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arc.nim#L248" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5459. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arc.nim#L248" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5460. </dd>
  5461. </div>
  5462. </div>
  5463. <div id="GC_runOrc-procs-all">
  5464. <div id="GC_runOrc">
  5465. <dt><pre><span class="Keyword">proc</span> <a href="#GC_runOrc"><span class="Identifier">GC_runOrc</span></a><span class="Other">(</span><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5466. <dd>
  5467. Forces a cycle collection pass.
  5468. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/orc.nim#L455" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5469. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/orc.nim#L455" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5470. </dd>
  5471. </div>
  5472. </div>
  5473. <div id="GC_unref-procs-all">
  5474. <div id="GC_unref,ref.T">
  5475. <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></pre></dt>
  5476. <dd>
  5477. New runtime only supports this operation for 'ref T'.
  5478. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arc.nim#L243" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5479. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arc.nim#L243" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5480. </dd>
  5481. </div>
  5482. </div>
  5483. <div id="getAllocStats-procs-all">
  5484. <div id="getAllocStats">
  5485. <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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5486. <dd>
  5487. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L88" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5488. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L88" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5489. </dd>
  5490. </div>
  5491. </div>
  5492. <div id="getCurrentException-procs-all">
  5493. <div id="getCurrentException">
  5494. <dt><pre><span class="Keyword">proc</span> <a href="#getCurrentException"><span class="Identifier">getCurrentException</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ref</span> <a href="system.html#Exception"><span class="Identifier">Exception</span></a> {.<span class="Identifier">compilerproc</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span>
  5495. <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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5496. <dd>
  5497. Retrieves the current exception; if there is none, <tt class="docutils literal"><span class="pre"><span class="Keyword">nil</span></span></tt> is returned.
  5498. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2295" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5499. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2295" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5500. </dd>
  5501. </div>
  5502. </div>
  5503. <div id="getCurrentExceptionMsg-procs-all">
  5504. <div id="getCurrentExceptionMsg">
  5505. <dt><pre><span class="Keyword">proc</span> <a href="#getCurrentExceptionMsg"><span class="Identifier">getCurrentExceptionMsg</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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  5506. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5507. <dd>
  5508. Retrieves the error message that was attached to the current exception; if there is none, <tt class="docutils literal"><span class="pre"><span class="StringLit">&quot;&quot;</span></span></tt> is returned.
  5509. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2304" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5510. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2304" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5511. </dd>
  5512. </div>
  5513. </div>
  5514. <div id="getFrame-procs-all">
  5515. <div id="getFrame">
  5516. <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 class="Identifier">compilerproc</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  5517. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5518. <dd>
  5519. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/excpt.nim#L116" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5520. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/excpt.nim#L116" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5521. </dd>
  5522. </div>
  5523. </div>
  5524. <div id="getFrameState-procs-all">
  5525. <div id="getFrameState">
  5526. <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 class="Identifier">compilerproc</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  5527. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5528. <dd>
  5529. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/excpt.nim#L100" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5530. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/excpt.nim#L100" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5531. </dd>
  5532. </div>
  5533. </div>
  5534. <div id="getFreeMem-procs-all">
  5535. <div id="getFreeMem">
  5536. <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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5537. <dd>
  5538. Returns the number of bytes that are owned by the process, but do not hold any meaningful data.
  5539. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L409" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5540. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L409" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5541. </dd>
  5542. </div>
  5543. </div>
  5544. <div id="getFreeSharedMem-procs-all">
  5545. <div id="getFreeSharedMem">
  5546. <dt><pre><span class="Keyword">proc</span> <a href="#getFreeSharedMem"><span class="Identifier">getFreeSharedMem</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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5547. <dd>
  5548. Returns the number of bytes that are owned by the process on the shared heap, but do not hold any meaningful data. This is only available when threads are enabled.
  5549. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L442" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5550. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L442" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5551. </dd>
  5552. </div>
  5553. </div>
  5554. <div id="getMaxMem-procs-all">
  5555. <div id="getMaxMem">
  5556. <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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5557. <dd>
  5558. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/alloc.nim#L1267" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5559. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/alloc.nim#L1267" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5560. </dd>
  5561. </div>
  5562. </div>
  5563. <div id="getOccupiedMem-procs-all">
  5564. <div id="getOccupiedMem">
  5565. <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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5566. <dd>
  5567. Returns the number of bytes that are owned by the process and hold data.
  5568. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L406" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5569. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L406" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5570. </dd>
  5571. </div>
  5572. </div>
  5573. <div id="getOccupiedSharedMem-procs-all">
  5574. <div id="getOccupiedSharedMem">
  5575. <dt><pre><span class="Keyword">proc</span> <a href="#getOccupiedSharedMem"><span class="Identifier">getOccupiedSharedMem</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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5576. <dd>
  5577. Returns the number of bytes that are owned by the process on the shared heap and hold data. This is only available when threads are enabled.
  5578. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L437" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5579. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L437" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5580. </dd>
  5581. </div>
  5582. </div>
  5583. <div id="getStackTrace-procs-all">
  5584. <div id="getStackTrace">
  5585. <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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5586. <dd>
  5587. Gets the current stack trace. This only works for debug builds.
  5588. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2199" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5589. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2199" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5590. </dd>
  5591. </div>
  5592. <div id="getStackTrace,ref.Exception">
  5593. <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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  5594. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5595. <dd>
  5596. Gets the stack trace associated with <tt class="docutils literal"><span class="pre"><span class="Identifier">e</span></span></tt>, which is the stack that lead to the <tt class="docutils literal"><span class="pre"><span class="Keyword">raise</span></span></tt> statement. This only works for debug builds.
  5597. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2202" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5598. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2202" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5599. </dd>
  5600. </div>
  5601. </div>
  5602. <div id="getStackTraceEntries-procs-all">
  5603. <div id="getStackTraceEntries">
  5604. <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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  5605. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5606. <dd>
  5607. Returns the stack trace entries for the current stack trace. This is not yet available for the JS backend.
  5608. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/excpt.nim#L553" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5609. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/excpt.nim#L553" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5610. </dd>
  5611. </div>
  5612. <div id="getStackTraceEntries,ref.Exception">
  5613. <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#lent"><span class="Identifier">lent</span></a> <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> {.
  5614. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5615. <dd>
  5616. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/excpt.nim#L548" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5617. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/excpt.nim#L548" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5618. </dd>
  5619. </div>
  5620. </div>
  5621. <div id="getThreadId-procs-all">
  5622. <div id="getThreadId">
  5623. <dt><pre><span class="Keyword">proc</span> <a href="#getThreadId"><span class="Identifier">getThreadId</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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5624. <dd>
  5625. Gets the ID of the currently running thread.
  5626. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/threadids.nim#L30" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5627. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/threadids.nim#L30" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5628. </dd>
  5629. </div>
  5630. </div>
  5631. <div id="getTotalMem-procs-all">
  5632. <div id="getTotalMem">
  5633. <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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5634. <dd>
  5635. Returns the number of bytes that are owned by the process.
  5636. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L413" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5637. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L413" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5638. </dd>
  5639. </div>
  5640. </div>
  5641. <div id="getTotalSharedMem-procs-all">
  5642. <div id="getTotalSharedMem">
  5643. <dt><pre><span class="Keyword">proc</span> <a href="#getTotalSharedMem"><span class="Identifier">getTotalSharedMem</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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5644. <dd>
  5645. Returns the number of bytes on the shared heap that are owned by the process. This is only available when threads are enabled.
  5646. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L447" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5647. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L447" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5648. </dd>
  5649. </div>
  5650. </div>
  5651. <div id="getTypeInfo-procs-all">
  5652. <div id="getTypeInfo,T">
  5653. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;GetTypeInfo&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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>
  5654. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5655. <dd>
  5656. <p>Get type information for <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
  5657. <p>Ordinary code should not use this, but the <a class="reference external" href="typeinfo.html">typeinfo module</a> instead.</p>
  5658. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1948" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5659. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1948" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5660. </dd>
  5661. </div>
  5662. </div>
  5663. <div id="gorge-procs-all">
  5664. <div id="gorge,string,string,string">
  5665. <dt><pre><span class="Keyword">proc</span> <a href="#gorge%2Cstring%2Cstring%2Cstring"><span class="Identifier">gorge</span></a><span class="Other">(</span><span class="Identifier">command</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">input</span> <span class="Other">=</span> <span class="StringLit">&quot;&quot;</span><span class="Other">;</span> <span class="Identifier">cache</span> <span class="Other">=</span> <span class="StringLit">&quot;&quot;</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.
  5666. <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;StaticExec&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5667. <dd>
  5668. This is an alias for <a class="reference external" href="#staticExec,string,string,string">staticExec</a>.
  5669. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/compilation.nim#L174" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5670. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/compilation.nim#L174" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5671. </dd>
  5672. </div>
  5673. </div>
  5674. <div id="gorgeEx-procs-all">
  5675. <div id="gorgeEx,string,string,string">
  5676. <dt><pre><span class="Keyword">proc</span> <a href="#gorgeEx%2Cstring%2Cstring%2Cstring"><span class="Identifier">gorgeEx</span></a><span class="Other">(</span><span class="Identifier">command</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">input</span> <span class="Other">=</span> <span class="StringLit">&quot;&quot;</span><span class="Other">;</span> <span class="Identifier">cache</span> <span class="Other">=</span> <span class="StringLit">&quot;&quot;</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">tuple</span><span class="Other">[</span><span class="Identifier">output</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">,</span>
  5677. <span class="Identifier">exitCode</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">]</span> {.<span class="Identifier">noinit</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5678. <dd>
  5679. Similar to <a class="reference external" href="#gorge,string,string,string">gorge</a> but also returns the precious exit code.
  5680. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/compilation.nim#L205" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5681. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/compilation.nim#L205" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5682. </dd>
  5683. </div>
  5684. </div>
  5685. <div id="grow-procs-all">
  5686. <div id="grow,seq[T],Natural,T">
  5687. <dt><pre><span class="Keyword">proc</span> <a href="#grow%2Cseq%5BT%5D%2CNatural%2CT"><span class="Identifier">grow</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">newLen</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">;</span> <span class="Identifier">value</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span> {.<span class="Identifier">nodestroy</span>.}</pre></dt>
  5688. <dd>
  5689. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/seqs_v2.nim#L138" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5690. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/seqs_v2.nim#L138" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5691. </dd>
  5692. </div>
  5693. </div>
  5694. <div id="high-procs-all">
  5695. <div id="high,typedesc[SomeFloat]">
  5696. <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>
  5697. <dd>
  5698. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1288" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5699. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1288" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5700. </dd>
  5701. </div>
  5702. <div id="high,cstring">
  5703. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;High&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  5704. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5705. <dd>
  5706. <p>Returns the highest possible index of a compatible string <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. This is sometimes an O(n) operation.</p>
  5707. <p>See also:</p>
  5708. <ul class="simple"><li><a class="reference external" href="#low,cstring">low(cstring)</a></li>
  5709. </ul>
  5710. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L268" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5711. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L268" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5712. </dd>
  5713. </div>
  5714. <div id="high,string">
  5715. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;High&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  5716. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5717. <dd>
  5718. <p>Returns the highest possible index of a string <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
  5719. <p><pre class="listing"><span class="Keyword">var</span> <span class="Identifier">str</span> <span class="Operator">=</span> <span class="StringLit">&quot;Hello world!&quot;</span>
  5720. <span class="Identifier">high</span><span class="Punctuation">(</span><span class="Identifier">str</span><span class="Punctuation">)</span> <span class="Comment"># =&gt; 11</span></pre></p>
  5721. <p>See also:</p>
  5722. <ul class="simple"><li><a class="reference external" href="#low,string">low(string)</a></li>
  5723. </ul>
  5724. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L275" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5725. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L275" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5726. </dd>
  5727. </div>
  5728. <div id="high,array[I,T]">
  5729. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;High&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  5730. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5731. <dd>
  5732. <p>Returns the highest possible index of an array <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
  5733. <p>For empty arrays, the return type is <tt class="docutils literal"><span class="pre"><span class="Identifier">int</span></span></tt>.</p>
  5734. <p><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>
  5735. <span class="Identifier">high</span><span class="Punctuation">(</span><span class="Identifier">arr</span><span class="Punctuation">)</span> <span class="Comment"># =&gt; 6</span>
  5736. <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>
  5737. <span class="Identifier">echo</span> <span class="Identifier">arr</span><span class="Punctuation">[</span><span class="Identifier">i</span><span class="Punctuation">]</span></pre></p>
  5738. <p>See also:</p>
  5739. <ul class="simple"><li><a class="reference external" href="#low,array[I,T]">low(array)</a></li>
  5740. </ul>
  5741. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L243" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5742. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L243" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5743. </dd>
  5744. </div>
  5745. <div id="high,typedesc[array[I,T]]">
  5746. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;High&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  5747. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5748. <dd>
  5749. <p>Returns the highest possible index of an array type.</p>
  5750. <p>For empty arrays, the return type is <tt class="docutils literal"><span class="pre"><span class="Identifier">int</span></span></tt>.</p>
  5751. <p><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"># =&gt; 6</span></pre></p>
  5752. <p>See also:</p>
  5753. <ul class="simple"><li><a class="reference external" href="#low,typedesc[array[I,T]]">low(typedesc[array])</a></li>
  5754. </ul>
  5755. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L257" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5756. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L257" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5757. </dd>
  5758. </div>
  5759. <div id="high,T">
  5760. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;High&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">&quot;Deprecated since v1.4; there should not be `high(value)`. Use `high(type)`.&quot;</span><span class="Other">,</span>
  5761. <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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5762. <dd>
  5763. <div class="deprecation-message">
  5764. <b>Deprecated:</b> Deprecated since v1.4; there should not be `high(value)`. Use `high(type)`.
  5765. </div>
  5766. <p>Returns the highest possible value of an ordinal value <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
  5767. <p>As a special semantic rule, <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> may also be a type identifier.</p>
  5768. <p><strong>This proc is deprecated</strong>, use this one instead:</p>
  5769. <ul class="simple"><li><a class="reference external" href="#high,typedesc[T]">high(typedesc)</a></li>
  5770. </ul>
  5771. <p><pre class="listing"><span class="Identifier">high</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Comment"># =&gt; 9223372036854775807</span></pre></p>
  5772. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L207" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5773. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L207" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5774. </dd>
  5775. </div>
  5776. <div id="high,typedesc[T]">
  5777. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;High&quot;</span><span class="Other">,</span>
  5778. <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5779. <dd>
  5780. <p>Returns the highest possible value of an ordinal or enum type.</p>
  5781. <p><tt class="docutils literal"><span class="pre"><span class="Identifier">high</span><span class="Punctuation">(</span><span class="Identifier">int</span><span class="Punctuation">)</span></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>
  5782. <p><pre class="listing"><span class="Identifier">high</span><span class="Punctuation">(</span><span class="Identifier">int</span><span class="Punctuation">)</span> <span class="Comment"># =&gt; 9223372036854775807</span></pre></p>
  5783. <p>See also:</p>
  5784. <ul class="simple"><li><a class="reference external" href="#low,typedesc[T]">low(typedesc)</a></li>
  5785. </ul>
  5786. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L220" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5787. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L220" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5788. </dd>
  5789. </div>
  5790. <div id="high,openArray[T]">
  5791. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;High&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  5792. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5793. <dd>
  5794. <p>Returns the highest possible index of a sequence <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
  5795. <p><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>
  5796. <span class="Identifier">high</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span> <span class="Comment"># =&gt; 6</span>
  5797. <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>
  5798. <span class="Identifier">echo</span> <span class="Identifier">s</span><span class="Punctuation">[</span><span class="Identifier">i</span><span class="Punctuation">]</span></pre></p>
  5799. <p>See also:</p>
  5800. <ul class="simple"><li><a class="reference external" href="#low,openArray[T]">low(openArray)</a></li>
  5801. </ul>
  5802. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L231" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5803. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L231" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5804. </dd>
  5805. </div>
  5806. </div>
  5807. <div id="inc-procs-all">
  5808. <div id="inc,T,V">
  5809. <dt><pre><span class="Keyword">proc</span> <a href="#inc%2CT%2CV"><span class="Identifier">inc</span></a><span class="Other">[</span><span class="Identifier">T</span><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> <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">V</span> <span class="Other">=</span> <span class="DecNumber">1</span><span class="Other">)</span> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Inc&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  5810. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5811. <dd>
  5812. <p>Increments the ordinal <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> by <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.</p>
  5813. <p>If such a value does not exist, <tt class="docutils literal"><span class="pre"><span class="Identifier">OverflowDefect</span></span></tt> is raised or a compile time error occurs. This is a short notation for: <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span> <span class="Operator">=</span> <span class="Identifier">succ</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">,</span> <span class="Identifier">y</span><span class="Punctuation">)</span></span></tt>.</p>
  5814. <p><strong class="examples_text">Example:</strong></p>
  5815. <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">i</span> <span class="Operator">=</span> <span class="DecNumber">2</span>
  5816. <span class="Identifier">inc</span><span class="Punctuation">(</span><span class="Identifier">i</span><span class="Punctuation">)</span>
  5817. <span class="Identifier">assert</span> <span class="Identifier">i</span> <span class="Operator">==</span> <span class="DecNumber">3</span>
  5818. <span class="Identifier">inc</span><span class="Punctuation">(</span><span class="Identifier">i</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">)</span>
  5819. <span class="Identifier">assert</span> <span class="Identifier">i</span> <span class="Operator">==</span> <span class="DecNumber">6</span></pre>
  5820. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L19" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5821. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L19" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5822. </dd>
  5823. </div>
  5824. </div>
  5825. <div id="incl-procs-all">
  5826. <div id="incl,set[T],T">
  5827. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Incl&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  5828. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5829. <dd>
  5830. <p>Includes element <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> in the set <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
  5831. <p>This is the same as <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span> <span class="Operator">=</span> <span class="Identifier">x</span> <span class="Operator">+</span> <span class="Punctuation">{</span><span class="Identifier">y</span><span class="Punctuation">}</span></span></tt>, but it might be more efficient.</p>
  5832. <p><strong class="examples_text">Example:</strong></p>
  5833. <pre class="listing"><span class="Keyword">var</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>
  5834. <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>
  5835. <span class="Identifier">assert</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">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">}</span>
  5836. <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>
  5837. <span class="Identifier">assert</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">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></pre>
  5838. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/setops.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5839. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/setops.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5840. </dd>
  5841. </div>
  5842. </div>
  5843. <div id="insert-procs-all">
  5844. <div id="insert,string,string">
  5845. <dt><pre><span class="Keyword">proc</span> <a href="#insert%2Cstring%2Cstring"><span class="Identifier">insert</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">item</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><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 class="Identifier">noSideEffect</span><span class="Other">,</span>
  5846. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5847. <dd>
  5848. <p>Inserts <tt class="docutils literal"><span class="pre"><span class="Identifier">item</span></span></tt> into <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> at position <tt class="docutils literal"><span class="pre"><span class="Identifier">i</span></span></tt>.</p>
  5849. <p><pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;abc&quot;</span>
  5850. <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">insert</span><span class="Punctuation">(</span><span class="StringLit">&quot;zz&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">0</span><span class="Punctuation">)</span> <span class="Comment"># a &lt;- &quot;zzabc&quot;</span></pre></p>
  5851. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2548" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5852. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2548" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5853. </dd>
  5854. </div>
  5855. <div id="insert,seq[T],sinkT">
  5856. <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 class="Identifier">noSideEffect</span>.}</pre></dt>
  5857. <dd>
  5858. <p>Inserts <tt class="docutils literal"><span class="pre"><span class="Identifier">item</span></span></tt> into <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> at position <tt class="docutils literal"><span class="pre"><span class="Identifier">i</span></span></tt>.</p>
  5859. <p><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>
  5860. <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 &lt;- @[99, 1, 3, 5]</span></pre></p>
  5861. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1231" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5862. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1231" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5863. </dd>
  5864. </div>
  5865. </div>
  5866. <div id="instantiationInfo-procs-all">
  5867. <div id="instantiationInfo,int">
  5868. <dt><pre><span class="Keyword">proc</span> <a href="#instantiationInfo%2Cint"><span class="Identifier">instantiationInfo</span></a><span class="Other">(</span><span class="Identifier">index</span> <span class="Other">=</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>
  5869. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;InstantiationInfo&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  5870. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5871. <dd>
  5872. <p>Provides access to the compiler's instantiation stack line information of a template.</p>
  5873. <p>While similar to the <span id="caller-info_1">caller info</span> of other languages, it is determined at compile time.</p>
  5874. <p>This proc is mostly useful for meta programming (eg. <tt class="docutils literal"><span class="pre"><span class="Identifier">assert</span></span></tt> template) to retrieve information about the current filename and line number. Example:</p>
  5875. <p><pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">strutils</span>
  5876. <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>
  5877. <span class="Keyword">try</span><span class="Punctuation">:</span>
  5878. <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>
  5879. <span class="Keyword">discard</span><span class="Punctuation">(</span><span class="Identifier">code</span><span class="Punctuation">)</span>
  5880. <span class="Identifier">echo</span> <span class="StringLit">&quot;Test failure at $1:$2 with '$3'&quot;</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>
  5881. <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>
  5882. <span class="Identifier">assert</span> <span class="Identifier">false</span><span class="Punctuation">,</span> <span class="StringLit">&quot;A test expecting failure succeeded?&quot;</span>
  5883. <span class="Keyword">except</span> <span class="Identifier">exception</span><span class="Punctuation">:</span>
  5884. <span class="Keyword">discard</span>
  5885. <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>
  5886. <span class="Keyword">let</span>
  5887. <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>
  5888. <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>
  5889. <span class="Keyword">when</span> <span class="Identifier">isMainModule</span><span class="Punctuation">:</span>
  5890. <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>
  5891. <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>
  5892. <span class="Comment"># --&gt; Test failure at example.nim:20 with 'tester(1)'</span></pre></p>
  5893. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1564" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5894. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1564" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5895. </dd>
  5896. </div>
  5897. </div>
  5898. <div id="is-procs-all">
  5899. <div id="is,T,S">
  5900. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Is&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  5901. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5902. <dd>
  5903. <p>Checks if <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt> is of the same type as <tt class="docutils literal"><span class="pre"><span class="Identifier">S</span></span></tt>.</p>
  5904. <p>For a negated version, use <a class="reference external" href="#isnot.t,untyped,untyped">isnot</a>.</p>
  5905. <p><pre class="listing"><span class="Identifier">assert</span> <span class="DecNumber">42</span> <span class="Keyword">is</span> <span class="Identifier">int</span>
  5906. <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>
  5907. <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>
  5908. <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>
  5909. <span class="Keyword">return</span> <span class="Identifier">a</span>
  5910. <span class="Keyword">else</span><span class="Punctuation">:</span>
  5911. <span class="Keyword">return</span> <span class="DecNumber">0</span>
  5912. <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>
  5913. <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">&quot;xyz&quot;</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">0</span><span class="Punctuation">)</span></pre></p>
  5914. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L772" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5915. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L772" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5916. </dd>
  5917. </div>
  5918. </div>
  5919. <div id="isNil-procs-all">
  5920. <div id="isNil,cstring">
  5921. <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 class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;IsNil&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  5922. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5923. <dd>
  5924. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1449" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5925. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1449" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5926. </dd>
  5927. </div>
  5928. <div id="isNil,pointer">
  5929. <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 class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;IsNil&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  5930. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5931. <dd>
  5932. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1448" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5933. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1448" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5934. </dd>
  5935. </div>
  5936. <div id="isNil,T">
  5937. <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="Operator">|</span> <span class="Keyword">iterator</span> {.<span class="Identifier">closure</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 class="Identifier">noSideEffect</span><span class="Other">,</span>
  5938. <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;IsNil&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5939. <dd>
  5940. Fast check whether <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is nil. This is sometimes more efficient than <tt class="docutils literal"><span class="pre"><span class="Operator">==</span> <span class="Keyword">nil</span></span></tt>.
  5941. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1450" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5942. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1450" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5943. </dd>
  5944. </div>
  5945. <div id="isNil,ptr.T">
  5946. <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 class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;IsNil&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  5947. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5948. <dd>
  5949. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1447" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5950. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1447" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5951. </dd>
  5952. </div>
  5953. <div id="isNil,ref.T">
  5954. <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 class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;IsNil&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  5955. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5956. <dd>
  5957. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1445" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5958. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1445" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5959. </dd>
  5960. </div>
  5961. </div>
  5962. <div id="isNotForeign-procs-all">
  5963. <div id="isNotForeign,ForeignCell">
  5964. <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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5965. <dd>
  5966. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/mmdisp.nim#L120" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5967. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/mmdisp.nim#L120" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5968. </dd>
  5969. </div>
  5970. </div>
  5971. <div id="isUniqueRef-procs-all">
  5972. <div id="isUniqueRef,ref.T">
  5973. <dt><pre><span class="Keyword">proc</span> <a href="#isUniqueRef%2Cref.T"><span class="Identifier">isUniqueRef</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 class="Identifier">inline</span>.}</pre></dt>
  5974. <dd>
  5975. Returns true if the object <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> points to is uniquely referenced. Such an object can potentially be passed over to a different thread safely, if great care is taken. This queries the internal reference count of the object which is subject to lots of optimizations! In other words the value of <tt class="docutils literal"><span class="pre"><span class="Identifier">isUniqueRef</span></span></tt> can depend on the used compiler version and optimizer setting. Nevertheless it can be used as a very valuable debugging tool and can be used to specify the constraints of a threading related API via <tt class="docutils literal"><span class="pre"><span class="Identifier">assert</span> <span class="Identifier">isUniqueRef</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span></span></tt>.
  5976. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arc.nim#L136" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5977. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arc.nim#L136" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5978. </dd>
  5979. </div>
  5980. </div>
  5981. <div id="iterToProc-procs-all">
  5982. <div id="iterToProc,typed,typedesc,untyped">
  5983. <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> {.
  5984. <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Plugin&quot;</span><span class="Other">,</span> <span class="Identifier">compileTime</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5985. <dd>
  5986. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/alloc.nim#L490" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  5987. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/alloc.nim#L490" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  5988. </dd>
  5989. </div>
  5990. </div>
  5991. <div id="len-procs-all">
  5992. <div id="len">
  5993. <dt><pre><span class="Keyword">func</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LengthArray&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  5994. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  5995. <dd>
  5996. Returns the length of an array or an array type. This is roughly the same as <tt class="docutils literal"><span class="pre"><span class="Identifier">high</span><span class="Punctuation">(</span><span class="Identifier">T</span><span class="Punctuation">)</span><span class="Operator">-</span><span class="Identifier">low</span><span class="Punctuation">(</span><span class="Identifier">T</span><span class="Punctuation">)</span><span class="Operator">+</span><span class="DecNumber">1</span></span></tt>.
  5997. <p><strong class="examples_text">Example:</strong></p>
  5998. <pre class="listing"><span class="Keyword">var</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">1</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">]</span>
  5999. <span class="Identifier">assert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">len</span> <span class="Operator">==</span> <span class="DecNumber">3</span>
  6000. <span class="Identifier">assert</span> <span class="Identifier">array</span><span class="Punctuation">[</span><span class="DecNumber">0</span><span class="Punctuation">,</span> <span class="Identifier">float</span><span class="Punctuation">]</span><span class="Operator">.</span><span class="Identifier">len</span> <span class="Operator">==</span> <span class="DecNumber">0</span>
  6001. <span class="Keyword">static</span><span class="Punctuation">:</span> <span class="Identifier">assert</span> <span class="Identifier">array</span><span class="Punctuation">[</span><span class="Operator">-</span><span class="FloatNumber">2.</span><span class="Operator">.</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="Identifier">float</span><span class="Punctuation">]</span><span class="Operator">.</span><span class="Identifier">len</span> <span class="Operator">==</span> <span class="DecNumber">5</span></pre>
  6002. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L700" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6003. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L700" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6004. </dd>
  6005. </div>
  6006. <div id="len,cstring">
  6007. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LengthStr&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6008. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6009. <dd>
  6010. <p>Returns the length of a compatible string. This is an O(n) operation except in js at runtime.</p>
  6011. <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 class="Operator">$</span></span></tt> first then call <tt class="docutils literal"><span class="pre"><span class="Identifier">len</span></span></tt>.</p>
  6012. <p><strong class="examples_text">Example:</strong></p>
  6013. <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="RawData">cstring&quot;abc&quot;</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">3</span>
  6014. <span class="Identifier">doAssert</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">cstring</span> <span class="RawData">r&quot;ab\0c&quot;</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">5</span> <span class="Comment"># \0 is escaped</span>
  6015. <span class="Identifier">doAssert</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="RawData">cstring&quot;ab\0c&quot;</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">5</span> <span class="Comment"># ditto</span>
  6016. <span class="Keyword">var</span> <span class="Identifier">a</span><span class="Punctuation">:</span> <span class="Identifier">cstring</span> <span class="Operator">=</span> <span class="StringLit">&quot;ab</span><span class="EscapeSequence">\0</span><span class="StringLit">c&quot;</span>
  6017. <span class="Keyword">when</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="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">len</span> <span class="Operator">==</span> <span class="DecNumber">4</span> <span class="Comment"># len ignores \0 for js</span>
  6018. <span class="Keyword">else</span><span class="Punctuation">:</span> <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">len</span> <span class="Operator">==</span> <span class="DecNumber">2</span> <span class="Comment"># \0 is a null terminator</span>
  6019. <span class="Keyword">static</span><span class="Punctuation">:</span>
  6020. <span class="Keyword">var</span> <span class="Identifier">a2</span><span class="Punctuation">:</span> <span class="Identifier">cstring</span> <span class="Operator">=</span> <span class="StringLit">&quot;ab</span><span class="EscapeSequence">\0</span><span class="StringLit">c&quot;</span>
  6021. <span class="Identifier">doAssert</span> <span class="Identifier">a2</span><span class="Operator">.</span><span class="Identifier">len</span> <span class="Operator">==</span> <span class="DecNumber">2</span> <span class="Comment"># \0 is a null terminator, even in js vm</span></pre>
  6022. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L681" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6023. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L681" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6024. </dd>
  6025. </div>
  6026. <div id="len,string">
  6027. <dt><pre><span class="Keyword">func</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LengthStr&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6028. <dd>
  6029. Returns the length of a string.
  6030. <p><strong class="examples_text">Example:</strong></p>
  6031. <pre class="listing"><span class="Identifier">assert</span> <span class="StringLit">&quot;abc&quot;</span><span class="Operator">.</span><span class="Identifier">len</span> <span class="Operator">==</span> <span class="DecNumber">3</span>
  6032. <span class="Identifier">assert</span> <span class="StringLit">&quot;&quot;</span><span class="Operator">.</span><span class="Identifier">len</span> <span class="Operator">==</span> <span class="DecNumber">0</span>
  6033. <span class="Identifier">assert</span> <span class="Identifier">string</span><span class="Operator">.</span><span class="Identifier">default</span><span class="Operator">.</span><span class="Identifier">len</span> <span class="Operator">==</span> <span class="DecNumber">0</span></pre>
  6034. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L674" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6035. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L674" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6036. </dd>
  6037. </div>
  6038. <div id="len,seq[T]">
  6039. <dt><pre><span class="Keyword">func</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LengthSeq&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  6040. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6041. <dd>
  6042. Returns the length of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.
  6043. <p><strong class="examples_text">Example:</strong></p>
  6044. <pre class="listing"><span class="Identifier">assert</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">0</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">]</span><span class="Operator">.</span><span class="Identifier">len</span> <span class="Operator">==</span> <span class="DecNumber">2</span>
  6045. <span class="Identifier">assert</span> <span class="Identifier">seq</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">]</span><span class="Operator">.</span><span class="Identifier">default</span><span class="Operator">.</span><span class="Identifier">len</span> <span class="Operator">==</span> <span class="DecNumber">0</span>
  6046. <span class="Identifier">assert</span> <span class="Identifier">newSeq</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="Identifier">len</span> <span class="Operator">==</span> <span class="DecNumber">3</span>
  6047. <span class="Keyword">let</span> <span class="Identifier">s</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">3</span><span class="Punctuation">)</span>
  6048. <span class="Identifier">assert</span> <span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">len</span> <span class="Operator">==</span> <span class="DecNumber">0</span></pre>
  6049. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L709" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6050. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L709" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6051. </dd>
  6052. </div>
  6053. <div id="len,set[T]">
  6054. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Card&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6055. <dd>
  6056. An alias for <tt class="docutils literal"><span class="pre"><span class="Identifier">card</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span></span></tt>.
  6057. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/setops.nim#L51" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6058. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/setops.nim#L51" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6059. </dd>
  6060. </div>
  6061. <div id="len,TOpenArray">
  6062. <dt><pre><span class="Keyword">func</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> {.
  6063. <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;LengthOpenArray&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6064. <dd>
  6065. Returns the length of an openArray.
  6066. <p><strong class="examples_text">Example:</strong></p>
  6067. <pre class="listing"><span class="Keyword">proc</span> <span class="Identifier">bar</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">openArray</span><span class="Punctuation">[</span><span class="Identifier">T</span><span class="Punctuation">]</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Identifier">int</span> <span class="Operator">=</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span>
  6068. <span class="Identifier">assert</span> <span class="Identifier">bar</span><span class="Punctuation">(</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="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">2</span>
  6069. <span class="Identifier">assert</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="Operator">.</span><span class="Identifier">len</span> <span class="Operator">==</span> <span class="DecNumber">2</span></pre>
  6070. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L667" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6071. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L667" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6072. </dd>
  6073. </div>
  6074. <div id="len,HSlice[U: Ordinal,V: Ordinal]">
  6075. <dt><pre><span class="Keyword">proc</span> <a href="#len%2CHSlice%5BU%3A%20Ordinal%2CV%3A%20Ordinal%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 class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span>.}</pre></dt>
  6076. <dd>
  6077. <p>Length of ordinal slice. When x.b &lt; x.a returns zero length.</p>
  6078. <p><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>
  6079. <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></p>
  6080. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1437" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6081. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1437" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6082. </dd>
  6083. </div>
  6084. </div>
  6085. <div id="locals-procs-all">
  6086. <div id="locals">
  6087. <dt><pre><span class="Keyword">proc</span> <a href="#locals"><span class="Identifier">locals</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#RootObj"><span class="Identifier">RootObj</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Plugin&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  6088. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6089. <dd>
  6090. <p>Generates a tuple constructor expression listing all the local variables in the current scope.</p>
  6091. <p>This is quite fast as it does not rely on any debug or runtime information. Note that in contrast to what the official signature says, the return type is <em>not</em> <tt class="docutils literal"><span class="pre"><span class="Identifier">RootObj</span></span></tt> but a tuple of a structure that depends on the current scope. Example:</p>
  6092. <p><pre class="listing"><span class="Keyword">proc</span> <span class="Identifier">testLocals</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Operator">=</span>
  6093. <span class="Keyword">var</span>
  6094. <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;something&quot;</span>
  6095. <span class="Identifier">b</span> <span class="Operator">=</span> <span class="DecNumber">4</span>
  6096. <span class="Identifier">c</span> <span class="Operator">=</span> <span class="Identifier">locals</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
  6097. <span class="Identifier">d</span> <span class="Operator">=</span> <span class="StringLit">&quot;super!&quot;</span>
  6098. <span class="Identifier">b</span> <span class="Operator">=</span> <span class="DecNumber">1</span>
  6099. <span class="Keyword">for</span> <span class="Identifier">name</span><span class="Punctuation">,</span> <span class="Identifier">value</span> <span class="Keyword">in</span> <span class="Identifier">fieldPairs</span><span class="Punctuation">(</span><span class="Identifier">c</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
  6100. <span class="Identifier">echo</span> <span class="StringLit">&quot;name &quot;</span><span class="Punctuation">,</span> <span class="Identifier">name</span><span class="Punctuation">,</span> <span class="StringLit">&quot; with value &quot;</span><span class="Punctuation">,</span> <span class="Identifier">value</span>
  6101. <span class="Identifier">echo</span> <span class="StringLit">&quot;B is &quot;</span><span class="Punctuation">,</span> <span class="Identifier">b</span>
  6102. <span class="Comment"># -&gt; name a with value something</span>
  6103. <span class="Comment"># -&gt; name b with value 4</span>
  6104. <span class="Comment"># -&gt; B is 1</span></pre></p>
  6105. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2664" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6106. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2664" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6107. </dd>
  6108. </div>
  6109. </div>
  6110. <div id="low-procs-all">
  6111. <div id="low,typedesc[SomeFloat]">
  6112. <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>
  6113. <dd>
  6114. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1289" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6115. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1289" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6116. </dd>
  6117. </div>
  6118. <div id="low,cstring">
  6119. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Low&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  6120. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6121. <dd>
  6122. <p>Returns the lowest possible index of a compatible string <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
  6123. <p>See also:</p>
  6124. <ul class="simple"><li><a class="reference external" href="#high,cstring">high(cstring)</a></li>
  6125. </ul>
  6126. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L345" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6127. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L345" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6128. </dd>
  6129. </div>
  6130. <div id="low,string">
  6131. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Low&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  6132. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6133. <dd>
  6134. <p>Returns the lowest possible index of a string <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
  6135. <p><pre class="listing"><span class="Keyword">var</span> <span class="Identifier">str</span> <span class="Operator">=</span> <span class="StringLit">&quot;Hello world!&quot;</span>
  6136. <span class="Identifier">low</span><span class="Punctuation">(</span><span class="Identifier">str</span><span class="Punctuation">)</span> <span class="Comment"># =&gt; 0</span></pre></p>
  6137. <p>See also:</p>
  6138. <ul class="simple"><li><a class="reference external" href="#high,string">high(string)</a></li>
  6139. </ul>
  6140. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L351" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6141. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L351" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6142. </dd>
  6143. </div>
  6144. <div id="low,array[I,T]">
  6145. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Low&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6146. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6147. <dd>
  6148. <p>Returns the lowest possible index of an array <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
  6149. <p>For empty arrays, the return type is <tt class="docutils literal"><span class="pre"><span class="Identifier">int</span></span></tt>.</p>
  6150. <p><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>
  6151. <span class="Identifier">low</span><span class="Punctuation">(</span><span class="Identifier">arr</span><span class="Punctuation">)</span> <span class="Comment"># =&gt; 0</span>
  6152. <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>
  6153. <span class="Identifier">echo</span> <span class="Identifier">arr</span><span class="Punctuation">[</span><span class="Identifier">i</span><span class="Punctuation">]</span></pre></p>
  6154. <p>See also:</p>
  6155. <ul class="simple"><li><a class="reference external" href="#high,array[I,T]">high(array)</a></li>
  6156. </ul>
  6157. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L320" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6158. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L320" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6159. </dd>
  6160. </div>
  6161. <div id="low,typedesc[array[I,T]]">
  6162. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Low&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  6163. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6164. <dd>
  6165. <p>Returns the lowest possible index of an array type.</p>
  6166. <p>For empty arrays, the return type is <tt class="docutils literal"><span class="pre"><span class="Identifier">int</span></span></tt>.</p>
  6167. <p><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"># =&gt; 0</span></pre></p>
  6168. <p>See also:</p>
  6169. <ul class="simple"><li><a class="reference external" href="#high,typedesc[array[I,T]]">high(typedesc[array])</a></li>
  6170. </ul>
  6171. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L334" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6172. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L334" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6173. </dd>
  6174. </div>
  6175. <div id="low,T">
  6176. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Low&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">&quot;Deprecated since v1.4; there should not be `low(value)`. Use `low(type)`.&quot;</span><span class="Other">,</span>
  6177. <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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6178. <dd>
  6179. <div class="deprecation-message">
  6180. <b>Deprecated:</b> Deprecated since v1.4; there should not be `low(value)`. Use `low(type)`.
  6181. </div>
  6182. <p>Returns the lowest possible value of an ordinal value <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. As a special semantic rule, <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> may also be a type identifier.</p>
  6183. <p><strong>This proc is deprecated</strong>, use this one instead:</p>
  6184. <ul class="simple"><li><a class="reference external" href="#low,typedesc[T]">low(typedesc)</a></li>
  6185. </ul>
  6186. <p><pre class="listing"><span class="Identifier">low</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Comment"># =&gt; -9223372036854775808</span></pre></p>
  6187. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L285" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6188. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L285" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6189. </dd>
  6190. </div>
  6191. <div id="low,typedesc[T]">
  6192. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Low&quot;</span><span class="Other">,</span>
  6193. <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6194. <dd>
  6195. <p>Returns the lowest possible value of an ordinal or enum type.</p>
  6196. <p><tt class="docutils literal"><span class="pre"><span class="Identifier">low</span><span class="Punctuation">(</span><span class="Identifier">int</span><span class="Punctuation">)</span></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>
  6197. <p><pre class="listing"><span class="Identifier">low</span><span class="Punctuation">(</span><span class="Identifier">int</span><span class="Punctuation">)</span> <span class="Comment"># =&gt; -9223372036854775808</span></pre></p>
  6198. <p>See also:</p>
  6199. <ul class="simple"><li><a class="reference external" href="#high,typedesc[T]">high(typedesc)</a></li>
  6200. </ul>
  6201. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L297" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6202. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L297" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6203. </dd>
  6204. </div>
  6205. <div id="low,openArray[T]">
  6206. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Low&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6207. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6208. <dd>
  6209. <p>Returns the lowest possible index of a sequence <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
  6210. <p><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>
  6211. <span class="Identifier">low</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span> <span class="Comment"># =&gt; 0</span>
  6212. <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>
  6213. <span class="Identifier">echo</span> <span class="Identifier">s</span><span class="Punctuation">[</span><span class="Identifier">i</span><span class="Punctuation">]</span></pre></p>
  6214. <p>See also:</p>
  6215. <ul class="simple"><li><a class="reference external" href="#high,openArray[T]">high(openArray)</a></li>
  6216. </ul>
  6217. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L308" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6218. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L308" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6219. </dd>
  6220. </div>
  6221. </div>
  6222. <div id="max-procs-all">
  6223. <div id="max,float32,float32">
  6224. <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 class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  6225. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6226. <dd>
  6227. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L253" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6228. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L253" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6229. </dd>
  6230. </div>
  6231. <div id="max,float64,float64">
  6232. <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 class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  6233. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6234. <dd>
  6235. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L255" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6236. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L255" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6237. </dd>
  6238. </div>
  6239. <div id="max,int,int">
  6240. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MaxI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  6241. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6242. <dd>
  6243. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L242" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6244. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L242" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6245. </dd>
  6246. </div>
  6247. <div id="max,int8,int8">
  6248. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MaxI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  6249. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6250. <dd>
  6251. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L244" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6252. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L244" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6253. </dd>
  6254. </div>
  6255. <div id="max,int16,int16">
  6256. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MaxI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6257. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6258. <dd>
  6259. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L246" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6260. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L246" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6261. </dd>
  6262. </div>
  6263. <div id="max,int32,int32">
  6264. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MaxI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6265. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6266. <dd>
  6267. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L248" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6268. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L248" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6269. </dd>
  6270. </div>
  6271. <div id="max,int64,int64">
  6272. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MaxI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6273. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6274. <dd>
  6275. The maximum value of two integers.
  6276. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L250" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6277. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L250" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6278. </dd>
  6279. </div>
  6280. <div id="max,T,T">
  6281. <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 class="Identifier">inline</span>.}</pre></dt>
  6282. <dd>
  6283. Generic maximum operator of 2 values based on <tt class="docutils literal"><span class="pre"><span class="Operator">&lt;=</span></span></tt>.
  6284. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L257" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6285. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L257" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6286. </dd>
  6287. </div>
  6288. <div id="max,openArray[T]">
  6289. <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>
  6290. <dd>
  6291. The maximum value of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt> needs to have a <tt class="docutils literal"><span class="pre"><span class="Operator">&lt;</span></span></tt> operator.
  6292. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L268" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6293. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L268" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6294. </dd>
  6295. </div>
  6296. </div>
  6297. <div id="min-procs-all">
  6298. <div id="min,float32,float32">
  6299. <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 class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  6300. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6301. <dd>
  6302. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L234" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6303. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L234" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6304. </dd>
  6305. </div>
  6306. <div id="min,float64,float64">
  6307. <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 class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  6308. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6309. <dd>
  6310. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L236" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6311. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L236" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6312. </dd>
  6313. </div>
  6314. <div id="min,int,int">
  6315. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MinI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  6316. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6317. <dd>
  6318. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L223" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6319. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L223" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6320. </dd>
  6321. </div>
  6322. <div id="min,int8,int8">
  6323. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MinI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  6324. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6325. <dd>
  6326. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L225" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6327. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L225" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6328. </dd>
  6329. </div>
  6330. <div id="min,int16,int16">
  6331. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MinI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6332. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6333. <dd>
  6334. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L227" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6335. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L227" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6336. </dd>
  6337. </div>
  6338. <div id="min,int32,int32">
  6339. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MinI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6340. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6341. <dd>
  6342. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L229" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6343. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L229" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6344. </dd>
  6345. </div>
  6346. <div id="min,int64,int64">
  6347. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;MinI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6348. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6349. <dd>
  6350. The minimum value of two integers.
  6351. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L231" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6352. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L231" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6353. </dd>
  6354. </div>
  6355. <div id="min,T,T">
  6356. <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 class="Identifier">inline</span>.}</pre></dt>
  6357. <dd>
  6358. Generic minimum operator of 2 values based on <tt class="docutils literal"><span class="pre"><span class="Operator">&lt;=</span></span></tt>.
  6359. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L238" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6360. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L238" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6361. </dd>
  6362. </div>
  6363. <div id="min,openArray[T]">
  6364. <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>
  6365. <dd>
  6366. The minimum value of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt> needs to have a <tt class="docutils literal"><span class="pre"><span class="Operator">&lt;</span></span></tt> operator.
  6367. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L262" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6368. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L262" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6369. </dd>
  6370. </div>
  6371. </div>
  6372. <div id="mod-procs-all">
  6373. <div id="mod,int,int">
  6374. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ModI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  6375. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6376. <dd>
  6377. <p>Computes the integer modulo operation (remainder).</p>
  6378. <p>This is the same as <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span> <span class="Operator">-</span> <span class="Punctuation">(</span><span class="Identifier">x</span> <span class="Keyword">div</span> <span class="Identifier">y</span><span class="Punctuation">)</span> <span class="Operator">*</span> <span class="Identifier">y</span></span></tt>.</p>
  6379. <p><strong class="examples_text">Example:</strong></p>
  6380. <pre class="listing"><span class="Identifier">assert</span> <span class="Punctuation">(</span><span class="DecNumber">7</span> <span class="Keyword">mod</span> <span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">2</span>
  6381. <span class="Identifier">assert</span> <span class="Punctuation">(</span><span class="Operator">-</span><span class="DecNumber">7</span> <span class="Keyword">mod</span> <span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">2</span>
  6382. <span class="Identifier">assert</span> <span class="Punctuation">(</span><span class="DecNumber">7</span> <span class="Keyword">mod</span> <span class="Operator">-</span><span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">2</span>
  6383. <span class="Identifier">assert</span> <span class="Punctuation">(</span><span class="Operator">-</span><span class="DecNumber">7</span> <span class="Keyword">mod</span> <span class="Operator">-</span><span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">2</span></pre>
  6384. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L113" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6385. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L113" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6386. </dd>
  6387. </div>
  6388. <div id="mod,int8,int8">
  6389. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ModI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6390. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6391. <dd>
  6392. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L122" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6393. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L122" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6394. </dd>
  6395. </div>
  6396. <div id="mod,int16,int16">
  6397. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ModI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6398. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6399. <dd>
  6400. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L123" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6401. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L123" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6402. </dd>
  6403. </div>
  6404. <div id="mod,int32,int32">
  6405. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ModI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6406. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6407. <dd>
  6408. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L124" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6409. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L124" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6410. </dd>
  6411. </div>
  6412. <div id="mod,int64,int64">
  6413. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ModI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6414. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6415. <dd>
  6416. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L125" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6417. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L125" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6418. </dd>
  6419. </div>
  6420. <div id="mod,uint,uint">
  6421. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ModU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6422. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6423. <dd>
  6424. Computes the integer modulo operation (remainder) for unsigned integers. This is the same as <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span> <span class="Operator">-</span> <span class="Punctuation">(</span><span class="Identifier">x</span> <span class="Keyword">div</span> <span class="Identifier">y</span><span class="Punctuation">)</span> <span class="Operator">*</span> <span class="Identifier">y</span></span></tt>.
  6425. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L291" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6426. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L291" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6427. </dd>
  6428. </div>
  6429. <div id="mod,uint8,uint8">
  6430. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ModU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6431. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6432. <dd>
  6433. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L294" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6434. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L294" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6435. </dd>
  6436. </div>
  6437. <div id="mod,uint16,uint16">
  6438. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ModU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6439. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6440. <dd>
  6441. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L295" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6442. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L295" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6443. </dd>
  6444. </div>
  6445. <div id="mod,uint32,uint32">
  6446. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ModU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6447. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6448. <dd>
  6449. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L296" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6450. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L296" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6451. </dd>
  6452. </div>
  6453. <div id="mod,uint64,uint64">
  6454. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ModU&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6455. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6456. <dd>
  6457. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L297" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6458. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L297" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6459. </dd>
  6460. </div>
  6461. </div>
  6462. <div id="move-procs-all">
  6463. <div id="move,T">
  6464. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Move&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  6465. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6466. <dd>
  6467. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L171" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6468. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L171" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6469. </dd>
  6470. </div>
  6471. </div>
  6472. <div id="moveMem-procs-all">
  6473. <div id="moveMem,pointer,pointer,Natural">
  6474. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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>
  6475. <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6476. <dd>
  6477. <p>Copies the contents from the memory at <tt class="docutils literal"><span class="pre"><span class="Identifier">source</span></span></tt> to the memory at <tt class="docutils literal"><span class="pre"><span class="Identifier">dest</span></span></tt>.</p>
  6478. <p>Exactly <tt class="docutils literal"><span class="pre"><span class="Identifier">size</span></span></tt> bytes will be copied. The memory regions may overlap, <tt class="docutils literal"><span class="pre"><span class="Identifier">moveMem</span></span></tt> handles this case appropriately and is thus somewhat more safe than <tt class="docutils literal"><span class="pre"><span class="Identifier">copyMem</span></span></tt>. Like any procedure dealing with raw memory this is still <strong>unsafe</strong>, though.</p>
  6479. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L17" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6480. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L17" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6481. </dd>
  6482. </div>
  6483. </div>
  6484. <div id="new-procs-all">
  6485. <div id="new,typedesc">
  6486. <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>
  6487. <dd>
  6488. <p>Creates a new object of type <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt> and returns a safe (traced) reference to it as result value.</p>
  6489. <p>When <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt> is a ref type then the resulting type will be <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt>, otherwise it will be <tt class="docutils literal"><span class="pre"><span class="Keyword">ref</span> <span class="Identifier">T</span></span></tt>.</p>
  6490. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L831" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6491. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L831" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6492. </dd>
  6493. </div>
  6494. <div id="new,ref.T">
  6495. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;New&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  6496. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6497. <dd>
  6498. Creates a new object of type <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt> and returns a safe (traced) reference to it in <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt>.
  6499. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L827" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6500. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L827" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6501. </dd>
  6502. </div>
  6503. <div id="new,ref.T,proc(ref.T)">
  6504. <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 class="Identifier">nimcall</span>.}<span class="Other">)</span> {.
  6505. <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;NewFinalize&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  6506. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">&quot;pass a finalizer of the \'proc (x: T) {.nimcall.}\' type&quot;</span><span class="Other">,</span>
  6507. <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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6508. <dd>
  6509. <div class="deprecation-message">
  6510. <b>Deprecated:</b> pass a finalizer of the &apos;proc (x: T) {.nimcall.}&apos; type
  6511. </div>
  6512. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L144" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6513. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L144" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6514. </dd>
  6515. </div>
  6516. <div id="new,ref.T,proc(T)">
  6517. <dt><pre><span class="Keyword">proc</span> <a href="#new%2Cref.T%2Cproc%28T%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="Identifier">T</span><span class="Other">)</span> {.<span class="Identifier">nimcall</span>.}<span class="Other">)</span> {.
  6518. <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;NewFinalize&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6519. <dd>
  6520. <p>Creates a new object of type <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt> and returns a safe (traced) reference to it in <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt>.</p>
  6521. <p>When the garbage collector frees the object, <tt class="docutils literal"><span class="pre"><span class="Identifier">finalizer</span></span></tt> is called. The <tt class="docutils literal"><span class="pre"><span class="Identifier">finalizer</span></span></tt> may not keep a reference to the object pointed to by <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. The <tt class="docutils literal"><span class="pre"><span class="Identifier">finalizer</span></span></tt> cannot prevent the GC from freeing the object.</p>
  6522. <p><strong>Note</strong>: The <tt class="docutils literal"><span class="pre"><span class="Identifier">finalizer</span></span></tt> refers to the type <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt>, not to the object! This means that for each object of type <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt> the finalizer will be called!</p>
  6523. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L131" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6524. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L131" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6525. </dd>
  6526. </div>
  6527. </div>
  6528. <div id="newSeq-procs-all">
  6529. <div id="newSeq">
  6530. <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>
  6531. <dd>
  6532. <p>Creates a new sequence of type <tt class="docutils literal"><span class="pre"><span class="Identifier">seq</span><span class="Punctuation">[</span><span class="Identifier">T</span><span class="Punctuation">]</span></span></tt> with length <tt class="docutils literal"><span class="pre"><span class="Identifier">len</span></span></tt>.</p>
  6533. <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>
  6534. <p><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>
  6535. <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>
  6536. <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">&quot;The fourth&quot;</span>
  6537. <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">&quot;assignment&quot;</span>
  6538. <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">&quot;would crash&quot;</span>
  6539. <span class="Comment">#inputStrings[3] = &quot;out of bounds&quot;</span></pre></p>
  6540. <p>See also:</p>
  6541. <ul class="simple"><li><a class="reference external" href="#newSeqOfCap,Natural">newSeqOfCap</a></li>
  6542. <li><a class="reference external" href="#newSeqUninit,Natural">newSeqUninit</a></li>
  6543. </ul>
  6544. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L635" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6545. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L635" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6546. </dd>
  6547. </div>
  6548. <div id="newSeq,seq[T],Natural">
  6549. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;NewSeq&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  6550. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6551. <dd>
  6552. <p>Creates a new sequence of type <tt class="docutils literal"><span class="pre"><span class="Identifier">seq</span><span class="Punctuation">[</span><span class="Identifier">T</span><span class="Punctuation">]</span></span></tt> with length <tt class="docutils literal"><span class="pre"><span class="Identifier">len</span></span></tt>.</p>
  6553. <p>This is equivalent to <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span> <span class="Operator">=</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="Punctuation">]</span><span class="Punctuation">;</span> <span class="Identifier">setlen</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">,</span> <span class="Identifier">len</span><span class="Punctuation">)</span></span></tt>, but more efficient since no reallocation is needed.</p>
  6554. <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>
  6555. <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>
  6556. <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>
  6557. <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>
  6558. <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">&quot;The fourth&quot;</span>
  6559. <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">&quot;assignment&quot;</span>
  6560. <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">&quot;would crash&quot;</span>
  6561. <span class="Comment">#inputStrings[3] = &quot;out of bounds&quot;</span></pre></p>
  6562. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L616" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6563. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L616" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6564. </dd>
  6565. </div>
  6566. </div>
  6567. <div id="newSeqOfCap-procs-all">
  6568. <div id="newSeqOfCap,Natural">
  6569. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;NewSeqOfCap&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  6570. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6571. <dd>
  6572. <p>Creates a new sequence of type <tt class="docutils literal"><span class="pre"><span class="Identifier">seq</span><span class="Punctuation">[</span><span class="Identifier">T</span><span class="Punctuation">]</span></span></tt> with length zero and capacity <tt class="docutils literal"><span class="pre"><span class="Identifier">cap</span></span></tt>. Example:</p>
  6573. <p><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>
  6574. <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>
  6575. <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>
  6576. <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></p>
  6577. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L655" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6578. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L655" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6579. </dd>
  6580. </div>
  6581. </div>
  6582. <div id="newSeqUninit-procs-all">
  6583. <div id="newSeqUninit,Natural">
  6584. <dt><pre><span class="Keyword">func</span> <a href="#newSeqUninit%2CNatural"><span class="Identifier">newSeqUninit</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 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>
  6585. <dd>
  6586. <p>Creates a new sequence of type <tt class="docutils literal"><span class="pre"><span class="Identifier">seq</span><span class="Punctuation">[</span><span class="Identifier">T</span><span class="Punctuation">]</span></span></tt> with length <tt class="docutils literal"><span class="pre"><span class="Identifier">len</span></span></tt>.</p>
  6587. <p>Only available for types, which don't contain managed memory or have destructors. 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>
  6588. <p><strong class="examples_text">Example:</strong></p>
  6589. <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">x</span> <span class="Operator">=</span> <span class="Identifier">newSeqUninit</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>
  6590. <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>
  6591. <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>
  6592. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1668" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6593. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1668" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6594. </dd>
  6595. </div>
  6596. </div>
  6597. <div id="newSeqUninitialized-procs-all">
  6598. <div id="newSeqUninitialized,Natural">
  6599. <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> {.
  6600. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">&quot;Use `newSeqUninit` instead&quot;</span></span>.}</pre></dt>
  6601. <dd>
  6602. <div class="deprecation-message">
  6603. <b>Deprecated:</b> Use `newSeqUninit` instead
  6604. </div>
  6605. <p>Creates a new sequence of type <tt class="docutils literal"><span class="pre"><span class="Identifier">seq</span><span class="Punctuation">[</span><span class="Identifier">T</span><span class="Punctuation">]</span></span></tt> with length <tt class="docutils literal"><span class="pre"><span class="Identifier">len</span></span></tt>.</p>
  6606. <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. Example:</p>
  6607. <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>
  6608. <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>
  6609. <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></p>
  6610. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1649" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6611. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1649" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6612. </dd>
  6613. </div>
  6614. </div>
  6615. <div id="newString-procs-all">
  6616. <div id="newString,Natural">
  6617. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;NewString&quot;</span><span class="Other">,</span>
  6618. <span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;mnewString&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  6619. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6620. <dd>
  6621. <p>Returns a new string of length <tt class="docutils literal"><span class="pre"><span class="Identifier">len</span></span></tt>. One needs to fill the string character after character with the index operator <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span><span class="Punctuation">[</span><span class="Identifier">i</span><span class="Punctuation">]</span></span></tt>.</p>
  6622. <p>This procedure exists only for optimization purposes; the same effect can be achieved with the <tt class="docutils literal"><span class="pre"><span class="Operator">&amp;</span></span></tt> operator or with <tt class="docutils literal"><span class="pre"><span class="Identifier">add</span></span></tt>.</p>
  6623. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L972" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6624. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L972" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6625. </dd>
  6626. </div>
  6627. </div>
  6628. <div id="newStringOfCap-procs-all">
  6629. <div id="newStringOfCap,Natural">
  6630. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;NewStringOfCap&quot;</span><span class="Other">,</span>
  6631. <span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;rawNewString&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6632. <dd>
  6633. <p>Returns a new string of length <tt class="docutils literal"><span class="pre"><span class="DecNumber">0</span></span></tt> but with capacity <tt class="docutils literal"><span class="pre"><span class="Identifier">cap</span></span></tt>.</p>
  6634. <p>This procedure exists only for optimization purposes; the same effect can be achieved with the <tt class="docutils literal"><span class="pre"><span class="Operator">&amp;</span></span></tt> operator or with <tt class="docutils literal"><span class="pre"><span class="Identifier">add</span></span></tt>.</p>
  6635. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L981" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6636. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L981" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6637. </dd>
  6638. </div>
  6639. </div>
  6640. <div id="newStringUninit-procs-all">
  6641. <div id="newStringUninit,Natural">
  6642. <dt><pre><span class="Keyword">proc</span> <a href="#newStringUninit%2CNatural"><span class="Identifier">newStringUninit</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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6643. <dd>
  6644. <p>Returns a new string of length <tt class="docutils literal"><span class="pre"><span class="Identifier">len</span></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"><span class="Identifier">s</span><span class="Punctuation">[</span><span class="Identifier">i</span><span class="Punctuation">]</span></span></tt>.</p>
  6645. <p>This procedure exists only for optimization purposes; the same effect can be achieved with the <tt class="docutils literal"><span class="pre"><span class="Operator">&amp;</span></span></tt> operator or with <tt class="docutils literal"><span class="pre"><span class="Identifier">add</span></span></tt>.</p>
  6646. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1688" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6647. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1688" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6648. </dd>
  6649. </div>
  6650. </div>
  6651. <div id="not-procs-all">
  6652. <div id="not,typedesc">
  6653. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;TypeTrait&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  6654. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6655. <dd>
  6656. Constructs an <tt class="docutils literal"><span class="pre"><span class="Keyword">not</span></span></tt> meta class.
  6657. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L85" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6658. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L85" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6659. </dd>
  6660. </div>
  6661. <div id="not,bool">
  6662. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Not&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  6663. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6664. <dd>
  6665. Boolean not; returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span> <span class="Operator">==</span> <span class="Identifier">false</span></span></tt>.
  6666. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L76" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6667. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L76" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6668. </dd>
  6669. </div>
  6670. <div id="not,int">
  6671. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitnotI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  6672. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6673. <dd>
  6674. Computes the <tt class="docutils literal"><span class="pre"><span class="Identifier">bitwise</span> <span class="Identifier">complement</span></span></tt> of the integer <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.
  6675. <p><strong class="examples_text">Example:</strong></p>
  6676. <pre class="listing"><span class="Identifier">assert</span> <span class="Keyword">not</span> <span class="DecNumber">0'</span><span class="Identifier">u8</span> <span class="Operator">==</span> <span class="DecNumber">255</span>
  6677. <span class="Identifier">assert</span> <span class="Keyword">not</span> <span class="DecNumber">0'i8</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">1</span>
  6678. <span class="Identifier">assert</span> <span class="Keyword">not</span> <span class="DecNumber">1000'</span><span class="Identifier">u16</span> <span class="Operator">==</span> <span class="DecNumber">64535</span>
  6679. <span class="Identifier">assert</span> <span class="Keyword">not</span> <span class="DecNumber">1000'i16</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">1001</span></pre>
  6680. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L63" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6681. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L63" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6682. </dd>
  6683. </div>
  6684. <div id="not,int8">
  6685. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitnotI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6686. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6687. <dd>
  6688. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L70" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6689. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L70" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6690. </dd>
  6691. </div>
  6692. <div id="not,int16">
  6693. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitnotI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6694. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6695. <dd>
  6696. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L71" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6697. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L71" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6698. </dd>
  6699. </div>
  6700. <div id="not,int32">
  6701. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitnotI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6702. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6703. <dd>
  6704. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L72" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6705. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L72" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6706. </dd>
  6707. </div>
  6708. <div id="not,int64">
  6709. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitnotI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6710. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6711. <dd>
  6712. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L73" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6713. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L73" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6714. </dd>
  6715. </div>
  6716. <div id="not,uint">
  6717. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitnotI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6718. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6719. <dd>
  6720. Computes the <tt class="docutils literal"><span class="pre"><span class="Identifier">bitwise</span> <span class="Identifier">complement</span></span></tt> of the integer <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.
  6721. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L220" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6722. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L220" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6723. </dd>
  6724. </div>
  6725. <div id="not,uint8">
  6726. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitnotI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6727. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6728. <dd>
  6729. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L222" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6730. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L222" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6731. </dd>
  6732. </div>
  6733. <div id="not,uint16">
  6734. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitnotI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6735. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6736. <dd>
  6737. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L223" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6738. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L223" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6739. </dd>
  6740. </div>
  6741. <div id="not,uint32">
  6742. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitnotI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6743. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6744. <dd>
  6745. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L224" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6746. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L224" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6747. </dd>
  6748. </div>
  6749. <div id="not,uint64">
  6750. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitnotI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6751. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6752. <dd>
  6753. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L225" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6754. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L225" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6755. </dd>
  6756. </div>
  6757. </div>
  6758. <div id="of-procs-all">
  6759. <div id="of,T,typedesc[S]">
  6760. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Of&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  6761. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6762. <dd>
  6763. Checks if <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is an instance of <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.
  6764. <p><strong class="examples_text">Example:</strong></p>
  6765. <pre class="listing"><span class="Keyword">type</span>
  6766. <span class="Identifier">Base</span> <span class="Operator">=</span> <span class="Keyword">ref</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <span class="Identifier">RootObj</span>
  6767. <span class="Identifier">Sub1</span> <span class="Operator">=</span> <span class="Keyword">ref</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <span class="Identifier">Base</span>
  6768. <span class="Identifier">Sub2</span> <span class="Operator">=</span> <span class="Keyword">ref</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <span class="Identifier">Base</span>
  6769. <span class="Identifier">Unrelated</span> <span class="Operator">=</span> <span class="Keyword">ref</span> <span class="Keyword">object</span>
  6770. <span class="Keyword">var</span> <span class="Identifier">base</span><span class="Punctuation">:</span> <span class="Identifier">Base</span> <span class="Operator">=</span> <span class="Identifier">Sub1</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Comment"># downcast</span>
  6771. <span class="Identifier">doAssert</span> <span class="Identifier">base</span> <span class="Keyword">of</span> <span class="Identifier">Base</span> <span class="Comment"># generates `CondTrue` (statically true)</span>
  6772. <span class="Identifier">doAssert</span> <span class="Identifier">base</span> <span class="Keyword">of</span> <span class="Identifier">Sub1</span>
  6773. <span class="Identifier">doAssert</span> <span class="Identifier">base</span> <span class="Keyword">isnot</span> <span class="Identifier">Sub1</span>
  6774. <span class="Identifier">doAssert</span> <span class="Keyword">not</span> <span class="Punctuation">(</span><span class="Identifier">base</span> <span class="Keyword">of</span> <span class="Identifier">Sub2</span><span class="Punctuation">)</span>
  6775. <span class="Identifier">base</span> <span class="Operator">=</span> <span class="Identifier">Sub2</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Comment"># re-assign</span>
  6776. <span class="Identifier">doAssert</span> <span class="Identifier">base</span> <span class="Keyword">of</span> <span class="Identifier">Sub2</span>
  6777. <span class="Identifier">doAssert</span> <span class="Identifier">Sub2</span><span class="Punctuation">(</span><span class="Identifier">base</span><span class="Punctuation">)</span> <span class="Operator">!=</span> <span class="Keyword">nil</span> <span class="Comment"># upcast</span>
  6778. <span class="Identifier">doAssertRaises</span><span class="Punctuation">(</span><span class="Identifier">ObjectConversionDefect</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Keyword">discard</span> <span class="Identifier">Sub1</span><span class="Punctuation">(</span><span class="Identifier">base</span><span class="Punctuation">)</span>
  6779. <span class="Keyword">var</span> <span class="Identifier">sub1</span> <span class="Operator">=</span> <span class="Identifier">Sub1</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
  6780. <span class="Identifier">doAssert</span> <span class="Identifier">sub1</span> <span class="Keyword">of</span> <span class="Identifier">Base</span>
  6781. <span class="Identifier">doAssert</span> <span class="Identifier">sub1</span><span class="Operator">.</span><span class="Identifier">Base</span> <span class="Keyword">of</span> <span class="Identifier">Sub1</span>
  6782. <span class="Identifier">doAssert</span> <span class="Keyword">not</span> <span class="Identifier">compiles</span><span class="Punctuation">(</span><span class="Identifier">base</span> <span class="Keyword">of</span> <span class="Identifier">Unrelated</span><span class="Punctuation">)</span></pre>
  6783. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L852" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6784. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L852" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6785. </dd>
  6786. </div>
  6787. </div>
  6788. <div id="onThreadDestruction-procs-all">
  6789. <div id="onThreadDestruction,proc)">
  6790. <dt><pre><span class="Keyword">proc</span> <a href="#onThreadDestruction%2Cproc%29"><span class="Identifier">onThreadDestruction</span></a><span class="Other">(</span><span class="Identifier">handler</span><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Other">)</span> {.<span class="Identifier">closure</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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> {.
  6791. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6792. <dd>
  6793. <p>Registers a <em>thread local</em> handler that is called at the thread's destruction.</p>
  6794. <p>A thread is destructed when the <tt class="docutils literal"><span class="pre"><span class="Operator">.</span><span class="Identifier">thread</span></span></tt> proc returns normally or when it raises an exception. Note that unhandled exceptions in a thread nevertheless cause the whole process to die.</p>
  6795. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/threadimpl.nim#L31" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6796. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/threadimpl.nim#L31" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6797. </dd>
  6798. </div>
  6799. </div>
  6800. <div id="or-procs-all">
  6801. <div id="or,typedesc,typedesc">
  6802. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;TypeTrait&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  6803. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6804. <dd>
  6805. Constructs an <tt class="docutils literal"><span class="pre"><span class="Keyword">or</span></span></tt> meta class.
  6806. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L79" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6807. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L79" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6808. </dd>
  6809. </div>
  6810. <div id="or,bool,bool">
  6811. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Or&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  6812. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6813. <dd>
  6814. <p>Boolean <tt class="docutils literal"><span class="pre"><span class="Keyword">or</span></span></tt>; returns true if <tt class="docutils literal"><span class="pre"><span class="Keyword">not</span> <span class="Punctuation">(</span><span class="Keyword">not</span> <span class="Identifier">x</span> <span class="Keyword">and</span> <span class="Keyword">not</span> <span class="Identifier">y</span><span class="Punctuation">)</span></span></tt> (if any of the arguments is true).</p>
  6815. <p>Evaluation is lazy: if <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is true, <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> will not even be evaluated.</p>
  6816. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L84" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6817. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L84" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6818. </dd>
  6819. </div>
  6820. <div id="or,int,int">
  6821. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitorI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  6822. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6823. <dd>
  6824. Computes the <tt class="docutils literal"><span class="pre"><span class="Identifier">bitwise</span> <span class="Keyword">or</span></span></tt> of numbers <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.
  6825. <p><strong class="examples_text">Example:</strong></p>
  6826. <pre class="listing"><span class="Identifier">assert</span> <span class="Punctuation">(</span><span class="BinNumber">0b0011</span> <span class="Keyword">or</span> <span class="BinNumber">0b0101</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="BinNumber">0b0111</span>
  6827. <span class="Identifier">assert</span> <span class="Punctuation">(</span><span class="BinNumber">0b0111</span> <span class="Keyword">or</span> <span class="BinNumber">0b1100</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="BinNumber">0b1111</span></pre>
  6828. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L199" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6829. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L199" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6830. </dd>
  6831. </div>
  6832. <div id="or,int8,int8">
  6833. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitorI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6834. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6835. <dd>
  6836. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L204" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6837. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L204" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6838. </dd>
  6839. </div>
  6840. <div id="or,int16,int16">
  6841. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitorI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6842. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6843. <dd>
  6844. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L205" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6845. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L205" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6846. </dd>
  6847. </div>
  6848. <div id="or,int32,int32">
  6849. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitorI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6850. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6851. <dd>
  6852. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L206" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6853. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L206" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6854. </dd>
  6855. </div>
  6856. <div id="or,int64,int64">
  6857. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitorI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6858. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6859. <dd>
  6860. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L207" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6861. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L207" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6862. </dd>
  6863. </div>
  6864. <div id="or,uint,uint">
  6865. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitorI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6866. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6867. <dd>
  6868. Computes the <tt class="docutils literal"><span class="pre"><span class="Identifier">bitwise</span> <span class="Keyword">or</span></span></tt> of numbers <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.
  6869. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L248" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6870. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L248" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6871. </dd>
  6872. </div>
  6873. <div id="or,uint8,uint8">
  6874. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitorI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6875. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6876. <dd>
  6877. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L250" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6878. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L250" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6879. </dd>
  6880. </div>
  6881. <div id="or,uint16,uint16">
  6882. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitorI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6883. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6884. <dd>
  6885. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L251" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6886. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L251" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6887. </dd>
  6888. </div>
  6889. <div id="or,uint32,uint32">
  6890. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitorI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6891. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6892. <dd>
  6893. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L252" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6894. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L252" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6895. </dd>
  6896. </div>
  6897. <div id="or,uint64,uint64">
  6898. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitorI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6899. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6900. <dd>
  6901. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L253" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6902. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L253" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6903. </dd>
  6904. </div>
  6905. </div>
  6906. <div id="ord-procs-all">
  6907. <div id="ord,T">
  6908. <dt><pre><span class="Keyword">func</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Ord&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  6909. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6910. <dd>
  6911. Returns the internal <tt class="docutils literal"><span class="pre"><span class="Identifier">int</span></span></tt> value of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>, including for enum with holes and distinct ordinal types.
  6912. <p><strong class="examples_text">Example:</strong></p>
  6913. <pre class="listing"><span class="Identifier">assert</span> <span class="Identifier">ord</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">A</span><span class="CharLit">') == 65</span>
  6914. <span class="Keyword">type</span> <span class="Identifier">Foo</span> <span class="Operator">=</span> <span class="Keyword">enum</span>
  6915. <span class="Identifier">f0</span> <span class="Operator">=</span> <span class="DecNumber">0</span><span class="Punctuation">,</span> <span class="Identifier">f1</span> <span class="Operator">=</span> <span class="DecNumber">3</span>
  6916. <span class="Identifier">assert</span> <span class="Identifier">f1</span><span class="Operator">.</span><span class="Identifier">ord</span> <span class="Operator">==</span> <span class="DecNumber">3</span>
  6917. <span class="Keyword">type</span> <span class="Identifier">Bar</span> <span class="Operator">=</span> <span class="Keyword">distinct</span> <span class="Identifier">int</span>
  6918. <span class="Identifier">assert</span> <span class="FloatNumber">3.</span><span class="Identifier">Bar</span><span class="Operator">.</span><span class="Identifier">ord</span> <span class="Operator">==</span> <span class="DecNumber">3</span></pre>
  6919. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L719" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6920. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L719" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6921. </dd>
  6922. </div>
  6923. </div>
  6924. <div id="pop-procs-all">
  6925. <div id="pop,seq[T]">
  6926. <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 class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span>.}</pre></dt>
  6927. <dd>
  6928. <p>Returns the last item of <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> and decreases <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">len</span></span></tt> by one. This treats <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> as a stack and implements the common <em>pop</em> operation.</p>
  6929. <p>Raises <tt class="docutils literal"><span class="pre"><span class="Identifier">IndexDefect</span></span></tt> if <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is empty.</p>
  6930. <p><strong class="examples_text">Example:</strong></p>
  6931. <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="DecNumber">7</span><span class="Punctuation">]</span>
  6932. <span class="Keyword">let</span> <span class="Identifier">b</span> <span class="Operator">=</span> <span class="Identifier">pop</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span>
  6933. <span class="Identifier">assert</span> <span class="Identifier">b</span> <span class="Operator">==</span> <span class="DecNumber">7</span>
  6934. <span class="Identifier">assert</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></pre>
  6935. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1780" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6936. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1780" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6937. </dd>
  6938. </div>
  6939. </div>
  6940. <div id="pred-procs-all">
  6941. <div id="pred,T,V">
  6942. <dt><pre><span class="Keyword">proc</span> <a href="#pred%2CT%2CV"><span class="Identifier">pred</span></a><span class="Other">[</span><span class="Identifier">T</span><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> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">V</span> <span class="Other">=</span> <span class="DecNumber">1</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Pred&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  6943. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6944. <dd>
  6945. <p>Returns the <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>-th predecessor (default: 1) of the value <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
  6946. <p>If such a value does not exist, <tt class="docutils literal"><span class="pre"><span class="Identifier">OverflowDefect</span></span></tt> is raised or a compile time error occurs.</p>
  6947. <p><strong class="examples_text">Example:</strong></p>
  6948. <pre class="listing"><span class="Identifier">assert</span> <span class="Identifier">pred</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">4</span>
  6949. <span class="Identifier">assert</span> <span class="Identifier">pred</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">2</span></pre>
  6950. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L10" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6951. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L10" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6952. </dd>
  6953. </div>
  6954. </div>
  6955. <div id="prepareMutation-procs-all">
  6956. <div id="prepareMutation,string">
  6957. <dt><pre><span class="Keyword">proc</span> <a href="#prepareMutation%2Cstring"><span class="Identifier">prepareMutation</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">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6958. <dd>
  6959. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/strs_v2.nim#L198" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6960. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/strs_v2.nim#L198" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6961. </dd>
  6962. </div>
  6963. </div>
  6964. <div id="procCall-procs-all">
  6965. <div id="procCall,untyped">
  6966. <dt><pre><span class="Keyword">proc</span> <a href="#procCall%2Cuntyped"><span class="Identifier">procCall</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">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ProcCall&quot;</span><span class="Other">,</span> <span class="Identifier">compileTime</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6967. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6968. <dd>
  6969. <p>Special magic to prohibit dynamic binding for <span id="method_1">method</span> calls. This is similar to <span id="super_1">super</span> in ordinary OO languages.</p>
  6970. <p><pre class="listing"><span class="Comment"># 'someMethod' will be resolved fully statically:</span>
  6971. <span class="Identifier">procCall</span> <span class="Identifier">someMethod</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">,</span> <span class="Identifier">b</span><span class="Punctuation">)</span></pre></p>
  6972. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2709" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6973. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2709" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6974. </dd>
  6975. </div>
  6976. </div>
  6977. <div id="protect-procs-all">
  6978. <div id="protect,pointer">
  6979. <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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6980. <dd>
  6981. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/mmdisp.nim#L118" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  6982. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/mmdisp.nim#L118" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  6983. </dd>
  6984. </div>
  6985. </div>
  6986. <div id="quit-procs-all">
  6987. <div id="quit,int">
  6988. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Exit&quot;</span><span class="Other">,</span> <span class="Identifier">noreturn</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  6989. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  6990. <dd>
  6991. <p>Stops the program immediately with an exit code.</p>
  6992. <p>Before stopping the program the &quot;exit procedures&quot; are called in the opposite order they were added with <a class="reference external" href="exitprocs.html#addExitProc,proc)">addExitProc</a>.</p>
  6993. <p>The proc <tt class="docutils literal"><span class="pre"><span class="Identifier">quit</span><span class="Punctuation">(</span><span class="Identifier">QuitSuccess</span><span class="Punctuation">)</span></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"><span class="Identifier">quit</span><span class="Punctuation">(</span><span class="Identifier">QuitFailure</span><span class="Punctuation">)</span></span></tt>.</p>
  6994. <p>Note that this is a <em>runtime</em> call and using <tt class="docutils literal"><span class="pre"><span class="Identifier">quit</span></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>
  6995. <div class="admonition admonition-warning"><span class="admonition-warning-text"><b>Warning:</b></span>
  6996. <tt class="docutils literal"><span class="pre"><span class="Identifier">errorcode</span></span></tt> gets saturated when it exceeds the valid range on the specific platform. On Posix, the valid range is <tt class="docutils literal"><span class="pre"><span class="Identifier">low</span><span class="Punctuation">(</span><span class="Identifier">int8</span><span class="Punctuation">)</span><span class="Operator">..</span><span class="Identifier">high</span><span class="Punctuation">(</span><span class="Identifier">int8</span><span class="Punctuation">)</span></span></tt>. On Windows, the valid range is <tt class="docutils literal"><span class="pre"><span class="Identifier">low</span><span class="Punctuation">(</span><span class="Identifier">int32</span><span class="Punctuation">)</span><span class="Operator">..</span><span class="Identifier">high</span><span class="Punctuation">(</span><span class="Identifier">int32</span><span class="Punctuation">)</span></span></tt>. For instance, <tt class="docutils literal"><span class="pre"><span class="Identifier">quit</span><span class="Punctuation">(</span><span class="Identifier">int</span><span class="Punctuation">(</span><span class="HexNumber">0x100000000</span><span class="Punctuation">)</span><span class="Punctuation">)</span></span></tt> is equal to <tt class="docutils literal"><span class="pre"><span class="Identifier">quit</span><span class="Punctuation">(</span><span class="DecNumber">127</span><span class="Punctuation">)</span></span></tt> on Linux.</div>
  6997. <div class="admonition admonition-error"><span class="admonition-error-text"><b>Danger:</b></span>
  6998. In almost all cases, in particular in library code, prefer alternatives, e.g. <tt class="docutils literal"><span class="pre"><span class="Identifier">raiseAssert</span></span></tt> or raise a <tt class="docutils literal"><span class="pre"><span class="Identifier">Defect</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">quit</span></span></tt> bypasses regular control flow in particular <tt class="docutils literal"><span class="pre"><span class="Keyword">defer</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Keyword">try</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">catch</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Keyword">finally</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">destructors</span></span></tt>, and exceptions that may have been raised by an <tt class="docutils literal"><span class="pre"><span class="Identifier">addExitProc</span></span></tt> proc, as well as cleanup code in other threads. It does <em>not</em> call the garbage collector to free all the memory, unless an <tt class="docutils literal"><span class="pre"><span class="Identifier">addExitProc</span></span></tt> proc calls <a class="reference external" href="#GC_fullCollect">GC_fullCollect</a>.</div>
  6999. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2399" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7000. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2399" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7001. </dd>
  7002. </div>
  7003. <div id="quit,string">
  7004. <dt><pre><span class="Keyword">proc</span> <a href="#quit%2Cstring"><span class="Identifier">quit</span></a><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 class="Identifier">errorcode</span> <span class="Other">=</span> <span class="Identifier">QuitFailure</span><span class="Other">)</span> {.<span class="Identifier">noreturn</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  7005. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7006. <dd>
  7007. A shorthand for <tt class="docutils literal"><span class="pre"><span class="Identifier">echo</span><span class="Punctuation">(</span><span class="Identifier">errormsg</span><span class="Punctuation">)</span><span class="Punctuation">;</span> <span class="Identifier">quit</span><span class="Punctuation">(</span><span class="Identifier">errorcode</span><span class="Punctuation">)</span></span></tt>.
  7008. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2452" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7009. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2452" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7010. </dd>
  7011. </div>
  7012. </div>
  7013. <div id="rawEnv-procs-all">
  7014. <div id="rawEnv,T">
  7015. <dt><pre><span class="Keyword">proc</span> <a href="#rawEnv%2CT"><span class="Identifier">rawEnv</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <span class="Keyword">proc</span> {.<span class="Identifier">closure</span>.} <span class="Operator">|</span> <span class="Keyword">iterator</span> {.<span class="Identifier">closure</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> {.
  7016. <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span>.}</pre></dt>
  7017. <dd>
  7018. Retrieves the raw environment pointer of the closure <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. See also <tt class="docutils literal"><span class="pre"><span class="Identifier">rawProc</span></span></tt>. This is not available for the JS target.
  7019. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2365" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7020. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2365" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7021. </dd>
  7022. </div>
  7023. </div>
  7024. <div id="rawProc-procs-all">
  7025. <div id="rawProc,T">
  7026. <dt><pre><span class="Keyword">proc</span> <a href="#rawProc%2CT"><span class="Identifier">rawProc</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <span class="Keyword">proc</span> {.<span class="Identifier">closure</span>.} <span class="Operator">|</span> <span class="Keyword">iterator</span> {.<span class="Identifier">closure</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> {.
  7027. <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span>.}</pre></dt>
  7028. <dd>
  7029. Retrieves the raw proc pointer of the closure <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. This is useful for interfacing closures with C/C++, hash computations, etc. If <tt class="docutils literal"><span class="pre"><span class="Identifier">rawEnv</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span></span></tt> returns <tt class="docutils literal"><span class="pre"><span class="Keyword">nil</span></span></tt>, the proc which the result points to takes as many parameters as <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>, but with <tt class="docutils literal"><span class="pre"><span class="Punctuation">{</span><span class="Operator">.</span><span class="Identifier">nimcall</span><span class="Operator">.</span><span class="Punctuation">}</span></span></tt> as its calling convention instead of <tt class="docutils literal"><span class="pre"><span class="Punctuation">{</span><span class="Operator">.</span><span class="Identifier">closure</span><span class="Operator">.</span><span class="Punctuation">}</span></span></tt>, otherwise it takes one more parameter which is a <tt class="docutils literal"><span class="pre"><span class="Identifier">pointer</span></span></tt>, and it still has <tt class="docutils literal"><span class="pre"><span class="Punctuation">{</span><span class="Operator">.</span><span class="Identifier">nimcall</span><span class="Operator">.</span><span class="Punctuation">}</span></span></tt> as its calling convention. To invoke the resulted proc, what this returns has to be casted into a <tt class="docutils literal"><span class="pre"><span class="Keyword">proc</span></span></tt>, not a <tt class="docutils literal"><span class="pre"><span class="Keyword">ptr</span> <span class="Keyword">proc</span></span></tt>, and, in a case where <tt class="docutils literal"><span class="pre"><span class="Identifier">rawEnv</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span></span></tt> returns non-<tt class="docutils literal"><span class="pre"><span class="Keyword">nil</span></span></tt>, the last and additional argument has to be the result of <tt class="docutils literal"><span class="pre"><span class="Identifier">rawEnv</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span></span></tt>. This is not available for the JS target.
  7030. <p><strong class="examples_text">Example:</strong></p>
  7031. <pre class="listing"><span class="Keyword">proc</span> <span class="Identifier">makeClosure</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="Punctuation">(</span><span class="Keyword">proc</span><span class="Punctuation">(</span><span class="Identifier">y</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="Punctuation">)</span> <span class="Operator">=</span>
  7032. <span class="Keyword">var</span> <span class="Identifier">n</span> <span class="Operator">=</span> <span class="Identifier">x</span>
  7033. <span class="Identifier">result</span> <span class="Operator">=</span> <span class="Punctuation">(</span>
  7034. <span class="Keyword">proc</span><span class="Punctuation">(</span><span class="Identifier">y</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>
  7035. <span class="Identifier">n</span> <span class="Operator">+=</span> <span class="Identifier">y</span>
  7036. <span class="Keyword">return</span> <span class="Identifier">n</span>
  7037. <span class="Punctuation">)</span>
  7038. <span class="Keyword">var</span>
  7039. <span class="Identifier">c1</span> <span class="Operator">=</span> <span class="Identifier">makeClosure</span><span class="Punctuation">(</span><span class="DecNumber">10</span><span class="Punctuation">)</span>
  7040. <span class="Identifier">e</span> <span class="Operator">=</span> <span class="Identifier">c1</span><span class="Operator">.</span><span class="Identifier">rawEnv</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
  7041. <span class="Identifier">p</span> <span class="Operator">=</span> <span class="Identifier">c1</span><span class="Operator">.</span><span class="Identifier">rawProc</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
  7042. <span class="Keyword">if</span> <span class="Identifier">e</span><span class="Operator">.</span><span class="Identifier">isNil</span><span class="Punctuation">(</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
  7043. <span class="Keyword">let</span> <span class="Identifier">c2</span> <span class="Operator">=</span> <span class="Keyword">cast</span><span class="Punctuation">[</span><span class="Keyword">proc</span><span class="Punctuation">(</span><span class="Identifier">y</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="Punctuation">{</span><span class="Operator">.</span><span class="Identifier">nimcall</span><span class="Operator">.</span><span class="Punctuation">}</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Identifier">p</span><span class="Punctuation">)</span>
  7044. <span class="Identifier">echo</span> <span class="Identifier">c2</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">)</span>
  7045. <span class="Keyword">else</span><span class="Punctuation">:</span>
  7046. <span class="Keyword">let</span> <span class="Identifier">c3</span> <span class="Operator">=</span> <span class="Keyword">cast</span><span class="Punctuation">[</span><span class="Keyword">proc</span><span class="Punctuation">(</span><span class="Identifier">y</span><span class="Punctuation">:</span> <span class="Identifier">int</span><span class="Punctuation">;</span> <span class="Identifier">env</span><span class="Punctuation">:</span> <span class="Identifier">pointer</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Identifier">int</span> <span class="Punctuation">{</span><span class="Operator">.</span><span class="Identifier">nimcall</span><span class="Operator">.</span><span class="Punctuation">}</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Identifier">p</span><span class="Punctuation">)</span>
  7047. <span class="Identifier">echo</span> <span class="Identifier">c3</span><span class="Punctuation">(</span><span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="Identifier">e</span><span class="Punctuation">)</span></pre>
  7048. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2323" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7049. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2323" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7050. </dd>
  7051. </div>
  7052. </div>
  7053. <div id="realloc0Impl-procs-all">
  7054. <div id="realloc0Impl,pointer,Natural,Natural">
  7055. <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 class="Identifier">noconv</span><span class="Other">,</span>
  7056. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7057. <dd>
  7058. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L55" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7059. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L55" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7060. </dd>
  7061. </div>
  7062. </div>
  7063. <div id="reallocImpl-procs-all">
  7064. <div id="reallocImpl,pointer,Natural">
  7065. <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 class="Identifier">noconv</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span>
  7066. <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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7067. <dd>
  7068. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L54" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7069. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L54" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7070. </dd>
  7071. </div>
  7072. </div>
  7073. <div id="reallocShared0Impl-procs-all">
  7074. <div id="reallocShared0Impl,pointer,Natural,Natural">
  7075. <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> {.
  7076. <span class="Identifier">noconv</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7077. <dd>
  7078. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L61" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7079. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L61" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7080. </dd>
  7081. </div>
  7082. </div>
  7083. <div id="reallocSharedImpl-procs-all">
  7084. <div id="reallocSharedImpl,pointer,Natural">
  7085. <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 class="Identifier">noconv</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span>
  7086. <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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7087. <dd>
  7088. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L60" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7089. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L60" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7090. </dd>
  7091. </div>
  7092. </div>
  7093. <div id="repr-procs-all">
  7094. <div id="repr,HSlice[T,U]">
  7095. <dt><pre><span class="Keyword">proc</span> <a href="#repr%2CHSlice%5BT%2CU%5D"><span class="Identifier">repr</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">x</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 class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a></pre></dt>
  7096. <dd>
  7097. <p>Generic <tt class="docutils literal"><span class="pre"><span class="Identifier">repr</span></span></tt> operator for slices that is lifted from the components of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. Example:</p>
  7098. <p><pre class="listing"><span class="Operator">$</span><span class="Punctuation">(</span><span class="DecNumber">1</span> <span class="Operator">..</span> <span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;1 .. 5&quot;</span></pre></p>
  7099. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2537" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7100. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2537" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7101. </dd>
  7102. </div>
  7103. </div>
  7104. <div id="reset-procs-all">
  7105. <div id="reset,T">
  7106. <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 class="Identifier">noSideEffect</span>.}</pre></dt>
  7107. <dd>
  7108. Resets an object <tt class="docutils literal"><span class="pre"><span class="Identifier">obj</span></span></tt> to its default value.
  7109. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L933" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7110. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L933" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7111. </dd>
  7112. </div>
  7113. </div>
  7114. <div id="resize-procs-all">
  7115. <div id="resize,ptr.T,Natural">
  7116. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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>.}</pre></dt>
  7117. <dd>
  7118. <p>Grows or shrinks a given memory block.</p>
  7119. <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">p</span></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"><span class="Identifier">T</span><span class="Operator">.</span><span class="Identifier">sizeof</span> <span class="Operator">*</span> <span class="Identifier">newSize</span></span></tt> bytes. If <tt class="docutils literal"><span class="pre"><span class="Identifier">newSize</span> <span class="Operator">==</span> <span class="DecNumber">0</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">p</span></span></tt> is not <strong>nil</strong> <tt class="docutils literal"><span class="pre"><span class="Identifier">resize</span></span></tt> calls <tt class="docutils literal"><span class="pre"><span class="Identifier">dealloc</span><span class="Punctuation">(</span><span class="Identifier">p</span><span class="Punctuation">)</span></span></tt>. In other cases the block has to be freed with <tt class="docutils literal"><span class="pre"><span class="Identifier">free</span></span></tt>.</p>
  7120. <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>
  7121. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L177" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7122. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L177" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7123. </dd>
  7124. </div>
  7125. </div>
  7126. <div id="resizeShared-procs-all">
  7127. <div id="resizeShared,ptr.T,Natural">
  7128. <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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7129. <dd>
  7130. <p>Grows or shrinks a given memory block on the heap.</p>
  7131. <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">p</span></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"><span class="Identifier">T</span><span class="Operator">.</span><span class="Identifier">sizeof</span> <span class="Operator">*</span> <span class="Identifier">newSize</span></span></tt> bytes. If <tt class="docutils literal"><span class="pre"><span class="Identifier">newSize</span> <span class="Operator">==</span> <span class="DecNumber">0</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">p</span></span></tt> is not <strong>nil</strong> <tt class="docutils literal"><span class="pre"><span class="Identifier">resizeShared</span></span></tt> calls <tt class="docutils literal"><span class="pre"><span class="Identifier">freeShared</span><span class="Punctuation">(</span><span class="Identifier">p</span><span class="Punctuation">)</span></span></tt>. In other cases the block has to be freed with <a class="reference external" href="#freeShared,ptr.T">freeShared</a>.</p>
  7132. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L288" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7133. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L288" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7134. </dd>
  7135. </div>
  7136. </div>
  7137. <div id="runnableExamples-procs-all">
  7138. <div id="runnableExamples,string,untyped">
  7139. <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">&quot;&quot;</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;RunnableExamples&quot;</span><span class="Other">,</span>
  7140. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7141. <dd>
  7142. 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"><span class="Identifier">runnableExamples</span></span></tt> section is ignored.</li>
  7143. <li>The documentation generator is aware of these examples and considers them part of the <tt class="docutils literal"><span class="pre"><span class="Comment">##</span></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"><span class="Operator">$</span><span class="Identifier">file_examples</span><span class="Operator">$</span><span class="Identifier">i</span><span class="Operator">.</span><span class="Identifier">nim</span></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>
  7144. </ul>
  7145. <p><strong class="examples_text">Example:</strong></p>
  7146. <pre class="listing"><span class="Keyword">proc</span> <span class="Identifier">timesTwo</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>
  7147. <span class="Comment">## This proc doubles a number.</span>
  7148. <span class="Identifier">runnableExamples</span><span class="Punctuation">:</span>
  7149. <span class="Comment"># at module scope</span>
  7150. <span class="Keyword">const</span> <span class="Identifier">exported</span><span class="Operator">*</span> <span class="Operator">=</span> <span class="DecNumber">123</span>
  7151. <span class="Identifier">assert</span> <span class="Identifier">timesTwo</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">10</span>
  7152. <span class="Keyword">block</span><span class="Punctuation">:</span> <span class="Comment"># at block scope</span>
  7153. <span class="Keyword">defer</span><span class="Punctuation">:</span> <span class="Identifier">echo</span> <span class="StringLit">&quot;done&quot;</span>
  7154. <span class="Identifier">runnableExamples</span> <span class="StringLit">&quot;-d:foo -b:cpp&quot;</span><span class="Punctuation">:</span>
  7155. <span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">compilesettings</span>
  7156. <span class="Identifier">assert</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">&quot;cpp&quot;</span>
  7157. <span class="Identifier">assert</span> <span class="Identifier">defined</span><span class="Punctuation">(</span><span class="Identifier">foo</span><span class="Punctuation">)</span>
  7158. <span class="Identifier">runnableExamples</span> <span class="StringLit">&quot;-r:off&quot;</span><span class="Punctuation">:</span> <span class="Comment">## this one is only compiled</span>
  7159. <span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">browsers</span>
  7160. <span class="Identifier">openDefaultBrowser</span> <span class="StringLit">&quot;https://forum.nim-lang.org/&quot;</span>
  7161. <span class="DecNumber">2</span> <span class="Operator">*</span> <span class="Identifier">x</span></pre>
  7162. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/compilation.nim#L87" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7163. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/compilation.nim#L87" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7164. </dd>
  7165. </div>
  7166. </div>
  7167. <div id="setControlCHook-procs-all">
  7168. <div id="setControlCHook,proc)">
  7169. <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 class="Identifier">noconv</span>.}<span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  7170. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7171. <dd>
  7172. <p>Allows you to override the behaviour of your application when CTRL+C is pressed. Only one such hook is supported. Example:</p>
  7173. <p><pre class="listing"><span class="Keyword">proc</span> <span class="Identifier">ctrlc</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Punctuation">{</span><span class="Operator">.</span><span class="Identifier">noconv</span><span class="Operator">.</span><span class="Punctuation">}</span> <span class="Operator">=</span>
  7174. <span class="Identifier">echo</span> <span class="StringLit">&quot;Ctrl+C fired!&quot;</span>
  7175. <span class="Comment"># do clean up stuff</span>
  7176. <span class="Identifier">quit</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
  7177. <span class="Identifier">setControlCHook</span><span class="Punctuation">(</span><span class="Identifier">ctrlc</span><span class="Punctuation">)</span></pre></p>
  7178. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2180" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7179. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2180" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7180. </dd>
  7181. </div>
  7182. </div>
  7183. <div id="setCurrentException-procs-all">
  7184. <div id="setCurrentException,ref.Exception">
  7185. <dt><pre><span class="Keyword">proc</span> <a href="#setCurrentException%2Cref.Exception"><span class="Identifier">setCurrentException</span></a><span class="Other">(</span><span class="Identifier">exc</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="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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>
  7186. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7187. <dd>
  7188. Sets the current exception.<div class="admonition admonition-warning"><span class="admonition-warning-text"><b>Warning:</b></span>
  7189. Only use this if you know what you are doing.</div>
  7190. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2309" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7191. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2309" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7192. </dd>
  7193. </div>
  7194. </div>
  7195. <div id="setFrame-procs-all">
  7196. <div id="setFrame,PFrame">
  7197. <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 class="Identifier">compilerproc</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  7198. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7199. <dd>
  7200. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/excpt.nim#L133" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7201. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/excpt.nim#L133" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7202. </dd>
  7203. </div>
  7204. </div>
  7205. <div id="setFrameState-procs-all">
  7206. <div id="setFrameState,FrameState">
  7207. <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 class="Identifier">compilerproc</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  7208. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7209. <dd>
  7210. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/excpt.nim#L106" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7211. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/excpt.nim#L106" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7212. </dd>
  7213. </div>
  7214. </div>
  7215. <div id="setLen-procs-all">
  7216. <div id="setLen,string,Natural">
  7217. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;SetLengthStr&quot;</span><span class="Other">,</span>
  7218. <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7219. <dd>
  7220. <p>Sets the length of string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> to <tt class="docutils literal"><span class="pre"><span class="Identifier">newlen</span></span></tt>.</p>
  7221. <p>If the current length is greater than the new length, <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> will be truncated.</p>
  7222. <p><pre class="listing"><span class="Keyword">var</span> <span class="Identifier">myS</span> <span class="Operator">=</span> <span class="StringLit">&quot;Nim is great!!&quot;</span>
  7223. <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 &lt;- &quot;Nim&quot;</span>
  7224. <span class="Identifier">echo</span> <span class="Identifier">myS</span><span class="Punctuation">,</span> <span class="StringLit">&quot; is fantastic!!&quot;</span></pre></p>
  7225. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L960" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7226. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L960" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7227. </dd>
  7228. </div>
  7229. <div id="setLen,seq[T],Natural">
  7230. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;SetLengthSeq&quot;</span><span class="Other">,</span>
  7231. <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">nodestroy</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7232. <dd>
  7233. <p>Sets the length of seq <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> to <tt class="docutils literal"><span class="pre"><span class="Identifier">newlen</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt> may be any sequence type.</p>
  7234. <p>If the current length is greater than the new length, <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> will be truncated.</p>
  7235. <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>
  7236. <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>
  7237. <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>
  7238. <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>
  7239. <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>
  7240. <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></p>
  7241. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L945" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7242. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L945" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7243. </dd>
  7244. </div>
  7245. </div>
  7246. <div id="setLenUninit-procs-all">
  7247. <div id="setLenUninit,seq[T],Natural">
  7248. <dt><pre><span class="Keyword">func</span> <a href="#setLenUninit%2Cseq%5BT%5D%2CNatural"><span class="Identifier">setLenUninit</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 class="Identifier">nodestroy</span>.}</pre></dt>
  7249. <dd>
  7250. <p>Sets the length of seq <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> to <tt class="docutils literal"><span class="pre"><span class="Identifier">newlen</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt> may be any sequence type. New slots will not be initialized.</p>
  7251. <p>If the current length is greater than the new length, <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> will be truncated.</p>
  7252. <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>
  7253. <span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">setLenUninit</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">)</span>
  7254. <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>
  7255. <span class="Identifier">assert</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>
  7256. <span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">setLenUninit</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">)</span>
  7257. <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></p>
  7258. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/seqs_v2.nim#L205" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7259. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/seqs_v2.nim#L205" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7260. </dd>
  7261. </div>
  7262. </div>
  7263. <div id="shl-procs-all">
  7264. <div id="shl,int8,SomeInteger">
  7265. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ShlI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  7266. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7267. <dd>
  7268. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L166" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7269. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L166" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7270. </dd>
  7271. </div>
  7272. <div id="shl,int16,SomeInteger">
  7273. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ShlI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  7274. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7275. <dd>
  7276. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L167" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7277. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L167" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7278. </dd>
  7279. </div>
  7280. <div id="shl,int32,SomeInteger">
  7281. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ShlI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  7282. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7283. <dd>
  7284. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L168" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7285. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L168" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7286. </dd>
  7287. </div>
  7288. <div id="shl,int64,SomeInteger">
  7289. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ShlI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  7290. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7291. <dd>
  7292. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L169" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7293. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L169" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7294. </dd>
  7295. </div>
  7296. <div id="shl,int,SomeInteger">
  7297. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ShlI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  7298. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7299. <dd>
  7300. <p>Computes the <tt class="docutils literal"><span class="pre"><span class="Identifier">shift</span> <span class="Identifier">left</span></span></tt> operation of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.</p>
  7301. <p><strong>Note</strong>: <a class="reference external" href="manual.html#syntax-precedence">Operator precedence</a> is different than in <em>C</em>.</p>
  7302. <p><strong class="examples_text">Example:</strong></p>
  7303. <pre class="listing"><span class="Identifier">assert</span> <span class="DecNumber">1'i32</span> <span class="Keyword">shl</span> <span class="DecNumber">4</span> <span class="Operator">==</span> <span class="HexNumber">0x0000_0010</span>
  7304. <span class="Identifier">assert</span> <span class="DecNumber">1'i64</span> <span class="Keyword">shl</span> <span class="DecNumber">4</span> <span class="Operator">==</span> <span class="HexNumber">0x0000_0000_0000_0010</span></pre>
  7305. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L158" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7306. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L158" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7307. </dd>
  7308. </div>
  7309. <div id="shl,uint8,SomeInteger">
  7310. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ShlI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  7311. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7312. <dd>
  7313. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L236" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7314. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L236" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7315. </dd>
  7316. </div>
  7317. <div id="shl,uint16,SomeInteger">
  7318. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ShlI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  7319. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7320. <dd>
  7321. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L237" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7322. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L237" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7323. </dd>
  7324. </div>
  7325. <div id="shl,uint32,SomeInteger">
  7326. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ShlI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  7327. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7328. <dd>
  7329. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L238" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7330. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L238" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7331. </dd>
  7332. </div>
  7333. <div id="shl,uint64,SomeInteger">
  7334. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ShlI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  7335. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7336. <dd>
  7337. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L239" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7338. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L239" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7339. </dd>
  7340. </div>
  7341. <div id="shl,uint,SomeInteger">
  7342. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ShlI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  7343. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7344. <dd>
  7345. Computes the <tt class="docutils literal"><span class="pre"><span class="Identifier">shift</span> <span class="Identifier">left</span></span></tt> operation of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.
  7346. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L234" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7347. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L234" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7348. </dd>
  7349. </div>
  7350. </div>
  7351. <div id="shr-procs-all">
  7352. <div id="shr,int8,SomeInteger">
  7353. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AshrI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  7354. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7355. <dd>
  7356. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L152" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7357. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L152" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7358. </dd>
  7359. </div>
  7360. <div id="shr,int16,SomeInteger">
  7361. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AshrI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  7362. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7363. <dd>
  7364. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L153" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7365. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L153" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7366. </dd>
  7367. </div>
  7368. <div id="shr,int32,SomeInteger">
  7369. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AshrI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  7370. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7371. <dd>
  7372. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L154" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7373. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L154" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7374. </dd>
  7375. </div>
  7376. <div id="shr,int64,SomeInteger">
  7377. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AshrI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  7378. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7379. <dd>
  7380. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L155" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7381. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L155" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7382. </dd>
  7383. </div>
  7384. <div id="shr,int,SomeInteger">
  7385. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;AshrI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  7386. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7387. <dd>
  7388. <p>Computes the <tt class="docutils literal"><span class="pre"><span class="Identifier">shift</span> <span class="Identifier">right</span></span></tt> operation of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>, filling vacant bit positions with the sign bit.</p>
  7389. <p><strong>Note</strong>: <a class="reference external" href="manual.html#syntax-precedence">Operator precedence</a> is different than in <em>C</em>.</p>
  7390. <p>See also:</p>
  7391. <ul class="simple"><li><a class="reference external" href="#ashr,int,SomeInteger">ashr func</a> for arithmetic shift right</li>
  7392. </ul>
  7393. <p><strong class="examples_text">Example:</strong></p>
  7394. <pre class="listing"><span class="Identifier">assert</span> <span class="BinNumber">0b0001_0000'i8</span> <span class="Keyword">shr</span> <span class="DecNumber">2</span> <span class="Operator">==</span> <span class="BinNumber">0b0000_0100'i8</span>
  7395. <span class="Identifier">assert</span> <span class="BinNumber">0b0000_0001'i8</span> <span class="Keyword">shr</span> <span class="DecNumber">1</span> <span class="Operator">==</span> <span class="BinNumber">0b0000_0000'i8</span>
  7396. <span class="Identifier">assert</span> <span class="BinNumber">0b1000_0000'i8</span> <span class="Keyword">shr</span> <span class="DecNumber">4</span> <span class="Operator">==</span> <span class="BinNumber">0b1111_1000'i8</span>
  7397. <span class="Identifier">assert</span> <span class="Operator">-</span><span class="DecNumber">1</span> <span class="Keyword">shr</span> <span class="DecNumber">5</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">1</span>
  7398. <span class="Identifier">assert</span> <span class="DecNumber">1</span> <span class="Keyword">shr</span> <span class="DecNumber">5</span> <span class="Operator">==</span> <span class="DecNumber">0</span>
  7399. <span class="Identifier">assert</span> <span class="DecNumber">16</span> <span class="Keyword">shr</span> <span class="DecNumber">2</span> <span class="Operator">==</span> <span class="DecNumber">4</span>
  7400. <span class="Identifier">assert</span> <span class="Operator">-</span><span class="DecNumber">16</span> <span class="Keyword">shr</span> <span class="DecNumber">2</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">4</span></pre>
  7401. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L135" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7402. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L135" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7403. </dd>
  7404. </div>
  7405. <div id="shr,uint8,SomeInteger">
  7406. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ShrI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  7407. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7408. <dd>
  7409. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L229" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7410. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L229" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7411. </dd>
  7412. </div>
  7413. <div id="shr,uint16,SomeInteger">
  7414. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ShrI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  7415. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7416. <dd>
  7417. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L230" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7418. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L230" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7419. </dd>
  7420. </div>
  7421. <div id="shr,uint32,SomeInteger">
  7422. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ShrI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  7423. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7424. <dd>
  7425. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L231" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7426. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L231" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7427. </dd>
  7428. </div>
  7429. <div id="shr,uint64,SomeInteger">
  7430. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ShrI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  7431. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7432. <dd>
  7433. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L232" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7434. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L232" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7435. </dd>
  7436. </div>
  7437. <div id="shr,uint,SomeInteger">
  7438. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ShrI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  7439. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7440. <dd>
  7441. Computes the <tt class="docutils literal"><span class="pre"><span class="Identifier">shift</span> <span class="Identifier">right</span></span></tt> operation of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.
  7442. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L227" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7443. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L227" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7444. </dd>
  7445. </div>
  7446. </div>
  7447. <div id="shrink-procs-all">
  7448. <div id="shrink,seq[T],Natural">
  7449. <dt><pre><span class="Keyword">proc</span> <a href="#shrink%2Cseq%5BT%5D%2CNatural"><span class="Identifier">shrink</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">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 pragmadots">...</span></span><span class="pragmawrap"><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>.}</pre></dt>
  7450. <dd>
  7451. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/seqs_v2.nim#L125" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7452. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/seqs_v2.nim#L125" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7453. </dd>
  7454. </div>
  7455. </div>
  7456. <div id="sizeof-procs-all">
  7457. <div id="sizeof,typedesc">
  7458. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;SizeOf&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  7459. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7460. <dd>
  7461. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L613" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7462. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L613" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7463. </dd>
  7464. </div>
  7465. <div id="sizeof,T">
  7466. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;SizeOf&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  7467. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7468. <dd>
  7469. <p>Returns the size of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> in bytes.</p>
  7470. <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"><span class="Identifier">x</span></span></tt>'s size.</p>
  7471. <p>As a special semantic rule, <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> may also be a type identifier (<tt class="docutils literal"><span class="pre"><span class="Identifier">sizeof</span><span class="Punctuation">(</span><span class="Identifier">int</span><span class="Punctuation">)</span></span></tt> is valid).</p>
  7472. <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"><span class="Identifier">sizeof</span></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>
  7473. <p><pre class="listing"><span class="Identifier">sizeof</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">A</span><span class="CharLit">') # =&gt; 1</span>
  7474. <span class="Identifier">sizeof</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Comment"># =&gt; 8</span></pre></p>
  7475. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L580" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7476. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L580" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7477. </dd>
  7478. </div>
  7479. </div>
  7480. <div id="slurp-procs-all">
  7481. <div id="slurp,string">
  7482. <dt><pre><span class="Keyword">proc</span> <a href="#slurp%2Cstring"><span class="Identifier">slurp</span></a><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="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Slurp&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  7483. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7484. <dd>
  7485. This is an alias for <a class="reference external" href="#staticRead,string">staticRead</a>.
  7486. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/compilation.nim#L159" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7487. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/compilation.nim#L159" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7488. </dd>
  7489. </div>
  7490. </div>
  7491. <div id="stackTraceAvailable-procs-all">
  7492. <div id="stackTraceAvailable">
  7493. <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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7494. <dd>
  7495. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/excpt.nim#L329" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7496. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/excpt.nim#L329" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7497. </dd>
  7498. </div>
  7499. </div>
  7500. <div id="staticExec-procs-all">
  7501. <div id="staticExec,string,string,string">
  7502. <dt><pre><span class="Keyword">proc</span> <a href="#staticExec%2Cstring%2Cstring%2Cstring"><span class="Identifier">staticExec</span></a><span class="Other">(</span><span class="Identifier">command</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">input</span> <span class="Other">=</span> <span class="StringLit">&quot;&quot;</span><span class="Other">;</span> <span class="Identifier">cache</span> <span class="Other">=</span> <span class="StringLit">&quot;&quot;</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.
  7503. <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;StaticExec&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7504. <dd>
  7505. <p>Executes an external process at compile-time and returns its text output (stdout + stderr).</p>
  7506. <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">input</span></span></tt> is not an empty string, it will be passed as a standard input to the executed program.</p>
  7507. <p><pre class="listing"><span class="Keyword">const</span> <span class="Identifier">buildInfo</span> <span class="Operator">=</span> <span class="StringLit">&quot;Revision &quot;</span> <span class="Operator">&amp;</span> <span class="Identifier">staticExec</span><span class="Punctuation">(</span><span class="StringLit">&quot;git rev-parse HEAD&quot;</span><span class="Punctuation">)</span> <span class="Operator">&amp;</span>
  7508. <span class="StringLit">&quot;</span><span class="EscapeSequence">\n</span><span class="StringLit">Compiled on &quot;</span> <span class="Operator">&amp;</span> <span class="Identifier">staticExec</span><span class="Punctuation">(</span><span class="StringLit">&quot;uname -v&quot;</span><span class="Punctuation">)</span></pre></p>
  7509. <p><a class="reference external" href="#gorge,string,string,string">gorge</a> is an alias for <tt class="docutils literal"><span class="pre"><span class="Identifier">staticExec</span></span></tt>.</p>
  7510. <p>Note that you can use this proc inside a pragma like <a class="reference external" href="manual.html#implementation-specific-pragmas-passc-pragma">passc</a> or <a class="reference external" href="manual.html#implementation-specific-pragmas-passl-pragma">passl</a>.</p>
  7511. <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">cache</span></span></tt> is not empty, the results of <tt class="docutils literal"><span class="pre"><span class="Identifier">staticExec</span></span></tt> are cached within the <tt class="docutils literal"><span class="pre"><span class="Identifier">nimcache</span></span></tt> directory. Use <tt class="docutils literal"><span class="pre"><span class="Operator">--</span><span class="Identifier">forceBuild</span></span></tt> to get rid of this caching behaviour then. <tt class="docutils literal"><span class="pre"><span class="Identifier">command</span> <span class="Operator">&amp;</span> <span class="Identifier">input</span> <span class="Operator">&amp;</span> <span class="Identifier">cache</span></span></tt> (the concatenated string) is used to determine whether the entry in the cache is still valid. You can use versioning information for <tt class="docutils literal"><span class="pre"><span class="Identifier">cache</span></span></tt>:</p>
  7512. <p><pre class="listing"><span class="Keyword">const</span> <span class="Identifier">stateMachine</span> <span class="Operator">=</span> <span class="Identifier">staticExec</span><span class="Punctuation">(</span><span class="StringLit">&quot;dfaoptimizer&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;input&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;0.8.0&quot;</span><span class="Punctuation">)</span></pre></p>
  7513. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/compilation.nim#L178" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7514. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/compilation.nim#L178" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7515. </dd>
  7516. </div>
  7517. </div>
  7518. <div id="staticRead-procs-all">
  7519. <div id="staticRead,string">
  7520. <dt><pre><span class="Keyword">proc</span> <a href="#staticRead%2Cstring"><span class="Identifier">staticRead</span></a><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="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Slurp&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  7521. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7522. <dd>
  7523. <p>Compile-time <a class="reference external" href="syncio.html#readFile,string">readFile</a> proc for easy <span id="resource_1">resource</span> embedding:</p>
  7524. <p>The maximum file size limit that <tt class="docutils literal"><span class="pre"><span class="Identifier">staticRead</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">slurp</span></span></tt> can read is near or equal to the <em>free</em> memory of the device you are using to compile.</p>
  7525. <p><pre class="listing"><span class="Keyword">const</span> <span class="Identifier">myResource</span> <span class="Operator">=</span> <span class="RawData">staticRead&quot;mydatafile.bin&quot;</span></pre></p>
  7526. <p><a class="reference external" href="#slurp,string">slurp</a> is an alias for <tt class="docutils literal"><span class="pre"><span class="Identifier">staticRead</span></span></tt>.</p>
  7527. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/compilation.nim#L162" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7528. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/compilation.nim#L162" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7529. </dd>
  7530. </div>
  7531. </div>
  7532. <div id="substr-procs-all">
  7533. <div id="substr,openArray[char]">
  7534. <dt><pre><span class="Keyword">proc</span> <a href="#substr%2CopenArray%5Bchar%5D"><span class="Identifier">substr</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7535. <dd>
  7536. Copies a slice of <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> into a new string and returns this new string.
  7537. <p><strong class="examples_text">Example:</strong></p>
  7538. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;abcdefgh&quot;</span>
  7539. <span class="Identifier">assert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">substr</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;cdef&quot;</span>
  7540. <span class="Identifier">assert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">substr</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;cdefgh&quot;</span>
  7541. <span class="Identifier">assert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">substr</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">99</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;fgh&quot;</span></pre>
  7542. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2772" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7543. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2772" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7544. </dd>
  7545. </div>
  7546. <div id="substr,string,int">
  7547. <dt><pre><span class="Keyword">proc</span> <a href="#substr%2Cstring%2Cint"><span class="Identifier">substr</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">first</span> <span class="Other">=</span> <span class="DecNumber">0</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7548. <dd>
  7549. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2805" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7550. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2805" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7551. </dd>
  7552. </div>
  7553. <div id="substr,string,int,int">
  7554. <dt><pre><span class="Keyword">proc</span> <a href="#substr%2Cstring%2Cint%2Cint"><span class="Identifier">substr</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">first</span><span class="Other">,</span> <span class="Identifier">last</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#string"><span class="Identifier">string</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  7555. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7556. <dd>
  7557. <p>Copies a slice of <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> into a new string and returns this new string.</p>
  7558. <p>The bounds <tt class="docutils literal"><span class="pre"><span class="Identifier">first</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">last</span></span></tt> denote the indices of the first and last characters that shall be copied. If <tt class="docutils literal"><span class="pre"><span class="Identifier">last</span></span></tt> is omitted, it is treated as <tt class="docutils literal"><span class="pre"><span class="Identifier">high</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span></span></tt>. If <tt class="docutils literal"><span class="pre"><span class="Identifier">last</span> <span class="Operator">&gt;=</span> <span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">len</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">len</span></span></tt> is used instead: This means <tt class="docutils literal"><span class="pre"><span class="Identifier">substr</span></span></tt> can also be used to <span id="cut_1">cut</span> or <span id="limit_1">limit</span> a string's length.</p>
  7559. <p><strong class="examples_text">Example:</strong></p>
  7560. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;abcdefgh&quot;</span>
  7561. <span class="Identifier">assert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">substr</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;cdef&quot;</span>
  7562. <span class="Identifier">assert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">substr</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;cdefgh&quot;</span>
  7563. <span class="Identifier">assert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">substr</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">99</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;fgh&quot;</span></pre>
  7564. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2784" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7565. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2784" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7566. </dd>
  7567. </div>
  7568. </div>
  7569. <div id="succ-procs-all">
  7570. <div id="succ,T,V">
  7571. <dt><pre><span class="Keyword">proc</span> <a href="#succ%2CT%2CV"><span class="Identifier">succ</span></a><span class="Other">[</span><span class="Identifier">T</span><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> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">V</span> <span class="Other">=</span> <span class="DecNumber">1</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Succ&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  7572. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7573. <dd>
  7574. <p>Returns the <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>-th successor (default: 1) of the value <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
  7575. <p>If such a value does not exist, <tt class="docutils literal"><span class="pre"><span class="Identifier">OverflowDefect</span></span></tt> is raised or a compile time error occurs.</p>
  7576. <p><strong class="examples_text">Example:</strong></p>
  7577. <pre class="listing"><span class="Identifier">assert</span> <span class="Identifier">succ</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">6</span>
  7578. <span class="Identifier">assert</span> <span class="Identifier">succ</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">8</span></pre>
  7579. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7580. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7581. </dd>
  7582. </div>
  7583. </div>
  7584. <div id="swap-procs-all">
  7585. <div id="swap,T,T">
  7586. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Swap&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  7587. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7588. <dd>
  7589. <p>Swaps the values <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">b</span></span></tt>.</p>
  7590. <p>This is often more efficient than <tt class="docutils literal"><span class="pre"><span class="Identifier">tmp</span> <span class="Operator">=</span> <span class="Identifier">a</span><span class="Punctuation">;</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">b</span><span class="Punctuation">;</span> <span class="Identifier">b</span> <span class="Operator">=</span> <span class="Identifier">tmp</span></span></tt>. Particularly useful for sorting algorithms.</p>
  7591. <p><pre class="listing"><span class="Keyword">var</span>
  7592. <span class="Identifier">a</span> <span class="Operator">=</span> <span class="DecNumber">5</span>
  7593. <span class="Identifier">b</span> <span class="Operator">=</span> <span class="DecNumber">9</span>
  7594. <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>
  7595. <span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="DecNumber">9</span>
  7596. <span class="Identifier">assert</span> <span class="Identifier">b</span> <span class="Operator">==</span> <span class="DecNumber">5</span></pre></p>
  7597. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1394" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7598. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1394" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7599. </dd>
  7600. </div>
  7601. </div>
  7602. <div id="toBiggestFloat-procs-all">
  7603. <div id="toBiggestFloat,BiggestInt">
  7604. <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="ctypes.html#BiggestInt"><span class="Identifier">BiggestInt</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ctypes.html#BiggestFloat"><span class="Identifier">BiggestFloat</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span>
  7605. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7606. <dd>
  7607. Same as <a class="reference external" href="#toFloat,int">toFloat</a> but for <tt class="docutils literal"><span class="pre"><span class="Identifier">BiggestInt</span></span></tt> to <tt class="docutils literal"><span class="pre"><span class="Identifier">BiggestFloat</span></span></tt>.
  7608. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1306" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7609. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1306" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7610. </dd>
  7611. </div>
  7612. </div>
  7613. <div id="toBiggestInt-procs-all">
  7614. <div id="toBiggestInt,BiggestFloat">
  7615. <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="ctypes.html#BiggestFloat"><span class="Identifier">BiggestFloat</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ctypes.html#BiggestInt"><span class="Identifier">BiggestInt</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  7616. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7617. <dd>
  7618. Same as <a class="reference external" href="#toInt,float">toInt</a> but for <tt class="docutils literal"><span class="pre"><span class="Identifier">BiggestFloat</span></span></tt> to <tt class="docutils literal"><span class="pre"><span class="Identifier">BiggestInt</span></span></tt>.
  7619. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1327" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7620. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1327" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7621. </dd>
  7622. </div>
  7623. </div>
  7624. <div id="toFloat-procs-all">
  7625. <div id="toFloat,int">
  7626. <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 class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  7627. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7628. <dd>
  7629. <p>Converts an integer <tt class="docutils literal"><span class="pre"><span class="Identifier">i</span></span></tt> into a <tt class="docutils literal"><span class="pre"><span class="Identifier">float</span></span></tt>. Same as <tt class="docutils literal"><span class="pre"><span class="Identifier">float</span><span class="Punctuation">(</span><span class="Identifier">i</span><span class="Punctuation">)</span></span></tt>.</p>
  7630. <p>If the conversion fails, <tt class="docutils literal"><span class="pre"><span class="Identifier">ValueError</span></span></tt> is raised. However, on most platforms the conversion cannot fail.</p>
  7631. <p><pre class="listing"><span class="Keyword">let</span>
  7632. <span class="Identifier">a</span> <span class="Operator">=</span> <span class="DecNumber">2</span>
  7633. <span class="Identifier">b</span> <span class="Operator">=</span> <span class="FloatNumber">3.7</span>
  7634. <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"># =&gt; 5.7</span></pre></p>
  7635. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1291" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7636. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1291" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7637. </dd>
  7638. </div>
  7639. </div>
  7640. <div id="toInt-procs-all">
  7641. <div id="toInt,float">
  7642. <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 class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7643. <dd>
  7644. <p>Converts a floating point number <tt class="docutils literal"><span class="pre"><span class="Identifier">f</span></span></tt> into an <tt class="docutils literal"><span class="pre"><span class="Identifier">int</span></span></tt>.</p>
  7645. <p>Conversion rounds <tt class="docutils literal"><span class="pre"><span class="Identifier">f</span></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>, as opposed to a type conversion which rounds towards zero.</p>
  7646. <p>Note that some floating point numbers (e.g. infinity or even 1e19) cannot be accurately converted.</p>
  7647. <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>
  7648. <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>
  7649. <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></p>
  7650. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1310" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7651. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1310" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7652. </dd>
  7653. </div>
  7654. </div>
  7655. <div id="toOpenArray-procs-all">
  7656. <div id="toOpenArray,cstring,int,int">
  7657. <dt><pre><span class="Keyword">proc</span> <a href="#toOpenArray%2Ccstring%2Cint%2Cint"><span class="Identifier">toOpenArray</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="Identifier">first</span><span class="Other">,</span> <span class="Identifier">last</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#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span> {.
  7658. <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Slice&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7659. <dd>
  7660. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2814" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7661. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2814" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7662. </dd>
  7663. </div>
  7664. <div id="toOpenArray,string,int,int">
  7665. <dt><pre><span class="Keyword">proc</span> <a href="#toOpenArray%2Cstring%2Cint%2Cint"><span class="Identifier">toOpenArray</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">first</span><span class="Other">,</span> <span class="Identifier">last</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#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Slice&quot;</span><span class="Other">,</span>
  7666. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7667. <dd>
  7668. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2837" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7669. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2837" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7670. </dd>
  7671. </div>
  7672. <div id="toOpenArray,array[I,T],I,I">
  7673. <dt><pre><span class="Keyword">proc</span> <a href="#toOpenArray%2Carray%5BI%2CT%5D%2CI%2CI"><span class="Identifier">toOpenArray</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="Identifier">first</span><span class="Other">,</span> <span class="Identifier">last</span><span class="Other">:</span> <span class="Identifier">I</span><span class="Other">)</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> {.
  7674. <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Slice&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7675. <dd>
  7676. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2835" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7677. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2835" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7678. </dd>
  7679. </div>
  7680. <div id="toOpenArray,openArray[T],int,int">
  7681. <dt><pre><span class="Keyword">proc</span> <a href="#toOpenArray%2CopenArray%5BT%5D%2Cint%2Cint"><span class="Identifier">toOpenArray</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="Identifier">first</span><span class="Other">,</span> <span class="Identifier">last</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#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> {.
  7682. <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Slice&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7683. <dd>
  7684. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2833" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7685. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2833" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7686. </dd>
  7687. </div>
  7688. <div id="toOpenArray,ptr.UncheckedArray[T],int,int">
  7689. <dt><pre><span class="Keyword">proc</span> <a href="#toOpenArray%2Cptr.UncheckedArray%5BT%5D%2Cint%2Cint"><span class="Identifier">toOpenArray</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> <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 class="Other">;</span> <span class="Identifier">first</span><span class="Other">,</span> <span class="Identifier">last</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#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> {.
  7690. <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Slice&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7691. <dd>
  7692. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2812" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7693. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2812" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7694. </dd>
  7695. </div>
  7696. <div id="toOpenArray,seq[T],int,int">
  7697. <dt><pre><span class="Keyword">proc</span> <a href="#toOpenArray%2Cseq%5BT%5D%2Cint%2Cint"><span class="Identifier">toOpenArray</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">first</span><span class="Other">,</span> <span class="Identifier">last</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#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> {.<span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Slice&quot;</span><span class="Other">,</span>
  7698. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7699. <dd>
  7700. <p>Allows passing the slice of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> from the element at <tt class="docutils literal"><span class="pre"><span class="Identifier">first</span></span></tt> to the element at <tt class="docutils literal"><span class="pre"><span class="Identifier">last</span></span></tt> to <tt class="docutils literal"><span class="pre"><span class="Identifier">openArray</span><span class="Punctuation">[</span><span class="Identifier">T</span><span class="Punctuation">]</span></span></tt> parameters without copying it.</p>
  7701. <p>Example:</p>
  7702. <p><pre class="listing"><span class="Keyword">proc</span> <span class="Identifier">test</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">:</span> <span class="Identifier">openArray</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">)</span> <span class="Operator">=</span>
  7703. <span class="Identifier">doAssert</span> <span class="Identifier">x</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>
  7704. <span class="Keyword">let</span> <span class="Identifier">s</span> <span class="Operator">=</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">0</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>
  7705. <span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">toOpenArray</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="Operator">.</span><span class="Identifier">test</span></pre></p>
  7706. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2819" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7707. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2819" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7708. </dd>
  7709. </div>
  7710. </div>
  7711. <div id="toOpenArrayByte-procs-all">
  7712. <div id="toOpenArrayByte,cstring,int,int">
  7713. <dt><pre><span class="Keyword">proc</span> <a href="#toOpenArrayByte%2Ccstring%2Cint%2Cint"><span class="Identifier">toOpenArrayByte</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="Identifier">first</span><span class="Other">,</span> <span class="Identifier">last</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#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#byte"><span class="Identifier">byte</span></a><span class="Other">]</span> {.
  7714. <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Slice&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7715. <dd>
  7716. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2816" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7717. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2816" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7718. </dd>
  7719. </div>
  7720. <div id="toOpenArrayByte,openArray[char],int,int">
  7721. <dt><pre><span class="Keyword">proc</span> <a href="#toOpenArrayByte%2CopenArray%5Bchar%5D%2Cint%2Cint"><span class="Identifier">toOpenArrayByte</span></a><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><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">first</span><span class="Other">,</span> <span class="Identifier">last</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#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#byte"><span class="Identifier">byte</span></a><span class="Other">]</span> {.
  7722. <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Slice&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7723. <dd>
  7724. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2842" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7725. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2842" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7726. </dd>
  7727. </div>
  7728. <div id="toOpenArrayByte,seq[char],int,int">
  7729. <dt><pre><span class="Keyword">proc</span> <a href="#toOpenArrayByte%2Cseq%5Bchar%5D%2Cint%2Cint"><span class="Identifier">toOpenArrayByte</span></a><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><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">first</span><span class="Other">,</span> <span class="Identifier">last</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#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#byte"><span class="Identifier">byte</span></a><span class="Other">]</span> {.
  7730. <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Slice&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7731. <dd>
  7732. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2844" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7733. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2844" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7734. </dd>
  7735. </div>
  7736. <div id="toOpenArrayByte,string,int,int">
  7737. <dt><pre><span class="Keyword">proc</span> <a href="#toOpenArrayByte%2Cstring%2Cint%2Cint"><span class="Identifier">toOpenArrayByte</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">first</span><span class="Other">,</span> <span class="Identifier">last</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#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#byte"><span class="Identifier">byte</span></a><span class="Other">]</span> {.
  7738. <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Slice&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7739. <dd>
  7740. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2840" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7741. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2840" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7742. </dd>
  7743. </div>
  7744. </div>
  7745. <div id="toOpenArrayChar-procs-all">
  7746. <div id="toOpenArrayChar,openArray[byte],int,int">
  7747. <dt><pre><span class="Keyword">proc</span> <a href="#toOpenArrayChar%2CopenArray%5Bbyte%5D%2Cint%2Cint"><span class="Identifier">toOpenArrayChar</span></a><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><a href="system.html#byte"><span class="Identifier">byte</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">first</span><span class="Other">,</span> <span class="Identifier">last</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#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span> {.
  7748. <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Slice&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7749. <dd>
  7750. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2847" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7751. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2847" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7752. </dd>
  7753. </div>
  7754. </div>
  7755. <div id="typeof-procs-all">
  7756. <div id="typeof,untyped">
  7757. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;TypeOf&quot;</span><span class="Other">,</span>
  7758. <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">compileTime</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7759. <dd>
  7760. Builtin <tt class="docutils literal"><span class="pre"><span class="Identifier">typeof</span></span></tt> operation for accessing the type of an expression. Since version 0.20.0.
  7761. <p><strong class="examples_text">Example:</strong></p>
  7762. <pre class="listing"><span class="Keyword">proc</span> <span class="Identifier">myFoo</span><span class="Punctuation">(</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Identifier">float</span> <span class="Operator">=</span> <span class="FloatNumber">0.0</span>
  7763. <span class="Keyword">iterator</span> <span class="Identifier">myFoo</span><span class="Punctuation">(</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Identifier">string</span> <span class="Operator">=</span> <span class="Keyword">yield</span> <span class="StringLit">&quot;abc&quot;</span>
  7764. <span class="Keyword">iterator</span> <span class="Identifier">myFoo2</span><span class="Punctuation">(</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Identifier">string</span> <span class="Operator">=</span> <span class="Keyword">yield</span> <span class="StringLit">&quot;abc&quot;</span>
  7765. <span class="Keyword">iterator</span> <span class="Identifier">myFoo3</span><span class="Punctuation">(</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Identifier">string</span> <span class="Punctuation">{</span><span class="Operator">.</span><span class="Identifier">closure</span><span class="Operator">.</span><span class="Punctuation">}</span> <span class="Operator">=</span> <span class="Keyword">yield</span> <span class="StringLit">&quot;abc&quot;</span>
  7766. <span class="Identifier">doAssert</span> <span class="Keyword">type</span><span class="Punctuation">(</span><span class="Identifier">myFoo</span><span class="Punctuation">(</span><span class="Punctuation">)</span><span class="Punctuation">)</span> <span class="Keyword">is</span> <span class="Identifier">string</span>
  7767. <span class="Identifier">doAssert</span> <span class="Identifier">typeof</span><span class="Punctuation">(</span><span class="Identifier">myFoo</span><span class="Punctuation">(</span><span class="Punctuation">)</span><span class="Punctuation">)</span> <span class="Keyword">is</span> <span class="Identifier">string</span>
  7768. <span class="Identifier">doAssert</span> <span class="Identifier">typeof</span><span class="Punctuation">(</span><span class="Identifier">myFoo</span><span class="Punctuation">(</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="Identifier">typeOfIter</span><span class="Punctuation">)</span> <span class="Keyword">is</span> <span class="Identifier">string</span>
  7769. <span class="Identifier">doAssert</span> <span class="Identifier">typeof</span><span class="Punctuation">(</span><span class="Identifier">myFoo3</span><span class="Punctuation">)</span> <span class="Keyword">is</span> <span class="Keyword">iterator</span>
  7770. <span class="Identifier">doAssert</span> <span class="Identifier">typeof</span><span class="Punctuation">(</span><span class="Identifier">myFoo</span><span class="Punctuation">(</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="Identifier">typeOfProc</span><span class="Punctuation">)</span> <span class="Keyword">is</span> <span class="Identifier">float</span>
  7771. <span class="Identifier">doAssert</span> <span class="Identifier">typeof</span><span class="Punctuation">(</span><span class="FloatNumber">0.0</span><span class="Punctuation">,</span> <span class="Identifier">typeOfProc</span><span class="Punctuation">)</span> <span class="Keyword">is</span> <span class="Identifier">float</span>
  7772. <span class="Identifier">doAssert</span> <span class="Identifier">typeof</span><span class="Punctuation">(</span><span class="Identifier">myFoo3</span><span class="Punctuation">,</span> <span class="Identifier">typeOfProc</span><span class="Punctuation">)</span> <span class="Keyword">is</span> <span class="Keyword">iterator</span>
  7773. <span class="Identifier">doAssert</span> <span class="Keyword">not</span> <span class="Identifier">compiles</span><span class="Punctuation">(</span><span class="Identifier">typeof</span><span class="Punctuation">(</span><span class="Identifier">myFoo2</span><span class="Punctuation">(</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="Identifier">typeOfProc</span><span class="Punctuation">)</span><span class="Punctuation">)</span>
  7774. <span class="Comment"># this would give: Error: attempting to call routine: 'myFoo2'</span>
  7775. <span class="Comment"># since `typeOfProc` expects a typed expression and `myFoo2()` can</span>
  7776. <span class="Comment"># only be used in a `for` context.</span></pre>
  7777. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L57" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7778. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L57" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7779. </dd>
  7780. </div>
  7781. </div>
  7782. <div id="unsafeAddr-procs-all">
  7783. <div id="unsafeAddr,T">
  7784. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Addr&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  7785. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7786. <dd>
  7787. <div class="admonition admonition-warning"><span class="admonition-warning-text"><b>Warning:</b></span>
  7788. <tt class="docutils literal"><span class="pre"><span class="Identifier">unsafeAddr</span></span></tt> is a deprecated alias for <tt class="docutils literal"><span class="pre"><span class="Keyword">addr</span></span></tt>, use <tt class="docutils literal"><span class="pre"><span class="Keyword">addr</span></span></tt> instead.</div>
  7789. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L120" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7790. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L120" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7791. </dd>
  7792. </div>
  7793. </div>
  7794. <div id="unsafeNew-procs-all">
  7795. <div id="unsafeNew,ref.T,Natural">
  7796. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;New&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span>
  7797. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7798. <dd>
  7799. <p>Creates a new object of type <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt> and returns a safe (traced) reference to it in <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt>.</p>
  7800. <p>This is <strong>unsafe</strong> as it allocates an object of the passed <tt class="docutils literal"><span class="pre"><span class="Identifier">size</span></span></tt>. This should only be used for optimization purposes when you know what you're doing!</p>
  7801. <p>See also:</p>
  7802. <ul class="simple"><li><a class="reference external" href="#new,ref.T,proc(ref.T)">new</a></li>
  7803. </ul>
  7804. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L569" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7805. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L569" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7806. </dd>
  7807. </div>
  7808. </div>
  7809. <div id="unsetControlCHook-procs-all">
  7810. <div id="unsetControlCHook">
  7811. <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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7812. <dd>
  7813. Reverts a call to setControlCHook.
  7814. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2195" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7815. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2195" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7816. </dd>
  7817. </div>
  7818. </div>
  7819. <div id="wasMoved-procs-all">
  7820. <div id="wasMoved,T">
  7821. <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 class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span>.}</pre></dt>
  7822. <dd>
  7823. Resets an object <tt class="docutils literal"><span class="pre"><span class="Identifier">obj</span></span></tt> to its initial (binary zero) value to signify it was &quot;moved&quot; and to signify its destructor should do nothing and ideally be optimized away.
  7824. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L164" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7825. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L164" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7826. </dd>
  7827. </div>
  7828. </div>
  7829. <div id="writeStackTrace-procs-all">
  7830. <div id="writeStackTrace">
  7831. <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 pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7832. <dd>
  7833. Writes the current stack trace to <tt class="docutils literal"><span class="pre"><span class="Identifier">stderr</span></span></tt>. This is only works for debug builds. Since it's usually used for debugging, this is proclaimed to have no IO effect!
  7834. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1715" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7835. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1715" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7836. </dd>
  7837. </div>
  7838. </div>
  7839. <div id="xor-procs-all">
  7840. <div id="xor,bool,bool">
  7841. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;Xor&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span>
  7842. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7843. <dd>
  7844. Boolean <tt class="docutils literal"><span class="pre"><span class="Identifier">exclusive</span> <span class="Keyword">or</span></span></tt>; returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span> <span class="Operator">!=</span> <span class="Identifier">y</span></span></tt> (if either argument is true while the other is false).
  7845. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/basic_types.nim#L89" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7846. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/basic_types.nim#L89" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7847. </dd>
  7848. </div>
  7849. <div id="xor,int,int">
  7850. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitxorI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  7851. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7852. <dd>
  7853. Computes the <tt class="docutils literal"><span class="pre"><span class="Identifier">bitwise</span> <span class="Keyword">xor</span></span></tt> of numbers <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.
  7854. <p><strong class="examples_text">Example:</strong></p>
  7855. <pre class="listing"><span class="Identifier">assert</span> <span class="Punctuation">(</span><span class="BinNumber">0b0011</span> <span class="Keyword">xor</span> <span class="BinNumber">0b0101</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="BinNumber">0b0110</span>
  7856. <span class="Identifier">assert</span> <span class="Punctuation">(</span><span class="BinNumber">0b0111</span> <span class="Keyword">xor</span> <span class="BinNumber">0b1100</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="BinNumber">0b1011</span></pre>
  7857. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L209" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7858. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L209" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7859. </dd>
  7860. </div>
  7861. <div id="xor,int8,int8">
  7862. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitxorI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  7863. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7864. <dd>
  7865. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L214" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7866. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L214" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7867. </dd>
  7868. </div>
  7869. <div id="xor,int16,int16">
  7870. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitxorI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  7871. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7872. <dd>
  7873. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L215" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7874. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L215" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7875. </dd>
  7876. </div>
  7877. <div id="xor,int32,int32">
  7878. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitxorI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  7879. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7880. <dd>
  7881. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L216" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7882. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L216" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7883. </dd>
  7884. </div>
  7885. <div id="xor,int64,int64">
  7886. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitxorI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  7887. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7888. <dd>
  7889. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L217" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7890. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L217" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7891. </dd>
  7892. </div>
  7893. <div id="xor,uint,uint">
  7894. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitxorI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  7895. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7896. <dd>
  7897. Computes the <tt class="docutils literal"><span class="pre"><span class="Identifier">bitwise</span> <span class="Keyword">xor</span></span></tt> of numbers <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.
  7898. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L255" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7899. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L255" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7900. </dd>
  7901. </div>
  7902. <div id="xor,uint8,uint8">
  7903. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitxorI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  7904. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7905. <dd>
  7906. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L257" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7907. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L257" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7908. </dd>
  7909. </div>
  7910. <div id="xor,uint16,uint16">
  7911. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitxorI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  7912. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7913. <dd>
  7914. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L258" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7915. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L258" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7916. </dd>
  7917. </div>
  7918. <div id="xor,uint32,uint32">
  7919. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitxorI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  7920. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7921. <dd>
  7922. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L259" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7923. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L259" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7924. </dd>
  7925. </div>
  7926. <div id="xor,uint64,uint64">
  7927. <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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;BitxorI&quot;</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  7928. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7929. <dd>
  7930. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arithmetics.nim#L260" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7931. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arithmetics.nim#L260" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7932. </dd>
  7933. </div>
  7934. </div>
  7935. <div id="zeroDefault-procs-all">
  7936. <div id="zeroDefault,typedesc[T]">
  7937. <dt><pre><span class="Keyword">func</span> <a href="#zeroDefault%2Ctypedesc%5BT%5D"><span class="Identifier">zeroDefault</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Operator">_</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 class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;ZeroDefault&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  7938. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7939. <dd>
  7940. <p>Returns the binary zeros representation of the type <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt>. It ignores default fields of an object.</p>
  7941. <p>See also:</p>
  7942. <ul class="simple"><li><a class="reference external" href="#default,typedesc[T]">default</a></li>
  7943. </ul>
  7944. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L27" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7945. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L27" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7946. </dd>
  7947. </div>
  7948. </div>
  7949. <div id="zeroMem-procs-all">
  7950. <div id="zeroMem,pointer,Natural">
  7951. <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 class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  7952. <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7953. <dd>
  7954. <p>Overwrites the contents of the memory at <tt class="docutils literal"><span class="pre"><span class="Identifier">p</span></span></tt> with the value 0.</p>
  7955. <p>Exactly <tt class="docutils literal"><span class="pre"><span class="Identifier">size</span></span></tt> bytes will be overwritten. Like any procedure dealing with raw memory this is <strong>unsafe</strong>.</p>
  7956. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L2" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7957. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L2" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7958. </dd>
  7959. </div>
  7960. </div>
  7961. <div id="|-procs-all">
  7962. <div id="|,typedesc,typedesc">
  7963. <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>
  7964. <dd>
  7965. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1432" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7966. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1432" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7967. </dd>
  7968. </div>
  7969. </div>
  7970. </dl>
  7971. </div>
  7972. <div class="section" id="15">
  7973. <h1><a class="toc-backref" href="#15">Iterators</a></h1>
  7974. <dl class="item">
  7975. <div id="..-iterators-all">
  7976. <div id="...i,int32,int32">
  7977. <dt><pre><span class="Keyword">iterator</span> <a href="#...i%2Cint32%2Cint32"><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#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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7978. <dd>
  7979. <p>A type specialized version of <tt class="docutils literal"><span class="pre"><span class="Operator">..</span></span></tt> for convenience so that mixing integer types works better.</p>
  7980. <p>See also:</p>
  7981. <ul class="simple"><li><a class="reference external" href="#..&lt;.i,T,T">..&lt;</a></li>
  7982. </ul>
  7983. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/iterators_1.nim#L122" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7984. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/iterators_1.nim#L122" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7985. </dd>
  7986. </div>
  7987. <div id="...i,int64,int64">
  7988. <dt><pre><span class="Keyword">iterator</span> <a href="#...i%2Cint64%2Cint64"><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#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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  7989. <dd>
  7990. <p>A type specialized version of <tt class="docutils literal"><span class="pre"><span class="Operator">..</span></span></tt> for convenience so that mixing integer types works better.</p>
  7991. <p>See also:</p>
  7992. <ul class="simple"><li><a class="reference external" href="#..&lt;.i,T,T">..&lt;</a></li>
  7993. </ul>
  7994. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/iterators_1.nim#L121" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  7995. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/iterators_1.nim#L121" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  7996. </dd>
  7997. </div>
  7998. <div id="...i,uint32,uint32">
  7999. <dt><pre><span class="Keyword">iterator</span> <a href="#...i%2Cuint32%2Cuint32"><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#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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  8000. <dd>
  8001. <p>A type specialized version of <tt class="docutils literal"><span class="pre"><span class="Operator">..</span></span></tt> for convenience so that mixing integer types works better.</p>
  8002. <p>See also:</p>
  8003. <ul class="simple"><li><a class="reference external" href="#..&lt;.i,T,T">..&lt;</a></li>
  8004. </ul>
  8005. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/iterators_1.nim#L124" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8006. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/iterators_1.nim#L124" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8007. </dd>
  8008. </div>
  8009. <div id="...i,uint64,uint64">
  8010. <dt><pre><span class="Keyword">iterator</span> <a href="#...i%2Cuint64%2Cuint64"><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#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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  8011. <dd>
  8012. <p>A type specialized version of <tt class="docutils literal"><span class="pre"><span class="Operator">..</span></span></tt> for convenience so that mixing integer types works better.</p>
  8013. <p>See also:</p>
  8014. <ul class="simple"><li><a class="reference external" href="#..&lt;.i,T,T">..&lt;</a></li>
  8015. </ul>
  8016. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/iterators_1.nim#L123" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8017. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/iterators_1.nim#L123" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8018. </dd>
  8019. </div>
  8020. <div id="...i,T,T">
  8021. <dt><pre><span class="Keyword">iterator</span> <a href="#...i%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">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> {.<span class="Identifier">inline</span>.}</pre></dt>
  8022. <dd>
  8023. <p>An alias for <tt class="docutils literal"><span class="pre"><span class="Identifier">countup</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="DecNumber">1</span><span class="Punctuation">)</span></span></tt>.</p>
  8024. <p>See also:</p>
  8025. <ul class="simple"><li><a class="reference external" href="#..&lt;.i,T,T">..&lt;</a></li>
  8026. </ul>
  8027. <p><strong class="examples_text">Example:</strong></p>
  8028. <pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">sugar</span>
  8029. <span class="Keyword">let</span> <span class="Identifier">x</span> <span class="Operator">=</span> <span class="Identifier">collect</span><span class="Punctuation">(</span><span class="Identifier">newSeq</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
  8030. <span class="Keyword">for</span> <span class="Identifier">i</span> <span class="Keyword">in</span> <span class="DecNumber">3</span> <span class="Operator">..</span> <span class="DecNumber">7</span><span class="Punctuation">:</span>
  8031. <span class="Identifier">i</span>
  8032. <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">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></pre>
  8033. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/iterators_1.nim#L81" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8034. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/iterators_1.nim#L81" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8035. </dd>
  8036. </div>
  8037. </div>
  8038. <div id="..&lt;-iterators-all">
  8039. <div id="..<.i,int32,int32">
  8040. <dt><pre><span class="Keyword">iterator</span> <a href="#..%3C.i%2Cint32%2Cint32"><span class="Identifier">`..&lt;`</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#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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  8041. <dd>
  8042. A type specialized version of <tt class="docutils literal"><span class="pre"><span class="Operator">..&lt;</span></span></tt> for convenience so that mixing integer types works better.
  8043. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/iterators_1.nim#L143" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8044. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/iterators_1.nim#L143" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8045. </dd>
  8046. </div>
  8047. <div id="..<.i,int64,int64">
  8048. <dt><pre><span class="Keyword">iterator</span> <a href="#..%3C.i%2Cint64%2Cint64"><span class="Identifier">`..&lt;`</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#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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  8049. <dd>
  8050. A type specialized version of <tt class="docutils literal"><span class="pre"><span class="Operator">..&lt;</span></span></tt> for convenience so that mixing integer types works better.
  8051. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/iterators_1.nim#L142" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8052. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/iterators_1.nim#L142" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8053. </dd>
  8054. </div>
  8055. <div id="..<.i,uint32,uint32">
  8056. <dt><pre><span class="Keyword">iterator</span> <a href="#..%3C.i%2Cuint32%2Cuint32"><span class="Identifier">`..&lt;`</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#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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  8057. <dd>
  8058. A type specialized version of <tt class="docutils literal"><span class="pre"><span class="Operator">..&lt;</span></span></tt> for convenience so that mixing integer types works better.
  8059. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/iterators_1.nim#L145" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8060. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/iterators_1.nim#L145" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8061. </dd>
  8062. </div>
  8063. <div id="..<.i,uint64,uint64">
  8064. <dt><pre><span class="Keyword">iterator</span> <a href="#..%3C.i%2Cuint64%2Cuint64"><span class="Identifier">`..&lt;`</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#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 class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  8065. <dd>
  8066. A type specialized version of <tt class="docutils literal"><span class="pre"><span class="Operator">..&lt;</span></span></tt> for convenience so that mixing integer types works better.
  8067. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/iterators_1.nim#L144" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8068. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/iterators_1.nim#L144" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8069. </dd>
  8070. </div>
  8071. <div id="..<.i,T,T">
  8072. <dt><pre><span class="Keyword">iterator</span> <a href="#..%3C.i%2CT%2CT"><span class="Identifier">`..&lt;`</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="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> {.<span class="Identifier">inline</span>.}</pre></dt>
  8073. <dd>
  8074. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/iterators_1.nim#L126" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8075. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/iterators_1.nim#L126" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8076. </dd>
  8077. </div>
  8078. </div>
  8079. <div id="countdown-iterators-all">
  8080. <div id="countdown.i,T,T,Positive">
  8081. <dt><pre><span class="Keyword">iterator</span> <a href="#countdown.i%2CT%2CT%2CPositive"><span class="Identifier">countdown</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="Identifier">T</span><span class="Other">;</span> <span class="Identifier">step</span><span class="Other">:</span> <a href="system.html#Positive"><span class="Identifier">Positive</span></a> <span class="Other">=</span> <span class="DecNumber">1</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> {.<span class="Identifier">inline</span>.}</pre></dt>
  8082. <dd>
  8083. <p>Counts from ordinal value <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt> down to <tt class="docutils literal"><span class="pre"><span class="Identifier">b</span></span></tt> (inclusive) with the given step count.</p>
  8084. <p><tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt> may be any ordinal type, <tt class="docutils literal"><span class="pre"><span class="Identifier">step</span></span></tt> may only be positive.</p>
  8085. <p><strong>Note</strong>: This fails to count to <tt class="docutils literal"><span class="pre"><span class="Identifier">low</span><span class="Punctuation">(</span><span class="Identifier">int</span><span class="Punctuation">)</span></span></tt> if T = int for efficiency reasons.</p>
  8086. <p><strong class="examples_text">Example:</strong></p>
  8087. <pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">sugar</span>
  8088. <span class="Keyword">let</span> <span class="Identifier">x</span> <span class="Operator">=</span> <span class="Identifier">collect</span><span class="Punctuation">(</span><span class="Identifier">newSeq</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
  8089. <span class="Keyword">for</span> <span class="Identifier">i</span> <span class="Keyword">in</span> <span class="Identifier">countdown</span><span class="Punctuation">(</span><span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
  8090. <span class="Identifier">i</span>
  8091. <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">7</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">4</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">]</span>
  8092. <span class="Keyword">let</span> <span class="Identifier">y</span> <span class="Operator">=</span> <span class="Identifier">collect</span><span class="Punctuation">(</span><span class="Identifier">newseq</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
  8093. <span class="Keyword">for</span> <span class="Identifier">i</span> <span class="Keyword">in</span> <span class="Identifier">countdown</span><span class="Punctuation">(</span><span class="DecNumber">9</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="Punctuation">:</span>
  8094. <span class="Identifier">i</span>
  8095. <span class="Identifier">assert</span> <span class="Identifier">y</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">9</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">]</span></pre>
  8096. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/iterators_1.nim#L6" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8097. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/iterators_1.nim#L6" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8098. </dd>
  8099. </div>
  8100. </div>
  8101. <div id="countup-iterators-all">
  8102. <div id="countup.i,T,T,Positive">
  8103. <dt><pre><span class="Keyword">iterator</span> <a href="#countup.i%2CT%2CT%2CPositive"><span class="Identifier">countup</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="Identifier">T</span><span class="Other">;</span> <span class="Identifier">step</span><span class="Other">:</span> <a href="system.html#Positive"><span class="Identifier">Positive</span></a> <span class="Other">=</span> <span class="DecNumber">1</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> {.<span class="Identifier">inline</span>.}</pre></dt>
  8104. <dd>
  8105. <p>Counts from ordinal value <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt> to <tt class="docutils literal"><span class="pre"><span class="Identifier">b</span></span></tt> (inclusive) with the given step count.</p>
  8106. <p><tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt> may be any ordinal type, <tt class="docutils literal"><span class="pre"><span class="Identifier">step</span></span></tt> may only be positive.</p>
  8107. <p><strong>Note</strong>: This fails to count to <tt class="docutils literal"><span class="pre"><span class="Identifier">high</span><span class="Punctuation">(</span><span class="Identifier">int</span><span class="Punctuation">)</span></span></tt> if T = int for efficiency reasons.</p>
  8108. <p><strong class="examples_text">Example:</strong></p>
  8109. <pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">sugar</span>
  8110. <span class="Keyword">let</span> <span class="Identifier">x</span> <span class="Operator">=</span> <span class="Identifier">collect</span><span class="Punctuation">(</span><span class="Identifier">newSeq</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
  8111. <span class="Keyword">for</span> <span class="Identifier">i</span> <span class="Keyword">in</span> <span class="Identifier">countup</span><span class="Punctuation">(</span><span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
  8112. <span class="Identifier">i</span>
  8113. <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">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>
  8114. <span class="Keyword">let</span> <span class="Identifier">y</span> <span class="Operator">=</span> <span class="Identifier">collect</span><span class="Punctuation">(</span><span class="Identifier">newseq</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
  8115. <span class="Keyword">for</span> <span class="Identifier">i</span> <span class="Keyword">in</span> <span class="Identifier">countup</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
  8116. <span class="Identifier">i</span>
  8117. <span class="Identifier">assert</span> <span class="Identifier">y</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">5</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">]</span></pre>
  8118. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/iterators_1.nim#L46" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8119. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/iterators_1.nim#L46" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8120. </dd>
  8121. </div>
  8122. </div>
  8123. <div id="||-iterators-all">
  8124. <div id="||.i,S,T,staticstring">
  8125. <dt><pre><span class="Keyword">iterator</span> <a href="#%7C%7C.i%2CS%2CT%2Cstaticstring"><span class="Identifier">`||`</span></a><span class="Other">[</span><span class="Identifier">S</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> <span class="Identifier">S</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="Identifier">annotation</span><span class="Other">:</span> <a href="system.html#static"><span class="Identifier">static</span></a> <span class="Identifier">string</span> <span class="Other">=</span> <span class="StringLit">&quot;parallel for&quot;</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> {.
  8126. <span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;OmpParFor&quot;</span><span class="Other">,</span> <span class="Identifier">sideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  8127. <dd>
  8128. <p>OpenMP parallel loop iterator. Same as <tt class="docutils literal"><span class="pre"><span class="Operator">..</span></span></tt> but the loop may run in parallel.</p>
  8129. <p><tt class="docutils literal"><span class="pre"><span class="Identifier">annotation</span></span></tt> is an additional annotation for the code generator to use. The default annotation is <tt class="docutils literal"><span class="pre"><span class="Identifier">parallel</span> <span class="Keyword">for</span></span></tt>. Please refer to the <a class="reference external" href="https://www.openmp.org/wp-content/uploads/OpenMP-4.5-1115-CPP-web.pdf">OpenMP Syntax Reference</a> for further information.</p>
  8130. <p>Note that the compiler maps that to the <tt class="docutils literal"><span class="pre"><span class="Comment">#pragma omp parallel for</span></span></tt> construct of <span id="openmp_1">OpenMP</span> and as such isn't aware of the parallelism in your code! Be careful! Later versions of <tt class="docutils literal"><span class="pre"><span class="Operator">||</span></span></tt> will get proper support by Nim's code generator and GC.</p>
  8131. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/iterators_1.nim#L147" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8132. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/iterators_1.nim#L147" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8133. </dd>
  8134. </div>
  8135. <div id="||.i,S,T,Positive,staticstring">
  8136. <dt><pre><span class="Keyword">iterator</span> <a href="#%7C%7C.i%2CS%2CT%2CPositive%2Cstaticstring"><span class="Identifier">`||`</span></a><span class="Other">[</span><span class="Identifier">S</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> <span class="Identifier">S</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="Identifier">step</span><span class="Other">:</span> <a href="system.html#Positive"><span class="Identifier">Positive</span></a><span class="Other">;</span>
  8137. <span class="Identifier">annotation</span><span class="Other">:</span> <a href="system.html#static"><span class="Identifier">static</span></a> <span class="Identifier">string</span> <span class="Other">=</span> <span class="StringLit">&quot;parallel for&quot;</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> {.<span class="Identifier">inline</span><span class="Other">,</span>
  8138. <span class="Identifier">magic</span><span class="Other">:</span> <span class="StringLit">&quot;OmpParFor&quot;</span><span class="Other">,</span> <span class="Identifier">sideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><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 class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  8139. <dd>
  8140. <p>OpenMP parallel loop iterator with stepping.  Same as <tt class="docutils literal"><span class="pre"><span class="Identifier">countup</span></span></tt> but the loop may run in parallel.</p>
  8141. <p><tt class="docutils literal"><span class="pre"><span class="Identifier">annotation</span></span></tt> is an additional annotation for the code generator to use. The default annotation is <tt class="docutils literal"><span class="pre"><span class="Identifier">parallel</span> <span class="Keyword">for</span></span></tt>. Please refer to the <a class="reference external" href="https://www.openmp.org/wp-content/uploads/OpenMP-4.5-1115-CPP-web.pdf">OpenMP Syntax Reference</a> for further information.</p>
  8142. <p>Note that the compiler maps that to the <tt class="docutils literal"><span class="pre"><span class="Comment">#pragma omp parallel for</span></span></tt> construct of <span id="openmp_2">OpenMP</span> and as such isn't aware of the parallelism in your code! Be careful! Later versions of <tt class="docutils literal"><span class="pre"><span class="Operator">||</span></span></tt> will get proper support by Nim's code generator and GC.</p>
  8143. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/iterators_1.nim#L164" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8144. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/iterators_1.nim#L164" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8145. </dd>
  8146. </div>
  8147. </div>
  8148. </dl>
  8149. </div>
  8150. <div class="section" id="17">
  8151. <h1><a class="toc-backref" href="#17">Macros</a></h1>
  8152. <dl class="item">
  8153. <div id="varargsLen-macros-all">
  8154. <div id="varargsLen.m,varargs[untyped]">
  8155. <dt><pre><span class="Keyword">macro</span> <a href="#varargsLen.m%2Cvarargs%5Buntyped%5D"><span class="Identifier">varargsLen</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#untyped"><span class="Identifier">untyped</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></pre></dt>
  8156. <dd>
  8157. returns number of variadic arguments in <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>
  8158. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2528" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8159. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2528" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8160. </dd>
  8161. </div>
  8162. </div>
  8163. </dl>
  8164. </div>
  8165. <div class="section" id="18">
  8166. <h1><a class="toc-backref" href="#18">Templates</a></h1>
  8167. <dl class="item">
  8168. <div id="!=-templates-all">
  8169. <div id="!=.t,untyped,untyped">
  8170. <dt><pre><span class="Keyword">template</span> <a href="#%21%3D.t%2Cuntyped%2Cuntyped"><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#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a> {.<span class="Identifier">callsite</span>.}</pre></dt>
  8171. <dd>
  8172. Unequals operator. This is a shorthand for <tt class="docutils literal"><span class="pre"><span class="Keyword">not</span> <span class="Punctuation">(</span><span class="Identifier">x</span> <span class="Operator">==</span> <span class="Identifier">y</span><span class="Punctuation">)</span></span></tt>.
  8173. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L131" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8174. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L131" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8175. </dd>
  8176. </div>
  8177. </div>
  8178. <div id="&amp;=-templates-all">
  8179. <div id="&=.t,typed,typed">
  8180. <dt><pre><span class="Keyword">template</span> <a href="#%26%3D.t%2Ctyped%2Ctyped"><span class="Identifier">`&amp;=`</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#typed"><span class="Identifier">typed</span></a><span class="Other">)</span></pre></dt>
  8181. <dd>
  8182. <p>Generic 'sink' operator for Nim.</p>
  8183. <p>If not specialized further, an alias for <tt class="docutils literal"><span class="pre"><span class="Identifier">add</span></span></tt>.</p>
  8184. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2476" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8185. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2476" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8186. </dd>
  8187. </div>
  8188. </div>
  8189. <div id="..&lt;-templates-all">
  8190. <div id="..<.t,untyped,untyped">
  8191. <dt><pre><span class="Keyword">template</span> <a href="#..%3C.t%2Cuntyped%2Cuntyped"><span class="Identifier">`..&lt;`</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#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a></pre></dt>
  8192. <dd>
  8193. <p>A shortcut for <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span> <span class="Operator">..</span> <span class="Identifier">pred</span><span class="Punctuation">(</span><span class="Identifier">b</span><span class="Punctuation">)</span></span></tt>.</p>
  8194. <p><pre class="listing"><span class="Keyword">for</span> <span class="Identifier">i</span> <span class="Keyword">in</span> <span class="DecNumber">5</span> <span class="Operator">..&lt;</span> <span class="DecNumber">9</span><span class="Punctuation">:</span>
  8195. <span class="Identifier">echo</span> <span class="Identifier">i</span> <span class="Comment"># =&gt; 5; 6; 7; 8</span></pre></p>
  8196. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indices.nim#L47" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8197. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indices.nim#L47" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8198. </dd>
  8199. </div>
  8200. </div>
  8201. <div id="..^-templates-all">
  8202. <div id="..^.t,untyped,untyped">
  8203. <dt><pre><span class="Keyword">template</span> <a href="#..%5E.t%2Cuntyped%2Cuntyped"><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#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a></pre></dt>
  8204. <dd>
  8205. A shortcut for <tt class="docutils literal"><span class="pre"><span class="Operator">..</span> <span class="Operator">^</span></span></tt> to avoid the common gotcha that a space between '..' and '^' is required.
  8206. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indices.nim#L42" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8207. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indices.nim#L42" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8208. </dd>
  8209. </div>
  8210. </div>
  8211. <div id="=dispose-templates-all">
  8212. <div id="=dispose.t">
  8213. <dt><pre><span class="Keyword">template</span> <a href="#%3Ddispose.t"><span class="Identifier">`=dispose`</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">owned</span><span class="Other">(</span><span class="Keyword">ref</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">)</span></pre></dt>
  8214. <dd>
  8215. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arc.nim#L193" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8216. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arc.nim#L193" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8217. </dd>
  8218. </div>
  8219. </div>
  8220. <div id="&gt;-templates-all">
  8221. <div id=">.t,untyped,untyped">
  8222. <dt><pre><span class="Keyword">template</span> <a href="#%3E.t%2Cuntyped%2Cuntyped"><span class="Identifier">`&gt;`</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#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a> {.<span class="Identifier">callsite</span>.}</pre></dt>
  8223. <dd>
  8224. &quot;is greater&quot; operator. This is the same as <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span> <span class="Operator">&lt;</span> <span class="Identifier">x</span></span></tt>.
  8225. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L139" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8226. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L139" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8227. </dd>
  8228. </div>
  8229. </div>
  8230. <div id="&gt;%-templates-all">
  8231. <div id=">%.t,untyped,untyped">
  8232. <dt><pre><span class="Keyword">template</span> <a href="#%3E%25.t%2Cuntyped%2Cuntyped"><span class="Identifier">`&gt;%`</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#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a></pre></dt>
  8233. <dd>
  8234. Treats <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> as unsigned and compares them. Returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">unsigned</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span> <span class="Operator">&gt;</span> <span class="Identifier">unsigned</span><span class="Punctuation">(</span><span class="Identifier">y</span><span class="Punctuation">)</span></span></tt>.
  8235. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L201" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8236. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L201" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8237. </dd>
  8238. </div>
  8239. </div>
  8240. <div id="&gt;=-templates-all">
  8241. <div id=">=.t,untyped,untyped">
  8242. <dt><pre><span class="Keyword">template</span> <a href="#%3E%3D.t%2Cuntyped%2Cuntyped"><span class="Identifier">`&gt;=`</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#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a> {.<span class="Identifier">callsite</span>.}</pre></dt>
  8243. <dd>
  8244. &quot;is greater or equals&quot; operator. This is the same as <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span> <span class="Operator">&lt;=</span> <span class="Identifier">x</span></span></tt>.
  8245. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L135" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8246. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L135" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8247. </dd>
  8248. </div>
  8249. </div>
  8250. <div id="&gt;=%-templates-all">
  8251. <div id=">=%.t,untyped,untyped">
  8252. <dt><pre><span class="Keyword">template</span> <a href="#%3E%3D%25.t%2Cuntyped%2Cuntyped"><span class="Identifier">`&gt;=%`</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#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a></pre></dt>
  8253. <dd>
  8254. Treats <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> as unsigned and compares them. Returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">unsigned</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span> <span class="Operator">&gt;=</span> <span class="Identifier">unsigned</span><span class="Punctuation">(</span><span class="Identifier">y</span><span class="Punctuation">)</span></span></tt>.
  8255. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/comparisons.nim#L197" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8256. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/comparisons.nim#L197" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8257. </dd>
  8258. </div>
  8259. </div>
  8260. <div id="[]-templates-all">
  8261. <div id="[].t,string,int">
  8262. <dt><pre><span class="Keyword">template</span> <a href="#%5B%5D.t%2Cstring%2Cint"><span class="Identifier">`[]`</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</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#char"><span class="Identifier">char</span></a></pre></dt>
  8263. <dd>
  8264. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indices.nim#L55" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8265. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indices.nim#L55" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8266. </dd>
  8267. </div>
  8268. </div>
  8269. <div id="[]=-templates-all">
  8270. <div id="[]=.t,string,int,char">
  8271. <dt><pre><span class="Keyword">template</span> <a href="#%5B%5D%3D.t%2Cstring%2Cint%2Cchar"><span class="Identifier">`[]=`</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</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="Identifier">val</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">)</span></pre></dt>
  8272. <dd>
  8273. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indices.nim#L56" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8274. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indices.nim#L56" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8275. </dd>
  8276. </div>
  8277. </div>
  8278. <div id="^-templates-all">
  8279. <div id="^.t,int">
  8280. <dt><pre><span class="Keyword">template</span> <a href="#%5E.t%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#BackwardsIndex"><span class="Identifier">BackwardsIndex</span></a></pre></dt>
  8281. <dd>
  8282. <p>Builtin <span id="roof_1">roof</span> operator that can be used for convenient array access. <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span><span class="Punctuation">[</span><span class="Operator">^</span><span class="Identifier">x</span><span class="Punctuation">]</span></span></tt> is a shortcut for <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span><span class="Punctuation">[</span><span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">len</span><span class="Operator">-</span><span class="Identifier">x</span><span class="Punctuation">]</span></span></tt>.</p>
  8283. <p><pre class="listing"><span class="Keyword">let</span>
  8284. <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="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">]</span>
  8285. <span class="Identifier">b</span> <span class="Operator">=</span> <span class="StringLit">&quot;abcdefgh&quot;</span>
  8286. <span class="Identifier">echo</span> <span class="Identifier">a</span><span class="Punctuation">[</span><span class="Operator">^</span><span class="DecNumber">1</span><span class="Punctuation">]</span> <span class="Comment"># =&gt; 9</span>
  8287. <span class="Identifier">echo</span> <span class="Identifier">b</span><span class="Punctuation">[</span><span class="Operator">^</span><span class="DecNumber">2</span><span class="Punctuation">]</span> <span class="Comment"># =&gt; g</span></pre></p>
  8288. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indices.nim#L9" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8289. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indices.nim#L9" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8290. </dd>
  8291. </div>
  8292. </div>
  8293. <div id="alloc-templates-all">
  8294. <div id="alloc.t,Natural">
  8295. <dt><pre><span class="Keyword">template</span> <a href="#alloc.t%2CNatural"><span class="Identifier">alloc</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></pre></dt>
  8296. <dd>
  8297. <p>Allocates a new memory block with at least <tt class="docutils literal"><span class="pre"><span class="Identifier">size</span></span></tt> bytes.</p>
  8298. <p>The block has to be freed with <a class="reference external" href="#realloc.t,pointer,Natural">realloc(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>
  8299. <p>The allocated memory belongs to its allocating thread! Use <a class="reference external" href="#allocShared.t,Natural">allocShared</a> to allocate from a shared heap.</p>
  8300. <p>See also:</p>
  8301. <ul class="simple"><li><a class="reference external" href="#alloc0.t,Natural">alloc0</a></li>
  8302. </ul>
  8303. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L90" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8304. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L90" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8305. </dd>
  8306. </div>
  8307. </div>
  8308. <div id="alloc0-templates-all">
  8309. <div id="alloc0.t,Natural">
  8310. <dt><pre><span class="Keyword">template</span> <a href="#alloc0.t%2CNatural"><span class="Identifier">alloc0</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></pre></dt>
  8311. <dd>
  8312. <p>Allocates a new memory block with at least <tt class="docutils literal"><span class="pre"><span class="Identifier">size</span></span></tt> bytes.</p>
  8313. <p>The block has to be freed with <a class="reference external" href="#realloc.t,pointer,Natural">realloc(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="#alloc.t,Natural">alloc</a>.</p>
  8314. <p>The allocated memory belongs to its allocating thread! Use <a class="reference external" href="#allocShared0.t,Natural">allocShared0</a> to allocate from a shared heap.</p>
  8315. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L121" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8316. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L121" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8317. </dd>
  8318. </div>
  8319. </div>
  8320. <div id="allocShared-templates-all">
  8321. <div id="allocShared.t,Natural">
  8322. <dt><pre><span class="Keyword">template</span> <a href="#allocShared.t%2CNatural"><span class="Identifier">allocShared</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></pre></dt>
  8323. <dd>
  8324. <p>Allocates a new memory block on the shared heap with at least <tt class="docutils literal"><span class="pre"><span class="Identifier">size</span></span></tt> bytes.</p>
  8325. <p>The block has to be freed with <a class="reference external" href="#reallocShared.t,pointer,Natural">reallocShared(block, 0)</a> or <a class="reference external" href="#deallocShared,pointer">deallocShared(block)</a>.</p>
  8326. <p>The block is not initialized, so reading from it before writing to it is undefined behaviour!</p>
  8327. <p>See also:</p>
  8328. <ul class="simple"><li><a class="reference external" href="#allocShared0.t,Natural">allocShared0</a>.</li>
  8329. </ul>
  8330. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L204" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8331. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L204" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8332. </dd>
  8333. </div>
  8334. </div>
  8335. <div id="allocShared0-templates-all">
  8336. <div id="allocShared0.t,Natural">
  8337. <dt><pre><span class="Keyword">template</span> <a href="#allocShared0.t%2CNatural"><span class="Identifier">allocShared0</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></pre></dt>
  8338. <dd>
  8339. <p>Allocates a new memory block on the shared heap with at least <tt class="docutils literal"><span class="pre"><span class="Identifier">size</span></span></tt> bytes.</p>
  8340. <p>The block has to be freed with <a class="reference external" href="#reallocShared.t,pointer,Natural">reallocShared(block, 0)</a> or <a class="reference external" href="#deallocShared,pointer">deallocShared(block)</a>.</p>
  8341. <p>The block is initialized with all bytes containing zero, so it is somewhat safer than <a class="reference external" href="#allocShared.t,Natural">allocShared</a>.</p>
  8342. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L236" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8343. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L236" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8344. </dd>
  8345. </div>
  8346. </div>
  8347. <div id="closureScope-templates-all">
  8348. <div id="closureScope.t,untyped">
  8349. <dt><pre><span class="Keyword">template</span> <a href="#closureScope.t%2Cuntyped"><span class="Identifier">closureScope</span></a><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 class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a></pre></dt>
  8350. <dd>
  8351. <p>Useful when creating a closure in a loop to capture local loop variables by their current iteration values.</p>
  8352. <p>Note: This template may not work in some cases, use <a class="reference external" href="sugar.html#capture.m,varargs[typed],untyped">capture</a> instead.</p>
  8353. <p>Example:</p>
  8354. <p><pre class="listing"><span class="Keyword">var</span> <span class="Identifier">myClosure</span> <span class="Punctuation">:</span> <span class="Keyword">proc</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
  8355. <span class="Comment"># without closureScope:</span>
  8356. <span class="Keyword">for</span> <span class="Identifier">i</span> <span class="Keyword">in</span> <span class="DecNumber">0</span> <span class="Operator">..</span> <span class="DecNumber">5</span><span class="Punctuation">:</span>
  8357. <span class="Keyword">let</span> <span class="Identifier">j</span> <span class="Operator">=</span> <span class="Identifier">i</span>
  8358. <span class="Keyword">if</span> <span class="Identifier">j</span> <span class="Operator">==</span> <span class="DecNumber">3</span><span class="Punctuation">:</span>
  8359. <span class="Identifier">myClosure</span> <span class="Operator">=</span> <span class="Keyword">proc</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Operator">=</span> <span class="Identifier">echo</span> <span class="Identifier">j</span>
  8360. <span class="Identifier">myClosure</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Comment"># outputs 5. `j` is changed after closure creation</span>
  8361. <span class="Comment"># with closureScope:</span>
  8362. <span class="Keyword">for</span> <span class="Identifier">i</span> <span class="Keyword">in</span> <span class="DecNumber">0</span> <span class="Operator">..</span> <span class="DecNumber">5</span><span class="Punctuation">:</span>
  8363. <span class="Identifier">closureScope</span><span class="Punctuation">:</span> <span class="Comment"># Everything in this scope is locked after closure creation</span>
  8364. <span class="Keyword">let</span> <span class="Identifier">j</span> <span class="Operator">=</span> <span class="Identifier">i</span>
  8365. <span class="Keyword">if</span> <span class="Identifier">j</span> <span class="Operator">==</span> <span class="DecNumber">3</span><span class="Punctuation">:</span>
  8366. <span class="Identifier">myClosure</span> <span class="Operator">=</span> <span class="Keyword">proc</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Operator">=</span> <span class="Identifier">echo</span> <span class="Identifier">j</span>
  8367. <span class="Identifier">myClosure</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Comment"># outputs 3</span></pre></p>
  8368. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2728" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8369. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2728" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8370. </dd>
  8371. </div>
  8372. </div>
  8373. <div id="currentSourcePath-templates-all">
  8374. <div id="currentSourcePath.t">
  8375. <dt><pre><span class="Keyword">template</span> <a href="#currentSourcePath.t"><span class="Identifier">currentSourcePath</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></pre></dt>
  8376. <dd>
  8377. <p>Returns the full file-system path of the current source.</p>
  8378. <p>To get the directory containing the current source, use it with <a class="reference external" href="ospaths2.html#parentDir%2Cstring">ospaths2.parentDir()</a> as <tt class="docutils literal"><span class="pre"><span class="Identifier">currentSourcePath</span><span class="Operator">.</span><span class="Identifier">parentDir</span><span class="Punctuation">(</span><span class="Punctuation">)</span></span></tt>.</p>
  8379. <p>The path returned by this template is set at compile time.</p>
  8380. <p>See the docstring of <a class="reference external" href="macros.html#getProjectPath">macros.getProjectPath()</a> for an example to see the distinction between the <tt class="docutils literal"><span class="pre"><span class="Identifier">currentSourcePath</span><span class="Punctuation">(</span><span class="Punctuation">)</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">getProjectPath</span><span class="Punctuation">(</span><span class="Punctuation">)</span></span></tt>.</p>
  8381. <p>See also:</p>
  8382. <ul class="simple"><li><a class="reference external" href="ospaths2.html#getCurrentDir">ospaths2.getCurrentDir() proc</a></li>
  8383. </ul>
  8384. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/compilation.nim#L143" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8385. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/compilation.nim#L143" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8386. </dd>
  8387. </div>
  8388. </div>
  8389. <div id="disarm-templates-all">
  8390. <div id="disarm.t,typed">
  8391. <dt><pre><span class="Keyword">template</span> <a href="#disarm.t%2Ctyped"><span class="Identifier">disarm</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#typed"><span class="Identifier">typed</span></a><span class="Other">)</span></pre></dt>
  8392. <dd>
  8393. Useful for <tt class="docutils literal"><span class="pre"><span class="Identifier">disarming</span></span></tt> dangling pointers explicitly for <tt class="docutils literal"><span class="pre"><span class="Operator">--</span><span class="Identifier">newruntime</span></span></tt>. Regardless of whether <tt class="docutils literal"><span class="pre"><span class="Operator">--</span><span class="Identifier">newruntime</span></span></tt> is used or not this sets the pointer or callback <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> to <tt class="docutils literal"><span class="pre"><span class="Keyword">nil</span></span></tt>. This is an experimental API!
  8394. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L845" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8395. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L845" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8396. </dd>
  8397. </div>
  8398. </div>
  8399. <div id="dumpAllocstats-templates-all">
  8400. <div id="dumpAllocstats.t,untyped">
  8401. <dt><pre><span class="Keyword">template</span> <a href="#dumpAllocstats.t%2Cuntyped"><span class="Identifier">dumpAllocstats</span></a><span class="Other">(</span><span class="Identifier">code</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span></pre></dt>
  8402. <dd>
  8403. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L75" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8404. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L75" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8405. </dd>
  8406. </div>
  8407. </div>
  8408. <div id="excl-templates-all">
  8409. <div id="excl.t,set[T],set[T]">
  8410. <dt><pre><span class="Keyword">template</span> <a href="#excl.t%2Cset%5BT%5D%2Cset%5BT%5D"><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> <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">callsite</span>.}</pre></dt>
  8411. <dd>
  8412. Excludes the set <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> from the set <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.
  8413. <p><strong class="examples_text">Example:</strong></p>
  8414. <pre class="listing"><span class="Keyword">var</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="DecNumber">7</span><span class="Punctuation">}</span>
  8415. <span class="Keyword">var</span> <span class="Identifier">b</span> <span class="Operator">=</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>
  8416. <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">excl</span><span class="Punctuation">(</span><span class="Identifier">b</span><span class="Punctuation">)</span>
  8417. <span class="Identifier">assert</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">7</span><span class="Punctuation">}</span></pre>
  8418. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/setops.nim#L33" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8419. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/setops.nim#L33" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8420. </dd>
  8421. </div>
  8422. </div>
  8423. <div id="formatErrorIndexBound-templates-all">
  8424. <div id="formatErrorIndexBound.t,T,T,T">
  8425. <dt><pre><span class="Keyword">template</span> <a href="#formatErrorIndexBound.t%2CT%2CT%2CT"><span class="Identifier">formatErrorIndexBound</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> <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> <a href="system.html#string"><span class="Identifier">string</span></a></pre></dt>
  8426. <dd>
  8427. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indexerrors.nim#L4" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8428. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indexerrors.nim#L4" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8429. </dd>
  8430. </div>
  8431. <div id="formatErrorIndexBound.t,T,T">
  8432. <dt><pre><span class="Keyword">template</span> <a href="#formatErrorIndexBound.t%2CT%2CT"><span class="Identifier">formatErrorIndexBound</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> <span class="Identifier">n</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></pre></dt>
  8433. <dd>
  8434. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indexerrors.nim#L11" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8435. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indexerrors.nim#L11" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8436. </dd>
  8437. </div>
  8438. </div>
  8439. <div id="formatFieldDefect-templates-all">
  8440. <div id="formatFieldDefect.t,,">
  8441. <dt><pre><span class="Keyword">template</span> <a href="#formatFieldDefect.t%2C%2C"><span class="Identifier">formatFieldDefect</span></a><span class="Other">(</span><span class="Identifier">f</span><span class="Other">,</span> <span class="Identifier">discVal</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a></pre></dt>
  8442. <dd>
  8443. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/indexerrors.nim#L14" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8444. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/indexerrors.nim#L14" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8445. </dd>
  8446. </div>
  8447. </div>
  8448. <div id="in-templates-all">
  8449. <div id="in.t,untyped,untyped">
  8450. <dt><pre><span class="Keyword">template</span> <a href="#in.t%2Cuntyped%2Cuntyped"><span class="Identifier">`in`</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#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a> {.<span class="Identifier">dirty</span><span class="Other">,</span> <span class="Identifier">callsite</span>.}</pre></dt>
  8451. <dd>
  8452. <p>Sugar for <tt class="docutils literal"><span class="pre"><span class="Identifier">contains</span></span></tt>.</p>
  8453. <p><pre class="listing"><span class="Identifier">assert</span><span class="Punctuation">(</span><span class="DecNumber">1</span> <span class="Keyword">in</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">true</span><span class="Punctuation">)</span>
  8454. <span class="Identifier">assert</span><span class="Punctuation">(</span><span class="DecNumber">5</span> <span class="Keyword">in</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">false</span><span class="Punctuation">)</span></pre></p>
  8455. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L759" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8456. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L759" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8457. </dd>
  8458. </div>
  8459. </div>
  8460. <div id="incl-templates-all">
  8461. <div id="incl.t,set[T],set[T]">
  8462. <dt><pre><span class="Keyword">template</span> <a href="#incl.t%2Cset%5BT%5D%2Cset%5BT%5D"><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> <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">callsite</span>.}</pre></dt>
  8463. <dd>
  8464. Includes the set <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> in the set <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.
  8465. <p><strong class="examples_text">Example:</strong></p>
  8466. <pre class="listing"><span class="Keyword">var</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="DecNumber">7</span><span class="Punctuation">}</span>
  8467. <span class="Keyword">var</span> <span class="Identifier">b</span> <span class="Operator">=</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>
  8468. <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">incl</span><span class="Punctuation">(</span><span class="Identifier">b</span><span class="Punctuation">)</span>
  8469. <span class="Identifier">assert</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">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></pre>
  8470. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/setops.nim#L15" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8471. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/setops.nim#L15" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8472. </dd>
  8473. </div>
  8474. </div>
  8475. <div id="isnot-templates-all">
  8476. <div id="isnot.t,untyped,untyped">
  8477. <dt><pre><span class="Keyword">template</span> <a href="#isnot.t%2Cuntyped%2Cuntyped"><span class="Identifier">`isnot`</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#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a> {.<span class="Identifier">callsite</span>.}</pre></dt>
  8478. <dd>
  8479. <p>Negated version of <a class="reference external" href="#is,T,S">is</a>. Equivalent to <tt class="docutils literal"><span class="pre"><span class="Keyword">not</span><span class="Punctuation">(</span><span class="Identifier">x</span> <span class="Keyword">is</span> <span class="Identifier">y</span><span class="Punctuation">)</span></span></tt>.</p>
  8480. <p><pre class="listing"><span class="Identifier">assert</span> <span class="DecNumber">42</span> <span class="Keyword">isnot</span> <span class="Identifier">float</span>
  8481. <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">isnot</span> <span class="Keyword">enum</span></pre></p>
  8482. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L790" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8483. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L790" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8484. </dd>
  8485. </div>
  8486. </div>
  8487. <div id="likely-templates-all">
  8488. <div id="likely.t,bool">
  8489. <dt><pre><span class="Keyword">template</span> <a href="#likely.t%2Cbool"><span class="Identifier">likely</span></a><span class="Other">(</span><span class="Identifier">val</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></pre></dt>
  8490. <dd>
  8491. <p>Hints the optimizer that <tt class="docutils literal"><span class="pre"><span class="Identifier">val</span></span></tt> is likely going to be true.</p>
  8492. <p>You can use this template to decorate a branch condition. On certain platforms this can help the processor predict better which branch is going to be run. Example:</p>
  8493. <p><pre class="listing"><span class="Keyword">for</span> <span class="Identifier">value</span> <span class="Keyword">in</span> <span class="Identifier">inputValues</span><span class="Punctuation">:</span>
  8494. <span class="Keyword">if</span> <span class="Identifier">likely</span><span class="Punctuation">(</span><span class="Identifier">value</span> <span class="Operator">&lt;=</span> <span class="DecNumber">100</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
  8495. <span class="Identifier">process</span><span class="Punctuation">(</span><span class="Identifier">value</span><span class="Punctuation">)</span>
  8496. <span class="Keyword">else</span><span class="Punctuation">:</span>
  8497. <span class="Identifier">echo</span> <span class="StringLit">&quot;Value too big!&quot;</span></pre></p>
  8498. <p>On backends without branch prediction (JS and the nimscript VM), this template will not affect code execution.</p>
  8499. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1960" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8500. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1960" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8501. </dd>
  8502. </div>
  8503. </div>
  8504. <div id="newException-templates-all">
  8505. <div id="newException.t,typedesc,string,ref.Exception">
  8506. <dt><pre><span class="Keyword">template</span> <a href="#newException.t%2Ctypedesc%2Cstring%2Cref.Exception"><span class="Identifier">newException</span></a><span class="Other">(</span><span class="Identifier">exceptn</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">;</span> <span class="Identifier">message</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span>
  8507. <span class="Identifier">parentException</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="Keyword">nil</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a></pre></dt>
  8508. <dd>
  8509. Creates an exception object of type <tt class="docutils literal"><span class="pre"><span class="Identifier">exceptn</span></span></tt> and sets its <tt class="docutils literal"><span class="pre"><span class="Identifier">msg</span></span></tt> field to <tt class="docutils literal"><span class="pre"><span class="Identifier">message</span></span></tt>. Returns the new exception object.
  8510. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1743" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8511. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1743" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8512. </dd>
  8513. </div>
  8514. </div>
  8515. <div id="nimThreadProcWrapperBody-templates-all">
  8516. <div id="nimThreadProcWrapperBody.t,untyped">
  8517. <dt><pre><span class="Keyword">template</span> <a href="#nimThreadProcWrapperBody.t%2Cuntyped"><span class="Identifier">nimThreadProcWrapperBody</span></a><span class="Other">(</span><span class="Identifier">closure</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#untyped"><span class="Identifier">untyped</span></a></pre></dt>
  8518. <dd>
  8519. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/threadimpl.nim#L97" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8520. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/threadimpl.nim#L97" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8521. </dd>
  8522. </div>
  8523. </div>
  8524. <div id="notin-templates-all">
  8525. <div id="notin.t,untyped,untyped">
  8526. <dt><pre><span class="Keyword">template</span> <a href="#notin.t%2Cuntyped%2Cuntyped"><span class="Identifier">`notin`</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#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a> {.<span class="Identifier">dirty</span><span class="Other">,</span> <span class="Identifier">callsite</span>.}</pre></dt>
  8527. <dd>
  8528. <p>Sugar for <tt class="docutils literal"><span class="pre"><span class="Keyword">not</span> <span class="Identifier">contains</span></span></tt>.</p>
  8529. <p><pre class="listing"><span class="Identifier">assert</span><span class="Punctuation">(</span><span class="DecNumber">1</span> <span class="Keyword">notin</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">false</span><span class="Punctuation">)</span>
  8530. <span class="Identifier">assert</span><span class="Punctuation">(</span><span class="DecNumber">5</span> <span class="Keyword">notin</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">true</span><span class="Punctuation">)</span></pre></p>
  8531. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L765" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8532. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L765" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8533. </dd>
  8534. </div>
  8535. </div>
  8536. <div id="offsetOf-templates-all">
  8537. <div id="offsetOf.t,typedesc[T],untyped">
  8538. <dt><pre><span class="Keyword">template</span> <a href="#offsetOf.t%2Ctypedesc%5BT%5D%2Cuntyped"><span class="Identifier">offsetOf</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><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">T</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">member</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#int"><span class="Identifier">int</span></a></pre></dt>
  8539. <dd>
  8540. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L604" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8541. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L604" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8542. </dd>
  8543. </div>
  8544. <div id="offsetOf.t,T,untyped">
  8545. <dt><pre><span class="Keyword">template</span> <a href="#offsetOf.t%2CT%2Cuntyped"><span class="Identifier">offsetOf</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">value</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">member</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#int"><span class="Identifier">int</span></a></pre></dt>
  8546. <dd>
  8547. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L608" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8548. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L608" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8549. </dd>
  8550. </div>
  8551. </div>
  8552. <div id="once-templates-all">
  8553. <div id="once.t,untyped">
  8554. <dt><pre><span class="Keyword">template</span> <a href="#once.t%2Cuntyped"><span class="Identifier">once</span></a><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 class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a></pre></dt>
  8555. <dd>
  8556. <p>Executes a block of code only once (the first time the block is reached).</p>
  8557. <p><pre class="listing"><span class="Keyword">proc</span> <span class="Identifier">draw</span><span class="Punctuation">(</span><span class="Identifier">t</span><span class="Punctuation">:</span> <span class="Identifier">Triangle</span><span class="Punctuation">)</span> <span class="Operator">=</span>
  8558. <span class="Identifier">once</span><span class="Punctuation">:</span>
  8559. <span class="Identifier">graphicsInit</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
  8560. <span class="Identifier">line</span><span class="Punctuation">(</span><span class="Identifier">t</span><span class="Operator">.</span><span class="Identifier">p1</span><span class="Punctuation">,</span> <span class="Identifier">t</span><span class="Operator">.</span><span class="Identifier">p2</span><span class="Punctuation">)</span>
  8561. <span class="Identifier">line</span><span class="Punctuation">(</span><span class="Identifier">t</span><span class="Operator">.</span><span class="Identifier">p2</span><span class="Punctuation">,</span> <span class="Identifier">t</span><span class="Operator">.</span><span class="Identifier">p3</span><span class="Punctuation">)</span>
  8562. <span class="Identifier">line</span><span class="Punctuation">(</span><span class="Identifier">t</span><span class="Operator">.</span><span class="Identifier">p3</span><span class="Punctuation">,</span> <span class="Identifier">t</span><span class="Operator">.</span><span class="Identifier">p1</span><span class="Punctuation">)</span></pre></p>
  8563. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2755" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8564. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2755" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8565. </dd>
  8566. </div>
  8567. </div>
  8568. <div id="rangeCheck-templates-all">
  8569. <div id="rangeCheck.t">
  8570. <dt><pre><span class="Keyword">template</span> <a href="#rangeCheck.t"><span class="Identifier">rangeCheck</span></a><span class="Other">(</span><span class="Identifier">cond</span><span class="Other">)</span></pre></dt>
  8571. <dd>
  8572. Helper for performing user-defined range checks. Such checks will be performed only when the <tt class="docutils literal"><span class="pre"><span class="Identifier">rangechecks</span></span></tt> compile-time option is enabled.
  8573. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L2483" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8574. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L2483" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8575. </dd>
  8576. </div>
  8577. </div>
  8578. <div id="realloc-templates-all">
  8579. <div id="realloc.t,pointer,Natural">
  8580. <dt><pre><span class="Keyword">template</span> <a href="#realloc.t%2Cpointer%2CNatural"><span class="Identifier">realloc</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></pre></dt>
  8581. <dd>
  8582. <p>Grows or shrinks a given memory block.</p>
  8583. <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">p</span></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"><span class="Identifier">newSize</span></span></tt> bytes. If <tt class="docutils literal"><span class="pre"><span class="Identifier">newSize</span> <span class="Operator">==</span> <span class="DecNumber">0</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">p</span></span></tt> is not <strong>nil</strong> <tt class="docutils literal"><span class="pre"><span class="Identifier">realloc</span></span></tt> calls <tt class="docutils literal"><span class="pre"><span class="Identifier">dealloc</span><span class="Punctuation">(</span><span class="Identifier">p</span><span class="Punctuation">)</span></span></tt>. In other cases the block has to be freed with <a class="reference external" href="#dealloc,pointer">dealloc(block)</a>.</p>
  8584. <p>The allocated memory belongs to its allocating thread! Use <a class="reference external" href="#reallocShared.t,pointer,Natural">reallocShared</a> to reallocate from a shared heap.</p>
  8585. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L146" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8586. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L146" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8587. </dd>
  8588. </div>
  8589. </div>
  8590. <div id="realloc0-templates-all">
  8591. <div id="realloc0.t,pointer,Natural,Natural">
  8592. <dt><pre><span class="Keyword">template</span> <a href="#realloc0.t%2Cpointer%2CNatural%2CNatural"><span class="Identifier">realloc0</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></pre></dt>
  8593. <dd>
  8594. <p>Grows or shrinks a given memory block.</p>
  8595. <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">p</span></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"><span class="Identifier">newSize</span></span></tt> bytes. If <tt class="docutils literal"><span class="pre"><span class="Identifier">newSize</span> <span class="Operator">==</span> <span class="DecNumber">0</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">p</span></span></tt> is not <strong>nil</strong> <tt class="docutils literal"><span class="pre"><span class="Identifier">realloc</span></span></tt> calls <tt class="docutils literal"><span class="pre"><span class="Identifier">dealloc</span><span class="Punctuation">(</span><span class="Identifier">p</span><span class="Punctuation">)</span></span></tt>. In other cases the block has to be freed with <a class="reference external" href="#dealloc,pointer">dealloc(block)</a>.</p>
  8596. <p>The block is initialized with all bytes containing zero, so it is somewhat safer then realloc</p>
  8597. <p>The allocated memory belongs to its allocating thread! Use <a class="reference external" href="#reallocShared.t,pointer,Natural">reallocShared</a> to reallocate from a shared heap.</p>
  8598. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L160" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8599. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L160" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8600. </dd>
  8601. </div>
  8602. </div>
  8603. <div id="reallocShared-templates-all">
  8604. <div id="reallocShared.t,pointer,Natural">
  8605. <dt><pre><span class="Keyword">template</span> <a href="#reallocShared.t%2Cpointer%2CNatural"><span class="Identifier">reallocShared</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></pre></dt>
  8606. <dd>
  8607. <p>Grows or shrinks a given memory block on the heap.</p>
  8608. <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">p</span></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"><span class="Identifier">newSize</span></span></tt> bytes. If <tt class="docutils literal"><span class="pre"><span class="Identifier">newSize</span> <span class="Operator">==</span> <span class="DecNumber">0</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">p</span></span></tt> is not <strong>nil</strong> <tt class="docutils literal"><span class="pre"><span class="Identifier">reallocShared</span></span></tt> calls <tt class="docutils literal"><span class="pre"><span class="Identifier">deallocShared</span><span class="Punctuation">(</span><span class="Identifier">p</span><span class="Punctuation">)</span></span></tt>. In other cases the block has to be freed with <a class="reference external" href="#deallocShared,pointer">deallocShared</a>.</p>
  8609. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L263" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8610. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L263" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8611. </dd>
  8612. </div>
  8613. </div>
  8614. <div id="reallocShared0-templates-all">
  8615. <div id="reallocShared0.t,pointer,Natural,Natural">
  8616. <dt><pre><span class="Keyword">template</span> <a href="#reallocShared0.t%2Cpointer%2CNatural%2CNatural"><span class="Identifier">reallocShared0</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></pre></dt>
  8617. <dd>
  8618. <p>Grows or shrinks a given memory block on the heap.</p>
  8619. <p>When growing, the new bytes of the block is initialized with all bytes containing zero, so it is somewhat safer then reallocShared</p>
  8620. <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">p</span></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"><span class="Identifier">newSize</span></span></tt> bytes. If <tt class="docutils literal"><span class="pre"><span class="Identifier">newSize</span> <span class="Operator">==</span> <span class="DecNumber">0</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">p</span></span></tt> is not <strong>nil</strong> <tt class="docutils literal"><span class="pre"><span class="Identifier">reallocShared</span></span></tt> calls <tt class="docutils literal"><span class="pre"><span class="Identifier">deallocShared</span><span class="Punctuation">(</span><span class="Identifier">p</span><span class="Punctuation">)</span></span></tt>. In other cases the block has to be freed with <a class="reference external" href="#deallocShared,pointer">deallocShared</a>.</p>
  8621. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/memalloc.nim#L274" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8622. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/memalloc.nim#L274" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8623. </dd>
  8624. </div>
  8625. </div>
  8626. <div id="setupForeignThreadGc-templates-all">
  8627. <div id="setupForeignThreadGc.t">
  8628. <dt><pre><span class="Keyword">template</span> <a href="#setupForeignThreadGc.t"><span class="Identifier">setupForeignThreadGc</span></a><span class="Other">(</span><span class="Other">)</span></pre></dt>
  8629. <dd>
  8630. With <tt class="docutils literal"><span class="pre"><span class="Operator">--</span><span class="Identifier">mm</span><span class="Punctuation">:</span><span class="Identifier">arc</span></span></tt> a nop.
  8631. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arc.nim#L257" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8632. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arc.nim#L257" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8633. </dd>
  8634. </div>
  8635. </div>
  8636. <div id="tearDownForeignThreadGc-templates-all">
  8637. <div id="tearDownForeignThreadGc.t">
  8638. <dt><pre><span class="Keyword">template</span> <a href="#tearDownForeignThreadGc.t"><span class="Identifier">tearDownForeignThreadGc</span></a><span class="Other">(</span><span class="Other">)</span></pre></dt>
  8639. <dd>
  8640. With <tt class="docutils literal"><span class="pre"><span class="Operator">--</span><span class="Identifier">mm</span><span class="Punctuation">:</span><span class="Identifier">arc</span></span></tt> a nop.
  8641. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system/arc.nim#L261" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8642. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system/arc.nim#L261" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8643. </dd>
  8644. </div>
  8645. </div>
  8646. <div id="unlikely-templates-all">
  8647. <div id="unlikely.t,bool">
  8648. <dt><pre><span class="Keyword">template</span> <a href="#unlikely.t%2Cbool"><span class="Identifier">unlikely</span></a><span class="Other">(</span><span class="Identifier">val</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></pre></dt>
  8649. <dd>
  8650. <p>Hints the optimizer that <tt class="docutils literal"><span class="pre"><span class="Identifier">val</span></span></tt> is likely going to be false.</p>
  8651. <p>You can use this proc to decorate a branch condition. On certain platforms this can help the processor predict better which branch is going to be run. Example:</p>
  8652. <p><pre class="listing"><span class="Keyword">for</span> <span class="Identifier">value</span> <span class="Keyword">in</span> <span class="Identifier">inputValues</span><span class="Punctuation">:</span>
  8653. <span class="Keyword">if</span> <span class="Identifier">unlikely</span><span class="Punctuation">(</span><span class="Identifier">value</span> <span class="Operator">&gt;</span> <span class="DecNumber">100</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
  8654. <span class="Identifier">echo</span> <span class="StringLit">&quot;Value too big!&quot;</span>
  8655. <span class="Keyword">else</span><span class="Punctuation">:</span>
  8656. <span class="Identifier">process</span><span class="Punctuation">(</span><span class="Identifier">value</span><span class="Punctuation">)</span></pre></p>
  8657. <p>On backends without branch prediction (JS and the nimscript VM), this template will not affect code execution.</p>
  8658. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L1984" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8659. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L1984" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8660. </dd>
  8661. </div>
  8662. </div>
  8663. <div id="unown-templates-all">
  8664. <div id="unown.t,typed">
  8665. <dt><pre><span class="Keyword">template</span> <a href="#unown.t%2Ctyped"><span class="Identifier">unown</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#typed"><span class="Identifier">typed</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a></pre></dt>
  8666. <dd>
  8667. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/system.nim#L825" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  8668. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/system.nim#L825" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  8669. </dd>
  8670. </div>
  8671. </div>
  8672. </dl>
  8673. </div>
  8674. </div>
  8675. </div>
  8676. <div class="twelve-columns footer">
  8677. <span class="nim-sprite"></span>
  8678. <br>
  8679. <small style="color: var(--hint);">Made with Nim. Generated: 2025-03-15 14:12:57 UTC</small>
  8680. </div>
  8681. </div>
  8682. </div>
  8683. <script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
  8684. </body>
  8685. </html>