Index

Numbers are section numbers, not page numbers: 8.4 is section 8.4 in every edition of this book, on paper and in a browser, and it is also the anchor a link can point at. Diagnostic codes, trap kinds, flags, and attributes are all indexed, so a code or a tag you meet in your own terminal is findable here.

Symbols

--bin 1.2 · --checked 9.3 · --ci 24.3 · --dir 23.1, 23.3, 24.3 · --explain 1.5, 7.5, 7.6, 8.5, 8.6, 8.8, 18.4, 23.3, 24.2, 24.3 · --explore 12.2, 12.4, 13.2, 17.2, 17.3 · --explore-preemptions 17.3 · --native 30.5 · --path 23.1 · --release 1.2 · --schedule 17.2 · --seed 12.2, 12.4, 13.2, 16.3, 17.1, 17.2, 17.3, 30.5 · --version 1.2, Colophon

!T (error type) 6.1 · ? (propagate) 6.2 · [T] (generics) 5.3 · {x} (interpolation) 2.1 · """ (multiline) 2.2 · r"…" (raw) 2.2

#[budget] 18.4 · #[trusted] 9.1, 9.6, 9.7, 9.8, 32.2, 32.3

A

appendices, how to read them, Notation · arena, as the C construct 8.1, 8.2, 32.2 · argv, see env_args() · Armstrong, Joe 14.1 · arithmetic, checked 3.3 · assert, comptime 18.1, 18.2, 22.3 · audit surface 9.1, 9.7, 32.3 · wolf audit 23.3, 24.3, 24.4 · wolf audit-surface 9.1, 9.7, 32.3

B

borrow, why the word is absent 7.3 · bounds (trap) 1.4, 1.5, 2.3, 5.4, 6.4 · bump allocation 8.8 · bytes, strings counted in 2.3

C

C, calling 9.5 · C, membrane with 9.5, 9.6 · C, where it wins 26.5 · cancellation 10.4, 14.2 · capabilities, package 24.3, 24.4 · channels 12.1, 12.2 · channels, when they are the wrong queue 12.3 · Cell, see pool · closures 4.2 · combinators 5.2 · comptime 18.1, 18.2, 18.3, 18.4 · comptime, what it refuses 18.4 · console blocks, how to read them, Notation · covenant, no build scripts 24.1, 24.2 · cycles, between modules 22.2 · cycles, in a region 8.4

D

deadlock (trap) 10.2 · defer 4.3 · determinism, of a seeded run 17.2, 30.5 · diagnostics, how to read them, Notation, Appendix C · directory = module 22.1 · div-zero (trap) 3.3

E

else, else |err| 6.2 · env_args() 26.5, 30.1 · errdefer 6.3 · error kernel 15.2 · error rows 6.1 · escape hatch, the three rings 9.1 · exclusivity 7.4, 7.5 · exclusivity (trap) 7.5 · exercises, how they are numbered, Notation · exhaustiveness 3.4 · exit codes 1.5, Notation · expressions, everything is one 3.2 · export hash 22.2

E0201 1.5, 4.1, 12.4, 14.1 · E0202 1.5 · E0301 10.1 · E0302 22.1 · E0303 22.2 · E0304 22.1 · E0305 22.1 · E0401 3.2, 4.1 · E0410 3.1 · E0412 18.3 · E0501 5.3 · E0602 26.4, 26.5 · E0701 18.4, 24.2 · E0702 18.4 · E0703 18.4 · E0704 18.4 · E0705 18.1 · E0706 18.1 · E0707 18.3 · E0709 18.4 · E0710 18.1, 18.2, 22.3 · E0801 3.4 · E1001 3.1, 7.1, 7.2, 7.6, 7.7, 9.8 · E1002 7.5 · E1005 8.3 · E1006 8.5, 8.7 · E1007 7.4 · E1008 7.5 · E1010 8.2, 8.4, 9.8 · E1011 8.6 · E1012 8.5, 8.8, 30.4, 30.5 · E1101 13.2 · E1102 13.2 · E1301 9.2 · E1302 9.2, 9.5, 32.2 · E1303 9.7, 32.3 · E1305 9.4 · E1401 9.3 · E1503 24.2 · E1504 24.3 · E1506 23.3

F

f-strings 2.1, 18.3 · fields, granularity of 7.5 · format specs 2.1, 18.3 · freeze 8.5, 16.2, 30.4 · functions, as values 4.2 · functions, signatures of 4.1

G

generics 5.3 · generics, errors at the definition site 5.3 · Go, compared 6.2, 10.2, 11.2 · grammar, the whole surface, Appendix A

H

handles 8.4, 8.7 · hardening, by refactor 6.4 · histogram, the wordcount’s 6.5

I

imm 8.5, 16.2, 30.4 · #include-grade C 9.5 · index (collection), traps 5.4 · interfaces, extracting one 22.2 · interpolation 2.1 · wolf interface 22.2

J

join, at a scope’s brace 10.1

K

K&R, the twins after it 26.1, 27.1, 28.1, 32.1

L

let 3.1 · line counts, how they are measured 26.3, 28.5, 30.4, 32.3 · link 15.1 · List 5.1 · lockfile, see wolf.sum

M

mailboxes 14.3 · main, what it returns 1.5, 6.3 · Map 5.1, 5.4 · match 3.4 · match, on a dispatch byte 27.4 · milestones, the solo’s 31.2 · modules 22.1, 22.2, 22.3 · monitors 15.1 · moves 3.1, 7.1, 7.2 · mut 7.4, 7.5

N

no life before main 22.3 · noalias, and what mut compiles to 7.7 · notation, the seven dialects, Notation

O

oracle, the UB checker 9.3 · overflow 3.3 · overflow (trap) 3.3 · ownership 7.1, 7.2

P

packages 23.1 · parallelism, and one job divided 13.2, 30.2 · pool 8.4, 8.7 · procs 14.1, 14.2, 14.3 · profiles, and what traps in them 3.3 · provenance 9.3

R

raw tier 9.2 · region (block form) 8.2 · region-fault (trap) 8.3, 8.5, 8.6 · regions, as values 8.3 · regions, transferred between procs 16.1 · REPL 1.4 · rings, the three 9.1 · rows, error 6.1 · Rust, compared 7.6, 16.3 · Ritchie’s state machine 26.2

S

scheduler, the deterministic one 17.2 · schedules, replaying 17.2, 30.5 · scopes 10.1 · scopes, as values 11.1 · scripts, running .lu files 1.3 · seeds 12.2, 17.2, 30.5 · select 12.2 · Set 5.1 · shared 8.7 · shards 30.1 · slices 2.3, 2.5 · solutions, where they are, Solutions · spawning 10.1, 11.1 · specification, citing it, Appendix D · stale-handle (trap) 8.7 · strings 2.1, 2.2, 2.3 · supervision 15.2, 15.3 · sync 12.4

T

tasks 10.1 · task tree 10.1, 11.3 · take 7.2 · traps 3.3, Appendix B · trusted code 9.7 · tuples 5.1 · wolf test 18.1

U

ub (trap) 9.4 · undefined behavior 9.3, 9.4 · unsafe blocks 9.2 · use-after-move (trap) 3.1, 7.1, 7.2, 12.1

V

var 3.1 · views 2.5 · view sets 7.5

W

when (a, b) 12.4 · witnesses, comptime 18.1, 22.3 · wolf add 23.1 · wolf build 1.2, 1.5 · wolf run 1.2, 1.3 · wolf tree 23.1 · wolf why 23.1 · wolf.pkg 23.1 · wolf.sum 23.3 · wordcount, the capstone 6.5 · words, iterating 2.4 · wrapping[i32] 3.3

W0603 27.5 · W1003 7.2 · W1101 13.2

Z

zero-copy, what wolf loses and what it does instead 7.6