| ofs | hex dump | ascii |
|---|
| 0000 | 50 4b 03 04 14 00 00 00 00 00 00 00 21 52 6f 61 ab 2c 14 00 00 00 14 00 00 00 08 00 00 00 6d 69 | PK..........!Roa.,............mi |
| 0020 | 6d 65 74 79 70 65 61 70 70 6c 69 63 61 74 69 6f 6e 2f 65 70 75 62 2b 7a 69 70 50 4b 03 04 14 00 | metypeapplication/epub+zipPK.... |
| 0040 | 00 00 00 00 00 00 21 52 6f 92 d0 0a fc 00 00 00 fc 00 00 00 16 00 00 00 4d 45 54 41 2d 49 4e 46 | ......!Ro...............META-INF |
| 0060 | 2f 63 6f 6e 74 61 69 6e 65 72 2e 78 6d 6c 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 2e 30 | /container.xml<?xml.version="1.0 |
| 0080 | 22 20 65 6e 63 6f 64 69 6e 67 3d 22 75 74 66 2d 38 22 3f 3e 0a 3c 63 6f 6e 74 61 69 6e 65 72 20 | ".encoding="utf-8"?>.<container. |
| 00a0 | 76 65 72 73 69 6f 6e 3d 22 31 2e 30 22 20 78 6d 6c 6e 73 3d 22 75 72 6e 3a 6f 61 73 69 73 3a 6e | version="1.0".xmlns="urn:oasis:n |
| 00c0 | 61 6d 65 73 3a 74 63 3a 6f 70 65 6e 64 6f 63 75 6d 65 6e 74 3a 78 6d 6c 6e 73 3a 63 6f 6e 74 61 | ames:tc:opendocument:xmlns:conta |
| 00e0 | 69 6e 65 72 22 3e 0a 20 20 3c 72 6f 6f 74 66 69 6c 65 73 3e 0a 20 20 20 20 3c 72 6f 6f 74 66 69 | iner">...<rootfiles>.....<rootfi |
| 0100 | 6c 65 20 66 75 6c 6c 2d 70 61 74 68 3d 22 4f 45 42 50 53 2f 63 6f 6e 74 65 6e 74 2e 6f 70 66 22 | le.full-path="OEBPS/content.opf" |
| 0120 | 20 6d 65 64 69 61 2d 74 79 70 65 3d 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6f 65 62 70 73 2d 70 | .media-type="application/oebps-p |
| 0140 | 61 63 6b 61 67 65 2b 78 6d 6c 22 2f 3e 0a 20 20 3c 2f 72 6f 6f 74 66 69 6c 65 73 3e 0a 3c 2f 63 | ackage+xml"/>...</rootfiles>.</c |
| 0160 | 6f 6e 74 61 69 6e 65 72 3e 0a 50 4b 03 04 14 00 00 00 00 00 00 00 21 52 f7 75 ad 9d a7 02 00 00 | ontainer>.PK..........!R.u...... |
| 0180 | a7 02 00 00 11 00 00 00 4f 45 42 50 53 2f 63 6f 6e 74 65 6e 74 2e 6f 70 66 3c 3f 78 6d 6c 20 76 | ........OEBPS/content.opf<?xml.v |
| 01a0 | 65 72 73 69 6f 6e 3d 22 31 2e 30 22 20 65 6e 63 6f 64 69 6e 67 3d 22 75 74 66 2d 38 22 3f 3e 0a | ersion="1.0".encoding="utf-8"?>. |
| 01c0 | 3c 70 61 63 6b 61 67 65 20 78 6d 6c 6e 73 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 69 64 70 66 2e | <package.xmlns="http://www.idpf. |
| 01e0 | 6f 72 67 2f 32 30 30 37 2f 6f 70 66 22 20 76 65 72 73 69 6f 6e 3d 22 33 2e 30 22 20 75 6e 69 71 | org/2007/opf".version="3.0".uniq |
| 0200 | 75 65 2d 69 64 65 6e 74 69 66 69 65 72 3d 22 70 75 62 2d 69 64 22 3e 0a 20 20 3c 6d 65 74 61 64 | ue-identifier="pub-id">...<metad |
| 0220 | 61 74 61 20 78 6d 6c 6e 73 3a 64 63 3d 22 68 74 74 70 3a 2f 2f 70 75 72 6c 2e 6f 72 67 2f 64 63 | ata.xmlns:dc="http://purl.org/dc |
| 0240 | 2f 65 6c 65 6d 65 6e 74 73 2f 31 2e 31 2f 22 3e 0a 20 20 20 20 3c 64 63 3a 69 64 65 6e 74 69 66 | /elements/1.1/">.....<dc:identif |
| 0260 | 69 65 72 20 69 64 3d 22 70 75 62 2d 69 64 22 3e 75 72 6e 3a 7a 69 67 6c 61 6e 67 2d 64 6f 63 73 | ier.id="pub-id">urn:ziglang-docs |
| 0280 | 3a 30 2e 31 2e 31 3c 2f 64 63 3a 69 64 65 6e 74 69 66 69 65 72 3e 0a 20 20 20 20 3c 64 63 3a 74 | :0.1.1</dc:identifier>.....<dc:t |
| 02a0 | 69 74 6c 65 3e 5a 69 67 20 4c 61 6e 67 75 61 67 65 20 52 65 66 65 72 65 6e 63 65 20 28 30 2e 31 | itle>Zig.Language.Reference.(0.1 |
| 02c0 | 2e 31 29 3c 2f 64 63 3a 74 69 74 6c 65 3e 0a 20 20 20 20 3c 64 63 3a 6c 61 6e 67 75 61 67 65 3e | .1)</dc:title>.....<dc:language> |
| 02e0 | 65 6e 3c 2f 64 63 3a 6c 61 6e 67 75 61 67 65 3e 0a 20 20 20 20 3c 6d 65 74 61 20 70 72 6f 70 65 | en</dc:language>.....<meta.prope |
| 0300 | 72 74 79 3d 22 64 63 74 65 72 6d 73 3a 6d 6f 64 69 66 69 65 64 22 3e 32 30 32 31 2d 30 31 2d 30 | rty="dcterms:modified">2021-01-0 |
| 0320 | 31 54 30 30 3a 30 30 3a 30 30 5a 3c 2f 6d 65 74 61 3e 0a 20 20 3c 2f 6d 65 74 61 64 61 74 61 3e | 1T00:00:00Z</meta>...</metadata> |
| 0340 | 0a 20 20 3c 6d 61 6e 69 66 65 73 74 3e 0a 20 20 20 20 3c 69 74 65 6d 20 69 64 3d 22 6e 61 76 22 | ...<manifest>.....<item.id="nav" |
| 0360 | 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 22 20 6d 65 64 69 61 2d 74 79 70 65 3d 22 61 70 | .href="nav.xhtml".media-type="ap |
| 0380 | 70 6c 69 63 61 74 69 6f 6e 2f 78 68 74 6d 6c 2b 78 6d 6c 22 20 70 72 6f 70 65 72 74 69 65 73 3d | plication/xhtml+xml".properties= |
| 03a0 | 22 6e 61 76 22 2f 3e 0a 20 20 20 20 3c 69 74 65 6d 20 69 64 3d 22 69 6e 64 65 78 22 20 68 72 65 | "nav"/>.....<item.id="index".hre |
| 03c0 | 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 22 20 6d 65 64 69 61 2d 74 79 70 65 3d 22 61 70 70 6c | f="index.xhtml".media-type="appl |
| 03e0 | 69 63 61 74 69 6f 6e 2f 78 68 74 6d 6c 2b 78 6d 6c 22 2f 3e 0a 20 20 3c 2f 6d 61 6e 69 66 65 73 | ication/xhtml+xml"/>...</manifes |
| 0400 | 74 3e 0a 20 20 3c 73 70 69 6e 65 3e 0a 20 20 20 20 3c 69 74 65 6d 72 65 66 20 69 64 72 65 66 3d | t>...<spine>.....<itemref.idref= |
| 0420 | 22 69 6e 64 65 78 22 2f 3e 0a 20 20 3c 2f 73 70 69 6e 65 3e 0a 3c 2f 70 61 63 6b 61 67 65 3e 0a | "index"/>...</spine>.</package>. |
| 0440 | 50 4b 03 04 14 00 00 00 00 00 00 00 21 52 73 54 30 2e 86 01 00 00 86 01 00 00 0f 00 00 00 4f 45 | PK..........!RsT0.............OE |
| 0460 | 42 50 53 2f 6e 61 76 2e 78 68 74 6d 6c 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 2e 30 22 | BPS/nav.xhtml<?xml.version="1.0" |
| 0480 | 20 65 6e 63 6f 64 69 6e 67 3d 22 75 74 66 2d 38 22 3f 3e 0a 3c 68 74 6d 6c 20 78 6d 6c 6e 73 3d | .encoding="utf-8"?>.<html.xmlns= |
| 04a0 | 22 68 74 74 70 3a 2f 2f 77 77 77 2e 77 33 2e 6f 72 67 2f 31 39 39 39 2f 78 68 74 6d 6c 22 20 78 | "http://www.w3.org/1999/xhtml".x |
| 04c0 | 6d 6c 6e 73 3a 65 70 75 62 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 69 64 70 66 2e 6f 72 67 2f 32 | mlns:epub="http://www.idpf.org/2 |
| 04e0 | 30 30 37 2f 6f 70 73 22 20 6c 61 6e 67 3d 22 65 6e 22 3e 0a 20 20 3c 68 65 61 64 3e 3c 74 69 74 | 007/ops".lang="en">...<head><tit |
| 0500 | 6c 65 3e 5a 69 67 20 4c 61 6e 67 75 61 67 65 20 52 65 66 65 72 65 6e 63 65 20 28 30 2e 31 2e 31 | le>Zig.Language.Reference.(0.1.1 |
| 0520 | 29 3c 2f 74 69 74 6c 65 3e 3c 2f 68 65 61 64 3e 0a 20 20 3c 62 6f 64 79 3e 0a 20 20 20 20 3c 6e | )</title></head>...<body>.....<n |
| 0540 | 61 76 20 65 70 75 62 3a 74 79 70 65 3d 22 74 6f 63 22 20 69 64 3d 22 74 6f 63 22 3e 0a 20 20 20 | av.epub:type="toc".id="toc">.... |
| 0560 | 20 20 20 3c 68 31 3e 43 6f 6e 74 65 6e 74 73 3c 2f 68 31 3e 0a 20 20 20 20 20 20 3c 6f 6c 3e 0a | ...<h1>Contents</h1>.......<ol>. |
| 0580 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c | ........<li><a.href="index.xhtml |
| 05a0 | 22 3e 5a 69 67 20 4c 61 6e 67 75 61 67 65 20 52 65 66 65 72 65 6e 63 65 20 28 30 2e 31 2e 31 29 | ">Zig.Language.Reference.(0.1.1) |
| 05c0 | 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 6f 6c 3e 0a 20 20 20 20 3c 2f 6e 61 76 3e | </a></li>.......</ol>.....</nav> |
| 05e0 | 0a 20 20 3c 2f 62 6f 64 79 3e 0a 3c 2f 68 74 6d 6c 3e 0a 50 4b 03 04 14 00 00 00 00 00 00 00 21 | ...</body>.</html>.PK..........! |
| 0600 | 52 99 93 6f 87 10 0d 03 00 10 0d 03 00 11 00 00 00 4f 45 42 50 53 2f 69 6e 64 65 78 2e 78 68 74 | R..o.............OEBPS/index.xht |
| 0620 | 6d 6c 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 2e 30 22 20 65 6e 63 6f 64 69 6e 67 3d 22 | ml<?xml.version="1.0".encoding=" |
| 0640 | 75 74 66 2d 38 22 3f 3e 0a 0a 3c 68 74 6d 6c 20 78 6d 6c 6e 73 3d 22 68 74 74 70 3a 2f 2f 77 77 | utf-8"?>..<html.xmlns="http://ww |
| 0660 | 77 2e 77 33 2e 6f 72 67 2f 31 39 39 39 2f 78 68 74 6d 6c 22 3e 0a 20 20 3c 68 65 61 64 3e 0a 20 | w.w3.org/1999/xhtml">...<head>.. |
| 0680 | 20 20 20 3c 6d 65 74 61 20 63 68 61 72 73 65 74 3d 22 75 74 66 2d 38 22 2f 3e 0a 20 20 20 20 3c | ...<meta.charset="utf-8"/>.....< |
| 06a0 | 74 69 74 6c 65 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 2d 20 54 68 65 20 5a 69 67 20 50 72 | title>Documentation.-.The.Zig.Pr |
| 06c0 | 6f 67 72 61 6d 6d 69 6e 67 20 4c 61 6e 67 75 61 67 65 3c 2f 74 69 74 6c 65 3e 0a 20 20 20 20 3c | ogramming.Language</title>.....< |
| 06e0 | 6c 69 6e 6b 20 72 65 6c 3d 22 73 74 79 6c 65 73 68 65 65 74 22 20 74 79 70 65 3d 22 74 65 78 74 | link.rel="stylesheet".type="text |
| 0700 | 2f 63 73 73 22 20 68 72 65 66 3d 22 68 69 67 68 6c 69 67 68 74 2f 73 74 79 6c 65 73 2f 64 65 66 | /css".href="highlight/styles/def |
| 0720 | 61 75 6c 74 2e 63 73 73 22 2f 3e 0a 20 20 20 20 3c 73 74 79 6c 65 20 74 79 70 65 3d 22 74 65 78 | ault.css"/>.....<style.type="tex |
| 0740 | 74 2f 63 73 73 22 3e 0a 20 20 20 20 20 20 23 6e 61 76 20 7b 0a 20 20 20 20 20 20 20 20 77 69 64 | t/css">.......#nav.{.........wid |
| 0760 | 74 68 3a 20 32 30 65 6d 3b 0a 20 20 20 20 20 20 20 20 68 65 69 67 68 74 3a 20 31 30 30 25 3b 0a | th:.20em;.........height:.100%;. |
| 0780 | 20 20 20 20 20 20 20 20 6f 76 65 72 66 6c 6f 77 2d 79 3a 20 73 63 72 6f 6c 6c 3b 0a 20 20 20 20 | ........overflow-y:.scroll;..... |
| 07a0 | 20 20 20 20 70 6f 73 69 74 69 6f 6e 3a 20 66 69 78 65 64 3b 0a 20 20 20 20 20 20 20 20 6c 65 66 | ....position:.fixed;.........lef |
| 07c0 | 74 3a 20 30 3b 0a 20 20 20 20 20 20 20 20 74 6f 70 3a 20 32 65 6d 3b 0a 20 20 20 20 20 20 7d 0a | t:.0;.........top:.2em;.......}. |
| 07e0 | 20 20 20 20 20 20 23 63 6f 6e 74 65 6e 74 73 20 7b 0a 20 20 20 20 20 20 20 20 6d 61 78 2d 77 69 | ......#contents.{.........max-wi |
| 0800 | 64 74 68 3a 20 35 30 65 6d 3b 0a 20 20 20 20 20 20 20 20 70 61 64 64 69 6e 67 2d 6c 65 66 74 3a | dth:.50em;.........padding-left: |
| 0820 | 20 32 32 65 6d 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 74 61 62 6c 65 2c 20 74 68 2c 20 | .22em;.......}.......table,.th,. |
| 0840 | 74 64 20 7b 0a 20 20 20 20 20 20 20 20 62 6f 72 64 65 72 2d 63 6f 6c 6c 61 70 73 65 3a 20 63 6f | td.{.........border-collapse:.co |
| 0860 | 6c 6c 61 70 73 65 3b 0a 20 20 20 20 20 20 20 20 62 6f 72 64 65 72 3a 20 31 70 78 20 73 6f 6c 69 | llapse;.........border:.1px.soli |
| 0880 | 64 20 67 72 65 79 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 74 68 2c 20 74 64 20 7b 0a 20 | d.grey;.......}.......th,.td.{.. |
| 08a0 | 20 20 20 20 20 20 20 70 61 64 64 69 6e 67 3a 20 30 2e 31 65 6d 3b 0a 20 20 20 20 20 20 7d 0a 20 | .......padding:.0.1em;.......}.. |
| 08c0 | 20 20 20 3c 2f 73 74 79 6c 65 3e 0a 20 20 3c 2f 68 65 61 64 3e 0a 20 20 3c 62 6f 64 79 3e 0a 20 | ...</style>...</head>...<body>.. |
| 08e0 | 20 20 20 30 2e 31 2e 31 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c | ...0.1.1.|.<a.href="https://zigl |
| 0900 | 61 6e 67 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 32 2e 30 2f 22 3e 30 2e | ang.org/documentation/0.2.0/">0. |
| 0920 | 32 2e 30 3c 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 | 2.0</a>.|.<a.href="https://zigla |
| 0940 | 6e 67 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 33 2e 30 2f 22 3e 30 2e 33 | ng.org/documentation/0.3.0/">0.3 |
| 0960 | 2e 30 3c 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e | .0</a>.|.<a.href="https://ziglan |
| 0980 | 67 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 34 2e 30 2f 22 3e 30 2e 34 2e | g.org/documentation/0.4.0/">0.4. |
| 09a0 | 30 3c 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 | 0</a>.|.<a.href="https://ziglang |
| 09c0 | 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 35 2e 30 2f 22 3e 30 2e 35 2e 30 | .org/documentation/0.5.0/">0.5.0 |
| 09e0 | 3c 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e | </a>.|.<a.href="https://ziglang. |
| 0a00 | 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 36 2e 30 2f 22 3e 30 2e 36 2e 30 3c | org/documentation/0.6.0/">0.6.0< |
| 0a20 | 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f | /a>.|.<a.href="https://ziglang.o |
| 0a40 | 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 37 2e 31 2f 22 3e 30 2e 37 2e 31 3c 2f | rg/documentation/0.7.1/">0.7.1</ |
| 0a60 | 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 | a>.|.<a.href="https://ziglang.or |
| 0a80 | 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 38 2e 31 2f 22 3e 30 2e 38 2e 31 3c 2f 61 | g/documentation/0.8.1/">0.8.1</a |
| 0aa0 | 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 | >.|.<a.href="https://ziglang.org |
| 0ac0 | 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 39 2e 31 2f 22 3e 30 2e 39 2e 31 3c 2f 61 3e | /documentation/0.9.1/">0.9.1</a> |
| 0ae0 | 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f | .|.<a.href="https://ziglang.org/ |
| 0b00 | 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 31 30 2e 31 2f 22 3e 30 2e 31 30 2e 31 3c 2f 61 | documentation/0.10.1/">0.10.1</a |
| 0b20 | 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 | >.|.<a.href="https://ziglang.org |
| 0b40 | 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 31 31 2e 30 2f 22 3e 30 2e 31 31 2e 30 3c 2f | /documentation/0.11.0/">0.11.0</ |
| 0b60 | 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 | a>.|.<a.href="https://ziglang.or |
| 0b80 | 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 31 32 2e 31 2f 22 3e 30 2e 31 32 2e 31 3c | g/documentation/0.12.1/">0.12.1< |
| 0ba0 | 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f | /a>.|.<a.href="https://ziglang.o |
| 0bc0 | 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 31 33 2e 30 2f 22 3e 30 2e 31 33 2e 30 | rg/documentation/0.13.0/">0.13.0 |
| 0be0 | 3c 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e | </a>.|.<a.href="https://ziglang. |
| 0c00 | 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 31 34 2e 31 2f 22 3e 30 2e 31 34 2e | org/documentation/0.14.1/">0.14. |
| 0c20 | 31 3c 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 | 1</a>.|.<a.href="https://ziglang |
| 0c40 | 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 31 35 2e 32 2f 22 3e 30 2e 31 35 | .org/documentation/0.15.2/">0.15 |
| 0c60 | 2e 32 3c 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e | .2</a>.|.<a.href="https://ziglan |
| 0c80 | 67 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 31 36 2e 30 2f 22 3e 30 2e 31 | g.org/documentation/0.16.0/">0.1 |
| 0ca0 | 36 2e 30 3c 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 | 6.0</a>.|.<a.href="https://zigla |
| 0cc0 | 6e 67 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 6d 61 73 74 65 72 2f 22 3e 6d 61 | ng.org/documentation/master/">ma |
| 0ce0 | 73 74 65 72 3c 2f 61 3e 0a 20 20 20 20 3c 64 69 76 20 69 64 3d 22 6e 61 76 22 3e 0a 20 20 20 20 | ster</a>.....<div.id="nav">..... |
| 0d00 | 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 68 65 6c | ..<ul>.........<li><a.href="#hel |
| 0d20 | 6c 6f 2d 77 6f 72 6c 64 22 3e 48 65 6c 6c 6f 20 57 6f 72 6c 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 | lo-world">Hello.World</a></li>.. |
| 0d40 | 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 76 61 6c 75 65 73 22 3e 56 61 6c | .......<li><a.href="#values">Val |
| 0d60 | 75 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 | ues</a></li>...........<ul>..... |
| 0d80 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 70 72 69 6d 69 74 69 76 65 2d | ........<li><a.href="#primitive- |
| 0da0 | 74 79 70 65 73 22 3e 50 72 69 6d 69 74 69 76 65 20 54 79 70 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a | types">Primitive.Types</a></li>. |
| 0dc0 | 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 70 72 69 6d 69 74 | ............<li><a.href="#primit |
| 0de0 | 69 76 65 2d 76 61 6c 75 65 73 22 3e 50 72 69 6d 69 74 69 76 65 20 56 61 6c 75 65 73 3c 2f 61 3e | ive-values">Primitive.Values</a> |
| 0e00 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | </li>.............<li><a.href="# |
| 0e20 | 73 74 72 69 6e 67 2d 6c 69 74 65 72 61 6c 73 22 3e 53 74 72 69 6e 67 20 4c 69 74 65 72 61 6c 73 | string-literals">String.Literals |
| 0e40 | 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 | </a>...............<ul>......... |
| 0e60 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 74 72 69 6e 67 2d 6c 69 74 65 72 | ......<li><a.href="#string-liter |
| 0e80 | 61 6c 2d 65 73 63 61 70 65 73 22 3e 45 73 63 61 70 65 20 53 65 71 75 65 6e 63 65 73 3c 2f 61 3e | al-escapes">Escape.Sequences</a> |
| 0ea0 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d | </li>...............<li><a.href= |
| 0ec0 | 22 23 6d 75 6c 74 69 6c 69 6e 65 2d 73 74 72 69 6e 67 2d 6c 69 74 65 72 61 6c 73 22 3e 4d 75 6c | "#multiline-string-literals">Mul |
| 0ee0 | 74 69 6c 69 6e 65 20 53 74 72 69 6e 67 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a | tiline.String.Literals</a></li>. |
| 0f00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ..............</ul>............. |
| 0f20 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | </li>.............<li><a.href="# |
| 0f40 | 76 61 6c 75 65 73 2d 61 73 73 69 67 6e 6d 65 6e 74 22 3e 41 73 73 69 67 6e 6d 65 6e 74 3c 2f 61 | values-assignment">Assignment</a |
| 0f60 | 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c | ></li>...........</ul>.........< |
| 0f80 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 65 67 | /li>.........<li><a.href="#integ |
| 0fa0 | 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e | ers">Integers</a>...........<ul> |
| 0fc0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 65 67 | .............<li><a.href="#integ |
| 0fe0 | 65 72 2d 6c 69 74 65 72 61 6c 73 22 3e 49 6e 74 65 67 65 72 20 4c 69 74 65 72 61 6c 73 3c 2f 61 | er-literals">Integer.Literals</a |
| 1000 | 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 | ></li>.............<li><a.href=" |
| 1020 | 23 72 75 6e 74 69 6d 65 2d 69 6e 74 65 67 65 72 2d 76 61 6c 75 65 73 22 3e 52 75 6e 74 69 6d 65 | #runtime-integer-values">Runtime |
| 1040 | 20 49 6e 74 65 67 65 72 20 56 61 6c 75 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | .Integer.Values</a></li>........ |
| 1060 | 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c | ...</ul>.........</li>.........< |
| 1080 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 0a | li><a.href="#floats">Floats</a>. |
| 10a0 | 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c | ..........<ul>.............<li>< |
| 10c0 | 61 20 68 72 65 66 3d 22 23 66 6c 6f 61 74 2d 6c 69 74 65 72 61 6c 73 22 3e 46 6c 6f 61 74 20 4c | a.href="#float-literals">Float.L |
| 10e0 | 69 74 65 72 61 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 | iterals</a></li>.............<li |
| 1100 | 3e 3c 61 20 68 72 65 66 3d 22 23 66 6c 6f 61 74 2d 6f 70 65 72 61 74 69 6f 6e 73 22 3e 46 6c 6f | ><a.href="#float-operations">Flo |
| 1120 | 61 74 69 6e 67 20 50 6f 69 6e 74 20 4f 70 65 72 61 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a | ating.Point.Operations</a></li>. |
| 1140 | 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 | ..........</ul>.........</li>... |
| 1160 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6f 70 65 72 61 74 6f 72 73 22 3e 4f | ......<li><a.href="#operators">O |
| 1180 | 70 65 72 61 74 6f 72 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 | perators</a>...........<ul>..... |
| 11a0 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6f 70 65 72 61 74 6f 72 73 2d | ........<li><a.href="#operators- |
| 11c0 | 74 61 62 6c 65 22 3e 54 61 62 6c 65 20 6f 66 20 4f 70 65 72 61 74 6f 72 73 3c 2f 61 3e 3c 2f 6c | table">Table.of.Operators</a></l |
| 11e0 | 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6f 70 65 | i>.............<li><a.href="#ope |
| 1200 | 72 61 74 6f 72 73 2d 70 72 65 63 65 64 65 6e 63 65 22 3e 50 72 65 63 65 64 65 6e 63 65 3c 2f 61 | rators-precedence">Precedence</a |
| 1220 | 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c | ></li>...........</ul>.........< |
| 1240 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 61 72 72 61 79 | /li>.........<li><a.href="#array |
| 1260 | 73 22 3e 41 72 72 61 79 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c | s">Arrays</a></li>.........<li>< |
| 1280 | 61 20 68 72 65 66 3d 22 23 70 6f 69 6e 74 65 72 73 22 3e 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 0a | a.href="#pointers">Pointers</a>. |
| 12a0 | 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c | ..........<ul>.............<li>< |
| 12c0 | 61 20 68 72 65 66 3d 22 23 61 6c 69 67 6e 6d 65 6e 74 22 3e 41 6c 69 67 6e 6d 65 6e 74 3c 2f 61 | a.href="#alignment">Alignment</a |
| 12e0 | 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 | ></li>.............<li><a.href=" |
| 1300 | 23 74 79 70 65 2d 62 61 73 65 64 2d 61 6c 69 61 73 2d 61 6e 61 6c 79 73 69 73 22 3e 54 79 70 65 | #type-based-alias-analysis">Type |
| 1320 | 20 42 61 73 65 64 20 41 6c 69 61 73 20 41 6e 61 6c 79 73 69 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 | .Based.Alias.Analysis</a></li>.. |
| 1340 | 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 | .........</ul>.........</li>.... |
| 1360 | 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 6c 69 63 65 73 22 3e 53 6c 69 63 65 | .....<li><a.href="#slices">Slice |
| 1380 | 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 | s</a></li>.........<li><a.href=" |
| 13a0 | 23 73 74 72 75 63 74 22 3e 73 74 72 75 63 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | #struct">struct</a></li>........ |
| 13c0 | 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 6e 75 6d 22 3e 65 6e 75 6d 3c 2f 61 3e 3c 2f 6c | .<li><a.href="#enum">enum</a></l |
| 13e0 | 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 77 69 74 63 68 22 | i>.........<li><a.href="#switch" |
| 1400 | 3e 73 77 69 74 63 68 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 | >switch</a></li>.........<li><a. |
| 1420 | 68 72 65 66 3d 22 23 77 68 69 6c 65 22 3e 77 68 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 | href="#while">while</a></li>.... |
| 1440 | 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 6f 72 22 3e 66 6f 72 3c 2f 61 3e 3c | .....<li><a.href="#for">for</a>< |
| 1460 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 66 22 3e 69 | /li>.........<li><a.href="#if">i |
| 1480 | 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 | f</a></li>.........<li><a.href=" |
| 14a0 | 23 67 6f 74 6f 22 3e 67 6f 74 6f 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 | #goto">goto</a></li>.........<li |
| 14c0 | 3e 3c 61 20 68 72 65 66 3d 22 23 64 65 66 65 72 22 3e 64 65 66 65 72 3c 2f 61 3e 3c 2f 6c 69 3e | ><a.href="#defer">defer</a></li> |
| 14e0 | 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 72 65 61 63 68 61 62 | .........<li><a.href="#unreachab |
| 1500 | 6c 65 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 75 | le">unreachable</a>...........<u |
| 1520 | 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 72 | l>.............<li><a.href="#unr |
| 1540 | 65 61 63 68 61 62 6c 65 2d 62 61 73 69 63 73 22 3e 42 61 73 69 63 73 3c 2f 61 3e 3c 2f 6c 69 3e | eachable-basics">Basics</a></li> |
| 1560 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 72 65 61 | .............<li><a.href="#unrea |
| 1580 | 63 68 61 62 6c 65 2d 63 6f 6d 70 74 69 6d 65 22 3e 41 74 20 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 | chable-comptime">At.Compile-Time |
| 15a0 | 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 | </a></li>...........</ul>....... |
| 15c0 | 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6e 6f | ..</li>.........<li><a.href="#no |
| 15e0 | 72 65 74 75 72 6e 22 3e 6e 6f 72 65 74 75 72 6e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | return">noreturn</a></li>....... |
| 1600 | 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 75 6e 63 74 69 6f 6e 73 22 3e 46 75 6e 63 74 | ..<li><a.href="#functions">Funct |
| 1620 | 69 6f 6e 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 | ions</a>...........<ul>......... |
| 1640 | 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 75 6e 63 74 69 6f 6e 73 2d 62 79 2d 76 | ....<li><a.href="#functions-by-v |
| 1660 | 61 6c 2d 70 61 72 61 6d 73 22 3e 50 61 73 73 2d 62 79 2d 76 61 6c 20 50 61 72 61 6d 65 74 65 72 | al-params">Pass-by-val.Parameter |
| 1680 | 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 2f | s</a>...........</ul>.........</ |
| 16a0 | 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 72 72 6f 72 73 | li>.........<li><a.href="#errors |
| 16c0 | 22 3e 45 72 72 6f 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 | ">Errors</a></li>.........<li><a |
| 16e0 | 20 68 72 65 66 3d 22 23 6e 75 6c 6c 61 62 6c 65 73 22 3e 4e 75 6c 6c 61 62 6c 65 73 3c 2f 61 3e | .href="#nullables">Nullables</a> |
| 1700 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 61 73 74 | </li>.........<li><a.href="#cast |
| 1720 | 69 6e 67 22 3e 43 61 73 74 69 6e 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c | ing">Casting</a></li>.........<l |
| 1740 | 69 3e 3c 61 20 68 72 65 66 3d 22 23 76 6f 69 64 22 3e 76 6f 69 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a | i><a.href="#void">void</a></li>. |
| 1760 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 74 68 69 73 22 3e 74 68 69 73 | ........<li><a.href="#this">this |
| 1780 | 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | </a></li>.........<li><a.href="# |
| 17a0 | 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 | comptime">comptime</a>.......... |
| 17c0 | 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | .<ul>.............<li><a.href="# |
| 17e0 | 69 6e 74 72 6f 64 75 63 69 6e 67 2d 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2d 63 6f 6e 63 65 70 74 | introducing-compile-time-concept |
| 1800 | 22 3e 49 6e 74 72 6f 64 75 63 69 6e 67 20 74 68 65 20 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 20 43 | ">Introducing.the.Compile-Time.C |
| 1820 | 6f 6e 63 65 70 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e | oncept</a></li>.............<ul> |
| 1840 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d | ...............<li><a.href="#com |
| 1860 | 70 69 6c 65 2d 74 69 6d 65 2d 70 61 72 61 6d 65 74 65 72 73 22 3e 43 6f 6d 70 69 6c 65 2d 74 69 | pile-time-parameters">Compile-ti |
| 1880 | 6d 65 20 70 61 72 61 6d 65 74 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 | me.parameters</a></li>.......... |
| 18a0 | 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2d | .....<li><a.href="#compile-time- |
| 18c0 | 76 61 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 76 61 72 69 61 62 6c 65 | variables">Compile-time.variable |
| 18e0 | 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 | s</a></li>...............<li><a. |
| 1900 | 68 72 65 66 3d 22 23 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2d 65 78 70 72 65 73 73 69 6f 6e 73 22 | href="#compile-time-expressions" |
| 1920 | 3e 43 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 65 78 70 72 65 73 73 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c | >Compile-time.expressions</a></l |
| 1940 | 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | i>.............</ul>............ |
| 1960 | 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 67 65 6e 65 72 69 63 2d 64 61 74 61 2d 73 74 72 75 | .<li><a.href="#generic-data-stru |
| 1980 | 63 74 75 72 65 73 22 3e 47 65 6e 65 72 69 63 20 44 61 74 61 20 53 74 72 75 63 74 75 72 65 73 3c | ctures">Generic.Data.Structures< |
| 19a0 | 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 | /a></li>.............<li><a.href |
| 19c0 | 3d 22 23 63 61 73 65 2d 73 74 75 64 79 2d 70 72 69 6e 74 66 22 3e 43 61 73 65 20 53 74 75 64 79 | ="#case-study-printf">Case.Study |
| 19e0 | 3a 20 70 72 69 6e 74 66 20 69 6e 20 5a 69 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | :.printf.in.Zig</a></li>........ |
| 1a00 | 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c | ...</ul>.........</li>.........< |
| 1a20 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 6c 69 6e 65 22 3e 69 6e 6c 69 6e 65 3c 2f 61 3e 3c | li><a.href="#inline">inline</a>< |
| 1a40 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 61 73 73 65 6d | /li>.........<li><a.href="#assem |
| 1a60 | 62 6c 79 22 3e 61 73 73 65 6d 62 6c 79 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c | bly">assembly</a></li>.........< |
| 1a80 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 61 74 6f 6d 69 63 73 22 3e 41 74 6f 6d 69 63 73 3c 2f 61 | li><a.href="#atomics">Atomics</a |
| 1aa0 | 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 | ></li>.........<li><a.href="#bui |
| 1ac0 | 6c 74 69 6e 2d 66 75 6e 63 74 69 6f 6e 73 22 3e 42 75 69 6c 74 69 6e 20 46 75 6e 63 74 69 6f 6e | ltin-functions">Builtin.Function |
| 1ae0 | 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | s</a>...........<ul>............ |
| 1b00 | 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 61 64 64 57 69 74 68 4f 76 | .<li><a.href="#builtin-addWithOv |
| 1b20 | 65 72 66 6c 6f 77 22 3e 40 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 3c 2f 6c 69 | erflow">@addWithOverflow</a></li |
| 1b40 | 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c | >.............<li><a.href="#buil |
| 1b60 | 74 69 6e 2d 61 6c 69 67 6e 43 61 73 74 22 3e 40 61 6c 69 67 6e 43 61 73 74 3c 2f 61 3e 3c 2f 6c | tin-alignCast">@alignCast</a></l |
| 1b80 | 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 | i>.............<li><a.href="#bui |
| 1ba0 | 6c 74 69 6e 2d 61 6c 69 67 6e 4f 66 22 3e 40 61 6c 69 67 6e 4f 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a | ltin-alignOf">@alignOf</a></li>. |
| 1bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 | ............<li><a.href="#builti |
| 1be0 | 6e 2d 62 69 74 43 61 73 74 22 3e 40 62 69 74 43 61 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 | n-bitCast">@bitCast</a></li>.... |
| 1c00 | 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 62 | .........<li><a.href="#builtin-b |
| 1c20 | 72 65 61 6b 70 6f 69 6e 74 22 3e 40 62 72 65 61 6b 70 6f 69 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a | reakpoint">@breakpoint</a></li>. |
| 1c40 | 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 | ............<li><a.href="#builti |
| 1c60 | 6e 2d 63 44 65 66 69 6e 65 22 3e 40 63 44 65 66 69 6e 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 | n-cDefine">@cDefine</a></li>.... |
| 1c80 | 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 63 | .........<li><a.href="#builtin-c |
| 1ca0 | 49 6d 70 6f 72 74 22 3e 40 63 49 6d 70 6f 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | Import">@cImport</a></li>....... |
| 1cc0 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 63 49 6e 63 | ......<li><a.href="#builtin-cInc |
| 1ce0 | 6c 75 64 65 22 3e 40 63 49 6e 63 6c 75 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | lude">@cInclude</a></li>........ |
| 1d00 | 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 63 55 6e 64 65 | .....<li><a.href="#builtin-cUnde |
| 1d20 | 66 22 3e 40 63 55 6e 64 65 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | f">@cUndef</a></li>............. |
| 1d40 | 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 63 61 6e 49 6d 70 6c 69 63 69 | <li><a.href="#builtin-canImplici |
| 1d60 | 74 43 61 73 74 22 3e 40 63 61 6e 49 6d 70 6c 69 63 69 74 43 61 73 74 3c 2f 61 3e 3c 2f 6c 69 3e | tCast">@canImplicitCast</a></li> |
| 1d80 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 | .............<li><a.href="#built |
| 1da0 | 69 6e 2d 63 6c 7a 22 3e 40 63 6c 7a 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 | in-clz">@clz</a></li>........... |
| 1dc0 | 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 63 6d 70 78 63 68 67 22 | ..<li><a.href="#builtin-cmpxchg" |
| 1de0 | 3e 40 63 6d 70 78 63 68 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c | >@cmpxchg</a></li>.............< |
| 1e00 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 63 6f 6d 70 69 6c 65 45 72 72 6f | li><a.href="#builtin-compileErro |
| 1e20 | 72 22 3e 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | r">@compileError</a></li>....... |
| 1e40 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 63 6f 6d 70 | ......<li><a.href="#builtin-comp |
| 1e60 | 69 6c 65 4c 6f 67 22 3e 40 63 6f 6d 70 69 6c 65 4c 6f 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 | ileLog">@compileLog</a></li>.... |
| 1e80 | 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 63 | .........<li><a.href="#builtin-c |
| 1ea0 | 74 7a 22 3e 40 63 74 7a 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c | tz">@ctz</a></li>.............<l |
| 1ec0 | 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 64 69 76 45 78 61 63 74 22 3e 40 64 | i><a.href="#builtin-divExact">@d |
| 1ee0 | 69 76 45 78 61 63 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 | ivExact</a></li>.............<li |
| 1f00 | 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 64 69 76 46 6c 6f 6f 72 22 3e 40 64 69 | ><a.href="#builtin-divFloor">@di |
| 1f20 | 76 46 6c 6f 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e | vFloor</a></li>.............<li> |
| 1f40 | 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 64 69 76 54 72 75 6e 63 22 3e 40 64 69 76 | <a.href="#builtin-divTrunc">@div |
| 1f60 | 54 72 75 6e 63 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c | Trunc</a></li>.............<li>< |
| 1f80 | 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 65 6d 62 65 64 46 69 6c 65 22 3e 40 65 6d 62 | a.href="#builtin-embedFile">@emb |
| 1fa0 | 65 64 46 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e | edFile</a></li>.............<li> |
| 1fc0 | 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 65 6e 75 6d 54 61 67 4e 61 6d 65 22 3e 40 | <a.href="#builtin-enumTagName">@ |
| 1fe0 | 65 6e 75 6d 54 61 67 4e 61 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | enumTagName</a></li>............ |
| 2000 | 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 65 72 72 6f 72 4e 61 6d 65 | .<li><a.href="#builtin-errorName |
| 2020 | 22 3e 40 65 72 72 6f 72 4e 61 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 | ">@errorName</a></li>........... |
| 2040 | 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 66 65 6e 63 65 22 3e 40 | ..<li><a.href="#builtin-fence">@ |
| 2060 | 66 65 6e 63 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c | fence</a></li>.............<li>< |
| 2080 | 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 66 69 65 6c 64 50 61 72 65 6e 74 50 74 72 22 | a.href="#builtin-fieldParentPtr" |
| 20a0 | 3e 40 66 69 65 6c 64 50 61 72 65 6e 74 50 74 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | >@fieldParentPtr</a></li>....... |
| 20c0 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 66 72 61 6d | ......<li><a.href="#builtin-fram |
| 20e0 | 65 41 64 64 72 65 73 73 22 3e 40 66 72 61 6d 65 41 64 64 72 65 73 73 3c 2f 61 3e 3c 2f 6c 69 3e | eAddress">@frameAddress</a></li> |
| 2100 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 | .............<li><a.href="#built |
| 2120 | 69 6e 2d 69 6d 70 6f 72 74 22 3e 40 69 6d 70 6f 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 | in-import">@import</a></li>..... |
| 2140 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 69 6e | ........<li><a.href="#builtin-in |
| 2160 | 6c 69 6e 65 43 61 6c 6c 22 3e 40 69 6e 6c 69 6e 65 43 61 6c 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 | lineCall">@inlineCall</a></li>.. |
| 2180 | 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e | ...........<li><a.href="#builtin |
| 21a0 | 2d 69 6e 74 54 6f 50 74 72 22 3e 40 69 6e 74 54 6f 50 74 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 | -intToPtr">@intToPtr</a></li>... |
| 21c0 | 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d | ..........<li><a.href="#builtin- |
| 21e0 | 49 6e 74 54 79 70 65 22 3e 40 49 6e 74 54 79 70 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | IntType">@IntType</a></li>...... |
| 2200 | 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 6d 61 78 | .......<li><a.href="#builtin-max |
| 2220 | 56 61 6c 75 65 22 3e 40 6d 61 78 56 61 6c 75 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | Value">@maxValue</a></li>....... |
| 2240 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 6d 65 6d 62 | ......<li><a.href="#builtin-memb |
| 2260 | 65 72 43 6f 75 6e 74 22 3e 40 6d 65 6d 62 65 72 43 6f 75 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 | erCount">@memberCount</a></li>.. |
| 2280 | 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e | ...........<li><a.href="#builtin |
| 22a0 | 2d 6d 65 6d 63 70 79 22 3e 40 6d 65 6d 63 70 79 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | -memcpy">@memcpy</a></li>....... |
| 22c0 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 6d 65 6d 73 | ......<li><a.href="#builtin-mems |
| 22e0 | 65 74 22 3e 40 6d 65 6d 73 65 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | et">@memset</a></li>............ |
| 2300 | 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 6d 69 6e 56 61 6c 75 65 22 | .<li><a.href="#builtin-minValue" |
| 2320 | 3e 40 6d 69 6e 56 61 6c 75 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | >@minValue</a></li>............. |
| 2340 | 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 6d 6f 64 22 3e 40 6d 6f 64 3c | <li><a.href="#builtin-mod">@mod< |
| 2360 | 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 | /a></li>.............<li><a.href |
| 2380 | 3d 22 23 62 75 69 6c 74 69 6e 2d 6d 75 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 6d 75 6c | ="#builtin-mulWithOverflow">@mul |
| 23a0 | 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 | WithOverflow</a></li>........... |
| 23c0 | 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 6f 66 66 73 65 74 4f 66 | ..<li><a.href="#builtin-offsetOf |
| 23e0 | 22 3e 40 6f 66 66 73 65 74 4f 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | ">@offsetOf</a></li>............ |
| 2400 | 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 4f 70 61 71 75 65 54 79 70 | .<li><a.href="#builtin-OpaqueTyp |
| 2420 | 65 22 3e 40 4f 70 61 71 75 65 54 79 70 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 | e">@OpaqueType</a></li>......... |
| 2440 | 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 70 61 6e 69 63 22 | ....<li><a.href="#builtin-panic" |
| 2460 | 3e 40 70 61 6e 69 63 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 | >@panic</a></li>.............<li |
| 2480 | 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 70 74 72 43 61 73 74 22 3e 40 70 74 72 | ><a.href="#builtin-ptrCast">@ptr |
| 24a0 | 43 61 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 | Cast</a></li>.............<li><a |
| 24c0 | 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 70 74 72 54 6f 49 6e 74 22 3e 40 70 74 72 54 6f | .href="#builtin-ptrToInt">@ptrTo |
| 24e0 | 49 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 | Int</a></li>.............<li><a. |
| 2500 | 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 72 65 6d 22 3e 40 72 65 6d 3c 2f 61 3e 3c 2f 6c 69 | href="#builtin-rem">@rem</a></li |
| 2520 | 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c | >.............<li><a.href="#buil |
| 2540 | 74 69 6e 2d 72 65 74 75 72 6e 41 64 64 72 65 73 73 22 3e 40 72 65 74 75 72 6e 41 64 64 72 65 73 | tin-returnAddress">@returnAddres |
| 2560 | 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 | s</a></li>.............<li><a.hr |
| 2580 | 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 73 65 74 44 65 62 75 67 53 61 66 65 74 79 22 3e 40 73 65 | ef="#builtin-setDebugSafety">@se |
| 25a0 | 74 44 65 62 75 67 53 61 66 65 74 79 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 | tDebugSafety</a></li>........... |
| 25c0 | 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 73 65 74 45 76 61 6c 42 | ..<li><a.href="#builtin-setEvalB |
| 25e0 | 72 61 6e 63 68 51 75 6f 74 61 22 3e 40 73 65 74 45 76 61 6c 42 72 61 6e 63 68 51 75 6f 74 61 3c | ranchQuota">@setEvalBranchQuota< |
| 2600 | 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 | /a></li>.............<li><a.href |
| 2620 | 3d 22 23 62 75 69 6c 74 69 6e 2d 73 65 74 46 6c 6f 61 74 4d 6f 64 65 22 3e 40 73 65 74 46 6c 6f | ="#builtin-setFloatMode">@setFlo |
| 2640 | 61 74 4d 6f 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e | atMode</a></li>.............<li> |
| 2660 | 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 73 65 74 47 6c 6f 62 61 6c 4c 69 6e 6b 61 | <a.href="#builtin-setGlobalLinka |
| 2680 | 67 65 22 3e 40 73 65 74 47 6c 6f 62 61 6c 4c 69 6e 6b 61 67 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 | ge">@setGlobalLinkage</a></li>.. |
| 26a0 | 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e | ...........<li><a.href="#builtin |
| 26c0 | 2d 73 65 74 47 6c 6f 62 61 6c 53 65 63 74 69 6f 6e 22 3e 40 73 65 74 47 6c 6f 62 61 6c 53 65 63 | -setGlobalSection">@setGlobalSec |
| 26e0 | 74 69 6f 6e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 | tion</a></li>.............<li><a |
| 2700 | 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 73 68 6c 45 78 61 63 74 22 3e 40 73 68 6c 45 78 | .href="#builtin-shlExact">@shlEx |
| 2720 | 61 63 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 | act</a></li>.............<li><a. |
| 2740 | 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e | href="#builtin-shlWithOverflow"> |
| 2760 | 40 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | @shlWithOverflow</a></li>....... |
| 2780 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 73 68 72 45 | ......<li><a.href="#builtin-shrE |
| 27a0 | 78 61 63 74 22 3e 40 73 68 72 45 78 61 63 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | xact">@shrExact</a></li>........ |
| 27c0 | 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 73 69 7a 65 4f | .....<li><a.href="#builtin-sizeO |
| 27e0 | 66 22 3e 40 73 69 7a 65 4f 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | f">@sizeOf</a></li>............. |
| 2800 | 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 73 75 62 57 69 74 68 4f 76 65 | <li><a.href="#builtin-subWithOve |
| 2820 | 72 66 6c 6f 77 22 3e 40 73 75 62 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 3c 2f 6c 69 3e | rflow">@subWithOverflow</a></li> |
| 2840 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 | .............<li><a.href="#built |
| 2860 | 69 6e 2d 74 72 75 6e 63 61 74 65 22 3e 40 74 72 75 6e 63 61 74 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a | in-truncate">@truncate</a></li>. |
| 2880 | 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 | ............<li><a.href="#builti |
| 28a0 | 6e 2d 74 79 70 65 49 64 22 3e 40 74 79 70 65 49 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | n-typeId">@typeId</a></li>...... |
| 28c0 | 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 74 79 70 | .......<li><a.href="#builtin-typ |
| 28e0 | 65 4e 61 6d 65 22 3e 40 74 79 70 65 4e 61 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | eName">@typeName</a></li>....... |
| 2900 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 74 79 70 65 | ......<li><a.href="#builtin-type |
| 2920 | 4f 66 22 3e 40 74 79 70 65 4f 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c | Of">@typeOf</a></li>...........< |
| 2940 | 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c | /ul>.........</li>.........<li>< |
| 2960 | 61 20 68 72 65 66 3d 22 23 62 75 69 6c 64 2d 6d 6f 64 65 22 3e 42 75 69 6c 64 20 4d 6f 64 65 3c | a.href="#build-mode">Build.Mode< |
| 2980 | 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 | /a>...........<ul>...........<li |
| 29a0 | 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 64 2d 6d 6f 64 65 2d 64 65 62 75 67 22 3e 44 65 62 | ><a.href="#build-mode-debug">Deb |
| 29c0 | 75 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 | ug</a></li>...........<li><a.hre |
| 29e0 | 66 3d 22 23 62 75 69 6c 64 2d 6d 6f 64 65 2d 72 65 6c 65 61 73 65 2d 66 61 73 74 22 3e 52 65 6c | f="#build-mode-release-fast">Rel |
| 2a00 | 65 61 73 65 46 61 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e | easeFast</a></li>...........<li> |
| 2a20 | 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 64 2d 6d 6f 64 65 2d 72 65 6c 65 61 73 65 2d 73 61 66 | <a.href="#build-mode-release-saf |
| 2a40 | 65 22 3e 52 65 6c 65 61 73 65 53 61 66 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 | e">ReleaseSafe</a></li>......... |
| 2a60 | 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c | ..</ul>.........</li>.........<l |
| 2a80 | 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 69 6e 65 64 2d 62 65 68 61 76 69 6f 72 22 3e | i><a.href="#undefined-behavior"> |
| 2aa0 | 55 6e 64 65 66 69 6e 65 64 20 42 65 68 61 76 69 6f 72 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 | Undefined.Behavior</a>.......... |
| 2ac0 | 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | .<ul>.............<li><a.href="# |
| 2ae0 | 75 6e 64 65 66 2d 75 6e 72 65 61 63 68 61 62 6c 65 22 3e 52 65 61 63 68 69 6e 67 20 55 6e 72 65 | undef-unreachable">Reaching.Unre |
| 2b00 | 61 63 68 61 62 6c 65 20 43 6f 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 | achable.Code</a></li>........... |
| 2b20 | 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 2d 69 6e 64 65 78 2d 6f 75 74 2d | ..<li><a.href="#undef-index-out- |
| 2b40 | 6f 66 2d 62 6f 75 6e 64 73 22 3e 49 6e 64 65 78 20 6f 75 74 20 6f 66 20 42 6f 75 6e 64 73 3c 2f | of-bounds">Index.out.of.Bounds</ |
| 2b60 | 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d | a></li>.............<li><a.href= |
| 2b80 | 22 23 75 6e 64 65 66 2d 63 61 73 74 2d 6e 65 67 61 74 69 76 65 2d 75 6e 73 69 67 6e 65 64 22 3e | "#undef-cast-negative-unsigned"> |
| 2ba0 | 43 61 73 74 20 4e 65 67 61 74 69 76 65 20 4e 75 6d 62 65 72 20 74 6f 20 55 6e 73 69 67 6e 65 64 | Cast.Negative.Number.to.Unsigned |
| 2bc0 | 20 49 6e 74 65 67 65 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c | .Integer</a></li>.............<l |
| 2be0 | 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 2d 63 61 73 74 2d 74 72 75 6e 63 61 74 65 73 | i><a.href="#undef-cast-truncates |
| 2c00 | 2d 64 61 74 61 22 3e 43 61 73 74 20 54 72 75 6e 63 61 74 65 73 20 44 61 74 61 3c 2f 61 3e 3c 2f | -data">Cast.Truncates.Data</a></ |
| 2c20 | 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e | li>.............<li><a.href="#un |
| 2c40 | 64 65 66 2d 69 6e 74 65 67 65 72 2d 6f 76 65 72 66 6c 6f 77 22 3e 49 6e 74 65 67 65 72 20 4f 76 | def-integer-overflow">Integer.Ov |
| 2c60 | 65 72 66 6c 6f 77 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 | erflow</a>...............<ul>... |
| 2c80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 | ..............<li><a.href="#unde |
| 2ca0 | 66 2d 69 6e 74 2d 6f 76 65 72 66 6c 6f 77 2d 64 65 66 61 75 6c 74 22 3e 44 65 66 61 75 6c 74 20 | f-int-overflow-default">Default. |
| 2cc0 | 4f 70 65 72 61 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | Operations</a></li>............. |
| 2ce0 | 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 2d 69 6e 74 2d 6f 76 65 72 | ....<li><a.href="#undef-int-over |
| 2d00 | 66 6c 6f 77 2d 73 74 64 22 3e 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 20 4d 61 74 68 20 | flow-std">Standard.Library.Math. |
| 2d20 | 46 75 6e 63 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | Functions</a></li>.............. |
| 2d40 | 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 2d 69 6e 74 2d 6f 76 65 72 66 | ...<li><a.href="#undef-int-overf |
| 2d60 | 6c 6f 77 2d 62 75 69 6c 74 69 6e 22 3e 42 75 69 6c 74 69 6e 20 4f 76 65 72 66 6c 6f 77 20 46 75 | low-builtin">Builtin.Overflow.Fu |
| 2d80 | 6e 63 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nctions</a></li>................ |
| 2da0 | 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 2d 69 6e 74 2d 6f 76 65 72 66 6c 6f | .<li><a.href="#undef-int-overflo |
| 2dc0 | 77 2d 77 72 61 70 22 3e 57 72 61 70 70 69 6e 67 20 4f 70 65 72 61 74 69 6f 6e 73 3c 2f 61 3e 3c | w-wrap">Wrapping.Operations</a>< |
| 2de0 | 2f 6c 69 3e 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 | /li>................</ul>....... |
| 2e00 | 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 | ......</li>.............<li><a.h |
| 2e20 | 72 65 66 3d 22 23 75 6e 64 65 66 2d 73 68 6c 2d 6f 76 65 72 66 6c 6f 77 22 3e 45 78 61 63 74 20 | ref="#undef-shl-overflow">Exact. |
| 2e40 | 4c 65 66 74 20 53 68 69 66 74 20 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 | Left.Shift.Overflow</a></li>.... |
| 2e60 | 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 2d 73 68 72 | .........<li><a.href="#undef-shr |
| 2e80 | 2d 6f 76 65 72 66 6c 6f 77 22 3e 45 78 61 63 74 20 52 69 67 68 74 20 53 68 69 66 74 20 4f 76 65 | -overflow">Exact.Right.Shift.Ove |
| 2ea0 | 72 66 6c 6f 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c | rflow</a></li>.............<li>< |
| 2ec0 | 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 2d 64 69 76 69 73 69 6f 6e 2d 62 79 2d 7a 65 72 6f 22 | a.href="#undef-division-by-zero" |
| 2ee0 | 3e 44 69 76 69 73 69 6f 6e 20 62 79 20 5a 65 72 6f 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | >Division.by.Zero</a></li>...... |
| 2f00 | 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 2d 72 65 6d 61 69 | .......<li><a.href="#undef-remai |
| 2f20 | 6e 64 65 72 2d 64 69 76 69 73 69 6f 6e 2d 62 79 2d 7a 65 72 6f 22 3e 52 65 6d 61 69 6e 64 65 72 | nder-division-by-zero">Remainder |
| 2f40 | 20 44 69 76 69 73 69 6f 6e 20 62 79 20 5a 65 72 6f 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | .Division.by.Zero</a></li>...... |
| 2f60 | 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 2d 65 78 61 63 74 | .......<li><a.href="#undef-exact |
| 2f80 | 2d 64 69 76 69 73 69 6f 6e 2d 72 65 6d 61 69 6e 64 65 72 22 3e 45 78 61 63 74 20 44 69 76 69 73 | -division-remainder">Exact.Divis |
| 2fa0 | 69 6f 6e 20 52 65 6d 61 69 6e 64 65 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 | ion.Remainder</a></li>.......... |
| 2fc0 | 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 2d 73 6c 69 63 65 2d 77 69 64 | ...<li><a.href="#undef-slice-wid |
| 2fe0 | 65 6e 2d 72 65 6d 61 69 6e 64 65 72 22 3e 53 6c 69 63 65 20 57 69 64 65 6e 20 52 65 6d 61 69 6e | en-remainder">Slice.Widen.Remain |
| 3000 | 64 65 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 | der</a></li>.............<li><a. |
| 3020 | 68 72 65 66 3d 22 23 75 6e 64 65 66 2d 61 74 74 65 6d 70 74 2d 75 6e 77 72 61 70 2d 6e 75 6c 6c | href="#undef-attempt-unwrap-null |
| 3040 | 22 3e 41 74 74 65 6d 70 74 20 74 6f 20 55 6e 77 72 61 70 20 4e 75 6c 6c 3c 2f 61 3e 3c 2f 6c 69 | ">Attempt.to.Unwrap.Null</a></li |
| 3060 | 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 | >.............<li><a.href="#unde |
| 3080 | 66 2d 61 74 74 65 6d 70 74 2d 75 6e 77 72 61 70 2d 65 72 72 6f 72 22 3e 41 74 74 65 6d 70 74 20 | f-attempt-unwrap-error">Attempt. |
| 30a0 | 74 6f 20 55 6e 77 72 61 70 20 45 72 72 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | to.Unwrap.Error</a></li>........ |
| 30c0 | 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 2d 69 6e 76 61 6c 69 64 | .....<li><a.href="#undef-invalid |
| 30e0 | 2d 65 72 72 6f 72 2d 63 6f 64 65 22 3e 49 6e 76 61 6c 69 64 20 45 72 72 6f 72 20 43 6f 64 65 3c | -error-code">Invalid.Error.Code< |
| 3100 | 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 | /a></li>.............<li><a.href |
| 3120 | 3d 22 23 75 6e 64 65 66 2d 69 6e 76 61 6c 69 64 2d 65 6e 75 6d 2d 63 61 73 74 22 3e 49 6e 76 61 | ="#undef-invalid-enum-cast">Inva |
| 3140 | 6c 69 64 20 45 6e 75 6d 20 43 61 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 | lid.Enum.Cast</a></li>.......... |
| 3160 | 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 2d 69 6e 63 6f 72 72 65 63 74 | ...<li><a.href="#undef-incorrect |
| 3180 | 2d 70 6f 69 6e 74 65 72 2d 61 6c 69 67 6e 6d 65 6e 74 22 3e 49 6e 63 6f 72 72 65 63 74 20 50 6f | -pointer-alignment">Incorrect.Po |
| 31a0 | 69 6e 74 65 72 20 41 6c 69 67 6e 6d 65 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | inter.Alignment</a></li>........ |
| 31c0 | 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c | ...</ul>.........</li>.........< |
| 31e0 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6d 65 6d 6f 72 79 22 3e 4d 65 6d 6f 72 79 3c 2f 61 3e 3c | li><a.href="#memory">Memory</a>< |
| 3200 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 69 | /li>.........<li><a.href="#compi |
| 3220 | 6c 65 2d 76 61 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 20 56 61 72 69 61 62 6c 65 73 3c | le-variables">Compile.Variables< |
| 3240 | 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 72 | /a></li>.........<li><a.href="#r |
| 3260 | 6f 6f 74 2d 73 6f 75 72 63 65 2d 66 69 6c 65 22 3e 52 6f 6f 74 20 53 6f 75 72 63 65 20 46 69 6c | oot-source-file">Root.Source.Fil |
| 3280 | 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 | e</a></li>.........<li><a.href=" |
| 32a0 | 23 7a 69 67 2d 74 65 73 74 22 3e 5a 69 67 20 54 65 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 | #zig-test">Zig.Test</a></li>.... |
| 32c0 | 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 7a 69 67 2d 62 75 69 6c 64 2d 73 79 73 | .....<li><a.href="#zig-build-sys |
| 32e0 | 74 65 6d 22 3e 5a 69 67 20 42 75 69 6c 64 20 53 79 73 74 65 6d 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 | tem">Zig.Build.System</a></li>.. |
| 3300 | 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 22 3e 43 3c 2f 61 3e 0a 20 20 | .......<li><a.href="#c">C</a>... |
| 3320 | 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 | ........<ul>.............<li><a. |
| 3340 | 68 72 65 66 3d 22 23 63 2d 74 79 70 65 2d 70 72 69 6d 69 74 69 76 65 73 22 3e 43 20 54 79 70 65 | href="#c-type-primitives">C.Type |
| 3360 | 20 50 72 69 6d 69 74 69 76 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | .Primitives</a></li>............ |
| 3380 | 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 2d 73 74 72 69 6e 67 2d 6c 69 74 65 72 61 6c 73 | .<li><a.href="#c-string-literals |
| 33a0 | 22 3e 43 20 53 74 72 69 6e 67 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 | ">C.String.Literals</a></li>.... |
| 33c0 | 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 2d 69 6d 70 6f 72 74 22 | .........<li><a.href="#c-import" |
| 33e0 | 3e 49 6d 70 6f 72 74 20 66 72 6f 6d 20 43 20 48 65 61 64 65 72 20 46 69 6c 65 3c 2f 61 3e 3c 2f | >Import.from.C.Header.File</a></ |
| 3400 | 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6d 69 | li>.............<li><a.href="#mi |
| 3420 | 78 69 6e 67 2d 6f 62 6a 65 63 74 2d 66 69 6c 65 73 22 3e 4d 69 78 69 6e 67 20 4f 62 6a 65 63 74 | xing-object-files">Mixing.Object |
| 3440 | 20 46 69 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a | .Files</a></li>...........</ul>. |
| 3460 | 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 | ........</li>.........<li><a.hre |
| 3480 | 66 3d 22 23 74 61 72 67 65 74 73 22 3e 54 61 72 67 65 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 | f="#targets">Targets</a></li>... |
| 34a0 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 74 79 6c 65 2d 67 75 69 64 65 22 | ......<li><a.href="#style-guide" |
| 34c0 | 3e 53 74 79 6c 65 20 47 75 69 64 65 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a | >Style.Guide</a>...........<ul>. |
| 34e0 | 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 74 79 6c 65 2d | ............<li><a.href="#style- |
| 3500 | 67 75 69 64 65 2d 77 68 69 74 65 73 70 61 63 65 22 3e 57 68 69 74 65 73 70 61 63 65 3c 2f 61 3e | guide-whitespace">Whitespace</a> |
| 3520 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | </li>.............<li><a.href="# |
| 3540 | 73 74 79 6c 65 2d 67 75 69 64 65 2d 6e 61 6d 65 73 22 3e 4e 61 6d 65 73 3c 2f 61 3e 3c 2f 6c 69 | style-guide-names">Names</a></li |
| 3560 | 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 74 79 6c | >.............<li><a.href="#styl |
| 3580 | 65 2d 67 75 69 64 65 2d 65 78 61 6d 70 6c 65 73 22 3e 45 78 61 6d 70 6c 65 73 3c 2f 61 3e 3c 2f | e-guide-examples">Examples</a></ |
| 35a0 | 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 | li>...........</ul>.........</li |
| 35c0 | 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 67 72 61 6d 6d 61 72 22 | >.........<li><a.href="#grammar" |
| 35e0 | 3e 47 72 61 6d 6d 61 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 | >Grammar</a></li>.........<li><a |
| 3600 | 20 68 72 65 66 3d 22 23 7a 65 6e 22 3e 5a 65 6e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | .href="#zen">Zen</a></li>....... |
| 3620 | 3c 2f 75 6c 3e 0a 20 20 20 20 3c 2f 64 69 76 3e 0a 20 20 20 20 3c 64 69 76 20 69 64 3d 22 63 6f | </ul>.....</div>.....<div.id="co |
| 3640 | 6e 74 65 6e 74 73 22 3e 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 69 6e 74 72 6f 64 75 63 74 | ntents">.......<h1.id="introduct |
| 3660 | 69 6f 6e 22 3e 5a 69 67 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3c 2f 68 31 3e 0a 20 20 20 20 | ion">Zig.Documentation</h1>..... |
| 3680 | 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 69 73 20 61 6e 20 6f 70 65 6e 2d 73 6f 75 72 63 | ..<p>.......Zig.is.an.open-sourc |
| 36a0 | 65 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 6c 61 6e 67 75 61 67 65 20 64 65 73 69 67 6e 65 64 20 | e.programming.language.designed. |
| 36c0 | 66 6f 72 20 3c 73 74 72 6f 6e 67 3e 72 6f 62 75 73 74 6e 65 73 73 3c 2f 73 74 72 6f 6e 67 3e 2c | for.<strong>robustness</strong>, |
| 36e0 | 0a 20 20 20 20 20 20 3c 73 74 72 6f 6e 67 3e 6f 70 74 69 6d 61 6c 69 74 79 3c 2f 73 74 72 6f 6e | .......<strong>optimality</stron |
| 3700 | 67 3e 2c 20 61 6e 64 20 3c 73 74 72 6f 6e 67 3e 63 6c 61 72 69 74 79 3c 2f 73 74 72 6f 6e 67 3e | g>,.and.<strong>clarity</strong> |
| 3720 | 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 | ........</p>.......<ul>......... |
| 3740 | 3c 6c 69 3e 3c 73 74 72 6f 6e 67 3e 52 6f 62 75 73 74 3c 2f 73 74 72 6f 6e 67 3e 20 2d 20 62 65 | <li><strong>Robust</strong>.-.be |
| 3760 | 68 61 76 69 6f 72 20 69 73 20 63 6f 72 72 65 63 74 20 65 76 65 6e 20 66 6f 72 20 65 64 67 65 20 | havior.is.correct.even.for.edge. |
| 3780 | 63 61 73 65 73 20 73 75 63 68 20 61 73 20 6f 75 74 20 6f 66 20 6d 65 6d 6f 72 79 2e 3c 2f 6c 69 | cases.such.as.out.of.memory.</li |
| 37a0 | 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 73 74 72 6f 6e 67 3e 4f 70 74 69 6d 61 6c 3c 2f 73 | >.........<li><strong>Optimal</s |
| 37c0 | 74 72 6f 6e 67 3e 20 2d 20 77 72 69 74 65 20 70 72 6f 67 72 61 6d 73 20 74 68 65 20 62 65 73 74 | trong>.-.write.programs.the.best |
| 37e0 | 20 77 61 79 20 74 68 65 79 20 63 61 6e 20 62 65 68 61 76 65 20 61 6e 64 20 70 65 72 66 6f 72 6d | .way.they.can.behave.and.perform |
| 3800 | 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 73 74 72 6f 6e 67 3e 43 6c 65 61 72 | .</li>.........<li><strong>Clear |
| 3820 | 3c 2f 73 74 72 6f 6e 67 3e 20 2d 20 70 72 65 63 69 73 65 6c 79 20 63 6f 6d 6d 75 6e 69 63 61 74 | </strong>.-.precisely.communicat |
| 3840 | 65 20 79 6f 75 72 20 69 6e 74 65 6e 74 20 74 6f 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 61 6e | e.your.intent.to.the.compiler.an |
| 3860 | 64 20 6f 74 68 65 72 20 70 72 6f 67 72 61 6d 6d 65 72 73 2e 20 54 68 65 20 6c 61 6e 67 75 61 67 | d.other.programmers..The.languag |
| 3880 | 65 20 69 6d 70 6f 73 65 73 20 61 20 6c 6f 77 20 6f 76 65 72 68 65 61 64 20 74 6f 20 72 65 61 64 | e.imposes.a.low.overhead.to.read |
| 38a0 | 69 6e 67 20 63 6f 64 65 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 | ing.code.</li>.......</ul>...... |
| 38c0 | 20 3c 70 3e 0a 20 20 20 20 20 20 4f 66 74 65 6e 20 74 68 65 20 6d 6f 73 74 20 65 66 66 69 63 69 | .<p>.......Often.the.most.effici |
| 38e0 | 65 6e 74 20 77 61 79 20 74 6f 20 6c 65 61 72 6e 20 73 6f 6d 65 74 68 69 6e 67 20 6e 65 77 20 69 | ent.way.to.learn.something.new.i |
| 3900 | 73 20 74 6f 20 73 65 65 20 65 78 61 6d 70 6c 65 73 2c 20 73 6f 0a 20 20 20 20 20 20 74 68 69 73 | s.to.see.examples,.so.......this |
| 3920 | 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 73 68 6f 77 73 20 68 6f 77 20 74 6f 20 75 73 65 20 | .documentation.shows.how.to.use. |
| 3940 | 65 61 63 68 20 6f 66 20 5a 69 67 27 73 20 66 65 61 74 75 72 65 73 2e 20 49 74 20 69 73 0a 20 20 | each.of.Zig's.features..It.is... |
| 3960 | 20 20 20 20 61 6c 6c 20 6f 6e 20 6f 6e 65 20 70 61 67 65 20 73 6f 20 79 6f 75 20 63 61 6e 20 73 | ....all.on.one.page.so.you.can.s |
| 3980 | 65 61 72 63 68 20 77 69 74 68 20 79 6f 75 72 20 62 72 6f 77 73 65 72 27 73 20 73 65 61 72 63 68 | earch.with.your.browser's.search |
| 39a0 | 20 74 6f 6f 6c 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 | .tool........</p>.......<h2.id=" |
| 39c0 | 68 65 6c 6c 6f 2d 77 6f 72 6c 64 22 3e 48 65 6c 6c 6f 20 57 6f 72 6c 64 3c 2f 68 32 3e 0a 20 20 | hello-world">Hello.World</h2>... |
| 39e0 | 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 69 | ..<pre><code.class="zig">const.i |
| 3a00 | 6f 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 69 6f 3b 0a 0a 70 75 62 20 66 6e 20 6d | o.=.@import("std").io;..pub.fn.m |
| 3a20 | 61 69 6e 28 29 20 2d 26 67 74 3b 20 25 76 6f 69 64 20 7b 0a 20 20 20 20 25 25 69 6f 2e 73 74 64 | ain().->.%void.{.....%%io.std |
| 3a40 | 6f 75 74 2e 70 72 69 6e 74 66 28 22 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 5c 6e 22 29 3b 0a 7d | out.printf("Hello,.world!\n");.} |
| 3a60 | 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 | </code></pre>.......<pre><code.c |
| 3a80 | 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 68 65 6c 6c 6f 2e | lass="sh">$.zig.build-exe.hello. |
| 3aa0 | 7a 69 67 0a 24 20 2e 2f 68 65 6c 6c 6f 0a 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 3c 2f 63 6f 64 | zig.$../hello.Hello,.world!</cod |
| 3ac0 | 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a | e></pre>.......<p>See.also:</p>. |
| 3ae0 | 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 | ......<ul>.........<li><a.href=" |
| 3b00 | 23 76 61 6c 75 65 73 22 3e 56 61 6c 75 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | #values">Values</a></li>........ |
| 3b20 | 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 69 6d 70 6f 72 74 22 3e 40 | .<li><a.href="#builtin-import">@ |
| 3b40 | 69 6d 70 6f 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 | import</a></li>.........<li><a.h |
| 3b60 | 72 65 66 3d 22 23 65 72 72 6f 72 73 22 3e 45 72 72 6f 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 | ref="#errors">Errors</a></li>... |
| 3b80 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 72 6f 6f 74 2d 73 6f 75 72 63 65 2d | ......<li><a.href="#root-source- |
| 3ba0 | 66 69 6c 65 22 3e 52 6f 6f 74 20 53 6f 75 72 63 65 20 46 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a | file">Root.Source.File</a></li>. |
| 3bc0 | 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 76 61 6c 75 65 73 | ......</ul>.......<h2.id="values |
| 3be0 | 22 3e 56 61 6c 75 65 73 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 | ">Values</h2>.......<pre><code.c |
| 3c00 | 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 69 6f 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 | lass="zig">const.io.=.@import("s |
| 3c20 | 74 64 22 29 2e 69 6f 3b 0a 63 6f 6e 73 74 20 6f 73 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 | td").io;.const.os.=.@import("std |
| 3c40 | 22 29 2e 6f 73 3b 0a 0a 2f 2f 20 65 72 72 6f 72 20 64 65 63 6c 61 72 61 74 69 6f 6e 2c 20 6d 61 | ").os;..//.error.declaration,.ma |
| 3c60 | 6b 65 73 20 60 65 72 72 6f 72 2e 41 72 67 4e 6f 74 46 6f 75 6e 64 60 20 61 76 61 69 6c 61 62 6c | kes.`error.ArgNotFound`.availabl |
| 3c80 | 65 0a 65 72 72 6f 72 20 41 72 67 4e 6f 74 46 6f 75 6e 64 3b 0a 0a 70 75 62 20 66 6e 20 6d 61 69 | e.error.ArgNotFound;..pub.fn.mai |
| 3ca0 | 6e 28 29 20 2d 26 67 74 3b 20 25 76 6f 69 64 20 7b 0a 20 20 20 20 2f 2f 20 69 6e 74 65 67 65 72 | n().->.%void.{.....//.integer |
| 3cc0 | 73 0a 20 20 20 20 63 6f 6e 73 74 20 6f 6e 65 5f 70 6c 75 73 5f 6f 6e 65 3a 20 69 33 32 20 3d 20 | s.....const.one_plus_one:.i32.=. |
| 3ce0 | 31 20 2b 20 31 3b 0a 20 20 20 20 25 25 69 6f 2e 73 74 64 6f 75 74 2e 70 72 69 6e 74 66 28 22 31 | 1.+.1;.....%%io.stdout.printf("1 |
| 3d00 | 20 2b 20 31 20 3d 20 7b 7d 5c 6e 22 2c 20 6f 6e 65 5f 70 6c 75 73 5f 6f 6e 65 29 3b 0a 0a 20 20 | .+.1.=.{}\n",.one_plus_one);.... |
| 3d20 | 20 20 2f 2f 20 66 6c 6f 61 74 73 0a 20 20 20 20 63 6f 6e 73 74 20 73 65 76 65 6e 5f 64 69 76 5f | ..//.floats.....const.seven_div_ |
| 3d40 | 74 68 72 65 65 3a 20 66 33 32 20 3d 20 37 2e 30 20 2f 20 33 2e 30 3b 0a 20 20 20 20 25 25 69 6f | three:.f32.=.7.0./.3.0;.....%%io |
| 3d60 | 2e 73 74 64 6f 75 74 2e 70 72 69 6e 74 66 28 22 37 2e 30 20 2f 20 33 2e 30 20 3d 20 7b 7d 5c 6e | .stdout.printf("7.0./.3.0.=.{}\n |
| 3d80 | 22 2c 20 73 65 76 65 6e 5f 64 69 76 5f 74 68 72 65 65 29 3b 0a 0a 20 20 20 20 2f 2f 20 62 6f 6f | ",.seven_div_three);......//.boo |
| 3da0 | 6c 65 61 6e 0a 20 20 20 20 25 25 69 6f 2e 73 74 64 6f 75 74 2e 70 72 69 6e 74 66 28 22 7b 7d 5c | lean.....%%io.stdout.printf("{}\ |
| 3dc0 | 6e 7b 7d 5c 6e 7b 7d 5c 6e 22 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 20 61 6e 64 20 66 61 6c | n{}\n{}\n",.........true.and.fal |
| 3de0 | 73 65 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 20 6f 72 20 66 61 6c 73 65 2c 0a 20 20 20 20 20 | se,.........true.or.false,...... |
| 3e00 | 20 20 20 21 74 72 75 65 29 3b 0a 0a 20 20 20 20 2f 2f 20 6e 75 6c 6c 61 62 6c 65 0a 20 20 20 20 | ...!true);......//.nullable..... |
| 3e20 | 63 6f 6e 73 74 20 6e 75 6c 6c 61 62 6c 65 5f 76 61 6c 75 65 20 3d 20 69 66 20 28 6f 73 2e 61 72 | const.nullable_value.=.if.(os.ar |
| 3e40 | 67 73 2e 63 6f 75 6e 74 28 29 20 26 67 74 3b 3d 20 32 29 20 6f 73 2e 61 72 67 73 2e 61 74 28 31 | gs.count().>=.2).os.args.at(1 |
| 3e60 | 29 20 65 6c 73 65 20 6e 75 6c 6c 3b 0a 20 20 20 20 25 25 69 6f 2e 73 74 64 6f 75 74 2e 70 72 69 | ).else.null;.....%%io.stdout.pri |
| 3e80 | 6e 74 66 28 22 5c 6e 6e 75 6c 6c 61 62 6c 65 5c 6e 74 79 70 65 3a 20 7b 7d 5c 6e 76 61 6c 75 65 | ntf("\nnullable\ntype:.{}\nvalue |
| 3ea0 | 3a 20 7b 7d 5c 6e 22 2c 0a 20 20 20 20 20 20 20 20 40 74 79 70 65 4e 61 6d 65 28 40 74 79 70 65 | :.{}\n",.........@typeName(@type |
| 3ec0 | 4f 66 28 6e 75 6c 6c 61 62 6c 65 5f 76 61 6c 75 65 29 29 2c 20 6e 75 6c 6c 61 62 6c 65 5f 76 61 | Of(nullable_value)),.nullable_va |
| 3ee0 | 6c 75 65 29 3b 0a 0a 20 20 20 20 2f 2f 20 65 72 72 6f 72 20 75 6e 69 6f 6e 0a 20 20 20 20 63 6f | lue);......//.error.union.....co |
| 3f00 | 6e 73 74 20 6e 75 6d 62 65 72 5f 6f 72 5f 65 72 72 6f 72 20 3d 20 69 66 20 28 6f 73 2e 61 72 67 | nst.number_or_error.=.if.(os.arg |
| 3f20 | 73 2e 63 6f 75 6e 74 28 29 20 26 67 74 3b 3d 20 33 29 20 6f 73 2e 61 72 67 73 2e 61 74 28 32 29 | s.count().>=.3).os.args.at(2) |
| 3f40 | 20 65 6c 73 65 20 65 72 72 6f 72 2e 41 72 67 4e 6f 74 46 6f 75 6e 64 3b 0a 20 20 20 20 25 25 69 | .else.error.ArgNotFound;.....%%i |
| 3f60 | 6f 2e 73 74 64 6f 75 74 2e 70 72 69 6e 74 66 28 22 5c 6e 65 72 72 6f 72 20 75 6e 69 6f 6e 5c 6e | o.stdout.printf("\nerror.union\n |
| 3f80 | 74 79 70 65 3a 20 7b 7d 5c 6e 76 61 6c 75 65 3a 20 7b 7d 5c 6e 22 2c 0a 20 20 20 20 20 20 20 20 | type:.{}\nvalue:.{}\n",......... |
| 3fa0 | 40 74 79 70 65 4e 61 6d 65 28 40 74 79 70 65 4f 66 28 6e 75 6d 62 65 72 5f 6f 72 5f 65 72 72 6f | @typeName(@typeOf(number_or_erro |
| 3fc0 | 72 29 29 2c 20 6e 75 6d 62 65 72 5f 6f 72 5f 65 72 72 6f 72 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c | r)),.number_or_error);.}</code>< |
| 3fe0 | 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 | /pre>.......<pre><code.class="sh |
| 4000 | 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 76 61 6c 75 65 73 2e 7a 69 67 0a 24 20 2e | ">$.zig.build-exe.values.zig.$.. |
| 4020 | 2f 76 61 6c 75 65 73 0a 31 20 2b 20 31 20 3d 20 32 0a 37 2e 30 20 2f 20 33 2e 30 20 3d 20 32 2e | /values.1.+.1.=.2.7.0./.3.0.=.2. |
| 4040 | 33 33 33 33 33 33 0a 66 61 6c 73 65 0a 74 72 75 65 0a 66 61 6c 73 65 0a 0a 6e 75 6c 6c 61 62 6c | 333333.false.true.false..nullabl |
| 4060 | 65 0a 74 79 70 65 3a 20 3f 5b 5d 63 6f 6e 73 74 20 75 38 0a 76 61 6c 75 65 3a 20 6e 75 6c 6c 0a | e.type:.?[]const.u8.value:.null. |
| 4080 | 0a 65 72 72 6f 72 20 75 6e 69 6f 6e 0a 74 79 70 65 3a 20 25 5b 5d 63 6f 6e 73 74 20 75 38 0a 76 | .error.union.type:.%[]const.u8.v |
| 40a0 | 61 6c 75 65 3a 20 65 72 72 6f 72 2e 41 72 67 4e 6f 74 46 6f 75 6e 64 3c 2f 63 6f 64 65 3e 3c 2f | alue:.error.ArgNotFound</code></ |
| 40c0 | 70 72 65 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 70 72 69 6d 69 74 69 76 65 2d 74 79 70 | pre>.......<h3.id="primitive-typ |
| 40e0 | 65 73 22 3e 50 72 69 6d 69 74 69 76 65 20 54 79 70 65 73 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c | es">Primitive.Types</h2>.......< |
| 4100 | 74 61 62 6c 65 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 | table>.........<tr>...........<t |
| 4120 | 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 4e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 3c 2f | h>.............Name...........</ |
| 4140 | 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 43 | th>...........<th>.............C |
| 4160 | 20 45 71 75 69 76 61 6c 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 | .Equivalent...........</th>..... |
| 4180 | 20 20 20 20 20 20 3c 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 44 65 73 63 72 69 70 74 69 | ......<th>.............Descripti |
| 41a0 | 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e | on...........</th>.........</tr> |
| 41c0 | 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 | .........<tr>...........<td><cod |
| 41e0 | 65 3e 69 32 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c | e>i2</code></td>...........<td>< |
| 4200 | 63 6f 64 65 3e 28 6e 6f 6e 65 29 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 | code>(none)</code></td>......... |
| 4220 | 20 20 3c 74 64 3e 73 69 67 6e 65 64 20 32 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a | ..<td>signed.2-bit.integer</td>. |
| 4240 | 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 | ........</tr>.........<tr>...... |
| 4260 | 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 32 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 | .....<td><code>u2</code></td>... |
| 4280 | 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 28 6e 6f 6e 65 29 3c 2f 63 6f 64 65 3e 3c | ........<td><code>(none)</code>< |
| 42a0 | 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 75 6e 73 69 67 6e 65 64 20 32 2d 62 69 | /td>...........<td>unsigned.2-bi |
| 42c0 | 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 | t.integer</td>.........</tr>.... |
| 42e0 | 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 69 33 | .....<tr>...........<td><code>i3 |
| 4300 | 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 | </code></td>...........<td><code |
| 4320 | 3e 28 6e 6f 6e 65 29 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 | >(none)</code></td>...........<t |
| 4340 | 64 3e 73 69 67 6e 65 64 20 33 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 | d>signed.3-bit.integer</td>..... |
| 4360 | 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 | ....</tr>.........<tr>.......... |
| 4380 | 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 33 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 | .<td><code>u3</code></td>....... |
| 43a0 | 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 28 6e 6f 6e 65 29 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e | ....<td><code>(none)</code></td> |
| 43c0 | 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 75 6e 73 69 67 6e 65 64 20 33 2d 62 69 74 20 69 6e | ...........<td>unsigned.3-bit.in |
| 43e0 | 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 | teger</td>.........</tr>........ |
| 4400 | 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 69 34 3c 2f 63 6f | .<tr>...........<td><code>i4</co |
| 4420 | 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 28 6e 6f | de></td>...........<td><code>(no |
| 4440 | 6e 65 29 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 73 69 | ne)</code></td>...........<td>si |
| 4460 | 67 6e 65 64 20 34 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 | gned.4-bit.integer</td>......... |
| 4480 | 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | </tr>.........<tr>...........<td |
| 44a0 | 3e 3c 63 6f 64 65 3e 75 34 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 | ><code>u4</code></td>........... |
| 44c0 | 3c 74 64 3e 3c 63 6f 64 65 3e 28 6e 6f 6e 65 29 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 | <td><code>(none)</code></td>.... |
| 44e0 | 20 20 20 20 20 20 20 3c 74 64 3e 75 6e 73 69 67 6e 65 64 20 34 2d 62 69 74 20 69 6e 74 65 67 65 | .......<td>unsigned.4-bit.intege |
| 4500 | 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 | r</td>.........</tr>.........<tr |
| 4520 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 69 35 3c 2f 63 6f 64 65 3e 3c | >...........<td><code>i5</code>< |
| 4540 | 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 28 6e 6f 6e 65 29 3c | /td>...........<td><code>(none)< |
| 4560 | 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 73 69 67 6e 65 64 | /code></td>...........<td>signed |
| 4580 | 20 35 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 | .5-bit.integer</td>.........</tr |
| 45a0 | 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f | >.........<tr>...........<td><co |
| 45c0 | 64 65 3e 75 35 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e | de>u5</code></td>...........<td> |
| 45e0 | 3c 63 6f 64 65 3e 28 6e 6f 6e 65 29 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 | <code>(none)</code></td>........ |
| 4600 | 20 20 20 3c 74 64 3e 75 6e 73 69 67 6e 65 64 20 35 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 | ...<td>unsigned.5-bit.integer</t |
| 4620 | 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 | d>.........</tr>.........<tr>... |
| 4640 | 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 69 36 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e | ........<td><code>i6</code></td> |
| 4660 | 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 28 6e 6f 6e 65 29 3c 2f 63 6f 64 | ...........<td><code>(none)</cod |
| 4680 | 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 73 69 67 6e 65 64 20 36 2d 62 | e></td>...........<td>signed.6-b |
| 46a0 | 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 | it.integer</td>.........</tr>... |
| 46c0 | 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 | ......<tr>...........<td><code>u |
| 46e0 | 36 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 | 6</code></td>...........<td><cod |
| 4700 | 65 3e 28 6e 6f 6e 65 29 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c | e>(none)</code></td>...........< |
| 4720 | 74 64 3e 75 6e 73 69 67 6e 65 64 20 36 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 | td>unsigned.6-bit.integer</td>.. |
| 4740 | 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 | .......</tr>.........<tr>....... |
| 4760 | 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 69 37 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 | ....<td><code>i7</code></td>.... |
| 4780 | 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 28 6e 6f 6e 65 29 3c 2f 63 6f 64 65 3e 3c 2f | .......<td><code>(none)</code></ |
| 47a0 | 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 73 69 67 6e 65 64 20 37 2d 62 69 74 20 69 | td>...........<td>signed.7-bit.i |
| 47c0 | 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 | nteger</td>.........</tr>....... |
| 47e0 | 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 37 3c 2f 63 | ..<tr>...........<td><code>u7</c |
| 4800 | 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 28 6e | ode></td>...........<td><code>(n |
| 4820 | 6f 6e 65 29 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 75 | one)</code></td>...........<td>u |
| 4840 | 6e 73 69 67 6e 65 64 20 37 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 | nsigned.7-bit.integer</td>...... |
| 4860 | 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 | ...</tr>.........<tr>........... |
| 4880 | 3c 74 64 3e 3c 63 6f 64 65 3e 69 38 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 | <td><code>i8</code></td>........ |
| 48a0 | 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 69 6e 74 38 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a | ...<td><code>int8_t</code></td>. |
| 48c0 | 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 73 69 67 6e 65 64 20 38 2d 62 69 74 20 69 6e 74 65 67 | ..........<td>signed.8-bit.integ |
| 48e0 | 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 | er</td>.........</tr>.........<t |
| 4900 | 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 38 3c 2f 63 6f 64 65 3e | r>...........<td><code>u8</code> |
| 4920 | 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 69 6e 74 38 5f | </td>...........<td><code>uint8_ |
| 4940 | 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 75 6e 73 69 | t</code></td>...........<td>unsi |
| 4960 | 67 6e 65 64 20 38 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 | gned.8-bit.integer</td>......... |
| 4980 | 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | </tr>.........<tr>...........<td |
| 49a0 | 3e 3c 63 6f 64 65 3e 69 31 36 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 | ><code>i16</code></td>.......... |
| 49c0 | 20 3c 74 64 3e 3c 63 6f 64 65 3e 69 6e 74 31 36 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 | .<td><code>int16_t</code></td>.. |
| 49e0 | 20 20 20 20 20 20 20 20 20 3c 74 64 3e 73 69 67 6e 65 64 20 31 36 2d 62 69 74 20 69 6e 74 65 67 | .........<td>signed.16-bit.integ |
| 4a00 | 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 | er</td>.........</tr>.........<t |
| 4a20 | 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 31 36 3c 2f 63 6f 64 65 | r>...........<td><code>u16</code |
| 4a40 | 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 69 6e 74 31 | ></td>...........<td><code>uint1 |
| 4a60 | 36 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 75 6e | 6_t</code></td>...........<td>un |
| 4a80 | 73 69 67 6e 65 64 20 31 36 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 | signed.16-bit.integer</td>...... |
| 4aa0 | 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 | ...</tr>.........<tr>........... |
| 4ac0 | 3c 74 64 3e 3c 63 6f 64 65 3e 69 33 32 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 | <td><code>i32</code></td>....... |
| 4ae0 | 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 69 6e 74 33 32 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 | ....<td><code>int32_t</code></td |
| 4b00 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 73 69 67 6e 65 64 20 33 32 2d 62 69 74 20 69 6e | >...........<td>signed.32-bit.in |
| 4b20 | 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 | teger</td>.........</tr>........ |
| 4b40 | 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 33 32 3c 2f 63 | .<tr>...........<td><code>u32</c |
| 4b60 | 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 69 | ode></td>...........<td><code>ui |
| 4b80 | 6e 74 33 32 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | nt32_t</code></td>...........<td |
| 4ba0 | 3e 75 6e 73 69 67 6e 65 64 20 33 32 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 | >unsigned.32-bit.integer</td>... |
| 4bc0 | 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 | ......</tr>.........<tr>........ |
| 4be0 | 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 69 36 34 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 | ...<td><code>i64</code></td>.... |
| 4c00 | 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 69 6e 74 36 34 5f 74 3c 2f 63 6f 64 65 3e 3c | .......<td><code>int64_t</code>< |
| 4c20 | 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 73 69 67 6e 65 64 20 36 34 2d 62 69 74 | /td>...........<td>signed.64-bit |
| 4c40 | 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 | .integer</td>.........</tr>..... |
| 4c60 | 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 36 34 | ....<tr>...........<td><code>u64 |
| 4c80 | 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 | </code></td>...........<td><code |
| 4ca0 | 3e 75 69 6e 74 36 34 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 | >uint64_t</code></td>........... |
| 4cc0 | 3c 74 64 3e 75 6e 73 69 67 6e 65 64 20 36 34 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e | <td>unsigned.64-bit.integer</td> |
| 4ce0 | 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 | .........</tr>.........<tr>..... |
| 4d00 | 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 69 31 32 38 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e | ......<td><code>i128</code></td> |
| 4d20 | 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 5f 5f 69 6e 74 31 32 38 3c 2f 63 | ...........<td><code>__int128</c |
| 4d40 | 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 73 69 67 6e 65 64 20 31 | ode></td>...........<td>signed.1 |
| 4d60 | 32 38 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 | 28-bit.integer</td>.........</tr |
| 4d80 | 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f | >.........<tr>...........<td><co |
| 4da0 | 64 65 3e 75 31 32 38 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 | de>u128</code></td>...........<t |
| 4dc0 | 64 3e 3c 63 6f 64 65 3e 75 6e 73 69 67 6e 65 64 20 5f 5f 69 6e 74 31 32 38 3c 2f 63 6f 64 65 3e | d><code>unsigned.__int128</code> |
| 4de0 | 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 75 6e 73 69 67 6e 65 64 20 31 32 38 | </td>...........<td>unsigned.128 |
| 4e00 | 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a | -bit.integer</td>.........</tr>. |
| 4e20 | 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 | ........<tr>...........<td><code |
| 4e40 | 3e 69 73 69 7a 65 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | >isize</code></td>...........<td |
| 4e60 | 3e 3c 63 6f 64 65 3e 69 6e 74 70 74 72 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 | ><code>intptr_t</code></td>..... |
| 4e80 | 20 20 20 20 20 20 3c 74 64 3e 73 69 67 6e 65 64 20 70 6f 69 6e 74 65 72 20 73 69 7a 65 64 20 69 | ......<td>signed.pointer.sized.i |
| 4ea0 | 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 | nteger</td>.........</tr>....... |
| 4ec0 | 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 73 69 7a 65 | ..<tr>...........<td><code>usize |
| 4ee0 | 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 | </code></td>...........<td><code |
| 4f00 | 3e 75 69 6e 74 70 74 72 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 | >uintptr_t</code></td>.......... |
| 4f20 | 20 3c 74 64 3e 75 6e 73 69 67 6e 65 64 20 70 6f 69 6e 74 65 72 20 73 69 7a 65 64 20 69 6e 74 65 | .<td>unsigned.pointer.sized.inte |
| 4f40 | 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 0a 20 20 20 20 20 20 20 20 | ger</td>.........</tr>.......... |
| 4f60 | 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 63 5f 73 68 6f 72 74 | <tr>...........<td><code>c_short |
| 4f80 | 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 | </code></td>...........<td><code |
| 4fa0 | 3e 73 68 6f 72 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | >short</code></td>...........<td |
| 4fc0 | 3e 66 6f 72 20 41 42 49 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 43 3c 2f 74 | >for.ABI.compatibility.with.C</t |
| 4fe0 | 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 | d>.........</tr>.........<tr>... |
| 5000 | 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 63 5f 75 73 68 6f 72 74 3c 2f 63 6f 64 65 | ........<td><code>c_ushort</code |
| 5020 | 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 6e 73 69 67 | ></td>...........<td><code>unsig |
| 5040 | 6e 65 64 20 73 68 6f 72 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 | ned.short</code></td>........... |
| 5060 | 3c 74 64 3e 66 6f 72 20 41 42 49 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 43 | <td>for.ABI.compatibility.with.C |
| 5080 | 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e | </td>.........</tr>.........<tr> |
| 50a0 | 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 63 5f 69 6e 74 3c 2f 63 6f 64 65 | ...........<td><code>c_int</code |
| 50c0 | 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 69 6e 74 3c 2f | ></td>...........<td><code>int</ |
| 50e0 | 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 66 6f 72 20 41 42 49 | code></td>...........<td>for.ABI |
| 5100 | 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a 20 20 20 20 20 | .compatibility.with.C</td>...... |
| 5120 | 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 | ...</tr>.........<tr>........... |
| 5140 | 3c 74 64 3e 3c 63 6f 64 65 3e 63 5f 75 69 6e 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 | <td><code>c_uint</code></td>.... |
| 5160 | 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 6e 73 69 67 6e 65 64 20 69 6e 74 3c 2f 63 | .......<td><code>unsigned.int</c |
| 5180 | 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 66 6f 72 20 41 42 49 20 | ode></td>...........<td>for.ABI. |
| 51a0 | 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a 20 20 20 20 20 20 | compatibility.with.C</td>....... |
| 51c0 | 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c | ..</tr>.........<tr>...........< |
| 51e0 | 74 64 3e 3c 63 6f 64 65 3e 63 5f 6c 6f 6e 67 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 | td><code>c_long</code></td>..... |
| 5200 | 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 6c 6f 6e 67 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e | ......<td><code>long</code></td> |
| 5220 | 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 66 6f 72 20 41 42 49 20 63 6f 6d 70 61 74 69 62 69 | ...........<td>for.ABI.compatibi |
| 5240 | 6c 69 74 79 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 | lity.with.C</td>.........</tr>.. |
| 5260 | 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e | .......<tr>...........<td><code> |
| 5280 | 63 5f 75 6c 6f 6e 67 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 | c_ulong</code></td>...........<t |
| 52a0 | 64 3e 3c 63 6f 64 65 3e 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 3c 2f 63 6f 64 65 3e 3c 2f 74 64 | d><code>unsigned.long</code></td |
| 52c0 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 66 6f 72 20 41 42 49 20 63 6f 6d 70 61 74 69 62 | >...........<td>for.ABI.compatib |
| 52e0 | 69 6c 69 74 79 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a | ility.with.C</td>.........</tr>. |
| 5300 | 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 | ........<tr>...........<td><code |
| 5320 | 3e 63 5f 6c 6f 6e 67 6c 6f 6e 67 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 | >c_longlong</code></td>......... |
| 5340 | 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 6c 6f 6e 67 20 6c 6f 6e 67 3c 2f 63 6f 64 65 3e 3c 2f 74 64 | ..<td><code>long.long</code></td |
| 5360 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 66 6f 72 20 41 42 49 20 63 6f 6d 70 61 74 69 62 | >...........<td>for.ABI.compatib |
| 5380 | 69 6c 69 74 79 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a | ility.with.C</td>.........</tr>. |
| 53a0 | 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 | ........<tr>...........<td><code |
| 53c0 | 3e 63 5f 75 6c 6f 6e 67 6c 6f 6e 67 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 | >c_ulonglong</code></td>........ |
| 53e0 | 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 6c 6f 6e 67 3c | ...<td><code>unsigned.long.long< |
| 5400 | 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 66 6f 72 20 41 42 | /code></td>...........<td>for.AB |
| 5420 | 49 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a 20 20 20 20 | I.compatibility.with.C</td>..... |
| 5440 | 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 | ....</tr>.........<tr>.......... |
| 5460 | 20 3c 74 64 3e 3c 63 6f 64 65 3e 63 5f 6c 6f 6e 67 64 6f 75 62 6c 65 3c 2f 63 6f 64 65 3e 3c 2f | .<td><code>c_longdouble</code></ |
| 5480 | 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 6c 6f 6e 67 20 64 6f 75 | td>...........<td><code>long.dou |
| 54a0 | 62 6c 65 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 66 6f | ble</code></td>...........<td>fo |
| 54c0 | 72 20 41 42 49 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a | r.ABI.compatibility.with.C</td>. |
| 54e0 | 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 | ........</tr>.........<tr>...... |
| 5500 | 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 63 5f 76 6f 69 64 3c 2f 63 6f 64 65 3e 3c 2f 74 64 | .....<td><code>c_void</code></td |
| 5520 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 76 6f 69 64 3c 2f 63 6f 64 65 | >...........<td><code>void</code |
| 5540 | 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 66 6f 72 20 41 42 49 20 63 6f 6d | ></td>...........<td>for.ABI.com |
| 5560 | 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c | patibility.with.C</td>.........< |
| 5580 | 2f 74 72 3e 0a 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | /tr>..........<tr>...........<td |
| 55a0 | 3e 3c 63 6f 64 65 3e 66 33 32 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 | ><code>f32</code></td>.......... |
| 55c0 | 20 3c 74 64 3e 3c 63 6f 64 65 3e 66 6c 6f 61 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 | .<td><code>float</code></td>.... |
| 55e0 | 20 20 20 20 20 20 20 3c 74 64 3e 33 32 2d 62 69 74 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 | .......<td>32-bit.floating.point |
| 5600 | 20 28 32 33 2d 62 69 74 20 6d 61 6e 74 69 73 73 61 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 | .(23-bit.mantissa)</td>......... |
| 5620 | 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | </tr>.........<tr>...........<td |
| 5640 | 3e 3c 63 6f 64 65 3e 66 36 34 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 | ><code>f64</code></td>.......... |
| 5660 | 20 3c 74 64 3e 3c 63 6f 64 65 3e 64 6f 75 62 6c 65 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 | .<td><code>double</code></td>... |
| 5680 | 20 20 20 20 20 20 20 20 3c 74 64 3e 36 34 2d 62 69 74 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e | ........<td>64-bit.floating.poin |
| 56a0 | 74 20 28 35 32 2d 62 69 74 20 6d 61 6e 74 69 73 73 61 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 | t.(52-bit.mantissa)</td>........ |
| 56c0 | 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 | .</tr>.........<tr>...........<t |
| 56e0 | 64 3e 3c 63 6f 64 65 3e 66 31 32 38 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 | d><code>f128</code></td>........ |
| 5700 | 20 20 20 3c 74 64 3e 28 6e 6f 6e 65 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | ...<td>(none)</td>...........<td |
| 5720 | 3e 31 32 38 2d 62 69 74 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 28 31 31 32 2d 62 69 74 | >128-bit.floating.point.(112-bit |
| 5740 | 20 6d 61 6e 74 69 73 73 61 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 | .mantissa)</td>.........</tr>... |
| 5760 | 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 62 | ......<tr>...........<td><code>b |
| 5780 | 6f 6f 6c 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 | ool</code></td>...........<td><c |
| 57a0 | 6f 64 65 3e 62 6f 6f 6c 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c | ode>bool</code></td>...........< |
| 57c0 | 74 64 3e 3c 63 6f 64 65 3e 74 72 75 65 3c 2f 63 6f 64 65 3e 20 6f 72 20 3c 63 6f 64 65 3e 66 61 | td><code>true</code>.or.<code>fa |
| 57e0 | 6c 73 65 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 | lse</code></td>.........</tr>... |
| 5800 | 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 76 | ......<tr>...........<td><code>v |
| 5820 | 6f 69 64 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 28 6e | oid</code></td>...........<td>(n |
| 5840 | 6f 6e 65 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 30 20 62 69 74 20 74 79 | one)</td>...........<td>0.bit.ty |
| 5860 | 70 65 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 | pe</td>.........</tr>.........<t |
| 5880 | 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 6e 6f 72 65 74 75 72 6e 3c | r>...........<td><code>noreturn< |
| 58a0 | 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 28 6e 6f 6e 65 29 | /code></td>...........<td>(none) |
| 58c0 | 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 74 68 65 20 74 79 70 65 20 6f 66 20 | </td>...........<td>the.type.of. |
| 58e0 | 3c 63 6f 64 65 3e 62 72 65 61 6b 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 63 6f 6e 74 69 6e | <code>break</code>,.<code>contin |
| 5900 | 75 65 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 67 6f 74 6f 3c 2f 63 6f 64 65 3e 2c 20 3c 63 | ue</code>,.<code>goto</code>,.<c |
| 5920 | 6f 64 65 3e 72 65 74 75 72 6e 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 75 6e 72 65 61 63 68 | ode>return</code>,.<code>unreach |
| 5940 | 61 62 6c 65 3c 2f 63 6f 64 65 3e 2c 20 61 6e 64 20 3c 63 6f 64 65 3e 77 68 69 6c 65 20 28 74 72 | able</code>,.and.<code>while.(tr |
| 5960 | 75 65 29 20 7b 7d 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e | ue).{}</code></td>.........</tr> |
| 5980 | 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 | .........<tr>...........<td><cod |
| 59a0 | 65 3e 74 79 70 65 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | e>type</code></td>...........<td |
| 59c0 | 3e 28 6e 6f 6e 65 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 74 68 65 20 74 | >(none)</td>...........<td>the.t |
| 59e0 | 79 70 65 20 6f 66 20 74 79 70 65 73 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a | ype.of.types</td>.........</tr>. |
| 5a00 | 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 | ........<tr>...........<td><code |
| 5a20 | 3e 65 72 72 6f 72 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | >error</code></td>...........<td |
| 5a40 | 3e 28 6e 6f 6e 65 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 61 6e 20 65 72 | >(none)</td>...........<td>an.er |
| 5a60 | 72 6f 72 20 63 6f 64 65 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 | ror.code</td>.........</tr>..... |
| 5a80 | 20 20 3c 2f 74 61 62 6c 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 | ..</table>.......<p>See.also:</p |
| 5aa0 | 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 | >.......<ul>.........<li><a.href |
| 5ac0 | 3d 22 23 69 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 | ="#integers">Integers</a></li>.. |
| 5ae0 | 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 6c 6f 61 74 73 22 3e 46 6c 6f | .......<li><a.href="#floats">Flo |
| 5b00 | 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 | ats</a></li>.........<li><a.href |
| 5b20 | 3d 22 23 76 6f 69 64 22 3e 76 6f 69 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c | ="#void">void</a></li>.........< |
| 5b40 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 72 72 6f 72 73 22 3e 45 72 72 6f 72 73 3c 2f 61 3e 3c | li><a.href="#errors">Errors</a>< |
| 5b60 | 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 70 | /li>.......</ul>.......<h3.id="p |
| 5b80 | 72 69 6d 69 74 69 76 65 2d 76 61 6c 75 65 73 22 3e 50 72 69 6d 69 74 69 76 65 20 56 61 6c 75 65 | rimitive-values">Primitive.Value |
| 5ba0 | 73 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 74 61 62 6c 65 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 | s</h3>.......<table>.........<tr |
| 5bc0 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 4e 61 6d | >...........<th>.............Nam |
| 5be0 | 65 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 3e | e...........</th>...........<th> |
| 5c00 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 44 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 20 20 20 20 | .............Description........ |
| 5c20 | 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c | ...</th>.........</tr>.........< |
| 5c40 | 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 74 72 75 65 3c 2f 63 6f | tr>...........<td><code>true</co |
| 5c60 | 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a | de>.and.<code>false</code></td>. |
| 5c80 | 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 62 6f 6f 6c 3c 2f 63 6f 64 65 3e 20 | ..........<td><code>bool</code>. |
| 5ca0 | 76 61 6c 75 65 73 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 | values</td>.........</tr>....... |
| 5cc0 | 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 6e 75 6c 6c 3c | ..<tr>...........<td><code>null< |
| 5ce0 | 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 75 73 65 64 20 74 | /code></td>...........<td>used.t |
| 5d00 | 6f 20 73 65 74 20 61 20 6e 75 6c 6c 61 62 6c 65 20 74 79 70 65 20 74 6f 20 3c 63 6f 64 65 3e 6e | o.set.a.nullable.type.to.<code>n |
| 5d20 | 75 6c 6c 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 | ull</code></td>.........</tr>... |
| 5d40 | 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 | ......<tr>...........<td><code>u |
| 5d60 | 6e 64 65 66 69 6e 65 64 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c | ndefined</code></td>...........< |
| 5d80 | 74 64 3e 75 73 65 64 20 74 6f 20 6c 65 61 76 65 20 61 20 76 61 6c 75 65 20 75 6e 73 70 65 63 69 | td>used.to.leave.a.value.unspeci |
| 5da0 | 66 69 65 64 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 | fied</td>.........</tr>......... |
| 5dc0 | 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 74 68 69 73 3c 2f 63 | <tr>...........<td><code>this</c |
| 5de0 | 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 72 65 66 65 72 73 20 74 | ode></td>...........<td>refers.t |
| 5e00 | 6f 20 74 68 65 20 74 68 69 6e 67 20 69 6e 20 69 6d 6d 65 64 69 61 74 65 20 73 63 6f 70 65 3c 2f | o.the.thing.in.immediate.scope</ |
| 5e20 | 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 3c 2f 74 61 62 6c 65 3e | td>.........</tr>.......</table> |
| 5e40 | 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 | .......<p>See.also:</p>.......<u |
| 5e60 | 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6e 75 6c 6c 61 62 6c | l>.........<li><a.href="#nullabl |
| 5e80 | 65 73 22 3e 4e 75 6c 6c 61 62 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c | es">Nullables</a></li>.........< |
| 5ea0 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 74 68 69 73 22 3e 74 68 69 73 3c 2f 61 3e 3c 2f 6c 69 3e | li><a.href="#this">this</a></li> |
| 5ec0 | 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 73 74 72 69 6e | .......</ul>.......<h3.id="strin |
| 5ee0 | 67 2d 6c 69 74 65 72 61 6c 73 22 3e 53 74 72 69 6e 67 20 4c 69 74 65 72 61 6c 73 3c 2f 68 33 3e | g-literals">String.Literals</h3> |
| 5f00 | 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f | .......<pre><code.class="zig">co |
| 5f20 | 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 75 | nst.assert.=.@import("std").debu |
| 5f40 | 67 2e 61 73 73 65 72 74 3b 0a 63 6f 6e 73 74 20 6d 65 6d 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 | g.assert;.const.mem.=.@import("s |
| 5f60 | 74 64 22 29 2e 6d 65 6d 3b 0a 0a 74 65 73 74 20 22 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 | td").mem;..test."string.literals |
| 5f80 | 22 20 7b 0a 20 20 20 20 2f 2f 20 49 6e 20 5a 69 67 20 61 20 73 74 72 69 6e 67 20 6c 69 74 65 72 | ".{.....//.In.Zig.a.string.liter |
| 5fa0 | 61 6c 20 69 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 62 79 74 65 73 2e 0a 20 20 20 20 63 6f 6e | al.is.an.array.of.bytes......con |
| 5fc0 | 73 74 20 6e 6f 72 6d 61 6c 5f 62 79 74 65 73 20 3d 20 22 68 65 6c 6c 6f 22 3b 0a 20 20 20 20 61 | st.normal_bytes.=."hello";.....a |
| 5fe0 | 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 6e 6f 72 6d 61 6c 5f 62 79 74 65 73 29 20 3d 3d 20 5b | ssert(@typeOf(normal_bytes).==.[ |
| 6000 | 35 5d 75 38 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 6e 6f 72 6d 61 6c 5f 62 79 74 65 73 2e 6c | 5]u8);.....assert(normal_bytes.l |
| 6020 | 65 6e 20 3d 3d 20 35 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 6e 6f 72 6d 61 6c 5f 62 79 74 65 | en.==.5);.....assert(normal_byte |
| 6040 | 73 5b 31 5d 20 3d 3d 20 27 65 27 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 27 65 27 20 3d 3d 20 | s[1].==.'e');.....assert('e'.==. |
| 6060 | 27 5c 78 36 35 27 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 75 38 2c 20 | '\x65');.....assert(mem.eql(u8,. |
| 6080 | 22 68 65 6c 6c 6f 22 2c 20 22 68 5c 78 36 35 6c 6c 6f 22 29 29 3b 0a 0a 20 20 20 20 2f 2f 20 41 | "hello",."h\x65llo"));......//.A |
| 60a0 | 20 43 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 20 69 73 20 61 20 6e 75 6c 6c 20 74 65 72 6d | .C.string.literal.is.a.null.term |
| 60c0 | 69 6e 61 74 65 64 20 70 6f 69 6e 74 65 72 2e 0a 20 20 20 20 63 6f 6e 73 74 20 6e 75 6c 6c 5f 74 | inated.pointer......const.null_t |
| 60e0 | 65 72 6d 69 6e 61 74 65 64 5f 62 79 74 65 73 20 3d 20 63 22 68 65 6c 6c 6f 22 3b 0a 20 20 20 20 | erminated_bytes.=.c"hello";..... |
| 6100 | 61 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 6e 75 6c 6c 5f 74 65 72 6d 69 6e 61 74 65 64 5f 62 | assert(@typeOf(null_terminated_b |
| 6120 | 79 74 65 73 29 20 3d 3d 20 26 61 6d 70 3b 63 6f 6e 73 74 20 75 38 29 3b 0a 20 20 20 20 61 73 73 | ytes).==.&const.u8);.....ass |
| 6140 | 65 72 74 28 6e 75 6c 6c 5f 74 65 72 6d 69 6e 61 74 65 64 5f 62 79 74 65 73 5b 35 5d 20 3d 3d 20 | ert(null_terminated_bytes[5].==. |
| 6160 | 30 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 | 0);.}</code></pre>.......<pre><c |
| 6180 | 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 74 65 73 74 20 73 74 72 69 6e 67 | ode.class="sh">$.zig.test.string |
| 61a0 | 5f 6c 69 74 65 72 61 6c 73 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 73 74 72 69 6e 67 20 6c 69 | _literals.zig.Test.1/1.string.li |
| 61c0 | 74 65 72 61 6c 73 2e 2e 2e 4f 4b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c | terals...OK</code></pre>.......< |
| 61e0 | 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 | p>See.also:</p>.......<ul>...... |
| 6200 | 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 61 72 72 61 79 73 22 3e 41 72 72 61 79 73 3c | ...<li><a.href="#arrays">Arrays< |
| 6220 | 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 7a | /a></li>.........<li><a.href="#z |
| 6240 | 69 67 2d 74 65 73 74 22 3e 5a 69 67 20 54 65 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | ig-test">Zig.Test</a></li>...... |
| 6260 | 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 73 74 72 69 6e 67 2d 6c 69 74 65 | .</ul>.......<h4.id="string-lite |
| 6280 | 72 61 6c 2d 65 73 63 61 70 65 73 22 3e 45 73 63 61 70 65 20 53 65 71 75 65 6e 63 65 73 3c 2f 68 | ral-escapes">Escape.Sequences</h |
| 62a0 | 34 3e 0a 20 20 20 20 20 20 3c 74 61 62 6c 65 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 | 4>.......<table>.........<tr>... |
| 62c0 | 20 20 20 20 20 20 20 20 3c 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 45 73 63 61 70 65 20 | ........<th>.............Escape. |
| 62e0 | 53 65 71 75 65 6e 63 65 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 | Sequence...........</th>........ |
| 6300 | 20 20 20 3c 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 4e 61 6d 65 0a 20 20 20 20 20 20 20 | ...<th>.............Name........ |
| 6320 | 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c | ...</th>.........</tr>.........< |
| 6340 | 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 5c 6e 3c 2f 63 6f 64 65 | tr>...........<td><code>\n</code |
| 6360 | 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 4e 65 77 6c 69 6e 65 3c 2f 74 64 | ></td>...........<td>Newline</td |
| 6380 | 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 | >.........</tr>.........<tr>.... |
| 63a0 | 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 5c 72 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a | .......<td><code>\r</code></td>. |
| 63c0 | 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 43 61 72 72 69 61 67 65 20 52 65 74 75 72 6e 3c 2f 74 | ..........<td>Carriage.Return</t |
| 63e0 | 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 | d>.........</tr>.........<tr>... |
| 6400 | 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 5c 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e | ........<td><code>\t</code></td> |
| 6420 | 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 54 61 62 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 | ...........<td>Tab</td>......... |
| 6440 | 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | </tr>.........<tr>...........<td |
| 6460 | 3e 3c 63 6f 64 65 3e 5c 5c 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 | ><code>\\</code></td>........... |
| 6480 | 3c 74 64 3e 42 61 63 6b 73 6c 61 73 68 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e | <td>Backslash</td>.........</tr> |
| 64a0 | 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 | .........<tr>...........<td><cod |
| 64c0 | 65 3e 5c 27 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 53 | e>\'</code></td>...........<td>S |
| 64e0 | 69 6e 67 6c 65 20 51 75 6f 74 65 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 | ingle.Quote</td>.........</tr>.. |
| 6500 | 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e | .......<tr>...........<td><code> |
| 6520 | 5c 22 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 44 6f 75 | \"</code></td>...........<td>Dou |
| 6540 | 62 6c 65 20 51 75 6f 74 65 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 | ble.Quote</td>.........</tr>.... |
| 6560 | 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 5c 78 | .....<tr>...........<td><code>\x |
| 6580 | 4e 4e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 68 65 78 | NN</code></td>...........<td>hex |
| 65a0 | 61 64 65 63 69 6d 61 6c 20 38 2d 62 69 74 20 63 68 61 72 61 63 74 65 72 20 63 6f 64 65 20 28 32 | adecimal.8-bit.character.code.(2 |
| 65c0 | 20 64 69 67 69 74 73 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 | .digits)</td>.........</tr>..... |
| 65e0 | 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 5c 75 4e | ....<tr>...........<td><code>\uN |
| 6600 | 4e 4e 4e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 68 65 | NNN</code></td>...........<td>he |
| 6620 | 78 61 64 65 63 69 6d 61 6c 20 31 36 2d 62 69 74 20 55 6e 69 63 6f 64 65 20 63 68 61 72 61 63 74 | xadecimal.16-bit.Unicode.charact |
| 6640 | 65 72 20 63 6f 64 65 20 55 54 46 2d 38 20 65 6e 63 6f 64 65 64 20 28 34 20 64 69 67 69 74 73 29 | er.code.UTF-8.encoded.(4.digits) |
| 6660 | 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e | </td>.........</tr>.........<tr> |
| 6680 | 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 5c 55 4e 4e 4e 4e 4e 4e 3c 2f 63 | ...........<td><code>\UNNNNNN</c |
| 66a0 | 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 68 65 78 61 64 65 63 69 | ode></td>...........<td>hexadeci |
| 66c0 | 6d 61 6c 20 32 34 2d 62 69 74 20 55 6e 69 63 6f 64 65 20 63 68 61 72 61 63 74 65 72 20 63 6f 64 | mal.24-bit.Unicode.character.cod |
| 66e0 | 65 20 55 54 46 2d 38 20 65 6e 63 6f 64 65 64 20 28 36 20 64 69 67 69 74 73 29 3c 2f 74 64 3e 0a | e.UTF-8.encoded.(6.digits)</td>. |
| 6700 | 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 3c 2f 74 61 62 6c 65 3e 0a 20 20 20 | ........</tr>.......</table>.... |
| 6720 | 20 20 20 3c 70 3e 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 76 61 6c 69 | ...<p>Note.that.the.maximum.vali |
| 6740 | 64 20 55 6e 69 63 6f 64 65 20 70 6f 69 6e 74 20 69 73 20 3c 63 6f 64 65 3e 30 78 31 30 66 66 66 | d.Unicode.point.is.<code>0x10fff |
| 6760 | 66 3c 2f 63 6f 64 65 3e 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 6d 75 6c 74 | f</code>.</p>.......<h4.id="mult |
| 6780 | 69 6c 69 6e 65 2d 73 74 72 69 6e 67 2d 6c 69 74 65 72 61 6c 73 22 3e 4d 75 6c 74 69 6c 69 6e 65 | iline-string-literals">Multiline |
| 67a0 | 20 53 74 72 69 6e 67 20 4c 69 74 65 72 61 6c 73 3c 2f 68 34 3e 0a 20 20 20 20 20 20 3c 70 3e 0a | .String.Literals</h4>.......<p>. |
| 67c0 | 20 20 20 20 20 20 4d 75 6c 74 69 6c 69 6e 65 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 20 | ......Multiline.string.literals. |
| 67e0 | 68 61 76 65 20 6e 6f 20 65 73 63 61 70 65 73 20 61 6e 64 20 63 61 6e 20 73 70 61 6e 20 61 63 72 | have.no.escapes.and.can.span.acr |
| 6800 | 6f 73 73 20 6d 75 6c 74 69 70 6c 65 20 6c 69 6e 65 73 2e 0a 20 20 20 20 20 20 54 6f 20 73 74 61 | oss.multiple.lines........To.sta |
| 6820 | 72 74 20 61 20 6d 75 6c 74 69 6c 69 6e 65 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 2c 20 75 | rt.a.multiline.string.literal,.u |
| 6840 | 73 65 20 74 68 65 20 3c 63 6f 64 65 3e 5c 5c 3c 2f 63 6f 64 65 3e 20 74 6f 6b 65 6e 2e 20 4a 75 | se.the.<code>\\</code>.token..Ju |
| 6860 | 73 74 20 6c 69 6b 65 20 61 20 63 6f 6d 6d 65 6e 74 2c 0a 20 20 20 20 20 20 74 68 65 20 73 74 72 | st.like.a.comment,.......the.str |
| 6880 | 69 6e 67 20 6c 69 74 65 72 61 6c 20 67 6f 65 73 20 75 6e 74 69 6c 20 74 68 65 20 65 6e 64 20 6f | ing.literal.goes.until.the.end.o |
| 68a0 | 66 20 74 68 65 20 6c 69 6e 65 2e 20 54 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 6c 69 6e 65 20 | f.the.line..The.end.of.the.line. |
| 68c0 | 69 73 0a 20 20 20 20 20 20 6e 6f 74 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 73 74 72 | is.......not.included.in.the.str |
| 68e0 | 69 6e 67 20 6c 69 74 65 72 61 6c 2e 0a 20 20 20 20 20 20 48 6f 77 65 76 65 72 2c 20 69 66 20 74 | ing.literal........However,.if.t |
| 6900 | 68 65 20 6e 65 78 74 20 6c 69 6e 65 20 62 65 67 69 6e 73 20 77 69 74 68 20 3c 63 6f 64 65 3e 5c | he.next.line.begins.with.<code>\ |
| 6920 | 5c 3c 2f 63 6f 64 65 3e 20 74 68 65 6e 20 61 20 6e 65 77 6c 69 6e 65 20 69 73 20 61 70 70 65 6e | \</code>.then.a.newline.is.appen |
| 6940 | 64 65 64 20 61 6e 64 0a 20 20 20 20 20 20 74 68 65 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c | ded.and.......the.string.literal |
| 6960 | 20 63 6f 6e 74 69 6e 75 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 | .continues........</p>.......<pr |
| 6980 | 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 68 65 6c 6c 6f 5f | e><code.class="zig">const.hello_ |
| 69a0 | 77 6f 72 6c 64 5f 69 6e 5f 63 20 3d 0a 20 20 20 20 5c 5c 23 69 6e 63 6c 75 64 65 20 26 6c 74 3b | world_in_c.=.....\\#include.< |
| 69c0 | 73 74 64 69 6f 2e 68 26 67 74 3b 0a 20 20 20 20 5c 5c 0a 20 20 20 20 5c 5c 69 6e 74 20 6d 61 69 | stdio.h>.....\\.....\\int.mai |
| 69e0 | 6e 28 69 6e 74 20 61 72 67 63 2c 20 63 68 61 72 20 2a 2a 61 72 67 76 29 20 7b 0a 20 20 20 20 5c | n(int.argc,.char.**argv).{.....\ |
| 6a00 | 5c 20 20 20 20 70 72 69 6e 74 66 28 22 68 65 6c 6c 6f 20 77 6f 72 6c 64 5c 6e 22 29 3b 0a 20 20 | \....printf("hello.world\n");... |
| 6a20 | 20 20 5c 5c 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 20 20 20 20 5c 5c 7d 0a 3b 3c 2f 63 6f 64 | ..\\....return.0;.....\\}.;</cod |
| 6a40 | 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 61 20 6d | e></pre>.......<p>.......For.a.m |
| 6a60 | 75 6c 74 69 6c 69 6e 65 20 43 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 2c 20 70 72 65 70 65 | ultiline.C.string.literal,.prepe |
| 6a80 | 6e 64 20 3c 63 6f 64 65 3e 63 3c 2f 63 6f 64 65 3e 20 74 6f 20 65 61 63 68 20 3c 63 6f 64 65 3e | nd.<code>c</code>.to.each.<code> |
| 6aa0 | 5c 5c 3c 2f 63 6f 64 65 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 | \\</code>:.......</p>.......<pre |
| 6ac0 | 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 63 5f 73 74 72 69 6e | ><code.class="zig">const.c_strin |
| 6ae0 | 67 5f 6c 69 74 65 72 61 6c 20 3d 0a 20 20 20 20 63 5c 5c 23 69 6e 63 6c 75 64 65 20 26 6c 74 3b | g_literal.=.....c\\#include.< |
| 6b00 | 73 74 64 69 6f 2e 68 26 67 74 3b 0a 20 20 20 20 63 5c 5c 0a 20 20 20 20 63 5c 5c 69 6e 74 20 6d | stdio.h>.....c\\.....c\\int.m |
| 6b20 | 61 69 6e 28 69 6e 74 20 61 72 67 63 2c 20 63 68 61 72 20 2a 2a 61 72 67 76 29 20 7b 0a 20 20 20 | ain(int.argc,.char.**argv).{.... |
| 6b40 | 20 63 5c 5c 20 20 20 20 70 72 69 6e 74 66 28 22 68 65 6c 6c 6f 20 77 6f 72 6c 64 5c 6e 22 29 3b | .c\\....printf("hello.world\n"); |
| 6b60 | 0a 20 20 20 20 63 5c 5c 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 20 20 20 20 63 5c 5c 7d 0a 3b | .....c\\....return.0;.....c\\}.; |
| 6b80 | 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e | </code></pre>.......<p>.......In |
| 6ba0 | 20 74 68 69 73 20 65 78 61 6d 70 6c 65 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 3c 63 6f 64 65 | .this.example.the.variable.<code |
| 6bc0 | 3e 63 5f 73 74 72 69 6e 67 5f 6c 69 74 65 72 61 6c 3c 2f 63 6f 64 65 3e 20 68 61 73 20 74 79 70 | >c_string_literal</code>.has.typ |
| 6be0 | 65 20 3c 63 6f 64 65 3e 26 61 6d 70 3b 63 6f 6e 73 74 20 63 68 61 72 3c 2f 63 6f 64 65 3e 20 61 | e.<code>&const.char</code>.a |
| 6c00 | 6e 64 0a 20 20 20 20 20 20 68 61 73 20 61 20 74 65 72 6d 69 6e 61 74 69 6e 67 20 6e 75 6c 6c 20 | nd.......has.a.terminating.null. |
| 6c20 | 62 79 74 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c | byte........</p>.......<p>See.al |
| 6c40 | 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c | so:</p>.......<ul>.........<li>< |
| 6c60 | 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 65 6d 62 65 64 46 69 6c 65 22 3e 40 65 6d 62 | a.href="#builtin-embedFile">@emb |
| 6c80 | 65 64 46 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 | edFile</a></li>.......</ul>..... |
| 6ca0 | 20 20 3c 68 33 20 69 64 3d 22 76 61 6c 75 65 73 2d 61 73 73 69 67 6e 6d 65 6e 74 22 3e 41 73 73 | ..<h3.id="values-assignment">Ass |
| 6cc0 | 69 67 6e 6d 65 6e 74 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 3e 55 73 65 20 3c 63 6f 64 65 3e | ignment</h3>.......<p>Use.<code> |
| 6ce0 | 63 6f 6e 73 74 3c 2f 63 6f 64 65 3e 20 74 6f 20 61 73 73 69 67 6e 20 61 20 76 61 6c 75 65 20 74 | const</code>.to.assign.a.value.t |
| 6d00 | 6f 20 61 6e 20 69 64 65 6e 74 69 66 69 65 72 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e | o.an.identifier:</p>.......<pre> |
| 6d20 | 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 78 20 3d 20 31 32 33 34 | <code.class="zig">const.x.=.1234 |
| 6d40 | 3b 0a 0a 66 6e 20 66 6f 6f 28 29 20 7b 0a 20 20 20 20 2f 2f 20 49 74 20 77 6f 72 6b 73 20 61 74 | ;..fn.foo().{.....//.It.works.at |
| 6d60 | 20 67 6c 6f 62 61 6c 20 73 63 6f 70 65 20 61 73 20 77 65 6c 6c 20 61 73 20 69 6e 73 69 64 65 20 | .global.scope.as.well.as.inside. |
| 6d80 | 66 75 6e 63 74 69 6f 6e 73 2e 0a 20 20 20 20 63 6f 6e 73 74 20 79 20 3d 20 35 36 37 38 3b 0a 0a | functions......const.y.=.5678;.. |
| 6da0 | 20 20 20 20 2f 2f 20 4f 6e 63 65 20 61 73 73 69 67 6e 65 64 2c 20 61 6e 20 69 64 65 6e 74 69 66 | ....//.Once.assigned,.an.identif |
| 6dc0 | 69 65 72 20 63 61 6e 6e 6f 74 20 62 65 20 63 68 61 6e 67 65 64 2e 0a 20 20 20 20 79 20 2b 3d 20 | ier.cannot.be.changed......y.+=. |
| 6de0 | 31 3b 0a 7d 0a 0a 74 65 73 74 20 22 61 73 73 69 67 6e 6d 65 6e 74 22 20 7b 0a 20 20 20 20 66 6f | 1;.}..test."assignment".{.....fo |
| 6e00 | 6f 28 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c | o();.}</code></pre>.......<pre>< |
| 6e20 | 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e | code.class="sh">$.zig.test.test. |
| 6e40 | 7a 69 67 0a 74 65 73 74 2e 7a 69 67 3a 38 3a 37 3a 20 65 72 72 6f 72 3a 20 63 61 6e 6e 6f 74 20 | zig.test.zig:8:7:.error:.cannot. |
| 6e60 | 61 73 73 69 67 6e 20 74 6f 20 63 6f 6e 73 74 61 6e 74 0a 20 20 20 20 79 20 2b 3d 20 31 3b 0a 20 | assign.to.constant.....y.+=.1;.. |
| 6e80 | 20 20 20 20 20 5e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 49 66 20 | .....^</code></pre>.......<p>If. |
| 6ea0 | 79 6f 75 20 6e 65 65 64 20 61 20 76 61 72 69 61 62 6c 65 20 74 68 61 74 20 79 6f 75 20 63 61 6e | you.need.a.variable.that.you.can |
| 6ec0 | 20 6d 6f 64 69 66 79 2c 20 75 73 65 20 3c 63 6f 64 65 3e 76 61 72 3c 2f 63 6f 64 65 3e 3a 3c 2f | .modify,.use.<code>var</code>:</ |
| 6ee0 | 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e | p>.......<pre><code.class="zig"> |
| 6f00 | 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 | const.assert.=.@import("std").de |
| 6f20 | 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 74 65 73 74 20 22 76 61 72 22 20 7b 0a 20 20 20 20 76 61 | bug.assert;..test."var".{.....va |
| 6f40 | 72 20 79 3a 20 69 33 32 20 3d 20 35 36 37 38 3b 0a 0a 20 20 20 20 79 20 2b 3d 20 31 3b 0a 0a 20 | r.y:.i32.=.5678;......y.+=.1;... |
| 6f60 | 20 20 20 61 73 73 65 72 74 28 79 20 3d 3d 20 35 36 37 39 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f | ...assert(y.==.5679);.}</code></ |
| 6f80 | 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 | pre>.......<pre><code.class="sh" |
| 6fa0 | 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 61 73 | >$.zig.test.test.zig.Test.1/1.as |
| 6fc0 | 73 69 67 6e 6d 65 6e 74 2e 2e 2e 4f 4b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 | signment...OK</code></pre>...... |
| 6fe0 | 20 3c 70 3e 56 61 72 69 61 62 6c 65 73 20 6d 75 73 74 20 62 65 20 69 6e 69 74 69 61 6c 69 7a 65 | .<p>Variables.must.be.initialize |
| 7000 | 64 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a | d:</p>.......<pre><code.class="z |
| 7020 | 69 67 22 3e 74 65 73 74 20 22 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 22 20 7b 0a 20 20 20 20 | ig">test."initialization".{..... |
| 7040 | 76 61 72 20 78 3a 20 69 33 32 3b 0a 0a 20 20 20 20 78 20 3d 20 31 3b 0a 7d 3c 2f 63 6f 64 65 3e | var.x:.i32;......x.=.1;.}</code> |
| 7060 | 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 | </pre>.......<pre><code.class="s |
| 7080 | 68 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 74 65 73 74 2e 7a 69 67 3a | h">$.zig.test.test.zig.test.zig: |
| 70a0 | 33 3a 35 3a 20 65 72 72 6f 72 3a 20 76 61 72 69 61 62 6c 65 73 20 6d 75 73 74 20 62 65 20 69 6e | 3:5:.error:.variables.must.be.in |
| 70c0 | 69 74 69 61 6c 69 7a 65 64 0a 20 20 20 20 76 61 72 20 78 3a 20 69 33 32 3b 0a 20 20 20 20 5e 3c | itialized.....var.x:.i32;.....^< |
| 70e0 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 55 73 65 20 3c 63 6f 64 65 3e | /code></pre>.......<p>Use.<code> |
| 7100 | 75 6e 64 65 66 69 6e 65 64 3c 2f 63 6f 64 65 3e 20 74 6f 20 6c 65 61 76 65 20 76 61 72 69 61 62 | undefined</code>.to.leave.variab |
| 7120 | 6c 65 73 20 75 6e 69 6e 69 74 69 61 6c 69 7a 65 64 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 | les.uninitialized:</p>.......<pr |
| 7140 | 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 | e><code.class="zig">const.assert |
| 7160 | 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a | .=.@import("std").debug.assert;. |
| 7180 | 0a 74 65 73 74 20 22 69 6e 69 74 20 77 69 74 68 20 75 6e 64 65 66 69 6e 65 64 22 20 7b 0a 20 20 | .test."init.with.undefined".{... |
| 71a0 | 20 20 76 61 72 20 78 3a 20 69 33 32 20 3d 20 75 6e 64 65 66 69 6e 65 64 3b 0a 20 20 20 20 78 20 | ..var.x:.i32.=.undefined;.....x. |
| 71c0 | 3d 20 31 3b 0a 20 20 20 20 61 73 73 65 72 74 28 78 20 3d 3d 20 31 29 3b 0a 7d 3c 2f 63 6f 64 65 | =.1;.....assert(x.==.1);.}</code |
| 71e0 | 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 | ></pre>.......<pre><code.class=" |
| 7200 | 73 68 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 | sh">$.zig.test.test.zig.Test.1/1 |
| 7220 | 20 69 6e 69 74 20 77 69 74 68 20 75 6e 64 65 66 69 6e 65 64 2e 2e 2e 4f 4b 3c 2f 63 6f 64 65 3e | .init.with.undefined...OK</code> |
| 7240 | 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 69 6e 74 65 67 65 72 73 22 3e 49 | </pre>.......<h2.id="integers">I |
| 7260 | 6e 74 65 67 65 72 73 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 69 6e 74 65 67 | ntegers</h2>.......<h3.id="integ |
| 7280 | 65 72 2d 6c 69 74 65 72 61 6c 73 22 3e 49 6e 74 65 67 65 72 20 4c 69 74 65 72 61 6c 73 3c 2f 68 | er-literals">Integer.Literals</h |
| 72a0 | 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e | 3>.......<pre><code.class="zig"> |
| 72c0 | 63 6f 6e 73 74 20 64 65 63 69 6d 61 6c 5f 69 6e 74 20 3d 20 39 38 32 32 32 3b 0a 63 6f 6e 73 74 | const.decimal_int.=.98222;.const |
| 72e0 | 20 68 65 78 5f 69 6e 74 20 3d 20 30 78 66 66 3b 0a 63 6f 6e 73 74 20 61 6e 6f 74 68 65 72 5f 68 | .hex_int.=.0xff;.const.another_h |
| 7300 | 65 78 5f 69 6e 74 20 3d 20 30 78 46 46 3b 0a 63 6f 6e 73 74 20 6f 63 74 61 6c 5f 69 6e 74 20 3d | ex_int.=.0xFF;.const.octal_int.= |
| 7320 | 20 30 6f 37 35 35 3b 0a 63 6f 6e 73 74 20 62 69 6e 61 72 79 5f 69 6e 74 20 3d 20 30 62 31 31 31 | .0o755;.const.binary_int.=.0b111 |
| 7340 | 31 30 30 30 30 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 | 10000;</code></pre>.......<h3.id |
| 7360 | 3d 22 72 75 6e 74 69 6d 65 2d 69 6e 74 65 67 65 72 2d 76 61 6c 75 65 73 22 3e 52 75 6e 74 69 6d | ="runtime-integer-values">Runtim |
| 7380 | 65 20 49 6e 74 65 67 65 72 20 56 61 6c 75 65 73 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 3e 0a | e.Integer.Values</h3>.......<p>. |
| 73a0 | 20 20 20 20 20 20 49 6e 74 65 67 65 72 20 6c 69 74 65 72 61 6c 73 20 68 61 76 65 20 6e 6f 20 73 | ......Integer.literals.have.no.s |
| 73c0 | 69 7a 65 20 6c 69 6d 69 74 61 74 69 6f 6e 2c 20 61 6e 64 20 69 66 20 61 6e 79 20 75 6e 64 65 66 | ize.limitation,.and.if.any.undef |
| 73e0 | 69 6e 65 64 20 62 65 68 61 76 69 6f 72 20 6f 63 63 75 72 73 2c 0a 20 20 20 20 20 20 74 68 65 20 | ined.behavior.occurs,.......the. |
| 7400 | 63 6f 6d 70 69 6c 65 72 20 63 61 74 63 68 65 73 20 69 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a | compiler.catches.it........</p>. |
| 7420 | 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 48 6f 77 65 76 65 72 2c 20 6f 6e 63 65 20 61 6e | ......<p>.......However,.once.an |
| 7440 | 20 69 6e 74 65 67 65 72 20 76 61 6c 75 65 20 69 73 20 6e 6f 20 6c 6f 6e 67 65 72 20 6b 6e 6f 77 | .integer.value.is.no.longer.know |
| 7460 | 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2c 20 69 74 20 6d 75 73 74 20 68 61 76 65 20 | n.at.compile-time,.it.must.have. |
| 7480 | 61 0a 20 20 20 20 20 20 6b 6e 6f 77 6e 20 73 69 7a 65 2c 20 61 6e 64 20 69 73 20 76 75 6c 6e 65 | a.......known.size,.and.is.vulne |
| 74a0 | 72 61 62 6c 65 20 74 6f 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 2e 0a 20 20 20 | rable.to.undefined.behavior..... |
| 74c0 | 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 | ...</p>.......<pre><code.class=" |
| 74e0 | 7a 69 67 22 3e 66 6e 20 64 69 76 69 64 65 28 61 3a 20 69 33 32 2c 20 62 3a 20 69 33 32 29 20 2d | zig">fn.divide(a:.i32,.b:.i32).- |
| 7500 | 26 67 74 3b 20 69 33 32 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 61 20 2f 20 62 3b 0a 7d 3c 2f | >.i32.{.....return.a./.b;.}</ |
| 7520 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 74 | code></pre>.......<p>.......In.t |
| 7540 | 68 69 73 20 66 75 6e 63 74 69 6f 6e 2c 20 76 61 6c 75 65 73 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f | his.function,.values.<code>a</co |
| 7560 | 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 20 61 72 65 20 6b 6e 6f 77 6e | de>.and.<code>b</code>.are.known |
| 7580 | 20 6f 6e 6c 79 20 61 74 20 72 75 6e 74 69 6d 65 2c 0a 20 20 20 20 20 20 61 6e 64 20 74 68 75 73 | .only.at.runtime,.......and.thus |
| 75a0 | 20 74 68 69 73 20 64 69 76 69 73 69 6f 6e 20 6f 70 65 72 61 74 69 6f 6e 20 69 73 20 76 75 6c 6e | .this.division.operation.is.vuln |
| 75c0 | 65 72 61 62 6c 65 20 74 6f 20 62 6f 74 68 20 69 6e 74 65 67 65 72 20 6f 76 65 72 66 6c 6f 77 20 | erable.to.both.integer.overflow. |
| 75e0 | 61 6e 64 0a 20 20 20 20 20 20 64 69 76 69 73 69 6f 6e 20 62 79 20 7a 65 72 6f 2e 0a 20 20 20 20 | and.......division.by.zero...... |
| 7600 | 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4f 70 65 72 61 74 6f 72 73 | ..</p>.......<p>.......Operators |
| 7620 | 20 73 75 63 68 20 61 73 20 3c 63 6f 64 65 3e 2b 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 | .such.as.<code>+</code>.and.<cod |
| 7640 | 65 3e 2d 3c 2f 63 6f 64 65 3e 20 63 61 75 73 65 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 | e>-</code>.cause.undefined.behav |
| 7660 | 69 6f 72 20 6f 6e 0a 20 20 20 20 20 20 69 6e 74 65 67 65 72 20 6f 76 65 72 66 6c 6f 77 2e 20 41 | ior.on.......integer.overflow..A |
| 7680 | 6c 73 6f 20 61 76 61 69 6c 61 62 6c 65 20 61 72 65 20 6f 70 65 72 61 74 69 6f 6e 73 20 73 75 63 | lso.available.are.operations.suc |
| 76a0 | 68 20 61 73 20 3c 63 6f 64 65 3e 2b 25 3c 2f 63 6f 64 65 3e 20 61 6e 64 0a 20 20 20 20 20 20 3c | h.as.<code>+%</code>.and.......< |
| 76c0 | 63 6f 64 65 3e 2d 25 3c 2f 63 6f 64 65 3e 20 77 68 69 63 68 20 61 72 65 20 64 65 66 69 6e 65 64 | code>-%</code>.which.are.defined |
| 76e0 | 20 74 6f 20 68 61 76 65 20 77 72 61 70 70 69 6e 67 20 61 72 69 74 68 6d 65 74 69 63 20 6f 6e 20 | .to.have.wrapping.arithmetic.on. |
| 7700 | 61 6c 6c 20 74 61 72 67 65 74 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 | all.targets........</p>.......<p |
| 7720 | 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 | >See.also:</p>.......<ul>....... |
| 7740 | 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 2d 69 6e 74 65 67 65 72 2d 6f 76 | ..<li><a.href="#undef-integer-ov |
| 7760 | 65 72 66 6c 6f 77 22 3e 49 6e 74 65 67 65 72 20 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 3c 2f 6c 69 | erflow">Integer.Overflow</a></li |
| 7780 | 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 2d 64 69 | >.........<li><a.href="#undef-di |
| 77a0 | 76 69 73 69 6f 6e 2d 62 79 2d 7a 65 72 6f 22 3e 44 69 76 69 73 69 6f 6e 20 42 79 20 5a 65 72 6f | vision-by-zero">Division.By.Zero |
| 77c0 | 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | </a></li>.........<li><a.href="# |
| 77e0 | 75 6e 64 65 66 2d 69 6e 74 2d 6f 76 65 72 66 6c 6f 77 2d 77 72 61 70 22 3e 57 72 61 70 70 69 6e | undef-int-overflow-wrap">Wrappin |
| 7800 | 67 20 4f 70 65 72 61 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c | g.Operations</a></li>.......</ul |
| 7820 | 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 66 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f | >.......<h2.id="floats">Floats</ |
| 7840 | 68 32 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 66 6c 6f 61 74 2d 6c 69 74 65 72 61 6c 73 | h2>.......<h3.id="float-literals |
| 7860 | 22 3e 46 6c 6f 61 74 20 4c 69 74 65 72 61 6c 73 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 | ">Float.Literals</h3>.......<pre |
| 7880 | 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 66 6c 6f 61 74 69 6e | ><code.class="zig">const.floatin |
| 78a0 | 67 5f 70 6f 69 6e 74 20 3d 20 31 32 33 2e 30 45 2b 37 37 3b 0a 63 6f 6e 73 74 20 61 6e 6f 74 68 | g_point.=.123.0E+77;.const.anoth |
| 78c0 | 65 72 5f 66 6c 6f 61 74 20 3d 20 31 32 33 2e 30 3b 0a 63 6f 6e 73 74 20 79 65 74 5f 61 6e 6f 74 | er_float.=.123.0;.const.yet_anot |
| 78e0 | 68 65 72 20 3d 20 31 32 33 2e 30 65 2b 37 37 3b 0a 0a 63 6f 6e 73 74 20 68 65 78 5f 66 6c 6f 61 | her.=.123.0e+77;..const.hex_floa |
| 7900 | 74 69 6e 67 5f 70 6f 69 6e 74 20 3d 20 30 78 31 30 33 2e 37 30 70 2d 35 3b 0a 63 6f 6e 73 74 20 | ting_point.=.0x103.70p-5;.const. |
| 7920 | 61 6e 6f 74 68 65 72 5f 68 65 78 5f 66 6c 6f 61 74 20 3d 20 30 78 31 30 33 2e 37 30 3b 0a 63 6f | another_hex_float.=.0x103.70;.co |
| 7940 | 6e 73 74 20 79 65 74 5f 61 6e 6f 74 68 65 72 5f 68 65 78 5f 66 6c 6f 61 74 20 3d 20 30 78 31 30 | nst.yet_another_hex_float.=.0x10 |
| 7960 | 33 2e 37 30 50 2d 35 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 68 33 20 | 3.70P-5;</code></pre>.......<h3. |
| 7980 | 69 64 3d 22 66 6c 6f 61 74 2d 6f 70 65 72 61 74 69 6f 6e 73 22 3e 46 6c 6f 61 74 69 6e 67 20 50 | id="float-operations">Floating.P |
| 79a0 | 6f 69 6e 74 20 4f 70 65 72 61 74 69 6f 6e 73 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 3e 42 79 | oint.Operations</h3>.......<p>By |
| 79c0 | 20 64 65 66 61 75 6c 74 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6f 70 65 72 61 74 69 6f | .default.floating.point.operatio |
| 79e0 | 6e 73 20 75 73 65 20 3c 63 6f 64 65 3e 4f 70 74 69 6d 69 7a 65 64 3c 2f 63 6f 64 65 3e 20 6d 6f | ns.use.<code>Optimized</code>.mo |
| 7a00 | 64 65 2c 0a 20 20 20 20 20 20 62 75 74 20 79 6f 75 20 63 61 6e 20 73 77 69 74 63 68 20 74 6f 20 | de,.......but.you.can.switch.to. |
| 7a20 | 3c 63 6f 64 65 3e 53 74 72 69 63 74 3c 2f 63 6f 64 65 3e 20 6d 6f 64 65 20 6f 6e 20 61 20 70 65 | <code>Strict</code>.mode.on.a.pe |
| 7a40 | 72 2d 62 6c 6f 63 6b 20 62 61 73 69 73 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 66 6f 6f 2e | r-block.basis:</p>.......<p>foo. |
| 7a60 | 7a 69 67 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 | zig</p>.......<pre><code.class=" |
| 7a80 | 7a 69 67 22 3e 63 6f 6e 73 74 20 62 75 69 6c 74 69 6e 20 3d 20 40 69 6d 70 6f 72 74 28 22 62 75 | zig">const.builtin.=.@import("bu |
| 7aa0 | 69 6c 74 69 6e 22 29 3b 0a 63 6f 6e 73 74 20 62 69 67 20 3d 20 66 36 34 28 31 20 26 6c 74 3b 26 | iltin");.const.big.=.f64(1.<& |
| 7ac0 | 6c 74 3b 20 34 30 29 3b 0a 0a 65 78 70 6f 72 74 20 66 6e 20 66 6f 6f 5f 73 74 72 69 63 74 28 78 | lt;.40);..export.fn.foo_strict(x |
| 7ae0 | 3a 20 66 36 34 29 20 2d 26 67 74 3b 20 66 36 34 20 7b 0a 20 20 20 20 40 73 65 74 46 6c 6f 61 74 | :.f64).->.f64.{.....@setFloat |
| 7b00 | 4d 6f 64 65 28 74 68 69 73 2c 20 62 75 69 6c 74 69 6e 2e 46 6c 6f 61 74 4d 6f 64 65 2e 53 74 72 | Mode(this,.builtin.FloatMode.Str |
| 7b20 | 69 63 74 29 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 78 20 2b 20 62 69 67 20 2d 20 62 69 67 3b 0a | ict);.....return.x.+.big.-.big;. |
| 7b40 | 7d 0a 0a 65 78 70 6f 72 74 20 66 6e 20 66 6f 6f 5f 6f 70 74 69 6d 69 7a 65 64 28 78 3a 20 66 36 | }..export.fn.foo_optimized(x:.f6 |
| 7b60 | 34 29 20 2d 26 67 74 3b 20 66 36 34 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 78 20 2b 20 62 69 | 4).->.f64.{.....return.x.+.bi |
| 7b80 | 67 20 2d 20 62 69 67 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 | g.-.big;.}</code></pre>.......<p |
| 7ba0 | 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 | >test.zig</p>.......<pre><code.c |
| 7bc0 | 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 69 6f 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 | lass="zig">const.io.=.@import("s |
| 7be0 | 74 64 22 29 2e 69 6f 3b 0a 0a 65 78 74 65 72 6e 20 66 6e 20 66 6f 6f 5f 73 74 72 69 63 74 28 78 | td").io;..extern.fn.foo_strict(x |
| 7c00 | 3a 20 66 36 34 29 20 2d 26 67 74 3b 20 66 36 34 3b 0a 65 78 74 65 72 6e 20 66 6e 20 66 6f 6f 5f | :.f64).->.f64;.extern.fn.foo_ |
| 7c20 | 6f 70 74 69 6d 69 7a 65 64 28 78 3a 20 66 36 34 29 20 2d 26 67 74 3b 20 66 36 34 3b 0a 0a 70 75 | optimized(x:.f64).->.f64;..pu |
| 7c40 | 62 20 66 6e 20 6d 61 69 6e 28 29 20 2d 26 67 74 3b 20 25 76 6f 69 64 20 7b 0a 20 20 20 20 63 6f | b.fn.main().->.%void.{.....co |
| 7c60 | 6e 73 74 20 78 20 3d 20 30 2e 30 30 31 3b 0a 20 20 20 20 25 25 69 6f 2e 73 74 64 6f 75 74 2e 70 | nst.x.=.0.001;.....%%io.stdout.p |
| 7c80 | 72 69 6e 74 66 28 22 6f 70 74 69 6d 69 7a 65 64 20 3d 20 7b 7d 5c 6e 22 2c 20 66 6f 6f 5f 6f 70 | rintf("optimized.=.{}\n",.foo_op |
| 7ca0 | 74 69 6d 69 7a 65 64 28 78 29 29 3b 0a 20 20 20 20 25 25 69 6f 2e 73 74 64 6f 75 74 2e 70 72 69 | timized(x));.....%%io.stdout.pri |
| 7cc0 | 6e 74 66 28 22 73 74 72 69 63 74 20 3d 20 7b 7d 5c 6e 22 2c 20 66 6f 6f 5f 73 74 72 69 63 74 28 | ntf("strict.=.{}\n",.foo_strict( |
| 7ce0 | 78 29 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 46 6f 72 | x));.}</code></pre>.......<p>For |
| 7d00 | 20 74 68 69 73 20 74 65 73 74 20 77 65 20 68 61 76 65 20 74 6f 20 73 65 70 61 72 61 74 65 20 63 | .this.test.we.have.to.separate.c |
| 7d20 | 6f 64 65 20 69 6e 74 6f 20 74 77 6f 20 6f 62 6a 65 63 74 20 66 69 6c 65 73 20 2d 0a 20 20 20 20 | ode.into.two.object.files.-..... |
| 7d40 | 20 20 6f 74 68 65 72 77 69 73 65 20 74 68 65 20 6f 70 74 69 6d 69 7a 65 72 20 66 69 67 75 72 65 | ..otherwise.the.optimizer.figure |
| 7d60 | 73 20 6f 75 74 20 61 6c 6c 20 74 68 65 20 76 61 6c 75 65 73 20 61 74 20 63 6f 6d 70 69 6c 65 2d | s.out.all.the.values.at.compile- |
| 7d80 | 74 69 6d 65 2c 0a 20 20 20 20 20 20 77 68 69 63 68 20 6f 70 65 72 61 74 65 73 20 69 6e 20 73 74 | time,.......which.operates.in.st |
| 7da0 | 72 69 63 74 20 6d 6f 64 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 | rict.mode.</p>.......<pre><code. |
| 7dc0 | 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 66 6f 6f 2e 7a | class="sh">$.zig.build-obj.foo.z |
| 7de0 | 69 67 20 2d 2d 72 65 6c 65 61 73 65 2d 66 61 73 74 0a 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 | ig.--release-fast.$.zig.build-ex |
| 7e00 | 65 20 74 65 73 74 2e 7a 69 67 20 2d 2d 6f 62 6a 65 63 74 20 66 6f 6f 2e 6f 0a 24 20 2e 2f 74 65 | e.test.zig.--object.foo.o.$../te |
| 7e20 | 73 74 0a 6f 70 74 69 6d 69 7a 65 64 20 3d 20 31 2e 30 65 2d 32 0a 73 74 72 69 63 74 20 3d 20 39 | st.optimized.=.1.0e-2.strict.=.9 |
| 7e40 | 2e 37 36 35 36 32 35 65 2d 33 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 | .765625e-3</code></pre>.......<p |
| 7e60 | 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 | >See.also:</p>.......<ul>....... |
| 7e80 | 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 73 65 74 46 6c 6f 61 74 | ..<li><a.href="#builtin-setFloat |
| 7ea0 | 4d 6f 64 65 22 3e 40 73 65 74 46 6c 6f 61 74 4d 6f 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 | Mode">@setFloatMode</a></li>.... |
| 7ec0 | 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 2d 64 69 76 69 73 69 6f | .....<li><a.href="#undef-divisio |
| 7ee0 | 6e 2d 62 79 2d 7a 65 72 6f 22 3e 44 69 76 69 73 69 6f 6e 20 42 79 20 5a 65 72 6f 3c 2f 61 3e 3c | n-by-zero">Division.By.Zero</a>< |
| 7f00 | 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 6f | /li>.......</ul>.......<h2.id="o |
| 7f20 | 70 65 72 61 74 6f 72 73 22 3e 4f 70 65 72 61 74 6f 72 73 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c | perators">Operators</h2>.......< |
| 7f40 | 68 33 20 69 64 3d 22 6f 70 65 72 61 74 6f 72 73 2d 74 61 62 6c 65 22 3e 54 61 62 6c 65 20 6f 66 | h3.id="operators-table">Table.of |
| 7f60 | 20 4f 70 65 72 61 74 6f 72 73 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c 74 61 62 6c 65 3e 0a 20 20 | .Operators</h2>.......<table>... |
| 7f80 | 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 3e 0a 20 20 20 20 20 20 | ......<tr>...........<th>....... |
| 7fa0 | 20 20 20 20 20 20 53 79 6e 74 61 78 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 | ......Syntax...........</th>.... |
| 7fc0 | 20 20 20 20 20 20 20 3c 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 52 65 6c 65 76 61 6e 74 | .......<th>.............Relevant |
| 7fe0 | 20 54 79 70 65 73 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 | .Types...........</th>.......... |
| 8000 | 20 3c 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 44 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 | .<th>.............Description... |
| 8020 | 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 3e 0a 20 20 20 | ........</th>...........<th>.... |
| 8040 | 20 20 20 20 20 20 20 20 20 45 78 61 6d 70 6c 65 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e | .........Example...........</th> |
| 8060 | 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 | .........</tr>.........<tr>..... |
| 8080 | 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 | ......<td><pre><code.class="zig" |
| 80a0 | 3e 61 20 2b 20 62 0a 61 20 2b 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a | >a.+.b.a.+=.b</code></pre></td>. |
| 80c0 | 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a | ..........<td>.............<ul>. |
| 80e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 65 | ..............<li><a.href="#inte |
| 8100 | 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 | gers">Integers</a></li>......... |
| 8120 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 6c 6f 61 74 73 22 3e 46 6c 6f 61 | ......<li><a.href="#floats">Floa |
| 8140 | 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 | ts</a></li>.............</ul>... |
| 8160 | 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 41 64 64 69 | ........</td>...........<td>Addi |
| 8180 | 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 | tion..............<ul>.......... |
| 81a0 | 20 20 20 20 20 3c 6c 69 3e 43 61 6e 20 63 61 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 | .....<li>Can.cause.<a.href="#und |
| 81c0 | 65 66 2d 69 6e 74 65 67 65 72 2d 6f 76 65 72 66 6c 6f 77 22 3e 6f 76 65 72 66 6c 6f 77 3c 2f 61 | ef-integer-overflow">overflow</a |
| 81e0 | 3e 20 66 6f 72 20 69 6e 74 65 67 65 72 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | >.for.integers.</li>............ |
| 8200 | 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 | .</ul>...........</td>.......... |
| 8220 | 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 | .<td>.............<pre><code.cla |
| 8240 | 73 73 3d 22 7a 69 67 22 3e 32 20 2b 20 35 20 3d 3d 20 37 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e | ss="zig">2.+.5.==.7</code></pre> |
| 8260 | 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 | ...........</td>.........</tr>.. |
| 8280 | 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c | .......<tr>...........<td><pre>< |
| 82a0 | 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 2b 25 20 62 0a 61 20 2b 25 3d 20 62 3c | code.class="zig">a.+%.b.a.+%=.b< |
| 82c0 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e | /code></pre></td>...........<td> |
| 82e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .............<ul>............... |
| 8300 | 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 | <li><a.href="#integers">Integers |
| 8320 | 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 | </a></li>.............</ul>..... |
| 8340 | 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 57 72 61 70 70 69 | ......</td>...........<td>Wrappi |
| 8360 | 6e 67 20 41 64 64 69 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 | ng.Addition..............<ul>... |
| 8380 | 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 47 75 61 72 61 6e 74 65 65 64 20 74 6f 20 68 61 | ............<li>Guaranteed.to.ha |
| 83a0 | 76 65 20 74 77 6f 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74 20 77 72 61 70 70 69 6e 67 20 62 65 68 61 | ve.twos-complement.wrapping.beha |
| 83c0 | 76 69 6f 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 | vior.</li>.............</ul>.... |
| 83e0 | 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 | .......</td>...........<td>..... |
| 8400 | 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 75 | ........<pre><code.class="zig">u |
| 8420 | 33 32 28 40 6d 61 78 56 61 6c 75 65 28 75 33 32 29 29 20 2b 25 20 31 20 3d 3d 20 30 3c 2f 63 6f | 32(@maxValue(u32)).+%.1.==.0</co |
| 8440 | 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 | de></pre>...........</td>....... |
| 8460 | 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c | ..</tr>.........<tr>...........< |
| 8480 | 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 2d 20 62 0a | td><pre><code.class="zig">a.-.b. |
| 84a0 | 61 20 2d 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 | a.-=.b</code></pre></td>........ |
| 84c0 | 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 | ...<td>.............<ul>........ |
| 84e0 | 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 65 67 65 72 73 22 3e 49 | .......<li><a.href="#integers">I |
| 8500 | 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c | ntegers</a></li>...............< |
| 8520 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 3c | li><a.href="#floats">Floats</a>< |
| 8540 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 | /li>.............</ul>.......... |
| 8560 | 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 53 75 62 74 72 61 63 74 69 6f 6e | .</td>...........<td>Subtraction |
| 8580 | 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..............<ul>.............. |
| 85a0 | 20 3c 6c 69 3e 43 61 6e 20 63 61 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 2d 69 | .<li>Can.cause.<a.href="#undef-i |
| 85c0 | 6e 74 65 67 65 72 2d 6f 76 65 72 66 6c 6f 77 22 3e 6f 76 65 72 66 6c 6f 77 3c 2f 61 3e 20 66 6f | nteger-overflow">overflow</a>.fo |
| 85e0 | 72 20 69 6e 74 65 67 65 72 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 | r.integers.</li>.............</u |
| 8600 | 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | l>...........</td>...........<td |
| 8620 | 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 | >.............<pre><code.class=" |
| 8640 | 7a 69 67 22 3e 32 20 2d 20 35 20 3d 3d 20 2d 33 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 | zig">2.-.5.==.-3</code></pre>... |
| 8660 | 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 | ........</td>.........</tr>..... |
| 8680 | 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 | ....<tr>...........<td><pre><cod |
| 86a0 | 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 2d 25 20 62 0a 61 20 2d 25 3d 20 62 3c 2f 63 6f | e.class="zig">a.-%.b.a.-%=.b</co |
| 86c0 | 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 | de></pre></td>...........<td>... |
| 86e0 | 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 | ..........<ul>...............<li |
| 8700 | 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 | ><a.href="#integers">Integers</a |
| 8720 | 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 | ></li>.............</ul>........ |
| 8740 | 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 57 72 61 70 70 69 6e 67 20 | ...</td>...........<td>Wrapping. |
| 8760 | 53 75 62 74 72 61 63 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 | Subtraction..............<ul>... |
| 8780 | 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 47 75 61 72 61 6e 74 65 65 64 20 74 6f 20 68 61 | ............<li>Guaranteed.to.ha |
| 87a0 | 76 65 20 74 77 6f 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74 20 77 72 61 70 70 69 6e 67 20 62 65 68 61 | ve.twos-complement.wrapping.beha |
| 87c0 | 76 69 6f 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 | vior.</li>.............</ul>.... |
| 87e0 | 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 | .......</td>...........<td>..... |
| 8800 | 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 75 | ........<pre><code.class="zig">u |
| 8820 | 33 32 28 30 29 20 2d 25 20 31 20 3d 3d 20 40 6d 61 78 56 61 6c 75 65 28 75 33 32 29 3c 2f 63 6f | 32(0).-%.1.==.@maxValue(u32)</co |
| 8840 | 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 | de></pre>...........</td>....... |
| 8860 | 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c | ..</tr>.........<tr>...........< |
| 8880 | 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2d 61 3c 63 6f 64 | td><pre><code.class="zig">-a<cod |
| 88a0 | 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 | e></pre></td>...........<td>.... |
| 88c0 | 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e | .........<ul>...............<li> |
| 88e0 | 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e | <a.href="#integers">Integers</a> |
| 8900 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d | </li>...............<li><a.href= |
| 8920 | 22 23 66 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | "#floats">Floats</a></li>....... |
| 8940 | 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 | ......</ul>...........</td>..... |
| 8960 | 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 4e 65 67 61 74 69 6f 6e 2e | ......<td>.............Negation. |
| 8980 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .............<ul>............... |
| 89a0 | 3c 6c 69 3e 43 61 6e 20 63 61 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 2d 69 6e | <li>Can.cause.<a.href="#undef-in |
| 89c0 | 74 65 67 65 72 2d 6f 76 65 72 66 6c 6f 77 22 3e 6f 76 65 72 66 6c 6f 77 3c 2f 61 3e 20 66 6f 72 | teger-overflow">overflow</a>.for |
| 89e0 | 20 69 6e 74 65 67 65 72 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c | .integers.</li>.............</ul |
| 8a00 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e | >...........</td>...........<td> |
| 8a20 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a | .............<pre><code.class="z |
| 8a40 | 69 67 22 3e 2d 31 20 3d 3d 20 30 20 2d 20 31 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 | ig">-1.==.0.-.1</code></pre>.... |
| 8a60 | 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 | .......</td>.........</tr>...... |
| 8a80 | 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 | ...<tr>...........<td><pre><code |
| 8aa0 | 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2d 25 61 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 | .class="zig">-%a<code></pre></td |
| 8ac0 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c | >...........<td>.............<ul |
| 8ae0 | 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e | >...............<li><a.href="#in |
| 8b00 | 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | tegers">Integers</a></li>....... |
| 8b20 | 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 | ......</ul>...........</td>..... |
| 8b40 | 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 57 72 61 70 70 69 6e 67 20 | ......<td>.............Wrapping. |
| 8b60 | 4e 65 67 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 | Negation..............<ul>...... |
| 8b80 | 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 47 75 61 72 61 6e 74 65 65 64 20 74 6f 20 68 61 76 65 20 | .........<li>Guaranteed.to.have. |
| 8ba0 | 74 77 6f 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74 20 77 72 61 70 70 69 6e 67 20 62 65 68 61 76 69 6f | twos-complement.wrapping.behavio |
| 8bc0 | 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 | r.</li>.............</ul>....... |
| 8be0 | 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 | ....</td>...........<td>........ |
| 8c00 | 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2d 25 69 33 | .....<pre><code.class="zig">-%i3 |
| 8c20 | 32 28 40 6d 69 6e 56 61 6c 75 65 28 69 33 32 29 29 20 3d 3d 20 40 6d 69 6e 56 61 6c 75 65 28 69 | 2(@minValue(i32)).==.@minValue(i |
| 8c40 | 33 32 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e | 32)</code></pre>...........</td> |
| 8c60 | 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 | .........</tr>.........<tr>..... |
| 8c80 | 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 | ......<td><pre><code.class="zig" |
| 8ca0 | 3e 61 20 2a 20 62 0a 61 20 2a 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a | >a.*.b.a.*=.b</code></pre></td>. |
| 8cc0 | 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a | ..........<td>.............<ul>. |
| 8ce0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 65 | ..............<li><a.href="#inte |
| 8d00 | 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 | gers">Integers</a></li>......... |
| 8d20 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 6c 6f 61 74 73 22 3e 46 6c 6f 61 | ......<li><a.href="#floats">Floa |
| 8d40 | 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 | ts</a></li>.............</ul>... |
| 8d60 | 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 4d 75 6c 74 | ........</td>...........<td>Mult |
| 8d80 | 69 70 6c 69 63 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 | iplication..............<ul>.... |
| 8da0 | 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 61 6e 20 63 61 75 73 65 20 3c 61 20 68 72 65 66 | ...........<li>Can.cause.<a.href |
| 8dc0 | 3d 22 23 75 6e 64 65 66 2d 69 6e 74 65 67 65 72 2d 6f 76 65 72 66 6c 6f 77 22 3e 6f 76 65 72 66 | ="#undef-integer-overflow">overf |
| 8de0 | 6c 6f 77 3c 2f 61 3e 20 66 6f 72 20 69 6e 74 65 67 65 72 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | low</a>.for.integers.</li>...... |
| 8e00 | 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 | .......</ul>...........</td>.... |
| 8e20 | 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f | .......<td>.............<pre><co |
| 8e40 | 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 32 20 2a 20 35 20 3d 3d 20 31 30 3c 2f 63 6f 64 65 | de.class="zig">2.*.5.==.10</code |
| 8e60 | 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 | ></pre>...........</td>......... |
| 8e80 | 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | </tr>.........<tr>...........<td |
| 8ea0 | 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 2a 25 20 62 0a 61 | ><pre><code.class="zig">a.*%.b.a |
| 8ec0 | 20 2a 25 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 | .*%=.b</code></pre></td>........ |
| 8ee0 | 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 | ...<td>.............<ul>........ |
| 8f00 | 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 65 67 65 72 73 22 3e 49 | .......<li><a.href="#integers">I |
| 8f20 | 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 | ntegers</a></li>.............</u |
| 8f40 | 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | l>...........</td>...........<td |
| 8f60 | 3e 57 72 61 70 70 69 6e 67 20 4d 75 6c 74 69 70 6c 69 63 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 | >Wrapping.Multiplication........ |
| 8f80 | 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 47 75 61 | ......<ul>...............<li>Gua |
| 8fa0 | 72 61 6e 74 65 65 64 20 74 6f 20 68 61 76 65 20 74 77 6f 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74 20 | ranteed.to.have.twos-complement. |
| 8fc0 | 77 72 61 70 70 69 6e 67 20 62 65 68 61 76 69 6f 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 | wrapping.behavior.</li>......... |
| 8fe0 | 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 | ....</ul>...........</td>....... |
| 9000 | 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 | ....<td>.............<pre><code. |
| 9020 | 63 6c 61 73 73 3d 22 7a 69 67 22 3e 75 38 28 32 30 30 29 20 2a 25 20 32 20 3d 3d 20 31 34 34 3c | class="zig">u8(200).*%.2.==.144< |
| 9040 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 | /code></pre>...........</td>.... |
| 9060 | 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 | .....</tr>.........<tr>......... |
| 9080 | 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 2f | ..<td><pre><code.class="zig">a./ |
| 90a0 | 20 62 0a 61 20 2f 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 | .b.a./=.b</code></pre></td>..... |
| 90c0 | 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 | ......<td>.............<ul>..... |
| 90e0 | 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 65 67 65 72 73 | ..........<li><a.href="#integers |
| 9100 | 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ">Integers</a></li>............. |
| 9120 | 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f | ..<li><a.href="#floats">Floats</ |
| 9140 | 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 | a></li>.............</ul>....... |
| 9160 | 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 44 69 76 69 73 6f 6e 2e | ....</td>...........<td>Divison. |
| 9180 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .............<ul>............... |
| 91a0 | 3c 6c 69 3e 43 61 6e 20 63 61 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 2d 69 6e | <li>Can.cause.<a.href="#undef-in |
| 91c0 | 74 65 67 65 72 2d 6f 76 65 72 66 6c 6f 77 22 3e 6f 76 65 72 66 6c 6f 77 3c 2f 61 3e 20 66 6f 72 | teger-overflow">overflow</a>.for |
| 91e0 | 20 69 6e 74 65 67 65 72 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c | .integers.</li>...............<l |
| 9200 | 69 3e 43 61 6e 20 63 61 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 2d 64 69 76 69 | i>Can.cause.<a.href="#undef-divi |
| 9220 | 73 69 6f 6e 2d 62 79 2d 7a 65 72 6f 22 3e 64 69 76 69 73 69 6f 6e 20 62 79 20 7a 65 72 6f 3c 2f | sion-by-zero">division.by.zero</ |
| 9240 | 61 3e 20 66 6f 72 20 69 6e 74 65 67 65 72 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 | a>.for.integers.</li>........... |
| 9260 | 20 20 20 20 3c 6c 69 3e 43 61 6e 20 63 61 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 | ....<li>Can.cause.<a.href="#unde |
| 9280 | 66 2d 64 69 76 69 73 69 6f 6e 2d 62 79 2d 7a 65 72 6f 22 3e 64 69 76 69 73 69 6f 6e 20 62 79 20 | f-division-by-zero">division.by. |
| 92a0 | 7a 65 72 6f 3c 2f 61 3e 20 66 6f 72 20 66 6c 6f 61 74 73 20 69 6e 20 3c 61 20 68 72 65 66 3d 22 | zero</a>.for.floats.in.<a.href=" |
| 92c0 | 23 66 6c 6f 61 74 2d 6f 70 65 72 61 74 69 6f 6e 73 22 3e 46 6c 6f 61 74 4d 6f 64 65 2e 4f 70 74 | #float-operations">FloatMode.Opt |
| 92e0 | 69 6d 69 7a 65 64 20 4d 6f 64 65 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 | imized.Mode</a>.</li>........... |
| 9300 | 20 20 20 20 3c 6c 69 3e 46 6f 72 20 6e 6f 6e 2d 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2d 6b 6e 6f | ....<li>For.non-compile-time-kno |
| 9320 | 77 6e 20 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 73 2c 20 6d 75 73 74 20 75 73 65 0a 20 20 20 | wn.signed.integers,.must.use.... |
| 9340 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 64 | .............<a.href="#builtin-d |
| 9360 | 69 76 54 72 75 6e 63 22 3e 40 64 69 76 54 72 75 6e 63 3c 2f 61 3e 2c 0a 20 20 20 20 20 20 20 20 | ivTrunc">@divTrunc</a>,......... |
| 9380 | 20 20 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 64 69 76 46 6c 6f | ........<a.href="#builtin-divFlo |
| 93a0 | 6f 72 22 3e 40 64 69 76 46 6c 6f 6f 72 3c 2f 61 3e 2c 20 6f 72 0a 20 20 20 20 20 20 20 20 20 20 | or">@divFloor</a>,.or........... |
| 93c0 | 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 64 69 76 45 78 61 63 74 | ......<a.href="#builtin-divExact |
| 93e0 | 22 3e 40 64 69 76 45 78 61 63 74 3c 2f 61 3e 20 69 6e 73 74 65 61 64 20 6f 66 20 3c 63 6f 64 65 | ">@divExact</a>.instead.of.<code |
| 9400 | 3e 2f 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 | >/</code>................</li>.. |
| 9420 | 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e | ...........</ul>...........</td> |
| 9440 | 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 | ...........<td>.............<pre |
| 9460 | 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 31 30 20 2f 20 35 20 3d 3d 20 32 3c 2f | ><code.class="zig">10./.5.==.2</ |
| 9480 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 | code></pre>...........</td>..... |
| 94a0 | 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 | ....</tr>.........<tr>.......... |
| 94c0 | 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 25 20 | .<td><pre><code.class="zig">a.%. |
| 94e0 | 62 0a 61 20 25 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 | b.a.%=.b</code></pre></td>...... |
| 9500 | 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 | .....<td>.............<ul>...... |
| 9520 | 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 65 67 65 72 73 22 | .........<li><a.href="#integers" |
| 9540 | 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | >Integers</a></li>.............. |
| 9560 | 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 | .<li><a.href="#floats">Floats</a |
| 9580 | 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 | ></li>.............</ul>........ |
| 95a0 | 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 52 65 6d 61 69 6e 64 65 72 | ...</td>...........<td>Remainder |
| 95c0 | 20 44 69 76 69 73 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 | .Division..............<ul>..... |
| 95e0 | 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 61 6e 20 63 61 75 73 65 20 3c 61 20 68 72 65 66 3d | ..........<li>Can.cause.<a.href= |
| 9600 | 22 23 75 6e 64 65 66 2d 64 69 76 69 73 69 6f 6e 2d 62 79 2d 7a 65 72 6f 22 3e 64 69 76 69 73 69 | "#undef-division-by-zero">divisi |
| 9620 | 6f 6e 20 62 79 20 7a 65 72 6f 3c 2f 61 3e 20 66 6f 72 20 69 6e 74 65 67 65 72 73 2e 3c 2f 6c 69 | on.by.zero</a>.for.integers.</li |
| 9640 | 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 61 6e 20 63 61 75 73 65 20 3c 61 | >...............<li>Can.cause.<a |
| 9660 | 20 68 72 65 66 3d 22 23 75 6e 64 65 66 2d 64 69 76 69 73 69 6f 6e 2d 62 79 2d 7a 65 72 6f 22 3e | .href="#undef-division-by-zero"> |
| 9680 | 64 69 76 69 73 69 6f 6e 20 62 79 20 7a 65 72 6f 3c 2f 61 3e 20 66 6f 72 20 66 6c 6f 61 74 73 20 | division.by.zero</a>.for.floats. |
| 96a0 | 69 6e 20 3c 61 20 68 72 65 66 3d 22 23 66 6c 6f 61 74 2d 6f 70 65 72 61 74 69 6f 6e 73 22 3e 46 | in.<a.href="#float-operations">F |
| 96c0 | 6c 6f 61 74 4d 6f 64 65 2e 4f 70 74 69 6d 69 7a 65 64 20 4d 6f 64 65 3c 2f 61 3e 2e 3c 2f 6c 69 | loatMode.Optimized.Mode</a>.</li |
| 96e0 | 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 46 6f 72 20 6e 6f 6e 2d 63 6f 6d 70 | >...............<li>For.non-comp |
| 9700 | 69 6c 65 2d 74 69 6d 65 2d 6b 6e 6f 77 6e 20 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 73 2c 20 | ile-time-known.signed.integers,. |
| 9720 | 6d 75 73 74 20 75 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 61 20 68 72 65 66 | must.use.................<a.href |
| 9740 | 3d 22 23 62 75 69 6c 74 69 6e 2d 72 65 6d 22 3e 40 72 65 6d 3c 2f 61 3e 20 6f 72 0a 20 20 20 20 | ="#builtin-rem">@rem</a>.or..... |
| 9760 | 20 20 20 20 20 20 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 6d 6f | ............<a.href="#builtin-mo |
| 9780 | 64 22 3e 40 6d 6f 64 3c 2f 61 3e 20 69 6e 73 74 65 61 64 20 6f 66 20 3c 63 6f 64 65 3e 25 3c 2f | d">@mod</a>.instead.of.<code>%</ |
| 97a0 | 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 | code>................</li>...... |
| 97c0 | 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 | .......</ul>...........</td>.... |
| 97e0 | 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f | .......<td>.............<pre><co |
| 9800 | 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 31 30 20 25 20 33 20 3d 3d 20 31 3c 2f 63 6f 64 65 | de.class="zig">10.%.3.==.1</code |
| 9820 | 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 | ></pre>...........</td>......... |
| 9840 | 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | </tr>.........<tr>...........<td |
| 9860 | 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 26 6c 74 3b 26 6c | ><pre><code.class="zig">a.<&l |
| 9880 | 74 3b 20 62 0a 61 20 26 6c 74 3b 26 6c 74 3b 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c | t;.b.a.<<=.b</code></pre>< |
| 98a0 | 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | /td>...........<td>............. |
| 98c0 | 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 | <ul>...............<li><a.href=" |
| 98e0 | 23 69 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 | #integers">Integers</a></li>.... |
| 9900 | 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 | .........</ul>...........</td>.. |
| 9920 | 20 20 20 20 20 20 20 20 20 3c 74 64 3e 42 69 74 20 53 68 69 66 74 20 4c 65 66 74 2e 0a 20 20 20 | .........<td>Bit.Shift.Left..... |
| 9940 | 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e | .........<ul>...............<li> |
| 9960 | 53 65 65 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 73 68 6c 45 78 | See.also.<a.href="#builtin-shlEx |
| 9980 | 61 63 74 22 3e 40 73 68 6c 45 78 61 63 74 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | act">@shlExact</a>.</li>........ |
| 99a0 | 20 20 20 20 20 20 20 3c 6c 69 3e 53 65 65 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 62 75 | .......<li>See.also.<a.href="#bu |
| 99c0 | 69 6c 74 69 6e 2d 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 73 68 6c 57 69 74 68 4f | iltin-shlWithOverflow">@shlWithO |
| 99e0 | 76 65 72 66 6c 6f 77 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f | verflow</a>.</li>.............</ |
| 9a00 | 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 | ul>...........</td>...........<t |
| 9a20 | 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d | d>.............<pre><code.class= |
| 9a40 | 22 7a 69 67 22 3e 31 20 26 6c 74 3b 26 6c 74 3b 20 38 20 3d 3d 20 32 35 36 3c 2f 63 6f 64 65 3e | "zig">1.<<.8.==.256</code> |
| 9a60 | 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c | </pre>...........</td>.........< |
| 9a80 | 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e | /tr>.........<tr>...........<td> |
| 9aa0 | 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 26 67 74 3b 26 67 74 | <pre><code.class="zig">a.>> |
| 9ac0 | 3b 20 62 0a 61 20 26 67 74 3b 26 67 74 3b 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f | ;.b.a.>>=.b</code></pre></ |
| 9ae0 | 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c | td>...........<td>.............< |
| 9b00 | 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | ul>...............<li><a.href="# |
| 9b20 | 69 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 | integers">Integers</a></li>..... |
| 9b40 | 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 | ........</ul>...........</td>... |
| 9b60 | 20 20 20 20 20 20 20 20 3c 74 64 3e 42 69 74 20 53 68 69 66 74 20 52 69 67 68 74 2e 0a 20 20 20 | ........<td>Bit.Shift.Right..... |
| 9b80 | 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e | .........<ul>...............<li> |
| 9ba0 | 53 65 65 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 73 68 72 45 78 | See.also.<a.href="#builtin-shrEx |
| 9bc0 | 61 63 74 22 3e 40 73 68 72 45 78 61 63 74 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | act">@shrExact</a>.</li>........ |
| 9be0 | 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 | .....</ul>...........</td>...... |
| 9c00 | 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 | .....<td>.............<pre><code |
| 9c20 | 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 31 30 20 26 67 74 3b 26 67 74 3b 20 31 20 3d 3d 20 35 3c | .class="zig">10.>>.1.==.5< |
| 9c40 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 | /code></pre>...........</td>.... |
| 9c60 | 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 | .....</tr>.........<tr>......... |
| 9c80 | 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 26 | ..<td><pre><code.class="zig">a.& |
| 9ca0 | 61 6d 70 3b 20 62 0a 61 20 26 61 6d 70 3b 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f | amp;.b.a.&=.b</code></pre></ |
| 9cc0 | 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c | td>...........<td>.............< |
| 9ce0 | 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | ul>...............<li><a.href="# |
| 9d00 | 69 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 | integers">Integers</a></li>..... |
| 9d20 | 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 | ........</ul>...........</td>... |
| 9d40 | 20 20 20 20 20 20 20 20 3c 74 64 3e 42 69 74 77 69 73 65 20 41 4e 44 2e 0a 20 20 20 20 20 20 20 | ........<td>Bitwise.AND......... |
| 9d60 | 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 | ...</td>...........<td>......... |
| 9d80 | 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 30 62 30 31 31 | ....<pre><code.class="zig">0b011 |
| 9da0 | 20 26 61 6d 70 3b 20 30 62 31 30 31 20 3d 3d 20 30 62 30 30 31 3c 2f 63 6f 64 65 3e 3c 2f 70 72 | .&.0b101.==.0b001</code></pr |
| 9dc0 | 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e | e>...........</td>.........</tr> |
| 9de0 | 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 | .........<tr>...........<td><pre |
| 9e00 | 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 7c 20 62 0a 61 20 7c 3d 20 62 3c | ><code.class="zig">a.|.b.a.|=.b< |
| 9e20 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e | /code></pre></td>...........<td> |
| 9e40 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .............<ul>............... |
| 9e60 | 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 | <li><a.href="#integers">Integers |
| 9e80 | 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 | </a></li>.............</ul>..... |
| 9ea0 | 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 42 69 74 77 69 73 | ......</td>...........<td>Bitwis |
| 9ec0 | 65 20 4f 52 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 | e.OR............</td>........... |
| 9ee0 | 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | <td>.............<pre><code.clas |
| 9f00 | 73 3d 22 7a 69 67 22 3e 30 62 30 31 30 20 7c 20 30 62 31 30 30 20 3d 3d 20 30 62 31 31 30 3c 2f | s="zig">0b010.|.0b100.==.0b110</ |
| 9f20 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 | code></pre>...........</td>..... |
| 9f40 | 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 | ....</tr>.........<tr>.......... |
| 9f60 | 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 5e 20 | .<td><pre><code.class="zig">a.^. |
| 9f80 | 62 0a 61 20 5e 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 | b.a.^=.b</code></pre></td>...... |
| 9fa0 | 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 | .....<td>.............<ul>...... |
| 9fc0 | 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 65 67 65 72 73 22 | .........<li><a.href="#integers" |
| 9fe0 | 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c | >Integers</a></li>.............< |
| a000 | 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c | /ul>...........</td>...........< |
| a020 | 74 64 3e 42 69 74 77 69 73 65 20 58 4f 52 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a | td>Bitwise.XOR............</td>. |
| a040 | 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e | ..........<td>.............<pre> |
| a060 | 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 30 62 30 31 31 20 5e 20 30 62 31 30 31 20 | <code.class="zig">0b011.^.0b101. |
| a080 | 3d 3d 20 30 62 31 31 30 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 | ==.0b110</code></pre>........... |
| a0a0 | 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e | </td>.........</tr>.........<tr> |
| a0c0 | 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d | ...........<td><pre><code.class= |
| a0e0 | 22 7a 69 67 22 3e 7e 61 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 | "zig">~a<code></pre></td>....... |
| a100 | 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 | ....<td>.............<ul>....... |
| a120 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 65 67 65 72 73 22 3e | ........<li><a.href="#integers"> |
| a140 | 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f | Integers</a></li>.............</ |
| a160 | 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 | ul>...........</td>...........<t |
| a180 | 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 42 69 74 77 69 73 65 20 4e 4f 54 2e 0a 20 20 20 20 | d>.............Bitwise.NOT...... |
| a1a0 | 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 | ......</td>...........<td>...... |
| a1c0 | 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 7e 75 | .......<pre><code.class="zig">~u |
| a1e0 | 38 28 30 62 30 31 30 31 31 31 31 29 20 3d 3d 20 30 62 31 30 31 30 30 30 30 3c 2f 63 6f 64 65 3e | 8(0b0101111).==.0b1010000</code> |
| a200 | 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c | </pre>...........</td>.........< |
| a220 | 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e | /tr>.........<tr>...........<td> |
| a240 | 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 3f 3f 20 62 3c 2f 63 | <pre><code.class="zig">a.??.b</c |
| a260 | 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 | ode></pre></td>...........<td>.. |
| a280 | 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c | ...........<ul>...............<l |
| a2a0 | 69 3e 3c 61 20 68 72 65 66 3d 22 23 6e 75 6c 6c 61 62 6c 65 73 22 3e 4e 75 6c 6c 61 62 6c 65 73 | i><a.href="#nullables">Nullables |
| a2c0 | 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 | </a></li>.............</ul>..... |
| a2e0 | 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 49 66 20 3c 63 6f | ......</td>...........<td>If.<co |
| a300 | 64 65 3e 61 3c 2f 63 6f 64 65 3e 20 69 73 20 3c 63 6f 64 65 3e 6e 75 6c 6c 3c 2f 63 6f 64 65 3e | de>a</code>.is.<code>null</code> |
| a320 | 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 62 3c 2f 63 | ,.............returns.<code>b</c |
| a340 | 6f 64 65 3e 20 28 22 64 65 66 61 75 6c 74 20 76 61 6c 75 65 22 29 2c 0a 20 20 20 20 20 20 20 20 | ode>.("default.value"),......... |
| a360 | 20 20 20 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 73 20 74 68 65 20 75 6e 77 72 61 70 | ....otherwise.returns.the.unwrap |
| a380 | 70 65 64 20 76 61 6c 75 65 20 6f 66 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 | ped.value.of.<code>a</code>..... |
| a3a0 | 20 20 20 20 20 20 20 20 20 4e 6f 74 65 20 74 68 61 74 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 | .........Note.that.<code>b</code |
| a3c0 | 3e 20 6d 61 79 20 62 65 20 61 20 76 61 6c 75 65 20 6f 66 20 74 79 70 65 20 3c 61 20 68 72 65 66 | >.may.be.a.value.of.type.<a.href |
| a3e0 | 3d 22 23 6e 6f 72 65 74 75 72 6e 22 3e 6e 6f 72 65 74 75 72 6e 3c 2f 61 3e 2e 0a 20 20 20 20 20 | ="#noreturn">noreturn</a>....... |
| a400 | 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 | .....</td>...........<td>....... |
| a420 | 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e | ......<pre><code.class="zig">con |
| a440 | 73 74 20 76 61 6c 75 65 3a 20 3f 75 33 32 20 3d 20 6e 75 6c 6c 3b 0a 63 6f 6e 73 74 20 75 6e 77 | st.value:.?u32.=.null;.const.unw |
| a460 | 72 61 70 70 65 64 20 3d 20 76 61 6c 75 65 20 3f 3f 20 31 32 33 34 3b 0a 75 6e 77 72 61 70 70 65 | rapped.=.value.??.1234;.unwrappe |
| a480 | 64 20 3d 3d 20 31 32 33 34 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 | d.==.1234</code></pre>.......... |
| a4a0 | 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 | .</td>.........</tr>.........<tr |
| a4c0 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 | >...........<td><pre><code.class |
| a4e0 | 3d 22 7a 69 67 22 3e 3f 3f 61 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 | ="zig">??a</code></pre></td>.... |
| a500 | 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 | .......<td>.............<ul>.... |
| a520 | 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6e 75 6c 6c 61 62 6c | ...........<li><a.href="#nullabl |
| a540 | 65 73 22 3e 4e 75 6c 6c 61 62 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 | es">Nullables</a></li>.......... |
| a560 | 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 | ...</ul>...........</td>........ |
| a580 | 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 45 71 75 69 76 61 6c 65 6e 74 20 74 | ...<td>.............Equivalent.t |
| a5a0 | 6f 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d | o:.............<pre><code.class= |
| a5c0 | 22 7a 69 67 22 3e 61 20 3f 3f 20 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 63 6f 64 65 3e 3c 2f 70 | "zig">a.??.unreachable</code></p |
| a5e0 | 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 | re>...........</td>...........<t |
| a600 | 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d | d>.............<pre><code.class= |
| a620 | 22 7a 69 67 22 3e 63 6f 6e 73 74 20 76 61 6c 75 65 3a 20 3f 75 33 32 20 3d 20 35 36 37 38 3b 0a | "zig">const.value:.?u32.=.5678;. |
| a640 | 3f 3f 76 61 6c 75 65 20 3d 3d 20 35 36 37 38 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 | ??value.==.5678</code></pre>.... |
| a660 | 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 | .......</td>.........</tr>...... |
| a680 | 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 | ...<tr>...........<td><pre><code |
| a6a0 | 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 25 25 20 62 0a 61 20 25 25 20 7c 65 72 72 7c 20 62 | .class="zig">a.%%.b.a.%%.|err|.b |
| a6c0 | 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | </code></pre></td>...........<td |
| a6e0 | 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | >.............<ul>.............. |
| a700 | 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 72 72 6f 72 73 22 3e 45 72 72 6f 72 20 55 6e 69 | .<li><a.href="#errors">Error.Uni |
| a720 | 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 | ons</a></li>.............</ul>.. |
| a740 | 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 49 66 20 | .........</td>...........<td>If. |
| a760 | 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 20 69 73 20 61 6e 20 3c 63 6f 64 65 3e 65 72 72 6f 72 | <code>a</code>.is.an.<code>error |
| a780 | 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 73 20 3c 63 6f | </code>,.............returns.<co |
| a7a0 | 64 65 3e 62 3c 2f 63 6f 64 65 3e 20 28 22 64 65 66 61 75 6c 74 20 76 61 6c 75 65 22 29 2c 0a 20 | de>b</code>.("default.value"),.. |
| a7c0 | 20 20 20 20 20 20 20 20 20 20 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 73 20 74 68 65 | ...........otherwise.returns.the |
| a7e0 | 20 75 6e 77 72 61 70 70 65 64 20 76 61 6c 75 65 20 6f 66 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 | .unwrapped.value.of.<code>a</cod |
| a800 | 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 4e 6f 74 65 20 74 68 61 74 20 3c 63 6f 64 65 3e | e>..............Note.that.<code> |
| a820 | 62 3c 2f 63 6f 64 65 3e 20 6d 61 79 20 62 65 20 61 20 76 61 6c 75 65 20 6f 66 20 74 79 70 65 20 | b</code>.may.be.a.value.of.type. |
| a840 | 3c 61 20 68 72 65 66 3d 22 23 6e 6f 72 65 74 75 72 6e 22 3e 6e 6f 72 65 74 75 72 6e 3c 2f 61 3e | <a.href="#noreturn">noreturn</a> |
| a860 | 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 65 72 72 3c 2f 63 6f 64 65 3e 20 69 | ..............<code>err</code>.i |
| a880 | 73 20 74 68 65 20 3c 63 6f 64 65 3e 65 72 72 6f 72 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 69 73 20 | s.the.<code>error</code>.and.is. |
| a8a0 | 69 6e 20 73 63 6f 70 65 20 6f 66 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 3c 63 6f 64 65 | in.scope.of.the.expression.<code |
| a8c0 | 3e 62 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 | >b</code>............</td>...... |
| a8e0 | 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 | .....<td>.............<pre><code |
| a900 | 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 76 61 6c 75 65 3a 20 25 75 33 32 20 3d | .class="zig">const.value:.%u32.= |
| a920 | 20 6e 75 6c 6c 3b 0a 63 6f 6e 73 74 20 75 6e 77 72 61 70 70 65 64 20 3d 20 76 61 6c 75 65 20 25 | .null;.const.unwrapped.=.value.% |
| a940 | 25 20 31 32 33 34 3b 0a 75 6e 77 72 61 70 70 65 64 20 3d 3d 20 31 32 33 34 3c 2f 63 6f 64 65 3e | %.1234;.unwrapped.==.1234</code> |
| a960 | 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c | </pre>...........</td>.........< |
| a980 | 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e | /tr>.........<tr>...........<td> |
| a9a0 | 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 25 25 61 3c 2f 63 6f 64 65 | <pre><code.class="zig">%%a</code |
| a9c0 | 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 | ></pre></td>...........<td>..... |
| a9e0 | 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c | ........<ul>...............<li>< |
| aa00 | 61 20 68 72 65 66 3d 22 23 65 72 72 6f 72 73 22 3e 45 72 72 6f 72 20 55 6e 69 6f 6e 73 3c 2f 61 | a.href="#errors">Error.Unions</a |
| aa20 | 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 | ></li>.............</ul>........ |
| aa40 | 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 45 71 75 69 76 61 6c 65 6e | ...</td>...........<td>Equivalen |
| aa60 | 74 20 74 6f 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 | t.to:.............<pre><code.cla |
| aa80 | 73 73 3d 22 7a 69 67 22 3e 61 20 25 25 20 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 63 6f 64 65 3e | ss="zig">a.%%.unreachable</code> |
| aaa0 | 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 | </pre>...........</td>.......... |
| aac0 | 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 | .<td>.............<pre><code.cla |
| aae0 | 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 76 61 6c 75 65 3a 20 25 75 33 32 20 3d 20 35 36 37 | ss="zig">const.value:.%u32.=.567 |
| ab00 | 38 3b 0a 25 25 76 61 6c 75 65 20 3d 3d 20 35 36 37 38 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a | 8;.%%value.==.5678</code></pre>. |
| ab20 | 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 | ..........</td>.........</tr>... |
| ab40 | 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 | ......<tr>...........<td><pre><c |
| ab60 | 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 61 6e 64 20 62 3c 63 6f 64 65 3e 3c 2f 70 | ode.class="zig">a.and.b<code></p |
| ab80 | 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 | re></td>...........<td>......... |
| aba0 | 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 | ....<ul>...............<li><a.hr |
| abc0 | 65 66 3d 22 23 70 72 69 6d 69 74 69 76 65 2d 74 79 70 65 73 22 3e 62 6f 6f 6c 3c 2f 61 3e 3c 2f | ef="#primitive-types">bool</a></ |
| abe0 | 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 | li>.............</ul>........... |
| ac00 | 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | </td>...........<td>............ |
| ac20 | 20 49 66 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 20 69 73 20 3c 63 6f 64 65 3e 66 61 6c 73 | .If.<code>a</code>.is.<code>fals |
| ac40 | 65 3c 2f 63 6f 64 65 3e 2c 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 66 61 6c 73 65 3c 2f 63 | e</code>,.returns.<code>false</c |
| ac60 | 6f 64 65 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 69 74 68 6f 75 74 20 65 76 61 6c 75 61 74 | ode>.............without.evaluat |
| ac80 | 69 6e 67 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 2e 20 4f 74 68 65 72 77 69 73 65 2c 20 72 | ing.<code>b</code>..Otherwise,.r |
| aca0 | 65 74 75 6e 73 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 | etuns.<code>b</code>............ |
| acc0 | 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | </td>...........<td>............ |
| ace0 | 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 61 6c 73 65 20 61 6e | .<pre><code.class="zig">false.an |
| ad00 | 64 20 74 72 75 65 20 3d 3d 20 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 | d.true.==.false</code></pre>.... |
| ad20 | 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 | .......</td>.........</tr>...... |
| ad40 | 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 | ...<tr>...........<td><pre><code |
| ad60 | 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 6f 72 20 62 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c | .class="zig">a.or.b<code></pre>< |
| ad80 | 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | /td>...........<td>............. |
| ada0 | 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 | <ul>...............<li><a.href=" |
| adc0 | 23 70 72 69 6d 69 74 69 76 65 2d 74 79 70 65 73 22 3e 62 6f 6f 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a | #primitive-types">bool</a></li>. |
| ade0 | 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 | ............</ul>...........</td |
| ae00 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 66 20 | >...........<td>.............If. |
| ae20 | 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 20 69 73 20 3c 63 6f 64 65 3e 74 72 75 65 3c 2f 63 6f | <code>a</code>.is.<code>true</co |
| ae40 | 64 65 3e 2c 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 74 72 75 65 3c 2f 63 6f 64 65 3e 0a 20 | de>,.returns.<code>true</code>.. |
| ae60 | 20 20 20 20 20 20 20 20 20 20 20 77 69 74 68 6f 75 74 20 65 76 61 6c 75 61 74 69 6e 67 20 3c 63 | ...........without.evaluating.<c |
| ae80 | 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 2e 20 4f 74 68 65 72 77 69 73 65 2c 20 72 65 74 75 6e 73 20 | ode>b</code>..Otherwise,.retuns. |
| aea0 | 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a | <code>b</code>............</td>. |
| aec0 | 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e | ..........<td>.............<pre> |
| aee0 | 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 61 6c 73 65 20 6f 72 20 74 72 75 65 20 | <code.class="zig">false.or.true. |
| af00 | 3d 3d 20 74 72 75 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c | ==.true</code></pre>...........< |
| af20 | 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a | /td>.........</tr>.........<tr>. |
| af40 | 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 | ..........<td><pre><code.class=" |
| af60 | 7a 69 67 22 3e 21 61 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 | zig">!a<code></pre></td>........ |
| af80 | 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 | ...<td>.............<ul>........ |
| afa0 | 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 70 72 69 6d 69 74 69 76 65 2d 74 | .......<li><a.href="#primitive-t |
| afc0 | 79 70 65 73 22 3e 62 6f 6f 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ypes">bool</a></li>............. |
| afe0 | 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 | </ul>...........</td>........... |
| b000 | 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 42 6f 6f 6c 65 61 6e 20 4e 4f 54 2e 0a 20 20 | <td>.............Boolean.NOT.... |
| b020 | 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 | ........</td>...........<td>.... |
| b040 | 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e | .........<pre><code.class="zig"> |
| b060 | 21 66 61 6c 73 65 20 3d 3d 20 74 72 75 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 | !false.==.true</code></pre>..... |
| b080 | 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 | ......</td>.........</tr>....... |
| b0a0 | 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 | ..<tr>...........<td><pre><code. |
| b0c0 | 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 3d 3d 20 62 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f | class="zig">a.==.b<code></pre></ |
| b0e0 | 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c | td>...........<td>.............< |
| b100 | 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | ul>...............<li><a.href="# |
| b120 | 69 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 | integers">Integers</a></li>..... |
| b140 | 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 6c 6f 61 74 73 22 3e | ..........<li><a.href="#floats"> |
| b160 | 46 6c 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c | Floats</a></li>...............<l |
| b180 | 69 3e 3c 61 20 68 72 65 66 3d 22 23 70 72 69 6d 69 74 69 76 65 2d 74 79 70 65 73 22 3e 62 6f 6f | i><a.href="#primitive-types">boo |
| b1a0 | 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 | l</a></li>...............<li><a. |
| b1c0 | 68 72 65 66 3d 22 23 70 72 69 6d 69 74 69 76 65 2d 74 79 70 65 73 22 3e 74 79 70 65 3c 2f 61 3e | href="#primitive-types">type</a> |
| b1e0 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 | </li>.............</ul>......... |
| b200 | 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 | ..</td>...........<td>.......... |
| b220 | 20 20 20 52 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 74 72 75 65 3c 2f 63 6f 64 65 3e 20 69 66 20 | ...Returns.<code>true</code>.if. |
| b240 | 61 20 61 6e 64 20 62 20 61 72 65 20 65 71 75 61 6c 2c 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 | a.and.b.are.equal,.otherwise.ret |
| b260 | 75 72 6e 73 20 3c 63 6f 64 65 3e 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 | urns.<code>false</code>......... |
| b280 | 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 | ...</td>...........<td>......... |
| b2a0 | 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 28 31 20 3d 3d | ....<pre><code.class="zig">(1.== |
| b2c0 | 20 31 29 20 3d 3d 20 74 72 75 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 | .1).==.true</code></pre>........ |
| b2e0 | 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c | ...</td>.........</tr>.........< |
| b300 | 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 | tr>...........<td><pre><code.cla |
| b320 | 73 73 3d 22 7a 69 67 22 3e 61 20 3d 3d 20 6e 75 6c 6c 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f | ss="zig">a.==.null<code></pre></ |
| b340 | 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c | td>...........<td>.............< |
| b360 | 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | ul>...............<li><a.href="# |
| b380 | 6e 75 6c 6c 61 62 6c 65 73 22 3e 4e 75 6c 6c 61 62 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 | nullables">Nullables</a></li>... |
| b3a0 | 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a | ..........</ul>...........</td>. |
| b3c0 | 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 52 65 74 75 72 | ..........<td>.............Retur |
| b3e0 | 6e 73 20 3c 63 6f 64 65 3e 74 72 75 65 3c 2f 63 6f 64 65 3e 20 69 66 20 61 20 69 73 20 3c 63 6f | ns.<code>true</code>.if.a.is.<co |
| b400 | 64 65 3e 6e 75 6c 6c 3c 2f 63 6f 64 65 3e 2c 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e | de>null</code>,.otherwise.return |
| b420 | 73 20 3c 63 6f 64 65 3e 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 | s.<code>false</code>............ |
| b440 | 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | </td>...........<td>............ |
| b460 | 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 76 61 | .<pre><code.class="zig">const.va |
| b480 | 6c 75 65 3a 20 3f 75 33 32 20 3d 20 6e 75 6c 6c 3b 0a 76 61 6c 75 65 20 3d 3d 20 6e 75 6c 6c 3c | lue:.?u32.=.null;.value.==.null< |
| b4a0 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 | /code></pre>...........</td>.... |
| b4c0 | 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 | .....</tr>.........<tr>......... |
| b4e0 | 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 21 | ..<td><pre><code.class="zig">a.! |
| b500 | 3d 20 62 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c | =.b<code></pre></td>...........< |
| b520 | 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | td>.............<ul>............ |
| b540 | 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 | ...<li><a.href="#integers">Integ |
| b560 | 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c | ers</a></li>...............<li>< |
| b580 | 61 20 68 72 65 66 3d 22 23 66 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e | a.href="#floats">Floats</a></li> |
| b5a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 70 72 69 | ...............<li><a.href="#pri |
| b5c0 | 6d 69 74 69 76 65 2d 74 79 70 65 73 22 3e 62 6f 6f 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 | mitive-types">bool</a></li>..... |
| b5e0 | 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 70 72 69 6d 69 74 69 76 | ..........<li><a.href="#primitiv |
| b600 | 65 2d 74 79 70 65 73 22 3e 74 79 70 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 | e-types">type</a></li>.......... |
| b620 | 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 | ...</ul>...........</td>........ |
| b640 | 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 3c 63 6f 64 | ...<td>.............Returns.<cod |
| b660 | 65 3e 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 20 69 66 20 61 20 61 6e 64 20 62 20 61 72 65 20 65 71 | e>false</code>.if.a.and.b.are.eq |
| b680 | 75 61 6c 2c 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 74 72 75 | ual,.otherwise.returns.<code>tru |
| b6a0 | 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 | e</code>............</td>....... |
| b6c0 | 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 | ....<td>.............<pre><code. |
| b6e0 | 63 6c 61 73 73 3d 22 7a 69 67 22 3e 28 31 20 21 3d 20 31 29 20 3d 3d 20 66 61 6c 73 65 3c 2f 63 | class="zig">(1.!=.1).==.false</c |
| b700 | 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 | ode></pre>...........</td>...... |
| b720 | 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 | ...</tr>.........<tr>........... |
| b740 | 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 26 67 74 | <td><pre><code.class="zig">a.> |
| b760 | 3b 20 62 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c | ;.b<code></pre></td>...........< |
| b780 | 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | td>.............<ul>............ |
| b7a0 | 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 | ...<li><a.href="#integers">Integ |
| b7c0 | 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c | ers</a></li>...............<li>< |
| b7e0 | 61 20 68 72 65 66 3d 22 23 66 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e | a.href="#floats">Floats</a></li> |
| b800 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 | .............</ul>...........</t |
| b820 | 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 52 65 | d>...........<td>.............Re |
| b840 | 74 75 72 6e 73 20 3c 63 6f 64 65 3e 74 72 75 65 3c 2f 63 6f 64 65 3e 20 69 66 20 61 20 69 73 20 | turns.<code>true</code>.if.a.is. |
| b860 | 67 72 65 61 74 65 72 20 74 68 61 6e 20 62 2c 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e | greater.than.b,.otherwise.return |
| b880 | 73 20 3c 63 6f 64 65 3e 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 | s.<code>false</code>............ |
| b8a0 | 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | </td>...........<td>............ |
| b8c0 | 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 28 32 20 26 67 74 3b 20 | .<pre><code.class="zig">(2.>. |
| b8e0 | 31 29 20 3d 3d 20 74 72 75 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 | 1).==.true</code></pre>......... |
| b900 | 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 | ..</td>.........</tr>.........<t |
| b920 | 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | r>...........<td><pre><code.clas |
| b940 | 73 3d 22 7a 69 67 22 3e 61 20 26 67 74 3b 3d 20 62 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 | s="zig">a.>=.b<code></pre></t |
| b960 | 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 | d>...........<td>.............<u |
| b980 | 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 | l>...............<li><a.href="#i |
| b9a0 | 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | ntegers">Integers</a></li>...... |
| b9c0 | 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 6c 6f 61 74 73 22 3e 46 | .........<li><a.href="#floats">F |
| b9e0 | 6c 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e | loats</a></li>.............</ul> |
| ba00 | 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a | ...........</td>...........<td>. |
| ba20 | 20 20 20 20 20 20 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 74 72 75 65 3c 2f | ............Returns.<code>true</ |
| ba40 | 63 6f 64 65 3e 20 69 66 20 61 20 69 73 20 67 72 65 61 74 65 72 20 74 68 61 6e 20 6f 72 20 65 71 | code>.if.a.is.greater.than.or.eq |
| ba60 | 75 61 6c 20 74 6f 20 62 2c 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 | ual.to.b,.otherwise.returns.<cod |
| ba80 | 65 3e 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a | e>false</code>............</td>. |
| baa0 | 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e | ..........<td>.............<pre> |
| bac0 | 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 28 32 20 26 67 74 3b 3d 20 31 29 20 3d 3d | <code.class="zig">(2.>=.1).== |
| bae0 | 20 74 72 75 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 | .true</code></pre>...........</t |
| bb00 | 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 | d>.........</tr>.........<tr>... |
| bb20 | 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 | ........<td><pre><code.class="zi |
| bb40 | 67 22 3e 61 20 26 6c 74 3b 20 62 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 | g">a.<.b<code></pre></td>.... |
| bb60 | 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 | .......<td>.............<ul>.... |
| bb80 | 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 65 67 65 72 | ...........<li><a.href="#integer |
| bba0 | 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | s">Integers</a></li>............ |
| bbc0 | 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c | ...<li><a.href="#floats">Floats< |
| bbe0 | 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 | /a></li>.............</ul>...... |
| bc00 | 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 | .....</td>...........<td>....... |
| bc20 | 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 74 72 75 65 3c 2f 63 6f 64 65 3e 20 | ......Returns.<code>true</code>. |
| bc40 | 69 66 20 61 20 69 73 20 6c 65 73 73 20 74 68 61 6e 20 62 2c 20 6f 74 68 65 72 77 69 73 65 20 72 | if.a.is.less.than.b,.otherwise.r |
| bc60 | 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 | eturns.<code>false</code>....... |
| bc80 | 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 | .....</td>...........<td>....... |
| bca0 | 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 28 31 20 | ......<pre><code.class="zig">(1. |
| bcc0 | 26 6c 74 3b 20 32 29 20 3d 3d 20 74 72 75 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 | <.2).==.true</code></pre>.... |
| bce0 | 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 | .......</td>.........</tr>...... |
| bd00 | 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 | ...<tr>...........<td><pre><code |
| bd20 | 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 26 6c 74 3b 3d 20 62 3c 63 6f 64 65 3e 3c 2f 70 72 | .class="zig">a.<=.b<code></pr |
| bd40 | 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 | e></td>...........<td>.......... |
| bd60 | 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 | ...<ul>...............<li><a.hre |
| bd80 | 66 3d 22 23 69 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a | f="#integers">Integers</a></li>. |
| bda0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 6c 6f 61 | ..............<li><a.href="#floa |
| bdc0 | 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ts">Floats</a></li>............. |
| bde0 | 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 | </ul>...........</td>........... |
| be00 | 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 74 | <td>.............Returns.<code>t |
| be20 | 72 75 65 3c 2f 63 6f 64 65 3e 20 69 66 20 61 20 69 73 20 6c 65 73 73 20 74 68 61 6e 20 6f 72 20 | rue</code>.if.a.is.less.than.or. |
| be40 | 65 71 75 61 6c 20 74 6f 20 62 2c 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 73 20 3c 63 | equal.to.b,.otherwise.returns.<c |
| be60 | 6f 64 65 3e 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 | ode>false</code>............</td |
| be80 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 | >...........<td>.............<pr |
| bea0 | 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 28 31 20 26 6c 74 3b 3d 20 32 29 20 | e><code.class="zig">(1.<=.2). |
| bec0 | 3d 3d 20 74 72 75 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c | ==.true</code></pre>...........< |
| bee0 | 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a | /td>.........</tr>.........<tr>. |
| bf00 | 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 | ..........<td><pre><code.class=" |
| bf20 | 7a 69 67 22 3e 61 20 2b 2b 20 62 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 | zig">a.++.b<code></pre></td>.... |
| bf40 | 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 | .......<td>.............<ul>.... |
| bf60 | 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 61 72 72 61 79 73 22 | ...........<li><a.href="#arrays" |
| bf80 | 3e 41 72 72 61 79 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 | >Arrays</a></li>.............</u |
| bfa0 | 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | l>...........</td>...........<td |
| bfc0 | 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 72 72 61 79 20 63 6f 6e 63 61 74 65 6e 61 74 69 6f | >.............Array.concatenatio |
| bfe0 | 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | n..............<ul>............. |
| c000 | 20 20 3c 6c 69 3e 4f 6e 6c 79 20 61 76 61 69 6c 61 62 6c 65 20 77 68 65 6e 20 3c 63 6f 64 65 3e | ..<li>Only.available.when.<code> |
| c020 | 61 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 20 61 72 65 20 | a</code>.and.<code>b</code>.are. |
| c040 | 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 | <a.href="#comptime">compile-time |
| c060 | 20 6b 6e 6f 77 6e 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 | .known</a>..............</ul>... |
| c080 | 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 | ........</td>...........<td>.... |
| c0a0 | 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e | .........<pre><code.class="zig"> |
| c0c0 | 63 6f 6e 73 74 20 6d 65 6d 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d 65 6d 3b 0a | const.mem.=.@import("std").mem;. |
| c0e0 | 63 6f 6e 73 74 20 61 72 72 61 79 31 20 3d 20 5b 5d 75 33 32 7b 31 2c 32 7d 3b 0a 63 6f 6e 73 74 | const.array1.=.[]u32{1,2};.const |
| c100 | 20 61 72 72 61 79 32 20 3d 20 5b 5d 75 33 32 7b 33 2c 34 7d 3b 0a 63 6f 6e 73 74 20 74 6f 67 65 | .array2.=.[]u32{3,4};.const.toge |
| c120 | 74 68 65 72 20 3d 20 61 72 72 61 79 31 20 2b 2b 20 61 72 72 61 79 32 3b 0a 6d 65 6d 2e 65 71 6c | ther.=.array1.++.array2;.mem.eql |
| c140 | 28 75 33 32 2c 20 74 6f 67 65 74 68 65 72 2c 20 5b 5d 75 33 32 7b 31 2c 32 2c 33 2c 34 7d 29 3c | (u32,.together,.[]u32{1,2,3,4})< |
| c160 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 | /code></pre>...........</td>.... |
| c180 | 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 | .....</tr>.........<tr>......... |
| c1a0 | 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 2a | ..<td><pre><code.class="zig">a.* |
| c1c0 | 2a 20 62 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c | *.b<code></pre></td>...........< |
| c1e0 | 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | td>.............<ul>............ |
| c200 | 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 61 72 72 61 79 73 22 3e 41 72 72 61 79 73 3c | ...<li><a.href="#arrays">Arrays< |
| c220 | 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 | /a></li>.............</ul>...... |
| c240 | 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 | .....</td>...........<td>....... |
| c260 | 20 20 20 20 20 20 41 72 72 61 79 20 6d 75 6c 74 69 70 6c 69 63 61 74 69 6f 6e 2e 0a 20 20 20 20 | ......Array.multiplication...... |
| c280 | 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 4f | ........<ul>...............<li>O |
| c2a0 | 6e 6c 79 20 61 76 61 69 6c 61 62 6c 65 20 77 68 65 6e 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 | nly.available.when.<code>a</code |
| c2c0 | 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 20 61 72 65 20 3c 61 20 68 72 65 66 | >.and.<code>b</code>.are.<a.href |
| c2e0 | 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6b 6e 6f 77 6e 3c | ="#comptime">compile-time.known< |
| c300 | 2f 61 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 | /a>..............</ul>.......... |
| c320 | 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 | .</td>...........<td>........... |
| c340 | 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 6d | ..<pre><code.class="zig">const.m |
| c360 | 65 6d 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d 65 6d 3b 0a 63 6f 6e 73 74 20 70 | em.=.@import("std").mem;.const.p |
| c380 | 61 74 74 65 72 6e 20 3d 20 22 61 62 22 20 2a 2a 20 33 3b 0a 6d 65 6d 2e 65 71 6c 28 75 38 2c 20 | attern.=."ab".**.3;.mem.eql(u8,. |
| c3a0 | 70 61 74 74 65 72 6e 2c 20 22 61 62 61 62 61 62 22 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a | pattern,."ababab")</code></pre>. |
| c3c0 | 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 | ..........</td>.........</tr>... |
| c3e0 | 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 | ......<tr>...........<td><pre><c |
| c400 | 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2a 61 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f | ode.class="zig">*a<code></pre></ |
| c420 | 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c | td>...........<td>.............< |
| c440 | 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | ul>...............<li><a.href="# |
| c460 | 70 6f 69 6e 74 65 72 73 22 3e 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 | pointers">Pointers</a></li>..... |
| c480 | 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 | ........</ul>...........</td>... |
| c4a0 | 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 50 6f 69 6e 74 65 72 | ........<td>.............Pointer |
| c4c0 | 20 64 65 72 65 66 65 72 65 6e 63 65 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 | .dereference............</td>... |
| c4e0 | 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 | ........<td>.............<pre><c |
| c500 | 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 78 3a 20 75 33 32 20 3d 20 31 | ode.class="zig">const.x:.u32.=.1 |
| c520 | 32 33 34 3b 0a 63 6f 6e 73 74 20 70 74 72 20 3d 20 26 61 6d 70 3b 78 3b 0a 2a 78 20 3d 3d 20 31 | 234;.const.ptr.=.&x;.*x.==.1 |
| c540 | 32 33 34 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e | 234</code></pre>...........</td> |
| c560 | 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 | .........</tr>.........<tr>..... |
| c580 | 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 | ......<td><pre><code.class="zig" |
| c5a0 | 3e 26 61 6d 70 3b 61 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 | >&a<code></pre></td>........ |
| c5c0 | 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 6c 6c 20 74 79 70 65 73 0a 20 20 | ...<td>.............All.types... |
| c5e0 | 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 | ........</td>...........<td>.... |
| c600 | 20 20 20 20 20 20 20 20 20 41 64 64 72 65 73 73 20 6f 66 2e 0a 20 20 20 20 20 20 20 20 20 20 3c | .........Address.of............< |
| c620 | 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | /td>...........<td>............. |
| c640 | 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 78 3a 20 | <pre><code.class="zig">const.x:. |
| c660 | 75 33 32 20 3d 20 31 32 33 34 3b 0a 63 6f 6e 73 74 20 70 74 72 20 3d 20 26 61 6d 70 3b 78 3b 0a | u32.=.1234;.const.ptr.=.&x;. |
| c680 | 2a 78 20 3d 3d 20 31 32 33 34 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 | *x.==.1234</code></pre>......... |
| c6a0 | 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 3c 2f 74 61 | ..</td>.........</tr>.......</ta |
| c6c0 | 62 6c 65 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 6f 70 65 72 61 74 6f 72 73 2d 70 72 65 | ble>.......<h3.id="operators-pre |
| c6e0 | 63 65 64 65 6e 63 65 22 3e 50 72 65 63 65 64 65 6e 63 65 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c | cedence">Precedence</h3>.......< |
| c700 | 70 72 65 3e 3c 63 6f 64 65 3e 78 28 29 20 78 5b 5d 20 78 2e 79 0a 21 78 20 2d 78 20 2d 25 78 20 | pre><code>x().x[].x.y.!x.-x.-%x. |
| c720 | 7e 78 20 2a 78 20 26 61 6d 70 3b 78 20 3f 78 20 25 78 20 25 25 78 20 3f 3f 78 0a 78 7b 7d 0a 2a | ~x.*x.&x.?x.%x.%%x.??x.x{}.* |
| c740 | 20 2f 20 25 20 2a 2a 20 2a 25 0a 2b 20 2d 20 2b 2b 20 2b 25 20 2d 25 0a 26 6c 74 3b 26 6c 74 3b | ./.%.**.*%.+.-.++.+%.-%.<< |
| c760 | 20 26 67 74 3b 26 67 74 3b 0a 26 61 6d 70 3b 0a 5e 0a 7c 0a 3d 3d 20 21 3d 20 26 6c 74 3b 20 26 | .>>.&.^.|.==.!=.<.& |
| c780 | 67 74 3b 20 26 6c 74 3b 3d 20 26 67 74 3b 3d 0a 61 6e 64 0a 6f 72 0a 3f 3f 20 25 25 0a 3d 20 2a | gt;.<=.>=.and.or.??.%%.=.* |
| c7a0 | 3d 20 2f 3d 20 25 3d 20 2b 3d 20 2d 3d 20 26 6c 74 3b 26 6c 74 3b 3d 20 26 67 74 3b 26 67 74 3b | =./=.%=.+=.-=.<<=.>> |
| c7c0 | 3d 20 26 61 6d 70 3b 3d 20 5e 3d 20 7c 3d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 | =.&=.^=.|=</code></pre>..... |
| c7e0 | 20 20 3c 68 32 20 69 64 3d 22 61 72 72 61 79 73 22 3e 41 72 72 61 79 73 3c 2f 68 32 3e 0a 20 20 | ..<h2.id="arrays">Arrays</h2>... |
| c800 | 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 | ....<pre><code.class="zig">const |
| c820 | 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 75 67 2e 61 | .assert.=.@import("std").debug.a |
| c840 | 73 73 65 72 74 3b 0a 63 6f 6e 73 74 20 6d 65 6d 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 | ssert;.const.mem.=.@import("std" |
| c860 | 29 2e 6d 65 6d 3b 0a 0a 2f 2f 20 61 72 72 61 79 20 6c 69 74 65 72 61 6c 0a 63 6f 6e 73 74 20 6d | ).mem;..//.array.literal.const.m |
| c880 | 65 73 73 61 67 65 20 3d 20 5b 5d 75 38 7b 27 68 27 2c 20 27 65 27 2c 20 27 6c 27 2c 20 27 6c 27 | essage.=.[]u8{'h',.'e',.'l',.'l' |
| c8a0 | 2c 20 27 6f 27 7d 3b 0a 0a 2f 2f 20 67 65 74 20 74 68 65 20 73 69 7a 65 20 6f 66 20 61 6e 20 61 | ,.'o'};..//.get.the.size.of.an.a |
| c8c0 | 72 72 61 79 0a 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 65 73 73 61 | rray.comptime.{.....assert(messa |
| c8e0 | 67 65 2e 6c 65 6e 20 3d 3d 20 35 29 3b 0a 7d 0a 0a 2f 2f 20 61 20 73 74 72 69 6e 67 20 6c 69 74 | ge.len.==.5);.}..//.a.string.lit |
| c900 | 65 72 61 6c 20 69 73 20 61 6e 20 61 72 72 61 79 20 6c 69 74 65 72 61 6c 0a 63 6f 6e 73 74 20 73 | eral.is.an.array.literal.const.s |
| c920 | 61 6d 65 5f 6d 65 73 73 61 67 65 20 3d 20 22 68 65 6c 6c 6f 22 3b 0a 0a 63 6f 6d 70 74 69 6d 65 | ame_message.=."hello";..comptime |
| c940 | 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 75 38 2c 20 6d 65 73 73 61 67 | .{.....assert(mem.eql(u8,.messag |
| c960 | 65 2c 20 73 61 6d 65 5f 6d 65 73 73 61 67 65 29 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 | e,.same_message));.....assert(@t |
| c980 | 79 70 65 4f 66 28 6d 65 73 73 61 67 65 29 20 3d 3d 20 40 74 79 70 65 4f 66 28 73 61 6d 65 5f 6d | ypeOf(message).==.@typeOf(same_m |
| c9a0 | 65 73 73 61 67 65 29 29 3b 0a 7d 0a 0a 74 65 73 74 20 22 69 74 65 72 61 74 65 20 6f 76 65 72 20 | essage));.}..test."iterate.over. |
| c9c0 | 61 6e 20 61 72 72 61 79 22 20 7b 0a 20 20 20 20 76 61 72 20 73 75 6d 3a 20 75 73 69 7a 65 20 3d | an.array".{.....var.sum:.usize.= |
| c9e0 | 20 30 3b 0a 20 20 20 20 66 6f 72 20 28 6d 65 73 73 61 67 65 29 20 7c 62 79 74 65 7c 20 7b 0a 20 | .0;.....for.(message).|byte|.{.. |
| ca00 | 20 20 20 20 20 20 20 73 75 6d 20 2b 3d 20 62 79 74 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 61 73 | .......sum.+=.byte;.....}.....as |
| ca20 | 73 65 72 74 28 73 75 6d 20 3d 3d 20 75 73 69 7a 65 28 27 68 27 29 20 2b 20 75 73 69 7a 65 28 27 | sert(sum.==.usize('h').+.usize(' |
| ca40 | 65 27 29 20 2b 20 75 73 69 7a 65 28 27 6c 27 29 20 2a 20 32 20 2b 20 75 73 69 7a 65 28 27 6f 27 | e').+.usize('l').*.2.+.usize('o' |
| ca60 | 29 29 3b 0a 7d 0a 0a 2f 2f 20 6d 6f 64 69 66 69 61 62 6c 65 20 61 72 72 61 79 0a 76 61 72 20 73 | ));.}..//.modifiable.array.var.s |
| ca80 | 6f 6d 65 5f 69 6e 74 65 67 65 72 73 3a 20 5b 31 30 30 5d 69 33 32 20 3d 20 75 6e 64 65 66 69 6e | ome_integers:.[100]i32.=.undefin |
| caa0 | 65 64 3b 0a 0a 74 65 73 74 20 22 6d 6f 64 69 66 79 20 61 6e 20 61 72 72 61 79 22 20 7b 0a 20 20 | ed;..test."modify.an.array".{... |
| cac0 | 20 20 66 6f 72 20 28 73 6f 6d 65 5f 69 6e 74 65 67 65 72 73 29 20 7c 2a 69 74 65 6d 2c 20 69 7c | ..for.(some_integers).|*item,.i| |
| cae0 | 20 7b 0a 20 20 20 20 20 20 20 20 2a 69 74 65 6d 20 3d 20 69 33 32 28 69 29 3b 0a 20 20 20 20 7d | .{.........*item.=.i32(i);.....} |
| cb00 | 0a 20 20 20 20 61 73 73 65 72 74 28 73 6f 6d 65 5f 69 6e 74 65 67 65 72 73 5b 31 30 5d 20 3d 3d | .....assert(some_integers[10].== |
| cb20 | 20 31 30 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 73 6f 6d 65 5f 69 6e 74 65 67 65 72 73 5b 39 | .10);.....assert(some_integers[9 |
| cb40 | 39 5d 20 3d 3d 20 39 39 29 3b 0a 7d 0a 0a 2f 2f 20 61 72 72 61 79 20 63 6f 6e 63 61 74 65 6e 61 | 9].==.99);.}..//.array.concatena |
| cb60 | 74 69 6f 6e 20 77 6f 72 6b 73 20 69 66 20 74 68 65 20 76 61 6c 75 65 73 20 61 72 65 20 6b 6e 6f | tion.works.if.the.values.are.kno |
| cb80 | 77 6e 0a 2f 2f 20 61 74 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 0a 63 6f 6e 73 74 20 70 61 72 74 | wn.//.at.compile.time.const.part |
| cba0 | 5f 6f 6e 65 20 3d 20 5b 5d 69 33 32 7b 31 2c 20 32 2c 20 33 2c 20 34 7d 3b 0a 63 6f 6e 73 74 20 | _one.=.[]i32{1,.2,.3,.4};.const. |
| cbc0 | 70 61 72 74 5f 74 77 6f 20 3d 20 5b 5d 69 33 32 7b 35 2c 20 36 2c 20 37 2c 20 38 7d 3b 0a 63 6f | part_two.=.[]i32{5,.6,.7,.8};.co |
| cbe0 | 6e 73 74 20 61 6c 6c 5f 6f 66 5f 69 74 20 3d 20 70 61 72 74 5f 6f 6e 65 20 2b 2b 20 70 61 72 74 | nst.all_of_it.=.part_one.++.part |
| cc00 | 5f 74 77 6f 3b 0a 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 65 6d 2e | _two;.comptime.{.....assert(mem. |
| cc20 | 65 71 6c 28 69 33 32 2c 20 61 6c 6c 5f 6f 66 5f 69 74 2c 20 5b 5d 69 33 32 7b 31 2c 32 2c 33 2c | eql(i32,.all_of_it,.[]i32{1,2,3, |
| cc40 | 34 2c 35 2c 36 2c 37 2c 38 7d 29 29 3b 0a 7d 0a 0a 2f 2f 20 72 65 6d 65 6d 62 65 72 20 74 68 61 | 4,5,6,7,8}));.}..//.remember.tha |
| cc60 | 74 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 20 61 72 65 20 61 72 72 61 79 73 0a 63 6f 6e | t.string.literals.are.arrays.con |
| cc80 | 73 74 20 68 65 6c 6c 6f 20 3d 20 22 68 65 6c 6c 6f 22 3b 0a 63 6f 6e 73 74 20 77 6f 72 6c 64 20 | st.hello.=."hello";.const.world. |
| cca0 | 3d 20 22 77 6f 72 6c 64 22 3b 0a 63 6f 6e 73 74 20 68 65 6c 6c 6f 5f 77 6f 72 6c 64 20 3d 20 68 | =."world";.const.hello_world.=.h |
| ccc0 | 65 6c 6c 6f 20 2b 2b 20 22 20 22 20 2b 2b 20 77 6f 72 6c 64 3b 0a 63 6f 6d 70 74 69 6d 65 20 7b | ello.++.".".++.world;.comptime.{ |
| cce0 | 0a 20 20 20 20 61 73 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 75 38 2c 20 68 65 6c 6c 6f 5f 77 6f | .....assert(mem.eql(u8,.hello_wo |
| cd00 | 72 6c 64 2c 20 22 68 65 6c 6c 6f 20 77 6f 72 6c 64 22 29 29 3b 0a 7d 0a 0a 2f 2f 20 2a 2a 20 64 | rld,."hello.world"));.}..//.**.d |
| cd20 | 6f 65 73 20 72 65 70 65 61 74 69 6e 67 20 70 61 74 74 65 72 6e 73 0a 63 6f 6e 73 74 20 70 61 74 | oes.repeating.patterns.const.pat |
| cd40 | 74 65 72 6e 20 3d 20 22 61 62 22 20 2a 2a 20 33 3b 0a 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 | tern.=."ab".**.3;.comptime.{.... |
| cd60 | 20 61 73 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 75 38 2c 20 70 61 74 74 65 72 6e 2c 20 22 61 62 | .assert(mem.eql(u8,.pattern,."ab |
| cd80 | 61 62 61 62 22 29 29 3b 0a 7d 0a 0a 2f 2f 20 69 6e 69 74 69 61 6c 69 7a 65 20 61 6e 20 61 72 72 | abab"));.}..//.initialize.an.arr |
| cda0 | 61 79 20 74 6f 20 7a 65 72 6f 0a 63 6f 6e 73 74 20 61 6c 6c 5f 7a 65 72 6f 20 3d 20 5b 5d 75 31 | ay.to.zero.const.all_zero.=.[]u1 |
| cdc0 | 36 7b 30 7d 20 2a 2a 20 31 30 3b 0a 0a 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 61 73 73 65 | 6{0}.**.10;..comptime.{.....asse |
| cde0 | 72 74 28 61 6c 6c 5f 7a 65 72 6f 2e 6c 65 6e 20 3d 3d 20 31 30 29 3b 0a 20 20 20 20 61 73 73 65 | rt(all_zero.len.==.10);.....asse |
| ce00 | 72 74 28 61 6c 6c 5f 7a 65 72 6f 5b 35 5d 20 3d 3d 20 30 29 3b 0a 7d 0a 0a 2f 2f 20 75 73 65 20 | rt(all_zero[5].==.0);.}..//.use. |
| ce20 | 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 63 6f 64 65 20 74 6f 20 69 6e 69 74 69 61 6c 69 7a 65 20 | compile-time.code.to.initialize. |
| ce40 | 61 6e 20 61 72 72 61 79 0a 76 61 72 20 66 61 6e 63 79 5f 61 72 72 61 79 20 3d 20 7b 0a 20 20 20 | an.array.var.fancy_array.=.{.... |
| ce60 | 20 76 61 72 20 69 6e 69 74 69 61 6c 5f 76 61 6c 75 65 3a 20 5b 31 30 5d 50 6f 69 6e 74 20 3d 20 | .var.initial_value:.[10]Point.=. |
| ce80 | 75 6e 64 65 66 69 6e 65 64 3b 0a 20 20 20 20 66 6f 72 20 28 69 6e 69 74 69 61 6c 5f 76 61 6c 75 | undefined;.....for.(initial_valu |
| cea0 | 65 29 20 7c 2a 70 74 2c 20 69 7c 20 7b 0a 20 20 20 20 20 20 20 20 2a 70 74 20 3d 20 50 6f 69 6e | e).|*pt,.i|.{.........*pt.=.Poin |
| cec0 | 74 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2e 78 20 3d 20 69 33 32 28 69 29 2c 0a 20 20 20 | t.{..............x.=.i32(i),.... |
| cee0 | 20 20 20 20 20 20 20 20 20 2e 79 20 3d 20 69 33 32 28 69 29 20 2a 20 32 2c 0a 20 20 20 20 20 20 | ..........y.=.i32(i).*.2,....... |
| cf00 | 20 20 7d 3b 0a 20 20 20 20 7d 0a 20 20 20 20 69 6e 69 74 69 61 6c 5f 76 61 6c 75 65 0a 7d 3b 0a | ..};.....}.....initial_value.};. |
| cf20 | 63 6f 6e 73 74 20 50 6f 69 6e 74 20 3d 20 73 74 72 75 63 74 20 7b 0a 20 20 20 20 78 3a 20 69 33 | const.Point.=.struct.{.....x:.i3 |
| cf40 | 32 2c 0a 20 20 20 20 79 3a 20 69 33 32 2c 0a 7d 3b 0a 0a 74 65 73 74 20 22 63 6f 6d 70 69 6c 65 | 2,.....y:.i32,.};..test."compile |
| cf60 | 2d 74 69 6d 65 20 61 72 72 61 79 20 69 6e 69 74 61 6c 69 7a 61 74 69 6f 6e 22 20 7b 0a 20 20 20 | -time.array.initalization".{.... |
| cf80 | 20 61 73 73 65 72 74 28 66 61 6e 63 79 5f 61 72 72 61 79 5b 34 5d 2e 78 20 3d 3d 20 34 29 3b 0a | .assert(fancy_array[4].x.==.4);. |
| cfa0 | 20 20 20 20 61 73 73 65 72 74 28 66 61 6e 63 79 5f 61 72 72 61 79 5b 34 5d 2e 79 20 3d 3d 20 38 | ....assert(fancy_array[4].y.==.8 |
| cfc0 | 29 3b 0a 7d 0a 0a 2f 2f 20 63 61 6c 6c 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 69 6e 69 74 | );.}..//.call.a.function.to.init |
| cfe0 | 69 61 6c 69 7a 65 20 61 6e 20 61 72 72 61 79 0a 76 61 72 20 6d 6f 72 65 5f 70 6f 69 6e 74 73 20 | ialize.an.array.var.more_points. |
| d000 | 3d 20 5b 5d 50 6f 69 6e 74 7b 6d 61 6b 65 50 6f 69 6e 74 28 33 29 7d 20 2a 2a 20 31 30 3b 0a 66 | =.[]Point{makePoint(3)}.**.10;.f |
| d020 | 6e 20 6d 61 6b 65 50 6f 69 6e 74 28 78 3a 20 69 33 32 29 20 2d 26 67 74 3b 20 50 6f 69 6e 74 20 | n.makePoint(x:.i32).->.Point. |
| d040 | 7b 0a 20 20 20 20 50 6f 69 6e 74 20 7b 0a 20 20 20 20 20 20 20 20 2e 78 20 3d 20 78 2c 0a 20 20 | {.....Point.{..........x.=.x,... |
| d060 | 20 20 20 20 20 20 2e 79 20 3d 20 78 20 2a 20 32 2c 0a 20 20 20 20 7d 0a 7d 0a 74 65 73 74 20 22 | .......y.=.x.*.2,.....}.}.test." |
| d080 | 61 72 72 61 79 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 77 69 74 68 20 66 75 6e 63 74 69 | array.initialization.with.functi |
| d0a0 | 6f 6e 20 63 61 6c 6c 73 22 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 6f 72 65 5f 70 6f 69 6e | on.calls".{.....assert(more_poin |
| d0c0 | 74 73 5b 34 5d 2e 78 20 3d 3d 20 33 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 6f 72 65 5f 70 | ts[4].x.==.3);.....assert(more_p |
| d0e0 | 6f 69 6e 74 73 5b 34 5d 2e 79 20 3d 3d 20 36 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 6f 72 | oints[4].y.==.6);.....assert(mor |
| d100 | 65 5f 70 6f 69 6e 74 73 2e 6c 65 6e 20 3d 3d 20 31 30 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 | e_points.len.==.10);.}</code></p |
| d120 | 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e | re>.......<pre><code.class="sh"> |
| d140 | 24 20 7a 69 67 20 74 65 73 74 20 61 72 72 61 79 73 2e 7a 69 67 0a 54 65 73 74 20 31 2f 34 20 69 | $.zig.test.arrays.zig.Test.1/4.i |
| d160 | 74 65 72 61 74 65 20 6f 76 65 72 20 61 6e 20 61 72 72 61 79 2e 2e 2e 4f 4b 0a 54 65 73 74 20 32 | terate.over.an.array...OK.Test.2 |
| d180 | 2f 34 20 6d 6f 64 69 66 79 20 61 6e 20 61 72 72 61 79 2e 2e 2e 4f 4b 0a 54 65 73 74 20 33 2f 34 | /4.modify.an.array...OK.Test.3/4 |
| d1a0 | 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 61 72 72 61 79 20 69 6e 69 74 61 6c 69 7a 61 74 69 6f | .compile-time.array.initalizatio |
| d1c0 | 6e 2e 2e 2e 4f 4b 0a 54 65 73 74 20 34 2f 34 20 61 72 72 61 79 20 69 6e 69 74 69 61 6c 69 7a 61 | n...OK.Test.4/4.array.initializa |
| d1e0 | 74 69 6f 6e 20 77 69 74 68 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 2e 2e 2e 4f 4b 3c 2f 63 | tion.with.function.calls...OK</c |
| d200 | 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 | ode></pre>.......<p>See.also:</p |
| d220 | 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 | >.......<ul>.........<li><a.href |
| d240 | 3d 22 23 66 6f 72 22 3e 66 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 | ="#for">for</a></li>.........<li |
| d260 | 3e 3c 61 20 68 72 65 66 3d 22 23 73 6c 69 63 65 73 22 3e 53 6c 69 63 65 73 3c 2f 61 3e 3c 2f 6c | ><a.href="#slices">Slices</a></l |
| d280 | 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 70 6f 69 | i>.......</ul>.......<h2.id="poi |
| d2a0 | 6e 74 65 72 73 22 3e 50 6f 69 6e 74 65 72 73 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e | nters">Pointers</h2>.......<pre> |
| d2c0 | 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d | <code.class="zig">const.assert.= |
| d2e0 | 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 74 | .@import("std").debug.assert;..t |
| d300 | 65 73 74 20 22 61 64 64 72 65 73 73 20 6f 66 20 73 79 6e 74 61 78 22 20 7b 0a 20 20 20 20 2f 2f | est."address.of.syntax".{.....// |
| d320 | 20 47 65 74 20 74 68 65 20 61 64 64 72 65 73 73 20 6f 66 20 61 20 76 61 72 69 61 62 6c 65 3a 0a | .Get.the.address.of.a.variable:. |
| d340 | 20 20 20 20 63 6f 6e 73 74 20 78 3a 20 69 33 32 20 3d 20 31 32 33 34 3b 0a 20 20 20 20 63 6f 6e | ....const.x:.i32.=.1234;.....con |
| d360 | 73 74 20 78 5f 70 74 72 20 3d 20 26 61 6d 70 3b 78 3b 0a 0a 20 20 20 20 2f 2f 20 44 65 66 65 72 | st.x_ptr.=.&x;......//.Defer |
| d380 | 65 6e 63 65 20 61 20 70 6f 69 6e 74 65 72 3a 0a 20 20 20 20 61 73 73 65 72 74 28 2a 78 5f 70 74 | ence.a.pointer:.....assert(*x_pt |
| d3a0 | 72 20 3d 3d 20 31 32 33 34 29 3b 0a 0a 20 20 20 20 2f 2f 20 57 68 65 6e 20 79 6f 75 20 67 65 74 | r.==.1234);......//.When.you.get |
| d3c0 | 20 74 68 65 20 61 64 64 72 65 73 73 20 6f 66 20 61 20 63 6f 6e 73 74 20 76 61 72 69 61 62 6c 65 | .the.address.of.a.const.variable |
| d3e0 | 2c 20 79 6f 75 20 67 65 74 20 61 20 63 6f 6e 73 74 20 70 6f 69 6e 74 65 72 2e 0a 20 20 20 20 61 | ,.you.get.a.const.pointer......a |
| d400 | 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 78 5f 70 74 72 29 20 3d 3d 20 26 61 6d 70 3b 63 6f 6e | ssert(@typeOf(x_ptr).==.&con |
| d420 | 73 74 20 69 33 32 29 3b 0a 0a 20 20 20 20 2f 2f 20 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 | st.i32);......//.If.you.want.to. |
| d440 | 6d 75 74 61 74 65 20 74 68 65 20 76 61 6c 75 65 2c 20 79 6f 75 27 64 20 6e 65 65 64 20 61 6e 20 | mutate.the.value,.you'd.need.an. |
| d460 | 61 64 64 72 65 73 73 20 6f 66 20 61 20 6d 75 74 61 62 6c 65 20 76 61 72 69 61 62 6c 65 3a 0a 20 | address.of.a.mutable.variable:.. |
| d480 | 20 20 20 76 61 72 20 79 3a 20 69 33 32 20 3d 20 35 36 37 38 3b 0a 20 20 20 20 63 6f 6e 73 74 20 | ...var.y:.i32.=.5678;.....const. |
| d4a0 | 79 5f 70 74 72 20 3d 20 26 61 6d 70 3b 79 3b 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 70 65 | y_ptr.=.&y;.....assert(@type |
| d4c0 | 4f 66 28 79 5f 70 74 72 29 20 3d 3d 20 26 61 6d 70 3b 69 33 32 29 3b 0a 20 20 20 20 2a 79 5f 70 | Of(y_ptr).==.&i32);.....*y_p |
| d4e0 | 74 72 20 2b 3d 20 31 3b 0a 20 20 20 20 61 73 73 65 72 74 28 2a 79 5f 70 74 72 20 3d 3d 20 35 36 | tr.+=.1;.....assert(*y_ptr.==.56 |
| d500 | 37 39 29 3b 0a 7d 0a 0a 74 65 73 74 20 22 70 6f 69 6e 74 65 72 20 61 72 72 61 79 20 61 63 63 65 | 79);.}..test."pointer.array.acce |
| d520 | 73 73 22 20 7b 0a 20 20 20 20 2f 2f 20 50 6f 69 6e 74 65 72 73 20 64 6f 20 6e 6f 74 20 73 75 70 | ss".{.....//.Pointers.do.not.sup |
| d540 | 70 6f 72 74 20 70 6f 69 6e 74 65 72 20 61 72 69 74 68 6d 65 74 69 63 2e 20 49 66 20 79 6f 75 0a | port.pointer.arithmetic..If.you. |
| d560 | 20 20 20 20 2f 2f 20 6e 65 65 64 20 73 75 63 68 20 61 20 74 68 69 6e 67 2c 20 75 73 65 20 61 72 | ....//.need.such.a.thing,.use.ar |
| d580 | 72 61 79 20 69 6e 64 65 78 20 73 79 6e 74 61 78 3a 0a 0a 20 20 20 20 76 61 72 20 61 72 72 61 79 | ray.index.syntax:......var.array |
| d5a0 | 20 3d 20 5b 5d 75 38 7b 31 2c 20 32 2c 20 33 2c 20 34 2c 20 35 2c 20 36 2c 20 37 2c 20 38 2c 20 | .=.[]u8{1,.2,.3,.4,.5,.6,.7,.8,. |
| d5c0 | 39 2c 20 31 30 7d 3b 0a 20 20 20 20 63 6f 6e 73 74 20 70 74 72 20 3d 20 26 61 6d 70 3b 61 72 72 | 9,.10};.....const.ptr.=.&arr |
| d5e0 | 61 79 5b 31 5d 3b 0a 0a 20 20 20 20 61 73 73 65 72 74 28 61 72 72 61 79 5b 32 5d 20 3d 3d 20 33 | ay[1];......assert(array[2].==.3 |
| d600 | 29 3b 0a 20 20 20 20 70 74 72 5b 31 5d 20 2b 3d 20 31 3b 0a 20 20 20 20 61 73 73 65 72 74 28 61 | );.....ptr[1].+=.1;.....assert(a |
| d620 | 72 72 61 79 5b 32 5d 20 3d 3d 20 34 29 3b 0a 7d 0a 0a 74 65 73 74 20 22 70 6f 69 6e 74 65 72 20 | rray[2].==.4);.}..test."pointer. |
| d640 | 73 6c 69 63 69 6e 67 22 20 7b 0a 20 20 20 20 2f 2f 20 49 6e 20 5a 69 67 2c 20 77 65 20 70 72 65 | slicing".{.....//.In.Zig,.we.pre |
| d660 | 66 65 72 20 75 73 69 6e 67 20 73 6c 69 63 65 73 20 6f 76 65 72 20 6e 75 6c 6c 2d 74 65 72 6d 69 | fer.using.slices.over.null-termi |
| d680 | 6e 61 74 65 64 20 70 6f 69 6e 74 65 72 73 2e 0a 20 20 20 20 2f 2f 20 59 6f 75 20 63 61 6e 20 74 | nated.pointers......//.You.can.t |
| d6a0 | 75 72 6e 20 61 20 70 6f 69 6e 74 65 72 20 69 6e 74 6f 20 61 20 73 6c 69 63 65 20 75 73 69 6e 67 | urn.a.pointer.into.a.slice.using |
| d6c0 | 20 73 6c 69 63 65 20 73 79 6e 74 61 78 3a 0a 20 20 20 20 76 61 72 20 61 72 72 61 79 20 3d 20 5b | .slice.syntax:.....var.array.=.[ |
| d6e0 | 5d 75 38 7b 31 2c 20 32 2c 20 33 2c 20 34 2c 20 35 2c 20 36 2c 20 37 2c 20 38 2c 20 39 2c 20 31 | ]u8{1,.2,.3,.4,.5,.6,.7,.8,.9,.1 |
| d700 | 30 7d 3b 0a 20 20 20 20 63 6f 6e 73 74 20 70 74 72 20 3d 20 26 61 6d 70 3b 61 72 72 61 79 5b 31 | 0};.....const.ptr.=.&array[1 |
| d720 | 5d 3b 0a 20 20 20 20 63 6f 6e 73 74 20 73 6c 69 63 65 20 3d 20 70 74 72 5b 31 2e 2e 33 5d 3b 0a | ];.....const.slice.=.ptr[1..3];. |
| d740 | 0a 20 20 20 20 61 73 73 65 72 74 28 73 6c 69 63 65 2e 70 74 72 20 3d 3d 20 26 61 6d 70 3b 70 74 | .....assert(slice.ptr.==.&pt |
| d760 | 72 5b 31 5d 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 73 6c 69 63 65 2e 6c 65 6e 20 3d 3d 20 32 | r[1]);.....assert(slice.len.==.2 |
| d780 | 29 3b 0a 0a 20 20 20 20 2f 2f 20 53 6c 69 63 65 73 20 68 61 76 65 20 62 6f 75 6e 64 73 20 63 68 | );......//.Slices.have.bounds.ch |
| d7a0 | 65 63 6b 69 6e 67 20 61 6e 64 20 61 72 65 20 74 68 65 72 65 66 6f 72 65 20 70 72 6f 74 65 63 74 | ecking.and.are.therefore.protect |
| d7c0 | 65 64 0a 20 20 20 20 2f 2f 20 61 67 61 69 6e 73 74 20 74 68 69 73 20 6b 69 6e 64 20 6f 66 20 75 | ed.....//.against.this.kind.of.u |
| d7e0 | 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 2e 20 54 68 69 73 20 69 73 20 6f 6e 65 20 72 | ndefined.behavior..This.is.one.r |
| d800 | 65 61 73 6f 6e 0a 20 20 20 20 2f 2f 20 77 65 20 70 72 65 66 65 72 20 73 6c 69 63 65 73 20 74 6f | eason.....//.we.prefer.slices.to |
| d820 | 20 70 6f 69 6e 74 65 72 73 2e 0a 20 20 20 20 61 73 73 65 72 74 28 61 72 72 61 79 5b 33 5d 20 3d | .pointers......assert(array[3].= |
| d840 | 3d 20 34 29 3b 0a 20 20 20 20 73 6c 69 63 65 5b 31 5d 20 2b 3d 20 31 3b 0a 20 20 20 20 61 73 73 | =.4);.....slice[1].+=.1;.....ass |
| d860 | 65 72 74 28 61 72 72 61 79 5b 33 5d 20 3d 3d 20 35 29 3b 0a 7d 0a 0a 63 6f 6d 70 74 69 6d 65 20 | ert(array[3].==.5);.}..comptime. |
| d880 | 7b 0a 20 20 20 20 2f 2f 20 50 6f 69 6e 74 65 72 73 20 77 6f 72 6b 20 61 74 20 63 6f 6d 70 69 6c | {.....//.Pointers.work.at.compil |
| d8a0 | 65 2d 74 69 6d 65 20 74 6f 6f 2c 20 61 73 20 6c 6f 6e 67 20 61 73 20 79 6f 75 20 64 6f 6e 27 74 | e-time.too,.as.long.as.you.don't |
| d8c0 | 20 75 73 65 0a 20 20 20 20 2f 2f 20 40 70 74 72 43 61 73 74 2e 0a 20 20 20 20 76 61 72 20 78 3a | .use.....//.@ptrCast......var.x: |
| d8e0 | 20 69 33 32 20 3d 20 31 3b 0a 20 20 20 20 63 6f 6e 73 74 20 70 74 72 20 3d 20 26 61 6d 70 3b 78 | .i32.=.1;.....const.ptr.=.&x |
| d900 | 3b 0a 20 20 20 20 2a 70 74 72 20 2b 3d 20 31 3b 0a 20 20 20 20 78 20 2b 3d 20 31 3b 0a 20 20 20 | ;.....*ptr.+=.1;.....x.+=.1;.... |
| d920 | 20 61 73 73 65 72 74 28 2a 70 74 72 20 3d 3d 20 33 29 3b 0a 7d 0a 0a 74 65 73 74 20 22 40 70 74 | .assert(*ptr.==.3);.}..test."@pt |
| d940 | 72 54 6f 49 6e 74 20 61 6e 64 20 40 69 6e 74 54 6f 50 74 72 22 20 7b 0a 20 20 20 20 2f 2f 20 54 | rToInt.and.@intToPtr".{.....//.T |
| d960 | 6f 20 63 6f 6e 76 65 72 74 20 61 6e 20 69 6e 74 65 67 65 72 20 61 64 64 72 65 73 73 20 69 6e 74 | o.convert.an.integer.address.int |
| d980 | 6f 20 61 20 70 6f 69 6e 74 65 72 2c 20 75 73 65 20 40 69 6e 74 54 6f 50 74 72 3a 0a 20 20 20 20 | o.a.pointer,.use.@intToPtr:..... |
| d9a0 | 63 6f 6e 73 74 20 70 74 72 20 3d 20 40 69 6e 74 54 6f 50 74 72 28 26 61 6d 70 3b 69 33 32 2c 20 | const.ptr.=.@intToPtr(&i32,. |
| d9c0 | 30 78 64 65 61 64 62 65 65 66 29 3b 0a 0a 20 20 20 20 2f 2f 20 54 6f 20 63 6f 6e 76 65 72 74 20 | 0xdeadbeef);......//.To.convert. |
| d9e0 | 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 6e 20 69 6e 74 65 67 65 72 2c 20 75 73 65 20 40 70 74 | a.pointer.to.an.integer,.use.@pt |
| da00 | 72 54 6f 49 6e 74 3a 0a 20 20 20 20 63 6f 6e 73 74 20 61 64 64 72 20 3d 20 40 70 74 72 54 6f 49 | rToInt:.....const.addr.=.@ptrToI |
| da20 | 6e 74 28 70 74 72 29 3b 0a 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 61 64 64 | nt(ptr);......assert(@typeOf(add |
| da40 | 72 29 20 3d 3d 20 75 73 69 7a 65 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 61 64 64 72 20 3d 3d | r).==.usize);.....assert(addr.== |
| da60 | 20 30 78 64 65 61 64 62 65 65 66 29 3b 0a 7d 0a 0a 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 | .0xdeadbeef);.}..comptime.{..... |
| da80 | 2f 2f 20 5a 69 67 20 69 73 20 61 62 6c 65 20 74 6f 20 64 6f 20 74 68 69 73 20 61 74 20 63 6f 6d | //.Zig.is.able.to.do.this.at.com |
| daa0 | 70 69 6c 65 2d 74 69 6d 65 2c 20 61 73 20 6c 6f 6e 67 20 61 73 0a 20 20 20 20 2f 2f 20 70 74 72 | pile-time,.as.long.as.....//.ptr |
| dac0 | 20 69 73 20 6e 65 76 65 72 20 64 65 72 65 66 65 72 65 6e 63 65 64 2e 0a 20 20 20 20 63 6f 6e 73 | .is.never.dereferenced......cons |
| dae0 | 74 20 70 74 72 20 3d 20 40 69 6e 74 54 6f 50 74 72 28 26 61 6d 70 3b 69 33 32 2c 20 30 78 64 65 | t.ptr.=.@intToPtr(&i32,.0xde |
| db00 | 61 64 62 65 65 66 29 3b 0a 20 20 20 20 63 6f 6e 73 74 20 61 64 64 72 20 3d 20 40 70 74 72 54 6f | adbeef);.....const.addr.=.@ptrTo |
| db20 | 49 6e 74 28 70 74 72 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 61 64 64 | Int(ptr);.....assert(@typeOf(add |
| db40 | 72 29 20 3d 3d 20 75 73 69 7a 65 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 61 64 64 72 20 3d 3d | r).==.usize);.....assert(addr.== |
| db60 | 20 30 78 64 65 61 64 62 65 65 66 29 3b 0a 7d 0a 0a 74 65 73 74 20 22 76 6f 6c 61 74 69 6c 65 22 | .0xdeadbeef);.}..test."volatile" |
| db80 | 20 7b 0a 20 20 20 20 2f 2f 20 49 6e 20 5a 69 67 2c 20 6c 6f 61 64 73 20 61 6e 64 20 73 74 6f 72 | .{.....//.In.Zig,.loads.and.stor |
| dba0 | 65 73 20 61 72 65 20 61 73 73 75 6d 65 64 20 74 6f 20 6e 6f 74 20 68 61 76 65 20 73 69 64 65 20 | es.are.assumed.to.not.have.side. |
| dbc0 | 65 66 66 65 63 74 73 2e 0a 20 20 20 20 2f 2f 20 49 66 20 61 20 67 69 76 65 6e 20 6c 6f 61 64 20 | effects......//.If.a.given.load. |
| dbe0 | 6f 72 20 73 74 6f 72 65 20 73 68 6f 75 6c 64 20 68 61 76 65 20 73 69 64 65 20 65 66 66 65 63 74 | or.store.should.have.side.effect |
| dc00 | 73 2c 20 73 75 63 68 20 61 73 0a 20 20 20 20 2f 2f 20 4d 65 6d 6f 72 79 20 4d 61 70 70 65 64 20 | s,.such.as.....//.Memory.Mapped. |
| dc20 | 49 6e 70 75 74 2f 4f 75 74 70 75 74 20 28 4d 4d 49 4f 29 2c 20 75 73 65 20 60 76 6f 6c 61 74 69 | Input/Output.(MMIO),.use.`volati |
| dc40 | 6c 65 60 3a 0a 20 20 20 20 63 6f 6e 73 74 20 6d 6d 69 6f 5f 70 74 72 20 3d 20 40 69 6e 74 54 6f | le`:.....const.mmio_ptr.=.@intTo |
| dc60 | 50 74 72 28 26 61 6d 70 3b 76 6f 6c 61 74 69 6c 65 20 75 38 2c 20 30 78 31 32 33 34 35 36 37 38 | Ptr(&volatile.u8,.0x12345678 |
| dc80 | 29 3b 0a 0a 20 20 20 20 2f 2f 20 4e 6f 77 20 6c 6f 61 64 73 20 61 6e 64 20 73 74 6f 72 65 73 20 | );......//.Now.loads.and.stores. |
| dca0 | 77 69 74 68 20 6d 6d 69 6f 5f 70 74 72 20 61 72 65 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 | with.mmio_ptr.are.guaranteed.to. |
| dcc0 | 61 6c 6c 20 68 61 70 70 65 6e 0a 20 20 20 20 2f 2f 20 61 6e 64 20 69 6e 20 74 68 65 20 73 61 6d | all.happen.....//.and.in.the.sam |
| dce0 | 65 20 6f 72 64 65 72 20 61 73 20 69 6e 20 73 6f 75 72 63 65 20 63 6f 64 65 2e 0a 20 20 20 20 61 | e.order.as.in.source.code......a |
| dd00 | 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 6d 6d 69 6f 5f 70 74 72 29 20 3d 3d 20 26 61 6d 70 3b | ssert(@typeOf(mmio_ptr).==.& |
| dd20 | 76 6f 6c 61 74 69 6c 65 20 75 38 29 3b 0a 7d 0a 0a 74 65 73 74 20 22 6e 75 6c 6c 61 62 6c 65 20 | volatile.u8);.}..test."nullable. |
| dd40 | 70 6f 69 6e 74 65 72 73 22 20 7b 0a 20 20 20 20 2f 2f 20 50 6f 69 6e 74 65 72 73 20 63 61 6e 6e | pointers".{.....//.Pointers.cann |
| dd60 | 6f 74 20 62 65 20 6e 75 6c 6c 2e 20 49 66 20 79 6f 75 20 77 61 6e 74 20 61 20 6e 75 6c 6c 20 70 | ot.be.null..If.you.want.a.null.p |
| dd80 | 6f 69 6e 74 65 72 2c 20 75 73 65 20 74 68 65 20 6e 75 6c 6c 61 62 6c 65 0a 20 20 20 20 2f 2f 20 | ointer,.use.the.nullable.....//. |
| dda0 | 70 72 65 66 69 78 20 60 3f 60 20 74 6f 20 6d 61 6b 65 20 74 68 65 20 70 6f 69 6e 74 65 72 20 74 | prefix.`?`.to.make.the.pointer.t |
| ddc0 | 79 70 65 20 6e 75 6c 6c 61 62 6c 65 2e 0a 20 20 20 20 76 61 72 20 70 74 72 3a 20 3f 26 61 6d 70 | ype.nullable......var.ptr:.?& |
| dde0 | 3b 69 33 32 20 3d 20 6e 75 6c 6c 3b 0a 0a 20 20 20 20 76 61 72 20 78 3a 20 69 33 32 20 3d 20 31 | ;i32.=.null;......var.x:.i32.=.1 |
| de00 | 3b 0a 20 20 20 20 70 74 72 20 3d 20 26 61 6d 70 3b 78 3b 0a 0a 20 20 20 20 61 73 73 65 72 74 28 | ;.....ptr.=.&x;......assert( |
| de20 | 2a 3f 3f 70 74 72 20 3d 3d 20 31 29 3b 0a 0a 20 20 20 20 2f 2f 20 4e 75 6c 6c 61 62 6c 65 20 70 | *??ptr.==.1);......//.Nullable.p |
| de40 | 6f 69 6e 74 65 72 73 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 73 69 7a 65 20 61 73 20 6e 6f 72 | ointers.are.the.same.size.as.nor |
| de60 | 6d 61 6c 20 70 6f 69 6e 74 65 72 73 2c 20 62 65 63 61 75 73 65 20 70 6f 69 6e 74 65 72 0a 20 20 | mal.pointers,.because.pointer... |
| de80 | 20 20 2f 2f 20 76 61 6c 75 65 20 30 20 69 73 20 75 73 65 64 20 61 73 20 74 68 65 20 6e 75 6c 6c | ..//.value.0.is.used.as.the.null |
| dea0 | 20 76 61 6c 75 65 2e 0a 20 20 20 20 61 73 73 65 72 74 28 40 73 69 7a 65 4f 66 28 3f 26 61 6d 70 | .value......assert(@sizeOf(?& |
| dec0 | 3b 69 33 32 29 20 3d 3d 20 40 73 69 7a 65 4f 66 28 26 61 6d 70 3b 69 33 32 29 29 3b 0a 7d 0a 0a | ;i32).==.@sizeOf(&i32));.}.. |
| dee0 | 74 65 73 74 20 22 70 6f 69 6e 74 65 72 20 63 61 73 74 69 6e 67 22 20 7b 0a 20 20 20 20 2f 2f 20 | test."pointer.casting".{.....//. |
| df00 | 54 6f 20 63 6f 6e 76 65 72 74 20 6f 6e 65 20 70 6f 69 6e 74 65 72 20 74 79 70 65 20 74 6f 20 61 | To.convert.one.pointer.type.to.a |
| df20 | 6e 6f 74 68 65 72 2c 20 75 73 65 20 40 70 74 72 43 61 73 74 2e 20 54 68 69 73 20 69 73 20 61 6e | nother,.use.@ptrCast..This.is.an |
| df40 | 20 75 6e 73 61 66 65 0a 20 20 20 20 2f 2f 20 6f 70 65 72 61 74 69 6f 6e 20 74 68 61 74 20 5a 69 | .unsafe.....//.operation.that.Zi |
| df60 | 67 20 63 61 6e 6e 6f 74 20 70 72 6f 74 65 63 74 20 79 6f 75 20 61 67 61 69 6e 73 74 2e 20 55 73 | g.cannot.protect.you.against..Us |
| df80 | 65 20 40 70 74 72 43 61 73 74 20 6f 6e 6c 79 20 77 68 65 6e 20 6f 74 68 65 72 0a 20 20 20 20 2f | e.@ptrCast.only.when.other...../ |
| dfa0 | 2f 20 63 6f 6e 76 65 72 73 69 6f 6e 73 20 61 72 65 20 6e 6f 74 20 70 6f 73 73 69 62 6c 65 2e 0a | /.conversions.are.not.possible.. |
| dfc0 | 20 20 20 20 63 6f 6e 73 74 20 62 79 74 65 73 20 3d 20 5b 5d 75 38 7b 30 78 31 32 2c 20 30 78 31 | ....const.bytes.=.[]u8{0x12,.0x1 |
| dfe0 | 32 2c 20 30 78 31 32 2c 20 30 78 31 32 7d 3b 0a 20 20 20 20 63 6f 6e 73 74 20 75 33 32 5f 70 74 | 2,.0x12,.0x12};.....const.u32_pt |
| e000 | 72 20 3d 20 40 70 74 72 43 61 73 74 28 26 61 6d 70 3b 63 6f 6e 73 74 20 75 33 32 2c 20 26 61 6d | r.=.@ptrCast(&const.u32,.&am |
| e020 | 70 3b 62 79 74 65 73 5b 30 5d 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 2a 75 33 32 5f 70 74 72 | p;bytes[0]);.....assert(*u32_ptr |
| e040 | 20 3d 3d 20 30 78 31 32 31 32 31 32 31 32 29 3b 0a 0a 20 20 20 20 2f 2f 20 45 76 65 6e 20 74 68 | .==.0x12121212);......//.Even.th |
| e060 | 69 73 20 65 78 61 6d 70 6c 65 20 69 73 20 63 6f 6e 74 72 69 76 65 64 20 2d 20 74 68 65 72 65 20 | is.example.is.contrived.-.there. |
| e080 | 61 72 65 20 62 65 74 74 65 72 20 77 61 79 73 20 74 6f 20 64 6f 20 74 68 65 20 61 62 6f 76 65 20 | are.better.ways.to.do.the.above. |
| e0a0 | 74 68 61 6e 0a 20 20 20 20 2f 2f 20 70 6f 69 6e 74 65 72 20 63 61 73 74 69 6e 67 2e 20 46 6f 72 | than.....//.pointer.casting..For |
| e0c0 | 20 65 78 61 6d 70 6c 65 2c 20 75 73 69 6e 67 20 61 20 73 6c 69 63 65 20 6e 61 72 72 6f 77 69 6e | .example,.using.a.slice.narrowin |
| e0e0 | 67 20 63 61 73 74 3a 0a 20 20 20 20 63 6f 6e 73 74 20 75 33 32 5f 76 61 6c 75 65 20 3d 20 28 5b | g.cast:.....const.u32_value.=.([ |
| e100 | 5d 63 6f 6e 73 74 20 75 33 32 29 28 62 79 74 65 73 5b 30 2e 2e 5d 29 5b 30 5d 3b 0a 20 20 20 20 | ]const.u32)(bytes[0..])[0];..... |
| e120 | 61 73 73 65 72 74 28 75 33 32 5f 76 61 6c 75 65 20 3d 3d 20 30 78 31 32 31 32 31 32 31 32 29 3b | assert(u32_value.==.0x12121212); |
| e140 | 0a 0a 20 20 20 20 2f 2f 20 41 6e 64 20 65 76 65 6e 20 61 6e 6f 74 68 65 72 20 77 61 79 2c 20 74 | ......//.And.even.another.way,.t |
| e160 | 68 65 20 6d 6f 73 74 20 73 74 72 61 69 67 68 74 66 6f 72 77 61 72 64 20 77 61 79 20 74 6f 20 64 | he.most.straightforward.way.to.d |
| e180 | 6f 20 69 74 3a 0a 20 20 20 20 61 73 73 65 72 74 28 40 62 69 74 43 61 73 74 28 75 33 32 2c 20 62 | o.it:.....assert(@bitCast(u32,.b |
| e1a0 | 79 74 65 73 29 20 3d 3d 20 30 78 31 32 31 32 31 32 31 32 29 3b 0a 7d 0a 0a 74 65 73 74 20 22 70 | ytes).==.0x12121212);.}..test."p |
| e1c0 | 6f 69 6e 74 65 72 20 63 68 69 6c 64 20 74 79 70 65 22 20 7b 0a 20 20 20 20 2f 2f 20 70 6f 69 6e | ointer.child.type".{.....//.poin |
| e1e0 | 74 65 72 20 74 79 70 65 73 20 68 61 76 65 20 61 20 60 63 68 69 6c 64 60 20 66 69 65 6c 64 20 77 | ter.types.have.a.`child`.field.w |
| e200 | 68 69 63 68 20 74 65 6c 6c 73 20 79 6f 75 20 74 68 65 20 74 79 70 65 20 74 68 65 79 20 70 6f 69 | hich.tells.you.the.type.they.poi |
| e220 | 6e 74 20 74 6f 2e 0a 20 20 20 20 61 73 73 65 72 74 28 28 26 61 6d 70 3b 75 33 32 29 2e 63 68 69 | nt.to......assert((&u32).chi |
| e240 | 6c 64 20 3d 3d 20 75 33 32 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 | ld.==.u32);.}</code></pre>...... |
| e260 | 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 74 65 73 | .<pre><code.class="sh">$.zig.tes |
| e280 | 74 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 38 20 61 64 64 72 65 73 73 20 6f 66 20 73 | t.test.zig.Test.1/8.address.of.s |
| e2a0 | 79 6e 74 61 78 2e 2e 2e 4f 4b 0a 54 65 73 74 20 32 2f 38 20 70 6f 69 6e 74 65 72 20 61 72 72 61 | yntax...OK.Test.2/8.pointer.arra |
| e2c0 | 79 20 61 63 63 65 73 73 2e 2e 2e 4f 4b 0a 54 65 73 74 20 33 2f 38 20 70 6f 69 6e 74 65 72 20 73 | y.access...OK.Test.3/8.pointer.s |
| e2e0 | 6c 69 63 69 6e 67 2e 2e 2e 4f 4b 0a 54 65 73 74 20 34 2f 38 20 40 70 74 72 54 6f 49 6e 74 20 61 | licing...OK.Test.4/8.@ptrToInt.a |
| e300 | 6e 64 20 40 69 6e 74 54 6f 50 74 72 2e 2e 2e 4f 4b 0a 54 65 73 74 20 35 2f 38 20 76 6f 6c 61 74 | nd.@intToPtr...OK.Test.5/8.volat |
| e320 | 69 6c 65 2e 2e 2e 4f 4b 0a 54 65 73 74 20 36 2f 38 20 6e 75 6c 6c 61 62 6c 65 20 70 6f 69 6e 74 | ile...OK.Test.6/8.nullable.point |
| e340 | 65 72 73 2e 2e 2e 4f 4b 0a 54 65 73 74 20 37 2f 38 20 70 6f 69 6e 74 65 72 20 63 61 73 74 69 6e | ers...OK.Test.7/8.pointer.castin |
| e360 | 67 2e 2e 2e 4f 4b 0a 54 65 73 74 20 38 2f 38 20 70 6f 69 6e 74 65 72 20 63 68 69 6c 64 20 74 79 | g...OK.Test.8/8.pointer.child.ty |
| e380 | 70 65 2e 2e 2e 4f 4b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 | pe...OK</code></pre>.......<h3.i |
| e3a0 | 64 3d 22 61 6c 69 67 6e 6d 65 6e 74 22 3e 41 6c 69 67 6e 6d 65 6e 74 3c 2f 68 33 3e 0a 20 20 20 | d="alignment">Alignment</h3>.... |
| e3c0 | 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 45 61 63 68 20 74 79 70 65 20 68 61 73 20 61 6e 20 3c 73 | ...<p>.......Each.type.has.an.<s |
| e3e0 | 74 72 6f 6e 67 3e 61 6c 69 67 6e 6d 65 6e 74 3c 2f 73 74 72 6f 6e 67 3e 20 2d 20 61 20 6e 75 6d | trong>alignment</strong>.-.a.num |
| e400 | 62 65 72 20 6f 66 20 62 79 74 65 73 20 73 75 63 68 20 74 68 61 74 2c 0a 20 20 20 20 20 20 77 68 | ber.of.bytes.such.that,.......wh |
| e420 | 65 6e 20 61 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 74 79 70 65 20 69 73 20 6c 6f 61 64 65 64 | en.a.value.of.the.type.is.loaded |
| e440 | 20 66 72 6f 6d 20 6f 72 20 73 74 6f 72 65 64 20 74 6f 20 6d 65 6d 6f 72 79 2c 0a 20 20 20 20 20 | .from.or.stored.to.memory,...... |
| e460 | 20 74 68 65 20 6d 65 6d 6f 72 79 20 61 64 64 72 65 73 73 20 6d 75 73 74 20 62 65 20 65 76 65 6e | .the.memory.address.must.be.even |
| e480 | 6c 79 20 64 69 76 69 73 69 62 6c 65 20 62 79 20 74 68 69 73 20 6e 75 6d 62 65 72 2e 20 59 6f 75 | ly.divisible.by.this.number..You |
| e4a0 | 20 63 61 6e 20 75 73 65 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e | .can.use.......<a.href="#builtin |
| e4c0 | 2d 61 6c 69 67 6e 4f 66 22 3e 40 61 6c 69 67 6e 4f 66 3c 2f 61 3e 20 74 6f 20 66 69 6e 64 20 6f | -alignOf">@alignOf</a>.to.find.o |
| e4e0 | 75 74 20 74 68 69 73 20 76 61 6c 75 65 20 66 6f 72 20 61 6e 79 20 74 79 70 65 2e 0a 20 20 20 20 | ut.this.value.for.any.type...... |
| e500 | 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 6c 69 67 6e 6d 65 6e 74 | ..</p>.......<p>.......Alignment |
| e520 | 20 64 65 70 65 6e 64 73 20 6f 6e 20 74 68 65 20 43 50 55 20 61 72 63 68 69 74 65 63 74 75 72 65 | .depends.on.the.CPU.architecture |
| e540 | 2c 20 62 75 74 20 69 73 20 61 6c 77 61 79 73 20 61 20 70 6f 77 65 72 20 6f 66 20 74 77 6f 2c 20 | ,.but.is.always.a.power.of.two,. |
| e560 | 61 6e 64 0a 20 20 20 20 20 20 6c 65 73 73 20 74 68 61 6e 20 3c 63 6f 64 65 3e 31 20 26 6c 74 3b | and.......less.than.<code>1.< |
| e580 | 26 6c 74 3b 20 32 39 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 | <.29</code>........</p>...... |
| e5a0 | 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 5a 69 67 2c 20 61 20 70 6f 69 6e 74 65 72 20 74 79 70 | .<p>.......In.Zig,.a.pointer.typ |
| e5c0 | 65 20 68 61 73 20 61 6e 20 61 6c 69 67 6e 6d 65 6e 74 20 76 61 6c 75 65 2e 20 49 66 20 74 68 65 | e.has.an.alignment.value..If.the |
| e5e0 | 20 76 61 6c 75 65 20 69 73 20 65 71 75 61 6c 20 74 6f 20 74 68 65 0a 20 20 20 20 20 20 61 6c 69 | .value.is.equal.to.the.......ali |
| e600 | 67 6e 6d 65 6e 74 20 6f 66 20 74 68 65 20 75 6e 64 65 72 6c 79 69 6e 67 20 74 79 70 65 2c 20 69 | gnment.of.the.underlying.type,.i |
| e620 | 74 20 63 61 6e 20 62 65 20 6f 6d 69 74 74 65 64 20 66 72 6f 6d 20 74 68 65 20 74 79 70 65 3a 0a | t.can.be.omitted.from.the.type:. |
| e640 | 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | ......</p>.......<pre><code.clas |
| e660 | 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 22 | s="zig">const.assert.=.@import(" |
| e680 | 73 74 64 22 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 63 6f 6e 73 74 20 62 75 69 6c 74 69 | std").debug.assert;.const.builti |
| e6a0 | 6e 20 3d 20 40 69 6d 70 6f 72 74 28 22 62 75 69 6c 74 69 6e 22 29 3b 0a 0a 74 65 73 74 20 22 76 | n.=.@import("builtin");..test."v |
| e6c0 | 61 72 69 61 62 6c 65 20 61 6c 69 67 6e 6d 65 6e 74 22 20 7b 0a 20 20 20 20 76 61 72 20 78 3a 20 | ariable.alignment".{.....var.x:. |
| e6e0 | 69 33 32 20 3d 20 31 32 33 34 3b 0a 20 20 20 20 63 6f 6e 73 74 20 61 6c 69 67 6e 5f 6f 66 5f 69 | i32.=.1234;.....const.align_of_i |
| e700 | 33 32 20 3d 20 40 61 6c 69 67 6e 4f 66 28 40 74 79 70 65 4f 66 28 78 29 29 3b 0a 20 20 20 20 61 | 32.=.@alignOf(@typeOf(x));.....a |
| e720 | 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 26 61 6d 70 3b 78 29 20 3d 3d 20 26 61 6d 70 3b 69 33 | ssert(@typeOf(&x).==.&i3 |
| e740 | 32 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 26 61 6d 70 3b 69 33 32 20 3d 3d 20 26 61 6d 70 3b | 2);.....assert(&i32.==.& |
| e760 | 61 6c 69 67 6e 28 61 6c 69 67 6e 5f 6f 66 5f 69 33 32 29 20 69 33 32 29 3b 0a 20 20 20 20 69 66 | align(align_of_i32).i32);.....if |
| e780 | 20 28 62 75 69 6c 74 69 6e 2e 61 72 63 68 20 3d 3d 20 62 75 69 6c 74 69 6e 2e 41 72 63 68 2e 78 | .(builtin.arch.==.builtin.Arch.x |
| e7a0 | 38 36 5f 36 34 29 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 28 26 61 6d 70 3b 69 33 | 86_64).{.........assert((&i3 |
| e7c0 | 32 29 2e 61 6c 69 67 6e 6d 65 6e 74 20 3d 3d 20 34 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 | 2).alignment.==.4);.....}.}</cod |
| e7e0 | 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 49 6e 20 74 68 65 20 73 61 6d 65 20 77 61 | e></pre>.......<p>In.the.same.wa |
| e800 | 79 20 74 68 61 74 20 61 20 3c 63 6f 64 65 3e 26 61 6d 70 3b 69 33 32 3c 2f 63 6f 64 65 3e 20 63 | y.that.a.<code>&i32</code>.c |
| e820 | 61 6e 20 62 65 20 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 20 74 6f 20 61 0a 20 20 20 20 20 | an.be.implicitly.cast.to.a...... |
| e840 | 20 3c 63 6f 64 65 3e 26 61 6d 70 3b 63 6f 6e 73 74 20 69 33 32 3c 2f 63 6f 64 65 3e 2c 20 61 20 | .<code>&const.i32</code>,.a. |
| e860 | 70 6f 69 6e 74 65 72 20 77 69 74 68 20 61 20 6c 61 72 67 65 72 20 61 6c 69 67 6e 6d 65 6e 74 20 | pointer.with.a.larger.alignment. |
| e880 | 63 61 6e 20 62 65 20 69 6d 70 6c 69 63 69 74 6c 79 0a 20 20 20 20 20 20 63 61 73 74 20 74 6f 20 | can.be.implicitly.......cast.to. |
| e8a0 | 61 20 70 6f 69 6e 74 65 72 20 77 69 74 68 20 61 20 73 6d 61 6c 6c 65 72 20 61 6c 69 67 6e 6d 65 | a.pointer.with.a.smaller.alignme |
| e8c0 | 6e 74 2c 20 62 75 74 20 6e 6f 74 20 76 69 63 65 20 76 65 72 73 61 2e 0a 20 20 20 20 20 20 3c 2f | nt,.but.not.vice.versa........</ |
| e8e0 | 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 59 6f 75 20 63 61 6e 20 73 70 65 63 69 | p>.......<p>.......You.can.speci |
| e900 | 66 79 20 61 6c 69 67 6e 6d 65 6e 74 20 6f 6e 20 76 61 72 69 61 62 6c 65 73 20 61 6e 64 20 66 75 | fy.alignment.on.variables.and.fu |
| e920 | 6e 63 74 69 6f 6e 73 2e 20 49 66 20 79 6f 75 20 64 6f 20 74 68 69 73 2c 20 74 68 65 6e 0a 20 20 | nctions..If.you.do.this,.then... |
| e940 | 20 20 20 20 70 6f 69 6e 74 65 72 73 20 74 6f 20 74 68 65 6d 20 67 65 74 20 74 68 65 20 73 70 65 | ....pointers.to.them.get.the.spe |
| e960 | 63 69 66 69 65 64 20 61 6c 69 67 6e 6d 65 6e 74 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 | cified.alignment:.......</p>.... |
| e980 | 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 | ...<pre><code.class="zig">const. |
| e9a0 | 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 75 67 2e 61 73 | assert.=.@import("std").debug.as |
| e9c0 | 73 65 72 74 3b 0a 0a 76 61 72 20 66 6f 6f 3a 20 75 38 20 61 6c 69 67 6e 28 34 29 20 3d 20 31 30 | sert;..var.foo:.u8.align(4).=.10 |
| e9e0 | 30 3b 0a 0a 74 65 73 74 20 22 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 20 61 6c 69 67 6e 6d | 0;..test."global.variable.alignm |
| ea00 | 65 6e 74 22 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 26 61 6d 70 3b 66 | ent".{.....assert(@typeOf(&f |
| ea20 | 6f 6f 29 2e 61 6c 69 67 6e 6d 65 6e 74 20 3d 3d 20 34 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 | oo).alignment.==.4);.....assert( |
| ea40 | 40 74 79 70 65 4f 66 28 26 61 6d 70 3b 66 6f 6f 29 20 3d 3d 20 26 61 6d 70 3b 61 6c 69 67 6e 28 | @typeOf(&foo).==.&align( |
| ea60 | 34 29 20 75 38 29 3b 0a 20 20 20 20 63 6f 6e 73 74 20 73 6c 69 63 65 20 3d 20 28 26 61 6d 70 3b | 4).u8);.....const.slice.=.(& |
| ea80 | 66 6f 6f 29 5b 30 2e 2e 31 5d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 73 | foo)[0..1];.....assert(@typeOf(s |
| eaa0 | 6c 69 63 65 29 20 3d 3d 20 5b 5d 61 6c 69 67 6e 28 34 29 20 75 38 29 3b 0a 7d 0a 0a 66 6e 20 64 | lice).==.[]align(4).u8);.}..fn.d |
| eac0 | 65 72 70 28 29 20 61 6c 69 67 6e 28 40 73 69 7a 65 4f 66 28 75 73 69 7a 65 29 20 2a 20 32 29 20 | erp().align(@sizeOf(usize).*.2). |
| eae0 | 2d 26 67 74 3b 20 69 33 32 20 7b 20 31 32 33 34 20 7d 0a 66 6e 20 6e 6f 6f 70 31 28 29 20 61 6c | ->.i32.{.1234.}.fn.noop1().al |
| eb00 | 69 67 6e 28 31 29 20 7b 7d 0a 66 6e 20 6e 6f 6f 70 34 28 29 20 61 6c 69 67 6e 28 34 29 20 7b 7d | ign(1).{}.fn.noop4().align(4).{} |
| eb20 | 0a 0a 74 65 73 74 20 22 66 75 6e 63 74 69 6f 6e 20 61 6c 69 67 6e 6d 65 6e 74 22 20 7b 0a 20 20 | ..test."function.alignment".{... |
| eb40 | 20 20 61 73 73 65 72 74 28 64 65 72 70 28 29 20 3d 3d 20 31 32 33 34 29 3b 0a 20 20 20 20 61 73 | ..assert(derp().==.1234);.....as |
| eb60 | 73 65 72 74 28 40 74 79 70 65 4f 66 28 6e 6f 6f 70 31 29 20 3d 3d 20 66 6e 28 29 20 61 6c 69 67 | sert(@typeOf(noop1).==.fn().alig |
| eb80 | 6e 28 31 29 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 6e 6f 6f 70 34 29 | n(1));.....assert(@typeOf(noop4) |
| eba0 | 20 3d 3d 20 66 6e 28 29 20 61 6c 69 67 6e 28 34 29 29 3b 0a 20 20 20 20 6e 6f 6f 70 31 28 29 3b | .==.fn().align(4));.....noop1(); |
| ebc0 | 0a 20 20 20 20 6e 6f 6f 70 34 28 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 | .....noop4();.}</code></pre>.... |
| ebe0 | 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 66 20 79 6f 75 20 68 61 76 65 20 61 20 70 6f 69 6e 74 | ...<p>.......If.you.have.a.point |
| ec00 | 65 72 20 6f 72 20 61 20 73 6c 69 63 65 20 74 68 61 74 20 68 61 73 20 61 20 73 6d 61 6c 6c 20 61 | er.or.a.slice.that.has.a.small.a |
| ec20 | 6c 69 67 6e 6d 65 6e 74 2c 20 62 75 74 20 79 6f 75 20 6b 6e 6f 77 20 74 68 61 74 20 69 74 20 61 | lignment,.but.you.know.that.it.a |
| ec40 | 63 74 75 61 6c 6c 79 0a 20 20 20 20 20 20 68 61 73 20 61 20 62 69 67 67 65 72 20 61 6c 69 67 6e | ctually.......has.a.bigger.align |
| ec60 | 6d 65 6e 74 2c 20 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 61 6c 69 67 | ment,.use.<a.href="#builtin-alig |
| ec80 | 6e 43 61 73 74 22 3e 40 61 6c 69 67 6e 43 61 73 74 3c 2f 61 3e 20 74 6f 20 63 68 61 6e 67 65 20 | nCast">@alignCast</a>.to.change. |
| eca0 | 74 68 65 0a 20 20 20 20 20 20 70 6f 69 6e 74 65 72 20 69 6e 74 6f 20 61 20 6d 6f 72 65 20 61 6c | the.......pointer.into.a.more.al |
| ecc0 | 69 67 6e 65 64 20 70 6f 69 6e 74 65 72 2e 20 54 68 69 73 20 69 73 20 61 20 6e 6f 2d 6f 70 20 61 | igned.pointer..This.is.a.no-op.a |
| ece0 | 74 20 72 75 6e 74 69 6d 65 2c 20 62 75 74 20 69 6e 73 65 72 74 73 20 61 0a 20 20 20 20 20 20 3c | t.runtime,.but.inserts.a.......< |
| ed00 | 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 2d 69 6e 63 6f 72 72 65 63 74 2d 70 6f 69 6e 74 65 72 | a.href="#undef-incorrect-pointer |
| ed20 | 2d 61 6c 69 67 6e 6d 65 6e 74 22 3e 73 61 66 65 74 79 20 63 68 65 63 6b 3c 2f 61 3e 3a 0a 20 20 | -alignment">safety.check</a>:... |
| ed40 | 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d | ....</p>.......<pre><code.class= |
| ed60 | 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 | "zig">const.assert.=.@import("st |
| ed80 | 64 22 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 74 65 73 74 20 22 70 6f 69 6e 74 65 72 | d").debug.assert;..test."pointer |
| eda0 | 20 61 6c 69 67 6e 6d 65 6e 74 20 73 61 66 65 74 79 22 20 7b 0a 20 20 20 20 76 61 72 20 61 72 72 | .alignment.safety".{.....var.arr |
| edc0 | 61 79 20 61 6c 69 67 6e 28 34 29 20 3d 20 5b 5d 75 33 32 7b 30 78 31 31 31 31 31 31 31 31 2c 20 | ay.align(4).=.[]u32{0x11111111,. |
| ede0 | 30 78 31 31 31 31 31 31 31 31 7d 3b 0a 20 20 20 20 63 6f 6e 73 74 20 62 79 74 65 73 20 3d 20 28 | 0x11111111};.....const.bytes.=.( |
| ee00 | 5b 5d 75 38 29 28 61 72 72 61 79 5b 30 2e 2e 5d 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 66 6f | []u8)(array[0..]);.....assert(fo |
| ee20 | 6f 28 62 79 74 65 73 29 20 3d 3d 20 30 78 31 31 31 31 31 31 31 31 29 3b 0a 7d 0a 66 6e 20 66 6f | o(bytes).==.0x11111111);.}.fn.fo |
| ee40 | 6f 28 62 79 74 65 73 3a 20 5b 5d 75 38 29 20 2d 26 67 74 3b 20 75 33 32 20 7b 0a 20 20 20 20 63 | o(bytes:.[]u8).->.u32.{.....c |
| ee60 | 6f 6e 73 74 20 73 6c 69 63 65 34 20 3d 20 62 79 74 65 73 5b 31 2e 2e 35 5d 3b 0a 20 20 20 20 63 | onst.slice4.=.bytes[1..5];.....c |
| ee80 | 6f 6e 73 74 20 69 6e 74 5f 73 6c 69 63 65 20 3d 20 28 5b 5d 75 33 32 29 28 40 61 6c 69 67 6e 43 | onst.int_slice.=.([]u32)(@alignC |
| eea0 | 61 73 74 28 34 2c 20 73 6c 69 63 65 34 29 29 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 69 6e 74 5f | ast(4,.slice4));.....return.int_ |
| eec0 | 73 6c 69 63 65 5b 30 5d 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c | slice[0];.}</code></pre>.......< |
| eee0 | 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 74 65 73 74 20 | pre><code.class="sh">$.zig.test. |
| ef00 | 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 70 6f 69 6e 74 65 72 20 61 6c 69 67 6e 6d | test.zig.Test.1/1.pointer.alignm |
| ef20 | 65 6e 74 20 73 61 66 65 74 79 2e 2e 2e 69 6e 63 6f 72 72 65 63 74 20 61 6c 69 67 6e 6d 65 6e 74 | ent.safety...incorrect.alignment |
| ef40 | 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 | ./home/andy/dev/zig/build/lib/zi |
| ef60 | 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 7a 69 67 72 74 2e 7a 69 67 3a 31 36 3a 33 35 3a 20 30 | g/std/special/zigrt.zig:16:35:.0 |
| ef80 | 78 30 30 30 30 30 30 30 30 30 30 32 30 33 35 32 35 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 0a | x0000000000203525.in.???.(test). |
| efa0 | 20 20 20 20 20 20 20 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 75 67 2e 70 61 6e | ........@import("std").debug.pan |
| efc0 | 69 63 28 22 7b 7d 22 2c 20 6d 65 73 73 61 67 65 5f 70 74 72 5b 30 2e 2e 6d 65 73 73 61 67 65 5f | ic("{}",.message_ptr[0..message_ |
| efe0 | 6c 65 6e 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | len]);.......................... |
| f000 | 20 20 20 20 20 20 20 20 20 5e 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 | .........^./home/andy/dev/zig/bu |
| f020 | 69 6c 64 2f 74 65 73 74 2e 7a 69 67 3a 31 30 3a 34 35 3a 20 30 78 30 30 30 30 30 30 30 30 30 30 | ild/test.zig:10:45:.0x0000000000 |
| f040 | 32 30 33 35 65 63 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 0a 20 20 20 20 63 6f 6e 73 74 20 69 | 2035ec.in.???.(test).....const.i |
| f060 | 6e 74 5f 73 6c 69 63 65 20 3d 20 28 5b 5d 75 33 32 29 28 40 61 6c 69 67 6e 43 61 73 74 28 34 2c | nt_slice.=.([]u32)(@alignCast(4, |
| f080 | 20 73 6c 69 63 65 34 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .slice4));...................... |
| f0a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 0a 2f 68 6f 6d 65 2f 61 | .......................^./home/a |
| f0c0 | 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 74 65 73 74 2e 7a 69 67 3a 36 3a 31 35 3a | ndy/dev/zig/build/test.zig:6:15: |
| f0e0 | 20 30 78 30 30 30 30 30 30 30 30 30 30 32 30 33 34 33 39 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 | .0x0000000000203439.in.???.(test |
| f100 | 29 0a 20 20 20 20 61 73 73 65 72 74 28 66 6f 6f 28 62 79 74 65 73 29 20 3d 3d 20 30 78 31 31 31 | ).....assert(foo(bytes).==.0x111 |
| f120 | 31 31 31 31 31 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 0a 2f 68 6f 6d 65 2f 61 6e | 11111);...............^./home/an |
| f140 | 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 73 70 65 | dy/dev/zig/build/lib/zig/std/spe |
| f160 | 63 69 61 6c 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 39 3a 32 31 3a 20 30 78 30 30 30 | cial/test_runner.zig:9:21:.0x000 |
| f180 | 30 30 30 30 30 30 30 32 31 36 32 64 38 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 0a 20 20 20 20 | 00000002162d8.in.???.(test)..... |
| f1a0 | 20 20 20 20 74 65 73 74 5f 66 6e 2e 66 75 6e 63 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ....test_fn.func();............. |
| f1c0 | 20 20 20 20 20 20 20 20 5e 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 | ........^./home/andy/dev/zig/bui |
| f1e0 | 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 62 6f 6f 74 73 74 72 61 70 | ld/lib/zig/std/special/bootstrap |
| f200 | 2e 7a 69 67 3a 36 30 3a 32 31 3a 20 30 78 30 30 30 30 30 30 30 30 30 30 32 31 36 31 39 37 20 69 | .zig:60:21:.0x0000000000216197.i |
| f220 | 6e 20 3f 3f 3f 20 28 74 65 73 74 29 0a 20 20 20 20 72 65 74 75 72 6e 20 72 6f 6f 74 2e 6d 61 69 | n.???.(test).....return.root.mai |
| f240 | 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 0a 2f 68 6f 6d 65 | n();.....................^./home |
| f260 | 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 74 64 2f | /andy/dev/zig/build/lib/zig/std/ |
| f280 | 73 70 65 63 69 61 6c 2f 62 6f 6f 74 73 74 72 61 70 2e 7a 69 67 3a 34 37 3a 31 33 3a 20 30 78 30 | special/bootstrap.zig:47:13:.0x0 |
| f2a0 | 30 30 30 30 30 30 30 30 30 32 31 36 30 35 30 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 0a 20 20 | 000000000216050.in.???.(test)... |
| f2c0 | 20 20 63 61 6c 6c 4d 61 69 6e 28 61 72 67 63 2c 20 61 72 67 76 2c 20 65 6e 76 70 29 20 25 25 20 | ..callMain(argc,.argv,.envp).%%. |
| f2e0 | 73 74 64 2e 6f 73 2e 70 6f 73 69 78 2e 65 78 69 74 28 31 29 3b 0a 20 20 20 20 20 20 20 20 20 20 | std.os.posix.exit(1);........... |
| f300 | 20 20 5e 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 | ..^./home/andy/dev/zig/build/lib |
| f320 | 2f 7a 69 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 62 6f 6f 74 73 74 72 61 70 2e 7a 69 67 3a 33 | /zig/std/special/bootstrap.zig:3 |
| f340 | 34 3a 32 35 3a 20 30 78 30 30 30 30 30 30 30 30 30 30 32 31 35 66 61 30 20 69 6e 20 3f 3f 3f 20 | 4:25:.0x0000000000215fa0.in.???. |
| f360 | 28 74 65 73 74 29 0a 20 20 20 20 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 28 | (test).....posixCallMainAndExit( |
| f380 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 0a 0a 54 65 73 | ).........................^..Tes |
| f3a0 | 74 73 20 66 61 69 6c 65 64 2e 20 55 73 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d | ts.failed..Use.the.following.com |
| f3c0 | 6d 61 6e 64 20 74 6f 20 72 65 70 72 6f 64 75 63 65 20 74 68 65 20 66 61 69 6c 75 72 65 3a 0a 2e | mand.to.reproduce.the.failure:.. |
| f3e0 | 2f 74 65 73 74 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d | /test</code></pre>.......<h3.id= |
| f400 | 22 74 79 70 65 2d 62 61 73 65 64 2d 61 6c 69 61 73 2d 61 6e 61 6c 79 73 69 73 22 3e 54 79 70 65 | "type-based-alias-analysis">Type |
| f420 | 20 42 61 73 65 64 20 41 6c 69 61 73 20 41 6e 61 6c 79 73 69 73 3c 2f 68 33 3e 0a 20 20 20 20 20 | .Based.Alias.Analysis</h3>...... |
| f440 | 20 3c 70 3e 5a 69 67 20 75 73 65 73 20 54 79 70 65 20 42 61 73 65 64 20 41 6c 69 61 73 20 41 6e | .<p>Zig.uses.Type.Based.Alias.An |
| f460 | 61 6c 79 73 69 73 20 28 61 6c 73 6f 20 6b 6e 6f 77 6e 20 61 73 20 53 74 72 69 63 74 20 41 6c 69 | alysis.(also.known.as.Strict.Ali |
| f480 | 61 73 69 6e 67 29 20 74 6f 0a 20 20 20 20 20 20 70 65 72 66 6f 72 6d 20 73 6f 6d 65 20 6f 70 74 | asing).to.......perform.some.opt |
| f4a0 | 69 6d 69 7a 61 74 69 6f 6e 73 2e 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 70 6f 69 6e | imizations..This.means.that.poin |
| f4c0 | 74 65 72 73 20 6f 66 20 64 69 66 66 65 72 65 6e 74 20 74 79 70 65 73 20 6d 75 73 74 0a 20 20 20 | ters.of.different.types.must.... |
| f4e0 | 20 20 20 6e 6f 74 20 61 6c 69 61 73 20 74 68 65 20 73 61 6d 65 20 6d 65 6d 6f 72 79 2c 20 77 69 | ...not.alias.the.same.memory,.wi |
| f500 | 74 68 20 74 68 65 20 65 78 63 65 70 74 69 6f 6e 20 6f 66 20 3c 63 6f 64 65 3e 75 38 3c 2f 63 6f | th.the.exception.of.<code>u8</co |
| f520 | 64 65 3e 2e 20 50 6f 69 6e 74 65 72 73 20 74 6f 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 75 38 3c | de>..Pointers.to.......<code>u8< |
| f540 | 2f 63 6f 64 65 3e 20 63 61 6e 20 61 6c 69 61 73 20 61 6e 79 20 6d 65 6d 6f 72 79 2e 0a 20 20 20 | /code>.can.alias.any.memory..... |
| f560 | 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 41 73 20 61 6e 20 65 78 61 6d 70 6c 65 2c 20 | ...</p>.......<p>As.an.example,. |
| f580 | 74 68 69 73 20 63 6f 64 65 20 70 72 6f 64 75 63 65 73 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 | this.code.produces.undefined.beh |
| f5a0 | 61 76 69 6f 72 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | avior:</p>.......<pre><code.clas |
| f5c0 | 73 3d 22 7a 69 67 22 3e 2a 40 70 74 72 43 61 73 74 28 26 61 6d 70 3b 75 33 32 2c 20 66 33 32 28 | s="zig">*@ptrCast(&u32,.f32( |
| f5e0 | 31 32 2e 33 34 29 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 49 6e | 12.34))</code></pre>.......<p>In |
| f600 | 73 74 65 61 64 2c 20 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 62 69 74 | stead,.use.<a.href="#builtin-bit |
| f620 | 43 61 73 74 22 3e 40 62 69 74 43 61 73 74 3c 2f 61 3e 3a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c | Cast">@bitCast</a>:.......<pre>< |
| f640 | 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 62 69 74 43 61 73 74 28 75 33 32 2c 20 66 | code.class="zig">@bitCast(u32,.f |
| f660 | 33 32 28 31 32 2e 33 34 29 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 | 32(12.34))</code></pre>.......<p |
| f680 | 3e 41 73 20 61 6e 20 61 64 64 65 64 20 62 65 6e 65 66 69 74 2c 20 74 68 65 20 3c 63 6f 64 65 3e | >As.an.added.benefit,.the.<code> |
| f6a0 | 40 62 69 74 63 61 73 74 3c 2f 63 6f 64 65 3e 20 76 65 72 73 69 6f 6e 20 77 6f 72 6b 73 20 61 74 | @bitcast</code>.version.works.at |
| f6c0 | 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 | .compile-time.</p>.......<p>See. |
| f6e0 | 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 | also:</p>.......<ul>.........<li |
| f700 | 3e 3c 61 20 68 72 65 66 3d 22 23 73 6c 69 63 65 73 22 3e 53 6c 69 63 65 73 3c 2f 61 3e 3c 2f 6c | ><a.href="#slices">Slices</a></l |
| f720 | 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6d 65 6d 6f 72 79 22 | i>.........<li><a.href="#memory" |
| f740 | 3e 4d 65 6d 6f 72 79 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 | >Memory</a></li>.......</ul>.... |
| f760 | 20 20 20 3c 68 32 20 69 64 3d 22 73 6c 69 63 65 73 22 3e 53 6c 69 63 65 73 3c 2f 68 32 3e 0a 20 | ...<h2.id="slices">Slices</h2>.. |
| f780 | 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 | .....<pre><code.class="zig">cons |
| f7a0 | 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 75 67 2e | t.assert.=.@import("std").debug. |
| f7c0 | 61 73 73 65 72 74 3b 0a 0a 74 65 73 74 20 22 62 61 73 69 63 20 73 6c 69 63 65 73 22 20 7b 0a 20 | assert;..test."basic.slices".{.. |
| f7e0 | 20 20 20 76 61 72 20 61 72 72 61 79 20 3d 20 5b 5d 69 33 32 7b 31 2c 20 32 2c 20 33 2c 20 34 7d | ...var.array.=.[]i32{1,.2,.3,.4} |
| f800 | 3b 0a 20 20 20 20 2f 2f 20 41 20 73 6c 69 63 65 20 69 73 20 61 20 70 6f 69 6e 74 65 72 20 61 6e | ;.....//.A.slice.is.a.pointer.an |
| f820 | 64 20 61 20 6c 65 6e 67 74 68 2e 20 54 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 | d.a.length..The.difference.betwe |
| f840 | 65 6e 20 61 6e 20 61 72 72 61 79 20 61 6e 64 0a 20 20 20 20 2f 2f 20 61 20 73 6c 69 63 65 20 69 | en.an.array.and.....//.a.slice.i |
| f860 | 73 20 74 68 61 74 20 74 68 65 20 61 72 72 61 79 27 73 20 6c 65 6e 67 74 68 20 69 73 20 70 61 72 | s.that.the.array's.length.is.par |
| f880 | 74 20 6f 66 20 74 68 65 20 74 79 70 65 20 61 6e 64 20 6b 6e 6f 77 6e 20 61 74 0a 20 20 20 20 2f | t.of.the.type.and.known.at...../ |
| f8a0 | 2f 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2c 20 77 68 65 72 65 61 73 20 74 68 65 20 73 6c 69 63 | /.compile-time,.whereas.the.slic |
| f8c0 | 65 27 73 20 6c 65 6e 67 74 68 20 69 73 20 6b 6e 6f 77 6e 20 61 74 20 72 75 6e 74 69 6d 65 2e 0a | e's.length.is.known.at.runtime.. |
| f8e0 | 20 20 20 20 2f 2f 20 42 6f 74 68 20 63 61 6e 20 62 65 20 61 63 63 65 73 73 65 64 20 77 69 74 68 | ....//.Both.can.be.accessed.with |
| f900 | 20 74 68 65 20 60 6c 65 6e 60 20 66 69 65 6c 64 2e 0a 20 20 20 20 63 6f 6e 73 74 20 73 6c 69 63 | .the.`len`.field......const.slic |
| f920 | 65 20 3d 20 61 72 72 61 79 5b 30 2e 2e 61 72 72 61 79 2e 6c 65 6e 5d 3b 0a 20 20 20 20 61 73 73 | e.=.array[0..array.len];.....ass |
| f940 | 65 72 74 28 73 6c 69 63 65 2e 70 74 72 20 3d 3d 20 26 61 6d 70 3b 61 72 72 61 79 5b 30 5d 29 3b | ert(slice.ptr.==.&array[0]); |
| f960 | 0a 20 20 20 20 61 73 73 65 72 74 28 73 6c 69 63 65 2e 6c 65 6e 20 3d 3d 20 61 72 72 61 79 2e 6c | .....assert(slice.len.==.array.l |
| f980 | 65 6e 29 3b 0a 0a 20 20 20 20 2f 2f 20 53 6c 69 63 65 73 20 68 61 76 65 20 61 72 72 61 79 20 62 | en);......//.Slices.have.array.b |
| f9a0 | 6f 75 6e 64 73 20 63 68 65 63 6b 69 6e 67 2e 20 49 66 20 79 6f 75 20 74 72 79 20 74 6f 20 61 63 | ounds.checking..If.you.try.to.ac |
| f9c0 | 63 65 73 73 20 73 6f 6d 65 74 68 69 6e 67 20 6f 75 74 0a 20 20 20 20 2f 2f 20 6f 66 20 62 6f 75 | cess.something.out.....//.of.bou |
| f9e0 | 6e 64 73 2c 20 79 6f 75 27 6c 6c 20 67 65 74 20 61 20 73 61 66 65 74 79 20 63 68 65 63 6b 20 66 | nds,.you'll.get.a.safety.check.f |
| fa00 | 61 69 6c 75 72 65 3a 0a 20 20 20 20 73 6c 69 63 65 5b 31 30 5d 20 2b 3d 20 31 3b 0a 7d 3c 2f 63 | ailure:.....slice[10].+=.1;.}</c |
| fa20 | 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | ode></pre>.......<pre><code.clas |
| fa40 | 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 | s="sh">$.zig.test.test.zig.Test. |
| fa60 | 31 2f 31 20 62 61 73 69 63 20 73 6c 69 63 65 73 2e 2e 2e 69 6e 64 65 78 20 6f 75 74 20 6f 66 20 | 1/1.basic.slices...index.out.of. |
| fa80 | 62 6f 75 6e 64 73 0a 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 7a 69 67 72 74 | bounds.lib/zig/std/special/zigrt |
| faa0 | 2e 7a 69 67 3a 31 36 3a 33 35 3a 20 30 78 30 30 30 30 30 30 30 30 30 30 32 30 33 34 35 35 20 69 | .zig:16:35:.0x0000000000203455.i |
| fac0 | 6e 20 3f 3f 3f 20 28 74 65 73 74 29 0a 20 20 20 20 20 20 20 20 40 69 6d 70 6f 72 74 28 22 73 74 | n.???.(test).........@import("st |
| fae0 | 64 22 29 2e 64 65 62 75 67 2e 70 61 6e 69 63 28 22 7b 7d 22 2c 20 6d 65 73 73 61 67 65 5f 70 74 | d").debug.panic("{}",.message_pt |
| fb00 | 72 5b 30 2e 2e 6d 65 73 73 61 67 65 5f 6c 65 6e 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | r[0..message_len]);............. |
| fb20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 0a 74 65 73 74 2e 7a 69 67 | ......................^.test.zig |
| fb40 | 3a 31 35 3a 31 30 3a 20 30 78 30 30 30 30 30 30 30 30 30 30 32 30 33 33 33 34 20 69 6e 20 3f 3f | :15:10:.0x0000000000203334.in.?? |
| fb60 | 3f 20 28 74 65 73 74 29 0a 20 20 20 20 73 6c 69 63 65 5b 31 30 5d 20 2b 3d 20 31 3b 0a 20 20 20 | ?.(test).....slice[10].+=.1;.... |
| fb80 | 20 20 20 20 20 20 5e 0a 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 74 65 73 74 | ......^.lib/zig/std/special/test |
| fba0 | 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 39 3a 32 31 3a 20 30 78 30 30 30 30 30 30 30 30 30 30 32 31 | _runner.zig:9:21:.0x000000000021 |
| fbc0 | 34 62 31 61 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 0a 20 20 20 20 20 20 20 20 74 65 73 74 5f | 4b1a.in.???.(test).........test_ |
| fbe0 | 66 6e 2e 66 75 6e 63 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e | fn.func();.....................^ |
| fc00 | 0a 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 62 6f 6f 74 73 74 72 61 70 2e 7a | .lib/zig/std/special/bootstrap.z |
| fc20 | 69 67 3a 36 30 3a 32 31 3a 20 30 78 30 30 30 30 30 30 30 30 30 30 32 31 34 39 65 37 20 69 6e 20 | ig:60:21:.0x00000000002149e7.in. |
| fc40 | 3f 3f 3f 20 28 74 65 73 74 29 0a 20 20 20 20 72 65 74 75 72 6e 20 72 6f 6f 74 2e 6d 61 69 6e 28 | ???.(test).....return.root.main( |
| fc60 | 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 0a 6c 69 62 2f 7a 69 67 | );.....................^.lib/zig |
| fc80 | 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 62 6f 6f 74 73 74 72 61 70 2e 7a 69 67 3a 34 37 3a 31 33 | /std/special/bootstrap.zig:47:13 |
| fca0 | 3a 20 30 78 30 30 30 30 30 30 30 30 30 30 32 31 34 38 61 30 20 69 6e 20 3f 3f 3f 20 28 74 65 73 | :.0x00000000002148a0.in.???.(tes |
| fcc0 | 74 29 0a 20 20 20 20 63 61 6c 6c 4d 61 69 6e 28 61 72 67 63 2c 20 61 72 67 76 2c 20 65 6e 76 70 | t).....callMain(argc,.argv,.envp |
| fce0 | 29 20 25 25 20 73 74 64 2e 6f 73 2e 70 6f 73 69 78 2e 65 78 69 74 28 31 29 3b 0a 20 20 20 20 20 | ).%%.std.os.posix.exit(1);...... |
| fd00 | 20 20 20 20 20 20 20 5e 0a 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 62 6f 6f | .......^.lib/zig/std/special/boo |
| fd20 | 74 73 74 72 61 70 2e 7a 69 67 3a 33 34 3a 32 35 3a 20 30 78 30 30 30 30 30 30 30 30 30 30 32 31 | tstrap.zig:34:25:.0x000000000021 |
| fd40 | 34 37 66 30 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 0a 20 20 20 20 70 6f 73 69 78 43 61 6c 6c | 47f0.in.???.(test).....posixCall |
| fd60 | 4d 61 69 6e 41 6e 64 45 78 69 74 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | MainAndExit()................... |
| fd80 | 20 20 20 20 20 20 5e 0a 0a 54 65 73 74 73 20 66 61 69 6c 65 64 2e 20 55 73 65 20 74 68 65 20 66 | ......^..Tests.failed..Use.the.f |
| fda0 | 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 72 65 70 72 6f 64 75 63 65 20 74 68 | ollowing.command.to.reproduce.th |
| fdc0 | 65 20 66 61 69 6c 75 72 65 3a 0a 2e 2f 74 65 73 74 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 | e.failure:../test</code></pre>.. |
| fde0 | 20 20 20 20 20 3c 70 3e 54 68 69 73 20 69 73 20 6f 6e 65 20 72 65 61 73 6f 6e 20 77 65 20 70 72 | .....<p>This.is.one.reason.we.pr |
| fe00 | 65 66 65 72 20 73 6c 69 63 65 73 20 74 6f 20 70 6f 69 6e 74 65 72 73 2e 3c 2f 70 3e 0a 20 20 20 | efer.slices.to.pointers.</p>.... |
| fe20 | 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 | ...<pre><code.class="zig">const. |
| fe40 | 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 75 67 2e 61 73 | assert.=.@import("std").debug.as |
| fe60 | 73 65 72 74 3b 0a 63 6f 6e 73 74 20 6d 65 6d 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 | sert;.const.mem.=.@import("std") |
| fe80 | 2e 6d 65 6d 3b 0a 63 6f 6e 73 74 20 66 6d 74 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 | .mem;.const.fmt.=.@import("std") |
| fea0 | 2e 66 6d 74 3b 0a 0a 74 65 73 74 20 22 75 73 69 6e 67 20 73 6c 69 63 65 73 20 66 6f 72 20 73 74 | .fmt;..test."using.slices.for.st |
| fec0 | 72 69 6e 67 73 22 20 7b 0a 20 20 20 20 2f 2f 20 5a 69 67 20 68 61 73 20 6e 6f 20 63 6f 6e 63 65 | rings".{.....//.Zig.has.no.conce |
| fee0 | 70 74 20 6f 66 20 73 74 72 69 6e 67 73 2e 20 53 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 20 61 | pt.of.strings..String.literals.a |
| ff00 | 72 65 20 61 72 72 61 79 73 20 6f 66 20 75 38 2c 20 61 6e 64 0a 20 20 20 20 2f 2f 20 69 6e 20 67 | re.arrays.of.u8,.and.....//.in.g |
| ff20 | 65 6e 65 72 61 6c 20 74 68 65 20 73 74 72 69 6e 67 20 74 79 70 65 20 69 73 20 5b 5d 75 38 20 28 | eneral.the.string.type.is.[]u8.( |
| ff40 | 73 6c 69 63 65 20 6f 66 20 75 38 29 2e 0a 20 20 20 20 2f 2f 20 48 65 72 65 20 77 65 20 69 6d 70 | slice.of.u8)......//.Here.we.imp |
| ff60 | 6c 69 63 69 74 6c 79 20 63 61 73 74 20 5b 35 5d 75 38 20 74 6f 20 5b 5d 63 6f 6e 73 74 20 75 38 | licitly.cast.[5]u8.to.[]const.u8 |
| ff80 | 0a 20 20 20 20 63 6f 6e 73 74 20 68 65 6c 6c 6f 3a 20 5b 5d 63 6f 6e 73 74 20 75 38 20 3d 20 22 | .....const.hello:.[]const.u8.=." |
| ffa0 | 68 65 6c 6c 6f 22 3b 0a 20 20 20 20 63 6f 6e 73 74 20 77 6f 72 6c 64 3a 20 5b 5d 63 6f 6e 73 74 | hello";.....const.world:.[]const |
| ffc0 | 20 75 38 20 3d 20 22 e4 b8 96 e7 95 8c 22 3b 0a 0a 20 20 20 20 76 61 72 20 61 6c 6c 5f 74 6f 67 | .u8.=."......";......var.all_tog |
| ffe0 | 65 74 68 65 72 3a 20 5b 31 30 30 5d 75 38 20 3d 20 75 6e 64 65 66 69 6e 65 64 3b 0a 20 20 20 20 | ether:.[100]u8.=.undefined;..... |
| 10000 | 2f 2f 20 59 6f 75 20 63 61 6e 20 75 73 65 20 73 6c 69 63 65 20 73 79 6e 74 61 78 20 6f 6e 20 61 | //.You.can.use.slice.syntax.on.a |
| 10020 | 6e 20 61 72 72 61 79 20 74 6f 20 63 6f 6e 76 65 72 74 20 61 6e 20 61 72 72 61 79 20 69 6e 74 6f | n.array.to.convert.an.array.into |
| 10040 | 20 61 20 73 6c 69 63 65 2e 0a 20 20 20 20 63 6f 6e 73 74 20 61 6c 6c 5f 74 6f 67 65 74 68 65 72 | .a.slice......const.all_together |
| 10060 | 5f 73 6c 69 63 65 20 3d 20 61 6c 6c 5f 74 6f 67 65 74 68 65 72 5b 30 2e 2e 5d 3b 0a 20 20 20 20 | _slice.=.all_together[0..];..... |
| 10080 | 2f 2f 20 53 74 72 69 6e 67 20 63 6f 6e 63 61 74 65 6e 61 74 69 6f 6e 20 65 78 61 6d 70 6c 65 3a | //.String.concatenation.example: |
| 100a0 | 0a 20 20 20 20 63 6f 6e 73 74 20 68 65 6c 6c 6f 5f 77 6f 72 6c 64 20 3d 20 66 6d 74 2e 62 75 66 | .....const.hello_world.=.fmt.buf |
| 100c0 | 50 72 69 6e 74 28 61 6c 6c 5f 74 6f 67 65 74 68 65 72 5f 73 6c 69 63 65 2c 20 22 7b 7d 20 7b 7d | Print(all_together_slice,."{}.{} |
| 100e0 | 22 2c 20 68 65 6c 6c 6f 2c 20 77 6f 72 6c 64 29 3b 0a 0a 20 20 20 20 2f 2f 20 47 65 6e 65 72 61 | ",.hello,.world);......//.Genera |
| 10100 | 6c 6c 79 2c 20 79 6f 75 20 63 61 6e 20 75 73 65 20 55 54 46 2d 38 20 61 6e 64 20 6e 6f 74 20 77 | lly,.you.can.use.UTF-8.and.not.w |
| 10120 | 6f 72 72 79 20 61 62 6f 75 74 20 77 68 65 74 68 65 72 20 73 6f 6d 65 74 68 69 6e 67 20 69 73 20 | orry.about.whether.something.is. |
| 10140 | 61 0a 20 20 20 20 2f 2f 20 73 74 72 69 6e 67 2e 20 49 66 20 79 6f 75 20 64 6f 6e 27 74 20 6e 65 | a.....//.string..If.you.don't.ne |
| 10160 | 65 64 20 74 6f 20 64 65 61 6c 20 77 69 74 68 20 69 6e 64 69 76 69 64 75 61 6c 20 63 68 61 72 61 | ed.to.deal.with.individual.chara |
| 10180 | 63 74 65 72 73 2c 20 6e 6f 20 6e 65 65 64 0a 20 20 20 20 2f 2f 20 74 6f 20 64 65 63 6f 64 65 2e | cters,.no.need.....//.to.decode. |
| 101a0 | 0a 20 20 20 20 61 73 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 75 38 2c 20 68 65 6c 6c 6f 5f 77 6f | .....assert(mem.eql(u8,.hello_wo |
| 101c0 | 72 6c 64 2c 20 22 68 65 6c 6c 6f 20 e4 b8 96 e7 95 8c 22 29 29 3b 0a 7d 0a 0a 74 65 73 74 20 22 | rld,."hello......."));.}..test." |
| 101e0 | 73 6c 69 63 65 20 70 6f 69 6e 74 65 72 22 20 7b 0a 20 20 20 20 76 61 72 20 61 72 72 61 79 3a 20 | slice.pointer".{.....var.array:. |
| 10200 | 5b 31 30 5d 75 38 20 3d 20 75 6e 64 65 66 69 6e 65 64 3b 0a 20 20 20 20 63 6f 6e 73 74 20 70 74 | [10]u8.=.undefined;.....const.pt |
| 10220 | 72 20 3d 20 26 61 6d 70 3b 61 72 72 61 79 5b 30 5d 3b 0a 0a 20 20 20 20 2f 2f 20 59 6f 75 20 63 | r.=.&array[0];......//.You.c |
| 10240 | 61 6e 20 75 73 65 20 73 6c 69 63 69 6e 67 20 73 79 6e 74 61 78 20 74 6f 20 63 6f 6e 76 65 72 74 | an.use.slicing.syntax.to.convert |
| 10260 | 20 61 20 70 6f 69 6e 74 65 72 20 69 6e 74 6f 20 61 20 73 6c 69 63 65 3a 0a 20 20 20 20 63 6f 6e | .a.pointer.into.a.slice:.....con |
| 10280 | 73 74 20 73 6c 69 63 65 20 3d 20 70 74 72 5b 30 2e 2e 35 5d 3b 0a 20 20 20 20 73 6c 69 63 65 5b | st.slice.=.ptr[0..5];.....slice[ |
| 102a0 | 32 5d 20 3d 20 33 3b 0a 20 20 20 20 61 73 73 65 72 74 28 73 6c 69 63 65 5b 32 5d 20 3d 3d 20 33 | 2].=.3;.....assert(slice[2].==.3 |
| 102c0 | 29 3b 0a 20 20 20 20 2f 2f 20 54 68 65 20 73 6c 69 63 65 20 69 73 20 6d 75 74 61 62 6c 65 20 62 | );.....//.The.slice.is.mutable.b |
| 102e0 | 65 63 61 75 73 65 20 77 65 20 73 6c 69 63 65 64 20 61 20 6d 75 74 61 62 6c 65 20 70 6f 69 6e 74 | ecause.we.sliced.a.mutable.point |
| 10300 | 65 72 2e 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 73 6c 69 63 65 29 20 3d 3d | er......assert(@typeOf(slice).== |
| 10320 | 20 5b 5d 75 38 29 3b 0a 0a 20 20 20 20 2f 2f 20 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 73 6c 69 | .[]u8);......//.You.can.also.sli |
| 10340 | 63 65 20 61 20 73 6c 69 63 65 3a 0a 20 20 20 20 63 6f 6e 73 74 20 73 6c 69 63 65 32 20 3d 20 73 | ce.a.slice:.....const.slice2.=.s |
| 10360 | 6c 69 63 65 5b 32 2e 2e 33 5d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 73 6c 69 63 65 32 2e 6c 65 | lice[2..3];.....assert(slice2.le |
| 10380 | 6e 20 3d 3d 20 31 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 73 6c 69 63 65 32 5b 30 5d 20 3d 3d | n.==.1);.....assert(slice2[0].== |
| 103a0 | 20 33 29 3b 0a 7d 0a 0a 74 65 73 74 20 22 73 6c 69 63 65 20 77 69 64 65 6e 69 6e 67 22 20 7b 0a | .3);.}..test."slice.widening".{. |
| 103c0 | 20 20 20 20 2f 2f 20 5a 69 67 20 73 75 70 70 6f 72 74 73 20 73 6c 69 63 65 20 77 69 64 65 6e 69 | ....//.Zig.supports.slice.wideni |
| 103e0 | 6e 67 20 61 6e 64 20 73 6c 69 63 65 20 6e 61 72 72 6f 77 69 6e 67 2e 20 43 61 73 74 20 61 20 73 | ng.and.slice.narrowing..Cast.a.s |
| 10400 | 6c 69 63 65 20 6f 66 20 75 38 0a 20 20 20 20 2f 2f 20 74 6f 20 61 20 73 6c 69 63 65 20 6f 66 20 | lice.of.u8.....//.to.a.slice.of. |
| 10420 | 61 6e 79 74 68 69 6e 67 20 65 6c 73 65 2c 20 61 6e 64 20 5a 69 67 20 77 69 6c 6c 20 70 65 72 66 | anything.else,.and.Zig.will.perf |
| 10440 | 6f 72 6d 20 74 68 65 20 6c 65 6e 67 74 68 20 63 6f 6e 76 65 72 73 69 6f 6e 2e 0a 20 20 20 20 63 | orm.the.length.conversion......c |
| 10460 | 6f 6e 73 74 20 61 72 72 61 79 20 3d 20 5b 5d 75 38 7b 30 78 31 32 2c 20 30 78 31 32 2c 20 30 78 | onst.array.=.[]u8{0x12,.0x12,.0x |
| 10480 | 31 32 2c 20 30 78 31 32 2c 20 30 78 31 33 2c 20 30 78 31 33 2c 20 30 78 31 33 2c 20 30 78 31 33 | 12,.0x12,.0x13,.0x13,.0x13,.0x13 |
| 104a0 | 7d 3b 0a 20 20 20 20 63 6f 6e 73 74 20 73 6c 69 63 65 20 3d 20 28 5b 5d 63 6f 6e 73 74 20 75 33 | };.....const.slice.=.([]const.u3 |
| 104c0 | 32 29 28 61 72 72 61 79 5b 30 2e 2e 5d 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 73 6c 69 63 65 | 2)(array[0..]);.....assert(slice |
| 104e0 | 2e 6c 65 6e 20 3d 3d 20 32 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 73 6c 69 63 65 5b 30 5d 20 | .len.==.2);.....assert(slice[0]. |
| 10500 | 3d 3d 20 30 78 31 32 31 32 31 32 31 32 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 73 6c 69 63 65 | ==.0x12121212);.....assert(slice |
| 10520 | 5b 31 5d 20 3d 3d 20 30 78 31 33 31 33 31 33 31 33 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 | [1].==.0x13131313);.}</code></pr |
| 10540 | 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 | e>.......<pre><code.class="sh">$ |
| 10560 | 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 33 20 75 73 69 6e | .zig.test.test.zig.Test.1/3.usin |
| 10580 | 67 20 73 6c 69 63 65 73 20 66 6f 72 20 73 74 72 69 6e 67 73 2e 2e 2e 4f 4b 0a 54 65 73 74 20 32 | g.slices.for.strings...OK.Test.2 |
| 105a0 | 2f 33 20 73 6c 69 63 65 20 70 6f 69 6e 74 65 72 2e 2e 2e 4f 4b 0a 54 65 73 74 20 33 2f 33 20 73 | /3.slice.pointer...OK.Test.3/3.s |
| 105c0 | 6c 69 63 65 20 77 69 64 65 6e 69 6e 67 2e 2e 2e 4f 4b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a | lice.widening...OK</code></pre>. |
| 105e0 | 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c | ......<p>See.also:</p>.......<ul |
| 10600 | 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 70 6f 69 6e 74 65 72 73 | >.........<li><a.href="#pointers |
| 10620 | 22 3e 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e | ">Pointers</a></li>.........<li> |
| 10640 | 3c 61 20 68 72 65 66 3d 22 23 66 6f 72 22 3e 66 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 | <a.href="#for">for</a></li>..... |
| 10660 | 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 61 72 72 61 79 73 22 3e 41 72 72 61 79 73 | ....<li><a.href="#arrays">Arrays |
| 10680 | 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 32 20 | </a></li>.......</ul>.......<h2. |
| 106a0 | 69 64 3d 22 73 74 72 75 63 74 22 3e 73 74 72 75 63 74 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c 70 | id="struct">struct</h2>.......<p |
| 106c0 | 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2f 2f 20 44 65 63 6c 61 72 65 20 | re><code.class="zig">//.Declare. |
| 106e0 | 61 20 73 74 72 75 63 74 2e 0a 2f 2f 20 5a 69 67 20 67 69 76 65 73 20 6e 6f 20 67 75 61 72 61 6e | a.struct..//.Zig.gives.no.guaran |
| 10700 | 74 65 65 73 20 61 62 6f 75 74 20 74 68 65 20 6f 72 64 65 72 20 6f 66 20 66 69 65 6c 64 73 20 61 | tees.about.the.order.of.fields.a |
| 10720 | 6e 64 20 77 68 65 74 68 65 72 20 6f 72 0a 2f 2f 20 6e 6f 74 20 74 68 65 72 65 20 77 69 6c 6c 20 | nd.whether.or.//.not.there.will. |
| 10740 | 62 65 20 70 61 64 64 69 6e 67 2e 0a 63 6f 6e 73 74 20 50 6f 69 6e 74 20 3d 20 73 74 72 75 63 74 | be.padding..const.Point.=.struct |
| 10760 | 20 7b 0a 20 20 20 20 78 3a 20 66 33 32 2c 0a 20 20 20 20 79 3a 20 66 33 32 2c 0a 7d 3b 0a 0a 2f | .{.....x:.f32,.....y:.f32,.};../ |
| 10780 | 2f 20 4d 61 79 62 65 20 77 65 20 77 61 6e 74 20 74 6f 20 70 61 73 73 20 69 74 20 74 6f 20 4f 70 | /.Maybe.we.want.to.pass.it.to.Op |
| 107a0 | 65 6e 47 4c 20 73 6f 20 77 65 20 77 61 6e 74 20 74 6f 20 62 65 20 70 61 72 74 69 63 75 6c 61 72 | enGL.so.we.want.to.be.particular |
| 107c0 | 20 61 62 6f 75 74 0a 2f 2f 20 68 6f 77 20 74 68 65 20 62 79 74 65 73 20 61 72 65 20 61 72 72 61 | .about.//.how.the.bytes.are.arra |
| 107e0 | 6e 67 65 64 2e 0a 63 6f 6e 73 74 20 50 6f 69 6e 74 32 20 3d 20 70 61 63 6b 65 64 20 73 74 72 75 | nged..const.Point2.=.packed.stru |
| 10800 | 63 74 20 7b 0a 20 20 20 20 78 3a 20 66 33 32 2c 0a 20 20 20 20 79 3a 20 66 33 32 2c 0a 7d 3b 0a | ct.{.....x:.f32,.....y:.f32,.};. |
| 10820 | 0a 0a 2f 2f 20 44 65 63 6c 61 72 65 20 61 6e 20 69 6e 73 74 61 6e 63 65 20 6f 66 20 61 20 73 74 | ..//.Declare.an.instance.of.a.st |
| 10840 | 72 75 63 74 2e 0a 63 6f 6e 73 74 20 70 20 3d 20 50 6f 69 6e 74 20 7b 0a 20 20 20 20 2e 78 20 3d | ruct..const.p.=.Point.{......x.= |
| 10860 | 20 30 2e 31 32 2c 0a 20 20 20 20 2e 79 20 3d 20 30 2e 33 34 2c 0a 7d 3b 0a 0a 2f 2f 20 4d 61 79 | .0.12,......y.=.0.34,.};..//.May |
| 10880 | 62 65 20 77 65 27 72 65 20 6e 6f 74 20 72 65 61 64 79 20 74 6f 20 66 69 6c 6c 20 6f 75 74 20 73 | be.we're.not.ready.to.fill.out.s |
| 108a0 | 6f 6d 65 20 6f 66 20 74 68 65 20 66 69 65 6c 64 73 2e 0a 76 61 72 20 70 32 20 3d 20 50 6f 69 6e | ome.of.the.fields..var.p2.=.Poin |
| 108c0 | 74 20 7b 0a 20 20 20 20 2e 78 20 3d 20 30 2e 31 32 2c 0a 20 20 20 20 2e 79 20 3d 20 75 6e 64 65 | t.{......x.=.0.12,......y.=.unde |
| 108e0 | 66 69 6e 65 64 2c 0a 7d 3b 0a 0a 2f 2f 20 53 74 72 75 63 74 73 20 63 61 6e 20 68 61 76 65 20 6d | fined,.};..//.Structs.can.have.m |
| 10900 | 65 74 68 6f 64 73 0a 2f 2f 20 53 74 72 75 63 74 20 6d 65 74 68 6f 64 73 20 61 72 65 20 6e 6f 74 | ethods.//.Struct.methods.are.not |
| 10920 | 20 73 70 65 63 69 61 6c 2c 20 74 68 65 79 20 61 72 65 20 6f 6e 6c 79 20 6e 61 6d 65 73 70 61 63 | .special,.they.are.only.namespac |
| 10940 | 65 64 0a 2f 2f 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 63 61 6c | ed.//.functions.that.you.can.cal |
| 10960 | 6c 20 77 69 74 68 20 64 6f 74 20 73 79 6e 74 61 78 2e 0a 63 6f 6e 73 74 20 56 65 63 33 20 3d 20 | l.with.dot.syntax..const.Vec3.=. |
| 10980 | 73 74 72 75 63 74 20 7b 0a 20 20 20 20 78 3a 20 66 33 32 2c 0a 20 20 20 20 79 3a 20 66 33 32 2c | struct.{.....x:.f32,.....y:.f32, |
| 109a0 | 0a 20 20 20 20 7a 3a 20 66 33 32 2c 0a 0a 20 20 20 20 70 75 62 20 66 6e 20 69 6e 69 74 28 78 3a | .....z:.f32,......pub.fn.init(x: |
| 109c0 | 20 66 33 32 2c 20 79 3a 20 66 33 32 2c 20 7a 3a 20 66 33 32 29 20 2d 26 67 74 3b 20 56 65 63 33 | .f32,.y:.f32,.z:.f32).->.Vec3 |
| 109e0 | 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 56 65 63 33 20 7b 0a 20 20 20 20 20 20 20 | .{.........return.Vec3.{........ |
| 10a00 | 20 20 20 20 20 2e 78 20 3d 20 78 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2e 79 20 3d 20 79 2c | ......x.=.x,..............y.=.y, |
| 10a20 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 2e 7a 20 3d 20 7a 2c 0a 20 20 20 20 20 20 20 20 7d 3b 0a | ..............z.=.z,.........};. |
| 10a40 | 20 20 20 20 7d 0a 0a 20 20 20 20 70 75 62 20 66 6e 20 64 6f 74 28 73 65 6c 66 3a 20 26 61 6d 70 | ....}......pub.fn.dot(self:.& |
| 10a60 | 3b 63 6f 6e 73 74 20 56 65 63 33 2c 20 6f 74 68 65 72 3a 20 26 61 6d 70 3b 63 6f 6e 73 74 20 56 | ;const.Vec3,.other:.&const.V |
| 10a80 | 65 63 33 29 20 2d 26 67 74 3b 20 66 33 32 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 | ec3).->.f32.{.........return. |
| 10aa0 | 73 65 6c 66 2e 78 20 2a 20 6f 74 68 65 72 2e 78 20 2b 20 73 65 6c 66 2e 79 20 2a 20 6f 74 68 65 | self.x.*.other.x.+.self.y.*.othe |
| 10ac0 | 72 2e 79 20 2b 20 73 65 6c 66 2e 7a 20 2a 20 6f 74 68 65 72 2e 7a 3b 0a 20 20 20 20 7d 0a 7d 3b | r.y.+.self.z.*.other.z;.....}.}; |
| 10ae0 | 0a 0a 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e | ..const.assert.=.@import("std"). |
| 10b00 | 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 74 65 73 74 20 22 64 6f 74 20 70 72 6f 64 75 63 74 22 | debug.assert;.test."dot.product" |
| 10b20 | 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 76 31 20 3d 20 56 65 63 33 2e 69 6e 69 74 28 31 2e 30 2c | .{.....const.v1.=.Vec3.init(1.0, |
| 10b40 | 20 30 2e 30 2c 20 30 2e 30 29 3b 0a 20 20 20 20 63 6f 6e 73 74 20 76 32 20 3d 20 56 65 63 33 2e | .0.0,.0.0);.....const.v2.=.Vec3. |
| 10b60 | 69 6e 69 74 28 30 2e 30 2c 20 31 2e 30 2c 20 30 2e 30 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 | init(0.0,.1.0,.0.0);.....assert( |
| 10b80 | 76 31 2e 64 6f 74 28 76 32 29 20 3d 3d 20 30 2e 30 29 3b 0a 0a 20 20 20 20 2f 2f 20 4f 74 68 65 | v1.dot(v2).==.0.0);......//.Othe |
| 10ba0 | 72 20 74 68 61 6e 20 62 65 69 6e 67 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 63 61 6c 6c 20 77 | r.than.being.available.to.call.w |
| 10bc0 | 69 74 68 20 64 6f 74 20 73 79 6e 74 61 78 2c 20 73 74 72 75 63 74 20 6d 65 74 68 6f 64 73 20 61 | ith.dot.syntax,.struct.methods.a |
| 10be0 | 72 65 0a 20 20 20 20 2f 2f 20 6e 6f 74 20 73 70 65 63 69 61 6c 2e 20 59 6f 75 20 63 61 6e 20 72 | re.....//.not.special..You.can.r |
| 10c00 | 65 66 65 72 65 6e 63 65 20 74 68 65 6d 20 61 73 20 61 6e 79 20 6f 74 68 65 72 20 64 65 63 6c 61 | eference.them.as.any.other.decla |
| 10c20 | 72 61 74 69 6f 6e 20 69 6e 73 69 64 65 0a 20 20 20 20 2f 2f 20 74 68 65 20 73 74 72 75 63 74 3a | ration.inside.....//.the.struct: |
| 10c40 | 0a 20 20 20 20 61 73 73 65 72 74 28 56 65 63 33 2e 64 6f 74 28 76 31 2c 20 76 32 29 20 3d 3d 20 | .....assert(Vec3.dot(v1,.v2).==. |
| 10c60 | 30 2e 30 29 3b 0a 7d 0a 0a 2f 2f 20 53 74 72 75 63 74 73 20 63 61 6e 20 68 61 76 65 20 67 6c 6f | 0.0);.}..//.Structs.can.have.glo |
| 10c80 | 62 61 6c 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 2e 0a 2f 2f 20 53 74 72 75 63 74 73 20 63 61 6e | bal.declarations..//.Structs.can |
| 10ca0 | 20 68 61 76 65 20 30 20 66 69 65 6c 64 73 2e 0a 63 6f 6e 73 74 20 45 6d 70 74 79 20 3d 20 73 74 | .have.0.fields..const.Empty.=.st |
| 10cc0 | 72 75 63 74 20 7b 0a 20 20 20 20 70 75 62 20 63 6f 6e 73 74 20 50 49 20 3d 20 33 2e 31 34 3b 0a | ruct.{.....pub.const.PI.=.3.14;. |
| 10ce0 | 7d 3b 0a 74 65 73 74 20 22 73 74 72 75 63 74 20 6e 61 6d 65 73 70 61 63 65 64 20 76 61 72 69 61 | };.test."struct.namespaced.varia |
| 10d00 | 62 6c 65 22 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 45 6d 70 74 79 2e 50 49 20 3d 3d 20 33 2e | ble".{.....assert(Empty.PI.==.3. |
| 10d20 | 31 34 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 40 73 69 7a 65 4f 66 28 45 6d 70 74 79 29 20 3d | 14);.....assert(@sizeOf(Empty).= |
| 10d40 | 3d 20 30 29 3b 0a 0a 20 20 20 20 2f 2f 20 79 6f 75 20 63 61 6e 20 73 74 69 6c 6c 20 69 6e 73 74 | =.0);......//.you.can.still.inst |
| 10d60 | 61 6e 74 69 61 74 65 20 61 6e 20 65 6d 70 74 79 20 73 74 72 75 63 74 0a 20 20 20 20 63 6f 6e 73 | antiate.an.empty.struct.....cons |
| 10d80 | 74 20 64 6f 65 73 5f 6e 6f 74 68 69 6e 67 20 3d 20 45 6d 70 74 79 20 7b 7d 3b 0a 7d 0a 0a 2f 2f | t.does_nothing.=.Empty.{};.}..// |
| 10da0 | 20 73 74 72 75 63 74 20 66 69 65 6c 64 20 6f 72 64 65 72 20 69 73 20 64 65 74 65 72 6d 69 6e 65 | .struct.field.order.is.determine |
| 10dc0 | 64 20 62 79 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 66 6f 72 20 6f 70 74 69 6d 61 6c 20 70 65 | d.by.the.compiler.for.optimal.pe |
| 10de0 | 72 66 6f 72 6d 61 6e 63 65 2e 0a 2f 2f 20 68 6f 77 65 76 65 72 2c 20 79 6f 75 20 63 61 6e 20 73 | rformance..//.however,.you.can.s |
| 10e00 | 74 69 6c 6c 20 63 61 6c 63 75 6c 61 74 65 20 61 20 73 74 72 75 63 74 20 62 61 73 65 20 70 6f 69 | till.calculate.a.struct.base.poi |
| 10e20 | 6e 74 65 72 20 67 69 76 65 6e 20 61 20 66 69 65 6c 64 20 70 6f 69 6e 74 65 72 3a 0a 66 6e 20 73 | nter.given.a.field.pointer:.fn.s |
| 10e40 | 65 74 59 42 61 73 65 64 4f 6e 58 28 78 3a 20 26 61 6d 70 3b 66 33 32 2c 20 79 3a 20 66 33 32 29 | etYBasedOnX(x:.&f32,.y:.f32) |
| 10e60 | 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 70 6f 69 6e 74 20 3d 20 40 66 69 65 6c 64 50 61 72 65 6e | .{.....const.point.=.@fieldParen |
| 10e80 | 74 50 74 72 28 50 6f 69 6e 74 2c 20 22 78 22 2c 20 78 29 3b 0a 20 20 20 20 70 6f 69 6e 74 2e 79 | tPtr(Point,."x",.x);.....point.y |
| 10ea0 | 20 3d 20 79 3b 0a 7d 0a 74 65 73 74 20 22 66 69 65 6c 64 20 70 61 72 65 6e 74 20 70 6f 69 6e 74 | .=.y;.}.test."field.parent.point |
| 10ec0 | 65 72 22 20 7b 0a 20 20 20 20 76 61 72 20 70 6f 69 6e 74 20 3d 20 50 6f 69 6e 74 20 7b 0a 20 20 | er".{.....var.point.=.Point.{... |
| 10ee0 | 20 20 20 20 20 20 2e 78 20 3d 20 30 2e 31 32 33 34 2c 0a 20 20 20 20 20 20 20 20 2e 79 20 3d 20 | .......x.=.0.1234,..........y.=. |
| 10f00 | 30 2e 35 36 37 38 2c 0a 20 20 20 20 7d 3b 0a 20 20 20 20 73 65 74 59 42 61 73 65 64 4f 6e 58 28 | 0.5678,.....};.....setYBasedOnX( |
| 10f20 | 26 61 6d 70 3b 70 6f 69 6e 74 2e 78 2c 20 30 2e 39 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 70 | &point.x,.0.9);.....assert(p |
| 10f40 | 6f 69 6e 74 2e 79 20 3d 3d 20 30 2e 39 29 3b 0a 7d 0a 0a 2f 2f 20 59 6f 75 20 63 61 6e 20 72 65 | oint.y.==.0.9);.}..//.You.can.re |
| 10f60 | 74 75 72 6e 20 61 20 73 74 72 75 63 74 20 66 72 6f 6d 20 61 20 66 75 6e 63 74 69 6f 6e 2e 20 54 | turn.a.struct.from.a.function..T |
| 10f80 | 68 69 73 20 69 73 20 68 6f 77 20 77 65 20 64 6f 20 67 65 6e 65 72 69 63 73 0a 2f 2f 20 69 6e 20 | his.is.how.we.do.generics.//.in. |
| 10fa0 | 5a 69 67 3a 0a 66 6e 20 4c 69 6e 6b 65 64 4c 69 73 74 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 | Zig:.fn.LinkedList(comptime.T:.t |
| 10fc0 | 79 70 65 29 20 2d 26 67 74 3b 20 74 79 70 65 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 73 74 72 | ype).->.type.{.....return.str |
| 10fe0 | 75 63 74 20 7b 0a 20 20 20 20 20 20 20 20 70 75 62 20 63 6f 6e 73 74 20 4e 6f 64 65 20 3d 20 73 | uct.{.........pub.const.Node.=.s |
| 11000 | 74 72 75 63 74 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 65 76 3a 20 3f 26 61 6d 70 3b | truct.{.............prev:.?& |
| 11020 | 4e 6f 64 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 3a 20 3f 26 61 6d 70 3b 4e 6f | Node,.............next:.?&No |
| 11040 | 64 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 61 74 61 3a 20 54 2c 0a 20 20 20 20 20 20 20 | de,.............data:.T,........ |
| 11060 | 20 7d 3b 0a 0a 20 20 20 20 20 20 20 20 66 69 72 73 74 3a 20 3f 26 61 6d 70 3b 4e 6f 64 65 2c 0a | .};..........first:.?&Node,. |
| 11080 | 20 20 20 20 20 20 20 20 6c 61 73 74 3a 20 20 3f 26 61 6d 70 3b 4e 6f 64 65 2c 0a 20 20 20 20 20 | ........last:..?&Node,...... |
| 110a0 | 20 20 20 6c 65 6e 3a 20 20 20 75 73 69 7a 65 2c 0a 20 20 20 20 7d 3b 0a 7d 0a 0a 74 65 73 74 20 | ...len:...usize,.....};.}..test. |
| 110c0 | 22 6c 69 6e 6b 65 64 20 6c 69 73 74 22 20 7b 0a 20 20 20 20 2f 2f 20 46 75 6e 63 74 69 6f 6e 73 | "linked.list".{.....//.Functions |
| 110e0 | 20 63 61 6c 6c 65 64 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 61 72 65 20 6d 65 6d 6f | .called.at.compile-time.are.memo |
| 11100 | 69 7a 65 64 2e 20 54 68 69 73 20 6d 65 61 6e 73 20 79 6f 75 20 63 61 6e 0a 20 20 20 20 2f 2f 20 | ized..This.means.you.can.....//. |
| 11120 | 64 6f 20 74 68 69 73 3a 0a 20 20 20 20 61 73 73 65 72 74 28 4c 69 6e 6b 65 64 4c 69 73 74 28 69 | do.this:.....assert(LinkedList(i |
| 11140 | 33 32 29 20 3d 3d 20 4c 69 6e 6b 65 64 4c 69 73 74 28 69 33 32 29 29 3b 0a 0a 20 20 20 20 76 61 | 32).==.LinkedList(i32));......va |
| 11160 | 72 20 6c 69 73 74 20 3d 20 4c 69 6e 6b 65 64 4c 69 73 74 28 69 33 32 29 20 7b 0a 20 20 20 20 20 | r.list.=.LinkedList(i32).{...... |
| 11180 | 20 20 20 2e 66 69 72 73 74 20 3d 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 20 20 2e 6c 61 73 74 20 | ....first.=.null,..........last. |
| 111a0 | 3d 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 20 20 2e 6c 65 6e 20 3d 20 30 2c 0a 20 20 20 20 7d 3b | =.null,..........len.=.0,.....}; |
| 111c0 | 0a 20 20 20 20 61 73 73 65 72 74 28 6c 69 73 74 2e 6c 65 6e 20 3d 3d 20 30 29 3b 0a 0a 20 20 20 | .....assert(list.len.==.0);..... |
| 111e0 | 20 2f 2f 20 53 69 6e 63 65 20 74 79 70 65 73 20 61 72 65 20 66 69 72 73 74 20 63 6c 61 73 73 20 | .//.Since.types.are.first.class. |
| 11200 | 76 61 6c 75 65 73 20 79 6f 75 20 63 61 6e 20 69 6e 73 74 61 6e 74 69 61 74 65 20 74 68 65 20 74 | values.you.can.instantiate.the.t |
| 11220 | 79 70 65 0a 20 20 20 20 2f 2f 20 62 79 20 61 73 73 69 67 6e 69 6e 67 20 69 74 20 74 6f 20 61 20 | ype.....//.by.assigning.it.to.a. |
| 11240 | 76 61 72 69 61 62 6c 65 3a 0a 20 20 20 20 63 6f 6e 73 74 20 4c 69 73 74 4f 66 49 6e 74 73 20 3d | variable:.....const.ListOfInts.= |
| 11260 | 20 4c 69 6e 6b 65 64 4c 69 73 74 28 69 33 32 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 4c 69 73 | .LinkedList(i32);.....assert(Lis |
| 11280 | 74 4f 66 49 6e 74 73 20 3d 3d 20 4c 69 6e 6b 65 64 4c 69 73 74 28 69 33 32 29 29 3b 0a 0a 20 20 | tOfInts.==.LinkedList(i32));.... |
| 112a0 | 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 4c 69 73 74 4f 66 49 6e 74 73 2e 4e 6f 64 65 20 7b 0a 20 | ..var.node.=.ListOfInts.Node.{.. |
| 112c0 | 20 20 20 20 20 20 20 2e 70 72 65 76 20 3d 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 20 20 2e 6e 65 | ........prev.=.null,..........ne |
| 112e0 | 78 74 20 3d 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 20 20 2e 64 61 74 61 20 3d 20 31 32 33 34 2c | xt.=.null,..........data.=.1234, |
| 11300 | 0a 20 20 20 20 7d 3b 0a 20 20 20 20 76 61 72 20 6c 69 73 74 32 20 3d 20 4c 69 6e 6b 65 64 4c 69 | .....};.....var.list2.=.LinkedLi |
| 11320 | 73 74 28 69 33 32 29 20 7b 0a 20 20 20 20 20 20 20 20 2e 66 69 72 73 74 20 3d 20 26 61 6d 70 3b | st(i32).{..........first.=.& |
| 11340 | 6e 6f 64 65 2c 0a 20 20 20 20 20 20 20 20 2e 6c 61 73 74 20 3d 20 26 61 6d 70 3b 6e 6f 64 65 2c | node,..........last.=.&node, |
| 11360 | 0a 20 20 20 20 20 20 20 20 2e 6c 65 6e 20 3d 20 31 2c 0a 20 20 20 20 7d 3b 0a 20 20 20 20 61 73 | ..........len.=.1,.....};.....as |
| 11380 | 73 65 72 74 28 28 3f 3f 6c 69 73 74 32 2e 66 69 72 73 74 29 2e 64 61 74 61 20 3d 3d 20 31 32 33 | sert((??list2.first).data.==.123 |
| 113a0 | 34 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 | 4);.}</code></pre>.......<pre><c |
| 113c0 | 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 74 65 73 74 20 73 74 72 75 63 74 | ode.class="sh">$.zig.test.struct |
| 113e0 | 73 2e 7a 69 67 0a 54 65 73 74 20 31 2f 34 20 64 6f 74 20 70 72 6f 64 75 63 74 2e 2e 2e 4f 4b 0a | s.zig.Test.1/4.dot.product...OK. |
| 11400 | 54 65 73 74 20 32 2f 34 20 73 74 72 75 63 74 20 6e 61 6d 65 73 70 61 63 65 64 20 76 61 72 69 61 | Test.2/4.struct.namespaced.varia |
| 11420 | 62 6c 65 2e 2e 2e 4f 4b 0a 54 65 73 74 20 33 2f 34 20 66 69 65 6c 64 20 70 61 72 65 6e 74 20 70 | ble...OK.Test.3/4.field.parent.p |
| 11440 | 6f 69 6e 74 65 72 2e 2e 2e 4f 4b 0a 54 65 73 74 20 34 2f 34 20 6c 69 6e 6b 65 64 20 6c 69 73 74 | ointer...OK.Test.4/4.linked.list |
| 11460 | 2e 2e 2e 4f 4b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 | ...OK</code></pre>.......<p>See. |
| 11480 | 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 | also:</p>.......<ul>.........<li |
| 114a0 | 3e 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 | ><a.href="#comptime">comptime</a |
| 114c0 | 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 | ></li>.........<li><a.href="#bui |
| 114e0 | 6c 74 69 6e 2d 66 69 65 6c 64 50 61 72 65 6e 74 50 74 72 22 3e 40 66 69 65 6c 64 50 61 72 65 6e | ltin-fieldParentPtr">@fieldParen |
| 11500 | 74 50 74 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 | tPtr</a></li>.......</ul>....... |
| 11520 | 3c 68 32 20 69 64 3d 22 65 6e 75 6d 22 3e 65 6e 75 6d 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c 70 | <h2.id="enum">enum</h2>.......<p |
| 11540 | 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 | re><code.class="zig">const.asser |
| 11560 | 74 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b | t.=.@import("std").debug.assert; |
| 11580 | 0a 63 6f 6e 73 74 20 6d 65 6d 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d 65 6d 3b | .const.mem.=.@import("std").mem; |
| 115a0 | 0a 0a 2f 2f 20 44 65 63 6c 61 72 65 20 61 6e 20 65 6e 75 6d 2e 0a 63 6f 6e 73 74 20 54 79 70 65 | ..//.Declare.an.enum..const.Type |
| 115c0 | 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 4f 6b 2c 0a 20 20 20 20 4e 6f 74 4f 6b 2c 0a 7d 3b 0a | .=.enum.{.....Ok,.....NotOk,.};. |
| 115e0 | 0a 2f 2f 20 45 6e 75 6d 73 20 61 72 65 20 73 75 6d 20 74 79 70 65 73 2c 20 61 6e 64 20 63 61 6e | .//.Enums.are.sum.types,.and.can |
| 11600 | 20 68 6f 6c 64 20 6d 6f 72 65 20 63 6f 6d 70 6c 65 78 20 64 61 74 61 20 6f 66 20 64 69 66 66 65 | .hold.more.complex.data.of.diffe |
| 11620 | 72 65 6e 74 20 74 79 70 65 73 2e 0a 63 6f 6e 73 74 20 43 6f 6d 70 6c 65 78 54 79 70 65 20 3d 20 | rent.types..const.ComplexType.=. |
| 11640 | 65 6e 75 6d 20 7b 0a 20 20 20 20 4f 6b 3a 20 75 38 2c 0a 20 20 20 20 4e 6f 74 4f 6b 3a 20 76 6f | enum.{.....Ok:.u8,.....NotOk:.vo |
| 11660 | 69 64 2c 0a 7d 3b 0a 0a 2f 2f 20 44 65 63 6c 61 72 65 20 61 20 73 70 65 63 69 66 69 63 20 69 6e | id,.};..//.Declare.a.specific.in |
| 11680 | 73 74 61 6e 63 65 20 6f 66 20 74 68 65 20 65 6e 75 6d 20 76 61 72 69 61 6e 74 2e 0a 63 6f 6e 73 | stance.of.the.enum.variant..cons |
| 116a0 | 74 20 63 20 3d 20 43 6f 6d 70 6c 65 78 54 79 70 65 2e 4f 6b 20 7b 20 30 20 7d 3b 0a 0a 2f 2f 20 | t.c.=.ComplexType.Ok.{.0.};..//. |
| 116c0 | 54 68 65 20 6f 72 64 69 6e 61 6c 20 76 61 6c 75 65 20 6f 66 20 61 20 73 69 6d 70 6c 65 20 65 6e | The.ordinal.value.of.a.simple.en |
| 116e0 | 75 6d 20 77 69 74 68 20 6e 6f 20 64 61 74 61 20 6d 65 6d 62 65 72 73 20 63 61 6e 20 62 65 0a 2f | um.with.no.data.members.can.be./ |
| 11700 | 2f 20 72 65 74 72 69 65 76 65 64 20 62 79 20 61 20 73 69 6d 70 6c 65 20 63 61 73 74 2e 0a 2f 2f | /.retrieved.by.a.simple.cast..// |
| 11720 | 20 54 68 65 20 76 61 6c 75 65 20 73 74 61 72 74 73 20 66 72 6f 6d 20 30 2c 20 63 6f 75 6e 74 69 | .The.value.starts.from.0,.counti |
| 11740 | 6e 67 20 75 70 20 66 6f 72 20 65 61 63 68 20 6d 65 6d 62 65 72 2e 0a 63 6f 6e 73 74 20 56 61 6c | ng.up.for.each.member..const.Val |
| 11760 | 75 65 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 5a 65 72 6f 2c 0a 20 20 20 20 4f 6e 65 2c 0a 20 | ue.=.enum.{.....Zero,.....One,.. |
| 11780 | 20 20 20 54 77 6f 2c 0a 7d 3b 0a 74 65 73 74 20 22 65 6e 75 6d 20 6f 72 64 69 6e 61 6c 20 76 61 | ...Two,.};.test."enum.ordinal.va |
| 117a0 | 6c 75 65 22 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 75 73 69 7a 65 28 56 61 6c 75 65 2e 5a 65 | lue".{.....assert(usize(Value.Ze |
| 117c0 | 72 6f 29 20 3d 3d 20 30 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 75 73 69 7a 65 28 56 61 6c 75 | ro).==.0);.....assert(usize(Valu |
| 117e0 | 65 2e 4f 6e 65 29 20 3d 3d 20 31 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 75 73 69 7a 65 28 56 | e.One).==.1);.....assert(usize(V |
| 11800 | 61 6c 75 65 2e 54 77 6f 29 20 3d 3d 20 32 29 3b 0a 7d 0a 0a 2f 2f 20 45 6e 75 6d 73 20 63 61 6e | alue.Two).==.2);.}..//.Enums.can |
| 11820 | 20 68 61 76 65 20 6d 65 74 68 6f 64 73 2c 20 74 68 65 20 73 61 6d 65 20 61 73 20 73 74 72 75 63 | .have.methods,.the.same.as.struc |
| 11840 | 74 73 2e 0a 2f 2f 20 45 6e 75 6d 20 6d 65 74 68 6f 64 73 20 61 72 65 20 6e 6f 74 20 73 70 65 63 | ts..//.Enum.methods.are.not.spec |
| 11860 | 69 61 6c 2c 20 74 68 65 79 20 61 72 65 20 6f 6e 6c 79 20 6e 61 6d 65 73 70 61 63 65 64 0a 2f 2f | ial,.they.are.only.namespaced.// |
| 11880 | 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 63 61 6c 6c 20 77 69 74 | .functions.that.you.can.call.wit |
| 118a0 | 68 20 64 6f 74 20 73 79 6e 74 61 78 2e 0a 63 6f 6e 73 74 20 53 75 69 74 20 3d 20 65 6e 75 6d 20 | h.dot.syntax..const.Suit.=.enum. |
| 118c0 | 7b 0a 20 20 20 20 43 6c 75 62 73 2c 0a 20 20 20 20 53 70 61 64 65 73 2c 0a 20 20 20 20 44 69 61 | {.....Clubs,.....Spades,.....Dia |
| 118e0 | 6d 6f 6e 64 73 2c 0a 20 20 20 20 48 65 61 72 74 73 2c 0a 0a 20 20 20 20 70 75 62 20 66 6e 20 6f | monds,.....Hearts,......pub.fn.o |
| 11900 | 72 64 69 6e 61 6c 28 73 65 6c 66 3a 20 26 61 6d 70 3b 63 6f 6e 73 74 20 53 75 69 74 29 20 2d 26 | rdinal(self:.&const.Suit).-& |
| 11920 | 67 74 3b 20 75 38 20 7b 0a 20 20 20 20 20 20 20 20 75 38 28 2a 73 65 6c 66 29 0a 20 20 20 20 7d | gt;.u8.{.........u8(*self).....} |
| 11940 | 0a 7d 3b 0a 74 65 73 74 20 22 65 6e 75 6d 20 6d 65 74 68 6f 64 22 20 7b 0a 20 20 20 20 63 6f 6e | .};.test."enum.method".{.....con |
| 11960 | 73 74 20 70 20 3d 20 53 75 69 74 2e 53 70 61 64 65 73 3b 0a 20 20 20 20 61 73 73 65 72 74 28 70 | st.p.=.Suit.Spades;.....assert(p |
| 11980 | 2e 6f 72 64 69 6e 61 6c 28 29 20 3d 3d 20 31 29 3b 0a 7d 0a 0a 2f 2f 20 41 6e 20 65 6e 75 6d 20 | .ordinal().==.1);.}..//.An.enum. |
| 119a0 | 76 61 72 69 61 6e 74 20 6f 66 20 64 69 66 66 65 72 65 6e 74 20 74 79 70 65 73 20 63 61 6e 20 62 | variant.of.different.types.can.b |
| 119c0 | 65 20 73 77 69 74 63 68 65 64 20 75 70 6f 6e 2e 0a 2f 2f 20 54 68 65 20 61 73 73 6f 63 69 61 74 | e.switched.upon..//.The.associat |
| 119e0 | 65 64 20 64 61 74 61 20 63 61 6e 20 62 65 20 72 65 74 72 69 65 76 65 64 20 75 73 69 6e 67 20 60 | ed.data.can.be.retrieved.using.` |
| 11a00 | 7c 2e 2e 2e 7c 60 20 73 79 6e 74 61 78 2e 0a 2f 2f 0a 2f 2f 20 41 20 76 6f 69 64 20 74 79 70 65 | |...|`.syntax..//.//.A.void.type |
| 11a20 | 20 69 73 20 6e 6f 74 20 72 65 71 75 69 72 65 64 20 6f 6e 20 61 20 74 61 67 2d 6f 6e 6c 79 20 6d | .is.not.required.on.a.tag-only.m |
| 11a40 | 65 6d 62 65 72 2e 0a 63 6f 6e 73 74 20 46 6f 6f 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 53 74 | ember..const.Foo.=.enum.{.....St |
| 11a60 | 72 69 6e 67 3a 20 5b 5d 63 6f 6e 73 74 20 75 38 2c 0a 20 20 20 20 4e 75 6d 62 65 72 3a 20 75 36 | ring:.[]const.u8,.....Number:.u6 |
| 11a80 | 34 2c 0a 20 20 20 20 4e 6f 6e 65 2c 0a 7d 3b 0a 74 65 73 74 20 22 65 6e 75 6d 20 76 61 72 69 61 | 4,.....None,.};.test."enum.varia |
| 11aa0 | 6e 74 20 73 77 69 74 63 68 22 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 70 20 3d 20 46 6f 6f 2e 4e | nt.switch".{.....const.p.=.Foo.N |
| 11ac0 | 75 6d 62 65 72 20 7b 20 35 34 20 7d 3b 0a 20 20 20 20 63 6f 6e 73 74 20 77 68 61 74 5f 69 73 5f | umber.{.54.};.....const.what_is_ |
| 11ae0 | 69 74 20 3d 20 73 77 69 74 63 68 20 28 70 29 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 43 61 70 | it.=.switch.(p).{.........//.Cap |
| 11b00 | 74 75 72 65 20 62 79 20 72 65 66 65 72 65 6e 63 65 0a 20 20 20 20 20 20 20 20 46 6f 6f 2e 53 74 | ture.by.reference.........Foo.St |
| 11b20 | 72 69 6e 67 20 3d 26 67 74 3b 20 7c 2a 78 7c 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 | ring.=>.|*x|.{............."t |
| 11b40 | 68 69 73 20 69 73 20 61 20 73 74 72 69 6e 67 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 0a 20 20 20 | his.is.a.string".........},..... |
| 11b60 | 20 20 20 20 20 2f 2f 20 43 61 70 74 75 72 65 20 62 79 20 76 61 6c 75 65 0a 20 20 20 20 20 20 20 | .....//.Capture.by.value........ |
| 11b80 | 20 46 6f 6f 2e 4e 75 6d 62 65 72 20 3d 26 67 74 3b 20 7c 78 7c 20 7b 0a 20 20 20 20 20 20 20 20 | .Foo.Number.=>.|x|.{......... |
| 11ba0 | 20 20 20 20 22 74 68 69 73 20 69 73 20 61 20 6e 75 6d 62 65 72 22 0a 20 20 20 20 20 20 20 20 7d | ...."this.is.a.number".........} |
| 11bc0 | 2c 0a 0a 20 20 20 20 20 20 20 20 46 6f 6f 2e 4e 6f 6e 65 20 3d 26 67 74 3b 20 7b 0a 20 20 20 20 | ,..........Foo.None.=>.{..... |
| 11be0 | 20 20 20 20 20 20 20 20 22 74 68 69 73 20 69 73 20 61 20 6e 6f 6e 65 22 0a 20 20 20 20 20 20 20 | ........"this.is.a.none"........ |
| 11c00 | 20 7d 0a 20 20 20 20 7d 3b 0a 7d 0a 0a 2f 2f 20 54 68 65 20 40 65 6e 75 6d 54 61 67 4e 61 6d 65 | .}.....};.}..//.The.@enumTagName |
| 11c20 | 20 61 6e 64 20 40 6d 65 6d 62 65 72 43 6f 75 6e 74 20 62 75 69 6c 74 69 6e 20 66 75 6e 63 74 69 | .and.@memberCount.builtin.functi |
| 11c40 | 6f 6e 73 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 0a 2f 2f 20 74 68 65 20 73 74 72 69 6e 67 | ons.can.be.used.to.//.the.string |
| 11c60 | 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 61 6e 64 20 6e 75 6d 62 65 72 20 6f 66 20 6d 65 | .representation.and.number.of.me |
| 11c80 | 6d 62 65 72 73 20 72 65 73 70 65 63 74 69 76 65 6c 79 2e 0a 63 6f 6e 73 74 20 42 75 69 6c 74 69 | mbers.respectively..const.Builti |
| 11ca0 | 6e 54 79 70 65 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 41 3a 20 66 33 32 2c 0a 20 20 20 20 42 | nType.=.enum.{.....A:.f32,.....B |
| 11cc0 | 3a 20 75 33 32 2c 0a 20 20 20 20 43 2c 0a 7d 3b 0a 0a 74 65 73 74 20 22 65 6e 75 6d 20 62 75 69 | :.u32,.....C,.};..test."enum.bui |
| 11ce0 | 6c 74 69 6e 73 22 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 75 38 2c 20 | ltins".{.....assert(mem.eql(u8,. |
| 11d00 | 40 65 6e 75 6d 54 61 67 4e 61 6d 65 28 42 75 69 6c 74 69 6e 54 79 70 65 2e 41 20 7b 20 30 20 7d | @enumTagName(BuiltinType.A.{.0.} |
| 11d20 | 29 2c 20 22 41 22 29 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 75 38 2c | ),."A"));.....assert(mem.eql(u8, |
| 11d40 | 20 40 65 6e 75 6d 54 61 67 4e 61 6d 65 28 42 75 69 6c 74 69 6e 54 79 70 65 2e 43 29 2c 20 22 43 | .@enumTagName(BuiltinType.C),."C |
| 11d60 | 22 29 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 40 6d 65 6d 62 65 72 43 6f 75 6e 74 28 42 75 69 | "));.....assert(@memberCount(Bui |
| 11d80 | 6c 74 69 6e 54 79 70 65 29 20 3d 3d 20 33 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a | ltinType).==.3);.}</code></pre>. |
| 11da0 | 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 | ......<pre><code.class="sh">$.zi |
| 11dc0 | 67 20 74 65 73 74 20 65 6e 75 6d 2e 7a 69 67 0a 54 65 73 74 20 31 2f 34 20 65 6e 75 6d 20 6f 72 | g.test.enum.zig.Test.1/4.enum.or |
| 11de0 | 64 69 6e 61 6c 20 76 61 6c 75 65 2e 2e 2e 4f 4b 0a 54 65 73 74 20 32 2f 34 20 65 6e 75 6d 20 6d | dinal.value...OK.Test.2/4.enum.m |
| 11e00 | 65 74 68 6f 64 2e 2e 2e 4f 4b 0a 54 65 73 74 20 33 2f 34 20 65 6e 75 6d 20 76 61 72 69 61 6e 74 | ethod...OK.Test.3/4.enum.variant |
| 11e20 | 20 73 77 69 74 63 68 2e 2e 2e 4f 4b 0a 54 65 73 74 20 34 2f 34 20 65 6e 75 6d 20 62 75 69 6c 74 | .switch...OK.Test.4/4.enum.built |
| 11e40 | 69 6e 73 2e 2e 2e 4f 4b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a | ins...OK</code></pre>.......<p>. |
| 11e60 | 20 20 20 20 20 20 45 6e 75 6d 73 20 61 72 65 20 67 65 6e 65 72 61 74 65 64 20 61 73 20 61 20 73 | ......Enums.are.generated.as.a.s |
| 11e80 | 74 72 75 63 74 20 77 69 74 68 20 61 20 74 61 67 20 66 69 65 6c 64 20 61 6e 64 20 75 6e 69 6f 6e | truct.with.a.tag.field.and.union |
| 11ea0 | 20 66 69 65 6c 64 2e 20 5a 69 67 0a 20 20 20 20 20 20 73 6f 72 74 73 20 74 68 65 20 6f 72 64 65 | .field..Zig.......sorts.the.orde |
| 11ec0 | 72 20 6f 66 20 74 68 65 20 74 61 67 20 61 6e 64 20 75 6e 69 6f 6e 20 66 69 65 6c 64 20 62 79 20 | r.of.the.tag.and.union.field.by. |
| 11ee0 | 74 68 65 20 6c 61 72 67 65 73 74 20 61 6c 69 67 6e 6d 65 6e 74 2e 0a 20 20 20 20 20 20 3c 2f 70 | the.largest.alignment........</p |
| 11f00 | 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | >.......<p>See.also:</p>.......< |
| 11f20 | 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 | ul>.........<li><a.href="#builti |
| 11f40 | 6e 2d 65 6e 75 6d 54 61 67 4e 61 6d 65 22 3e 40 65 6e 75 6d 54 61 67 4e 61 6d 65 3c 2f 61 3e 3c | n-enumTagName">@enumTagName</a>< |
| 11f60 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 | /li>.........<li><a.href="#built |
| 11f80 | 69 6e 2d 6d 65 6d 62 65 72 43 6f 75 6e 74 22 3e 40 6d 65 6d 62 65 72 43 6f 75 6e 74 3c 2f 61 3e | in-memberCount">@memberCount</a> |
| 11fa0 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 | </li>.......</ul>.......<h2.id=" |
| 11fc0 | 73 77 69 74 63 68 22 3e 73 77 69 74 63 68 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c | switch">switch</h2>.......<pre>< |
| 11fe0 | 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 | code.class="zig">const.assert.=. |
| 12000 | 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 63 6f 6e | @import("std").debug.assert;.con |
| 12020 | 73 74 20 62 75 69 6c 74 69 6e 20 3d 20 40 69 6d 70 6f 72 74 28 22 62 75 69 6c 74 69 6e 22 29 3b | st.builtin.=.@import("builtin"); |
| 12040 | 0a 0a 74 65 73 74 20 22 73 77 69 74 63 68 20 73 69 6d 70 6c 65 22 20 7b 0a 20 20 20 20 63 6f 6e | ..test."switch.simple".{.....con |
| 12060 | 73 74 20 61 3a 20 75 36 34 20 3d 20 31 30 3b 0a 20 20 20 20 63 6f 6e 73 74 20 7a 7a 3a 20 75 36 | st.a:.u64.=.10;.....const.zz:.u6 |
| 12080 | 34 20 3d 20 31 30 33 3b 0a 0a 20 20 20 20 2f 2f 20 41 6c 6c 20 62 72 61 6e 63 68 65 73 20 6f 66 | 4.=.103;......//.All.branches.of |
| 120a0 | 20 61 20 73 77 69 74 63 68 20 65 78 70 72 65 73 73 69 6f 6e 20 6d 75 73 74 20 62 65 20 61 62 6c | .a.switch.expression.must.be.abl |
| 120c0 | 65 20 74 6f 20 62 65 20 63 6f 65 72 63 65 64 20 74 6f 20 61 0a 20 20 20 20 2f 2f 20 63 6f 6d 6d | e.to.be.coerced.to.a.....//.comm |
| 120e0 | 6f 6e 20 74 79 70 65 2e 0a 20 20 20 20 2f 2f 0a 20 20 20 20 2f 2f 20 42 72 61 6e 63 68 65 73 20 | on.type......//.....//.Branches. |
| 12100 | 63 61 6e 6e 6f 74 20 66 61 6c 6c 74 68 72 6f 75 67 68 2e 20 49 66 20 66 61 6c 6c 74 68 72 6f 75 | cannot.fallthrough..If.fallthrou |
| 12120 | 67 68 20 62 65 68 61 76 69 6f 72 20 69 73 20 64 65 73 69 72 65 64 2c 20 63 6f 6d 62 69 6e 65 0a | gh.behavior.is.desired,.combine. |
| 12140 | 20 20 20 20 2f 2f 20 74 68 65 20 63 61 73 65 73 20 61 6e 64 20 75 73 65 20 61 6e 20 69 66 2e 0a | ....//.the.cases.and.use.an.if.. |
| 12160 | 20 20 20 20 63 6f 6e 73 74 20 62 20 3d 20 73 77 69 74 63 68 20 28 61 29 20 7b 0a 20 20 20 20 20 | ....const.b.=.switch.(a).{...... |
| 12180 | 20 20 20 2f 2f 20 4d 75 6c 74 69 70 6c 65 20 63 61 73 65 73 20 63 61 6e 20 62 65 20 63 6f 6d 62 | ...//.Multiple.cases.can.be.comb |
| 121a0 | 69 6e 65 64 20 76 69 61 20 61 20 27 2c 27 0a 20 20 20 20 20 20 20 20 31 2c 20 32 2c 20 33 20 3d | ined.via.a.','.........1,.2,.3.= |
| 121c0 | 26 67 74 3b 20 30 2c 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 52 61 6e 67 65 73 20 63 61 6e 20 62 | >.0,..........//.Ranges.can.b |
| 121e0 | 65 20 73 70 65 63 69 66 69 65 64 20 75 73 69 6e 67 20 74 68 65 20 2e 2e 2e 20 73 79 6e 74 61 78 | e.specified.using.the.....syntax |
| 12200 | 2e 20 54 68 65 73 65 20 61 72 65 20 69 6e 63 6c 75 73 69 76 65 0a 20 20 20 20 20 20 20 20 2f 2f | ..These.are.inclusive.........// |
| 12220 | 20 62 6f 74 68 20 65 6e 64 73 2e 0a 20 20 20 20 20 20 20 20 35 20 2e 2e 2e 20 31 30 30 20 3d 26 | .both.ends..........5.....100.=& |
| 12240 | 67 74 3b 20 31 2c 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 42 72 61 6e 63 68 65 73 20 63 61 6e 20 | gt;.1,..........//.Branches.can. |
| 12260 | 62 65 20 61 72 62 69 74 72 61 72 69 6c 79 20 63 6f 6d 70 6c 65 78 2e 0a 20 20 20 20 20 20 20 20 | be.arbitrarily.complex.......... |
| 12280 | 31 30 31 20 3d 26 67 74 3b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 3a | 101.=>.{.............const.c: |
| 122a0 | 20 75 36 34 20 3d 20 35 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 20 2a 20 32 20 2b 20 31 0a | .u64.=.5;.............c.*.2.+.1. |
| 122c0 | 20 20 20 20 20 20 20 20 7d 2c 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 53 77 69 74 63 68 69 6e 67 | ........},..........//.Switching |
| 122e0 | 20 6f 6e 20 61 72 62 69 74 72 61 72 79 20 65 78 70 72 65 73 73 69 6f 6e 73 20 69 73 20 61 6c 6c | .on.arbitrary.expressions.is.all |
| 12300 | 6f 77 65 64 20 61 73 20 6c 6f 6e 67 20 61 73 20 74 68 65 0a 20 20 20 20 20 20 20 20 2f 2f 20 65 | owed.as.long.as.the.........//.e |
| 12320 | 78 70 72 65 73 73 69 6f 6e 20 69 73 20 6b 6e 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 | xpression.is.known.at.compile-ti |
| 12340 | 6d 65 2e 0a 20 20 20 20 20 20 20 20 7a 7a 20 3d 26 67 74 3b 20 7a 7a 2c 0a 20 20 20 20 20 20 20 | me..........zz.=>.zz,........ |
| 12360 | 20 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 64 3a | .comptime.{.............const.d: |
| 12380 | 20 75 33 32 20 3d 20 35 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 65 3a 20 75 | .u32.=.5;.............const.e:.u |
| 123a0 | 33 32 20 3d 20 31 30 30 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 20 2b 20 65 0a 20 20 20 20 | 32.=.100;.............d.+.e..... |
| 123c0 | 20 20 20 20 7d 20 3d 26 67 74 3b 20 31 30 37 2c 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 54 68 65 | ....}.=>.107,..........//.The |
| 123e0 | 20 65 6c 73 65 20 62 72 61 6e 63 68 20 63 61 74 63 68 65 73 20 65 76 65 72 79 74 68 69 6e 67 20 | .else.branch.catches.everything. |
| 12400 | 6e 6f 74 20 61 6c 72 65 61 64 79 20 63 61 70 74 75 72 65 64 2e 0a 20 20 20 20 20 20 20 20 2f 2f | not.already.captured..........// |
| 12420 | 20 45 6c 73 65 20 62 72 61 6e 63 68 65 73 20 61 72 65 20 6d 61 6e 64 61 74 6f 72 79 20 75 6e 6c | .Else.branches.are.mandatory.unl |
| 12440 | 65 73 73 20 74 68 65 20 65 6e 74 69 72 65 20 72 61 6e 67 65 20 6f 66 20 76 61 6c 75 65 73 0a 20 | ess.the.entire.range.of.values.. |
| 12460 | 20 20 20 20 20 20 20 2f 2f 20 69 73 20 68 61 6e 64 6c 65 64 2e 0a 20 20 20 20 20 20 20 20 65 6c | .......//.is.handled..........el |
| 12480 | 73 65 20 3d 26 67 74 3b 20 39 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 61 73 73 65 72 74 28 62 | se.=>.9,.....};......assert(b |
| 124a0 | 20 3d 3d 20 31 29 3b 0a 7d 0a 0a 74 65 73 74 20 22 73 77 69 74 63 68 20 65 6e 75 6d 22 20 7b 0a | .==.1);.}..test."switch.enum".{. |
| 124c0 | 20 20 20 20 63 6f 6e 73 74 20 49 74 65 6d 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 20 20 20 20 | ....const.Item.=.enum.{......... |
| 124e0 | 41 3a 20 75 33 32 2c 0a 20 20 20 20 20 20 20 20 43 3a 20 73 74 72 75 63 74 20 7b 20 78 3a 20 75 | A:.u32,.........C:.struct.{.x:.u |
| 12500 | 38 2c 20 79 3a 20 75 38 20 7d 2c 0a 20 20 20 20 20 20 20 20 44 2c 0a 20 20 20 20 7d 3b 0a 0a 20 | 8,.y:.u8.},.........D,.....};... |
| 12520 | 20 20 20 76 61 72 20 61 20 3d 20 49 74 65 6d 2e 41 20 7b 20 33 20 7d 3b 0a 0a 20 20 20 20 2f 2f | ...var.a.=.Item.A.{.3.};......// |
| 12540 | 20 53 77 69 74 63 68 69 6e 67 20 6f 6e 20 6d 6f 72 65 20 63 6f 6d 70 6c 65 78 20 65 6e 75 6d 73 | .Switching.on.more.complex.enums |
| 12560 | 20 69 73 20 61 6c 6c 6f 77 65 64 2e 0a 20 20 20 20 63 6f 6e 73 74 20 62 20 3d 20 73 77 69 74 63 | .is.allowed......const.b.=.switc |
| 12580 | 68 20 28 61 29 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 41 20 63 61 70 74 75 72 65 20 67 72 6f | h.(a).{.........//.A.capture.gro |
| 125a0 | 75 70 20 69 73 20 61 6c 6c 6f 77 65 64 20 6f 6e 20 61 20 6d 61 74 63 68 2c 20 61 6e 64 20 77 69 | up.is.allowed.on.a.match,.and.wi |
| 125c0 | 6c 6c 20 72 65 74 75 72 6e 20 74 68 65 20 65 6e 75 6d 0a 20 20 20 20 20 20 20 20 2f 2f 20 76 61 | ll.return.the.enum.........//.va |
| 125e0 | 6c 75 65 20 6d 61 74 63 68 65 64 2e 0a 20 20 20 20 20 20 20 20 49 74 65 6d 2e 41 20 3d 26 67 74 | lue.matched..........Item.A.=> |
| 12600 | 3b 20 7c 69 74 65 6d 7c 20 69 74 65 6d 2c 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 41 20 72 65 66 | ;.|item|.item,..........//.A.ref |
| 12620 | 65 72 65 6e 63 65 20 74 6f 20 74 68 65 20 6d 61 74 63 68 65 64 20 76 61 6c 75 65 20 63 61 6e 20 | erence.to.the.matched.value.can. |
| 12640 | 62 65 20 6f 62 74 61 69 6e 65 64 20 75 73 69 6e 67 20 60 2a 60 20 73 79 6e 74 61 78 2e 0a 20 20 | be.obtained.using.`*`.syntax.... |
| 12660 | 20 20 20 20 20 20 49 74 65 6d 2e 43 20 3d 26 67 74 3b 20 7c 2a 69 74 65 6d 7c 20 7b 0a 20 20 20 | ......Item.C.=>.|*item|.{.... |
| 12680 | 20 20 20 20 20 20 20 20 20 28 2a 69 74 65 6d 29 2e 78 20 2b 3d 20 31 3b 0a 20 20 20 20 20 20 20 | .........(*item).x.+=.1;........ |
| 126a0 | 20 20 20 20 20 36 0a 20 20 20 20 20 20 20 20 7d 2c 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 4e 6f | .....6.........},..........//.No |
| 126c0 | 20 65 6c 73 65 20 69 73 20 72 65 71 75 69 72 65 64 20 69 66 20 74 68 65 20 74 79 70 65 73 20 63 | .else.is.required.if.the.types.c |
| 126e0 | 61 73 65 73 20 77 61 73 20 65 78 68 61 75 73 74 69 76 65 6c 79 20 68 61 6e 64 6c 65 64 0a 20 20 | ases.was.exhaustively.handled... |
| 12700 | 20 20 20 20 20 20 49 74 65 6d 2e 44 20 3d 26 67 74 3b 20 38 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 | ......Item.D.=>.8,.....};.... |
| 12720 | 20 20 61 73 73 65 72 74 28 62 20 3d 3d 20 33 29 3b 0a 7d 0a 0a 2f 2f 20 53 77 69 74 63 68 20 65 | ..assert(b.==.3);.}..//.Switch.e |
| 12740 | 78 70 72 65 73 73 69 6f 6e 73 20 63 61 6e 20 62 65 20 75 73 65 64 20 6f 75 74 73 69 64 65 20 61 | xpressions.can.be.used.outside.a |
| 12760 | 20 66 75 6e 63 74 69 6f 6e 3a 0a 63 6f 6e 73 74 20 6f 73 5f 6d 73 67 20 3d 20 73 77 69 74 63 68 | .function:.const.os_msg.=.switch |
| 12780 | 20 28 62 75 69 6c 74 69 6e 2e 6f 73 29 20 7b 0a 20 20 20 20 62 75 69 6c 74 69 6e 2e 4f 73 2e 6c | .(builtin.os).{.....builtin.Os.l |
| 127a0 | 69 6e 75 78 20 3d 26 67 74 3b 20 22 77 65 20 66 6f 75 6e 64 20 61 20 6c 69 6e 75 78 20 75 73 65 | inux.=>."we.found.a.linux.use |
| 127c0 | 72 22 2c 0a 20 20 20 20 65 6c 73 65 20 3d 26 67 74 3b 20 22 6e 6f 74 20 61 20 6c 69 6e 75 78 20 | r",.....else.=>."not.a.linux. |
| 127e0 | 75 73 65 72 22 2c 0a 7d 3b 0a 0a 2f 2f 20 49 6e 73 69 64 65 20 61 20 66 75 6e 63 74 69 6f 6e 2c | user",.};..//.Inside.a.function, |
| 12800 | 20 73 77 69 74 63 68 20 73 74 61 74 65 6d 65 6e 74 73 20 69 6d 70 6c 69 63 69 74 6c 79 20 61 72 | .switch.statements.implicitly.ar |
| 12820 | 65 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 0a 2f 2f 20 65 76 61 6c 75 61 74 65 64 20 69 66 20 74 | e.compile-time.//.evaluated.if.t |
| 12840 | 68 65 20 74 61 72 67 65 74 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 63 6f 6d 70 69 6c 65 2d | he.target.expression.is.compile- |
| 12860 | 74 69 6d 65 20 6b 6e 6f 77 6e 2e 0a 74 65 73 74 20 22 73 77 69 74 63 68 20 69 6e 73 69 64 65 20 | time.known..test."switch.inside. |
| 12880 | 66 75 6e 63 74 69 6f 6e 22 20 7b 0a 20 20 20 20 73 77 69 74 63 68 20 28 62 75 69 6c 74 69 6e 2e | function".{.....switch.(builtin. |
| 128a0 | 6f 73 29 20 7b 0a 20 20 20 20 20 20 20 20 62 75 69 6c 74 69 6e 2e 4f 73 2e 77 69 6e 64 6f 77 73 | os).{.........builtin.Os.windows |
| 128c0 | 20 3d 26 67 74 3b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 4f 6e 20 61 6e 20 4f 53 | .=>.{.............//.On.an.OS |
| 128e0 | 20 6f 74 68 65 72 20 74 68 61 6e 20 77 69 6e 64 6f 77 73 2c 20 62 6c 6f 63 6b 20 69 73 20 6e 6f | .other.than.windows,.block.is.no |
| 12900 | 74 20 65 76 65 6e 20 61 6e 61 6c 79 7a 65 64 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 | t.even.analyzed,.............//. |
| 12920 | 73 6f 20 74 68 69 73 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 69 73 20 6e 6f 74 20 74 72 69 | so.this.compile.error.is.not.tri |
| 12940 | 67 67 65 72 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 4f 6e 20 77 69 6e 64 6f 77 | ggered..............//.On.window |
| 12960 | 73 20 74 68 69 73 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 77 6f 75 6c 64 20 62 65 20 74 72 | s.this.compile.error.would.be.tr |
| 12980 | 69 67 67 65 72 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 40 63 6f 6d 70 69 6c 65 45 72 72 | iggered..............@compileErr |
| 129a0 | 6f 72 28 22 77 69 6e 64 6f 77 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 22 29 3b 0a 20 20 20 | or("windows.not.supported");.... |
| 129c0 | 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 65 6c 73 65 20 3d 26 67 74 3b 20 7b 7d 2c 0a 20 | .....},.........else.=>.{},.. |
| 129e0 | 20 20 20 7d 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e | ...};.}</code></pre>.......<pre> |
| 12a00 | 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 74 65 73 74 20 73 77 69 74 | <code.class="sh">$.zig.test.swit |
| 12a20 | 63 68 2e 7a 69 67 0a 54 65 73 74 20 31 2f 32 20 73 77 69 74 63 68 20 73 69 6d 70 6c 65 2e 2e 2e | ch.zig.Test.1/2.switch.simple... |
| 12a40 | 4f 4b 0a 54 65 73 74 20 32 2f 32 20 73 77 69 74 63 68 20 65 6e 75 6d 2e 2e 2e 4f 4b 0a 54 65 73 | OK.Test.2/2.switch.enum...OK.Tes |
| 12a60 | 74 20 33 2f 33 20 73 77 69 74 63 68 20 69 6e 73 69 64 65 20 66 75 6e 63 74 69 6f 6e 2e 2e 2e 4f | t.3/3.switch.inside.function...O |
| 12a80 | 4b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f | K</code></pre>.......<p>See.also |
| 12aa0 | 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 | :</p>.......<ul>.........<li><a. |
| 12ac0 | 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 3c 2f 6c | href="#comptime">comptime</a></l |
| 12ae0 | 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 6e 75 6d 22 3e 65 | i>.........<li><a.href="#enum">e |
| 12b00 | 6e 75 6d 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 | num</a></li>.........<li><a.href |
| 12b20 | 3d 22 23 62 75 69 6c 74 69 6e 2d 63 6f 6d 70 69 6c 65 45 72 72 6f 72 22 3e 40 63 6f 6d 70 69 6c | ="#builtin-compileError">@compil |
| 12b40 | 65 45 72 72 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 | eError</a></li>.........<li><a.h |
| 12b60 | 72 65 66 3d 22 23 63 6f 6d 70 69 6c 65 2d 76 61 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 | ref="#compile-variables">Compile |
| 12b80 | 20 56 61 72 69 61 62 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a | .Variables</a></li>.......</ul>. |
| 12ba0 | 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 77 68 69 6c 65 22 3e 77 68 69 6c 65 3c 2f 68 32 3e 0a | ......<h2.id="while">while</h2>. |
| 12bc0 | 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e | ......<pre><code.class="zig">con |
| 12be0 | 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 75 67 | st.assert.=.@import("std").debug |
| 12c00 | 2e 61 73 73 65 72 74 3b 0a 0a 74 65 73 74 20 22 77 68 69 6c 65 20 62 61 73 69 63 22 20 7b 0a 20 | .assert;..test."while.basic".{.. |
| 12c20 | 20 20 20 2f 2f 20 41 20 77 68 69 6c 65 20 6c 6f 6f 70 20 69 73 20 75 73 65 64 20 74 6f 20 72 65 | ...//.A.while.loop.is.used.to.re |
| 12c40 | 70 65 61 74 65 64 6c 79 20 65 78 65 63 75 74 65 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 75 | peatedly.execute.an.expression.u |
| 12c60 | 6e 74 69 6c 0a 20 20 20 20 2f 2f 20 73 6f 6d 65 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 20 6e 6f | ntil.....//.some.condition.is.no |
| 12c80 | 20 6c 6f 6e 67 65 72 20 74 72 75 65 2e 0a 20 20 20 20 76 61 72 20 69 3a 20 75 73 69 7a 65 20 3d | .longer.true......var.i:.usize.= |
| 12ca0 | 20 30 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 69 20 26 6c 74 3b 20 31 30 29 20 7b 0a 20 20 20 20 | .0;.....while.(i.<.10).{..... |
| 12cc0 | 20 20 20 20 69 20 2b 3d 20 31 3b 0a 20 20 20 20 7d 0a 20 20 20 20 61 73 73 65 72 74 28 69 20 3d | ....i.+=.1;.....}.....assert(i.= |
| 12ce0 | 3d 20 31 30 29 3b 0a 7d 0a 0a 74 65 73 74 20 22 77 68 69 6c 65 20 62 72 65 61 6b 22 20 7b 0a 20 | =.10);.}..test."while.break".{.. |
| 12d00 | 20 20 20 2f 2f 20 59 6f 75 20 63 61 6e 20 75 73 65 20 62 72 65 61 6b 20 74 6f 20 65 78 69 74 20 | ...//.You.can.use.break.to.exit. |
| 12d20 | 61 20 77 68 69 6c 65 20 6c 6f 6f 70 20 65 61 72 6c 79 2e 0a 20 20 20 20 76 61 72 20 69 3a 20 75 | a.while.loop.early......var.i:.u |
| 12d40 | 73 69 7a 65 20 3d 20 30 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 20 20 20 | size.=.0;.....while.(true).{.... |
| 12d60 | 20 20 20 20 20 69 66 20 28 69 20 3d 3d 20 31 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 72 | .....if.(i.==.10).............br |
| 12d80 | 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 69 20 2b 3d 20 31 3b 0a 20 20 20 20 7d 0a 20 20 20 20 61 | eak;.........i.+=.1;.....}.....a |
| 12da0 | 73 73 65 72 74 28 69 20 3d 3d 20 31 30 29 3b 0a 7d 0a 0a 74 65 73 74 20 22 77 68 69 6c 65 20 63 | ssert(i.==.10);.}..test."while.c |
| 12dc0 | 6f 6e 74 69 6e 75 65 22 20 7b 0a 20 20 20 20 2f 2f 20 59 6f 75 20 63 61 6e 20 75 73 65 20 63 6f | ontinue".{.....//.You.can.use.co |
| 12de0 | 6e 74 69 6e 75 65 20 74 6f 20 6a 75 6d 70 20 62 61 63 6b 20 74 6f 20 74 68 65 20 62 65 67 69 6e | ntinue.to.jump.back.to.the.begin |
| 12e00 | 6e 69 6e 67 20 6f 66 20 74 68 65 20 6c 6f 6f 70 2e 0a 20 20 20 20 76 61 72 20 69 3a 20 75 73 69 | ning.of.the.loop......var.i:.usi |
| 12e20 | 7a 65 20 3d 20 30 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 20 20 20 20 20 | ze.=.0;.....while.(true).{...... |
| 12e40 | 20 20 20 69 20 2b 3d 20 31 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 20 26 6c 74 3b 20 31 30 | ...i.+=.1;.........if.(i.<.10 |
| 12e60 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 20 20 20 20 20 20 20 20 | ).............continue;......... |
| 12e80 | 62 72 65 61 6b 3b 0a 20 20 20 20 7d 0a 20 20 20 20 61 73 73 65 72 74 28 69 20 3d 3d 20 31 30 29 | break;.....}.....assert(i.==.10) |
| 12ea0 | 3b 0a 7d 0a 0a 74 65 73 74 20 22 77 68 69 6c 65 20 6c 6f 6f 70 20 63 6f 6e 74 69 6e 75 61 74 69 | ;.}..test."while.loop.continuati |
| 12ec0 | 6f 6e 20 65 78 70 72 65 73 73 69 6f 6e 22 20 7b 0a 20 20 20 20 2f 2f 20 59 6f 75 20 63 61 6e 20 | on.expression".{.....//.You.can. |
| 12ee0 | 67 69 76 65 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 74 6f 20 74 68 65 20 77 68 69 6c 65 20 | give.an.expression.to.the.while. |
| 12f00 | 6c 6f 6f 70 20 74 6f 20 65 78 65 63 75 74 65 20 77 68 65 6e 0a 20 20 20 20 2f 2f 20 74 68 65 20 | loop.to.execute.when.....//.the. |
| 12f20 | 6c 6f 6f 70 20 69 73 20 63 6f 6e 74 69 6e 75 65 64 2e 20 54 68 69 73 20 69 73 20 72 65 73 70 65 | loop.is.continued..This.is.respe |
| 12f40 | 63 74 65 64 20 62 79 20 74 68 65 20 63 6f 6e 74 69 6e 75 65 20 63 6f 6e 74 72 6f 6c 20 66 6c 6f | cted.by.the.continue.control.flo |
| 12f60 | 77 2e 0a 20 20 20 20 76 61 72 20 69 3a 20 75 73 69 7a 65 20 3d 20 30 3b 0a 20 20 20 20 77 68 69 | w......var.i:.usize.=.0;.....whi |
| 12f80 | 6c 65 20 28 69 20 26 6c 74 3b 20 31 30 29 20 3a 20 28 69 20 2b 3d 20 31 29 20 7b 7d 0a 20 20 20 | le.(i.<.10).:.(i.+=.1).{}.... |
| 12fa0 | 20 61 73 73 65 72 74 28 69 20 3d 3d 20 31 30 29 3b 0a 7d 0a 0a 74 65 73 74 20 22 77 68 69 6c 65 | .assert(i.==.10);.}..test."while |
| 12fc0 | 20 6c 6f 6f 70 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 65 78 70 72 65 73 73 69 6f 6e 2c 20 6d | .loop.continuation.expression,.m |
| 12fe0 | 6f 72 65 20 63 6f 6d 70 6c 69 63 61 74 65 64 22 20 7b 0a 20 20 20 20 2f 2f 20 4d 6f 72 65 20 63 | ore.complicated".{.....//.More.c |
| 13000 | 6f 6d 70 6c 65 78 20 62 6c 6f 63 6b 73 20 63 61 6e 20 62 65 20 75 73 65 64 20 61 73 20 61 6e 20 | omplex.blocks.can.be.used.as.an. |
| 13020 | 65 78 70 72 65 73 73 69 6f 6e 20 69 6e 20 74 68 65 20 6c 6f 6f 70 20 63 6f 6e 74 69 6e 75 65 0a | expression.in.the.loop.continue. |
| 13040 | 20 20 20 20 2f 2f 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a 20 20 20 20 76 61 72 20 69 31 3a 20 75 | ....//.expression......var.i1:.u |
| 13060 | 73 69 7a 65 20 3d 20 31 3b 0a 20 20 20 20 76 61 72 20 6a 31 3a 20 75 73 69 7a 65 20 3d 20 31 3b | size.=.1;.....var.j1:.usize.=.1; |
| 13080 | 0a 20 20 20 20 77 68 69 6c 65 20 28 69 31 20 2a 20 6a 31 20 26 6c 74 3b 20 32 30 30 30 29 20 3a | .....while.(i1.*.j1.<.2000).: |
| 130a0 | 20 28 7b 20 69 31 20 2a 3d 20 32 3b 20 6a 31 20 2a 3d 20 33 3b 20 7d 29 20 7b 0a 20 20 20 20 20 | .({.i1.*=.2;.j1.*=.3;.}).{...... |
| 130c0 | 20 20 20 63 6f 6e 73 74 20 6d 79 5f 69 6a 31 20 3d 20 69 31 20 2a 20 6a 31 3b 0a 20 20 20 20 20 | ...const.my_ij1.=.i1.*.j1;...... |
| 130e0 | 20 20 20 61 73 73 65 72 74 28 6d 79 5f 69 6a 31 20 26 6c 74 3b 20 32 30 30 30 29 3b 0a 20 20 20 | ...assert(my_ij1.<.2000);.... |
| 13100 | 20 7d 0a 7d 0a 0a 74 65 73 74 20 22 77 68 69 6c 65 20 65 6c 73 65 22 20 7b 0a 20 20 20 20 61 73 | .}.}..test."while.else".{.....as |
| 13120 | 73 65 72 74 28 72 61 6e 67 65 48 61 73 4e 75 6d 62 65 72 28 30 2c 20 31 30 2c 20 35 29 29 3b 0a | sert(rangeHasNumber(0,.10,.5));. |
| 13140 | 20 20 20 20 61 73 73 65 72 74 28 21 72 61 6e 67 65 48 61 73 4e 75 6d 62 65 72 28 30 2c 20 31 30 | ....assert(!rangeHasNumber(0,.10 |
| 13160 | 2c 20 31 35 29 29 3b 0a 7d 0a 0a 66 6e 20 72 61 6e 67 65 48 61 73 4e 75 6d 62 65 72 28 62 65 67 | ,.15));.}..fn.rangeHasNumber(beg |
| 13180 | 69 6e 3a 20 75 73 69 7a 65 2c 20 65 6e 64 3a 20 75 73 69 7a 65 2c 20 6e 75 6d 62 65 72 3a 20 75 | in:.usize,.end:.usize,.number:.u |
| 131a0 | 73 69 7a 65 29 20 2d 26 67 74 3b 20 62 6f 6f 6c 20 7b 0a 20 20 20 20 76 61 72 20 69 20 3d 20 62 | size).->.bool.{.....var.i.=.b |
| 131c0 | 65 67 69 6e 3b 0a 20 20 20 20 2f 2f 20 57 68 69 6c 65 20 6c 6f 6f 70 73 20 61 72 65 20 65 78 70 | egin;.....//.While.loops.are.exp |
| 131e0 | 72 65 73 73 69 6f 6e 73 2e 20 54 68 65 20 72 65 73 75 6c 74 20 6f 66 20 74 68 65 20 65 78 70 72 | ressions..The.result.of.the.expr |
| 13200 | 65 73 73 69 6f 6e 20 69 73 20 74 68 65 0a 20 20 20 20 2f 2f 20 72 65 73 75 6c 74 20 6f 66 20 74 | ession.is.the.....//.result.of.t |
| 13220 | 68 65 20 65 6c 73 65 20 63 6c 61 75 73 65 20 6f 66 20 61 20 77 68 69 6c 65 20 6c 6f 6f 70 2c 20 | he.else.clause.of.a.while.loop,. |
| 13240 | 77 68 69 63 68 20 69 73 20 65 78 65 63 75 74 65 64 20 77 68 65 6e 0a 20 20 20 20 2f 2f 20 74 68 | which.is.executed.when.....//.th |
| 13260 | 65 20 63 6f 6e 64 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 77 68 69 6c 65 20 6c 6f 6f 70 20 69 73 | e.condition.of.the.while.loop.is |
| 13280 | 20 74 65 73 74 65 64 20 61 73 20 66 61 6c 73 65 2e 0a 20 20 20 20 72 65 74 75 72 6e 20 77 68 69 | .tested.as.false......return.whi |
| 132a0 | 6c 65 20 28 69 20 26 6c 74 3b 20 65 6e 64 29 20 3a 20 28 69 20 2b 3d 20 31 29 20 7b 0a 20 20 20 | le.(i.<.end).:.(i.+=.1).{.... |
| 132c0 | 20 20 20 20 20 69 66 20 28 69 20 3d 3d 20 6e 75 6d 62 65 72 29 20 7b 0a 20 20 20 20 20 20 20 20 | .....if.(i.==.number).{......... |
| 132e0 | 20 20 20 20 2f 2f 20 62 72 65 61 6b 20 65 78 70 72 65 73 73 69 6f 6e 73 2c 20 6c 69 6b 65 20 72 | ....//.break.expressions,.like.r |
| 13300 | 65 74 75 72 6e 20 65 78 70 72 65 73 73 69 6f 6e 73 2c 20 61 63 63 65 70 74 20 61 20 76 61 6c 75 | eturn.expressions,.accept.a.valu |
| 13320 | 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 70 61 72 61 6d 65 74 65 72 2e 20 54 68 69 73 | e.............//.parameter..This |
| 13340 | 20 69 73 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 74 68 65 20 77 68 69 6c 65 20 65 78 70 72 | .is.the.result.of.the.while.expr |
| 13360 | 65 73 73 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 57 68 65 6e 20 79 6f 75 20 | ession..............//.When.you. |
| 13380 | 62 72 65 61 6b 20 66 72 6f 6d 20 61 20 77 68 69 6c 65 20 6c 6f 6f 70 2c 20 74 68 65 20 65 6c 73 | break.from.a.while.loop,.the.els |
| 133a0 | 65 20 62 72 61 6e 63 68 20 69 73 20 6e 6f 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 65 | e.branch.is.not.............//.e |
| 133c0 | 76 61 6c 75 61 74 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 20 74 72 75 65 | valuated..............break.true |
| 133e0 | 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 | ;.........}.....}.else.{........ |
| 13400 | 20 66 61 6c 73 65 0a 20 20 20 20 7d 0a 7d 0a 0a 74 65 73 74 20 22 77 68 69 6c 65 20 6e 75 6c 6c | .false.....}.}..test."while.null |
| 13420 | 20 63 61 70 74 75 72 65 22 20 7b 0a 20 20 20 20 2f 2f 20 4a 75 73 74 20 6c 69 6b 65 20 69 66 20 | .capture".{.....//.Just.like.if. |
| 13440 | 65 78 70 72 65 73 73 69 6f 6e 73 2c 20 77 68 69 6c 65 20 6c 6f 6f 70 73 20 63 61 6e 20 74 61 6b | expressions,.while.loops.can.tak |
| 13460 | 65 20 61 20 6e 75 6c 6c 61 62 6c 65 20 61 73 20 74 68 65 0a 20 20 20 20 2f 2f 20 63 6f 6e 64 69 | e.a.nullable.as.the.....//.condi |
| 13480 | 74 69 6f 6e 20 61 6e 64 20 63 61 70 74 75 72 65 20 74 68 65 20 70 61 79 6c 6f 61 64 2e 20 57 68 | tion.and.capture.the.payload..Wh |
| 134a0 | 65 6e 20 6e 75 6c 6c 20 69 73 20 65 6e 63 6f 75 6e 74 65 72 65 64 20 74 68 65 20 6c 6f 6f 70 0a | en.null.is.encountered.the.loop. |
| 134c0 | 20 20 20 20 2f 2f 20 65 78 69 74 73 2e 0a 20 20 20 20 76 61 72 20 73 75 6d 31 3a 20 75 33 32 20 | ....//.exits......var.sum1:.u32. |
| 134e0 | 3d 20 30 3b 0a 20 20 20 20 6e 75 6d 62 65 72 73 5f 6c 65 66 74 20 3d 20 33 3b 0a 20 20 20 20 77 | =.0;.....numbers_left.=.3;.....w |
| 13500 | 68 69 6c 65 20 28 65 76 65 6e 74 75 61 6c 6c 79 4e 75 6c 6c 53 65 71 75 65 6e 63 65 28 29 29 20 | hile.(eventuallyNullSequence()). |
| 13520 | 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 73 75 6d 31 20 2b 3d 20 76 61 6c 75 65 3b | |value|.{.........sum1.+=.value; |
| 13540 | 0a 20 20 20 20 7d 0a 20 20 20 20 61 73 73 65 72 74 28 73 75 6d 31 20 3d 3d 20 33 29 3b 0a 0a 20 | .....}.....assert(sum1.==.3);... |
| 13560 | 20 20 20 2f 2f 20 54 68 65 20 65 6c 73 65 20 62 72 61 6e 63 68 20 69 73 20 61 6c 6c 6f 77 65 64 | ...//.The.else.branch.is.allowed |
| 13580 | 20 6f 6e 20 6e 75 6c 6c 61 62 6c 65 20 69 74 65 72 61 74 69 6f 6e 2e 20 49 6e 20 74 68 69 73 20 | .on.nullable.iteration..In.this. |
| 135a0 | 63 61 73 65 2c 20 69 74 20 77 69 6c 6c 0a 20 20 20 20 2f 2f 20 62 65 20 65 78 65 63 75 74 65 64 | case,.it.will.....//.be.executed |
| 135c0 | 20 6f 6e 20 74 68 65 20 66 69 72 73 74 20 6e 75 6c 6c 20 76 61 6c 75 65 20 65 6e 63 6f 75 6e 74 | .on.the.first.null.value.encount |
| 135e0 | 65 72 65 64 2e 0a 20 20 20 20 76 61 72 20 73 75 6d 32 3a 20 75 33 32 20 3d 20 30 3b 0a 20 20 20 | ered......var.sum2:.u32.=.0;.... |
| 13600 | 20 6e 75 6d 62 65 72 73 5f 6c 65 66 74 20 3d 20 33 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 65 76 | .numbers_left.=.3;.....while.(ev |
| 13620 | 65 6e 74 75 61 6c 6c 79 4e 75 6c 6c 53 65 71 75 65 6e 63 65 28 29 29 20 7c 76 61 6c 75 65 7c 20 | entuallyNullSequence()).|value|. |
| 13640 | 7b 0a 20 20 20 20 20 20 20 20 73 75 6d 32 20 2b 3d 20 76 61 6c 75 65 3b 0a 20 20 20 20 7d 20 65 | {.........sum2.+=.value;.....}.e |
| 13660 | 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 73 75 6d 31 20 3d 3d 20 33 29 3b | lse.{.........assert(sum1.==.3); |
| 13680 | 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 4a 75 73 74 20 6c 69 6b 65 20 69 66 20 65 78 70 72 | .....}......//.Just.like.if.expr |
| 136a0 | 65 73 73 69 6f 6e 73 2c 20 77 68 69 6c 65 20 6c 6f 6f 70 73 20 63 61 6e 20 61 6c 73 6f 20 74 61 | essions,.while.loops.can.also.ta |
| 136c0 | 6b 65 20 61 6e 20 65 72 72 6f 72 20 75 6e 69 6f 6e 20 61 73 0a 20 20 20 20 2f 2f 20 74 68 65 20 | ke.an.error.union.as.....//.the. |
| 136e0 | 63 6f 6e 64 69 74 69 6f 6e 20 61 6e 64 20 63 61 70 74 75 72 65 20 74 68 65 20 70 61 79 6c 6f 61 | condition.and.capture.the.payloa |
| 13700 | 64 20 6f 72 20 74 68 65 20 65 72 72 6f 72 20 63 6f 64 65 2e 20 57 68 65 6e 20 74 68 65 0a 20 20 | d.or.the.error.code..When.the... |
| 13720 | 20 20 2f 2f 20 63 6f 6e 64 69 74 69 6f 6e 20 72 65 73 75 6c 74 73 20 69 6e 20 61 6e 20 65 72 72 | ..//.condition.results.in.an.err |
| 13740 | 6f 72 20 63 6f 64 65 20 74 68 65 20 65 6c 73 65 20 62 72 61 6e 63 68 20 69 73 20 65 76 61 6c 75 | or.code.the.else.branch.is.evalu |
| 13760 | 61 74 65 64 20 61 6e 64 0a 20 20 20 20 2f 2f 20 74 68 65 20 6c 6f 6f 70 20 69 73 20 66 69 6e 69 | ated.and.....//.the.loop.is.fini |
| 13780 | 73 68 65 64 2e 0a 20 20 20 20 76 61 72 20 73 75 6d 33 3a 20 75 33 32 20 3d 20 30 3b 0a 20 20 20 | shed......var.sum3:.u32.=.0;.... |
| 137a0 | 20 6e 75 6d 62 65 72 73 5f 6c 65 66 74 20 3d 20 33 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 65 76 | .numbers_left.=.3;.....while.(ev |
| 137c0 | 65 6e 74 75 61 6c 6c 79 45 72 72 6f 72 53 65 71 75 65 6e 63 65 28 29 29 20 7c 76 61 6c 75 65 7c | entuallyErrorSequence()).|value| |
| 137e0 | 20 7b 0a 20 20 20 20 20 20 20 20 73 75 6d 33 20 2b 3d 20 76 61 6c 75 65 3b 0a 20 20 20 20 7d 20 | .{.........sum3.+=.value;.....}. |
| 13800 | 65 6c 73 65 20 7c 65 72 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 65 72 72 20 | else.|err|.{.........assert(err. |
| 13820 | 3d 3d 20 65 72 72 6f 72 2e 52 65 61 63 68 65 64 5a 65 72 6f 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a | ==.error.ReachedZero);.....}.}.. |
| 13840 | 76 61 72 20 6e 75 6d 62 65 72 73 5f 6c 65 66 74 3a 20 75 33 32 20 3d 20 75 6e 64 65 66 69 6e 65 | var.numbers_left:.u32.=.undefine |
| 13860 | 64 3b 0a 66 6e 20 65 76 65 6e 74 75 61 6c 6c 79 4e 75 6c 6c 53 65 71 75 65 6e 63 65 28 29 20 2d | d;.fn.eventuallyNullSequence().- |
| 13880 | 26 67 74 3b 20 3f 75 33 32 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 69 66 20 28 6e 75 6d 62 65 | >.?u32.{.....return.if.(numbe |
| 138a0 | 72 73 5f 6c 65 66 74 20 3d 3d 20 30 29 20 7b 0a 20 20 20 20 20 20 20 20 6e 75 6c 6c 0a 20 20 20 | rs_left.==.0).{.........null.... |
| 138c0 | 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 6e 75 6d 62 65 72 73 5f 6c 65 66 74 20 2d | .}.else.{.........numbers_left.- |
| 138e0 | 3d 20 31 3b 0a 20 20 20 20 20 20 20 20 6e 75 6d 62 65 72 73 5f 6c 65 66 74 0a 20 20 20 20 7d 0a | =.1;.........numbers_left.....}. |
| 13900 | 7d 0a 65 72 72 6f 72 20 52 65 61 63 68 65 64 5a 65 72 6f 3b 0a 66 6e 20 65 76 65 6e 74 75 61 6c | }.error.ReachedZero;.fn.eventual |
| 13920 | 6c 79 45 72 72 6f 72 53 65 71 75 65 6e 63 65 28 29 20 2d 26 67 74 3b 20 25 75 33 32 20 7b 0a 20 | lyErrorSequence().->.%u32.{.. |
| 13940 | 20 20 20 72 65 74 75 72 6e 20 69 66 20 28 6e 75 6d 62 65 72 73 5f 6c 65 66 74 20 3d 3d 20 30 29 | ...return.if.(numbers_left.==.0) |
| 13960 | 20 7b 0a 20 20 20 20 20 20 20 20 65 72 72 6f 72 2e 52 65 61 63 68 65 64 5a 65 72 6f 0a 20 20 20 | .{.........error.ReachedZero.... |
| 13980 | 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 6e 75 6d 62 65 72 73 5f 6c 65 66 74 20 2d | .}.else.{.........numbers_left.- |
| 139a0 | 3d 20 31 3b 0a 20 20 20 20 20 20 20 20 6e 75 6d 62 65 72 73 5f 6c 65 66 74 0a 20 20 20 20 7d 0a | =.1;.........numbers_left.....}. |
| 139c0 | 7d 0a 0a 74 65 73 74 20 22 69 6e 6c 69 6e 65 20 77 68 69 6c 65 20 6c 6f 6f 70 22 20 7b 0a 20 20 | }..test."inline.while.loop".{... |
| 139e0 | 20 20 2f 2f 20 57 68 69 6c 65 20 6c 6f 6f 70 73 20 63 61 6e 20 62 65 20 69 6e 6c 69 6e 65 64 2e | ..//.While.loops.can.be.inlined. |
| 13a00 | 20 54 68 69 73 20 63 61 75 73 65 73 20 74 68 65 20 6c 6f 6f 70 20 74 6f 20 62 65 20 75 6e 72 6f | .This.causes.the.loop.to.be.unro |
| 13a20 | 6c 6c 65 64 2c 20 77 68 69 63 68 0a 20 20 20 20 2f 2f 20 61 6c 6c 6f 77 73 20 74 68 65 20 63 6f | lled,.which.....//.allows.the.co |
| 13a40 | 64 65 20 74 6f 20 64 6f 20 73 6f 6d 65 20 74 68 69 6e 67 73 20 77 68 69 63 68 20 6f 6e 6c 79 20 | de.to.do.some.things.which.only. |
| 13a60 | 77 6f 72 6b 20 61 74 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 2c 0a 20 20 20 20 2f 2f 20 73 75 63 | work.at.compile.time,.....//.suc |
| 13a80 | 68 20 61 73 20 75 73 65 20 74 79 70 65 73 20 61 73 20 66 69 72 73 74 20 63 6c 61 73 73 20 76 61 | h.as.use.types.as.first.class.va |
| 13aa0 | 6c 75 65 73 2e 0a 20 20 20 20 63 6f 6d 70 74 69 6d 65 20 76 61 72 20 69 20 3d 20 30 3b 0a 20 20 | lues......comptime.var.i.=.0;... |
| 13ac0 | 20 20 76 61 72 20 73 75 6d 3a 20 75 73 69 7a 65 20 3d 20 30 3b 0a 20 20 20 20 69 6e 6c 69 6e 65 | ..var.sum:.usize.=.0;.....inline |
| 13ae0 | 20 77 68 69 6c 65 20 28 69 20 26 6c 74 3b 20 33 29 20 3a 20 28 69 20 2b 3d 20 31 29 20 7b 0a 20 | .while.(i.<.3).:.(i.+=.1).{.. |
| 13b00 | 20 20 20 20 20 20 20 63 6f 6e 73 74 20 54 20 3d 20 73 77 69 74 63 68 20 28 69 29 20 7b 0a 20 20 | .......const.T.=.switch.(i).{... |
| 13b20 | 20 20 20 20 20 20 20 20 20 20 30 20 3d 26 67 74 3b 20 66 33 32 2c 0a 20 20 20 20 20 20 20 20 20 | ..........0.=>.f32,.......... |
| 13b40 | 20 20 20 31 20 3d 26 67 74 3b 20 69 38 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 32 20 3d 26 67 | ...1.=>.i8,.............2.=&g |
| 13b60 | 74 3b 20 62 6f 6f 6c 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 3d 26 67 74 3b 20 | t;.bool,.............else.=>. |
| 13b80 | 75 6e 72 65 61 63 68 61 62 6c 65 2c 0a 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 20 20 20 20 20 20 | unreachable,.........};......... |
| 13ba0 | 73 75 6d 20 2b 3d 20 74 79 70 65 4e 61 6d 65 4c 65 6e 67 74 68 28 54 29 3b 0a 20 20 20 20 7d 0a | sum.+=.typeNameLength(T);.....}. |
| 13bc0 | 20 20 20 20 61 73 73 65 72 74 28 73 75 6d 20 3d 3d 20 39 29 3b 0a 7d 0a 0a 66 6e 20 74 79 70 65 | ....assert(sum.==.9);.}..fn.type |
| 13be0 | 4e 61 6d 65 4c 65 6e 67 74 68 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 29 20 2d 26 67 | NameLength(comptime.T:.type).-&g |
| 13c00 | 74 3b 20 75 73 69 7a 65 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 40 74 79 70 65 4e 61 6d 65 28 | t;.usize.{.....return.@typeName( |
| 13c20 | 54 29 2e 6c 65 6e 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 | T).len;.}</code></pre>.......<pr |
| 13c40 | 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 77 68 69 6c 65 2e 7a | e><code.class="sh">$.zig.while.z |
| 13c60 | 69 67 0a 54 65 73 74 20 31 2f 38 20 77 68 69 6c 65 20 62 61 73 69 63 2e 2e 2e 4f 4b 0a 54 65 73 | ig.Test.1/8.while.basic...OK.Tes |
| 13c80 | 74 20 32 2f 38 20 77 68 69 6c 65 20 62 72 65 61 6b 2e 2e 2e 4f 4b 0a 54 65 73 74 20 33 2f 38 20 | t.2/8.while.break...OK.Test.3/8. |
| 13ca0 | 77 68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 2e 2e 2e 4f 4b 0a 54 65 73 74 20 34 2f 38 20 77 68 69 | while.continue...OK.Test.4/8.whi |
| 13cc0 | 6c 65 20 6c 6f 6f 70 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 65 78 70 72 65 73 73 69 6f 6e 2e | le.loop.continuation.expression. |
| 13ce0 | 2e 2e 4f 4b 0a 54 65 73 74 20 35 2f 38 20 77 68 69 6c 65 20 6c 6f 6f 70 20 63 6f 6e 74 69 6e 75 | ..OK.Test.5/8.while.loop.continu |
| 13d00 | 61 74 69 6f 6e 20 65 78 70 72 65 73 73 69 6f 6e 2c 20 6d 6f 72 65 20 63 6f 6d 70 6c 69 63 61 74 | ation.expression,.more.complicat |
| 13d20 | 65 64 2e 2e 2e 4f 4b 0a 54 65 73 74 20 36 2f 38 20 77 68 69 6c 65 20 65 6c 73 65 2e 2e 2e 4f 4b | ed...OK.Test.6/8.while.else...OK |
| 13d40 | 0a 54 65 73 74 20 37 2f 38 20 77 68 69 6c 65 20 6e 75 6c 6c 20 63 61 70 74 75 72 65 2e 2e 2e 4f | .Test.7/8.while.null.capture...O |
| 13d60 | 4b 0a 54 65 73 74 20 38 2f 38 20 69 6e 6c 69 6e 65 20 77 68 69 6c 65 20 6c 6f 6f 70 2e 2e 2e 4f | K.Test.8/8.inline.while.loop...O |
| 13d80 | 4b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f | K</code></pre>.......<p>See.also |
| 13da0 | 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 | :</p>.......<ul>.........<li><a. |
| 13dc0 | 68 72 65 66 3d 22 23 69 66 22 3e 69 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c | href="#if">if</a></li>.........< |
| 13de0 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6e 75 6c 6c 61 62 6c 65 73 22 3e 4e 75 6c 6c 61 62 6c 65 | li><a.href="#nullables">Nullable |
| 13e00 | 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 | s</a></li>.........<li><a.href=" |
| 13e20 | 23 65 72 72 6f 72 73 22 3e 45 72 72 6f 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | #errors">Errors</a></li>........ |
| 13e40 | 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d | .<li><a.href="#comptime">comptim |
| 13e60 | 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 | e</a></li>.........<li><a.href=" |
| 13e80 | 23 75 6e 72 65 61 63 68 61 62 6c 65 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 61 3e 3c 2f 6c | #unreachable">unreachable</a></l |
| 13ea0 | 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 66 6f 72 | i>.......</ul>.......<h2.id="for |
| 13ec0 | 22 3e 66 6f 72 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | ">for</h2>.......<pre><code.clas |
| 13ee0 | 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 22 | s="zig">const.assert.=.@import(" |
| 13f00 | 73 74 64 22 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 74 65 73 74 20 22 66 6f 72 20 62 | std").debug.assert;..test."for.b |
| 13f20 | 61 73 69 63 73 22 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 69 74 65 6d 73 20 3d 20 5b 5d 69 33 32 | asics".{.....const.items.=.[]i32 |
| 13f40 | 20 7b 20 34 2c 20 35 2c 20 33 2c 20 34 2c 20 30 20 7d 3b 0a 20 20 20 20 76 61 72 20 73 75 6d 3a | .{.4,.5,.3,.4,.0.};.....var.sum: |
| 13f60 | 20 69 33 32 20 3d 20 30 3b 0a 0a 20 20 20 20 2f 2f 20 46 6f 72 20 6c 6f 6f 70 73 20 69 74 65 72 | .i32.=.0;......//.For.loops.iter |
| 13f80 | 61 74 65 20 6f 76 65 72 20 73 6c 69 63 65 73 20 61 6e 64 20 61 72 72 61 79 73 2e 0a 20 20 20 20 | ate.over.slices.and.arrays...... |
| 13fa0 | 66 6f 72 20 28 69 74 65 6d 73 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f | for.(items).|value|.{.........// |
| 13fc0 | 20 42 72 65 61 6b 20 61 6e 64 20 63 6f 6e 74 69 6e 75 65 20 61 72 65 20 73 75 70 70 6f 72 74 65 | .Break.and.continue.are.supporte |
| 13fe0 | 64 2e 0a 20 20 20 20 20 20 20 20 69 66 20 28 76 61 6c 75 65 20 3d 3d 20 30 29 20 7b 0a 20 20 20 | d..........if.(value.==.0).{.... |
| 14000 | 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 | .........continue;.........}.... |
| 14020 | 20 20 20 20 20 73 75 6d 20 2b 3d 20 76 61 6c 75 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 61 73 73 | .....sum.+=.value;.....}.....ass |
| 14040 | 65 72 74 28 73 75 6d 20 3d 3d 20 31 36 29 3b 0a 0a 20 20 20 20 2f 2f 20 54 6f 20 69 74 65 72 61 | ert(sum.==.16);......//.To.itera |
| 14060 | 74 65 20 6f 76 65 72 20 61 20 70 6f 72 74 69 6f 6e 20 6f 66 20 61 20 73 6c 69 63 65 2c 20 72 65 | te.over.a.portion.of.a.slice,.re |
| 14080 | 73 6c 69 63 65 2e 0a 20 20 20 20 66 6f 72 20 28 69 74 65 6d 73 5b 30 2e 2e 31 5d 29 20 7c 76 61 | slice......for.(items[0..1]).|va |
| 140a0 | 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 73 75 6d 20 2b 3d 20 76 61 6c 75 65 3b 0a 20 20 20 | lue|.{.........sum.+=.value;.... |
| 140c0 | 20 7d 0a 20 20 20 20 61 73 73 65 72 74 28 73 75 6d 20 3d 3d 20 32 30 29 3b 0a 0a 20 20 20 20 2f | .}.....assert(sum.==.20);....../ |
| 140e0 | 2f 20 54 6f 20 61 63 63 65 73 73 20 74 68 65 20 69 6e 64 65 78 20 6f 66 20 69 74 65 72 61 74 69 | /.To.access.the.index.of.iterati |
| 14100 | 6f 6e 2c 20 73 70 65 63 69 66 79 20 61 20 73 65 63 6f 6e 64 20 63 61 70 74 75 72 65 20 76 61 6c | on,.specify.a.second.capture.val |
| 14120 | 75 65 2e 0a 20 20 20 20 2f 2f 20 54 68 69 73 20 69 73 20 7a 65 72 6f 2d 69 6e 64 65 78 65 64 2e | ue......//.This.is.zero-indexed. |
| 14140 | 0a 20 20 20 20 76 61 72 20 73 75 6d 32 3a 20 69 33 32 20 3d 20 30 3b 0a 20 20 20 20 66 6f 72 20 | .....var.sum2:.i32.=.0;.....for. |
| 14160 | 28 69 74 65 6d 73 29 20 7c 76 61 6c 75 65 2c 20 69 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 | (items).|value,.i|.{.........ass |
| 14180 | 65 72 74 28 40 74 79 70 65 4f 66 28 69 29 20 3d 3d 20 75 73 69 7a 65 29 3b 0a 20 20 20 20 20 20 | ert(@typeOf(i).==.usize);....... |
| 141a0 | 20 20 73 75 6d 32 20 2b 3d 20 69 33 32 28 69 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 61 73 73 65 | ..sum2.+=.i32(i);.....}.....asse |
| 141c0 | 72 74 28 73 75 6d 32 20 3d 3d 20 31 30 29 3b 0a 7d 0a 0a 74 65 73 74 20 22 66 6f 72 20 72 65 66 | rt(sum2.==.10);.}..test."for.ref |
| 141e0 | 65 72 65 6e 63 65 22 20 7b 0a 20 20 20 20 76 61 72 20 69 74 65 6d 73 20 3d 20 5b 5d 69 33 32 20 | erence".{.....var.items.=.[]i32. |
| 14200 | 7b 20 33 2c 20 34 2c 20 32 20 7d 3b 0a 0a 20 20 20 20 2f 2f 20 49 74 65 72 61 74 65 20 6f 76 65 | {.3,.4,.2.};......//.Iterate.ove |
| 14220 | 72 20 74 68 65 20 73 6c 69 63 65 20 62 79 20 72 65 66 65 72 65 6e 63 65 20 62 79 0a 20 20 20 20 | r.the.slice.by.reference.by..... |
| 14240 | 2f 2f 20 73 70 65 63 69 66 79 69 6e 67 20 74 68 61 74 20 74 68 65 20 63 61 70 74 75 72 65 20 76 | //.specifying.that.the.capture.v |
| 14260 | 61 6c 75 65 20 69 73 20 61 20 70 6f 69 6e 74 65 72 2e 0a 20 20 20 20 66 6f 72 20 28 69 74 65 6d | alue.is.a.pointer......for.(item |
| 14280 | 73 29 20 7c 2a 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 2a 76 61 6c 75 65 20 2b 3d 20 | s).|*value|.{.........*value.+=. |
| 142a0 | 31 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 61 73 73 65 72 74 28 69 74 65 6d 73 5b 30 5d 20 3d 3d | 1;.....}......assert(items[0].== |
| 142c0 | 20 34 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 69 74 65 6d 73 5b 31 5d 20 3d 3d 20 35 29 3b 0a | .4);.....assert(items[1].==.5);. |
| 142e0 | 20 20 20 20 61 73 73 65 72 74 28 69 74 65 6d 73 5b 32 5d 20 3d 3d 20 33 29 3b 0a 7d 0a 0a 74 65 | ....assert(items[2].==.3);.}..te |
| 14300 | 73 74 20 22 66 6f 72 20 65 6c 73 65 22 20 7b 0a 20 20 20 20 2f 2f 20 46 6f 72 20 61 6c 6c 6f 77 | st."for.else".{.....//.For.allow |
| 14320 | 73 20 61 6e 20 65 6c 73 65 20 61 74 74 61 63 68 65 64 20 74 6f 20 69 74 2c 20 74 68 65 20 73 61 | s.an.else.attached.to.it,.the.sa |
| 14340 | 6d 65 20 61 73 20 61 20 77 68 69 6c 65 20 6c 6f 6f 70 2e 0a 20 20 20 20 76 61 72 20 69 74 65 6d | me.as.a.while.loop......var.item |
| 14360 | 73 20 3d 20 5b 5d 3f 69 33 32 20 7b 20 33 2c 20 34 2c 20 6e 75 6c 6c 2c 20 35 20 7d 3b 0a 0a 20 | s.=.[]?i32.{.3,.4,.null,.5.};... |
| 14380 | 20 20 20 2f 2f 20 46 6f 72 20 6c 6f 6f 70 73 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 75 73 65 64 | ...//.For.loops.can.also.be.used |
| 143a0 | 20 61 73 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 0a 20 20 20 20 76 61 72 20 73 75 6d 3a 20 69 33 | .as.expressions......var.sum:.i3 |
| 143c0 | 32 20 3d 20 30 3b 0a 20 20 20 20 63 6f 6e 73 74 20 72 65 73 75 6c 74 20 3d 20 66 6f 72 20 28 69 | 2.=.0;.....const.result.=.for.(i |
| 143e0 | 74 65 6d 73 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 76 61 6c 75 | tems).|value|.{.........if.(valu |
| 14400 | 65 20 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 20 39 | e.==.null).{.............break.9 |
| 14420 | 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 | ;.........}.else.{.............s |
| 14440 | 75 6d 20 2b 3d 20 3f 3f 76 61 6c 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 20 65 | um.+=.??value;.........}.....}.e |
| 14460 | 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 73 75 6d 20 3d 3d 20 37 29 3b 0a | lse.{.........assert(sum.==.7);. |
| 14480 | 20 20 20 20 20 20 20 20 73 75 6d 0a 20 20 20 20 7d 3b 0a 7d 0a 0a 0a 74 65 73 74 20 22 69 6e 6c | ........sum.....};.}...test."inl |
| 144a0 | 69 6e 65 20 66 6f 72 20 6c 6f 6f 70 22 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 6e 75 6d 73 20 3d | ine.for.loop".{.....const.nums.= |
| 144c0 | 20 5b 5d 69 33 32 7b 32 2c 20 34 2c 20 36 7d 3b 0a 20 20 20 20 2f 2f 20 46 6f 72 20 6c 6f 6f 70 | .[]i32{2,.4,.6};.....//.For.loop |
| 144e0 | 73 20 63 61 6e 20 62 65 20 69 6e 6c 69 6e 65 64 2e 20 54 68 69 73 20 63 61 75 73 65 73 20 74 68 | s.can.be.inlined..This.causes.th |
| 14500 | 65 20 6c 6f 6f 70 20 74 6f 20 62 65 20 75 6e 72 6f 6c 6c 65 64 2c 20 77 68 69 63 68 0a 20 20 20 | e.loop.to.be.unrolled,.which.... |
| 14520 | 20 2f 2f 20 61 6c 6c 6f 77 73 20 74 68 65 20 63 6f 64 65 20 74 6f 20 64 6f 20 73 6f 6d 65 20 74 | .//.allows.the.code.to.do.some.t |
| 14540 | 68 69 6e 67 73 20 77 68 69 63 68 20 6f 6e 6c 79 20 77 6f 72 6b 20 61 74 20 63 6f 6d 70 69 6c 65 | hings.which.only.work.at.compile |
| 14560 | 20 74 69 6d 65 2c 0a 20 20 20 20 2f 2f 20 73 75 63 68 20 61 73 20 75 73 65 20 74 79 70 65 73 20 | .time,.....//.such.as.use.types. |
| 14580 | 61 73 20 66 69 72 73 74 20 63 6c 61 73 73 20 76 61 6c 75 65 73 2e 0a 20 20 20 20 2f 2f 20 54 68 | as.first.class.values......//.Th |
| 145a0 | 65 20 63 61 70 74 75 72 65 20 76 61 6c 75 65 20 61 6e 64 20 69 74 65 72 61 74 6f 72 20 76 61 6c | e.capture.value.and.iterator.val |
| 145c0 | 75 65 20 6f 66 20 69 6e 6c 69 6e 65 64 20 66 6f 72 20 6c 6f 6f 70 73 20 61 72 65 0a 20 20 20 20 | ue.of.inlined.for.loops.are..... |
| 145e0 | 2f 2f 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6b 6e 6f 77 6e 2e 0a 20 20 20 20 76 61 72 20 73 | //.compile-time.known......var.s |
| 14600 | 75 6d 3a 20 75 73 69 7a 65 20 3d 20 30 3b 0a 20 20 20 20 69 6e 6c 69 6e 65 20 66 6f 72 20 28 6e | um:.usize.=.0;.....inline.for.(n |
| 14620 | 75 6d 73 29 20 7c 69 7c 20 7b 0a 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 54 20 3d 20 73 77 69 | ums).|i|.{.........const.T.=.swi |
| 14640 | 74 63 68 20 28 69 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 32 20 3d 26 67 74 3b 20 66 33 | tch.(i).{.............2.=>.f3 |
| 14660 | 32 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 34 20 3d 26 67 74 3b 20 69 38 2c 0a 20 20 20 20 20 | 2,.............4.=>.i8,...... |
| 14680 | 20 20 20 20 20 20 20 36 20 3d 26 67 74 3b 20 62 6f 6f 6c 2c 0a 20 20 20 20 20 20 20 20 20 20 20 | .......6.=>.bool,............ |
| 146a0 | 20 65 6c 73 65 20 3d 26 67 74 3b 20 75 6e 72 65 61 63 68 61 62 6c 65 2c 0a 20 20 20 20 20 20 20 | .else.=>.unreachable,........ |
| 146c0 | 20 7d 3b 0a 20 20 20 20 20 20 20 20 73 75 6d 20 2b 3d 20 74 79 70 65 4e 61 6d 65 4c 65 6e 67 74 | .};.........sum.+=.typeNameLengt |
| 146e0 | 68 28 54 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 61 73 73 65 72 74 28 73 75 6d 20 3d 3d 20 39 29 | h(T);.....}.....assert(sum.==.9) |
| 14700 | 3b 0a 7d 0a 0a 66 6e 20 74 79 70 65 4e 61 6d 65 4c 65 6e 67 74 68 28 63 6f 6d 70 74 69 6d 65 20 | ;.}..fn.typeNameLength(comptime. |
| 14720 | 54 3a 20 74 79 70 65 29 20 2d 26 67 74 3b 20 75 73 69 7a 65 20 7b 0a 20 20 20 20 72 65 74 75 72 | T:.type).->.usize.{.....retur |
| 14740 | 6e 20 40 74 79 70 65 4e 61 6d 65 28 54 29 2e 6c 65 6e 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 | n.@typeName(T).len;.}</code></pr |
| 14760 | 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 | e>.......<pre><code.class="sh">$ |
| 14780 | 20 7a 69 67 20 74 65 73 74 20 66 6f 72 2e 7a 69 67 0a 54 65 73 74 20 31 2f 34 20 66 6f 72 20 62 | .zig.test.for.zig.Test.1/4.for.b |
| 147a0 | 61 73 69 63 73 2e 2e 2e 4f 4b 0a 54 65 73 74 20 32 2f 34 20 66 6f 72 20 72 65 66 65 72 65 6e 63 | asics...OK.Test.2/4.for.referenc |
| 147c0 | 65 2e 2e 2e 4f 4b 0a 54 65 73 74 20 33 2f 34 20 66 6f 72 20 65 6c 73 65 2e 2e 2e 4f 4b 0a 54 65 | e...OK.Test.3/4.for.else...OK.Te |
| 147e0 | 73 74 20 34 2f 34 20 69 6e 6c 69 6e 65 20 66 6f 72 20 6c 6f 6f 70 2e 2e 2e 4f 4b 3c 2f 63 6f 64 | st.4/4.inline.for.loop...OK</cod |
| 14800 | 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a | e></pre>.......<p>See.also:</p>. |
| 14820 | 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 | ......<ul>.........<li><a.href=" |
| 14840 | 23 77 68 69 6c 65 22 3e 77 68 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c | #while">while</a></li>.........< |
| 14860 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c | li><a.href="#comptime">comptime< |
| 14880 | 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 61 | /a></li>.........<li><a.href="#a |
| 148a0 | 72 72 61 79 73 22 3e 41 72 72 61 79 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c | rrays">Arrays</a></li>.........< |
| 148c0 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 6c 69 63 65 73 22 3e 53 6c 69 63 65 73 3c 2f 61 3e 3c | li><a.href="#slices">Slices</a>< |
| 148e0 | 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 69 | /li>.......</ul>.......<h2.id="i |
| 14900 | 66 22 3e 69 66 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | f">if</h2>.......<pre><code.clas |
| 14920 | 73 3d 22 7a 69 67 22 3e 2f 2f 20 49 66 20 65 78 70 72 65 73 73 69 6f 6e 73 20 68 61 76 65 20 74 | s="zig">//.If.expressions.have.t |
| 14940 | 68 72 65 65 20 75 73 65 73 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 | hree.uses,.corresponding.to.the. |
| 14960 | 74 68 72 65 65 20 74 79 70 65 73 3a 0a 2f 2f 20 2a 20 62 6f 6f 6c 0a 2f 2f 20 2a 20 3f 54 0a 2f | three.types:.//.*.bool.//.*.?T./ |
| 14980 | 2f 20 2a 20 25 54 0a 0a 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 22 | /.*.%T..const.assert.=.@import(" |
| 149a0 | 73 74 64 22 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 74 65 73 74 20 22 69 66 20 62 6f | std").debug.assert;..test."if.bo |
| 149c0 | 6f 6c 65 61 6e 22 20 7b 0a 20 20 20 20 2f 2f 20 49 66 20 65 78 70 72 65 73 73 69 6f 6e 73 20 74 | olean".{.....//.If.expressions.t |
| 149e0 | 65 73 74 20 62 6f 6f 6c 65 61 6e 20 63 6f 6e 64 69 74 69 6f 6e 73 2e 0a 20 20 20 20 63 6f 6e 73 | est.boolean.conditions......cons |
| 14a00 | 74 20 61 3a 20 75 33 32 20 3d 20 35 3b 0a 20 20 20 20 63 6f 6e 73 74 20 62 3a 20 75 33 32 20 3d | t.a:.u32.=.5;.....const.b:.u32.= |
| 14a20 | 20 34 3b 0a 20 20 20 20 69 66 20 28 61 20 21 3d 20 62 29 20 7b 0a 20 20 20 20 20 20 20 20 61 73 | .4;.....if.(a.!=.b).{.........as |
| 14a40 | 73 65 72 74 28 74 72 75 65 29 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 61 20 3d 3d 20 | sert(true);.....}.else.if.(a.==. |
| 14a60 | 39 29 20 7b 0a 20 20 20 20 20 20 20 20 75 6e 72 65 61 63 68 61 62 6c 65 0a 20 20 20 20 7d 20 65 | 9).{.........unreachable.....}.e |
| 14a80 | 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 75 6e 72 65 61 63 68 61 62 6c 65 0a 20 20 20 20 7d 0a | lse.{.........unreachable.....}. |
| 14aa0 | 0a 20 20 20 20 2f 2f 20 49 66 20 65 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 20 75 73 65 64 20 | .....//.If.expressions.are.used. |
| 14ac0 | 69 6e 73 74 65 61 64 20 6f 66 20 61 20 74 65 72 6e 61 72 79 20 65 78 70 72 65 73 73 69 6f 6e 2e | instead.of.a.ternary.expression. |
| 14ae0 | 0a 20 20 20 20 63 6f 6e 73 74 20 72 65 73 75 6c 74 20 3d 20 69 66 20 28 61 20 21 3d 20 62 29 20 | .....const.result.=.if.(a.!=.b). |
| 14b00 | 34 37 20 65 6c 73 65 20 33 30 38 39 3b 0a 20 20 20 20 61 73 73 65 72 74 28 72 65 73 75 6c 74 20 | 47.else.3089;.....assert(result. |
| 14b20 | 3d 3d 20 34 37 29 3b 0a 7d 0a 0a 74 65 73 74 20 22 69 66 20 6e 75 6c 6c 61 62 6c 65 22 20 7b 0a | ==.47);.}..test."if.nullable".{. |
| 14b40 | 20 20 20 20 2f 2f 20 49 66 20 65 78 70 72 65 73 73 69 6f 6e 73 20 74 65 73 74 20 66 6f 72 20 6e | ....//.If.expressions.test.for.n |
| 14b60 | 75 6c 6c 2e 0a 0a 20 20 20 20 63 6f 6e 73 74 20 61 3a 20 3f 75 33 32 20 3d 20 30 3b 0a 20 20 20 | ull.......const.a:.?u32.=.0;.... |
| 14b80 | 20 69 66 20 28 61 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 | .if.(a).|value|.{.........assert |
| 14ba0 | 28 76 61 6c 75 65 20 3d 3d 20 30 29 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 | (value.==.0);.....}.else.{...... |
| 14bc0 | 20 20 20 75 6e 72 65 61 63 68 61 62 6c 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 63 6f 6e 73 74 | ...unreachable;.....}......const |
| 14be0 | 20 62 3a 20 3f 75 33 32 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 69 66 20 28 62 29 20 7c 76 61 6c | .b:.?u32.=.null;.....if.(b).|val |
| 14c00 | 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 75 6e 72 65 61 63 68 61 62 6c 65 3b 0a 20 20 20 20 7d | ue|.{.........unreachable;.....} |
| 14c20 | 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 74 72 75 65 29 3b 0a 20 20 | .else.{.........assert(true);... |
| 14c40 | 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 54 68 65 20 65 6c 73 65 20 69 73 20 6e 6f 74 20 72 65 71 75 | ..}......//.The.else.is.not.requ |
| 14c60 | 69 72 65 64 2e 0a 20 20 20 20 69 66 20 28 61 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 | ired......if.(a).|value|.{...... |
| 14c80 | 20 20 20 61 73 73 65 72 74 28 76 61 6c 75 65 20 3d 3d 20 30 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 | ...assert(value.==.0);.....}.... |
| 14ca0 | 20 20 2f 2f 20 54 6f 20 74 65 73 74 20 61 67 61 69 6e 73 74 20 6e 75 6c 6c 20 6f 6e 6c 79 2c 20 | ..//.To.test.against.null.only,. |
| 14cc0 | 75 73 65 20 74 68 65 20 62 69 6e 61 72 79 20 65 71 75 61 6c 69 74 79 20 6f 70 65 72 61 74 6f 72 | use.the.binary.equality.operator |
| 14ce0 | 2e 0a 20 20 20 20 69 66 20 28 62 20 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 61 | ......if.(b.==.null).{.........a |
| 14d00 | 73 73 65 72 74 28 74 72 75 65 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 41 63 63 65 73 | ssert(true);.....}......//.Acces |
| 14d20 | 73 20 74 68 65 20 76 61 6c 75 65 20 62 79 20 72 65 66 65 72 65 6e 63 65 20 75 73 69 6e 67 20 61 | s.the.value.by.reference.using.a |
| 14d40 | 20 70 6f 69 6e 74 65 72 20 63 61 70 74 75 72 65 2e 0a 20 20 20 20 76 61 72 20 63 3a 20 3f 75 33 | .pointer.capture......var.c:.?u3 |
| 14d60 | 32 20 3d 20 33 3b 0a 20 20 20 20 69 66 20 28 63 29 20 7c 2a 76 61 6c 75 65 7c 20 7b 0a 20 20 20 | 2.=.3;.....if.(c).|*value|.{.... |
| 14d80 | 20 20 20 20 20 2a 76 61 6c 75 65 20 3d 20 32 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 28 | .....*value.=.2;.....}......if.( |
| 14da0 | 63 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 76 61 6c 75 | c).|value|.{.........assert(valu |
| 14dc0 | 65 20 3d 3d 20 32 29 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 75 6e | e.==.2);.....}.else.{.........un |
| 14de0 | 72 65 61 63 68 61 62 6c 65 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 65 72 72 6f 72 20 42 61 64 56 61 6c | reachable;.....}.}..error.BadVal |
| 14e00 | 75 65 3b 0a 65 72 72 6f 72 20 4c 65 73 73 42 61 64 56 61 6c 75 65 3b 0a 74 65 73 74 20 22 69 66 | ue;.error.LessBadValue;.test."if |
| 14e20 | 20 65 72 72 6f 72 20 75 6e 69 6f 6e 22 20 7b 0a 20 20 20 20 2f 2f 20 49 66 20 65 78 70 72 65 73 | .error.union".{.....//.If.expres |
| 14e40 | 73 69 6f 6e 73 20 74 65 73 74 20 66 6f 72 20 65 72 72 6f 72 73 2e 0a 20 20 20 20 2f 2f 20 4e 6f | sions.test.for.errors......//.No |
| 14e60 | 74 65 20 74 68 65 20 7c 65 72 72 7c 20 63 61 70 74 75 72 65 20 6f 6e 20 74 68 65 20 65 6c 73 65 | te.the.|err|.capture.on.the.else |
| 14e80 | 2e 0a 0a 20 20 20 20 63 6f 6e 73 74 20 61 3a 20 25 75 33 32 20 3d 20 30 3b 0a 20 20 20 20 69 66 | .......const.a:.%u32.=.0;.....if |
| 14ea0 | 20 28 61 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 76 61 | .(a).|value|.{.........assert(va |
| 14ec0 | 6c 75 65 20 3d 3d 20 30 29 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7c 65 72 72 7c 20 7b 0a 20 20 | lue.==.0);.....}.else.|err|.{... |
| 14ee0 | 20 20 20 20 20 20 75 6e 72 65 61 63 68 61 62 6c 65 0a 20 20 20 20 7d 0a 0a 20 20 20 20 63 6f 6e | ......unreachable.....}......con |
| 14f00 | 73 74 20 62 3a 20 25 75 33 32 20 3d 20 65 72 72 6f 72 2e 42 61 64 56 61 6c 75 65 3b 0a 20 20 20 | st.b:.%u32.=.error.BadValue;.... |
| 14f20 | 20 69 66 20 28 62 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 75 6e 72 65 61 63 | .if.(b).|value|.{.........unreac |
| 14f40 | 68 61 62 6c 65 0a 20 20 20 20 7d 20 65 6c 73 65 20 7c 65 72 72 7c 20 7b 0a 20 20 20 20 20 20 20 | hable.....}.else.|err|.{........ |
| 14f60 | 20 61 73 73 65 72 74 28 65 72 72 20 3d 3d 20 65 72 72 6f 72 2e 42 61 64 56 61 6c 75 65 29 3b 0a | .assert(err.==.error.BadValue);. |
| 14f80 | 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 54 68 65 20 65 6c 73 65 20 61 6e 64 20 7c 65 72 72 7c | ....}......//.The.else.and.|err| |
| 14fa0 | 20 63 61 70 74 75 72 65 20 69 73 20 73 74 72 69 63 74 6c 79 20 72 65 71 75 69 72 65 64 2e 0a 20 | .capture.is.strictly.required... |
| 14fc0 | 20 20 20 69 66 20 28 61 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 | ...if.(a).|value|.{.........asse |
| 14fe0 | 72 74 28 76 61 6c 75 65 20 3d 3d 20 30 29 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7c 5f 7c 20 7b | rt(value.==.0);.....}.else.|_|.{ |
| 15000 | 7d 0a 0a 20 20 20 20 2f 2f 20 54 6f 20 63 68 65 63 6b 20 6f 6e 6c 79 20 74 68 65 20 65 72 72 6f | }......//.To.check.only.the.erro |
| 15020 | 72 20 76 61 6c 75 65 2c 20 75 73 65 20 61 6e 20 65 6d 70 74 79 20 62 6c 6f 63 6b 20 65 78 70 72 | r.value,.use.an.empty.block.expr |
| 15040 | 65 73 73 69 6f 6e 2e 0a 20 20 20 20 69 66 20 28 62 29 20 7c 5f 7c 20 7b 7d 20 65 6c 73 65 20 7c | ession......if.(b).|_|.{}.else.| |
| 15060 | 65 72 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 65 72 72 20 3d 3d 20 65 72 72 | err|.{.........assert(err.==.err |
| 15080 | 6f 72 2e 42 61 64 56 61 6c 75 65 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 41 63 63 65 | or.BadValue);.....}......//.Acce |
| 150a0 | 73 73 20 74 68 65 20 76 61 6c 75 65 20 62 79 20 72 65 66 65 72 65 6e 63 65 20 75 73 69 6e 67 20 | ss.the.value.by.reference.using. |
| 150c0 | 61 20 70 6f 69 6e 74 65 72 20 63 61 70 74 75 72 65 2e 0a 20 20 20 20 76 61 72 20 63 3a 20 25 75 | a.pointer.capture......var.c:.%u |
| 150e0 | 33 32 20 3d 20 33 3b 0a 20 20 20 20 69 66 20 28 63 29 20 7c 2a 76 61 6c 75 65 7c 20 7b 0a 20 20 | 32.=.3;.....if.(c).|*value|.{... |
| 15100 | 20 20 20 20 20 20 2a 76 61 6c 75 65 20 3d 20 39 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7c 65 72 | ......*value.=.9;.....}.else.|er |
| 15120 | 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 75 6e 72 65 61 63 68 61 62 6c 65 0a 20 20 20 20 7d 0a 0a | r|.{.........unreachable.....}.. |
| 15140 | 20 20 20 20 69 66 20 28 63 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 | ....if.(c).|value|.{.........ass |
| 15160 | 65 72 74 28 76 61 6c 75 65 20 3d 3d 20 39 29 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7c 65 72 72 | ert(value.==.9);.....}.else.|err |
| 15180 | 7c 20 7b 0a 20 20 20 20 20 20 20 20 75 6e 72 65 61 63 68 61 62 6c 65 0a 20 20 20 20 7d 0a 7d 3c | |.{.........unreachable.....}.}< |
| 151a0 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | /code></pre>.......<pre><code.cl |
| 151c0 | 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 74 65 73 74 20 69 66 2e 7a 69 67 0a 54 65 73 74 20 | ass="sh">$.zig.test.if.zig.Test. |
| 151e0 | 31 2f 33 20 69 66 20 62 6f 6f 6c 65 61 6e 2e 2e 2e 4f 4b 0a 54 65 73 74 20 32 2f 33 20 69 66 20 | 1/3.if.boolean...OK.Test.2/3.if. |
| 15200 | 6e 75 6c 6c 61 62 6c 65 2e 2e 2e 4f 4b 0a 54 65 73 74 20 33 2f 33 20 69 66 20 65 72 72 6f 72 20 | nullable...OK.Test.3/3.if.error. |
| 15220 | 75 6e 69 6f 6e 2e 2e 2e 4f 4b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 | union...OK</code></pre>.......<p |
| 15240 | 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 | >See.also:</p>.......<ul>....... |
| 15260 | 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6e 75 6c 6c 61 62 6c 65 73 22 3e 4e 75 6c 6c 61 | ..<li><a.href="#nullables">Nulla |
| 15280 | 62 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 | bles</a></li>.........<li><a.hre |
| 152a0 | 66 3d 22 23 65 72 72 6f 72 73 22 3e 45 72 72 6f 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 | f="#errors">Errors</a></li>..... |
| 152c0 | 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 67 6f 74 6f 22 3e 67 6f 74 6f | ..</ul>.......<h2.id="goto">goto |
| 152e0 | 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 | </h2>.......<pre><code.class="zi |
| 15300 | 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 | g">const.assert.=.@import("std") |
| 15320 | 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 74 65 73 74 20 22 67 6f 74 6f 22 20 7b 0a 20 20 | .debug.assert;..test."goto".{... |
| 15340 | 20 20 76 61 72 20 76 61 6c 75 65 20 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 67 6f 74 6f 20 6c 61 | ..var.value.=.false;.....goto.la |
| 15360 | 62 65 6c 3b 0a 20 20 20 20 76 61 6c 75 65 20 3d 20 74 72 75 65 3b 0a 0a 6c 61 62 65 6c 3a 0a 20 | bel;.....value.=.true;..label:.. |
| 15380 | 20 20 20 61 73 73 65 72 74 28 76 61 6c 75 65 20 3d 3d 20 66 61 6c 73 65 29 3b 0a 7d 0a 3c 2f 63 | ...assert(value.==.false);.}.</c |
| 153a0 | 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | ode></pre>.......<pre><code.clas |
| 153c0 | 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 74 65 73 74 20 67 6f 74 6f 2e 7a 69 67 0a 54 65 73 74 20 | s="sh">$.zig.test.goto.zig.Test. |
| 153e0 | 31 2f 31 20 67 6f 74 6f 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 3c 70 3e 4e | 1/1.goto...OK.</code></pre>.<p>N |
| 15400 | 6f 74 65 20 74 68 61 74 20 74 68 65 72 65 20 61 72 65 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 | ote.that.there.are.<a.href="http |
| 15420 | 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 7a 69 67 2d 6c 61 6e 67 2f 7a 69 67 2f 69 73 73 75 | s://github.com/zig-lang/zig/issu |
| 15440 | 65 73 2f 33 34 36 22 3e 70 6c 61 6e 73 20 74 6f 20 72 65 6d 6f 76 65 20 67 6f 74 6f 3c 2f 61 3e | es/346">plans.to.remove.goto</a> |
| 15460 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 64 65 66 65 72 22 3e 64 65 66 65 72 3c | </p>.......<h2.id="defer">defer< |
| 15480 | 2f 68 32 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 | /h2>.......<pre><code.class="zig |
| 154a0 | 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e | ">const.assert.=.@import("std"). |
| 154c0 | 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 63 6f 6e 73 74 20 70 72 69 6e 74 66 20 3d 20 40 69 6d | debug.assert;.const.printf.=.@im |
| 154e0 | 70 6f 72 74 28 22 73 74 64 22 29 2e 69 6f 2e 73 74 64 6f 75 74 2e 70 72 69 6e 74 66 3b 0a 0a 2f | port("std").io.stdout.printf;../ |
| 15500 | 2f 20 64 65 66 65 72 20 77 69 6c 6c 20 65 78 65 63 75 74 65 20 61 6e 20 65 78 70 72 65 73 73 69 | /.defer.will.execute.an.expressi |
| 15520 | 6f 6e 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 63 6f | on.at.the.end.of.the.current.sco |
| 15540 | 70 65 2e 0a 66 6e 20 64 65 66 65 72 45 78 61 6d 70 6c 65 28 29 20 2d 26 67 74 3b 20 75 73 69 7a | pe..fn.deferExample().->.usiz |
| 15560 | 65 20 7b 0a 20 20 20 20 76 61 72 20 61 3a 20 75 73 69 7a 65 20 3d 20 31 3b 0a 0a 20 20 20 20 7b | e.{.....var.a:.usize.=.1;......{ |
| 15580 | 0a 20 20 20 20 20 20 20 20 64 65 66 65 72 20 61 20 3d 20 32 3b 0a 20 20 20 20 20 20 20 20 61 20 | .........defer.a.=.2;.........a. |
| 155a0 | 3d 20 31 3b 0a 20 20 20 20 7d 0a 20 20 20 20 61 73 73 65 72 74 28 61 20 3d 3d 20 32 29 3b 0a 0a | =.1;.....}.....assert(a.==.2);.. |
| 155c0 | 20 20 20 20 61 20 3d 20 35 3b 0a 20 20 20 20 61 0a 7d 0a 0a 74 65 73 74 20 22 64 65 66 65 72 20 | ....a.=.5;.....a.}..test."defer. |
| 155e0 | 62 61 73 69 63 73 22 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 64 65 66 65 72 45 78 61 6d 70 6c | basics".{.....assert(deferExampl |
| 15600 | 65 28 29 20 3d 3d 20 35 29 3b 0a 7d 0a 0a 2f 2f 20 49 66 20 6d 75 6c 74 69 70 6c 65 20 64 65 66 | e().==.5);.}..//.If.multiple.def |
| 15620 | 65 72 20 73 74 61 74 65 6d 65 6e 74 73 20 61 72 65 20 73 70 65 63 69 66 69 65 64 2c 20 74 68 65 | er.statements.are.specified,.the |
| 15640 | 79 20 77 69 6c 6c 20 62 65 20 65 78 65 63 75 74 65 64 20 69 6e 0a 2f 2f 20 74 68 65 20 72 65 76 | y.will.be.executed.in.//.the.rev |
| 15660 | 65 72 73 65 20 6f 72 64 65 72 20 74 68 65 79 20 77 65 72 65 20 72 75 6e 2e 0a 66 6e 20 64 65 66 | erse.order.they.were.run..fn.def |
| 15680 | 65 72 55 6e 77 69 6e 64 45 78 61 6d 70 6c 65 28 29 20 7b 0a 20 20 20 20 25 25 70 72 69 6e 74 66 | erUnwindExample().{.....%%printf |
| 156a0 | 28 22 5c 6e 22 29 3b 0a 0a 20 20 20 20 64 65 66 65 72 20 7b 0a 20 20 20 20 20 20 20 20 25 25 70 | ("\n");......defer.{.........%%p |
| 156c0 | 72 69 6e 74 66 28 22 31 20 22 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 64 65 66 65 72 20 7b 0a 20 | rintf("1.");.....}.....defer.{.. |
| 156e0 | 20 20 20 20 20 20 20 25 25 70 72 69 6e 74 66 28 22 32 20 22 29 3b 0a 20 20 20 20 7d 0a 20 20 20 | .......%%printf("2.");.....}.... |
| 15700 | 20 69 66 20 28 66 61 6c 73 65 29 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 64 65 66 65 72 73 20 | .if.(false).{.........//.defers. |
| 15720 | 61 72 65 20 6e 6f 74 20 72 75 6e 20 69 66 20 74 68 65 79 20 61 72 65 20 6e 65 76 65 72 20 65 78 | are.not.run.if.they.are.never.ex |
| 15740 | 65 63 75 74 65 64 2e 0a 20 20 20 20 20 20 20 20 64 65 66 65 72 20 7b 0a 20 20 20 20 20 20 20 20 | ecuted..........defer.{......... |
| 15760 | 20 20 20 20 25 25 70 72 69 6e 74 66 28 22 33 20 22 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 | ....%%printf("3.");.........}... |
| 15780 | 20 20 7d 0a 7d 0a 0a 74 65 73 74 20 22 64 65 66 65 72 20 75 6e 77 69 6e 64 69 6e 67 22 20 7b 0a | ..}.}..test."defer.unwinding".{. |
| 157a0 | 20 20 20 20 64 65 66 65 72 55 6e 77 69 6e 64 45 78 61 6d 70 6c 65 28 29 0a 7d 0a 0a 2f 2f 20 54 | ....deferUnwindExample().}..//.T |
| 157c0 | 68 65 20 25 64 65 66 65 72 20 6b 65 79 77 6f 72 64 20 69 73 20 73 69 6d 69 6c 61 72 20 74 6f 20 | he.%defer.keyword.is.similar.to. |
| 157e0 | 64 65 66 65 72 2c 20 62 75 74 20 77 69 6c 6c 20 6f 6e 6c 79 20 65 78 65 63 75 74 65 20 69 66 20 | defer,.but.will.only.execute.if. |
| 15800 | 74 68 65 0a 2f 2f 20 73 63 6f 70 65 20 72 65 74 75 72 6e 73 20 77 69 74 68 20 61 6e 20 65 72 72 | the.//.scope.returns.with.an.err |
| 15820 | 6f 72 2e 0a 2f 2f 0a 2f 2f 20 54 68 69 73 20 69 73 20 65 73 70 65 63 69 61 6c 6c 79 20 75 73 65 | or..//.//.This.is.especially.use |
| 15840 | 66 75 6c 20 69 6e 20 61 6c 6c 6f 77 69 6e 67 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 63 6c | ful.in.allowing.a.function.to.cl |
| 15860 | 65 61 6e 20 75 70 20 70 72 6f 70 65 72 6c 79 0a 2f 2f 20 6f 6e 20 65 72 72 6f 72 2c 20 61 6e 64 | ean.up.properly.//.on.error,.and |
| 15880 | 20 72 65 70 6c 61 63 65 73 20 67 6f 74 6f 20 65 72 72 6f 72 20 68 61 6e 64 6c 69 6e 67 20 74 61 | .replaces.goto.error.handling.ta |
| 158a0 | 63 74 69 63 73 20 61 73 20 73 65 65 6e 20 69 6e 20 63 2e 0a 65 72 72 6f 72 20 44 65 66 65 72 45 | ctics.as.seen.in.c..error.DeferE |
| 158c0 | 72 72 6f 72 3b 0a 66 6e 20 64 65 66 65 72 45 72 72 6f 72 45 78 61 6d 70 6c 65 28 69 73 5f 65 72 | rror;.fn.deferErrorExample(is_er |
| 158e0 | 72 6f 72 3a 20 62 6f 6f 6c 29 20 2d 26 67 74 3b 20 25 76 6f 69 64 20 7b 0a 20 20 20 20 25 25 70 | ror:.bool).->.%void.{.....%%p |
| 15900 | 72 69 6e 74 66 28 22 5c 6e 73 74 61 72 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e 5c 6e 22 29 3b 0a | rintf("\nstart.of.function\n");. |
| 15920 | 0a 20 20 20 20 2f 2f 20 54 68 69 73 20 77 69 6c 6c 20 61 6c 77 61 79 73 20 62 65 20 65 78 65 63 | .....//.This.will.always.be.exec |
| 15940 | 75 74 65 64 20 6f 6e 20 65 78 69 74 0a 20 20 20 20 64 65 66 65 72 20 7b 0a 20 20 20 20 20 20 20 | uted.on.exit.....defer.{........ |
| 15960 | 20 25 25 70 72 69 6e 74 66 28 22 65 6e 64 20 6f 66 20 66 75 6e 63 74 69 6f 6e 5c 6e 22 29 3b 0a | .%%printf("end.of.function\n");. |
| 15980 | 20 20 20 20 7d 0a 0a 20 20 20 20 25 64 65 66 65 72 20 7b 0a 20 20 20 20 20 20 20 20 25 25 70 72 | ....}......%defer.{.........%%pr |
| 159a0 | 69 6e 74 66 28 22 65 6e 63 6f 75 6e 74 65 72 65 64 20 61 6e 20 65 72 72 6f 72 21 5c 6e 22 29 3b | intf("encountered.an.error!\n"); |
| 159c0 | 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 28 69 73 5f 65 72 72 6f 72 29 20 7b 0a 20 20 20 20 | .....}......if.(is_error).{..... |
| 159e0 | 20 20 20 20 72 65 74 75 72 6e 20 65 72 72 6f 72 2e 44 65 66 65 72 45 72 72 6f 72 3b 0a 20 20 20 | ....return.error.DeferError;.... |
| 15a00 | 20 7d 0a 7d 0a 0a 74 65 73 74 20 22 25 64 65 66 65 72 20 75 6e 77 69 6e 64 69 6e 67 22 20 7b 0a | .}.}..test."%defer.unwinding".{. |
| 15a20 | 20 20 20 20 5f 20 3d 20 64 65 66 65 72 45 72 72 6f 72 45 78 61 6d 70 6c 65 28 66 61 6c 73 65 29 | ...._.=.deferErrorExample(false) |
| 15a40 | 3b 0a 20 20 20 20 5f 20 3d 20 64 65 66 65 72 45 72 72 6f 72 45 78 61 6d 70 6c 65 28 74 72 75 65 | ;....._.=.deferErrorExample(true |
| 15a60 | 29 3b 0a 7d 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 | );.}.</code></pre>.......<pre><c |
| 15a80 | 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 74 65 73 74 20 64 65 66 65 72 2e | ode.class="sh">$.zig.test.defer. |
| 15aa0 | 7a 69 67 0a 54 65 73 74 20 31 2f 33 20 64 65 66 65 72 20 62 61 73 69 63 73 2e 2e 2e 4f 4b 0a 54 | zig.Test.1/3.defer.basics...OK.T |
| 15ac0 | 65 73 74 20 32 2f 33 20 64 65 66 65 72 20 75 6e 77 69 6e 64 69 6e 67 2e 2e 2e 0a 32 20 31 20 4f | est.2/3.defer.unwinding....2.1.O |
| 15ae0 | 4b 0a 54 65 73 74 20 33 2f 33 20 25 64 65 66 65 72 20 75 6e 77 69 6e 64 69 6e 67 2e 2e 2e 0a 73 | K.Test.3/3.%defer.unwinding....s |
| 15b00 | 74 61 72 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e 0a 65 6e 64 20 6f 66 20 66 75 6e 63 74 69 6f 6e | tart.of.function.end.of.function |
| 15b20 | 0a 0a 73 74 61 72 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e 0a 65 6e 63 6f 75 6e 74 65 72 65 64 20 | ..start.of.function.encountered. |
| 15b40 | 61 6e 20 65 72 72 6f 72 21 0a 65 6e 64 20 6f 66 20 66 75 6e 63 74 69 6f 6e 0a 4f 4b 0a 3c 2f 63 | an.error!.end.of.function.OK.</c |
| 15b60 | 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 | ode></pre>.......<p>See.also:</p |
| 15b80 | 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 | >.......<ul>.........<li><a.href |
| 15ba0 | 3d 22 23 65 72 72 6f 72 73 22 3e 45 72 72 6f 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | ="#errors">Errors</a></li>...... |
| 15bc0 | 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 75 6e 72 65 61 63 68 61 62 6c 65 | .</ul>.......<h2.id="unreachable |
| 15be0 | 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 | ">unreachable</h2>.......<p>.... |
| 15c00 | 20 20 20 49 6e 20 3c 63 6f 64 65 3e 44 65 62 75 67 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f | ...In.<code>Debug</code>.and.<co |
| 15c20 | 64 65 3e 52 65 6c 65 61 73 65 53 61 66 65 3c 2f 63 6f 64 65 3e 20 6d 6f 64 65 2c 20 61 6e 64 20 | de>ReleaseSafe</code>.mode,.and. |
| 15c40 | 77 68 65 6e 20 75 73 69 6e 67 20 3c 63 6f 64 65 3e 7a 69 67 20 74 65 73 74 3c 2f 63 6f 64 65 3e | when.using.<code>zig.test</code> |
| 15c60 | 2c 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 63 6f 64 65 3e | ,.......<code>unreachable</code> |
| 15c80 | 20 65 6d 69 74 73 20 61 20 63 61 6c 6c 20 74 6f 20 3c 63 6f 64 65 3e 70 61 6e 69 63 3c 2f 63 6f | .emits.a.call.to.<code>panic</co |
| 15ca0 | 64 65 3e 20 77 69 74 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 3c 63 6f 64 65 3e 72 65 61 63 68 | de>.with.the.message.<code>reach |
| 15cc0 | 65 64 20 75 6e 72 65 61 63 68 61 62 6c 65 20 63 6f 64 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 | ed.unreachable.code</code>...... |
| 15ce0 | 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 3c 63 6f 64 65 3e | ..</p>.......<p>.......In.<code> |
| 15d00 | 52 65 6c 65 61 73 65 46 61 73 74 3c 2f 63 6f 64 65 3e 20 6d 6f 64 65 2c 20 74 68 65 20 6f 70 74 | ReleaseFast</code>.mode,.the.opt |
| 15d20 | 69 6d 69 7a 65 72 20 75 73 65 73 20 74 68 65 20 61 73 73 75 6d 70 74 69 6f 6e 20 74 68 61 74 20 | imizer.uses.the.assumption.that. |
| 15d40 | 3c 63 6f 64 65 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 63 6f 64 65 3e 20 63 6f 64 65 0a 20 20 | <code>unreachable</code>.code... |
| 15d60 | 20 20 20 20 77 69 6c 6c 20 6e 65 76 65 72 20 62 65 20 68 69 74 20 74 6f 20 70 65 72 66 6f 72 6d | ....will.never.be.hit.to.perform |
| 15d80 | 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 2e 20 48 6f 77 65 76 65 72 2c 20 3c 63 6f 64 65 3e 7a | .optimizations..However,.<code>z |
| 15da0 | 69 67 20 74 65 73 74 3c 2f 63 6f 64 65 3e 20 65 76 65 6e 20 69 6e 20 3c 63 6f 64 65 3e 52 65 6c | ig.test</code>.even.in.<code>Rel |
| 15dc0 | 65 61 73 65 46 61 73 74 3c 2f 63 6f 64 65 3e 20 6d 6f 64 65 0a 20 20 20 20 20 20 73 74 69 6c 6c | easeFast</code>.mode.......still |
| 15de0 | 20 65 6d 69 74 73 20 3c 63 6f 64 65 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 63 6f 64 65 3e 20 | .emits.<code>unreachable</code>. |
| 15e00 | 61 73 20 63 61 6c 6c 73 20 74 6f 20 3c 63 6f 64 65 3e 70 61 6e 69 63 3c 2f 63 6f 64 65 3e 2e 0a | as.calls.to.<code>panic</code>.. |
| 15e20 | 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 75 6e 72 65 61 63 68 | ......</p>.......<h3.id="unreach |
| 15e40 | 61 62 6c 65 2d 62 61 73 69 63 73 22 3e 42 61 73 69 63 73 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c | able-basics">Basics</h3>.......< |
| 15e60 | 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2f 2f 20 75 6e 72 65 61 63 68 | pre><code.class="zig">//.unreach |
| 15e80 | 61 62 6c 65 20 69 73 20 75 73 65 64 20 74 6f 20 61 73 73 65 72 74 20 74 68 61 74 20 63 6f 6e 74 | able.is.used.to.assert.that.cont |
| 15ea0 | 72 6f 6c 20 66 6c 6f 77 20 77 69 6c 6c 20 6e 65 76 65 72 20 68 61 70 70 65 6e 20 75 70 6f 6e 20 | rol.flow.will.never.happen.upon. |
| 15ec0 | 61 0a 2f 2f 20 70 61 72 74 69 63 75 6c 61 72 20 6c 6f 63 61 74 69 6f 6e 3a 0a 74 65 73 74 20 22 | a.//.particular.location:.test." |
| 15ee0 | 62 61 73 69 63 20 6d 61 74 68 22 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 78 20 3d 20 31 3b 0a 20 | basic.math".{.....const.x.=.1;.. |
| 15f00 | 20 20 20 63 6f 6e 73 74 20 79 20 3d 20 32 3b 0a 20 20 20 20 69 66 20 28 78 20 2b 20 79 20 21 3d | ...const.y.=.2;.....if.(x.+.y.!= |
| 15f20 | 20 33 29 20 7b 0a 20 20 20 20 20 20 20 20 75 6e 72 65 61 63 68 61 62 6c 65 3b 0a 20 20 20 20 7d | .3).{.........unreachable;.....} |
| 15f40 | 0a 7d 0a 0a 2f 2f 20 69 6e 20 66 61 63 74 2c 20 74 68 69 73 20 69 73 20 68 6f 77 20 61 73 73 65 | .}..//.in.fact,.this.is.how.asse |
| 15f60 | 72 74 20 69 73 20 69 6d 70 6c 65 6d 65 6e 74 65 64 3a 0a 66 6e 20 61 73 73 65 72 74 28 6f 6b 3a | rt.is.implemented:.fn.assert(ok: |
| 15f80 | 20 62 6f 6f 6c 29 20 7b 0a 20 20 20 20 69 66 20 28 21 6f 6b 29 20 75 6e 72 65 61 63 68 61 62 6c | .bool).{.....if.(!ok).unreachabl |
| 15fa0 | 65 3b 20 2f 2f 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 0a 7d 0a 0a 2f 2f 20 54 68 | e;.//.assertion.failure.}..//.Th |
| 15fc0 | 69 73 20 74 65 73 74 20 77 69 6c 6c 20 66 61 69 6c 20 62 65 63 61 75 73 65 20 77 65 20 68 69 74 | is.test.will.fail.because.we.hit |
| 15fe0 | 20 75 6e 72 65 61 63 68 61 62 6c 65 2e 0a 74 65 73 74 20 22 74 68 69 73 20 77 69 6c 6c 20 66 61 | .unreachable..test."this.will.fa |
| 16000 | 69 6c 22 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 66 61 6c 73 65 29 3b 0a 7d 3c 2f 63 6f 64 65 | il".{.....assert(false);.}</code |
| 16020 | 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 | ></pre>.......<pre><code.class=" |
| 16040 | 73 68 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 32 | sh">$.zig.test.test.zig.Test.1/2 |
| 16060 | 20 62 61 73 69 63 20 6d 61 74 68 2e 2e 2e 4f 4b 0a 54 65 73 74 20 32 2f 32 20 74 68 69 73 20 77 | .basic.math...OK.Test.2/2.this.w |
| 16080 | 69 6c 6c 20 66 61 69 6c 2e 2e 2e 72 65 61 63 68 65 64 20 75 6e 72 65 61 63 68 61 62 6c 65 20 63 | ill.fail...reached.unreachable.c |
| 160a0 | 6f 64 65 0a 74 65 73 74 2e 7a 69 67 3a 31 33 3a 31 34 3a 20 30 78 30 30 30 30 30 30 30 30 30 30 | ode.test.zig:13:14:.0x0000000000 |
| 160c0 | 32 30 33 33 61 63 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 0a 20 20 20 20 69 66 20 28 21 6f 6b | 2033ac.in.???.(test).....if.(!ok |
| 160e0 | 29 20 75 6e 72 65 61 63 68 61 62 6c 65 3b 20 2f 2f 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c | ).unreachable;.//.assertion.fail |
| 16100 | 75 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 0a 74 65 73 74 2e 7a 69 67 3a 31 38 3a 31 | ure..............^.test.zig:18:1 |
| 16120 | 31 3a 20 30 78 30 30 30 30 30 30 30 30 30 30 32 30 33 32 39 62 20 69 6e 20 3f 3f 3f 20 28 74 65 | 1:.0x000000000020329b.in.???.(te |
| 16140 | 73 74 29 0a 20 20 20 20 61 73 73 65 72 74 28 66 61 6c 73 65 29 3b 0a 20 20 20 20 20 20 20 20 20 | st).....assert(false);.......... |
| 16160 | 20 5e 0a 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 74 65 73 74 5f 72 75 6e 6e | .^.lib/zig/std/special/test_runn |
| 16180 | 65 72 2e 7a 69 67 3a 39 3a 32 31 3a 20 30 78 30 30 30 30 30 30 30 30 30 30 32 31 34 61 37 61 20 | er.zig:9:21:.0x0000000000214a7a. |
| 161a0 | 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 0a 20 20 20 20 20 20 20 20 74 65 73 74 5f 66 6e 2e 66 75 | in.???.(test).........test_fn.fu |
| 161c0 | 6e 63 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 0a 6c 69 62 2f | nc();.....................^.lib/ |
| 161e0 | 7a 69 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 62 6f 6f 74 73 74 72 61 70 2e 7a 69 67 3a 36 30 | zig/std/special/bootstrap.zig:60 |
| 16200 | 3a 32 31 3a 20 30 78 30 30 30 30 30 30 30 30 30 30 32 31 34 39 34 37 20 69 6e 20 3f 3f 3f 20 28 | :21:.0x0000000000214947.in.???.( |
| 16220 | 74 65 73 74 29 0a 20 20 20 20 72 65 74 75 72 6e 20 72 6f 6f 74 2e 6d 61 69 6e 28 29 3b 0a 20 20 | test).....return.root.main();... |
| 16240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 0a 6c 69 62 2f 7a 69 67 2f 73 74 64 2f | ..................^.lib/zig/std/ |
| 16260 | 73 70 65 63 69 61 6c 2f 62 6f 6f 74 73 74 72 61 70 2e 7a 69 67 3a 34 37 3a 31 33 3a 20 30 78 30 | special/bootstrap.zig:47:13:.0x0 |
| 16280 | 30 30 30 30 30 30 30 30 30 32 31 34 38 30 30 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 0a 20 20 | 000000000214800.in.???.(test)... |
| 162a0 | 20 20 63 61 6c 6c 4d 61 69 6e 28 61 72 67 63 2c 20 61 72 67 76 2c 20 65 6e 76 70 29 20 25 25 20 | ..callMain(argc,.argv,.envp).%%. |
| 162c0 | 73 74 64 2e 6f 73 2e 70 6f 73 69 78 2e 65 78 69 74 28 31 29 3b 0a 20 20 20 20 20 20 20 20 20 20 | std.os.posix.exit(1);........... |
| 162e0 | 20 20 5e 0a 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 62 6f 6f 74 73 74 72 61 | ..^.lib/zig/std/special/bootstra |
| 16300 | 70 2e 7a 69 67 3a 33 34 3a 32 35 3a 20 30 78 30 30 30 30 30 30 30 30 30 30 32 31 34 37 35 30 20 | p.zig:34:25:.0x0000000000214750. |
| 16320 | 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 0a 20 20 20 20 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 | in.???.(test).....posixCallMainA |
| 16340 | 6e 64 45 78 69 74 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ndExit()........................ |
| 16360 | 20 5e 0a 0a 54 65 73 74 73 20 66 61 69 6c 65 64 2e 20 55 73 65 20 74 68 65 20 66 6f 6c 6c 6f 77 | .^..Tests.failed..Use.the.follow |
| 16380 | 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 72 65 70 72 6f 64 75 63 65 20 74 68 65 20 66 61 69 | ing.command.to.reproduce.the.fai |
| 163a0 | 6c 75 72 65 3a 0a 2e 2f 74 65 73 74 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 | lure:../test</code></pre>....... |
| 163c0 | 3c 68 33 20 69 64 3d 22 75 6e 72 65 61 63 68 61 62 6c 65 2d 63 6f 6d 70 74 69 6d 65 22 3e 41 74 | <h3.id="unreachable-comptime">At |
| 163e0 | 20 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 | .Compile-Time</h3>.......<pre><c |
| 16400 | 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 | ode.class="zig">const.assert.=.@ |
| 16420 | 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 63 6f 6d | import("std").debug.assert;..com |
| 16440 | 70 74 69 6d 65 20 7b 0a 20 20 20 20 2f 2f 20 54 68 65 20 74 79 70 65 20 6f 66 20 75 6e 72 65 61 | ptime.{.....//.The.type.of.unrea |
| 16460 | 63 68 61 62 6c 65 20 69 73 20 6e 6f 72 65 74 75 72 6e 2e 0a 0a 20 20 20 20 2f 2f 20 48 6f 77 65 | chable.is.noreturn.......//.Howe |
| 16480 | 76 65 72 20 74 68 69 73 20 61 73 73 65 72 74 69 6f 6e 20 77 69 6c 6c 20 73 74 69 6c 6c 20 66 61 | ver.this.assertion.will.still.fa |
| 164a0 | 69 6c 20 62 65 63 61 75 73 65 0a 20 20 20 20 2f 2f 20 65 76 61 6c 75 61 74 69 6e 67 20 75 6e 72 | il.because.....//.evaluating.unr |
| 164c0 | 65 61 63 68 61 62 6c 65 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 69 73 20 61 20 63 6f | eachable.at.compile-time.is.a.co |
| 164e0 | 6d 70 69 6c 65 20 65 72 72 6f 72 2e 0a 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 70 65 4f 66 | mpile.error.......assert(@typeOf |
| 16500 | 28 75 6e 72 65 61 63 68 61 62 6c 65 29 20 3d 3d 20 6e 6f 72 65 74 75 72 6e 29 3b 0a 7d 3c 2f 63 | (unreachable).==.noreturn);.}</c |
| 16520 | 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | ode></pre>.......<pre><code.clas |
| 16540 | 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 74 65 73 74 2e 7a 69 67 0a | s="sh">$.zig.build-obj.test.zig. |
| 16560 | 74 65 73 74 2e 7a 69 67 3a 39 3a 31 32 3a 20 65 72 72 6f 72 3a 20 75 6e 72 65 61 63 68 61 62 6c | test.zig:9:12:.error:.unreachabl |
| 16580 | 65 20 63 6f 64 65 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 75 6e 72 65 61 63 | e.code.....assert(@typeOf(unreac |
| 165a0 | 68 61 62 6c 65 29 20 3d 3d 20 6e 6f 72 65 74 75 72 6e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 | hable).==.noreturn);............ |
| 165c0 | 5e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f | ^</code></pre>.......<p>See.also |
| 165e0 | 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 | :</p>.......<ul>.........<li><a. |
| 16600 | 68 72 65 66 3d 22 23 7a 69 67 2d 74 65 73 74 22 3e 5a 69 67 20 54 65 73 74 3c 2f 61 3e 3c 2f 6c | href="#zig-test">Zig.Test</a></l |
| 16620 | 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 64 2d 6d | i>.........<li><a.href="#build-m |
| 16640 | 6f 64 65 22 3e 42 75 69 6c 64 20 4d 6f 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | ode">Build.Mode</a></li>........ |
| 16660 | 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d | .<li><a.href="#comptime">comptim |
| 16680 | 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 32 | e</a></li>.......</ul>.......<h2 |
| 166a0 | 20 69 64 3d 22 6e 6f 72 65 74 75 72 6e 22 3e 6e 6f 72 65 74 75 72 6e 3c 2f 68 32 3e 0a 20 20 20 | .id="noreturn">noreturn</h2>.... |
| 166c0 | 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 6e 6f 72 65 74 75 72 6e 3c 2f 63 6f 64 | ...<p>.......<code>noreturn</cod |
| 166e0 | 65 3e 20 69 73 20 74 68 65 20 74 79 70 65 20 6f 66 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 | e>.is.the.type.of:.......</p>... |
| 16700 | 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 62 72 65 61 6b | ....<ul>.........<li><code>break |
| 16720 | 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 63 | </code></li>.........<li><code>c |
| 16740 | 6f 6e 74 69 6e 75 65 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e | ontinue</code></li>.........<li> |
| 16760 | 3c 63 6f 64 65 3e 67 6f 74 6f 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c | <code>goto</code></li>.........< |
| 16780 | 6c 69 3e 3c 63 6f 64 65 3e 72 65 74 75 72 6e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 | li><code>return</code></li>..... |
| 167a0 | 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 63 6f 64 65 3e | ....<li><code>unreachable</code> |
| 167c0 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 77 68 69 6c 65 20 28 74 | </li>.........<li><code>while.(t |
| 167e0 | 72 75 65 29 20 7b 7d 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a | rue).{}</code></li>.......</ul>. |
| 16800 | 20 20 20 20 20 20 3c 70 3e 57 68 65 6e 20 72 65 73 6f 6c 76 69 6e 67 20 74 79 70 65 73 20 74 6f | ......<p>When.resolving.types.to |
| 16820 | 67 65 74 68 65 72 2c 20 73 75 63 68 20 61 73 20 3c 63 6f 64 65 3e 69 66 3c 2f 63 6f 64 65 3e 20 | gether,.such.as.<code>if</code>. |
| 16840 | 63 6c 61 75 73 65 73 20 6f 72 20 3c 63 6f 64 65 3e 73 77 69 74 63 68 3c 2f 63 6f 64 65 3e 20 70 | clauses.or.<code>switch</code>.p |
| 16860 | 72 6f 6e 67 73 2c 0a 20 20 20 20 20 20 74 68 65 20 3c 63 6f 64 65 3e 6e 6f 72 65 74 75 72 6e 3c | rongs,.......the.<code>noreturn< |
| 16880 | 2f 63 6f 64 65 3e 20 74 79 70 65 20 69 73 20 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 65 | /code>.type.is.compatible.with.e |
| 168a0 | 76 65 72 79 20 6f 74 68 65 72 20 74 79 70 65 2e 20 43 6f 6e 73 69 64 65 72 3a 0a 20 20 20 20 20 | very.other.type..Consider:...... |
| 168c0 | 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 | .</p>.......<pre><code.class="zi |
| 168e0 | 67 22 3e 66 6e 20 66 6f 6f 28 63 6f 6e 64 69 74 69 6f 6e 3a 20 62 6f 6f 6c 2c 20 62 3a 20 75 33 | g">fn.foo(condition:.bool,.b:.u3 |
| 16900 | 32 29 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 61 20 3d 20 69 66 20 28 63 6f 6e 64 69 74 69 6f 6e | 2).{.....const.a.=.if.(condition |
| 16920 | 29 20 62 20 65 6c 73 65 20 72 65 74 75 72 6e 3b 0a 20 20 20 20 62 61 72 28 61 29 3b 0a 7d 0a 0a | ).b.else.return;.....bar(a);.}.. |
| 16940 | 65 78 74 65 72 6e 20 66 6e 20 62 61 72 28 76 61 6c 75 65 3a 20 75 33 32 29 3b 3c 2f 63 6f 64 65 | extern.fn.bar(value:.u32);</code |
| 16960 | 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 41 6e 6f 74 68 65 72 20 75 73 65 20 63 61 73 | ></pre>.......<p>Another.use.cas |
| 16980 | 65 20 66 6f 72 20 3c 63 6f 64 65 3e 6e 6f 72 65 74 75 72 6e 3c 2f 63 6f 64 65 3e 20 69 73 20 74 | e.for.<code>noreturn</code>.is.t |
| 169a0 | 68 65 20 3c 63 6f 64 65 3e 65 78 69 74 3c 2f 63 6f 64 65 3e 20 66 75 6e 63 74 69 6f 6e 3a 3c 2f | he.<code>exit</code>.function:</ |
| 169c0 | 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e | p>.......<pre><code.class="zig"> |
| 169e0 | 70 75 62 20 65 78 74 65 72 6e 20 22 6b 65 72 6e 65 6c 33 32 22 20 73 74 64 63 61 6c 6c 63 63 20 | pub.extern."kernel32".stdcallcc. |
| 16a00 | 66 6e 20 45 78 69 74 50 72 6f 63 65 73 73 28 65 78 69 74 5f 63 6f 64 65 3a 20 63 5f 75 69 6e 74 | fn.ExitProcess(exit_code:.c_uint |
| 16a20 | 29 20 2d 26 67 74 3b 20 6e 6f 72 65 74 75 72 6e 3b 0a 0a 66 6e 20 66 6f 6f 28 29 20 7b 0a 20 20 | ).->.noreturn;..fn.foo().{... |
| 16a40 | 20 20 63 6f 6e 73 74 20 76 61 6c 75 65 20 3d 20 62 61 72 28 29 20 25 25 20 45 78 69 74 50 72 6f | ..const.value.=.bar().%%.ExitPro |
| 16a60 | 63 65 73 73 28 31 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 76 61 6c 75 65 20 3d 3d 20 31 32 33 | cess(1);.....assert(value.==.123 |
| 16a80 | 34 29 3b 0a 7d 0a 0a 66 6e 20 62 61 72 28 29 20 2d 26 67 74 3b 20 25 75 33 32 20 7b 0a 20 20 20 | 4);.}..fn.bar().->.%u32.{.... |
| 16aa0 | 20 72 65 74 75 72 6e 20 31 32 33 34 3b 0a 7d 0a 0a 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 | .return.1234;.}..const.assert.=. |
| 16ac0 | 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 3c 2f 63 6f | @import("std").debug.assert;</co |
| 16ae0 | 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 66 75 6e 63 74 69 6f 6e | de></pre>.......<h2.id="function |
| 16b00 | 73 22 3e 46 75 6e 63 74 69 6f 6e 73 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f | s">Functions</h2>.......<pre><co |
| 16b20 | 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 | de.class="zig">const.assert.=.@i |
| 16b40 | 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 2f 2f 20 46 | mport("std").debug.assert;..//.F |
| 16b60 | 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 64 65 63 6c 61 72 65 64 20 6c 69 6b 65 20 74 68 69 73 0a | unctions.are.declared.like.this. |
| 16b80 | 2f 2f 20 54 68 65 20 6c 61 73 74 20 65 78 70 72 65 73 73 69 6f 6e 20 69 6e 20 74 68 65 20 66 75 | //.The.last.expression.in.the.fu |
| 16ba0 | 6e 63 74 69 6f 6e 20 63 61 6e 20 62 65 20 75 73 65 64 20 61 73 20 74 68 65 20 72 65 74 75 72 6e | nction.can.be.used.as.the.return |
| 16bc0 | 20 76 61 6c 75 65 2e 0a 66 6e 20 61 64 64 28 61 3a 20 69 38 2c 20 62 3a 20 69 38 29 20 2d 26 67 | .value..fn.add(a:.i8,.b:.i8).-&g |
| 16be0 | 74 3b 20 69 38 20 7b 0a 20 20 20 20 69 66 20 28 61 20 3d 3d 20 30 29 20 7b 0a 20 20 20 20 20 20 | t;.i8.{.....if.(a.==.0).{....... |
| 16c00 | 20 20 2f 2f 20 59 6f 75 20 63 61 6e 20 73 74 69 6c 6c 20 72 65 74 75 72 6e 20 6d 61 6e 75 61 6c | ..//.You.can.still.return.manual |
| 16c20 | 6c 79 20 69 66 20 6e 65 65 64 65 64 2e 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 62 3b 0a | ly.if.needed..........return.b;. |
| 16c40 | 20 20 20 20 7d 0a 0a 20 20 20 20 61 20 2b 20 62 0a 7d 0a 0a 2f 2f 20 54 68 65 20 65 78 70 6f 72 | ....}......a.+.b.}..//.The.expor |
| 16c60 | 74 20 73 70 65 63 69 66 69 65 72 20 6d 61 6b 65 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 | t.specifier.makes.a.function.ext |
| 16c80 | 65 72 6e 61 6c 6c 79 20 76 69 73 69 62 6c 65 20 69 6e 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 | ernally.visible.in.the.generated |
| 16ca0 | 0a 2f 2f 20 6f 62 6a 65 63 74 20 66 69 6c 65 2c 20 61 6e 64 20 6d 61 6b 65 73 20 69 74 20 75 73 | .//.object.file,.and.makes.it.us |
| 16cc0 | 65 20 74 68 65 20 43 20 41 42 49 2e 0a 65 78 70 6f 72 74 20 66 6e 20 73 75 62 28 61 3a 20 69 38 | e.the.C.ABI..export.fn.sub(a:.i8 |
| 16ce0 | 2c 20 62 3a 20 69 38 29 20 2d 26 67 74 3b 20 69 38 20 7b 20 61 20 2d 20 62 20 7d 0a 0a 2f 2f 20 | ,.b:.i8).->.i8.{.a.-.b.}..//. |
| 16d00 | 54 68 65 20 65 78 74 65 72 6e 20 73 70 65 63 69 66 69 65 72 20 69 73 20 75 73 65 64 20 74 6f 20 | The.extern.specifier.is.used.to. |
| 16d20 | 64 65 63 6c 61 72 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 77 69 6c 6c 20 62 65 20 | declare.a.function.that.will.be. |
| 16d40 | 72 65 73 6f 6c 76 65 64 0a 2f 2f 20 61 74 20 6c 69 6e 6b 20 74 69 6d 65 2c 20 77 68 65 6e 20 6c | resolved.//.at.link.time,.when.l |
| 16d60 | 69 6e 6b 69 6e 67 20 73 74 61 74 69 63 61 6c 6c 79 2c 20 6f 72 20 61 74 20 72 75 6e 74 69 6d 65 | inking.statically,.or.at.runtime |
| 16d80 | 2c 20 77 68 65 6e 20 6c 69 6e 6b 69 6e 67 0a 2f 2f 20 64 79 6e 61 6d 69 63 61 6c 6c 79 2e 0a 2f | ,.when.linking.//.dynamically../ |
| 16da0 | 2f 20 54 68 65 20 73 74 64 63 61 6c 6c 63 63 20 73 70 65 63 69 66 69 65 72 20 63 68 61 6e 67 65 | /.The.stdcallcc.specifier.change |
| 16dc0 | 73 20 74 68 65 20 63 61 6c 6c 69 6e 67 20 63 6f 6e 76 65 6e 74 69 6f 6e 20 6f 66 20 74 68 65 20 | s.the.calling.convention.of.the. |
| 16de0 | 66 75 6e 63 74 69 6f 6e 2e 0a 65 78 74 65 72 6e 20 22 6b 65 72 6e 65 6c 33 32 22 20 73 74 64 63 | function..extern."kernel32".stdc |
| 16e00 | 61 6c 6c 63 63 20 66 6e 20 45 78 69 74 50 72 6f 63 65 73 73 28 65 78 69 74 5f 63 6f 64 65 3a 20 | allcc.fn.ExitProcess(exit_code:. |
| 16e20 | 75 33 32 29 20 2d 26 67 74 3b 20 6e 6f 72 65 74 75 72 6e 3b 0a 65 78 74 65 72 6e 20 22 63 22 20 | u32).->.noreturn;.extern."c". |
| 16e40 | 66 6e 20 61 74 61 6e 32 28 61 3a 20 66 36 34 2c 20 62 3a 20 66 36 34 29 20 2d 26 67 74 3b 20 66 | fn.atan2(a:.f64,.b:.f64).->.f |
| 16e60 | 36 34 3b 0a 0a 2f 2f 20 63 6f 6c 64 63 63 20 6d 61 6b 65 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 | 64;..//.coldcc.makes.a.function. |
| 16e80 | 75 73 65 20 74 68 65 20 63 6f 6c 64 20 63 61 6c 6c 69 6e 67 20 63 6f 6e 76 65 6e 74 69 6f 6e 2e | use.the.cold.calling.convention. |
| 16ea0 | 0a 63 6f 6c 64 63 63 20 66 6e 20 61 62 6f 72 74 28 29 20 2d 26 67 74 3b 20 6e 6f 72 65 74 75 72 | .coldcc.fn.abort().->.noretur |
| 16ec0 | 6e 20 7b 0a 20 20 20 20 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 7d 0a 7d 0a 0a 2f 2f 20 6e 61 | n.{.....while.(true).{}.}..//.na |
| 16ee0 | 6b 65 64 63 63 20 6d 61 6b 65 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 20 68 61 76 65 20 | kedcc.makes.a.function.not.have. |
| 16f00 | 61 6e 79 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 6c 6f 67 75 65 20 6f 72 20 65 70 69 6c 6f 67 75 | any.function.prologue.or.epilogu |
| 16f20 | 65 2e 0a 2f 2f 20 54 68 69 73 20 63 61 6e 20 62 65 20 75 73 65 66 75 6c 20 77 68 65 6e 20 69 6e | e..//.This.can.be.useful.when.in |
| 16f40 | 74 65 67 72 61 74 69 6e 67 20 77 69 74 68 20 61 73 73 65 6d 62 6c 79 2e 0a 6e 61 6b 65 64 63 63 | tegrating.with.assembly..nakedcc |
| 16f60 | 20 66 6e 20 5f 73 74 61 72 74 28 29 20 2d 26 67 74 3b 20 6e 6f 72 65 74 75 72 6e 20 7b 0a 20 20 | .fn._start().->.noreturn.{... |
| 16f80 | 20 20 61 62 6f 72 74 28 29 3b 0a 7d 0a 0a 2f 2f 20 54 68 65 20 70 75 62 20 73 70 65 63 69 66 69 | ..abort();.}..//.The.pub.specifi |
| 16fa0 | 65 72 20 61 6c 6c 6f 77 73 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 62 65 20 76 69 73 | er.allows.the.function.to.be.vis |
| 16fc0 | 69 62 6c 65 20 77 68 65 6e 20 69 6d 70 6f 72 74 69 6e 67 2e 0a 2f 2f 20 41 6e 6f 74 68 65 72 20 | ible.when.importing..//.Another. |
| 16fe0 | 66 69 6c 65 20 63 61 6e 20 75 73 65 20 40 69 6d 70 6f 72 74 20 61 6e 64 20 63 61 6c 6c 20 73 75 | file.can.use.@import.and.call.su |
| 17000 | 62 32 0a 70 75 62 20 66 6e 20 73 75 62 32 28 61 3a 20 69 38 2c 20 62 3a 20 69 38 29 20 2d 26 67 | b2.pub.fn.sub2(a:.i8,.b:.i8).-&g |
| 17020 | 74 3b 20 69 38 20 7b 20 61 20 2d 20 62 20 7d 0a 0a 2f 2f 20 46 75 6e 63 74 69 6f 6e 73 20 63 61 | t;.i8.{.a.-.b.}..//.Functions.ca |
| 17040 | 6e 20 62 65 20 75 73 65 64 20 61 73 20 76 61 6c 75 65 73 20 61 6e 64 20 61 72 65 20 65 71 75 69 | n.be.used.as.values.and.are.equi |
| 17060 | 76 61 6c 65 6e 74 20 74 6f 20 70 6f 69 6e 74 65 72 73 2e 0a 63 6f 6e 73 74 20 63 61 6c 6c 32 5f | valent.to.pointers..const.call2_ |
| 17080 | 6f 70 20 3d 20 66 6e 20 28 61 3a 20 69 38 2c 20 62 3a 20 69 38 29 20 2d 26 67 74 3b 20 69 38 3b | op.=.fn.(a:.i8,.b:.i8).->.i8; |
| 170a0 | 0a 66 6e 20 64 6f 5f 6f 70 28 66 6e 5f 63 61 6c 6c 3a 20 63 61 6c 6c 32 5f 6f 70 2c 20 6f 70 31 | .fn.do_op(fn_call:.call2_op,.op1 |
| 170c0 | 3a 20 69 38 2c 20 6f 70 32 3a 20 69 38 29 20 2d 26 67 74 3b 20 69 38 20 7b 0a 20 20 20 20 66 6e | :.i8,.op2:.i8).->.i8.{.....fn |
| 170e0 | 5f 63 61 6c 6c 28 6f 70 31 2c 20 6f 70 32 29 0a 7d 0a 0a 74 65 73 74 20 22 66 75 6e 63 74 69 6f | _call(op1,.op2).}..test."functio |
| 17100 | 6e 22 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 64 6f 5f 6f 70 28 61 64 64 2c 20 35 2c 20 36 29 | n".{.....assert(do_op(add,.5,.6) |
| 17120 | 20 3d 3d 20 31 31 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 64 6f 5f 6f 70 28 73 75 62 32 2c 20 | .==.11);.....assert(do_op(sub2,. |
| 17140 | 35 2c 20 36 29 20 3d 3d 20 2d 31 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 | 5,.6).==.-1);.}</code></pre>.... |
| 17160 | 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 74 | ...<pre><code.class="sh">$.zig.t |
| 17180 | 65 73 74 20 66 75 6e 63 74 69 6f 6e 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 66 75 6e 63 74 69 | est.function.zig.Test.1/1.functi |
| 171a0 | 6f 6e 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 46 | on...OK.</code></pre>.......<p>F |
| 171c0 | 75 6e 63 74 69 6f 6e 20 76 61 6c 75 65 73 20 61 72 65 20 6c 69 6b 65 20 70 6f 69 6e 74 65 72 73 | unction.values.are.like.pointers |
| 171e0 | 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 | :</p>.......<pre><code.class="zi |
| 17200 | 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 | g">const.assert.=.@import("std") |
| 17220 | 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 61 | .debug.assert;..comptime.{.....a |
| 17240 | 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 66 6f 6f 29 20 3d 3d 20 66 6e 28 29 29 3b 0a 20 20 20 | ssert(@typeOf(foo).==.fn());.... |
| 17260 | 20 61 73 73 65 72 74 28 40 73 69 7a 65 4f 66 28 66 6e 28 29 29 20 3d 3d 20 40 73 69 7a 65 4f 66 | .assert(@sizeOf(fn()).==.@sizeOf |
| 17280 | 28 3f 66 6e 28 29 29 29 3b 0a 7d 0a 0a 66 6e 20 66 6f 6f 28 29 20 7b 20 7d 3c 2f 63 6f 64 65 3e | (?fn()));.}..fn.foo().{.}</code> |
| 172a0 | 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 | </pre>.......<pre><code.class="s |
| 172c0 | 68 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 74 65 73 74 2e 7a 69 67 3c 2f 63 6f 64 | h">$.zig.build-obj.test.zig</cod |
| 172e0 | 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 66 75 6e 63 74 69 6f 6e 73 | e></pre>.......<h3.id="functions |
| 17300 | 2d 62 79 2d 76 61 6c 2d 70 61 72 61 6d 73 22 3e 50 61 73 73 2d 62 79 2d 76 61 6c 75 65 20 50 61 | -by-val-params">Pass-by-value.Pa |
| 17320 | 72 61 6d 65 74 65 72 73 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e | rameters</h3>.......<p>.......In |
| 17340 | 20 5a 69 67 2c 20 73 74 72 75 63 74 73 2c 20 75 6e 69 6f 6e 73 2c 20 61 6e 64 20 65 6e 75 6d 73 | .Zig,.structs,.unions,.and.enums |
| 17360 | 20 77 69 74 68 20 70 61 79 6c 6f 61 64 73 20 63 61 6e 6e 6f 74 20 62 65 20 70 61 73 73 65 64 20 | .with.payloads.cannot.be.passed. |
| 17380 | 62 79 20 76 61 6c 75 65 0a 20 20 20 20 20 20 74 6f 20 61 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 | by.value.......to.a.function.... |
| 173a0 | 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d | ....</p>.......<pre><code.class= |
| 173c0 | 22 7a 69 67 22 3e 63 6f 6e 73 74 20 46 6f 6f 20 3d 20 73 74 72 75 63 74 20 7b 0a 20 20 20 20 78 | "zig">const.Foo.=.struct.{.....x |
| 173e0 | 3a 20 69 33 32 2c 0a 7d 3b 0a 0a 66 6e 20 62 61 72 28 66 6f 6f 3a 20 46 6f 6f 29 20 7b 7d 0a 0a | :.i32,.};..fn.bar(foo:.Foo).{}.. |
| 17400 | 65 78 70 6f 72 74 20 66 6e 20 65 6e 74 72 79 28 29 20 7b 0a 20 20 20 20 62 61 72 28 46 6f 6f 20 | export.fn.entry().{.....bar(Foo. |
| 17420 | 7b 2e 78 20 3d 20 31 32 2c 7d 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 | {.x.=.12,});.}</code></pre>..... |
| 17440 | 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 2e 2f 7a 69 67 20 | ..<pre><code.class="sh">$../zig. |
| 17460 | 62 75 69 6c 64 2d 6f 62 6a 20 74 65 73 74 2e 7a 69 67 20 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 | build-obj.test.zig../home/andy/d |
| 17480 | 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 31 33 3a 20 65 72 72 6f | ev/zig/build/test.zig:5:13:.erro |
| 174a0 | 72 3a 20 74 79 70 65 20 27 46 6f 6f 27 20 69 73 20 6e 6f 74 20 63 6f 70 79 61 62 6c 65 3b 20 63 | r:.type.'Foo'.is.not.copyable;.c |
| 174c0 | 61 6e 6e 6f 74 20 70 61 73 73 20 62 79 20 76 61 6c 75 65 0a 66 6e 20 62 61 72 28 66 6f 6f 3a 20 | annot.pass.by.value.fn.bar(foo:. |
| 174e0 | 46 6f 6f 29 20 7b 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 5e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 | Foo).{}.............^</code></pr |
| 17500 | 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 73 74 65 61 64 2c 20 6f 6e 65 20 | e>.......<p>.......Instead,.one. |
| 17520 | 6d 75 73 74 20 75 73 65 20 3c 63 6f 64 65 3e 26 61 6d 70 3b 63 6f 6e 73 74 3c 2f 63 6f 64 65 3e | must.use.<code>&const</code> |
| 17540 | 2e 20 5a 69 67 20 61 6c 6c 6f 77 73 20 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 69 6e 67 20 | ..Zig.allows.implicitly.casting. |
| 17560 | 73 6f 6d 65 74 68 69 6e 67 0a 20 20 20 20 20 20 74 6f 20 61 20 63 6f 6e 73 74 20 70 6f 69 6e 74 | something.......to.a.const.point |
| 17580 | 65 72 20 74 6f 20 69 74 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e | er.to.it:.......</p>.......<pre> |
| 175a0 | 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 46 6f 6f 20 3d 20 73 74 | <code.class="zig">const.Foo.=.st |
| 175c0 | 72 75 63 74 20 7b 0a 20 20 20 20 78 3a 20 69 33 32 2c 0a 7d 3b 0a 0a 66 6e 20 62 61 72 28 66 6f | ruct.{.....x:.i32,.};..fn.bar(fo |
| 175e0 | 6f 3a 20 26 61 6d 70 3b 63 6f 6e 73 74 20 46 6f 6f 29 20 7b 7d 0a 0a 65 78 70 6f 72 74 20 66 6e | o:.&const.Foo).{}..export.fn |
| 17600 | 20 65 6e 74 72 79 28 29 20 7b 0a 20 20 20 20 62 61 72 28 46 6f 6f 20 7b 2e 78 20 3d 20 31 32 2c | .entry().{.....bar(Foo.{.x.=.12, |
| 17620 | 7d 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 | });.}</code></pre>.......<p>.... |
| 17640 | 20 20 20 48 6f 77 65 76 65 72 2c 0a 20 20 20 20 20 20 74 68 65 20 43 20 41 42 49 20 64 6f 65 73 | ...However,.......the.C.ABI.does |
| 17660 | 20 61 6c 6c 6f 77 20 70 61 73 73 69 6e 67 20 73 74 72 75 63 74 73 20 61 6e 64 20 75 6e 69 6f 6e | .allow.passing.structs.and.union |
| 17680 | 73 20 62 79 20 76 61 6c 75 65 2e 20 53 6f 20 66 75 6e 63 74 69 6f 6e 73 20 77 68 69 63 68 0a 20 | s.by.value..So.functions.which.. |
| 176a0 | 20 20 20 20 20 75 73 65 20 74 68 65 20 43 20 63 61 6c 6c 69 6e 67 20 63 6f 6e 76 65 6e 74 69 6f | .....use.the.C.calling.conventio |
| 176c0 | 6e 20 6d 61 79 20 70 61 73 73 20 73 74 72 75 63 74 73 20 61 6e 64 20 75 6e 69 6f 6e 73 20 62 79 | n.may.pass.structs.and.unions.by |
| 176e0 | 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d | .value........</p>.......<h2.id= |
| 17700 | 22 65 72 72 6f 72 73 22 3e 45 72 72 6f 72 73 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 | "errors">Errors</h2>.......<p>.. |
| 17720 | 20 20 20 20 20 4f 6e 65 20 6f 66 20 74 68 65 20 64 69 73 74 69 6e 67 75 69 73 68 69 6e 67 20 66 | .....One.of.the.distinguishing.f |
| 17740 | 65 61 74 75 72 65 73 20 6f 66 20 5a 69 67 20 69 73 20 69 74 73 20 65 78 63 65 70 74 69 6f 6e 20 | eatures.of.Zig.is.its.exception. |
| 17760 | 68 61 6e 64 6c 69 6e 67 20 73 74 72 61 74 65 67 79 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 | handling.strategy........</p>... |
| 17780 | 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 6d 6f 6e 67 20 74 68 65 20 74 6f 70 20 6c 65 76 65 | ....<p>.......Among.the.top.leve |
| 177a0 | 6c 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 61 76 61 69 6c 61 62 6c 65 20 69 73 20 74 68 65 20 | l.declarations.available.is.the. |
| 177c0 | 65 72 72 6f 72 20 76 61 6c 75 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 3a 0a 20 20 20 20 20 20 3c | error.value.declaration:.......< |
| 177e0 | 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 | /p>.......<pre><code.class="zig" |
| 17800 | 3e 65 72 72 6f 72 20 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 3b 0a 65 72 72 6f 72 20 4f 75 74 4f 66 | >error.FileNotFound;.error.OutOf |
| 17820 | 4d 65 6d 6f 72 79 3b 0a 65 72 72 6f 72 20 55 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 3b 3c 2f | Memory;.error.UnexpectedToken;</ |
| 17840 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 73 | code></pre>.......<p>.......Thes |
| 17860 | 65 20 65 72 72 6f 72 20 76 61 6c 75 65 73 20 61 72 65 20 61 73 73 69 67 6e 65 64 20 61 6e 20 75 | e.error.values.are.assigned.an.u |
| 17880 | 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 20 76 61 6c 75 65 20 67 72 65 61 74 65 72 20 74 68 | nsigned.integer.value.greater.th |
| 178a0 | 61 6e 20 30 20 61 74 0a 20 20 20 20 20 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 2e 20 59 6f 75 20 | an.0.at.......compile.time..You. |
| 178c0 | 61 72 65 20 61 6c 6c 6f 77 65 64 20 74 6f 20 64 65 63 6c 61 72 65 20 74 68 65 20 73 61 6d 65 20 | are.allowed.to.declare.the.same. |
| 178e0 | 65 72 72 6f 72 20 76 61 6c 75 65 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 63 65 2c 0a 20 20 20 20 | error.value.more.than.once,..... |
| 17900 | 20 20 61 6e 64 20 69 66 20 79 6f 75 20 64 6f 2c 20 69 74 20 67 65 74 73 20 61 73 73 69 67 6e 65 | ..and.if.you.do,.it.gets.assigne |
| 17920 | 64 20 74 68 65 20 73 61 6d 65 20 69 6e 74 65 67 65 72 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 | d.the.same.integer.value........ |
| 17940 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 59 6f 75 20 63 61 6e 20 72 65 66 | </p>.......<p>.......You.can.ref |
| 17960 | 65 72 20 74 6f 20 74 68 65 73 65 20 65 72 72 6f 72 20 76 61 6c 75 65 73 20 77 69 74 68 20 74 68 | er.to.these.error.values.with.th |
| 17980 | 65 20 65 72 72 6f 72 20 6e 61 6d 65 73 70 61 63 65 20 73 75 63 68 20 61 73 0a 20 20 20 20 20 20 | e.error.namespace.such.as....... |
| 179a0 | 3c 63 6f 64 65 3e 65 72 72 6f 72 2e 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 3c 2f 63 6f 64 65 3e 2e | <code>error.FileNotFound</code>. |
| 179c0 | 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 45 61 63 68 | .......</p>.......<p>.......Each |
| 179e0 | 20 65 72 72 6f 72 20 76 61 6c 75 65 20 61 63 72 6f 73 73 20 74 68 65 20 65 6e 74 69 72 65 20 63 | .error.value.across.the.entire.c |
| 17a00 | 6f 6d 70 69 6c 61 74 69 6f 6e 20 75 6e 69 74 20 67 65 74 73 20 61 20 75 6e 69 71 75 65 20 69 6e | ompilation.unit.gets.a.unique.in |
| 17a20 | 74 65 67 65 72 2c 0a 20 20 20 20 20 20 61 6e 64 20 74 68 69 73 20 64 65 74 65 72 6d 69 6e 65 73 | teger,.......and.this.determines |
| 17a40 | 20 74 68 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20 70 75 72 65 20 65 72 72 6f 72 20 74 79 70 65 | .the.size.of.the.pure.error.type |
| 17a60 | 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 | ........</p>.......<p>.......The |
| 17a80 | 20 70 75 72 65 20 65 72 72 6f 72 20 74 79 70 65 20 69 73 20 6f 6e 65 20 6f 66 20 74 68 65 20 65 | .pure.error.type.is.one.of.the.e |
| 17aa0 | 72 72 6f 72 20 76 61 6c 75 65 73 2c 20 61 6e 64 20 69 6e 20 74 68 65 20 73 61 6d 65 20 77 61 79 | rror.values,.and.in.the.same.way |
| 17ac0 | 20 74 68 61 74 20 70 6f 69 6e 74 65 72 73 0a 20 20 20 20 20 20 63 61 6e 6e 6f 74 20 62 65 20 6e | .that.pointers.......cannot.be.n |
| 17ae0 | 75 6c 6c 2c 20 61 20 70 75 72 65 20 65 72 72 6f 72 20 69 73 20 61 6c 77 61 79 73 20 61 6e 20 65 | ull,.a.pure.error.is.always.an.e |
| 17b00 | 72 72 6f 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 | rror........</p>.......<pre><cod |
| 17b20 | 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 70 75 72 65 5f 65 72 72 6f 72 20 3d | e.class="zig">const.pure_error.= |
| 17b40 | 20 65 72 72 6f 72 2e 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 | .error.FileNotFound;</code></pre |
| 17b60 | 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4d 6f 73 74 20 6f 66 20 74 68 65 20 74 69 | >.......<p>.......Most.of.the.ti |
| 17b80 | 6d 65 20 79 6f 75 20 77 69 6c 6c 20 6e 6f 74 20 66 69 6e 64 20 79 6f 75 72 73 65 6c 66 20 75 73 | me.you.will.not.find.yourself.us |
| 17ba0 | 69 6e 67 20 61 20 70 75 72 65 20 65 72 72 6f 72 20 74 79 70 65 2e 20 49 6e 73 74 65 61 64 2c 0a | ing.a.pure.error.type..Instead,. |
| 17bc0 | 20 20 20 20 20 20 6c 69 6b 65 6c 79 20 79 6f 75 20 77 69 6c 6c 20 62 65 20 75 73 69 6e 67 20 74 | ......likely.you.will.be.using.t |
| 17be0 | 68 65 20 65 72 72 6f 72 20 75 6e 69 6f 6e 20 74 79 70 65 2e 20 54 68 69 73 20 69 73 20 77 68 65 | he.error.union.type..This.is.whe |
| 17c00 | 6e 20 79 6f 75 20 74 61 6b 65 20 61 20 6e 6f 72 6d 61 6c 20 74 79 70 65 2c 0a 20 20 20 20 20 20 | n.you.take.a.normal.type,....... |
| 17c20 | 61 6e 64 20 70 72 65 66 69 78 20 69 74 20 77 69 74 68 20 74 68 65 20 3c 63 6f 64 65 3e 25 3c 2f | and.prefix.it.with.the.<code>%</ |
| 17c40 | 63 6f 64 65 3e 20 6f 70 65 72 61 74 6f 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 | code>.operator........</p>...... |
| 17c60 | 20 3c 70 3e 0a 20 20 20 20 20 20 48 65 72 65 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 6f | .<p>.......Here.is.a.function.to |
| 17c80 | 20 70 61 72 73 65 20 61 20 73 74 72 69 6e 67 20 69 6e 74 6f 20 61 20 36 34 2d 62 69 74 20 69 6e | .parse.a.string.into.a.64-bit.in |
| 17ca0 | 74 65 67 65 72 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f | teger:.......</p>.......<pre><co |
| 17cc0 | 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 65 72 72 6f 72 20 49 6e 76 61 6c 69 64 43 68 61 72 | de.class="zig">error.InvalidChar |
| 17ce0 | 3b 0a 65 72 72 6f 72 20 4f 76 65 72 66 6c 6f 77 3b 0a 0a 70 75 62 20 66 6e 20 70 61 72 73 65 55 | ;.error.Overflow;..pub.fn.parseU |
| 17d00 | 36 34 28 62 75 66 3a 20 5b 5d 63 6f 6e 73 74 20 75 38 2c 20 72 61 64 69 78 3a 20 75 38 29 20 2d | 64(buf:.[]const.u8,.radix:.u8).- |
| 17d20 | 26 67 74 3b 20 25 75 36 34 20 7b 0a 20 20 20 20 76 61 72 20 78 3a 20 75 36 34 20 3d 20 30 3b 0a | >.%u64.{.....var.x:.u64.=.0;. |
| 17d40 | 0a 20 20 20 20 66 6f 72 20 28 62 75 66 29 20 7c 63 7c 20 7b 0a 20 20 20 20 20 20 20 20 63 6f 6e | .....for.(buf).|c|.{.........con |
| 17d60 | 73 74 20 64 69 67 69 74 20 3d 20 63 68 61 72 54 6f 44 69 67 69 74 28 63 29 3b 0a 0a 20 20 20 20 | st.digit.=.charToDigit(c);...... |
| 17d80 | 20 20 20 20 69 66 20 28 64 69 67 69 74 20 26 67 74 3b 3d 20 72 61 64 69 78 29 20 7b 0a 20 20 20 | ....if.(digit.>=.radix).{.... |
| 17da0 | 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 65 72 72 6f 72 2e 49 6e 76 61 6c 69 64 43 68 61 | .........return.error.InvalidCha |
| 17dc0 | 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 78 20 2a 3d 20 72 61 | r;.........}..........//.x.*=.ra |
| 17de0 | 64 69 78 0a 20 20 20 20 20 20 20 20 69 66 20 28 40 6d 75 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 | dix.........if.(@mulWithOverflow |
| 17e00 | 28 75 36 34 2c 20 78 2c 20 72 61 64 69 78 2c 20 26 61 6d 70 3b 78 29 29 20 7b 0a 20 20 20 20 20 | (u64,.x,.radix,.&x)).{...... |
| 17e20 | 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 65 72 72 6f 72 2e 4f 76 65 72 66 6c 6f 77 3b 0a 20 20 | .......return.error.Overflow;... |
| 17e40 | 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 78 20 2b 3d 20 64 69 67 69 74 0a 20 | ......}..........//.x.+=.digit.. |
| 17e60 | 20 20 20 20 20 20 20 69 66 20 28 40 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 28 75 36 34 2c | .......if.(@addWithOverflow(u64, |
| 17e80 | 20 78 2c 20 64 69 67 69 74 2c 20 26 61 6d 70 3b 78 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 | .x,.digit,.&x)).{........... |
| 17ea0 | 20 20 72 65 74 75 72 6e 20 65 72 72 6f 72 2e 4f 76 65 72 66 6c 6f 77 3b 0a 20 20 20 20 20 20 20 | ..return.error.Overflow;........ |
| 17ec0 | 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 78 3b 0a 7d 3c 2f 63 6f 64 65 3e | .}.....}......return.x;.}</code> |
| 17ee0 | 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 74 69 63 65 20 74 68 | </pre>.......<p>.......Notice.th |
| 17f00 | 65 20 72 65 74 75 72 6e 20 74 79 70 65 20 69 73 20 3c 63 6f 64 65 3e 25 75 36 34 3c 2f 63 6f 64 | e.return.type.is.<code>%u64</cod |
| 17f20 | 65 3e 2e 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 74 68 65 20 66 75 6e 63 74 69 6f 6e | e>..This.means.that.the.function |
| 17f40 | 0a 20 20 20 20 20 20 65 69 74 68 65 72 20 72 65 74 75 72 6e 73 20 61 6e 20 75 6e 73 69 67 6e 65 | .......either.returns.an.unsigne |
| 17f60 | 64 20 36 34 20 62 69 74 20 69 6e 74 65 67 65 72 2c 20 6f 72 20 61 6e 20 65 72 72 6f 72 2e 0a 20 | d.64.bit.integer,.or.an.error... |
| 17f80 | 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 69 74 68 69 6e | .....</p>.......<p>.......Within |
| 17fa0 | 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 64 65 66 69 6e 69 74 69 6f 6e 2c 20 79 6f 75 20 63 61 | .the.function.definition,.you.ca |
| 17fc0 | 6e 20 73 65 65 20 73 6f 6d 65 20 72 65 74 75 72 6e 20 73 74 61 74 65 6d 65 6e 74 73 20 74 68 61 | n.see.some.return.statements.tha |
| 17fe0 | 74 20 72 65 74 75 72 6e 0a 20 20 20 20 20 20 61 20 70 75 72 65 20 65 72 72 6f 72 2c 20 61 6e 64 | t.return.......a.pure.error,.and |
| 18000 | 20 61 74 20 74 68 65 20 62 6f 74 74 6f 6d 20 61 20 72 65 74 75 72 6e 20 73 74 61 74 65 6d 65 6e | .at.the.bottom.a.return.statemen |
| 18020 | 74 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 61 20 3c 63 6f 64 65 3e 75 36 34 3c 2f 63 6f 64 65 | t.that.returns.a.<code>u64</code |
| 18040 | 3e 2e 0a 20 20 20 20 20 20 42 6f 74 68 20 74 79 70 65 73 20 69 6d 70 6c 69 63 69 74 6c 79 20 63 | >........Both.types.implicitly.c |
| 18060 | 61 73 74 20 74 6f 20 3c 63 6f 64 65 3e 25 75 36 34 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 | ast.to.<code>%u64</code>........ |
| 18080 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 61 74 20 69 74 20 6c 6f 6f | </p>.......<p>.......What.it.loo |
| 180a0 | 6b 73 20 6c 69 6b 65 20 74 6f 20 75 73 65 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 76 61 72 | ks.like.to.use.this.function.var |
| 180c0 | 69 65 73 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 77 68 61 74 20 79 6f 75 27 72 65 0a 20 20 20 | ies.depending.on.what.you're.... |
| 180e0 | 20 20 20 74 72 79 69 6e 67 20 74 6f 20 64 6f 2e 20 4f 6e 65 20 6f 66 20 74 68 65 20 66 6f 6c 6c | ...trying.to.do..One.of.the.foll |
| 18100 | 6f 77 69 6e 67 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 | owing:.......</p>.......<ul>.... |
| 18120 | 20 20 20 20 20 3c 6c 69 3e 59 6f 75 20 77 61 6e 74 20 74 6f 20 70 72 6f 76 69 64 65 20 61 20 64 | .....<li>You.want.to.provide.a.d |
| 18140 | 65 66 61 75 6c 74 20 76 61 6c 75 65 20 69 66 20 69 74 20 72 65 74 75 72 6e 65 64 20 61 6e 20 65 | efault.value.if.it.returned.an.e |
| 18160 | 72 72 6f 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 49 66 20 69 74 20 72 65 74 | rror.</li>.........<li>If.it.ret |
| 18180 | 75 72 6e 65 64 20 61 6e 20 65 72 72 6f 72 20 74 68 65 6e 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 | urned.an.error.then.you.want.to. |
| 181a0 | 72 65 74 75 72 6e 20 74 68 65 20 73 61 6d 65 20 65 72 72 6f 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 | return.the.same.error.</li>..... |
| 181c0 | 20 20 20 20 3c 6c 69 3e 59 6f 75 20 6b 6e 6f 77 20 77 69 74 68 20 63 6f 6d 70 6c 65 74 65 20 63 | ....<li>You.know.with.complete.c |
| 181e0 | 65 72 74 61 69 6e 74 79 20 69 74 20 77 69 6c 6c 20 6e 6f 74 20 72 65 74 75 72 6e 20 61 6e 20 65 | ertainty.it.will.not.return.an.e |
| 18200 | 72 72 6f 72 2c 20 73 6f 20 77 61 6e 74 20 74 6f 20 75 6e 63 6f 6e 64 69 74 69 6f 6e 61 6c 6c 79 | rror,.so.want.to.unconditionally |
| 18220 | 20 75 6e 77 72 61 70 20 69 74 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 59 6f 75 | .unwrap.it.</li>.........<li>You |
| 18240 | 20 77 61 6e 74 20 74 6f 20 74 61 6b 65 20 61 20 64 69 66 66 65 72 65 6e 74 20 61 63 74 69 6f 6e | .want.to.take.a.different.action |
| 18260 | 20 66 6f 72 20 65 61 63 68 20 70 6f 73 73 69 62 6c 65 20 65 72 72 6f 72 2e 3c 2f 6c 69 3e 0a 20 | .for.each.possible.error.</li>.. |
| 18280 | 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 49 66 20 79 6f 75 20 77 61 6e 74 20 | .....</ul>.......<p>If.you.want. |
| 182a0 | 74 6f 20 70 72 6f 76 69 64 65 20 61 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 2c 20 79 6f 75 20 | to.provide.a.default.value,.you. |
| 182c0 | 63 61 6e 20 75 73 65 20 74 68 65 20 3c 63 6f 64 65 3e 25 25 3c 2f 63 6f 64 65 3e 20 62 69 6e 61 | can.use.the.<code>%%</code>.bina |
| 182e0 | 72 79 20 6f 70 65 72 61 74 6f 72 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 | ry.operator:</p>.......<pre><cod |
| 18300 | 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 6e 20 64 6f 41 54 68 69 6e 67 28 73 74 72 3a 20 5b | e.class="zig">fn.doAThing(str:.[ |
| 18320 | 5d 75 38 29 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 6e 75 6d 62 65 72 20 3d 20 70 61 72 73 65 55 | ]u8).{.....const.number.=.parseU |
| 18340 | 36 34 28 73 74 72 2c 20 31 30 29 20 25 25 20 31 33 3b 0a 20 20 20 20 2f 2f 20 2e 2e 2e 0a 7d 3c | 64(str,.10).%%.13;.....//.....}< |
| 18360 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 | /code></pre>.......<p>.......In. |
| 18380 | 74 68 69 73 20 63 6f 64 65 2c 20 3c 63 6f 64 65 3e 6e 75 6d 62 65 72 3c 2f 63 6f 64 65 3e 20 77 | this.code,.<code>number</code>.w |
| 183a0 | 69 6c 6c 20 62 65 20 65 71 75 61 6c 20 74 6f 20 74 68 65 20 73 75 63 63 65 73 73 66 75 6c 6c 79 | ill.be.equal.to.the.successfully |
| 183c0 | 20 70 61 72 73 65 64 20 73 74 72 69 6e 67 2c 20 6f 72 0a 20 20 20 20 20 20 61 20 64 65 66 61 75 | .parsed.string,.or.......a.defau |
| 183e0 | 6c 74 20 76 61 6c 75 65 20 6f 66 20 31 33 2e 20 54 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 | lt.value.of.13..The.type.of.the. |
| 18400 | 72 69 67 68 74 20 68 61 6e 64 20 73 69 64 65 20 6f 66 20 74 68 65 20 62 69 6e 61 72 79 20 3c 63 | right.hand.side.of.the.binary.<c |
| 18420 | 6f 64 65 3e 25 25 3c 2f 63 6f 64 65 3e 20 6f 70 65 72 61 74 6f 72 20 6d 75 73 74 0a 20 20 20 20 | ode>%%</code>.operator.must..... |
| 18440 | 20 20 6d 61 74 63 68 20 74 68 65 20 75 6e 77 72 61 70 70 65 64 20 65 72 72 6f 72 20 75 6e 69 6f | ..match.the.unwrapped.error.unio |
| 18460 | 6e 20 74 79 70 65 2c 20 6f 72 20 62 65 20 6f 66 20 74 79 70 65 20 3c 63 6f 64 65 3e 6e 6f 72 65 | n.type,.or.be.of.type.<code>nore |
| 18480 | 74 75 72 6e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 | turn</code>........</p>.......<p |
| 184a0 | 3e 4c 65 74 27 73 20 73 61 79 20 79 6f 75 20 77 61 6e 74 65 64 20 74 6f 20 72 65 74 75 72 6e 20 | >Let's.say.you.wanted.to.return. |
| 184c0 | 74 68 65 20 65 72 72 6f 72 20 69 66 20 79 6f 75 20 67 6f 74 20 6f 6e 65 2c 20 6f 74 68 65 72 77 | the.error.if.you.got.one,.otherw |
| 184e0 | 69 73 65 20 63 6f 6e 74 69 6e 75 65 20 77 69 74 68 20 74 68 65 0a 20 20 20 20 20 20 66 75 6e 63 | ise.continue.with.the.......func |
| 18500 | 74 69 6f 6e 20 6c 6f 67 69 63 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 | tion.logic:</p>.......<pre><code |
| 18520 | 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 6e 20 64 6f 41 54 68 69 6e 67 28 73 74 72 3a 20 5b 5d | .class="zig">fn.doAThing(str:.[] |
| 18540 | 75 38 29 20 2d 26 67 74 3b 20 25 76 6f 69 64 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 6e 75 6d 62 | u8).->.%void.{.....const.numb |
| 18560 | 65 72 20 3d 20 70 61 72 73 65 55 36 34 28 73 74 72 2c 20 31 30 29 20 25 25 20 7c 65 72 72 7c 20 | er.=.parseU64(str,.10).%%.|err|. |
| 18580 | 72 65 74 75 72 6e 20 65 72 72 3b 0a 20 20 20 20 2f 2f 20 2e 2e 2e 0a 7d 3c 2f 63 6f 64 65 3e 3c | return.err;.....//.....}</code>< |
| 185a0 | 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 54 68 65 72 65 20 69 73 | /pre>.......<p>.........There.is |
| 185c0 | 20 61 20 73 68 6f 72 74 63 75 74 20 66 6f 72 20 74 68 69 73 2e 20 54 68 65 20 3c 63 6f 64 65 3e | .a.shortcut.for.this..The.<code> |
| 185e0 | 25 72 65 74 75 72 6e 3c 2f 63 6f 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e 3a 0a 20 20 20 20 20 | %return</code>.expression:...... |
| 18600 | 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 | .</p>.......<pre><code.class="zi |
| 18620 | 67 22 3e 66 6e 20 64 6f 41 54 68 69 6e 67 28 73 74 72 3a 20 5b 5d 75 38 29 20 2d 26 67 74 3b 20 | g">fn.doAThing(str:.[]u8).->. |
| 18640 | 25 76 6f 69 64 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 6e 75 6d 62 65 72 20 3d 20 25 72 65 74 75 | %void.{.....const.number.=.%retu |
| 18660 | 72 6e 20 70 61 72 73 65 55 36 34 28 73 74 72 2c 20 31 30 29 3b 0a 20 20 20 20 2f 2f 20 2e 2e 2e | rn.parseU64(str,.10);.....//.... |
| 18680 | 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 | .}</code></pre>.......<p>....... |
| 186a0 | 3c 63 6f 64 65 3e 25 72 65 74 75 72 6e 3c 2f 63 6f 64 65 3e 20 65 76 61 6c 75 61 74 65 73 20 61 | <code>%return</code>.evaluates.a |
| 186c0 | 6e 20 65 72 72 6f 72 20 75 6e 69 6f 6e 20 65 78 70 72 65 73 73 69 6f 6e 2e 20 49 66 20 69 74 20 | n.error.union.expression..If.it. |
| 186e0 | 69 73 20 61 6e 20 65 72 72 6f 72 2c 20 69 74 20 72 65 74 75 72 6e 73 0a 20 20 20 20 20 20 66 72 | is.an.error,.it.returns.......fr |
| 18700 | 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 74 68 65 | om.the.current.function.with.the |
| 18720 | 20 73 61 6d 65 20 65 72 72 6f 72 2e 20 4f 74 68 65 72 77 69 73 65 2c 20 74 68 65 20 65 78 70 72 | .same.error..Otherwise,.the.expr |
| 18740 | 65 73 73 69 6f 6e 20 72 65 73 75 6c 74 73 20 69 6e 0a 20 20 20 20 20 20 74 68 65 20 75 6e 77 72 | ession.results.in.......the.unwr |
| 18760 | 61 70 70 65 64 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 | apped.value........</p>.......<p |
| 18780 | 3e 0a 20 20 20 20 20 20 20 20 4d 61 79 62 65 20 79 6f 75 20 6b 6e 6f 77 20 77 69 74 68 20 63 6f | >.........Maybe.you.know.with.co |
| 187a0 | 6d 70 6c 65 74 65 20 63 65 72 74 61 69 6e 74 79 20 74 68 61 74 20 61 6e 20 65 78 70 72 65 73 73 | mplete.certainty.that.an.express |
| 187c0 | 69 6f 6e 20 77 69 6c 6c 20 6e 65 76 65 72 20 62 65 20 61 6e 20 65 72 72 6f 72 2e 0a 20 20 20 20 | ion.will.never.be.an.error...... |
| 187e0 | 20 20 20 20 49 6e 20 74 68 69 73 20 63 61 73 65 20 79 6f 75 20 63 61 6e 20 64 6f 20 74 68 69 73 | ....In.this.case.you.can.do.this |
| 18800 | 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | :.......</p>.......<pre><code.cl |
| 18820 | 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 6e 75 6d 62 65 72 20 3d 20 70 61 72 73 65 55 36 | ass="zig">const.number.=.parseU6 |
| 18840 | 34 28 22 31 32 33 34 22 2c 20 31 30 29 20 25 25 20 75 6e 72 65 61 63 68 61 62 6c 65 3b 3c 2f 63 | 4("1234",.10).%%.unreachable;</c |
| 18860 | 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 48 65 72 65 20 | ode></pre>.......<p>.......Here. |
| 18880 | 77 65 20 6b 6e 6f 77 20 66 6f 72 20 73 75 72 65 20 74 68 61 74 20 22 31 32 33 34 22 20 77 69 6c | we.know.for.sure.that."1234".wil |
| 188a0 | 6c 20 70 61 72 73 65 20 73 75 63 63 65 73 73 66 75 6c 6c 79 2e 20 53 6f 20 77 65 20 70 75 74 20 | l.parse.successfully..So.we.put. |
| 188c0 | 74 68 65 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 63 6f 64 | the.......<code>unreachable</cod |
| 188e0 | 65 3e 20 76 61 6c 75 65 20 6f 6e 20 74 68 65 20 72 69 67 68 74 20 68 61 6e 64 20 73 69 64 65 2e | e>.value.on.the.right.hand.side. |
| 18900 | 20 3c 63 6f 64 65 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 63 6f 64 65 3e 20 67 65 6e 65 72 61 | .<code>unreachable</code>.genera |
| 18920 | 74 65 73 0a 20 20 20 20 20 20 61 20 70 61 6e 69 63 20 69 6e 20 44 65 62 75 67 20 61 6e 64 20 52 | tes.......a.panic.in.Debug.and.R |
| 18940 | 65 6c 65 61 73 65 53 61 66 65 20 6d 6f 64 65 73 20 61 6e 64 20 75 6e 64 65 66 69 6e 65 64 20 62 | eleaseSafe.modes.and.undefined.b |
| 18960 | 65 68 61 76 69 6f 72 20 69 6e 20 52 65 6c 65 61 73 65 46 61 73 74 20 6d 6f 64 65 2e 20 53 6f 2c | ehavior.in.ReleaseFast.mode..So, |
| 18980 | 20 77 68 69 6c 65 20 77 65 27 72 65 20 64 65 62 75 67 67 69 6e 67 20 74 68 65 0a 20 20 20 20 20 | .while.we're.debugging.the...... |
| 189a0 | 20 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 69 66 20 74 68 65 72 65 20 3c 65 6d 3e 77 61 73 3c 2f | .application,.if.there.<em>was</ |
| 189c0 | 65 6d 3e 20 61 20 73 75 72 70 72 69 73 65 20 65 72 72 6f 72 20 68 65 72 65 2c 20 74 68 65 20 61 | em>.a.surprise.error.here,.the.a |
| 189e0 | 70 70 6c 69 63 61 74 69 6f 6e 20 77 6f 75 6c 64 20 63 72 61 73 68 0a 20 20 20 20 20 20 61 70 70 | pplication.would.crash.......app |
| 18a00 | 72 6f 70 72 69 61 74 65 6c 79 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e | ropriately........</p>.......<p> |
| 18a20 | 41 67 61 69 6e 20 74 68 65 72 65 20 69 73 20 61 20 73 79 6e 74 61 63 74 69 63 20 73 68 6f 72 74 | Again.there.is.a.syntactic.short |
| 18a40 | 63 75 74 20 66 6f 72 20 74 68 69 73 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f | cut.for.this:</p>.......<pre><co |
| 18a60 | 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 6e 75 6d 62 65 72 20 3d 20 25 25 | de.class="zig">const.number.=.%% |
| 18a80 | 70 61 72 73 65 55 36 34 28 22 31 32 33 34 22 2c 20 31 30 29 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 | parseU64("1234",.10);</code></pr |
| 18aa0 | 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 3c 63 6f 64 65 3e 25 25 3c | e>.......<p>.......The.<code>%%< |
| 18ac0 | 2f 63 6f 64 65 3e 20 3c 65 6d 3e 70 72 65 66 69 78 3c 2f 65 6d 3e 20 6f 70 65 72 61 74 6f 72 20 | /code>.<em>prefix</em>.operator. |
| 18ae0 | 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 | is.equivalent.to.<code.class="zi |
| 18b00 | 67 22 3e 65 78 70 72 65 73 73 69 6f 6e 20 25 25 20 7c 65 72 72 7c 20 72 65 74 75 72 6e 20 65 72 | g">expression.%%.|err|.return.er |
| 18b20 | 72 3c 2f 63 6f 64 65 3e 2e 20 49 74 20 75 6e 77 72 61 70 73 20 61 6e 20 65 72 72 6f 72 20 75 6e | r</code>..It.unwraps.an.error.un |
| 18b40 | 69 6f 6e 20 74 79 70 65 2c 0a 20 20 20 20 20 20 61 6e 64 20 70 61 6e 69 63 73 20 69 6e 20 64 65 | ion.type,.......and.panics.in.de |
| 18b60 | 62 75 67 20 6d 6f 64 65 20 69 66 20 74 68 65 20 76 61 6c 75 65 20 77 61 73 20 61 6e 20 65 72 72 | bug.mode.if.the.value.was.an.err |
| 18b80 | 6f 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 | or........</p>.......<p>.......F |
| 18ba0 | 69 6e 61 6c 6c 79 2c 20 79 6f 75 20 6d 61 79 20 77 61 6e 74 20 74 6f 20 74 61 6b 65 20 61 20 64 | inally,.you.may.want.to.take.a.d |
| 18bc0 | 69 66 66 65 72 65 6e 74 20 61 63 74 69 6f 6e 20 66 6f 72 20 65 76 65 72 79 20 73 69 74 75 61 74 | ifferent.action.for.every.situat |
| 18be0 | 69 6f 6e 2e 20 46 6f 72 20 74 68 61 74 2c 20 77 65 20 63 6f 6d 62 69 6e 65 0a 20 20 20 20 20 20 | ion..For.that,.we.combine....... |
| 18c00 | 74 68 65 20 3c 63 6f 64 65 3e 69 66 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 73 77 | the.<code>if</code>.and.<code>sw |
| 18c20 | 69 74 63 68 3c 2f 63 6f 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e 3a 0a 20 20 20 20 20 20 3c 2f | itch</code>.expression:.......</ |
| 18c40 | 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e | p>.......<pre><code.class="zig"> |
| 18c60 | 66 6e 20 64 6f 41 54 68 69 6e 67 28 73 74 72 3a 20 5b 5d 75 38 29 20 7b 0a 20 20 20 20 69 66 20 | fn.doAThing(str:.[]u8).{.....if. |
| 18c80 | 28 70 61 72 73 65 55 36 34 28 73 74 72 2c 20 31 30 29 29 20 7c 6e 75 6d 62 65 72 7c 20 7b 0a 20 | (parseU64(str,.10)).|number|.{.. |
| 18ca0 | 20 20 20 20 20 20 20 64 6f 53 6f 6d 65 74 68 69 6e 67 57 69 74 68 4e 75 6d 62 65 72 28 6e 75 6d | .......doSomethingWithNumber(num |
| 18cc0 | 62 65 72 29 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7c 65 72 72 7c 20 73 77 69 74 63 68 20 28 65 | ber);.....}.else.|err|.switch.(e |
| 18ce0 | 72 72 29 20 7b 0a 20 20 20 20 20 20 20 20 65 72 72 6f 72 2e 4f 76 65 72 66 6c 6f 77 20 3d 26 67 | rr).{.........error.Overflow.=&g |
| 18d00 | 74 3b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 68 61 6e 64 6c 65 20 6f 76 65 72 66 | t;.{.............//.handle.overf |
| 18d20 | 6c 6f 77 2e 2e 2e 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 2f 2f 20 77 65 20 | low............},.........//.we. |
| 18d40 | 70 72 6f 6d 69 73 65 20 74 68 61 74 20 49 6e 76 61 6c 69 64 43 68 61 72 20 77 6f 6e 27 74 20 68 | promise.that.InvalidChar.won't.h |
| 18d60 | 61 70 70 65 6e 20 28 6f 72 20 63 72 61 73 68 20 69 6e 20 64 65 62 75 67 20 6d 6f 64 65 20 69 66 | appen.(or.crash.in.debug.mode.if |
| 18d80 | 20 69 74 20 64 6f 65 73 29 0a 20 20 20 20 20 20 20 20 65 72 72 6f 72 2e 49 6e 76 61 6c 69 64 43 | .it.does).........error.InvalidC |
| 18da0 | 68 61 72 20 3d 26 67 74 3b 20 75 6e 72 65 61 63 68 61 62 6c 65 2c 0a 20 20 20 20 7d 0a 7d 3c 2f | har.=>.unreachable,.....}.}</ |
| 18dc0 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 | code></pre>.......<p>.......The. |
| 18de0 | 6f 74 68 65 72 20 63 6f 6d 70 6f 6e 65 6e 74 20 74 6f 20 65 72 72 6f 72 20 68 61 6e 64 6c 69 6e | other.component.to.error.handlin |
| 18e00 | 67 20 69 73 20 64 65 66 65 72 20 73 74 61 74 65 6d 65 6e 74 73 2e 0a 20 20 20 20 20 20 49 6e 20 | g.is.defer.statements........In. |
| 18e20 | 61 64 64 69 74 69 6f 6e 20 74 6f 20 61 6e 20 75 6e 63 6f 6e 64 69 74 69 6f 6e 61 6c 20 3c 63 6f | addition.to.an.unconditional.<co |
| 18e40 | 64 65 3e 64 65 66 65 72 3c 2f 63 6f 64 65 3e 2c 20 5a 69 67 20 68 61 73 20 3c 63 6f 64 65 3e 25 | de>defer</code>,.Zig.has.<code>% |
| 18e60 | 64 65 66 65 72 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 77 68 69 63 68 20 65 76 61 6c 75 61 | defer</code>,.......which.evalua |
| 18e80 | 74 65 73 20 74 68 65 20 64 65 66 65 72 72 65 64 20 65 78 70 72 65 73 73 69 6f 6e 20 6f 6e 20 62 | tes.the.deferred.expression.on.b |
| 18ea0 | 6c 6f 63 6b 20 65 78 69 74 20 70 61 74 68 20 69 66 20 61 6e 64 20 6f 6e 6c 79 20 69 66 0a 20 20 | lock.exit.path.if.and.only.if... |
| 18ec0 | 20 20 20 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 65 64 20 77 69 74 68 20 61 | ....the.function.returned.with.a |
| 18ee0 | 6e 20 65 72 72 6f 72 20 66 72 6f 6d 20 74 68 65 20 62 6c 6f 63 6b 2e 0a 20 20 20 20 20 20 3c 2f | n.error.from.the.block........</ |
| 18f00 | 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 45 78 61 6d 70 6c 65 3a 0a 20 20 20 20 | p>.......<p>.......Example:..... |
| 18f20 | 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a | ..</p>.......<pre><code.class="z |
| 18f40 | 69 67 22 3e 66 6e 20 63 72 65 61 74 65 46 6f 6f 28 70 61 72 61 6d 3a 20 69 33 32 29 20 2d 26 67 | ig">fn.createFoo(param:.i32).-&g |
| 18f60 | 74 3b 20 25 46 6f 6f 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 66 6f 6f 20 3d 20 25 72 65 74 75 72 | t;.%Foo.{.....const.foo.=.%retur |
| 18f80 | 6e 20 74 72 79 54 6f 41 6c 6c 6f 63 61 74 65 46 6f 6f 28 29 3b 0a 20 20 20 20 2f 2f 20 6e 6f 77 | n.tryToAllocateFoo();.....//.now |
| 18fa0 | 20 77 65 20 68 61 76 65 20 61 6c 6c 6f 63 61 74 65 64 20 66 6f 6f 2e 20 77 65 20 6e 65 65 64 20 | .we.have.allocated.foo..we.need. |
| 18fc0 | 74 6f 20 66 72 65 65 20 69 74 20 69 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 66 61 69 6c 73 | to.free.it.if.the.function.fails |
| 18fe0 | 2e 0a 20 20 20 20 2f 2f 20 62 75 74 20 77 65 20 77 61 6e 74 20 74 6f 20 72 65 74 75 72 6e 20 69 | ......//.but.we.want.to.return.i |
| 19000 | 74 20 69 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 73 75 63 63 65 65 64 73 2e 0a 20 20 20 20 | t.if.the.function.succeeds...... |
| 19020 | 25 64 65 66 65 72 20 64 65 61 6c 6c 6f 63 61 74 65 46 6f 6f 28 66 6f 6f 29 3b 0a 0a 20 20 20 20 | %defer.deallocateFoo(foo);...... |
| 19040 | 63 6f 6e 73 74 20 74 6d 70 5f 62 75 66 20 3d 20 61 6c 6c 6f 63 61 74 65 54 6d 70 42 75 66 66 65 | const.tmp_buf.=.allocateTmpBuffe |
| 19060 | 72 28 29 20 3f 3f 20 72 65 74 75 72 6e 20 65 72 72 6f 72 2e 4f 75 74 4f 66 4d 65 6d 6f 72 79 3b | r().??.return.error.OutOfMemory; |
| 19080 | 0a 20 20 20 20 2f 2f 20 74 6d 70 5f 62 75 66 20 69 73 20 74 72 75 6c 79 20 61 20 74 65 6d 70 6f | .....//.tmp_buf.is.truly.a.tempo |
| 190a0 | 72 61 72 79 20 72 65 73 6f 75 72 63 65 2c 20 61 6e 64 20 77 65 20 66 6f 72 20 73 75 72 65 20 77 | rary.resource,.and.we.for.sure.w |
| 190c0 | 61 6e 74 20 74 6f 20 63 6c 65 61 6e 20 69 74 20 75 70 0a 20 20 20 20 2f 2f 20 62 65 66 6f 72 65 | ant.to.clean.it.up.....//.before |
| 190e0 | 20 74 68 69 73 20 62 6c 6f 63 6b 20 6c 65 61 76 65 73 20 73 63 6f 70 65 0a 20 20 20 20 64 65 66 | .this.block.leaves.scope.....def |
| 19100 | 65 72 20 64 65 61 6c 6c 6f 63 61 74 65 54 6d 70 42 75 66 66 65 72 28 74 6d 70 5f 62 75 66 29 3b | er.deallocateTmpBuffer(tmp_buf); |
| 19120 | 0a 0a 20 20 20 20 69 66 20 28 70 61 72 61 6d 20 26 67 74 3b 20 31 33 33 37 29 20 72 65 74 75 72 | ......if.(param.>.1337).retur |
| 19140 | 6e 20 65 72 72 6f 72 2e 49 6e 76 61 6c 69 64 50 61 72 61 6d 3b 0a 0a 20 20 20 20 2f 2f 20 68 65 | n.error.InvalidParam;......//.he |
| 19160 | 72 65 20 74 68 65 20 25 64 65 66 65 72 20 77 69 6c 6c 20 6e 6f 74 20 72 75 6e 20 73 69 6e 63 65 | re.the.%defer.will.not.run.since |
| 19180 | 20 77 65 27 72 65 20 72 65 74 75 72 6e 69 6e 67 20 73 75 63 63 65 73 73 20 66 72 6f 6d 20 74 68 | .we're.returning.success.from.th |
| 191a0 | 65 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 20 2f 2f 20 62 75 74 20 74 68 65 20 64 65 66 65 72 | e.function......//.but.the.defer |
| 191c0 | 20 77 69 6c 6c 20 72 75 6e 21 0a 20 20 20 20 72 65 74 75 72 6e 20 66 6f 6f 3b 0a 7d 3c 2f 63 6f | .will.run!.....return.foo;.}</co |
| 191e0 | 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 6e 65 | de></pre>.......<p>.......The.ne |
| 19200 | 61 74 20 74 68 69 6e 67 20 61 62 6f 75 74 20 74 68 69 73 20 69 73 20 74 68 61 74 20 79 6f 75 20 | at.thing.about.this.is.that.you. |
| 19220 | 67 65 74 20 72 6f 62 75 73 74 20 65 72 72 6f 72 20 68 61 6e 64 6c 69 6e 67 20 77 69 74 68 6f 75 | get.robust.error.handling.withou |
| 19240 | 74 0a 20 20 20 20 20 20 74 68 65 20 76 65 72 62 6f 73 69 74 79 20 61 6e 64 20 63 6f 67 6e 69 74 | t.......the.verbosity.and.cognit |
| 19260 | 69 76 65 20 6f 76 65 72 68 65 61 64 20 6f 66 20 74 72 79 69 6e 67 20 74 6f 20 6d 61 6b 65 20 73 | ive.overhead.of.trying.to.make.s |
| 19280 | 75 72 65 20 65 76 65 72 79 20 65 78 69 74 20 70 61 74 68 0a 20 20 20 20 20 20 69 73 20 63 6f 76 | ure.every.exit.path.......is.cov |
| 192a0 | 65 72 65 64 2e 20 54 68 65 20 64 65 61 6c 6c 6f 63 61 74 69 6f 6e 20 63 6f 64 65 20 69 73 20 61 | ered..The.deallocation.code.is.a |
| 192c0 | 6c 77 61 79 73 20 64 69 72 65 63 74 6c 79 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 65 20 61 6c 6c | lways.directly.following.the.all |
| 192e0 | 6f 63 61 74 69 6f 6e 20 63 6f 64 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | ocation.code........</p>.......< |
| 19300 | 70 3e 0a 20 20 20 20 20 20 41 20 63 6f 75 70 6c 65 20 6f 66 20 6f 74 68 65 72 20 74 69 64 62 69 | p>.......A.couple.of.other.tidbi |
| 19320 | 74 73 20 61 62 6f 75 74 20 65 72 72 6f 72 20 68 61 6e 64 6c 69 6e 67 3a 0a 20 20 20 20 20 20 3c | ts.about.error.handling:.......< |
| 19340 | 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 54 68 65 73 65 | /p>.......<ul>.........<li>These |
| 19360 | 20 70 72 69 6d 69 74 69 76 65 73 20 67 69 76 65 20 65 6e 6f 75 67 68 20 65 78 70 72 65 73 73 69 | .primitives.give.enough.expressi |
| 19380 | 76 65 6e 65 73 73 20 74 68 61 74 20 69 74 27 73 20 63 6f 6d 70 6c 65 74 65 6c 79 20 70 72 61 63 | veness.that.it's.completely.prac |
| 193a0 | 74 69 63 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 6f 20 68 61 76 65 20 66 61 69 6c 69 6e | tical.............to.have.failin |
| 193c0 | 67 20 74 6f 20 63 68 65 63 6b 20 66 6f 72 20 61 6e 20 65 72 72 6f 72 20 62 65 20 61 20 63 6f 6d | g.to.check.for.an.error.be.a.com |
| 193e0 | 70 69 6c 65 20 65 72 72 6f 72 2e 20 49 66 20 79 6f 75 20 72 65 61 6c 6c 79 20 77 61 6e 74 0a 20 | pile.error..If.you.really.want.. |
| 19400 | 20 20 20 20 20 20 20 20 20 20 20 74 6f 20 69 67 6e 6f 72 65 20 74 68 65 20 65 72 72 6f 72 2c 20 | ...........to.ignore.the.error,. |
| 19420 | 79 6f 75 20 63 61 6e 20 75 73 65 20 74 68 65 20 3c 63 6f 64 65 3e 25 25 3c 2f 63 6f 64 65 3e 20 | you.can.use.the.<code>%%</code>. |
| 19440 | 70 72 65 66 69 78 20 6f 70 65 72 61 74 6f 72 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 | prefix.operator.and............. |
| 19460 | 67 65 74 20 74 68 65 20 61 64 64 65 64 20 62 65 6e 65 66 69 74 20 6f 66 20 63 72 61 73 68 69 6e | get.the.added.benefit.of.crashin |
| 19480 | 67 20 69 6e 20 44 65 62 75 67 20 61 6e 64 20 52 65 6c 65 61 73 65 53 61 66 65 20 6d 6f 64 65 73 | g.in.Debug.and.ReleaseSafe.modes |
| 194a0 | 20 69 66 20 79 6f 75 72 20 61 73 73 75 6d 70 74 69 6f 6e 20 77 61 73 20 77 72 6f 6e 67 2e 0a 20 | .if.your.assumption.was.wrong... |
| 194c0 | 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 | .......</li>.........<li>....... |
| 194e0 | 20 20 20 20 53 69 6e 63 65 20 5a 69 67 20 75 6e 64 65 72 73 74 61 6e 64 73 20 65 72 72 6f 72 20 | ....Since.Zig.understands.error. |
| 19500 | 74 79 70 65 73 2c 20 69 74 20 63 61 6e 20 70 72 65 2d 77 65 69 67 68 74 20 62 72 61 6e 63 68 65 | types,.it.can.pre-weight.branche |
| 19520 | 73 20 69 6e 20 66 61 76 6f 72 20 6f 66 0a 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 73 20 6e | s.in.favor.of...........errors.n |
| 19540 | 6f 74 20 6f 63 63 75 72 69 6e 67 2e 20 4a 75 73 74 20 61 20 73 6d 61 6c 6c 20 6f 70 74 69 6d 69 | ot.occuring..Just.a.small.optimi |
| 19560 | 7a 61 74 69 6f 6e 20 62 65 6e 65 66 69 74 20 74 68 61 74 20 69 73 20 6e 6f 74 20 61 76 61 69 6c | zation.benefit.that.is.not.avail |
| 19580 | 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 69 6e 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 | able...........in.other.language |
| 195a0 | 73 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 | s..........</li>.......</ul>.... |
| 195c0 | 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 | ...<p>See.also:</p>.......<ul>.. |
| 195e0 | 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 64 65 66 65 72 22 3e 64 65 66 65 | .......<li><a.href="#defer">defe |
| 19600 | 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 | r</a></li>.........<li><a.href=" |
| 19620 | 23 69 66 22 3e 69 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 | #if">if</a></li>.........<li><a. |
| 19640 | 68 72 65 66 3d 22 23 73 77 69 74 63 68 22 3e 73 77 69 74 63 68 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 | href="#switch">switch</a></li>.. |
| 19660 | 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 6e 75 6c 6c 61 62 6c | .....</ul>.......<h2.id="nullabl |
| 19680 | 65 73 22 3e 4e 75 6c 6c 61 62 6c 65 73 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 | es">Nullables</h2>.......<p>.... |
| 196a0 | 20 20 20 4f 6e 65 20 61 72 65 61 20 74 68 61 74 20 5a 69 67 20 70 72 6f 76 69 64 65 73 20 73 61 | ...One.area.that.Zig.provides.sa |
| 196c0 | 66 65 74 79 20 77 69 74 68 6f 75 74 20 63 6f 6d 70 72 6f 6d 69 73 69 6e 67 20 65 66 66 69 63 69 | fety.without.compromising.effici |
| 196e0 | 65 6e 63 79 20 6f 72 0a 20 20 20 20 20 20 72 65 61 64 61 62 69 6c 69 74 79 20 69 73 20 77 69 74 | ency.or.......readability.is.wit |
| 19700 | 68 20 74 68 65 20 6e 75 6c 6c 61 62 6c 65 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a | h.the.nullable.type........</p>. |
| 19720 | 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 71 75 65 73 74 69 6f 6e 20 6d 61 72 | ......<p>.......The.question.mar |
| 19740 | 6b 20 73 79 6d 62 6f 6c 69 7a 65 73 20 74 68 65 20 6e 75 6c 6c 61 62 6c 65 20 74 79 70 65 2e 20 | k.symbolizes.the.nullable.type.. |
| 19760 | 59 6f 75 20 63 61 6e 20 63 6f 6e 76 65 72 74 20 61 20 74 79 70 65 20 74 6f 20 61 20 6e 75 6c 6c | You.can.convert.a.type.to.a.null |
| 19780 | 61 62 6c 65 0a 20 20 20 20 20 20 74 79 70 65 20 62 79 20 70 75 74 74 69 6e 67 20 61 20 71 75 65 | able.......type.by.putting.a.que |
| 197a0 | 73 74 69 6f 6e 20 6d 61 72 6b 20 69 6e 20 66 72 6f 6e 74 20 6f 66 20 69 74 2c 20 6c 69 6b 65 20 | stion.mark.in.front.of.it,.like. |
| 197c0 | 74 68 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 | this:.......</p>.......<pre><cod |
| 197e0 | 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2f 2f 20 6e 6f 72 6d 61 6c 20 69 6e 74 65 67 65 72 0a | e.class="zig">//.normal.integer. |
| 19800 | 63 6f 6e 73 74 20 6e 6f 72 6d 61 6c 5f 69 6e 74 3a 20 69 33 32 20 3d 20 31 32 33 34 3b 0a 0a 2f | const.normal_int:.i32.=.1234;../ |
| 19820 | 2f 20 6e 75 6c 6c 61 62 6c 65 20 69 6e 74 65 67 65 72 0a 63 6f 6e 73 74 20 6e 75 6c 6c 61 62 6c | /.nullable.integer.const.nullabl |
| 19840 | 65 5f 69 6e 74 3a 20 3f 69 33 32 20 3d 20 35 36 37 38 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e | e_int:.?i32.=.5678;</code></pre> |
| 19860 | 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 77 20 74 68 65 20 76 61 72 69 61 62 6c | .......<p>.......Now.the.variabl |
| 19880 | 65 20 3c 63 6f 64 65 3e 6e 75 6c 6c 61 62 6c 65 5f 69 6e 74 3c 2f 63 6f 64 65 3e 20 63 6f 75 6c | e.<code>nullable_int</code>.coul |
| 198a0 | 64 20 62 65 20 61 6e 20 3c 63 6f 64 65 3e 69 33 32 3c 2f 63 6f 64 65 3e 2c 20 6f 72 20 3c 63 6f | d.be.an.<code>i32</code>,.or.<co |
| 198c0 | 64 65 3e 6e 75 6c 6c 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 | de>null</code>........</p>...... |
| 198e0 | 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 73 74 65 61 64 20 6f 66 20 69 6e 74 65 67 65 72 73 2c 20 | .<p>.......Instead.of.integers,. |
| 19900 | 6c 65 74 27 73 20 74 61 6c 6b 20 61 62 6f 75 74 20 70 6f 69 6e 74 65 72 73 2e 20 4e 75 6c 6c 20 | let's.talk.about.pointers..Null. |
| 19920 | 72 65 66 65 72 65 6e 63 65 73 20 61 72 65 20 74 68 65 20 73 6f 75 72 63 65 20 6f 66 20 6d 61 6e | references.are.the.source.of.man |
| 19940 | 79 20 72 75 6e 74 69 6d 65 0a 20 20 20 20 20 20 65 78 63 65 70 74 69 6f 6e 73 2c 20 61 6e 64 20 | y.runtime.......exceptions,.and. |
| 19960 | 65 76 65 6e 20 73 74 61 6e 64 20 61 63 63 75 73 65 64 20 6f 66 20 62 65 69 6e 67 0a 20 20 20 20 | even.stand.accused.of.being..... |
| 19980 | 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 77 77 77 2e 6c 75 63 69 64 63 68 61 72 | ..<a.href="https://www.lucidchar |
| 199a0 | 74 2e 63 6f 6d 2f 74 65 63 68 62 6c 6f 67 2f 32 30 31 35 2f 30 38 2f 33 31 2f 74 68 65 2d 77 6f | t.com/techblog/2015/08/31/the-wo |
| 199c0 | 72 73 74 2d 6d 69 73 74 61 6b 65 2d 6f 66 2d 63 6f 6d 70 75 74 65 72 2d 73 63 69 65 6e 63 65 2f | rst-mistake-of-computer-science/ |
| 199e0 | 22 3e 74 68 65 20 77 6f 72 73 74 20 6d 69 73 74 61 6b 65 20 6f 66 20 63 6f 6d 70 75 74 65 72 20 | ">the.worst.mistake.of.computer. |
| 19a00 | 73 63 69 65 6e 63 65 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 | science</a>........</p>.......<p |
| 19a20 | 3e 5a 69 67 20 64 6f 65 73 20 6e 6f 74 20 68 61 76 65 20 74 68 65 6d 2e 3c 2f 70 3e 0a 20 20 20 | >Zig.does.not.have.them.</p>.... |
| 19a40 | 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 73 74 65 61 64 2c 20 79 6f 75 20 63 61 6e 20 75 73 | ...<p>.......Instead,.you.can.us |
| 19a60 | 65 20 61 20 6e 75 6c 6c 61 62 6c 65 20 70 6f 69 6e 74 65 72 2e 20 54 68 69 73 20 73 65 63 72 65 | e.a.nullable.pointer..This.secre |
| 19a80 | 74 6c 79 20 63 6f 6d 70 69 6c 65 73 20 64 6f 77 6e 20 74 6f 20 61 20 6e 6f 72 6d 61 6c 20 70 6f | tly.compiles.down.to.a.normal.po |
| 19aa0 | 69 6e 74 65 72 2c 0a 20 20 20 20 20 20 73 69 6e 63 65 20 77 65 20 6b 6e 6f 77 20 77 65 20 63 61 | inter,.......since.we.know.we.ca |
| 19ac0 | 6e 20 75 73 65 20 30 20 61 73 20 74 68 65 20 6e 75 6c 6c 20 76 61 6c 75 65 20 66 6f 72 20 74 68 | n.use.0.as.the.null.value.for.th |
| 19ae0 | 65 20 6e 75 6c 6c 61 62 6c 65 20 74 79 70 65 2e 20 42 75 74 20 74 68 65 20 63 6f 6d 70 69 6c 65 | e.nullable.type..But.the.compile |
| 19b00 | 72 0a 20 20 20 20 20 20 63 61 6e 20 63 68 65 63 6b 20 79 6f 75 72 20 77 6f 72 6b 20 61 6e 64 20 | r.......can.check.your.work.and. |
| 19b20 | 6d 61 6b 65 20 73 75 72 65 20 79 6f 75 20 64 6f 6e 27 74 20 61 73 73 69 67 6e 20 6e 75 6c 6c 20 | make.sure.you.don't.assign.null. |
| 19b40 | 74 6f 20 73 6f 6d 65 74 68 69 6e 67 20 74 68 61 74 20 63 61 6e 27 74 20 62 65 20 6e 75 6c 6c 2e | to.something.that.can't.be.null. |
| 19b60 | 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 79 70 69 | .......</p>.......<p>.......Typi |
| 19b80 | 63 61 6c 6c 79 20 74 68 65 20 64 6f 77 6e 73 69 64 65 20 6f 66 20 6e 6f 74 20 68 61 76 69 6e 67 | cally.the.downside.of.not.having |
| 19ba0 | 20 6e 75 6c 6c 20 69 73 20 74 68 61 74 20 69 74 20 6d 61 6b 65 73 20 74 68 65 20 63 6f 64 65 20 | .null.is.that.it.makes.the.code. |
| 19bc0 | 6d 6f 72 65 20 76 65 72 62 6f 73 65 20 74 6f 0a 20 20 20 20 20 20 77 72 69 74 65 2e 20 42 75 74 | more.verbose.to.......write..But |
| 19be0 | 2c 20 6c 65 74 27 73 20 63 6f 6d 70 61 72 65 20 73 6f 6d 65 20 65 71 75 69 76 61 6c 65 6e 74 20 | ,.let's.compare.some.equivalent. |
| 19c00 | 43 20 63 6f 64 65 20 61 6e 64 20 5a 69 67 20 63 6f 64 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a | C.code.and.Zig.code........</p>. |
| 19c20 | 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 61 73 6b 3a 20 63 61 6c 6c 20 6d 61 6c 6c 6f | ......<p>.......Task:.call.mallo |
| 19c40 | 63 2c 20 69 66 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 6e 75 6c 6c 2c 20 72 65 74 75 72 6e | c,.if.the.result.is.null,.return |
| 19c60 | 20 6e 75 6c 6c 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 43 20 63 6f 64 | .null........</p>.......<p>C.cod |
| 19c80 | 65 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 | e</p>.......<pre><code.class="c" |
| 19ca0 | 3e 2f 2f 20 6d 61 6c 6c 6f 63 20 70 72 6f 74 6f 74 79 70 65 20 69 6e 63 6c 75 64 65 64 20 66 6f | >//.malloc.prototype.included.fo |
| 19cc0 | 72 20 72 65 66 65 72 65 6e 63 65 0a 76 6f 69 64 20 2a 6d 61 6c 6c 6f 63 28 73 69 7a 65 5f 74 20 | r.reference.void.*malloc(size_t. |
| 19ce0 | 73 69 7a 65 29 3b 0a 0a 73 74 72 75 63 74 20 46 6f 6f 20 2a 64 6f 5f 61 5f 74 68 69 6e 67 28 76 | size);..struct.Foo.*do_a_thing(v |
| 19d00 | 6f 69 64 29 20 7b 0a 20 20 20 20 63 68 61 72 20 2a 70 74 72 20 3d 20 6d 61 6c 6c 6f 63 28 31 32 | oid).{.....char.*ptr.=.malloc(12 |
| 19d20 | 33 34 29 3b 0a 20 20 20 20 69 66 20 28 21 70 74 72 29 20 72 65 74 75 72 6e 20 4e 55 4c 4c 3b 0a | 34);.....if.(!ptr).return.NULL;. |
| 19d40 | 20 20 20 20 2f 2f 20 2e 2e 2e 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 | ....//.....}</code></pre>....... |
| 19d60 | 3c 70 3e 5a 69 67 20 63 6f 64 65 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 | <p>Zig.code</p>.......<pre><code |
| 19d80 | 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2f 2f 20 6d 61 6c 6c 6f 63 20 70 72 6f 74 6f 74 79 70 65 | .class="zig">//.malloc.prototype |
| 19da0 | 20 69 6e 63 6c 75 64 65 64 20 66 6f 72 20 72 65 66 65 72 65 6e 63 65 0a 65 78 74 65 72 6e 20 66 | .included.for.reference.extern.f |
| 19dc0 | 6e 20 6d 61 6c 6c 6f 63 28 73 69 7a 65 3a 20 73 69 7a 65 5f 74 29 20 2d 26 67 74 3b 20 3f 26 61 | n.malloc(size:.size_t).->.?&a |
| 19de0 | 6d 70 3b 75 38 3b 0a 0a 66 6e 20 64 6f 41 54 68 69 6e 67 28 29 20 2d 26 67 74 3b 20 3f 26 61 6d | mp;u8;..fn.doAThing().->.?&am |
| 19e00 | 70 3b 46 6f 6f 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 70 74 72 20 3d 20 6d 61 6c 6c 6f 63 28 31 | p;Foo.{.....const.ptr.=.malloc(1 |
| 19e20 | 32 33 34 29 20 3f 3f 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 2f 2f 20 2e 2e 2e 0a | 234).??.return.null;.....//..... |
| 19e40 | 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 | }</code></pre>.......<p>........ |
| 19e60 | 20 48 65 72 65 2c 20 5a 69 67 20 69 73 20 61 74 20 6c 65 61 73 74 20 61 73 20 63 6f 6e 76 65 6e | .Here,.Zig.is.at.least.as.conven |
| 19e80 | 69 65 6e 74 2c 20 69 66 20 6e 6f 74 20 6d 6f 72 65 2c 20 74 68 61 6e 20 43 2e 20 41 6e 64 2c 20 | ient,.if.not.more,.than.C..And,. |
| 19ea0 | 74 68 65 20 74 79 70 65 20 6f 66 20 22 70 74 72 22 0a 20 20 20 20 20 20 20 20 69 73 20 3c 63 6f | the.type.of."ptr".........is.<co |
| 19ec0 | 64 65 3e 26 61 6d 70 3b 75 38 3c 2f 63 6f 64 65 3e 20 3c 65 6d 3e 6e 6f 74 3c 2f 65 6d 3e 20 3c | de>&u8</code>.<em>not</em>.< |
| 19ee0 | 63 6f 64 65 3e 3f 26 61 6d 70 3b 75 38 3c 2f 63 6f 64 65 3e 2e 20 54 68 65 20 3c 63 6f 64 65 3e | code>?&u8</code>..The.<code> |
| 19f00 | 3f 3f 3c 2f 63 6f 64 65 3e 20 6f 70 65 72 61 74 6f 72 0a 20 20 20 20 20 20 20 20 75 6e 77 72 61 | ??</code>.operator.........unwra |
| 19f20 | 70 70 65 64 20 74 68 65 20 6e 75 6c 6c 61 62 6c 65 20 74 79 70 65 20 61 6e 64 20 74 68 65 72 65 | pped.the.nullable.type.and.there |
| 19f40 | 66 6f 72 65 20 3c 63 6f 64 65 3e 70 74 72 3c 2f 63 6f 64 65 3e 20 69 73 20 67 75 61 72 61 6e 74 | fore.<code>ptr</code>.is.guarant |
| 19f60 | 65 65 64 20 74 6f 20 62 65 20 6e 6f 6e 2d 6e 75 6c 6c 20 65 76 65 72 79 77 68 65 72 65 0a 20 20 | eed.to.be.non-null.everywhere... |
| 19f80 | 20 20 20 20 20 20 69 74 20 69 73 20 75 73 65 64 20 69 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e | ......it.is.used.in.the.function |
| 19fa0 | 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 54 | ........</p>.......<p>.........T |
| 19fc0 | 68 65 20 6f 74 68 65 72 20 66 6f 72 6d 20 6f 66 20 63 68 65 63 6b 69 6e 67 20 61 67 61 69 6e 73 | he.other.form.of.checking.agains |
| 19fe0 | 74 20 4e 55 4c 4c 20 79 6f 75 20 6d 69 67 68 74 20 73 65 65 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 | t.NULL.you.might.see.looks.like. |
| 1a000 | 74 68 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 | this:.......</p>.......<pre><cod |
| 1a020 | 65 20 63 6c 61 73 73 3d 22 63 22 3e 76 6f 69 64 20 64 6f 5f 61 5f 74 68 69 6e 67 28 73 74 72 75 | e.class="c">void.do_a_thing(stru |
| 1a040 | 63 74 20 46 6f 6f 20 2a 66 6f 6f 29 20 7b 0a 20 20 20 20 2f 2f 20 64 6f 20 73 6f 6d 65 20 73 74 | ct.Foo.*foo).{.....//.do.some.st |
| 1a060 | 75 66 66 0a 0a 20 20 20 20 69 66 20 28 66 6f 6f 29 20 7b 0a 20 20 20 20 20 20 20 20 64 6f 5f 73 | uff......if.(foo).{.........do_s |
| 1a080 | 6f 6d 65 74 68 69 6e 67 5f 77 69 74 68 5f 66 6f 6f 28 66 6f 6f 29 3b 0a 20 20 20 20 7d 0a 0a 20 | omething_with_foo(foo);.....}... |
| 1a0a0 | 20 20 20 2f 2f 20 64 6f 20 73 6f 6d 65 20 73 74 75 66 66 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 | ...//.do.some.stuff.}</code></pr |
| 1a0c0 | 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 49 6e 20 5a 69 67 20 79 6f 75 20 | e>.......<p>.........In.Zig.you. |
| 1a0e0 | 63 61 6e 20 61 63 63 6f 6d 70 6c 69 73 68 20 74 68 65 20 73 61 6d 65 20 74 68 69 6e 67 3a 0a 20 | can.accomplish.the.same.thing:.. |
| 1a100 | 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 | .....</p>.......<pre><code.class |
| 1a120 | 3d 22 7a 69 67 22 3e 66 6e 20 64 6f 41 54 68 69 6e 67 28 6e 75 6c 6c 61 62 6c 65 5f 66 6f 6f 3a | ="zig">fn.doAThing(nullable_foo: |
| 1a140 | 20 3f 26 61 6d 70 3b 46 6f 6f 29 20 7b 0a 20 20 20 20 2f 2f 20 64 6f 20 73 6f 6d 65 20 73 74 75 | .?&Foo).{.....//.do.some.stu |
| 1a160 | 66 66 0a 0a 20 20 20 20 69 66 20 28 63 6f 6e 73 74 20 66 6f 6f 20 3f 3d 20 6e 75 6c 6c 61 62 6c | ff......if.(const.foo.?=.nullabl |
| 1a180 | 65 5f 66 6f 6f 29 20 7b 0a 20 20 20 20 20 20 64 6f 53 6f 6d 65 74 68 69 6e 67 57 69 74 68 46 6f | e_foo).{.......doSomethingWithFo |
| 1a1a0 | 6f 28 66 6f 6f 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 64 6f 20 73 6f 6d 65 20 73 74 | o(foo);.....}......//.do.some.st |
| 1a1c0 | 75 66 66 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 | uff.}</code></pre>.......<p>.... |
| 1a1e0 | 20 20 20 4f 6e 63 65 20 61 67 61 69 6e 2c 20 74 68 65 20 6e 6f 74 61 62 6c 65 20 74 68 69 6e 67 | ...Once.again,.the.notable.thing |
| 1a200 | 20 68 65 72 65 20 69 73 20 74 68 61 74 20 69 6e 73 69 64 65 20 74 68 65 20 69 66 20 62 6c 6f 63 | .here.is.that.inside.the.if.bloc |
| 1a220 | 6b 2c 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 66 6f 6f 3c 2f 63 6f 64 65 3e 20 69 73 20 6e 6f 20 | k,.......<code>foo</code>.is.no. |
| 1a240 | 6c 6f 6e 67 65 72 20 61 20 6e 75 6c 6c 61 62 6c 65 20 70 6f 69 6e 74 65 72 2c 20 69 74 20 69 73 | longer.a.nullable.pointer,.it.is |
| 1a260 | 20 61 20 70 6f 69 6e 74 65 72 2c 20 77 68 69 63 68 0a 20 20 20 20 20 20 63 61 6e 6e 6f 74 20 62 | .a.pointer,.which.......cannot.b |
| 1a280 | 65 20 6e 75 6c 6c 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 | e.null........</p>.......<p>.... |
| 1a2a0 | 20 20 20 4f 6e 65 20 62 65 6e 65 66 69 74 20 74 6f 20 74 68 69 73 20 69 73 20 74 68 61 74 20 66 | ...One.benefit.to.this.is.that.f |
| 1a2c0 | 75 6e 63 74 69 6f 6e 73 20 77 68 69 63 68 20 74 61 6b 65 20 70 6f 69 6e 74 65 72 73 20 61 73 20 | unctions.which.take.pointers.as. |
| 1a2e0 | 61 72 67 75 6d 65 6e 74 73 20 63 61 6e 0a 20 20 20 20 20 20 62 65 20 61 6e 6e 6f 74 61 74 65 64 | arguments.can.......be.annotated |
| 1a300 | 20 77 69 74 68 20 74 68 65 20 22 6e 6f 6e 6e 75 6c 6c 22 20 61 74 74 72 69 62 75 74 65 20 2d 20 | .with.the."nonnull".attribute.-. |
| 1a320 | 3c 63 6f 64 65 3e 5f 5f 61 74 74 72 69 62 75 74 65 5f 5f 28 28 6e 6f 6e 6e 75 6c 6c 29 29 3c 2f | <code>__attribute__((nonnull))</ |
| 1a340 | 63 6f 64 65 3e 20 69 6e 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f | code>.in.......<a.href="https:// |
| 1a360 | 67 63 63 2e 67 6e 75 2e 6f 72 67 2f 6f 6e 6c 69 6e 65 64 6f 63 73 2f 67 63 63 2d 34 2e 30 2e 30 | gcc.gnu.org/onlinedocs/gcc-4.0.0 |
| 1a380 | 2f 67 63 63 2f 46 75 6e 63 74 69 6f 6e 2d 41 74 74 72 69 62 75 74 65 73 2e 68 74 6d 6c 22 3e 47 | /gcc/Function-Attributes.html">G |
| 1a3a0 | 43 43 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 54 68 65 20 6f 70 74 69 6d 69 7a 65 72 20 63 61 6e 20 | CC</a>........The.optimizer.can. |
| 1a3c0 | 73 6f 6d 65 74 69 6d 65 73 20 6d 61 6b 65 20 62 65 74 74 65 72 20 64 65 63 69 73 69 6f 6e 73 20 | sometimes.make.better.decisions. |
| 1a3e0 | 6b 6e 6f 77 69 6e 67 20 74 68 61 74 20 70 6f 69 6e 74 65 72 20 61 72 67 75 6d 65 6e 74 73 0a 20 | knowing.that.pointer.arguments.. |
| 1a400 | 20 20 20 20 20 63 61 6e 6e 6f 74 20 62 65 20 6e 75 6c 6c 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a | .....cannot.be.null........</p>. |
| 1a420 | 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 63 61 73 74 69 6e 67 22 3e 43 61 73 74 69 6e 67 3c 2f | ......<h2.id="casting">Casting</ |
| 1a440 | 68 32 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 70 6c 61 69 6e 20 69 6d 70 6c 69 | h2>.......<p>TODO:.explain.impli |
| 1a460 | 63 69 74 20 76 73 20 65 78 70 6c 69 63 69 74 20 63 61 73 74 69 6e 67 3c 2f 70 3e 0a 20 20 20 20 | cit.vs.explicit.casting</p>..... |
| 1a480 | 20 20 3c 70 3e 54 4f 44 4f 3a 20 72 65 73 6f 6c 76 65 20 70 65 65 72 20 74 79 70 65 73 20 62 75 | ..<p>TODO:.resolve.peer.types.bu |
| 1a4a0 | 69 6c 74 69 6e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 74 72 75 6e 63 61 74 | iltin</p>.......<p>TODO:.truncat |
| 1a4c0 | 65 20 62 75 69 6c 74 69 6e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 62 69 74 | e.builtin</p>.......<p>TODO:.bit |
| 1a4e0 | 63 61 73 74 20 62 75 69 6c 74 69 6e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 | cast.builtin</p>.......<p>TODO:. |
| 1a500 | 69 6e 74 20 74 6f 20 70 74 72 20 62 75 69 6c 74 69 6e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e | int.to.ptr.builtin</p>.......<p> |
| 1a520 | 54 4f 44 4f 3a 20 70 74 72 20 74 6f 20 69 6e 74 20 62 75 69 6c 74 69 6e 3c 2f 70 3e 0a 20 20 20 | TODO:.ptr.to.int.builtin</p>.... |
| 1a540 | 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 70 74 72 63 61 73 74 20 62 75 69 6c 74 69 6e 3c 2f 70 3e 0a | ...<p>TODO:.ptrcast.builtin</p>. |
| 1a560 | 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 70 6c 61 69 6e 20 6e 75 6d 62 65 72 20 6c 69 | ......<p>TODO:.explain.number.li |
| 1a580 | 74 65 72 61 6c 73 20 76 73 20 63 6f 6e 63 72 65 74 65 20 74 79 70 65 73 3c 2f 70 3e 0a 20 20 20 | terals.vs.concrete.types</p>.... |
| 1a5a0 | 20 20 20 3c 68 32 20 69 64 3d 22 76 6f 69 64 22 3e 76 6f 69 64 3c 2f 68 32 3e 0a 20 20 20 20 20 | ...<h2.id="void">void</h2>...... |
| 1a5c0 | 20 3c 70 3e 54 4f 44 4f 3a 20 61 73 73 69 67 6e 69 6e 67 20 76 6f 69 64 20 68 61 73 20 6e 6f 20 | .<p>TODO:.assigning.void.has.no. |
| 1a5e0 | 63 6f 64 65 67 65 6e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 68 61 73 68 6d | codegen</p>.......<p>TODO:.hashm |
| 1a600 | 61 70 20 77 69 74 68 20 76 6f 69 64 20 62 65 63 6f 6d 65 73 20 61 20 73 65 74 3c 2f 70 3e 0a 20 | ap.with.void.becomes.a.set</p>.. |
| 1a620 | 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 64 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e | .....<p>TODO:.difference.between |
| 1a640 | 20 63 5f 76 6f 69 64 20 61 6e 64 20 76 6f 69 64 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f | .c_void.and.void</p>.......<p>TO |
| 1a660 | 44 4f 3a 20 76 6f 69 64 20 69 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 72 65 74 75 72 6e 20 76 | DO:.void.is.the.default.return.v |
| 1a680 | 61 6c 75 65 20 6f 66 20 66 75 6e 63 74 69 6f 6e 73 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 | alue.of.functions</p>.......<p>T |
| 1a6a0 | 4f 44 4f 3a 20 66 75 6e 63 74 69 6f 6e 73 20 72 65 71 75 69 72 65 20 61 73 73 69 67 6e 69 6e 67 | ODO:.functions.require.assigning |
| 1a6c0 | 20 74 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 32 20 | .the.return.value</p>.......<h2. |
| 1a6e0 | 69 64 3d 22 74 68 69 73 22 3e 74 68 69 73 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 | id="this">this</h2>.......<p>TOD |
| 1a700 | 4f 3a 20 65 78 61 6d 70 6c 65 20 6f 66 20 74 68 69 73 20 72 65 66 65 72 72 69 6e 67 20 74 6f 20 | O:.example.of.this.referring.to. |
| 1a720 | 53 65 6c 66 20 73 74 72 75 63 74 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 | Self.struct</p>.......<p>TODO:.e |
| 1a740 | 78 61 6d 70 6c 65 20 6f 66 20 74 68 69 73 20 72 65 66 65 72 72 69 6e 67 20 74 6f 20 72 65 63 75 | xample.of.this.referring.to.recu |
| 1a760 | 72 73 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f | rsion.function</p>.......<p>TODO |
| 1a780 | 3a 20 65 78 61 6d 70 6c 65 20 6f 66 20 74 68 69 73 20 72 65 66 65 72 72 69 6e 67 20 74 6f 20 62 | :.example.of.this.referring.to.b |
| 1a7a0 | 61 73 69 63 20 62 6c 6f 63 6b 20 66 6f 72 20 40 73 65 74 44 65 62 75 67 53 61 66 65 74 79 3c 2f | asic.block.for.@setDebugSafety</ |
| 1a7c0 | 70 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 | p>.......<h2.id="comptime">compt |
| 1a7e0 | 69 6d 65 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 70 6c 61 | ime</h2>.......<p>.......Zig.pla |
| 1a800 | 63 65 73 20 69 6d 70 6f 72 74 61 6e 63 65 20 6f 6e 20 74 68 65 20 63 6f 6e 63 65 70 74 20 6f 66 | ces.importance.on.the.concept.of |
| 1a820 | 20 77 68 65 74 68 65 72 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 6b 6e 6f 77 6e 20 | .whether.an.expression.is.known. |
| 1a840 | 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 0a 20 20 20 20 20 20 54 68 65 72 65 20 61 72 65 | at.compile-time........There.are |
| 1a860 | 20 61 20 66 65 77 20 64 69 66 66 65 72 65 6e 74 20 70 6c 61 63 65 73 20 74 68 69 73 20 63 6f 6e | .a.few.different.places.this.con |
| 1a880 | 63 65 70 74 20 69 73 20 75 73 65 64 2c 20 61 6e 64 20 74 68 65 73 65 20 62 75 69 6c 64 69 6e 67 | cept.is.used,.and.these.building |
| 1a8a0 | 20 62 6c 6f 63 6b 73 20 61 72 65 20 75 73 65 64 0a 20 20 20 20 20 20 74 6f 20 6b 65 65 70 20 74 | .blocks.are.used.......to.keep.t |
| 1a8c0 | 68 65 20 6c 61 6e 67 75 61 67 65 20 73 6d 61 6c 6c 2c 20 72 65 61 64 61 62 6c 65 2c 20 61 6e 64 | he.language.small,.readable,.and |
| 1a8e0 | 20 70 6f 77 65 72 66 75 6c 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 | .powerful........</p>.......<h3. |
| 1a900 | 69 64 3d 22 69 6e 74 72 6f 64 75 63 69 6e 67 2d 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2d 63 6f 6e | id="introducing-compile-time-con |
| 1a920 | 63 65 70 74 22 3e 49 6e 74 72 6f 64 75 63 69 6e 67 20 74 68 65 20 43 6f 6d 70 69 6c 65 2d 54 69 | cept">Introducing.the.Compile-Ti |
| 1a940 | 6d 65 20 43 6f 6e 63 65 70 74 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 63 6f | me.Concept</h3>.......<h4.id="co |
| 1a960 | 6d 70 69 6c 65 2d 74 69 6d 65 2d 70 61 72 61 6d 65 74 65 72 73 22 3e 43 6f 6d 70 69 6c 65 2d 54 | mpile-time-parameters">Compile-T |
| 1a980 | 69 6d 65 20 50 61 72 61 6d 65 74 65 72 73 3c 2f 68 34 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 | ime.Parameters</h4>.......<p>... |
| 1a9a0 | 20 20 20 20 43 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 70 61 72 61 6d 65 74 65 72 73 20 69 73 20 68 | ....Compile-time.parameters.is.h |
| 1a9c0 | 6f 77 20 5a 69 67 20 69 6d 70 6c 65 6d 65 6e 74 73 20 67 65 6e 65 72 69 63 73 2e 20 49 74 20 69 | ow.Zig.implements.generics..It.i |
| 1a9e0 | 73 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 64 75 63 6b 20 74 79 70 69 6e 67 2e 0a 20 20 20 20 | s.compile-time.duck.typing...... |
| 1aa00 | 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a | ..</p>.......<pre><code.class="z |
| 1aa20 | 69 67 22 3e 66 6e 20 6d 61 78 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 2c 20 61 3a 20 | ig">fn.max(comptime.T:.type,.a:. |
| 1aa40 | 54 2c 20 62 3a 20 54 29 20 2d 26 67 74 3b 20 54 20 7b 0a 20 20 20 20 69 66 20 28 61 20 26 67 74 | T,.b:.T).->.T.{.....if.(a.> |
| 1aa60 | 3b 20 62 29 20 61 20 65 6c 73 65 20 62 0a 7d 0a 66 6e 20 67 69 6d 6d 65 54 68 65 42 69 67 67 65 | ;.b).a.else.b.}.fn.gimmeTheBigge |
| 1aa80 | 72 46 6c 6f 61 74 28 61 3a 20 66 33 32 2c 20 62 3a 20 66 33 32 29 20 2d 26 67 74 3b 20 66 33 32 | rFloat(a:.f32,.b:.f32).->.f32 |
| 1aaa0 | 20 7b 0a 20 20 20 20 6d 61 78 28 66 33 32 2c 20 61 2c 20 62 29 0a 7d 0a 66 6e 20 67 69 6d 6d 65 | .{.....max(f32,.a,.b).}.fn.gimme |
| 1aac0 | 54 68 65 42 69 67 67 65 72 49 6e 74 65 67 65 72 28 61 3a 20 75 36 34 2c 20 62 3a 20 75 36 34 29 | TheBiggerInteger(a:.u64,.b:.u64) |
| 1aae0 | 20 2d 26 67 74 3b 20 75 36 34 20 7b 0a 20 20 20 20 6d 61 78 28 75 36 34 2c 20 61 2c 20 62 29 0a | .->.u64.{.....max(u64,.a,.b). |
| 1ab00 | 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 | }</code></pre>.......<p>.......I |
| 1ab20 | 6e 20 5a 69 67 2c 20 74 79 70 65 73 20 61 72 65 20 66 69 72 73 74 2d 63 6c 61 73 73 20 63 69 74 | n.Zig,.types.are.first-class.cit |
| 1ab40 | 69 7a 65 6e 73 2e 20 54 68 65 79 20 63 61 6e 20 62 65 20 61 73 73 69 67 6e 65 64 20 74 6f 20 76 | izens..They.can.be.assigned.to.v |
| 1ab60 | 61 72 69 61 62 6c 65 73 2c 20 70 61 73 73 65 64 20 61 73 20 70 61 72 61 6d 65 74 65 72 73 20 74 | ariables,.passed.as.parameters.t |
| 1ab80 | 6f 20 66 75 6e 63 74 69 6f 6e 73 2c 0a 20 20 20 20 20 20 61 6e 64 20 72 65 74 75 72 6e 65 64 20 | o.functions,.......and.returned. |
| 1aba0 | 66 72 6f 6d 20 66 75 6e 63 74 69 6f 6e 73 2e 20 48 6f 77 65 76 65 72 2c 20 74 68 65 79 20 63 61 | from.functions..However,.they.ca |
| 1abc0 | 6e 20 6f 6e 6c 79 20 62 65 20 75 73 65 64 20 69 6e 20 65 78 70 72 65 73 73 69 6f 6e 73 20 77 68 | n.only.be.used.in.expressions.wh |
| 1abe0 | 69 63 68 20 61 72 65 20 6b 6e 6f 77 6e 20 61 74 20 3c 65 6d 3e 63 6f 6d 70 69 6c 65 2d 74 69 6d | ich.are.known.at.<em>compile-tim |
| 1ac00 | 65 3c 2f 65 6d 3e 2c 0a 20 20 20 20 20 20 77 68 69 63 68 20 69 73 20 77 68 79 20 74 68 65 20 70 | e</em>,.......which.is.why.the.p |
| 1ac20 | 61 72 61 6d 65 74 65 72 20 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e 20 69 6e 20 74 68 65 20 61 | arameter.<code>T</code>.in.the.a |
| 1ac40 | 62 6f 76 65 20 73 6e 69 70 70 65 74 20 6d 75 73 74 20 62 65 20 6d 61 72 6b 65 64 20 77 69 74 68 | bove.snippet.must.be.marked.with |
| 1ac60 | 20 3c 63 6f 64 65 3e 63 6f 6d 70 74 69 6d 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f | .<code>comptime</code>........</ |
| 1ac80 | 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 20 3c 63 6f 64 65 3e 63 6f 6d 70 74 | p>.......<p>.......A.<code>compt |
| 1aca0 | 69 6d 65 3c 2f 63 6f 64 65 3e 20 70 61 72 61 6d 65 74 65 72 20 6d 65 61 6e 73 20 74 68 61 74 3a | ime</code>.parameter.means.that: |
| 1acc0 | 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c | .......</p>.......<ul>.........< |
| 1ace0 | 6c 69 3e 41 74 20 74 68 65 20 63 61 6c 6c 73 69 74 65 2c 20 74 68 65 20 76 61 6c 75 65 20 6d 75 | li>At.the.callsite,.the.value.mu |
| 1ad00 | 73 74 20 62 65 20 6b 6e 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2c 20 6f 72 20 | st.be.known.at.compile-time,.or. |
| 1ad20 | 69 74 20 69 73 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 | it.is.a.compile.error.</li>..... |
| 1ad40 | 20 20 20 20 3c 6c 69 3e 49 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 64 65 66 69 6e 69 74 69 | ....<li>In.the.function.definiti |
| 1ad60 | 6f 6e 2c 20 74 68 65 20 76 61 6c 75 65 20 69 73 20 6b 6e 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c | on,.the.value.is.known.at.compil |
| 1ad80 | 65 2d 74 69 6d 65 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c | e-time.</li>.......</ul>.......< |
| 1ada0 | 70 3e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f | p>.......</p>.......<p>.......Fo |
| 1adc0 | 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 77 65 20 77 65 72 65 20 74 6f 20 69 6e 74 72 6f 64 75 | r.example,.if.we.were.to.introdu |
| 1ade0 | 63 65 20 61 6e 6f 74 68 65 72 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 74 68 65 20 61 62 6f 76 65 | ce.another.function.to.the.above |
| 1ae00 | 20 73 6e 69 70 70 65 74 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e | .snippet:.......</p>.......<pre> |
| 1ae20 | 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 6e 20 6d 61 78 28 63 6f 6d 70 74 69 6d | <code.class="zig">fn.max(comptim |
| 1ae40 | 65 20 54 3a 20 74 79 70 65 2c 20 61 3a 20 54 2c 20 62 3a 20 54 29 20 2d 26 67 74 3b 20 54 20 7b | e.T:.type,.a:.T,.b:.T).->.T.{ |
| 1ae60 | 0a 20 20 20 20 69 66 20 28 61 20 26 67 74 3b 20 62 29 20 61 20 65 6c 73 65 20 62 0a 7d 0a 66 6e | .....if.(a.>.b).a.else.b.}.fn |
| 1ae80 | 20 6c 65 74 73 54 72 79 54 6f 50 61 73 73 41 52 75 6e 74 69 6d 65 54 79 70 65 28 63 6f 6e 64 69 | .letsTryToPassARuntimeType(condi |
| 1aea0 | 74 69 6f 6e 3a 20 62 6f 6f 6c 29 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 72 65 73 75 6c 74 20 3d | tion:.bool).{.....const.result.= |
| 1aec0 | 20 6d 61 78 28 0a 20 20 20 20 20 20 20 20 69 66 20 28 63 6f 6e 64 69 74 69 6f 6e 29 20 66 33 32 | .max(.........if.(condition).f32 |
| 1aee0 | 20 65 6c 73 65 20 75 36 34 2c 0a 20 20 20 20 20 20 20 20 31 32 33 34 2c 0a 20 20 20 20 20 20 20 | .else.u64,.........1234,........ |
| 1af00 | 20 35 36 37 38 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e | .5678);.}</code></pre>.......<p> |
| 1af20 | 0a 20 20 20 20 20 20 54 68 65 6e 20 77 65 20 67 65 74 20 74 68 69 73 20 72 65 73 75 6c 74 20 66 | .......Then.we.get.this.result.f |
| 1af40 | 72 6f 6d 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 | rom.the.compiler:.......</p>.... |
| 1af60 | 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 2e 2f 74 65 73 74 2e | ...<pre><code.class="sh">./test. |
| 1af80 | 7a 69 67 3a 36 3a 39 3a 20 65 72 72 6f 72 3a 20 75 6e 61 62 6c 65 20 74 6f 20 65 76 61 6c 75 61 | zig:6:9:.error:.unable.to.evalua |
| 1afa0 | 74 65 20 63 6f 6e 73 74 61 6e 74 20 65 78 70 72 65 73 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 69 | te.constant.expression.........i |
| 1afc0 | 66 20 28 63 6f 6e 64 69 74 69 6f 6e 29 20 66 33 32 20 65 6c 73 65 20 75 36 34 2c 0a 20 20 20 20 | f.(condition).f32.else.u64,..... |
| 1afe0 | 20 20 20 20 5e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 | ....^</code></pre>.......<p>.... |
| 1b000 | 20 20 20 54 68 69 73 20 69 73 20 61 6e 20 65 72 72 6f 72 20 62 65 63 61 75 73 65 20 74 68 65 20 | ...This.is.an.error.because.the. |
| 1b020 | 70 72 6f 67 72 61 6d 6d 65 72 20 61 74 74 65 6d 70 74 65 64 20 74 6f 20 70 61 73 73 20 61 20 76 | programmer.attempted.to.pass.a.v |
| 1b040 | 61 6c 75 65 20 6f 6e 6c 79 20 6b 6e 6f 77 6e 20 61 74 20 72 75 6e 2d 74 69 6d 65 0a 20 20 20 20 | alue.only.known.at.run-time..... |
| 1b060 | 20 20 74 6f 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 63 68 20 65 78 70 65 63 74 73 20 61 20 | ..to.a.function.which.expects.a. |
| 1b080 | 76 61 6c 75 65 20 6b 6e 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 0a 20 20 20 | value.known.at.compile-time..... |
| 1b0a0 | 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 6e 6f 74 68 65 72 20 | ...</p>.......<p>.......Another. |
| 1b0c0 | 77 61 79 20 74 6f 20 67 65 74 20 61 6e 20 65 72 72 6f 72 20 69 73 20 69 66 20 77 65 20 70 61 73 | way.to.get.an.error.is.if.we.pas |
| 1b0e0 | 73 20 61 20 74 79 70 65 20 74 68 61 74 20 76 69 6f 6c 61 74 65 73 20 74 68 65 20 74 79 70 65 20 | s.a.type.that.violates.the.type. |
| 1b100 | 63 68 65 63 6b 65 72 20 77 68 65 6e 20 74 68 65 0a 20 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 | checker.when.the.......function. |
| 1b120 | 69 73 20 61 6e 61 6c 79 7a 65 64 2e 20 54 68 69 73 20 69 73 20 77 68 61 74 20 69 74 20 6d 65 61 | is.analyzed..This.is.what.it.mea |
| 1b140 | 6e 73 20 74 6f 20 68 61 76 65 20 3c 65 6d 3e 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 64 75 63 6b | ns.to.have.<em>compile-time.duck |
| 1b160 | 20 74 79 70 69 6e 67 3c 2f 65 6d 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | .typing</em>........</p>.......< |
| 1b180 | 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e | p>.......For.example:.......</p> |
| 1b1a0 | 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 6e | .......<pre><code.class="zig">fn |
| 1b1c0 | 20 6d 61 78 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 2c 20 61 3a 20 54 2c 20 62 3a 20 | .max(comptime.T:.type,.a:.T,.b:. |
| 1b1e0 | 54 29 20 2d 26 67 74 3b 20 54 20 7b 0a 20 20 20 20 69 66 20 28 61 20 26 67 74 3b 20 62 29 20 61 | T).->.T.{.....if.(a.>.b).a |
| 1b200 | 20 65 6c 73 65 20 62 0a 7d 0a 66 6e 20 6c 65 74 73 54 72 79 54 6f 43 6f 6d 70 61 72 65 42 6f 6f | .else.b.}.fn.letsTryToCompareBoo |
| 1b220 | 6c 73 28 61 3a 20 62 6f 6f 6c 2c 20 62 3a 20 62 6f 6f 6c 29 20 2d 26 67 74 3b 20 62 6f 6f 6c 20 | ls(a:.bool,.b:.bool).->.bool. |
| 1b240 | 7b 0a 20 20 20 20 6d 61 78 28 62 6f 6f 6c 2c 20 61 2c 20 62 29 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f | {.....max(bool,.a,.b).}</code></ |
| 1b260 | 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 63 6f 64 65 20 70 72 | pre>.......<p>.......The.code.pr |
| 1b280 | 6f 64 75 63 65 73 20 74 68 69 73 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 3a 0a 20 20 20 20 20 | oduces.this.error.message:...... |
| 1b2a0 | 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 2e 2f 74 65 73 74 2e 7a 69 | .</p>.......<pre><code>./test.zi |
| 1b2c0 | 67 3a 32 3a 31 31 3a 20 65 72 72 6f 72 3a 20 6f 70 65 72 61 74 6f 72 20 6e 6f 74 20 61 6c 6c 6f | g:2:11:.error:.operator.not.allo |
| 1b2e0 | 77 65 64 20 66 6f 72 20 74 79 70 65 20 27 62 6f 6f 6c 27 0a 20 20 20 20 69 66 20 28 61 20 26 67 | wed.for.type.'bool'.....if.(a.&g |
| 1b300 | 74 3b 20 62 29 20 61 20 65 6c 73 65 20 62 0a 20 20 20 20 20 20 20 20 20 20 5e 0a 2e 2f 74 65 73 | t;.b).a.else.b...........^../tes |
| 1b320 | 74 2e 7a 69 67 3a 35 3a 38 3a 20 6e 6f 74 65 3a 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 | t.zig:5:8:.note:.called.from.her |
| 1b340 | 65 0a 20 20 20 20 6d 61 78 28 62 6f 6f 6c 2c 20 61 2c 20 62 29 0a 20 20 20 20 20 20 5e 3c 2f 63 | e.....max(bool,.a,.b).......^</c |
| 1b360 | 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4f 6e 20 74 68 | ode></pre>.......<p>.......On.th |
| 1b380 | 65 20 66 6c 69 70 20 73 69 64 65 2c 20 69 6e 73 69 64 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e | e.flip.side,.inside.the.function |
| 1b3a0 | 20 64 65 66 69 6e 69 74 69 6f 6e 20 77 69 74 68 20 74 68 65 20 3c 63 6f 64 65 3e 63 6f 6d 70 74 | .definition.with.the.<code>compt |
| 1b3c0 | 69 6d 65 3c 2f 63 6f 64 65 3e 20 70 61 72 61 6d 65 74 65 72 2c 20 74 68 65 0a 20 20 20 20 20 20 | ime</code>.parameter,.the....... |
| 1b3e0 | 76 61 6c 75 65 20 69 73 20 6b 6e 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 20 | value.is.known.at.compile-time.. |
| 1b400 | 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 77 65 20 61 63 74 75 61 6c 6c 79 20 63 6f 75 6c | This.means.that.we.actually.coul |
| 1b420 | 64 20 6d 61 6b 65 20 74 68 69 73 20 77 6f 72 6b 20 66 6f 72 20 74 68 65 20 62 6f 6f 6c 20 74 79 | d.make.this.work.for.the.bool.ty |
| 1b440 | 70 65 0a 20 20 20 20 20 20 69 66 20 77 65 20 77 61 6e 74 65 64 20 74 6f 3a 0a 20 20 20 20 20 20 | pe.......if.we.wanted.to:....... |
| 1b460 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 | </p>.......<pre><code.class="zig |
| 1b480 | 22 3e 66 6e 20 6d 61 78 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 2c 20 61 3a 20 54 2c | ">fn.max(comptime.T:.type,.a:.T, |
| 1b4a0 | 20 62 3a 20 54 29 20 2d 26 67 74 3b 20 54 20 7b 0a 20 20 20 20 69 66 20 28 54 20 3d 3d 20 62 6f | .b:.T).->.T.{.....if.(T.==.bo |
| 1b4c0 | 6f 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 61 20 6f 72 20 62 3b 0a 20 20 20 | ol).{.........return.a.or.b;.... |
| 1b4e0 | 20 7d 20 65 6c 73 65 20 69 66 20 28 61 20 26 67 74 3b 20 62 29 20 7b 0a 20 20 20 20 20 20 20 20 | .}.else.if.(a.>.b).{......... |
| 1b500 | 72 65 74 75 72 6e 20 61 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 72 | return.a;.....}.else.{.........r |
| 1b520 | 65 74 75 72 6e 20 62 3b 0a 20 20 20 20 7d 0a 7d 0a 66 6e 20 6c 65 74 73 54 72 79 54 6f 43 6f 6d | eturn.b;.....}.}.fn.letsTryToCom |
| 1b540 | 70 61 72 65 42 6f 6f 6c 73 28 61 3a 20 62 6f 6f 6c 2c 20 62 3a 20 62 6f 6f 6c 29 20 2d 26 67 74 | pareBools(a:.bool,.b:.bool).-> |
| 1b560 | 3b 20 62 6f 6f 6c 20 7b 0a 20 20 20 20 6d 61 78 28 62 6f 6f 6c 2c 20 61 2c 20 62 29 0a 7d 3c 2f | ;.bool.{.....max(bool,.a,.b).}</ |
| 1b580 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 | code></pre>.......<p>.......This |
| 1b5a0 | 20 77 6f 72 6b 73 20 62 65 63 61 75 73 65 20 5a 69 67 20 69 6d 70 6c 69 63 69 74 6c 79 20 69 6e | .works.because.Zig.implicitly.in |
| 1b5c0 | 6c 69 6e 65 73 20 3c 63 6f 64 65 3e 69 66 3c 2f 63 6f 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e | lines.<code>if</code>.expression |
| 1b5e0 | 73 20 77 68 65 6e 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 0a 20 20 20 20 20 20 69 73 20 6b 6e | s.when.the.condition.......is.kn |
| 1b600 | 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2c 20 61 6e 64 20 74 68 65 20 63 6f 6d | own.at.compile-time,.and.the.com |
| 1b620 | 70 69 6c 65 72 20 67 75 61 72 61 6e 74 65 65 73 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 73 6b | piler.guarantees.that.it.will.sk |
| 1b640 | 69 70 20 61 6e 61 6c 79 73 69 73 20 6f 66 0a 20 20 20 20 20 20 74 68 65 20 62 72 61 6e 63 68 20 | ip.analysis.of.......the.branch. |
| 1b660 | 6e 6f 74 20 74 61 6b 65 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a | not.taken........</p>.......<p>. |
| 1b680 | 20 20 20 20 20 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 74 68 65 20 61 63 74 75 61 6c | ......This.means.that.the.actual |
| 1b6a0 | 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 64 20 66 6f 72 20 3c 63 6f 64 65 3e 6d 61 | .function.generated.for.<code>ma |
| 1b6c0 | 78 3c 2f 63 6f 64 65 3e 20 69 6e 20 74 68 69 73 20 73 69 74 75 61 74 69 6f 6e 20 6c 6f 6f 6b 73 | x</code>.in.this.situation.looks |
| 1b6e0 | 20 6c 69 6b 65 0a 20 20 20 20 20 20 74 68 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 | .like.......this:.......</p>.... |
| 1b700 | 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 6e 20 6d 61 78 | ...<pre><code.class="zig">fn.max |
| 1b720 | 28 61 3a 20 62 6f 6f 6c 2c 20 62 3a 20 62 6f 6f 6c 29 20 2d 26 67 74 3b 20 62 6f 6f 6c 20 7b 0a | (a:.bool,.b:.bool).->.bool.{. |
| 1b740 | 20 20 20 20 72 65 74 75 72 6e 20 61 20 6f 72 20 62 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 | ....return.a.or.b;.}</code></pre |
| 1b760 | 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 6c 6c 20 74 68 65 20 63 6f 64 65 20 74 | >.......<p>.......All.the.code.t |
| 1b780 | 68 61 74 20 64 65 61 6c 74 20 77 69 74 68 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6b 6e 6f 77 | hat.dealt.with.compile-time.know |
| 1b7a0 | 6e 20 76 61 6c 75 65 73 20 69 73 20 65 6c 69 6d 69 6e 61 74 65 64 20 61 6e 64 20 77 65 20 61 72 | n.values.is.eliminated.and.we.ar |
| 1b7c0 | 65 20 6c 65 66 74 20 77 69 74 68 20 6f 6e 6c 79 0a 20 20 20 20 20 20 74 68 65 20 6e 65 63 65 73 | e.left.with.only.......the.neces |
| 1b7e0 | 73 61 72 79 20 72 75 6e 2d 74 69 6d 65 20 63 6f 64 65 20 74 6f 20 61 63 63 6f 6d 70 6c 69 73 68 | sary.run-time.code.to.accomplish |
| 1b800 | 20 74 68 65 20 74 61 73 6b 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a | .the.task........</p>.......<p>. |
| 1b820 | 20 20 20 20 20 20 54 68 69 73 20 77 6f 72 6b 73 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 66 6f | ......This.works.the.same.way.fo |
| 1b840 | 72 20 3c 63 6f 64 65 3e 73 77 69 74 63 68 3c 2f 63 6f 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e | r.<code>switch</code>.expression |
| 1b860 | 73 20 2d 20 74 68 65 79 20 61 72 65 20 69 6d 70 6c 69 63 69 74 6c 79 20 69 6e 6c 69 6e 65 64 0a | s.-.they.are.implicitly.inlined. |
| 1b880 | 20 20 20 20 20 20 77 68 65 6e 20 74 68 65 20 74 61 72 67 65 74 20 65 78 70 72 65 73 73 69 6f 6e | ......when.the.target.expression |
| 1b8a0 | 20 69 73 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6b 6e 6f 77 6e 2e 0a 20 20 20 20 20 20 3c 2f | .is.compile-time.known........</ |
| 1b8c0 | 70 3e 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2d 76 61 | p>.......<h4.id="compile-time-va |
| 1b8e0 | 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 20 56 61 72 69 61 62 6c 65 73 3c | riables">Compile-Time.Variables< |
| 1b900 | 2f 68 34 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 5a 69 67 2c 20 74 68 65 | /h4>.......<p>.......In.Zig,.the |
| 1b920 | 20 70 72 6f 67 72 61 6d 6d 65 72 20 63 61 6e 20 6c 61 62 65 6c 20 76 61 72 69 61 62 6c 65 73 20 | .programmer.can.label.variables. |
| 1b940 | 61 73 20 3c 63 6f 64 65 3e 63 6f 6d 70 74 69 6d 65 3c 2f 63 6f 64 65 3e 2e 20 54 68 69 73 20 67 | as.<code>comptime</code>..This.g |
| 1b960 | 75 61 72 61 6e 74 65 65 73 20 74 6f 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 0a 20 20 20 20 20 20 | uarantees.to.the.compiler....... |
| 1b980 | 74 68 61 74 20 65 76 65 72 79 20 6c 6f 61 64 20 61 6e 64 20 73 74 6f 72 65 20 6f 66 20 74 68 65 | that.every.load.and.store.of.the |
| 1b9a0 | 20 76 61 72 69 61 62 6c 65 20 69 73 20 70 65 72 66 6f 72 6d 65 64 20 61 74 20 63 6f 6d 70 69 6c | .variable.is.performed.at.compil |
| 1b9c0 | 65 2d 74 69 6d 65 2e 20 41 6e 79 20 76 69 6f 6c 61 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 72 65 | e-time..Any.violation.of.this.re |
| 1b9e0 | 73 75 6c 74 73 20 69 6e 20 61 0a 20 20 20 20 20 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 2e 0a | sults.in.a.......compile.error.. |
| 1ba00 | 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 | ......</p>.......<p>.......This. |
| 1ba20 | 63 6f 6d 62 69 6e 65 64 20 77 69 74 68 20 74 68 65 20 66 61 63 74 20 74 68 61 74 20 77 65 20 63 | combined.with.the.fact.that.we.c |
| 1ba40 | 61 6e 20 3c 63 6f 64 65 3e 69 6e 6c 69 6e 65 3c 2f 63 6f 64 65 3e 20 6c 6f 6f 70 73 20 61 6c 6c | an.<code>inline</code>.loops.all |
| 1ba60 | 6f 77 73 20 75 73 20 74 6f 20 77 72 69 74 65 0a 20 20 20 20 20 20 61 20 66 75 6e 63 74 69 6f 6e | ows.us.to.write.......a.function |
| 1ba80 | 20 77 68 69 63 68 20 69 73 20 70 61 72 74 69 61 6c 6c 79 20 65 76 61 6c 75 61 74 65 64 20 61 74 | .which.is.partially.evaluated.at |
| 1baa0 | 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 61 6e 64 20 70 61 72 74 69 61 6c 6c 79 20 61 74 20 72 | .compile-time.and.partially.at.r |
| 1bac0 | 75 6e 2d 74 69 6d 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 | un-time........</p>.......<p>... |
| 1bae0 | 20 20 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 | ....For.example:.......</p>..... |
| 1bb00 | 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 | ..<pre><code.class="zig">const.a |
| 1bb20 | 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 75 67 2e 61 73 73 | ssert.=.@import("std").debug.ass |
| 1bb40 | 65 72 74 3b 0a 0a 63 6f 6e 73 74 20 43 6d 64 46 6e 20 3d 20 73 74 72 75 63 74 20 7b 0a 20 20 20 | ert;..const.CmdFn.=.struct.{.... |
| 1bb60 | 20 6e 61 6d 65 3a 20 5b 5d 63 6f 6e 73 74 20 75 38 2c 0a 20 20 20 20 66 75 6e 63 3a 20 66 6e 28 | .name:.[]const.u8,.....func:.fn( |
| 1bb80 | 69 33 32 29 20 2d 26 67 74 3b 20 69 33 32 2c 0a 7d 3b 0a 0a 63 6f 6e 73 74 20 63 6d 64 5f 66 6e | i32).->.i32,.};..const.cmd_fn |
| 1bba0 | 73 20 3d 20 5b 5d 43 6d 64 46 6e 7b 0a 20 20 20 20 43 6d 64 46 6e 20 7b 2e 6e 61 6d 65 20 3d 20 | s.=.[]CmdFn{.....CmdFn.{.name.=. |
| 1bbc0 | 22 6f 6e 65 22 2c 20 2e 66 75 6e 63 20 3d 20 6f 6e 65 7d 2c 0a 20 20 20 20 43 6d 64 46 6e 20 7b | "one",..func.=.one},.....CmdFn.{ |
| 1bbe0 | 2e 6e 61 6d 65 20 3d 20 22 74 77 6f 22 2c 20 2e 66 75 6e 63 20 3d 20 74 77 6f 7d 2c 0a 20 20 20 | .name.=."two",..func.=.two},.... |
| 1bc00 | 20 43 6d 64 46 6e 20 7b 2e 6e 61 6d 65 20 3d 20 22 74 68 72 65 65 22 2c 20 2e 66 75 6e 63 20 3d | .CmdFn.{.name.=."three",..func.= |
| 1bc20 | 20 74 68 72 65 65 7d 2c 0a 7d 3b 0a 66 6e 20 6f 6e 65 28 76 61 6c 75 65 3a 20 69 33 32 29 20 2d | .three},.};.fn.one(value:.i32).- |
| 1bc40 | 26 67 74 3b 20 69 33 32 20 7b 20 76 61 6c 75 65 20 2b 20 31 20 7d 0a 66 6e 20 74 77 6f 28 76 61 | >.i32.{.value.+.1.}.fn.two(va |
| 1bc60 | 6c 75 65 3a 20 69 33 32 29 20 2d 26 67 74 3b 20 69 33 32 20 7b 20 76 61 6c 75 65 20 2b 20 32 20 | lue:.i32).->.i32.{.value.+.2. |
| 1bc80 | 7d 0a 66 6e 20 74 68 72 65 65 28 76 61 6c 75 65 3a 20 69 33 32 29 20 2d 26 67 74 3b 20 69 33 32 | }.fn.three(value:.i32).->.i32 |
| 1bca0 | 20 7b 20 76 61 6c 75 65 20 2b 20 33 20 7d 0a 0a 66 6e 20 70 65 72 66 6f 72 6d 46 6e 28 63 6f 6d | .{.value.+.3.}..fn.performFn(com |
| 1bcc0 | 70 74 69 6d 65 20 70 72 65 66 69 78 5f 63 68 61 72 3a 20 75 38 2c 20 73 74 61 72 74 5f 76 61 6c | ptime.prefix_char:.u8,.start_val |
| 1bce0 | 75 65 3a 20 69 33 32 29 20 2d 26 67 74 3b 20 69 33 32 20 7b 0a 20 20 20 20 76 61 72 20 72 65 73 | ue:.i32).->.i32.{.....var.res |
| 1bd00 | 75 6c 74 3a 20 69 33 32 20 3d 20 73 74 61 72 74 5f 76 61 6c 75 65 3b 0a 20 20 20 20 63 6f 6d 70 | ult:.i32.=.start_value;.....comp |
| 1bd20 | 74 69 6d 65 20 76 61 72 20 69 20 3d 20 30 3b 0a 20 20 20 20 69 6e 6c 69 6e 65 20 77 68 69 6c 65 | time.var.i.=.0;.....inline.while |
| 1bd40 | 20 28 69 20 26 6c 74 3b 20 63 6d 64 5f 66 6e 73 2e 6c 65 6e 29 20 3a 20 28 69 20 2b 3d 20 31 29 | .(i.<.cmd_fns.len).:.(i.+=.1) |
| 1bd60 | 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 63 6d 64 5f 66 6e 73 5b 69 5d 2e 6e 61 6d 65 5b 30 | .{.........if.(cmd_fns[i].name[0 |
| 1bd80 | 5d 20 3d 3d 20 70 72 65 66 69 78 5f 63 68 61 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ].==.prefix_char).{............. |
| 1bda0 | 72 65 73 75 6c 74 20 3d 20 63 6d 64 5f 66 6e 73 5b 69 5d 2e 66 75 6e 63 28 72 65 73 75 6c 74 29 | result.=.cmd_fns[i].func(result) |
| 1bdc0 | 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 | ;.........}.....}.....return.res |
| 1bde0 | 75 6c 74 3b 0a 7d 0a 0a 74 65 73 74 20 22 70 65 72 66 6f 72 6d 20 66 6e 22 20 7b 0a 20 20 20 20 | ult;.}..test."perform.fn".{..... |
| 1be00 | 61 73 73 65 72 74 28 70 65 72 66 6f 72 6d 46 6e 28 27 74 27 2c 20 31 29 20 3d 3d 20 36 29 3b 0a | assert(performFn('t',.1).==.6);. |
| 1be20 | 20 20 20 20 61 73 73 65 72 74 28 70 65 72 66 6f 72 6d 46 6e 28 27 6f 27 2c 20 30 29 20 3d 3d 20 | ....assert(performFn('o',.0).==. |
| 1be40 | 31 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 70 65 72 66 6f 72 6d 46 6e 28 27 77 27 2c 20 39 39 | 1);.....assert(performFn('w',.99 |
| 1be60 | 29 20 3d 3d 20 39 39 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c | ).==.99);.}</code></pre>.......< |
| 1be80 | 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 65 78 61 6d 70 6c 65 20 69 73 20 61 20 62 69 74 20 63 | p>.......This.example.is.a.bit.c |
| 1bea0 | 6f 6e 74 72 69 76 65 64 2c 20 62 65 63 61 75 73 65 20 74 68 65 20 63 6f 6d 70 69 6c 65 2d 74 69 | ontrived,.because.the.compile-ti |
| 1bec0 | 6d 65 20 65 76 61 6c 75 61 74 69 6f 6e 20 63 6f 6d 70 6f 6e 65 6e 74 20 69 73 20 75 6e 6e 65 63 | me.evaluation.component.is.unnec |
| 1bee0 | 65 73 73 61 72 79 3b 0a 20 20 20 20 20 20 74 68 69 73 20 63 6f 64 65 20 77 6f 75 6c 64 20 77 6f | essary;.......this.code.would.wo |
| 1bf00 | 72 6b 20 66 69 6e 65 20 69 66 20 69 74 20 77 61 73 20 61 6c 6c 20 64 6f 6e 65 20 61 74 20 72 75 | rk.fine.if.it.was.all.done.at.ru |
| 1bf20 | 6e 2d 74 69 6d 65 2e 20 42 75 74 20 69 74 20 64 6f 65 73 20 65 6e 64 20 75 70 20 67 65 6e 65 72 | n-time..But.it.does.end.up.gener |
| 1bf40 | 61 74 69 6e 67 0a 20 20 20 20 20 20 64 69 66 66 65 72 65 6e 74 20 63 6f 64 65 2e 20 49 6e 20 74 | ating.......different.code..In.t |
| 1bf60 | 68 69 73 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 3c 63 6f 64 65 3e | his.example,.the.function.<code> |
| 1bf80 | 70 65 72 66 6f 72 6d 46 6e 3c 2f 63 6f 64 65 3e 20 69 73 20 67 65 6e 65 72 61 74 65 64 20 74 68 | performFn</code>.is.generated.th |
| 1bfa0 | 72 65 65 20 64 69 66 66 65 72 65 6e 74 20 74 69 6d 65 73 2c 0a 20 20 20 20 20 20 66 6f 72 20 74 | ree.different.times,.......for.t |
| 1bfc0 | 68 65 20 64 69 66 66 65 72 65 6e 74 20 76 61 6c 75 65 73 20 6f 66 20 3c 63 6f 64 65 3e 70 72 65 | he.different.values.of.<code>pre |
| 1bfe0 | 66 69 78 5f 63 68 61 72 3c 2f 63 6f 64 65 3e 20 70 72 6f 76 69 64 65 64 3a 0a 20 20 20 20 20 20 | fix_char</code>.provided:....... |
| 1c000 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 | </p>.......<pre><code.class="zig |
| 1c020 | 22 3e 2f 2f 20 46 72 6f 6d 20 74 68 65 20 6c 69 6e 65 3a 0a 2f 2f 20 61 73 73 65 72 74 28 70 65 | ">//.From.the.line:.//.assert(pe |
| 1c040 | 72 66 6f 72 6d 46 6e 28 27 74 27 2c 20 31 29 20 3d 3d 20 36 29 3b 0a 66 6e 20 70 65 72 66 6f 72 | rformFn('t',.1).==.6);.fn.perfor |
| 1c060 | 6d 46 6e 28 73 74 61 72 74 5f 76 61 6c 75 65 3a 20 69 33 32 29 20 2d 26 67 74 3b 20 69 33 32 20 | mFn(start_value:.i32).->.i32. |
| 1c080 | 7b 0a 20 20 20 20 76 61 72 20 72 65 73 75 6c 74 3a 20 69 33 32 20 3d 20 73 74 61 72 74 5f 76 61 | {.....var.result:.i32.=.start_va |
| 1c0a0 | 6c 75 65 3b 0a 20 20 20 20 72 65 73 75 6c 74 20 3d 20 74 77 6f 28 72 65 73 75 6c 74 29 3b 0a 20 | lue;.....result.=.two(result);.. |
| 1c0c0 | 20 20 20 72 65 73 75 6c 74 20 3d 20 74 68 72 65 65 28 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 72 | ...result.=.three(result);.....r |
| 1c0e0 | 65 74 75 72 6e 20 72 65 73 75 6c 74 3b 0a 7d 0a 0a 2f 2f 20 46 72 6f 6d 20 74 68 65 20 6c 69 6e | eturn.result;.}..//.From.the.lin |
| 1c100 | 65 3a 0a 2f 2f 20 61 73 73 65 72 74 28 70 65 72 66 6f 72 6d 46 6e 28 27 6f 27 2c 20 30 29 20 3d | e:.//.assert(performFn('o',.0).= |
| 1c120 | 3d 20 31 29 3b 0a 66 6e 20 70 65 72 66 6f 72 6d 46 6e 28 73 74 61 72 74 5f 76 61 6c 75 65 3a 20 | =.1);.fn.performFn(start_value:. |
| 1c140 | 69 33 32 29 20 2d 26 67 74 3b 20 69 33 32 20 7b 0a 20 20 20 20 76 61 72 20 72 65 73 75 6c 74 3a | i32).->.i32.{.....var.result: |
| 1c160 | 20 69 33 32 20 3d 20 73 74 61 72 74 5f 76 61 6c 75 65 3b 0a 20 20 20 20 72 65 73 75 6c 74 20 3d | .i32.=.start_value;.....result.= |
| 1c180 | 20 6f 6e 65 28 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 3b | .one(result);.....return.result; |
| 1c1a0 | 0a 7d 0a 0a 2f 2f 20 46 72 6f 6d 20 74 68 65 20 6c 69 6e 65 3a 0a 2f 2f 20 61 73 73 65 72 74 28 | .}..//.From.the.line:.//.assert( |
| 1c1c0 | 70 65 72 66 6f 72 6d 46 6e 28 27 77 27 2c 20 39 39 29 20 3d 3d 20 39 39 29 3b 0a 66 6e 20 70 65 | performFn('w',.99).==.99);.fn.pe |
| 1c1e0 | 72 66 6f 72 6d 46 6e 28 73 74 61 72 74 5f 76 61 6c 75 65 3a 20 69 33 32 29 20 2d 26 67 74 3b 20 | rformFn(start_value:.i32).->. |
| 1c200 | 69 33 32 20 7b 0a 20 20 20 20 76 61 72 20 72 65 73 75 6c 74 3a 20 69 33 32 20 3d 20 73 74 61 72 | i32.{.....var.result:.i32.=.star |
| 1c220 | 74 5f 76 61 6c 75 65 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 3b 0a 7d 3c 2f 63 | t_value;.....return.result;.}</c |
| 1c240 | 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 74 65 20 | ode></pre>.......<p>.......Note. |
| 1c260 | 74 68 61 74 20 74 68 69 73 20 68 61 70 70 65 6e 73 20 65 76 65 6e 20 69 6e 20 61 20 64 65 62 75 | that.this.happens.even.in.a.debu |
| 1c280 | 67 20 62 75 69 6c 64 3b 20 69 6e 20 61 20 72 65 6c 65 61 73 65 20 62 75 69 6c 64 20 74 68 65 73 | g.build;.in.a.release.build.thes |
| 1c2a0 | 65 20 67 65 6e 65 72 61 74 65 64 20 66 75 6e 63 74 69 6f 6e 73 20 73 74 69 6c 6c 0a 20 20 20 20 | e.generated.functions.still..... |
| 1c2c0 | 20 20 70 61 73 73 20 74 68 72 6f 75 67 68 20 72 69 67 6f 72 6f 75 73 20 4c 4c 56 4d 20 6f 70 74 | ..pass.through.rigorous.LLVM.opt |
| 1c2e0 | 69 6d 69 7a 61 74 69 6f 6e 73 2e 20 54 68 65 20 69 6d 70 6f 72 74 61 6e 74 20 74 68 69 6e 67 20 | imizations..The.important.thing. |
| 1c300 | 74 6f 20 6e 6f 74 65 2c 20 68 6f 77 65 76 65 72 2c 20 69 73 20 6e 6f 74 20 74 68 61 74 20 74 68 | to.note,.however,.is.not.that.th |
| 1c320 | 69 73 0a 20 20 20 20 20 20 69 73 20 61 20 77 61 79 20 74 6f 20 77 72 69 74 65 20 6d 6f 72 65 20 | is.......is.a.way.to.write.more. |
| 1c340 | 6f 70 74 69 6d 69 7a 65 64 20 63 6f 64 65 2c 20 62 75 74 20 74 68 61 74 20 69 74 20 69 73 20 61 | optimized.code,.but.that.it.is.a |
| 1c360 | 20 77 61 79 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 77 68 61 74 20 3c 65 6d 3e | .way.to.make.sure.that.what.<em> |
| 1c380 | 73 68 6f 75 6c 64 3c 2f 65 6d 3e 20 68 61 70 70 65 6e 0a 20 20 20 20 20 20 61 74 20 63 6f 6d 70 | should</em>.happen.......at.comp |
| 1c3a0 | 69 6c 65 2d 74 69 6d 65 2c 20 3c 65 6d 3e 64 6f 65 73 3c 2f 65 6d 3e 20 68 61 70 70 65 6e 20 61 | ile-time,.<em>does</em>.happen.a |
| 1c3c0 | 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 20 54 68 69 73 20 63 61 74 63 68 65 73 20 6d 6f 72 | t.compile-time..This.catches.mor |
| 1c3e0 | 65 20 65 72 72 6f 72 73 20 61 6e 64 20 61 73 20 64 65 6d 6f 6e 73 74 72 61 74 65 64 0a 20 20 20 | e.errors.and.as.demonstrated.... |
| 1c400 | 20 20 20 6c 61 74 65 72 20 69 6e 20 74 68 69 73 20 61 72 74 69 63 6c 65 2c 20 61 6c 6c 6f 77 73 | ...later.in.this.article,.allows |
| 1c420 | 20 65 78 70 72 65 73 73 69 76 65 6e 65 73 73 20 74 68 61 74 20 69 6e 20 6f 74 68 65 72 20 6c 61 | .expressiveness.that.in.other.la |
| 1c440 | 6e 67 75 61 67 65 73 20 72 65 71 75 69 72 65 73 20 75 73 69 6e 67 20 6d 61 63 72 6f 73 2c 0a 20 | nguages.requires.using.macros,.. |
| 1c460 | 20 20 20 20 20 67 65 6e 65 72 61 74 65 64 20 63 6f 64 65 2c 20 6f 72 20 61 20 70 72 65 70 72 6f | .....generated.code,.or.a.prepro |
| 1c480 | 63 65 73 73 6f 72 20 74 6f 20 61 63 63 6f 6d 70 6c 69 73 68 2e 0a 20 20 20 20 20 20 3c 2f 70 3e | cessor.to.accomplish........</p> |
| 1c4a0 | 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2d 65 78 70 72 | .......<h4.id="compile-time-expr |
| 1c4c0 | 65 73 73 69 6f 6e 73 22 3e 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 20 45 78 70 72 65 73 73 69 6f 6e | essions">Compile-Time.Expression |
| 1c4e0 | 73 3c 2f 68 34 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 5a 69 67 2c 20 69 | s</h4>.......<p>.......In.Zig,.i |
| 1c500 | 74 20 6d 61 74 74 65 72 73 20 77 68 65 74 68 65 72 20 61 20 67 69 76 65 6e 20 65 78 70 72 65 73 | t.matters.whether.a.given.expres |
| 1c520 | 73 69 6f 6e 20 69 73 20 6b 6e 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6f 72 | sion.is.known.at.compile-time.or |
| 1c540 | 20 72 75 6e 2d 74 69 6d 65 2e 20 41 20 70 72 6f 67 72 61 6d 6d 65 72 20 63 61 6e 0a 20 20 20 20 | .run-time..A.programmer.can..... |
| 1c560 | 20 20 75 73 65 20 61 20 3c 63 6f 64 65 3e 63 6f 6d 70 74 69 6d 65 3c 2f 63 6f 64 65 3e 20 65 78 | ..use.a.<code>comptime</code>.ex |
| 1c580 | 70 72 65 73 73 69 6f 6e 20 74 6f 20 67 75 61 72 61 6e 74 65 65 20 74 68 61 74 20 74 68 65 20 65 | pression.to.guarantee.that.the.e |
| 1c5a0 | 78 70 72 65 73 73 69 6f 6e 20 77 69 6c 6c 20 62 65 20 65 76 61 6c 75 61 74 65 64 20 61 74 20 63 | xpression.will.be.evaluated.at.c |
| 1c5c0 | 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 0a 20 20 20 20 20 20 49 66 20 74 68 69 73 20 63 61 6e 6e 6f | ompile-time........If.this.canno |
| 1c5e0 | 74 20 62 65 20 61 63 63 6f 6d 70 6c 69 73 68 65 64 2c 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 | t.be.accomplished,.the.compiler. |
| 1c600 | 77 69 6c 6c 20 65 6d 69 74 20 61 6e 20 65 72 72 6f 72 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 3a | will.emit.an.error..For.example: |
| 1c620 | 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 | .......</p>.......<pre><code.cla |
| 1c640 | 73 73 3d 22 7a 69 67 22 3e 65 78 74 65 72 6e 20 66 6e 20 65 78 69 74 28 29 20 2d 26 67 74 3b 20 | ss="zig">extern.fn.exit().->. |
| 1c660 | 75 6e 72 65 61 63 68 61 62 6c 65 3b 0a 0a 66 6e 20 66 6f 6f 28 29 20 7b 0a 20 20 20 20 63 6f 6d | unreachable;..fn.foo().{.....com |
| 1c680 | 70 74 69 6d 65 20 7b 0a 20 20 20 20 20 20 20 20 65 78 69 74 28 29 3b 0a 20 20 20 20 7d 0a 7d 3c | ptime.{.........exit();.....}.}< |
| 1c6a0 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 2e 2f | /code></pre>.......<pre><code>./ |
| 1c6c0 | 74 65 73 74 2e 7a 69 67 3a 35 3a 39 3a 20 65 72 72 6f 72 3a 20 75 6e 61 62 6c 65 20 74 6f 20 65 | test.zig:5:9:.error:.unable.to.e |
| 1c6e0 | 76 61 6c 75 61 74 65 20 63 6f 6e 73 74 61 6e 74 20 65 78 70 72 65 73 73 69 6f 6e 0a 20 20 20 20 | valuate.constant.expression..... |
| 1c700 | 20 20 20 20 65 78 69 74 28 29 3b 0a 20 20 20 20 20 20 20 20 5e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 | ....exit();.........^</code></pr |
| 1c720 | 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 74 20 64 6f 65 73 6e 27 74 20 6d 61 | e>.......<p>.......It.doesn't.ma |
| 1c740 | 6b 65 20 73 65 6e 73 65 20 74 68 61 74 20 61 20 70 72 6f 67 72 61 6d 20 63 6f 75 6c 64 20 63 61 | ke.sense.that.a.program.could.ca |
| 1c760 | 6c 6c 20 3c 63 6f 64 65 3e 65 78 69 74 28 29 3c 2f 63 6f 64 65 3e 20 28 6f 72 20 61 6e 79 20 6f | ll.<code>exit()</code>.(or.any.o |
| 1c780 | 74 68 65 72 20 65 78 74 65 72 6e 61 6c 20 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 61 74 | ther.external.function).......at |
| 1c7a0 | 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2c 20 73 6f 20 74 68 69 73 20 69 73 20 61 20 63 6f 6d 70 | .compile-time,.so.this.is.a.comp |
| 1c7c0 | 69 6c 65 20 65 72 72 6f 72 2e 20 48 6f 77 65 76 65 72 2c 20 61 20 3c 63 6f 64 65 3e 63 6f 6d 70 | ile.error..However,.a.<code>comp |
| 1c7e0 | 74 69 6d 65 3c 2f 63 6f 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e 20 64 6f 65 73 20 6d 75 63 68 | time</code>.expression.does.much |
| 1c800 | 0a 20 20 20 20 20 20 6d 6f 72 65 20 74 68 61 6e 20 73 6f 6d 65 74 69 6d 65 73 20 63 61 75 73 65 | .......more.than.sometimes.cause |
| 1c820 | 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 | .a.compile.error........</p>.... |
| 1c840 | 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 69 74 68 69 6e 20 61 20 3c 63 6f 64 65 3e 63 6f 6d 70 | ...<p>.......Within.a.<code>comp |
| 1c860 | 74 69 6d 65 3c 2f 63 6f 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e 3a 0a 20 20 20 20 20 20 3c 2f | time</code>.expression:.......</ |
| 1c880 | 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 6c 6c 20 76 61 | p>.......<ul>.........<li>All.va |
| 1c8a0 | 72 69 61 62 6c 65 73 20 61 72 65 20 3c 63 6f 64 65 3e 63 6f 6d 70 74 69 6d 65 3c 2f 63 6f 64 65 | riables.are.<code>comptime</code |
| 1c8c0 | 3e 20 76 61 72 69 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 6c | >.variables.</li>.........<li>Al |
| 1c8e0 | 6c 20 3c 63 6f 64 65 3e 69 66 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 77 68 69 6c 65 3c 2f | l.<code>if</code>,.<code>while</ |
| 1c900 | 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 66 6f 72 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 73 | code>,.<code>for</code>,.<code>s |
| 1c920 | 77 69 74 63 68 3c 2f 63 6f 64 65 3e 2c 20 61 6e 64 20 3c 63 6f 64 65 3e 67 6f 74 6f 3c 2f 63 6f | witch</code>,.and.<code>goto</co |
| 1c940 | 64 65 3e 0a 20 20 20 20 20 20 20 20 20 20 65 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 20 65 76 | de>...........expressions.are.ev |
| 1c960 | 61 6c 75 61 74 65 64 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2c 20 6f 72 20 65 6d 69 74 | aluated.at.compile-time,.or.emit |
| 1c980 | 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 69 66 20 74 68 69 73 20 69 73 20 6e 6f 74 20 | .a.compile.error.if.this.is.not. |
| 1c9a0 | 70 6f 73 73 69 62 6c 65 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 6c 6c 20 66 | possible.</li>.........<li>All.f |
| 1c9c0 | 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 63 61 75 73 65 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 | unction.calls.cause.the.compiler |
| 1c9e0 | 20 74 6f 20 69 6e 74 65 72 70 72 65 74 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 61 74 20 63 6f | .to.interpret.the.function.at.co |
| 1ca00 | 6d 70 69 6c 65 2d 74 69 6d 65 2c 20 65 6d 69 74 74 69 6e 67 20 61 0a 20 20 20 20 20 20 20 20 20 | mpile-time,.emitting.a.......... |
| 1ca20 | 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 69 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 74 | .compile.error.if.the.function.t |
| 1ca40 | 72 69 65 73 20 74 6f 20 64 6f 20 73 6f 6d 65 74 68 69 6e 67 20 74 68 61 74 20 68 61 73 20 67 6c | ries.to.do.something.that.has.gl |
| 1ca60 | 6f 62 61 6c 20 72 75 6e 2d 74 69 6d 65 20 73 69 64 65 20 65 66 66 65 63 74 73 2e 3c 2f 6c 69 3e | obal.run-time.side.effects.</li> |
| 1ca80 | 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 | .......</ul>.......<p>.......Thi |
| 1caa0 | 73 20 6d 65 61 6e 73 20 74 68 61 74 20 61 20 70 72 6f 67 72 61 6d 6d 65 72 20 63 61 6e 20 63 72 | s.means.that.a.programmer.can.cr |
| 1cac0 | 65 61 74 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 63 68 20 69 73 20 63 61 6c 6c 65 64 20 | eate.a.function.which.is.called. |
| 1cae0 | 62 6f 74 68 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 61 6e 64 20 72 75 6e 2d 74 69 6d | both.at.compile-time.and.run-tim |
| 1cb00 | 65 2c 20 77 69 74 68 0a 20 20 20 20 20 20 6e 6f 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 74 6f | e,.with.......no.modification.to |
| 1cb20 | 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 71 75 69 72 65 64 2e 0a 20 20 20 20 20 20 3c 2f | .the.function.required........</ |
| 1cb40 | 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4c 65 74 27 73 20 6c 6f 6f 6b 20 61 74 | p>.......<p>.......Let's.look.at |
| 1cb60 | 20 61 6e 20 65 78 61 6d 70 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 | .an.example:.......</p>.......<p |
| 1cb80 | 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 | re><code.class="zig">const.asser |
| 1cba0 | 74 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b | t.=.@import("std").debug.assert; |
| 1cbc0 | 0a 0a 66 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 3a 20 75 33 32 29 20 2d 26 67 74 3b | ..fn.fibonacci(index:.u32).-> |
| 1cbe0 | 20 75 33 32 20 7b 0a 20 20 20 20 69 66 20 28 69 6e 64 65 78 20 26 6c 74 3b 20 32 29 20 72 65 74 | .u32.{.....if.(index.<.2).ret |
| 1cc00 | 75 72 6e 20 69 6e 64 65 78 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 | urn.index;.....return.fibonacci( |
| 1cc20 | 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 | index.-.1).+.fibonacci(index.-.2 |
| 1cc40 | 29 3b 0a 7d 0a 0a 74 65 73 74 20 22 66 69 62 6f 6e 61 63 63 69 22 20 7b 0a 20 20 20 20 2f 2f 20 | );.}..test."fibonacci".{.....//. |
| 1cc60 | 74 65 73 74 20 66 69 62 6f 6e 61 63 63 69 20 61 74 20 72 75 6e 2d 74 69 6d 65 0a 20 20 20 20 61 | test.fibonacci.at.run-time.....a |
| 1cc80 | 73 73 65 72 74 28 66 69 62 6f 6e 61 63 63 69 28 37 29 20 3d 3d 20 31 33 29 3b 0a 0a 20 20 20 20 | ssert(fibonacci(7).==.13);...... |
| 1cca0 | 2f 2f 20 74 65 73 74 20 66 69 62 6f 6e 61 63 63 69 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d | //.test.fibonacci.at.compile-tim |
| 1ccc0 | 65 0a 20 20 20 20 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 | e.....comptime.{.........assert( |
| 1cce0 | 66 69 62 6f 6e 61 63 63 69 28 37 29 20 3d 3d 20 31 33 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f | fibonacci(7).==.13);.....}.}</co |
| 1cd00 | 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 24 20 7a 69 67 | de></pre>.......<pre><code>$.zig |
| 1cd20 | 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 74 65 73 74 46 69 62 6f | .test.test.zig.Test.1/1.testFibo |
| 1cd40 | 6e 61 63 63 69 2e 2e 2e 4f 4b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 | nacci...OK</code></pre>.......<p |
| 1cd60 | 3e 0a 20 20 20 20 20 20 49 6d 61 67 69 6e 65 20 69 66 20 77 65 20 68 61 64 20 66 6f 72 67 6f 74 | >.......Imagine.if.we.had.forgot |
| 1cd80 | 74 65 6e 20 74 68 65 20 62 61 73 65 20 63 61 73 65 20 6f 66 20 74 68 65 20 72 65 63 75 72 73 69 | ten.the.base.case.of.the.recursi |
| 1cda0 | 76 65 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 74 72 69 65 64 20 74 6f 20 72 75 6e 20 74 68 65 | ve.function.and.tried.to.run.the |
| 1cdc0 | 20 74 65 73 74 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 | .tests:.......</p>.......<pre><c |
| 1cde0 | 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 | ode.class="zig">const.assert.=.@ |
| 1ce00 | 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 66 6e 20 | import("std").debug.assert;..fn. |
| 1ce20 | 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 3a 20 75 33 32 29 20 2d 26 67 74 3b 20 75 33 32 20 | fibonacci(index:.u32).->.u32. |
| 1ce40 | 7b 0a 20 20 20 20 2f 2f 69 66 20 28 69 6e 64 65 78 20 26 6c 74 3b 20 32 29 20 72 65 74 75 72 6e | {.....//if.(index.<.2).return |
| 1ce60 | 20 69 6e 64 65 78 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 | .index;.....return.fibonacci(ind |
| 1ce80 | 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a | ex.-.1).+.fibonacci(index.-.2);. |
| 1cea0 | 7d 0a 0a 74 65 73 74 20 22 66 69 62 6f 6e 61 63 63 69 22 20 7b 0a 20 20 20 20 63 6f 6d 70 74 69 | }..test."fibonacci".{.....compti |
| 1cec0 | 6d 65 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 66 69 62 6f 6e 61 63 63 69 28 37 29 | me.{.........assert(fibonacci(7) |
| 1cee0 | 20 3d 3d 20 31 33 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 | .==.13);.....}.}</code></pre>... |
| 1cf00 | 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a | ....<pre><code>$.zig.test.test.z |
| 1cf20 | 69 67 0a 2e 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 32 38 3a 20 65 72 72 6f 72 3a 20 6f 70 65 72 61 | ig../test.zig:3:28:.error:.opera |
| 1cf40 | 74 69 6f 6e 20 63 61 75 73 65 64 20 6f 76 65 72 66 6c 6f 77 0a 20 20 20 20 72 65 74 75 72 6e 20 | tion.caused.overflow.....return. |
| 1cf60 | 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 | fibonacci(index.-.1).+.fibonacci |
| 1cf80 | 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (index.-.2);.................... |
| 1cfa0 | 20 20 20 20 20 20 20 5e 0a 2e 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 32 31 3a 20 6e 6f 74 65 3a 20 | .......^../test.zig:3:21:.note:. |
| 1cfc0 | 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f | called.from.here.....return.fibo |
| 1cfe0 | 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 | nacci(index.-.1).+.fibonacci(ind |
| 1d000 | 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 0a 2e | ex.-.2);.....................^.. |
| 1d020 | 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 32 31 3a 20 6e 6f 74 65 3a 20 63 61 6c 6c 65 64 20 66 72 6f | /test.zig:3:21:.note:.called.fro |
| 1d040 | 6d 20 68 65 72 65 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 | m.here.....return.fibonacci(inde |
| 1d060 | 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 | x.-.1).+.fibonacci(index.-.2);.. |
| 1d080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 0a 2e 2f 74 65 73 74 2e 7a 69 67 3a | ...................^../test.zig: |
| 1d0a0 | 33 3a 32 31 3a 20 6e 6f 74 65 3a 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 0a 20 20 20 | 3:21:.note:.called.from.here.... |
| 1d0c0 | 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 | .return.fibonacci(index.-.1).+.f |
| 1d0e0 | 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 | ibonacci(index.-.2);............ |
| 1d100 | 20 20 20 20 20 20 20 20 20 5e 0a 2e 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 32 31 3a 20 6e 6f 74 65 | .........^../test.zig:3:21:.note |
| 1d120 | 3a 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 | :.called.from.here.....return.fi |
| 1d140 | 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 | bonacci(index.-.1).+.fibonacci(i |
| 1d160 | 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e | ndex.-.2);.....................^ |
| 1d180 | 0a 2e 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 32 31 3a 20 6e 6f 74 65 3a 20 63 61 6c 6c 65 64 20 66 | ../test.zig:3:21:.note:.called.f |
| 1d1a0 | 72 6f 6d 20 68 65 72 65 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e | rom.here.....return.fibonacci(in |
| 1d1c0 | 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b | dex.-.1).+.fibonacci(index.-.2); |
| 1d1e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 0a 2e 2f 74 65 73 74 2e 7a 69 | .....................^../test.zi |
| 1d200 | 67 3a 33 3a 32 31 3a 20 6e 6f 74 65 3a 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 0a 20 | g:3:21:.note:.called.from.here.. |
| 1d220 | 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b | ...return.fibonacci(index.-.1).+ |
| 1d240 | 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 | .fibonacci(index.-.2);.......... |
| 1d260 | 20 20 20 20 20 20 20 20 20 20 20 5e 0a 2e 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 32 31 3a 20 6e 6f | ...........^../test.zig:3:21:.no |
| 1d280 | 74 65 3a 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 0a 20 20 20 20 72 65 74 75 72 6e 20 | te:.called.from.here.....return. |
| 1d2a0 | 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 | fibonacci(index.-.1).+.fibonacci |
| 1d2c0 | 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (index.-.2);.................... |
| 1d2e0 | 20 5e 0a 2e 2f 74 65 73 74 2e 7a 69 67 3a 31 34 3a 32 35 3a 20 6e 6f 74 65 3a 20 63 61 6c 6c 65 | .^../test.zig:14:25:.note:.calle |
| 1d300 | 64 20 66 72 6f 6d 20 68 65 72 65 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 66 69 62 6f 6e | d.from.here.........assert(fibon |
| 1d320 | 61 63 63 69 28 37 29 20 3d 3d 20 31 33 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | acci(7).==.13);................. |
| 1d340 | 20 20 20 20 20 20 20 20 5e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e | ........^</code></pre>.......<p> |
| 1d360 | 0a 20 20 20 20 20 20 54 68 65 20 63 6f 6d 70 69 6c 65 72 20 70 72 6f 64 75 63 65 73 20 61 6e 20 | .......The.compiler.produces.an. |
| 1d380 | 65 72 72 6f 72 20 77 68 69 63 68 20 69 73 20 61 20 73 74 61 63 6b 20 74 72 61 63 65 20 66 72 6f | error.which.is.a.stack.trace.fro |
| 1d3a0 | 6d 20 74 72 79 69 6e 67 20 74 6f 20 65 76 61 6c 75 61 74 65 20 74 68 65 0a 20 20 20 20 20 20 66 | m.trying.to.evaluate.the.......f |
| 1d3c0 | 75 6e 63 74 69 6f 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 0a 20 20 20 20 20 20 3c | unction.at.compile-time........< |
| 1d3e0 | 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4c 75 63 6b 69 6c 79 2c 20 77 65 20 | /p>.......<p>.......Luckily,.we. |
| 1d400 | 75 73 65 64 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 2c 20 61 6e 64 20 73 6f | used.an.unsigned.integer,.and.so |
| 1d420 | 20 77 68 65 6e 20 77 65 20 74 72 69 65 64 20 74 6f 20 73 75 62 74 72 61 63 74 20 31 20 66 72 6f | .when.we.tried.to.subtract.1.fro |
| 1d440 | 6d 20 30 2c 20 69 74 20 74 72 69 67 67 65 72 65 64 0a 20 20 20 20 20 20 75 6e 64 65 66 69 6e 65 | m.0,.it.triggered.......undefine |
| 1d460 | 64 20 62 65 68 61 76 69 6f 72 2c 20 77 68 69 63 68 20 69 73 20 61 6c 77 61 79 73 20 61 20 63 6f | d.behavior,.which.is.always.a.co |
| 1d480 | 6d 70 69 6c 65 20 65 72 72 6f 72 20 69 66 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 6b 6e 6f 77 | mpile.error.if.the.compiler.know |
| 1d4a0 | 73 20 69 74 20 68 61 70 70 65 6e 65 64 2e 0a 20 20 20 20 20 20 42 75 74 20 77 68 61 74 20 77 6f | s.it.happened........But.what.wo |
| 1d4c0 | 75 6c 64 20 68 61 76 65 20 68 61 70 70 65 6e 65 64 20 69 66 20 77 65 20 75 73 65 64 20 61 20 73 | uld.have.happened.if.we.used.a.s |
| 1d4e0 | 69 67 6e 65 64 20 69 6e 74 65 67 65 72 3f 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 | igned.integer?.......</p>....... |
| 1d500 | 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 | <pre><code.class="zig">const.ass |
| 1d520 | 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 75 67 2e 61 73 73 65 72 | ert.=.@import("std").debug.asser |
| 1d540 | 74 3b 0a 0a 66 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 3a 20 69 33 32 29 20 2d 26 67 | t;..fn.fibonacci(index:.i32).-&g |
| 1d560 | 74 3b 20 69 33 32 20 7b 0a 20 20 20 20 2f 2f 69 66 20 28 69 6e 64 65 78 20 26 6c 74 3b 20 32 29 | t;.i32.{.....//if.(index.<.2) |
| 1d580 | 20 72 65 74 75 72 6e 20 69 6e 64 65 78 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 | .return.index;.....return.fibona |
| 1d5a0 | 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 | cci(index.-.1).+.fibonacci(index |
| 1d5c0 | 20 2d 20 32 29 3b 0a 7d 0a 0a 74 65 73 74 20 22 66 69 62 6f 6e 61 63 63 69 22 20 7b 0a 20 20 20 | .-.2);.}..test."fibonacci".{.... |
| 1d5e0 | 20 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 66 69 62 6f 6e | .comptime.{.........assert(fibon |
| 1d600 | 61 63 63 69 28 37 29 20 3d 3d 20 31 33 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f | acci(7).==.13);.....}.}</code></ |
| 1d620 | 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 2e 2f 74 65 73 74 2e 7a 69 67 | pre>.......<pre><code>./test.zig |
| 1d640 | 3a 33 3a 32 31 3a 20 65 72 72 6f 72 3a 20 65 76 61 6c 75 61 74 69 6f 6e 20 65 78 63 65 65 64 65 | :3:21:.error:.evaluation.exceede |
| 1d660 | 64 20 31 30 30 30 20 62 61 63 6b 77 61 72 64 73 20 62 72 61 6e 63 68 65 73 0a 20 20 20 20 72 65 | d.1000.backwards.branches.....re |
| 1d680 | 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f | turn.fibonacci(index.-.1).+.fibo |
| 1d6a0 | 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nacci(index.-.2);............... |
| 1d6c0 | 20 20 20 20 20 20 5e 0a 2e 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 32 31 3a 20 6e 6f 74 65 3a 20 63 | ......^../test.zig:3:21:.note:.c |
| 1d6e0 | 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e | alled.from.here.....return.fibon |
| 1d700 | 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 | acci(index.-.1).+.fibonacci(inde |
| 1d720 | 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 0a 2e 2f | x.-.2);.....................^../ |
| 1d740 | 74 65 73 74 2e 7a 69 67 3a 33 3a 32 31 3a 20 6e 6f 74 65 3a 20 63 61 6c 6c 65 64 20 66 72 6f 6d | test.zig:3:21:.note:.called.from |
| 1d760 | 20 68 65 72 65 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 | .here.....return.fibonacci(index |
| 1d780 | 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 | .-.1).+.fibonacci(index.-.2);... |
| 1d7a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 0a 2e 2f 74 65 73 74 2e 7a 69 67 3a 33 | ..................^../test.zig:3 |
| 1d7c0 | 3a 32 31 3a 20 6e 6f 74 65 3a 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 0a 20 20 20 20 | :21:.note:.called.from.here..... |
| 1d7e0 | 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 | return.fibonacci(index.-.1).+.fi |
| 1d800 | 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | bonacci(index.-.2);............. |
| 1d820 | 20 20 20 20 20 20 20 20 5e 0a 2e 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 32 31 3a 20 6e 6f 74 65 3a | ........^../test.zig:3:21:.note: |
| 1d840 | 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 | .called.from.here.....return.fib |
| 1d860 | 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e | onacci(index.-.1).+.fibonacci(in |
| 1d880 | 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 0a | dex.-.2);.....................^. |
| 1d8a0 | 2e 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 32 31 3a 20 6e 6f 74 65 3a 20 63 61 6c 6c 65 64 20 66 72 | ./test.zig:3:21:.note:.called.fr |
| 1d8c0 | 6f 6d 20 68 65 72 65 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 | om.here.....return.fibonacci(ind |
| 1d8e0 | 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a | ex.-.1).+.fibonacci(index.-.2);. |
| 1d900 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 0a 2e 2f 74 65 73 74 2e 7a 69 67 | ....................^../test.zig |
| 1d920 | 3a 33 3a 32 31 3a 20 6e 6f 74 65 3a 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 0a 20 20 | :3:21:.note:.called.from.here... |
| 1d940 | 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 | ..return.fibonacci(index.-.1).+. |
| 1d960 | 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 | fibonacci(index.-.2);........... |
| 1d980 | 20 20 20 20 20 20 20 20 20 20 5e 0a 2e 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 32 31 3a 20 6e 6f 74 | ..........^../test.zig:3:21:.not |
| 1d9a0 | 65 3a 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 0a 20 20 20 20 72 65 74 75 72 6e 20 66 | e:.called.from.here.....return.f |
| 1d9c0 | 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 | ibonacci(index.-.1).+.fibonacci( |
| 1d9e0 | 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | index.-.2);..................... |
| 1da00 | 5e 0a 2e 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 32 31 3a 20 6e 6f 74 65 3a 20 63 61 6c 6c 65 64 20 | ^../test.zig:3:21:.note:.called. |
| 1da20 | 66 72 6f 6d 20 68 65 72 65 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 | from.here.....return.fibonacci(i |
| 1da40 | 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 | ndex.-.1).+.fibonacci(index.-.2) |
| 1da60 | 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 0a 2e 2f 74 65 73 74 2e 7a | ;.....................^../test.z |
| 1da80 | 69 67 3a 33 3a 32 31 3a 20 6e 6f 74 65 3a 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 0a | ig:3:21:.note:.called.from.here. |
| 1daa0 | 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 | ....return.fibonacci(index.-.1). |
| 1dac0 | 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 | +.fibonacci(index.-.2);......... |
| 1dae0 | 20 20 20 20 20 20 20 20 20 20 20 20 5e 0a 2e 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 32 31 3a 20 6e | ............^../test.zig:3:21:.n |
| 1db00 | 6f 74 65 3a 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 0a 20 20 20 20 72 65 74 75 72 6e | ote:.called.from.here.....return |
| 1db20 | 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 | .fibonacci(index.-.1).+.fibonacc |
| 1db40 | 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | i(index.-.2);................... |
| 1db60 | 20 20 5e 0a 2e 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 32 31 3a 20 6e 6f 74 65 3a 20 63 61 6c 6c 65 | ..^../test.zig:3:21:.note:.calle |
| 1db80 | 64 20 66 72 6f 6d 20 68 65 72 65 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 | d.from.here.....return.fibonacci |
| 1dba0 | 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 | (index.-.1).+.fibonacci(index.-. |
| 1dbc0 | 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 3c 2f 63 6f 64 65 3e | 2);.....................^</code> |
| 1dbe0 | 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 63 6f 6d 70 69 | </pre>.......<p>.......The.compi |
| 1dc00 | 6c 65 72 20 6e 6f 74 69 63 65 64 20 74 68 61 74 20 65 76 61 6c 75 61 74 69 6e 67 20 74 68 69 73 | ler.noticed.that.evaluating.this |
| 1dc20 | 20 66 75 6e 63 74 69 6f 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 74 6f 6f 6b 20 61 | .function.at.compile-time.took.a |
| 1dc40 | 20 6c 6f 6e 67 20 74 69 6d 65 2c 0a 20 20 20 20 20 20 61 6e 64 20 74 68 75 73 20 65 6d 69 74 74 | .long.time,.......and.thus.emitt |
| 1dc60 | 65 64 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 61 6e 64 20 67 61 76 65 20 75 70 2e 20 | ed.a.compile.error.and.gave.up.. |
| 1dc80 | 49 66 20 74 68 65 20 70 72 6f 67 72 61 6d 6d 65 72 20 77 61 6e 74 73 20 74 6f 20 69 6e 63 72 65 | If.the.programmer.wants.to.incre |
| 1dca0 | 61 73 65 0a 20 20 20 20 20 20 74 68 65 20 62 75 64 67 65 74 20 66 6f 72 20 63 6f 6d 70 69 6c 65 | ase.......the.budget.for.compile |
| 1dcc0 | 2d 74 69 6d 65 20 63 6f 6d 70 75 74 61 74 69 6f 6e 2c 20 74 68 65 79 20 63 61 6e 20 75 73 65 20 | -time.computation,.they.can.use. |
| 1dce0 | 61 20 62 75 69 6c 74 2d 69 6e 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 65 64 0a 20 20 20 20 20 | a.built-in.function.called...... |
| 1dd00 | 20 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 73 65 74 45 76 61 6c 42 72 61 6e 63 68 | .<a.href="#builtin-setEvalBranch |
| 1dd20 | 51 75 6f 74 61 22 3e 40 73 65 74 45 76 61 6c 42 72 61 6e 63 68 51 75 6f 74 61 3c 2f 61 3e 20 74 | Quota">@setEvalBranchQuota</a>.t |
| 1dd40 | 6f 20 63 68 61 6e 67 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 6e 75 6d 62 65 72 20 31 30 30 30 | o.change.the.default.number.1000 |
| 1dd60 | 20 74 6f 20 73 6f 6d 65 74 68 69 6e 67 20 65 6c 73 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 | .to.something.else........</p>.. |
| 1dd80 | 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 61 74 20 69 66 20 77 65 20 66 69 78 20 74 68 | .....<p>.......What.if.we.fix.th |
| 1dda0 | 65 20 62 61 73 65 20 63 61 73 65 2c 20 62 75 74 20 70 75 74 20 74 68 65 20 77 72 6f 6e 67 20 76 | e.base.case,.but.put.the.wrong.v |
| 1ddc0 | 61 6c 75 65 20 69 6e 20 74 68 65 20 3c 63 6f 64 65 3e 61 73 73 65 72 74 3c 2f 63 6f 64 65 3e 20 | alue.in.the.<code>assert</code>. |
| 1dde0 | 6c 69 6e 65 3f 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 | line?.......</p>.......<pre><cod |
| 1de00 | 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 61 73 73 | e.class="zig">comptime.{.....ass |
| 1de20 | 65 72 74 28 66 69 62 6f 6e 61 63 63 69 28 37 29 20 3d 3d 20 39 39 39 39 39 29 3b 0a 7d 3c 2f 63 | ert(fibonacci(7).==.99999);.}</c |
| 1de40 | 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 2e 2f 74 65 | ode></pre>.......<pre><code>./te |
| 1de60 | 73 74 2e 7a 69 67 3a 31 35 3a 31 34 3a 20 65 72 72 6f 72 3a 20 75 6e 61 62 6c 65 20 74 6f 20 65 | st.zig:15:14:.error:.unable.to.e |
| 1de80 | 76 61 6c 75 61 74 65 20 63 6f 6e 73 74 61 6e 74 20 65 78 70 72 65 73 73 69 6f 6e 0a 20 20 20 20 | valuate.constant.expression..... |
| 1dea0 | 69 66 20 28 21 6f 6b 29 20 75 6e 72 65 61 63 68 61 62 6c 65 3b 0a 20 20 20 20 20 20 20 20 20 20 | if.(!ok).unreachable;........... |
| 1dec0 | 20 20 5e 0a 2e 2f 74 65 73 74 2e 7a 69 67 3a 31 30 3a 31 35 3a 20 6e 6f 74 65 3a 20 63 61 6c 6c | ..^../test.zig:10:15:.note:.call |
| 1dee0 | 65 64 20 66 72 6f 6d 20 68 65 72 65 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 66 69 62 6f | ed.from.here.........assert(fibo |
| 1df00 | 6e 61 63 63 69 28 37 29 20 3d 3d 20 39 39 39 39 39 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | nacci(7).==.99999);............. |
| 1df20 | 20 20 5e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 | ..^</code></pre>.......<p>...... |
| 1df40 | 20 57 68 61 74 20 68 61 70 70 65 6e 65 64 20 69 73 20 5a 69 67 20 73 74 61 72 74 65 64 20 69 6e | .What.happened.is.Zig.started.in |
| 1df60 | 74 65 72 70 72 65 74 69 6e 67 20 74 68 65 20 3c 63 6f 64 65 3e 61 73 73 65 72 74 3c 2f 63 6f 64 | terpreting.the.<code>assert</cod |
| 1df80 | 65 3e 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 74 68 65 0a 20 20 20 20 20 20 70 61 72 61 6d | e>.function.with.the.......param |
| 1dfa0 | 65 74 65 72 20 3c 63 6f 64 65 3e 6f 6b 3c 2f 63 6f 64 65 3e 20 73 65 74 20 74 6f 20 3c 63 6f 64 | eter.<code>ok</code>.set.to.<cod |
| 1dfc0 | 65 3e 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 2e 20 57 68 65 6e 20 74 68 65 20 69 6e 74 65 72 70 72 | e>false</code>..When.the.interpr |
| 1dfe0 | 65 74 65 72 20 68 69 74 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 75 6e 72 65 61 63 68 61 62 6c 65 | eter.hit.......<code>unreachable |
| 1e000 | 3c 2f 63 6f 64 65 3e 20 69 74 20 65 6d 69 74 74 65 64 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 | </code>.it.emitted.a.compile.err |
| 1e020 | 6f 72 2c 20 62 65 63 61 75 73 65 20 72 65 61 63 68 69 6e 67 20 75 6e 72 65 61 63 68 61 62 6c 65 | or,.because.reaching.unreachable |
| 1e040 | 0a 20 20 20 20 20 20 63 6f 64 65 20 69 73 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f | .......code.is.undefined.behavio |
| 1e060 | 72 2c 20 61 6e 64 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 20 63 61 75 73 65 73 | r,.and.undefined.behavior.causes |
| 1e080 | 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 69 66 20 69 74 20 69 73 20 64 65 74 65 63 74 | .a.compile.error.if.it.is.detect |
| 1e0a0 | 65 64 0a 20 20 20 20 20 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 0a 20 20 20 20 20 20 | ed.......at.compile-time........ |
| 1e0c0 | 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 74 68 65 20 67 6c 6f | </p>........<p>.......In.the.glo |
| 1e0e0 | 62 61 6c 20 73 63 6f 70 65 20 28 6f 75 74 73 69 64 65 20 6f 66 20 61 6e 79 20 66 75 6e 63 74 69 | bal.scope.(outside.of.any.functi |
| 1e100 | 6f 6e 29 2c 20 61 6c 6c 20 65 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 20 69 6d 70 6c 69 63 69 | on),.all.expressions.are.implici |
| 1e120 | 74 6c 79 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 63 6f 6d 70 74 69 6d 65 3c 2f 63 6f 64 65 3e 20 | tly.......<code>comptime</code>. |
| 1e140 | 65 78 70 72 65 73 73 69 6f 6e 73 2e 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 77 65 20 | expressions..This.means.that.we. |
| 1e160 | 63 61 6e 20 75 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 0a 20 20 20 20 20 20 69 6e 69 74 69 | can.use.functions.to.......initi |
| 1e180 | 61 6c 69 7a 65 20 63 6f 6d 70 6c 65 78 20 73 74 61 74 69 63 20 64 61 74 61 2e 20 46 6f 72 20 65 | alize.complex.static.data..For.e |
| 1e1a0 | 78 61 6d 70 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 | xample:.......</p>.......<pre><c |
| 1e1c0 | 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 66 69 72 73 74 5f 32 35 5f 70 | ode.class="zig">const.first_25_p |
| 1e1e0 | 72 69 6d 65 73 20 3d 20 66 69 72 73 74 4e 50 72 69 6d 65 73 28 32 35 29 3b 0a 63 6f 6e 73 74 20 | rimes.=.firstNPrimes(25);.const. |
| 1e200 | 73 75 6d 5f 6f 66 5f 66 69 72 73 74 5f 32 35 5f 70 72 69 6d 65 73 20 3d 20 73 75 6d 28 66 69 72 | sum_of_first_25_primes.=.sum(fir |
| 1e220 | 73 74 5f 32 35 5f 70 72 69 6d 65 73 29 3b 0a 0a 66 6e 20 66 69 72 73 74 4e 50 72 69 6d 65 73 28 | st_25_primes);..fn.firstNPrimes( |
| 1e240 | 63 6f 6d 70 74 69 6d 65 20 6e 3a 20 75 73 69 7a 65 29 20 2d 26 67 74 3b 20 5b 6e 5d 69 33 32 20 | comptime.n:.usize).->.[n]i32. |
| 1e260 | 7b 0a 20 20 20 20 76 61 72 20 70 72 69 6d 65 5f 6c 69 73 74 3a 20 5b 6e 5d 69 33 32 20 3d 20 75 | {.....var.prime_list:.[n]i32.=.u |
| 1e280 | 6e 64 65 66 69 6e 65 64 3b 0a 20 20 20 20 76 61 72 20 6e 65 78 74 5f 69 6e 64 65 78 3a 20 75 73 | ndefined;.....var.next_index:.us |
| 1e2a0 | 69 7a 65 20 3d 20 30 3b 0a 20 20 20 20 76 61 72 20 74 65 73 74 5f 6e 75 6d 62 65 72 3a 20 69 33 | ize.=.0;.....var.test_number:.i3 |
| 1e2c0 | 32 20 3d 20 32 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 6e 65 78 74 5f 69 6e 64 65 78 20 26 6c 74 | 2.=.2;.....while.(next_index.< |
| 1e2e0 | 3b 20 70 72 69 6d 65 5f 6c 69 73 74 2e 6c 65 6e 29 20 3a 20 28 74 65 73 74 5f 6e 75 6d 62 65 72 | ;.prime_list.len).:.(test_number |
| 1e300 | 20 2b 3d 20 31 29 20 7b 0a 20 20 20 20 20 20 20 20 76 61 72 20 74 65 73 74 5f 70 72 69 6d 65 5f | .+=.1).{.........var.test_prime_ |
| 1e320 | 69 6e 64 65 78 3a 20 75 73 69 7a 65 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 76 61 72 20 69 73 | index:.usize.=.0;.........var.is |
| 1e340 | 5f 70 72 69 6d 65 20 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 74 65 | _prime.=.true;.........while.(te |
| 1e360 | 73 74 5f 70 72 69 6d 65 5f 69 6e 64 65 78 20 26 6c 74 3b 20 6e 65 78 74 5f 69 6e 64 65 78 29 20 | st_prime_index.<.next_index). |
| 1e380 | 3a 20 28 74 65 73 74 5f 70 72 69 6d 65 5f 69 6e 64 65 78 20 2b 3d 20 31 29 20 7b 0a 20 20 20 20 | :.(test_prime_index.+=.1).{..... |
| 1e3a0 | 20 20 20 20 20 20 20 20 69 66 20 28 74 65 73 74 5f 6e 75 6d 62 65 72 20 25 20 70 72 69 6d 65 5f | ........if.(test_number.%.prime_ |
| 1e3c0 | 6c 69 73 74 5b 74 65 73 74 5f 70 72 69 6d 65 5f 69 6e 64 65 78 5d 20 3d 3d 20 30 29 20 7b 0a 20 | list[test_prime_index].==.0).{.. |
| 1e3e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 73 5f 70 72 69 6d 65 20 3d 20 66 61 6c 73 65 3b | ...............is_prime.=.false; |
| 1e400 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 | .................break;......... |
| 1e420 | 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 70 | ....}.........}.........if.(is_p |
| 1e440 | 72 69 6d 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6d 65 5f 6c 69 73 74 5b 6e | rime).{.............prime_list[n |
| 1e460 | 65 78 74 5f 69 6e 64 65 78 5d 20 3d 20 74 65 73 74 5f 6e 75 6d 62 65 72 3b 0a 20 20 20 20 20 20 | ext_index].=.test_number;....... |
| 1e480 | 20 20 20 20 20 20 6e 65 78 74 5f 69 6e 64 65 78 20 2b 3d 20 31 3b 0a 20 20 20 20 20 20 20 20 7d | ......next_index.+=.1;.........} |
| 1e4a0 | 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 70 72 69 6d 65 5f 6c 69 73 74 3b 0a 7d 0a | .....}.....return.prime_list;.}. |
| 1e4c0 | 0a 66 6e 20 73 75 6d 28 6e 75 6d 62 65 72 73 3a 20 5b 5d 69 33 32 29 20 2d 26 67 74 3b 20 69 33 | .fn.sum(numbers:.[]i32).->.i3 |
| 1e4e0 | 32 20 7b 0a 20 20 20 20 76 61 72 20 72 65 73 75 6c 74 3a 20 69 33 32 20 3d 20 30 3b 0a 20 20 20 | 2.{.....var.result:.i32.=.0;.... |
| 1e500 | 20 66 6f 72 20 28 6e 75 6d 62 65 72 73 29 20 7c 78 7c 20 7b 0a 20 20 20 20 20 20 20 20 72 65 73 | .for.(numbers).|x|.{.........res |
| 1e520 | 75 6c 74 20 2b 3d 20 78 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 75 6c | ult.+=.x;.....}.....return.resul |
| 1e540 | 74 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 | t;.}</code></pre>.......<p>..... |
| 1e560 | 20 20 57 68 65 6e 20 77 65 20 63 6f 6d 70 69 6c 65 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2c 20 | ..When.we.compile.this.program,. |
| 1e580 | 5a 69 67 20 67 65 6e 65 72 61 74 65 73 20 74 68 65 20 63 6f 6e 73 74 61 6e 74 73 0a 20 20 20 20 | Zig.generates.the.constants..... |
| 1e5a0 | 20 20 77 69 74 68 20 74 68 65 20 61 6e 73 77 65 72 20 70 72 65 2d 63 6f 6d 70 75 74 65 64 2e 20 | ..with.the.answer.pre-computed.. |
| 1e5c0 | 48 65 72 65 20 61 72 65 20 74 68 65 20 6c 69 6e 65 73 20 66 72 6f 6d 20 74 68 65 20 67 65 6e 65 | Here.are.the.lines.from.the.gene |
| 1e5e0 | 72 61 74 65 64 20 4c 4c 56 4d 20 49 52 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 | rated.LLVM.IR:.......</p>....... |
| 1e600 | 3c 70 72 65 3e 3c 63 6f 64 65 3e 40 30 20 3d 20 69 6e 74 65 72 6e 61 6c 20 75 6e 6e 61 6d 65 64 | <pre><code>@0.=.internal.unnamed |
| 1e620 | 5f 61 64 64 72 20 63 6f 6e 73 74 61 6e 74 20 5b 32 35 20 78 20 69 33 32 5d 20 5b 69 33 32 20 32 | _addr.constant.[25.x.i32].[i32.2 |
| 1e640 | 2c 20 69 33 32 20 33 2c 20 69 33 32 20 35 2c 20 69 33 32 20 37 2c 20 69 33 32 20 31 31 2c 20 69 | ,.i32.3,.i32.5,.i32.7,.i32.11,.i |
| 1e660 | 33 32 20 31 33 2c 20 69 33 32 20 31 37 2c 20 69 33 32 20 31 39 2c 20 69 33 32 20 32 33 2c 20 69 | 32.13,.i32.17,.i32.19,.i32.23,.i |
| 1e680 | 33 32 20 32 39 2c 20 69 33 32 20 33 31 2c 20 69 33 32 20 33 37 2c 20 69 33 32 20 34 31 2c 20 69 | 32.29,.i32.31,.i32.37,.i32.41,.i |
| 1e6a0 | 33 32 20 34 33 2c 20 69 33 32 20 34 37 2c 20 69 33 32 20 35 33 2c 20 69 33 32 20 35 39 2c 20 69 | 32.43,.i32.47,.i32.53,.i32.59,.i |
| 1e6c0 | 33 32 20 36 31 2c 20 69 33 32 20 36 37 2c 20 69 33 32 20 37 31 2c 20 69 33 32 20 37 33 2c 20 69 | 32.61,.i32.67,.i32.71,.i32.73,.i |
| 1e6e0 | 33 32 20 37 39 2c 20 69 33 32 20 38 33 2c 20 69 33 32 20 38 39 2c 20 69 33 32 20 39 37 5d 0a 20 | 32.79,.i32.83,.i32.89,.i32.97].. |
| 1e700 | 20 20 20 20 20 40 31 20 3d 20 69 6e 74 65 72 6e 61 6c 20 75 6e 6e 61 6d 65 64 5f 61 64 64 72 20 | .....@1.=.internal.unnamed_addr. |
| 1e720 | 63 6f 6e 73 74 61 6e 74 20 69 33 32 20 31 30 36 30 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 | constant.i32.1060</code></pre>.. |
| 1e740 | 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 74 65 20 74 68 61 74 20 77 65 20 64 69 64 20 | .....<p>.......Note.that.we.did. |
| 1e760 | 6e 6f 74 20 68 61 76 65 20 74 6f 20 64 6f 20 61 6e 79 74 68 69 6e 67 20 73 70 65 63 69 61 6c 20 | not.have.to.do.anything.special. |
| 1e780 | 77 69 74 68 20 74 68 65 20 73 79 6e 74 61 78 20 6f 66 20 74 68 65 73 65 20 66 75 6e 63 74 69 6f | with.the.syntax.of.these.functio |
| 1e7a0 | 6e 73 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 0a 20 20 20 20 20 20 77 65 20 63 6f 75 6c 64 20 | ns..For.example,.......we.could. |
| 1e7c0 | 63 61 6c 6c 20 74 68 65 20 3c 63 6f 64 65 3e 73 75 6d 3c 2f 63 6f 64 65 3e 20 66 75 6e 63 74 69 | call.the.<code>sum</code>.functi |
| 1e7e0 | 6f 6e 20 61 73 20 69 73 20 77 69 74 68 20 61 20 73 6c 69 63 65 20 6f 66 20 6e 75 6d 62 65 72 73 | on.as.is.with.a.slice.of.numbers |
| 1e800 | 20 77 68 6f 73 65 20 6c 65 6e 67 74 68 20 61 6e 64 20 76 61 6c 75 65 73 20 77 65 72 65 0a 20 20 | .whose.length.and.values.were... |
| 1e820 | 20 20 20 20 6f 6e 6c 79 20 6b 6e 6f 77 6e 20 61 74 20 72 75 6e 2d 74 69 6d 65 2e 0a 20 20 20 20 | ....only.known.at.run-time...... |
| 1e840 | 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 67 65 6e 65 72 69 63 2d 64 61 74 | ..</p>.......<h3.id="generic-dat |
| 1e860 | 61 2d 73 74 72 75 63 74 75 72 65 73 22 3e 47 65 6e 65 72 69 63 20 44 61 74 61 20 53 74 72 75 63 | a-structures">Generic.Data.Struc |
| 1e880 | 74 75 72 65 73 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 75 | tures</h3>.......<p>.......Zig.u |
| 1e8a0 | 73 65 73 20 74 68 65 73 65 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 74 6f 20 69 6d 70 6c 65 6d | ses.these.capabilities.to.implem |
| 1e8c0 | 65 6e 74 20 67 65 6e 65 72 69 63 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 73 20 77 69 74 68 | ent.generic.data.structures.with |
| 1e8e0 | 6f 75 74 20 69 6e 74 72 6f 64 75 63 69 6e 67 20 61 6e 79 0a 20 20 20 20 20 20 73 70 65 63 69 61 | out.introducing.any.......specia |
| 1e900 | 6c 2d 63 61 73 65 20 73 79 6e 74 61 78 2e 20 49 66 20 79 6f 75 20 66 6f 6c 6c 6f 77 65 64 20 61 | l-case.syntax..If.you.followed.a |
| 1e920 | 6c 6f 6e 67 20 73 6f 20 66 61 72 2c 20 79 6f 75 20 6d 61 79 20 61 6c 72 65 61 64 79 20 6b 6e 6f | long.so.far,.you.may.already.kno |
| 1e940 | 77 20 68 6f 77 20 74 6f 20 63 72 65 61 74 65 20 61 0a 20 20 20 20 20 20 67 65 6e 65 72 69 63 20 | w.how.to.create.a.......generic. |
| 1e960 | 64 61 74 61 20 73 74 72 75 63 74 75 72 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 | data.structure........</p>...... |
| 1e980 | 20 3c 70 3e 0a 20 20 20 20 20 20 48 65 72 65 20 69 73 20 61 6e 20 65 78 61 6d 70 6c 65 20 6f 66 | .<p>.......Here.is.an.example.of |
| 1e9a0 | 20 61 20 67 65 6e 65 72 69 63 20 3c 63 6f 64 65 3e 4c 69 73 74 3c 2f 63 6f 64 65 3e 20 64 61 74 | .a.generic.<code>List</code>.dat |
| 1e9c0 | 61 20 73 74 72 75 63 74 75 72 65 2c 20 74 68 61 74 20 77 65 20 77 69 6c 6c 20 69 6e 73 74 61 6e | a.structure,.that.we.will.instan |
| 1e9e0 | 74 69 61 74 65 20 77 69 74 68 0a 20 20 20 20 20 20 74 68 65 20 74 79 70 65 20 3c 63 6f 64 65 3e | tiate.with.......the.type.<code> |
| 1ea00 | 69 33 32 3c 2f 63 6f 64 65 3e 2e 20 49 6e 20 5a 69 67 20 77 65 20 72 65 66 65 72 20 74 6f 20 74 | i32</code>..In.Zig.we.refer.to.t |
| 1ea20 | 68 65 20 74 79 70 65 20 61 73 20 3c 63 6f 64 65 3e 4c 69 73 74 28 69 33 32 29 3c 2f 63 6f 64 65 | he.type.as.<code>List(i32)</code |
| 1ea40 | 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 | >........</p>.......<pre><code.c |
| 1ea60 | 6c 61 73 73 3d 22 7a 69 67 22 3e 66 6e 20 4c 69 73 74 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 | lass="zig">fn.List(comptime.T:.t |
| 1ea80 | 79 70 65 29 20 2d 26 67 74 3b 20 74 79 70 65 20 7b 0a 20 20 20 20 73 74 72 75 63 74 20 7b 0a 20 | ype).->.type.{.....struct.{.. |
| 1eaa0 | 20 20 20 20 20 20 20 69 74 65 6d 73 3a 20 5b 5d 54 2c 0a 20 20 20 20 20 20 20 20 6c 65 6e 3a 20 | .......items:.[]T,.........len:. |
| 1eac0 | 75 73 69 7a 65 2c 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 | usize,.....}.}</code></pre>..... |
| 1eae0 | 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 61 74 27 73 20 69 74 2e 20 49 74 27 73 20 61 20 66 75 | ..<p>.......That's.it..It's.a.fu |
| 1eb00 | 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 61 6e 20 61 6e 6f 6e 79 6d 6f 75 73 | nction.that.returns.an.anonymous |
| 1eb20 | 20 3c 63 6f 64 65 3e 73 74 72 75 63 74 3c 2f 63 6f 64 65 3e 2e 20 46 6f 72 20 74 68 65 20 70 75 | .<code>struct</code>..For.the.pu |
| 1eb40 | 72 70 6f 73 65 73 20 6f 66 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 73 0a 20 20 20 20 20 20 61 | rposes.of.error.messages.......a |
| 1eb60 | 6e 64 20 64 65 62 75 67 67 69 6e 67 2c 20 5a 69 67 20 69 6e 66 65 72 73 20 74 68 65 20 6e 61 6d | nd.debugging,.Zig.infers.the.nam |
| 1eb80 | 65 20 3c 63 6f 64 65 3e 22 4c 69 73 74 28 69 33 32 29 22 3c 2f 63 6f 64 65 3e 20 66 72 6f 6d 20 | e.<code>"List(i32)"</code>.from. |
| 1eba0 | 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 61 6e 64 20 70 61 72 61 6d 65 74 65 72 73 | the.function.name.and.parameters |
| 1ebc0 | 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 63 72 65 61 74 69 6e 67 0a 20 20 20 20 20 20 74 68 65 | .invoked.when.creating.......the |
| 1ebe0 | 20 61 6e 6f 6e 79 6d 6f 75 73 20 73 74 72 75 63 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 | .anonymous.struct........</p>... |
| 1ec00 | 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 6f 20 6b 65 65 70 20 74 68 65 20 6c 61 6e 67 75 61 | ....<p>.......To.keep.the.langua |
| 1ec20 | 67 65 20 73 6d 61 6c 6c 20 61 6e 64 20 75 6e 69 66 6f 72 6d 2c 20 61 6c 6c 20 61 67 67 72 65 67 | ge.small.and.uniform,.all.aggreg |
| 1ec40 | 61 74 65 20 74 79 70 65 73 20 69 6e 20 5a 69 67 20 61 72 65 20 61 6e 6f 6e 79 6d 6f 75 73 2e 20 | ate.types.in.Zig.are.anonymous.. |
| 1ec60 | 54 6f 20 67 69 76 65 20 61 20 74 79 70 65 0a 20 20 20 20 20 20 61 20 6e 61 6d 65 2c 20 77 65 20 | To.give.a.type.......a.name,.we. |
| 1ec80 | 61 73 73 69 67 6e 20 69 74 20 74 6f 20 61 20 63 6f 6e 73 74 61 6e 74 3a 0a 20 20 20 20 20 20 3c | assign.it.to.a.constant:.......< |
| 1eca0 | 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 | /p>.......<pre><code.class="zig" |
| 1ecc0 | 3e 63 6f 6e 73 74 20 4e 6f 64 65 20 3d 20 73 74 72 75 63 74 20 7b 0a 20 20 20 20 6e 65 78 74 3a | >const.Node.=.struct.{.....next: |
| 1ece0 | 20 26 61 6d 70 3b 4e 6f 64 65 2c 0a 20 20 20 20 6e 61 6d 65 3a 20 5b 5d 75 38 2c 0a 7d 3b 3c 2f | .&Node,.....name:.[]u8,.};</ |
| 1ed00 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 | code></pre>.......<p>.......This |
| 1ed20 | 20 77 6f 72 6b 73 20 62 65 63 61 75 73 65 20 61 6c 6c 20 74 6f 70 20 6c 65 76 65 6c 20 64 65 63 | .works.because.all.top.level.dec |
| 1ed40 | 6c 61 72 61 74 69 6f 6e 73 20 61 72 65 20 6f 72 64 65 72 2d 69 6e 64 65 70 65 6e 64 65 6e 74 2c | larations.are.order-independent, |
| 1ed60 | 20 61 6e 64 20 61 73 20 6c 6f 6e 67 20 61 73 20 74 68 65 72 65 20 69 73 6e 27 74 0a 20 20 20 20 | .and.as.long.as.there.isn't..... |
| 1ed80 | 20 20 61 6e 20 61 63 74 75 61 6c 20 69 6e 66 69 6e 69 74 65 20 72 65 67 72 65 73 73 69 6f 6e 2c | ..an.actual.infinite.regression, |
| 1eda0 | 20 76 61 6c 75 65 73 20 63 61 6e 20 72 65 66 65 72 20 74 6f 20 74 68 65 6d 73 65 6c 76 65 73 2c | .values.can.refer.to.themselves, |
| 1edc0 | 20 64 69 72 65 63 74 6c 79 20 6f 72 20 69 6e 64 69 72 65 63 74 6c 79 2e 20 49 6e 20 74 68 69 73 | .directly.or.indirectly..In.this |
| 1ede0 | 20 63 61 73 65 2c 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 4e 6f 64 65 3c 2f 63 6f 64 65 3e 20 72 | .case,.......<code>Node</code>.r |
| 1ee00 | 65 66 65 72 73 20 74 6f 20 69 74 73 65 6c 66 20 61 73 20 61 20 70 6f 69 6e 74 65 72 2c 20 77 68 | efers.to.itself.as.a.pointer,.wh |
| 1ee20 | 69 63 68 20 69 73 20 6e 6f 74 20 61 63 74 75 61 6c 6c 79 20 61 6e 20 69 6e 66 69 6e 69 74 65 20 | ich.is.not.actually.an.infinite. |
| 1ee40 | 72 65 67 72 65 73 73 69 6f 6e 2c 20 73 6f 0a 20 20 20 20 20 20 69 74 20 77 6f 72 6b 73 20 66 69 | regression,.so.......it.works.fi |
| 1ee60 | 6e 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 63 61 73 | ne........</p>.......<h3.id="cas |
| 1ee80 | 65 2d 73 74 75 64 79 2d 70 72 69 6e 74 66 22 3e 43 61 73 65 20 53 74 75 64 79 3a 20 70 72 69 6e | e-study-printf">Case.Study:.prin |
| 1eea0 | 74 66 20 69 6e 20 5a 69 67 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 50 | tf.in.Zig</h3>.......<p>.......P |
| 1eec0 | 75 74 74 69 6e 67 20 61 6c 6c 20 6f 66 20 74 68 69 73 20 74 6f 67 65 74 68 65 72 2c 20 6c 65 74 | utting.all.of.this.together,.let |
| 1eee0 | 27 73 20 73 65 65 65 20 68 6f 77 20 3c 63 6f 64 65 3e 70 72 69 6e 74 66 3c 2f 63 6f 64 65 3e 20 | 's.seee.how.<code>printf</code>. |
| 1ef00 | 77 6f 72 6b 73 20 69 6e 20 5a 69 67 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | works.in.Zig........</p>.......< |
| 1ef20 | 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 69 6f 20 3d | pre><code.class="zig">const.io.= |
| 1ef40 | 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 69 6f 3b 0a 0a 63 6f 6e 73 74 20 61 5f 6e 75 6d | .@import("std").io;..const.a_num |
| 1ef60 | 62 65 72 3a 20 69 33 32 20 3d 20 31 32 33 34 3b 0a 63 6f 6e 73 74 20 61 5f 73 74 72 69 6e 67 20 | ber:.i32.=.1234;.const.a_string. |
| 1ef80 | 3d 20 22 66 6f 6f 62 61 72 22 3b 0a 0a 70 75 62 20 66 6e 20 6d 61 69 6e 28 61 72 67 73 3a 20 5b | =."foobar";..pub.fn.main(args:.[ |
| 1efa0 | 5d 5b 5d 75 38 29 20 2d 26 67 74 3b 20 25 76 6f 69 64 20 7b 0a 20 20 20 20 25 25 69 6f 2e 73 74 | ][]u8).->.%void.{.....%%io.st |
| 1efc0 | 64 65 72 72 2e 70 72 69 6e 74 66 28 22 68 65 72 65 20 69 73 20 61 20 73 74 72 69 6e 67 3a 20 27 | derr.printf("here.is.a.string:.' |
| 1efe0 | 7b 7d 27 20 68 65 72 65 20 69 73 20 61 20 6e 75 6d 62 65 72 3a 20 7b 7d 5c 6e 22 2c 20 61 5f 73 | {}'.here.is.a.number:.{}\n",.a_s |
| 1f000 | 74 72 69 6e 67 2c 20 61 5f 6e 75 6d 62 65 72 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e | tring,.a_number);.}</code></pre> |
| 1f020 | 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 68 65 72 65 20 69 73 20 61 20 73 74 72 69 | .......<pre><code>here.is.a.stri |
| 1f040 | 6e 67 3a 20 27 66 6f 6f 62 61 72 27 20 68 65 72 65 20 69 73 20 61 20 6e 75 6d 62 65 72 3a 20 31 | ng:.'foobar'.here.is.a.number:.1 |
| 1f060 | 32 33 34 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 | 234</code></pre>........<p>..... |
| 1f080 | 20 20 4c 65 74 27 73 20 63 72 61 63 6b 20 6f 70 65 6e 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e 74 | ..Let's.crack.open.the.implement |
| 1f0a0 | 61 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 61 6e 64 20 73 65 65 20 68 6f 77 20 69 74 20 77 6f 72 | ation.of.this.and.see.how.it.wor |
| 1f0c0 | 6b 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 | ks:.......</p>........<pre><code |
| 1f0e0 | 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2f 2f 2f 20 43 61 6c 6c 73 20 70 72 69 6e 74 20 61 6e 64 | .class="zig">///.Calls.print.and |
| 1f100 | 20 74 68 65 6e 20 66 6c 75 73 68 65 73 20 74 68 65 20 62 75 66 66 65 72 2e 0a 70 75 62 20 66 6e | .then.flushes.the.buffer..pub.fn |
| 1f120 | 20 70 72 69 6e 74 66 28 73 65 6c 66 3a 20 26 61 6d 70 3b 4f 75 74 53 74 72 65 61 6d 2c 20 63 6f | .printf(self:.&OutStream,.co |
| 1f140 | 6d 70 74 69 6d 65 20 66 6f 72 6d 61 74 3a 20 5b 5d 63 6f 6e 73 74 20 75 38 2c 20 61 72 67 73 3a | mptime.format:.[]const.u8,.args: |
| 1f160 | 20 2e 2e 2e 29 20 2d 26 67 74 3b 20 25 76 6f 69 64 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 53 74 | ....).->.%void.{.....const.St |
| 1f180 | 61 74 65 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 20 20 20 20 53 74 61 72 74 2c 0a 20 20 20 20 | ate.=.enum.{.........Start,..... |
| 1f1a0 | 20 20 20 20 4f 70 65 6e 42 72 61 63 65 2c 0a 20 20 20 20 20 20 20 20 43 6c 6f 73 65 42 72 61 63 | ....OpenBrace,.........CloseBrac |
| 1f1c0 | 65 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 63 6f 6d 70 74 69 6d 65 20 76 61 72 20 73 74 61 72 | e,.....};......comptime.var.star |
| 1f1e0 | 74 5f 69 6e 64 65 78 3a 20 75 73 69 7a 65 20 3d 20 30 3b 0a 20 20 20 20 63 6f 6d 70 74 69 6d 65 | t_index:.usize.=.0;.....comptime |
| 1f200 | 20 76 61 72 20 73 74 61 74 65 20 3d 20 53 74 61 74 65 2e 53 74 61 72 74 3b 0a 20 20 20 20 63 6f | .var.state.=.State.Start;.....co |
| 1f220 | 6d 70 74 69 6d 65 20 76 61 72 20 6e 65 78 74 5f 61 72 67 3a 20 75 73 69 7a 65 20 3d 20 30 3b 0a | mptime.var.next_arg:.usize.=.0;. |
| 1f240 | 0a 20 20 20 20 69 6e 6c 69 6e 65 20 66 6f 72 20 28 66 6f 72 6d 61 74 29 20 7c 63 2c 20 69 7c 20 | .....inline.for.(format).|c,.i|. |
| 1f260 | 7b 0a 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 73 74 61 74 65 29 20 7b 0a 20 20 20 20 20 | {.........switch.(state).{...... |
| 1f280 | 20 20 20 20 20 20 20 53 74 61 74 65 2e 53 74 61 72 74 20 3d 26 67 74 3b 20 73 77 69 74 63 68 20 | .......State.Start.=>.switch. |
| 1f2a0 | 28 63 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 7b 27 20 3d 26 67 74 3b 20 | (c).{.................'{'.=>. |
| 1f2c0 | 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 74 61 72 74 5f | {.....................if.(start_ |
| 1f2e0 | 69 6e 64 65 78 20 26 6c 74 3b 20 69 29 20 25 72 65 74 75 72 6e 20 73 65 6c 66 2e 77 72 69 74 65 | index.<.i).%return.self.write |
| 1f300 | 28 66 6f 72 6d 61 74 5b 73 74 61 72 74 5f 69 6e 64 65 78 2e 2e 2e 69 5d 29 3b 0a 20 20 20 20 20 | (format[start_index...i]);...... |
| 1f320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 20 3d 20 53 74 61 74 65 2e 4f 70 65 | ...............state.=.State.Ope |
| 1f340 | 6e 42 72 61 63 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 | nBrace;.................},...... |
| 1f360 | 20 20 20 20 20 20 20 20 20 20 20 27 7d 27 20 3d 26 67 74 3b 20 7b 0a 20 20 20 20 20 20 20 20 20 | ...........'}'.=>.{.......... |
| 1f380 | 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 74 61 72 74 5f 69 6e 64 65 78 20 26 6c 74 3b 20 | ...........if.(start_index.<. |
| 1f3a0 | 69 29 20 25 72 65 74 75 72 6e 20 73 65 6c 66 2e 77 72 69 74 65 28 66 6f 72 6d 61 74 5b 73 74 61 | i).%return.self.write(format[sta |
| 1f3c0 | 72 74 5f 69 6e 64 65 78 2e 2e 2e 69 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rt_index...i]);................. |
| 1f3e0 | 20 20 20 20 73 74 61 74 65 20 3d 20 53 74 61 74 65 2e 43 6c 6f 73 65 42 72 61 63 65 3b 0a 20 20 | ....state.=.State.CloseBrace;... |
| 1f400 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..............},................ |
| 1f420 | 20 65 6c 73 65 20 3d 26 67 74 3b 20 7b 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 | .else.=>.{},.............},.. |
| 1f440 | 20 20 20 20 20 20 20 20 20 20 20 53 74 61 74 65 2e 4f 70 65 6e 42 72 61 63 65 20 3d 26 67 74 3b | ...........State.OpenBrace.=> |
| 1f460 | 20 73 77 69 74 63 68 20 28 63 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 7b | .switch.(c).{.................'{ |
| 1f480 | 27 20 3d 26 67 74 3b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 | '.=>.{.....................st |
| 1f4a0 | 61 74 65 20 3d 20 53 74 61 74 65 2e 53 74 61 72 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ate.=.State.Start;.............. |
| 1f4c0 | 20 20 20 20 20 20 20 73 74 61 72 74 5f 69 6e 64 65 78 20 3d 20 69 3b 0a 20 20 20 20 20 20 20 20 | .......start_index.=.i;......... |
| 1f4e0 | 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 7d 27 20 3d | ........},.................'}'.= |
| 1f500 | 26 67 74 3b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 25 72 65 74 75 | >.{.....................%retu |
| 1f520 | 72 6e 20 73 65 6c 66 2e 70 72 69 6e 74 56 61 6c 75 65 28 61 72 67 73 5b 6e 65 78 74 5f 61 72 67 | rn.self.printValue(args[next_arg |
| 1f540 | 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 5f 61 72 67 | ]);.....................next_arg |
| 1f560 | 20 2b 3d 20 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 | .+=.1;.....................state |
| 1f580 | 20 3d 20 53 74 61 74 65 2e 53 74 61 72 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .=.State.Start;................. |
| 1f5a0 | 20 20 20 20 73 74 61 72 74 5f 69 6e 64 65 78 20 3d 20 69 20 2b 20 31 3b 0a 20 20 20 20 20 20 20 | ....start_index.=.i.+.1;........ |
| 1f5c0 | 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 | .........},.................else |
| 1f5e0 | 20 3d 26 67 74 3b 20 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 28 22 55 6e 6b 6e 6f 77 6e 20 66 6f | .=>.@compileError("Unknown.fo |
| 1f600 | 72 6d 61 74 20 63 68 61 72 61 63 74 65 72 3a 20 22 20 2b 2b 20 63 29 2c 0a 20 20 20 20 20 20 20 | rmat.character:.".++.c),........ |
| 1f620 | 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 74 61 74 65 2e 43 6c 6f 73 65 42 | .....},.............State.CloseB |
| 1f640 | 72 61 63 65 20 3d 26 67 74 3b 20 73 77 69 74 63 68 20 28 63 29 20 7b 0a 20 20 20 20 20 20 20 20 | race.=>.switch.(c).{......... |
| 1f660 | 20 20 20 20 20 20 20 20 27 7d 27 20 3d 26 67 74 3b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ........'}'.=>.{............. |
| 1f680 | 20 20 20 20 20 20 20 20 73 74 61 74 65 20 3d 20 53 74 61 74 65 2e 53 74 61 72 74 3b 0a 20 20 20 | ........state.=.State.Start;.... |
| 1f6a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 72 74 5f 69 6e 64 65 78 20 3d 20 69 | .................start_index.=.i |
| 1f6c0 | 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 | ;.................},............ |
| 1f6e0 | 20 20 20 20 20 65 6c 73 65 20 3d 26 67 74 3b 20 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 28 22 53 | .....else.=>.@compileError("S |
| 1f700 | 69 6e 67 6c 65 20 27 7d 27 20 65 6e 63 6f 75 6e 74 65 72 65 64 20 69 6e 20 66 6f 72 6d 61 74 20 | ingle.'}'.encountered.in.format. |
| 1f720 | 73 74 72 69 6e 67 22 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 | string"),.............},........ |
| 1f740 | 20 7d 0a 20 20 20 20 7d 0a 20 20 20 20 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 20 20 20 20 | .}.....}.....comptime.{......... |
| 1f760 | 69 66 20 28 61 72 67 73 2e 6c 65 6e 20 21 3d 20 6e 65 78 74 5f 61 72 67 29 20 7b 0a 20 20 20 20 | if.(args.len.!=.next_arg).{..... |
| 1f780 | 20 20 20 20 20 20 20 20 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 28 22 55 6e 75 73 65 64 20 61 72 | ........@compileError("Unused.ar |
| 1f7a0 | 67 75 6d 65 6e 74 73 22 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 | guments");.........}.........if. |
| 1f7c0 | 28 73 74 61 74 65 20 21 3d 20 53 74 61 74 65 2e 53 74 61 72 74 29 20 7b 0a 20 20 20 20 20 20 20 | (state.!=.State.Start).{........ |
| 1f7e0 | 20 20 20 20 20 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 28 22 49 6e 63 6f 6d 70 6c 65 74 65 20 66 | .....@compileError("Incomplete.f |
| 1f800 | 6f 72 6d 61 74 20 73 74 72 69 6e 67 3a 20 22 20 2b 2b 20 66 6f 72 6d 61 74 29 3b 0a 20 20 20 20 | ormat.string:.".++.format);..... |
| 1f820 | 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 28 73 74 61 72 74 5f 69 6e 64 65 78 20 | ....}.....}.....if.(start_index. |
| 1f840 | 26 6c 74 3b 20 66 6f 72 6d 61 74 2e 6c 65 6e 29 20 7b 0a 20 20 20 20 20 20 20 20 25 72 65 74 75 | <.format.len).{.........%retu |
| 1f860 | 72 6e 20 73 65 6c 66 2e 77 72 69 74 65 28 66 6f 72 6d 61 74 5b 73 74 61 72 74 5f 69 6e 64 65 78 | rn.self.write(format[start_index |
| 1f880 | 2e 2e 2e 66 6f 72 6d 61 74 2e 6c 65 6e 5d 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 25 72 65 74 75 | ...format.len]);.....}.....%retu |
| 1f8a0 | 72 6e 20 73 65 6c 66 2e 66 6c 75 73 68 28 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a | rn.self.flush();.}</code></pre>. |
| 1f8c0 | 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 69 73 20 61 20 70 72 6f 6f 66 20 | ......<p>.......This.is.a.proof. |
| 1f8e0 | 6f 66 20 63 6f 6e 63 65 70 74 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 3b 20 74 68 65 20 61 | of.concept.implementation;.the.a |
| 1f900 | 63 74 75 61 6c 20 66 75 6e 63 74 69 6f 6e 20 69 6e 20 74 68 65 20 73 74 61 6e 64 61 72 64 20 6c | ctual.function.in.the.standard.l |
| 1f920 | 69 62 72 61 72 79 20 68 61 73 20 6d 6f 72 65 0a 20 20 20 20 20 20 66 6f 72 6d 61 74 74 69 6e 67 | ibrary.has.more.......formatting |
| 1f940 | 20 63 61 70 61 62 69 6c 69 74 69 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 | .capabilities........</p>....... |
| 1f960 | 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 74 65 20 74 68 61 74 20 74 68 69 73 20 69 73 20 6e 6f 74 20 | <p>.......Note.that.this.is.not. |
| 1f980 | 68 61 72 64 2d 63 6f 64 65 64 20 69 6e 74 6f 20 74 68 65 20 5a 69 67 20 63 6f 6d 70 69 6c 65 72 | hard-coded.into.the.Zig.compiler |
| 1f9a0 | 3b 20 74 68 69 73 20 69 73 20 75 73 65 72 6c 61 6e 64 20 63 6f 64 65 20 69 6e 20 74 68 65 20 73 | ;.this.is.userland.code.in.the.s |
| 1f9c0 | 74 61 6e 64 61 72 64 20 6c 69 62 72 61 72 79 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 | tandard.library........</p>..... |
| 1f9e0 | 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 65 6e 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 | ..<p>.......When.this.function.i |
| 1fa00 | 73 20 61 6e 61 6c 79 7a 65 64 20 66 72 6f 6d 20 6f 75 72 20 65 78 61 6d 70 6c 65 20 63 6f 64 65 | s.analyzed.from.our.example.code |
| 1fa20 | 20 61 62 6f 76 65 2c 20 5a 69 67 20 70 61 72 74 69 61 6c 6c 79 20 65 76 61 6c 75 61 74 65 73 20 | .above,.Zig.partially.evaluates. |
| 1fa40 | 74 68 65 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 61 6e 64 20 65 6d 69 74 73 20 61 20 66 | the.function.......and.emits.a.f |
| 1fa60 | 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 61 63 74 75 61 6c 6c 79 20 6c 6f 6f 6b 73 20 6c 69 6b 65 | unction.that.actually.looks.like |
| 1fa80 | 20 74 68 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f | .this:.......</p>.......<pre><co |
| 1faa0 | 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 70 75 62 20 66 6e 20 70 72 69 6e 74 66 28 73 65 6c | de.class="zig">pub.fn.printf(sel |
| 1fac0 | 66 3a 20 26 61 6d 70 3b 4f 75 74 53 74 72 65 61 6d 2c 20 61 72 67 30 3a 20 69 33 32 2c 20 61 72 | f:.&OutStream,.arg0:.i32,.ar |
| 1fae0 | 67 31 3a 20 5b 5d 63 6f 6e 73 74 20 75 38 29 20 2d 26 67 74 3b 20 25 76 6f 69 64 20 7b 0a 20 20 | g1:.[]const.u8).->.%void.{... |
| 1fb00 | 20 20 25 72 65 74 75 72 6e 20 73 65 6c 66 2e 77 72 69 74 65 28 22 68 65 72 65 20 69 73 20 61 20 | ..%return.self.write("here.is.a. |
| 1fb20 | 73 74 72 69 6e 67 3a 20 27 22 29 3b 0a 20 20 20 20 25 72 65 74 75 72 6e 20 73 65 6c 66 2e 70 72 | string:.'");.....%return.self.pr |
| 1fb40 | 69 6e 74 56 61 6c 75 65 28 61 72 67 30 29 3b 0a 20 20 20 20 25 72 65 74 75 72 6e 20 73 65 6c 66 | intValue(arg0);.....%return.self |
| 1fb60 | 2e 77 72 69 74 65 28 22 27 20 68 65 72 65 20 69 73 20 61 20 6e 75 6d 62 65 72 3a 20 22 29 3b 0a | .write("'.here.is.a.number:.");. |
| 1fb80 | 20 20 20 20 25 72 65 74 75 72 6e 20 73 65 6c 66 2e 70 72 69 6e 74 56 61 6c 75 65 28 61 72 67 31 | ....%return.self.printValue(arg1 |
| 1fba0 | 29 3b 0a 20 20 20 20 25 72 65 74 75 72 6e 20 73 65 6c 66 2e 77 72 69 74 65 28 22 5c 6e 22 29 3b | );.....%return.self.write("\n"); |
| 1fbc0 | 0a 20 20 20 20 25 72 65 74 75 72 6e 20 73 65 6c 66 2e 66 6c 75 73 68 28 29 3b 0a 7d 3c 2f 63 6f | .....%return.self.flush();.}</co |
| 1fbe0 | 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e | de></pre>.......<p>.......<code> |
| 1fc00 | 70 72 69 6e 74 56 61 6c 75 65 3c 2f 63 6f 64 65 3e 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 | printValue</code>.is.a.function. |
| 1fc20 | 74 68 61 74 20 74 61 6b 65 73 20 61 20 70 61 72 61 6d 65 74 65 72 20 6f 66 20 61 6e 79 20 74 79 | that.takes.a.parameter.of.any.ty |
| 1fc40 | 70 65 2c 20 61 6e 64 20 64 6f 65 73 20 64 69 66 66 65 72 65 6e 74 20 74 68 69 6e 67 73 20 64 65 | pe,.and.does.different.things.de |
| 1fc60 | 70 65 6e 64 69 6e 67 0a 20 20 20 20 20 20 6f 6e 20 74 68 65 20 74 79 70 65 3a 0a 20 20 20 20 20 | pending.......on.the.type:...... |
| 1fc80 | 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 | .</p>.......<pre><code.class="zi |
| 1fca0 | 67 22 3e 70 75 62 20 66 6e 20 70 72 69 6e 74 56 61 6c 75 65 28 73 65 6c 66 3a 20 26 61 6d 70 3b | g">pub.fn.printValue(self:.& |
| 1fcc0 | 4f 75 74 53 74 72 65 61 6d 2c 20 76 61 6c 75 65 3a 20 76 61 72 29 20 2d 26 67 74 3b 20 25 76 6f | OutStream,.value:.var).->.%vo |
| 1fce0 | 69 64 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 54 20 3d 20 40 74 79 70 65 4f 66 28 76 61 6c 75 65 | id.{.....const.T.=.@typeOf(value |
| 1fd00 | 29 3b 0a 20 20 20 20 69 66 20 28 40 69 73 49 6e 74 65 67 65 72 28 54 29 29 20 7b 0a 20 20 20 20 | );.....if.(@isInteger(T)).{..... |
| 1fd20 | 20 20 20 20 72 65 74 75 72 6e 20 73 65 6c 66 2e 70 72 69 6e 74 49 6e 74 28 54 2c 20 76 61 6c 75 | ....return.self.printInt(T,.valu |
| 1fd40 | 65 29 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 40 69 73 46 6c 6f 61 74 28 54 29 29 20 | e);.....}.else.if.(@isFloat(T)). |
| 1fd60 | 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 65 6c 66 2e 70 72 69 6e 74 46 6c 6f 61 74 | {.........return.self.printFloat |
| 1fd80 | 28 54 2c 20 76 61 6c 75 65 29 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 40 63 61 6e 49 | (T,.value);.....}.else.if.(@canI |
| 1fda0 | 6d 70 6c 69 63 69 74 43 61 73 74 28 5b 5d 63 6f 6e 73 74 20 75 38 2c 20 76 61 6c 75 65 29 29 20 | mplicitCast([]const.u8,.value)). |
| 1fdc0 | 7b 0a 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 61 73 74 65 64 5f 76 61 6c 75 65 20 3d 20 28 | {.........const.casted_value.=.( |
| 1fde0 | 5b 5d 63 6f 6e 73 74 20 75 38 29 28 76 61 6c 75 65 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 | []const.u8)(value);.........retu |
| 1fe00 | 72 6e 20 73 65 6c 66 2e 77 72 69 74 65 28 63 61 73 74 65 64 5f 76 61 6c 75 65 29 3b 0a 20 20 20 | rn.self.write(casted_value);.... |
| 1fe20 | 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 28 | .}.else.{.........@compileError( |
| 1fe40 | 22 55 6e 61 62 6c 65 20 74 6f 20 70 72 69 6e 74 20 74 79 70 65 20 27 22 20 2b 2b 20 40 74 79 70 | "Unable.to.print.type.'".++.@typ |
| 1fe60 | 65 4e 61 6d 65 28 54 29 20 2b 2b 20 22 27 22 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e | eName(T).++."'");.....}.}</code> |
| 1fe80 | 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 6e 64 20 6e 6f 77 2c 20 | </pre>.......<p>.......And.now,. |
| 1fea0 | 77 68 61 74 20 68 61 70 70 65 6e 73 20 69 66 20 77 65 20 67 69 76 65 20 74 6f 6f 20 6d 61 6e 79 | what.happens.if.we.give.too.many |
| 1fec0 | 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 3c 63 6f 64 65 3e 70 72 69 6e 74 66 3c 2f 63 6f 64 65 | .arguments.to.<code>printf</code |
| 1fee0 | 3e 3f 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 | >?.......</p>.......<pre><code.c |
| 1ff00 | 6c 61 73 73 3d 22 7a 69 67 22 3e 25 25 69 6f 2e 73 74 64 6f 75 74 2e 70 72 69 6e 74 66 28 22 68 | lass="zig">%%io.stdout.printf("h |
| 1ff20 | 65 72 65 20 69 73 20 61 20 73 74 72 69 6e 67 3a 20 27 7b 7d 27 20 68 65 72 65 20 69 73 20 61 20 | ere.is.a.string:.'{}'.here.is.a. |
| 1ff40 | 6e 75 6d 62 65 72 3a 20 7b 7d 5c 6e 22 2c 0a 20 20 20 20 20 20 20 20 61 5f 73 74 72 69 6e 67 2c | number:.{}\n",.........a_string, |
| 1ff60 | 20 61 5f 6e 75 6d 62 65 72 2c 20 61 5f 6e 75 6d 62 65 72 29 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 | .a_number,.a_number);</code></pr |
| 1ff80 | 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 2e 2e 2e 2f 73 74 64 2f 69 6f 2e 7a | e>.......<pre><code>.../std/io.z |
| 1ffa0 | 69 67 3a 31 34 37 3a 31 37 3a 20 65 72 72 6f 72 3a 20 55 6e 75 73 65 64 20 61 72 67 75 6d 65 6e | ig:147:17:.error:.Unused.argumen |
| 1ffc0 | 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 | ts.................@compileError |
| 1ffe0 | 28 22 55 6e 75 73 65 64 20 61 72 67 75 6d 65 6e 74 73 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 | ("Unused.arguments");........... |
| 20000 | 20 20 20 20 20 20 5e 0a 2e 2f 74 65 73 74 2e 7a 69 67 3a 37 3a 32 33 3a 20 6e 6f 74 65 3a 20 63 | ......^../test.zig:7:23:.note:.c |
| 20020 | 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 0a 20 20 20 20 25 25 69 6f 2e 73 74 64 6f 75 74 2e | alled.from.here.....%%io.stdout. |
| 20040 | 70 72 69 6e 74 66 28 22 68 65 72 65 20 69 73 20 61 20 6e 75 6d 62 65 72 3a 20 7b 7d 20 61 6e 64 | printf("here.is.a.number:.{}.and |
| 20060 | 20 68 65 72 65 20 69 73 20 61 20 73 74 72 69 6e 67 3a 20 7b 7d 5c 6e 22 2c 0a 20 20 20 20 20 20 | .here.is.a.string:.{}\n",....... |
| 20080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 | ................^</code></pre>.. |
| 200a0 | 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 67 69 76 65 73 20 70 72 6f 67 72 61 6d | .....<p>.......Zig.gives.program |
| 200c0 | 6d 65 72 73 20 74 68 65 20 74 6f 6f 6c 73 20 6e 65 65 64 65 64 20 74 6f 20 70 72 6f 74 65 63 74 | mers.the.tools.needed.to.protect |
| 200e0 | 20 74 68 65 6d 73 65 6c 76 65 73 20 61 67 61 69 6e 73 74 20 74 68 65 69 72 20 6f 77 6e 20 6d 69 | .themselves.against.their.own.mi |
| 20100 | 73 74 61 6b 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 | stakes........</p>.......<p>.... |
| 20120 | 20 20 20 5a 69 67 20 64 6f 65 73 6e 27 74 20 63 61 72 65 20 77 68 65 74 68 65 72 20 74 68 65 20 | ...Zig.doesn't.care.whether.the. |
| 20140 | 66 6f 72 6d 61 74 20 61 72 67 75 6d 65 6e 74 20 69 73 20 61 20 73 74 72 69 6e 67 20 6c 69 74 65 | format.argument.is.a.string.lite |
| 20160 | 72 61 6c 2c 0a 20 20 20 20 20 20 6f 6e 6c 79 20 74 68 61 74 20 69 74 20 69 73 20 61 20 63 6f 6d | ral,.......only.that.it.is.a.com |
| 20180 | 70 69 6c 65 2d 74 69 6d 65 20 6b 6e 6f 77 6e 20 76 61 6c 75 65 20 74 68 61 74 20 69 73 20 69 6d | pile-time.known.value.that.is.im |
| 201a0 | 70 6c 69 63 69 74 6c 79 20 63 61 73 74 61 62 6c 65 20 74 6f 20 61 20 3c 63 6f 64 65 3e 5b 5d 63 | plicitly.castable.to.a.<code>[]c |
| 201c0 | 6f 6e 73 74 20 75 38 3c 2f 63 6f 64 65 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 | onst.u8</code>:.......</p>...... |
| 201e0 | 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 69 6f | .<pre><code.class="zig">const.io |
| 20200 | 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 69 6f 3b 0a 0a 63 6f 6e 73 74 20 61 5f 6e | .=.@import("std").io;..const.a_n |
| 20220 | 75 6d 62 65 72 3a 20 69 33 32 20 3d 20 31 32 33 34 3b 0a 63 6f 6e 73 74 20 61 5f 73 74 72 69 6e | umber:.i32.=.1234;.const.a_strin |
| 20240 | 67 20 3d 20 22 66 6f 6f 62 61 72 22 3b 0a 63 6f 6e 73 74 20 66 6d 74 20 3d 20 22 68 65 72 65 20 | g.=."foobar";.const.fmt.=."here. |
| 20260 | 69 73 20 61 20 73 74 72 69 6e 67 3a 20 27 7b 7d 27 20 68 65 72 65 20 69 73 20 61 20 6e 75 6d 62 | is.a.string:.'{}'.here.is.a.numb |
| 20280 | 65 72 3a 20 7b 7d 5c 6e 22 3b 0a 0a 70 75 62 20 66 6e 20 6d 61 69 6e 28 61 72 67 73 3a 20 5b 5d | er:.{}\n";..pub.fn.main(args:.[] |
| 202a0 | 5b 5d 75 38 29 20 2d 26 67 74 3b 20 25 76 6f 69 64 20 7b 0a 20 20 20 20 25 25 69 6f 2e 73 74 64 | []u8).->.%void.{.....%%io.std |
| 202c0 | 65 72 72 2e 70 72 69 6e 74 66 28 66 6d 74 2c 20 61 5f 73 74 72 69 6e 67 2c 20 61 5f 6e 75 6d 62 | err.printf(fmt,.a_string,.a_numb |
| 202e0 | 65 72 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 | er);.}</code></pre>.......<p>... |
| 20300 | 20 20 20 20 54 68 69 73 20 77 6f 72 6b 73 20 66 69 6e 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a | ....This.works.fine........</p>. |
| 20320 | 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 64 6f 65 73 20 6e 6f 74 20 73 70 65 | ......<p>.......Zig.does.not.spe |
| 20340 | 63 69 61 6c 20 63 61 73 65 20 73 74 72 69 6e 67 20 66 6f 72 6d 61 74 74 69 6e 67 20 69 6e 20 74 | cial.case.string.formatting.in.t |
| 20360 | 68 65 20 63 6f 6d 70 69 6c 65 72 20 61 6e 64 20 69 6e 73 74 65 61 64 20 65 78 70 6f 73 65 73 20 | he.compiler.and.instead.exposes. |
| 20380 | 65 6e 6f 75 67 68 20 70 6f 77 65 72 20 74 6f 20 61 63 63 6f 6d 70 6c 69 73 68 20 74 68 69 73 0a | enough.power.to.accomplish.this. |
| 203a0 | 20 20 20 20 20 20 74 61 73 6b 20 69 6e 20 75 73 65 72 6c 61 6e 64 2e 20 49 74 20 64 6f 65 73 20 | ......task.in.userland..It.does. |
| 203c0 | 73 6f 20 77 69 74 68 6f 75 74 20 69 6e 74 72 6f 64 75 63 69 6e 67 20 61 6e 6f 74 68 65 72 20 6c | so.without.introducing.another.l |
| 203e0 | 61 6e 67 75 61 67 65 20 6f 6e 20 74 6f 70 20 6f 66 20 5a 69 67 2c 20 73 75 63 68 20 61 73 0a 20 | anguage.on.top.of.Zig,.such.as.. |
| 20400 | 20 20 20 20 20 61 20 6d 61 63 72 6f 20 6c 61 6e 67 75 61 67 65 20 6f 72 20 61 20 70 72 65 70 72 | .....a.macro.language.or.a.prepr |
| 20420 | 6f 63 65 73 73 6f 72 20 6c 61 6e 67 75 61 67 65 2e 20 49 74 27 73 20 5a 69 67 20 61 6c 6c 20 74 | ocessor.language..It's.Zig.all.t |
| 20440 | 68 65 20 77 61 79 20 64 6f 77 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 | he.way.down........</p>.......<p |
| 20460 | 3e 54 4f 44 4f 3a 20 73 75 67 67 65 73 74 69 6f 6e 20 74 6f 20 6e 6f 74 20 75 73 65 20 69 6e 6c | >TODO:.suggestion.to.not.use.inl |
| 20480 | 69 6e 65 20 75 6e 6c 65 73 73 20 6e 65 63 65 73 73 61 72 79 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | ine.unless.necessary</p>.......< |
| 204a0 | 68 32 20 69 64 3d 22 69 6e 6c 69 6e 65 22 3e 69 6e 6c 69 6e 65 3c 2f 68 32 3e 0a 20 20 20 20 20 | h2.id="inline">inline</h2>...... |
| 204c0 | 20 3c 70 3e 54 4f 44 4f 3a 20 69 6e 6c 69 6e 65 20 77 68 69 6c 65 3c 2f 70 3e 0a 20 20 20 20 20 | .<p>TODO:.inline.while</p>...... |
| 204e0 | 20 3c 70 3e 54 4f 44 4f 3a 20 69 6e 6c 69 6e 65 20 66 6f 72 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | .<p>TODO:.inline.for</p>.......< |
| 20500 | 70 3e 54 4f 44 4f 3a 20 73 75 67 67 65 73 74 69 6f 6e 20 74 6f 20 6e 6f 74 20 75 73 65 20 69 6e | p>TODO:.suggestion.to.not.use.in |
| 20520 | 6c 69 6e 65 20 75 6e 6c 65 73 73 20 6e 65 63 65 73 73 61 72 79 3c 2f 70 3e 0a 20 20 20 20 20 20 | line.unless.necessary</p>....... |
| 20540 | 3c 68 32 20 69 64 3d 22 61 73 73 65 6d 62 6c 79 22 3e 41 73 73 65 6d 62 6c 79 3c 2f 68 32 3e 0a | <h2.id="assembly">Assembly</h2>. |
| 20560 | 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 61 6d 70 6c 65 20 6f 66 20 69 6e 6c 69 6e 65 | ......<p>TODO:.example.of.inline |
| 20580 | 20 61 73 73 65 6d 62 6c 79 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 61 | .assembly</p>.......<p>TODO:.exa |
| 205a0 | 6d 70 6c 65 20 6f 66 20 6d 6f 64 75 6c 65 20 6c 65 76 65 6c 20 61 73 73 65 6d 62 6c 79 3c 2f 70 | mple.of.module.level.assembly</p |
| 205c0 | 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 61 6d 70 6c 65 20 6f 66 20 75 73 69 6e | >.......<p>TODO:.example.of.usin |
| 205e0 | 67 20 69 6e 6c 69 6e 65 20 61 73 73 65 6d 62 6c 79 20 72 65 74 75 72 6e 20 76 61 6c 75 65 3c 2f | g.inline.assembly.return.value</ |
| 20600 | 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 61 6d 70 6c 65 20 6f 66 20 75 73 69 | p>.......<p>TODO:.example.of.usi |
| 20620 | 6e 67 20 69 6e 6c 69 6e 65 20 61 73 73 65 6d 62 6c 79 20 61 73 73 69 67 6e 69 6e 67 20 76 61 6c | ng.inline.assembly.assigning.val |
| 20640 | 75 65 73 20 74 6f 20 76 61 72 69 61 62 6c 65 73 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 | ues.to.variables</p>.......<h2.i |
| 20660 | 64 3d 22 61 74 6f 6d 69 63 73 22 3e 41 74 6f 6d 69 63 73 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c | d="atomics">Atomics</h2>.......< |
| 20680 | 70 3e 54 4f 44 4f 3a 20 40 66 65 6e 63 65 28 29 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f | p>TODO:.@fence()</p>.......<p>TO |
| 206a0 | 44 4f 3a 20 40 61 74 6f 6d 69 63 20 72 6d 77 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 | DO:.@atomic.rmw</p>.......<p>TOD |
| 206c0 | 4f 3a 20 62 75 69 6c 74 69 6e 20 61 74 6f 6d 69 63 20 6d 65 6d 6f 72 79 20 6f 72 64 65 72 69 6e | O:.builtin.atomic.memory.orderin |
| 206e0 | 67 20 65 6e 75 6d 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 62 75 69 6c 74 69 6e | g.enum</p>.......<h2.id="builtin |
| 20700 | 2d 66 75 6e 63 74 69 6f 6e 73 22 3e 42 75 69 6c 74 69 6e 20 46 75 6e 63 74 69 6f 6e 73 3c 2f 68 | -functions">Builtin.Functions</h |
| 20720 | 32 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 42 75 69 6c 74 69 6e 20 66 75 6e 63 74 | 2>.......<p>.......Builtin.funct |
| 20740 | 69 6f 6e 73 20 61 72 65 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 20 63 6f 6d 70 69 6c 65 | ions.are.provided.by.the.compile |
| 20760 | 72 20 61 6e 64 20 61 72 65 20 70 72 65 66 69 78 65 64 20 77 69 74 68 20 3c 63 6f 64 65 3e 40 3c | r.and.are.prefixed.with.<code>@< |
| 20780 | 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 54 68 65 20 3c 63 6f 64 65 3e 63 6f 6d 70 74 69 6d 65 | /code>........The.<code>comptime |
| 207a0 | 3c 2f 63 6f 64 65 3e 20 6b 65 79 77 6f 72 64 20 6f 6e 20 61 20 70 61 72 61 6d 65 74 65 72 20 6d | </code>.keyword.on.a.parameter.m |
| 207c0 | 65 61 6e 73 20 74 68 61 74 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 6d 75 73 74 20 62 65 20 | eans.that.the.parameter.must.be. |
| 207e0 | 6b 6e 6f 77 6e 0a 20 20 20 20 20 20 61 74 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 2e 0a 20 20 20 | known.......at.compile.time..... |
| 20800 | 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 61 64 | ...</p>.......<h3.id="builtin-ad |
| 20820 | 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c | dWithOverflow">@addWithOverflow< |
| 20840 | 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 | /h3>.......<pre><code.class="zig |
| 20860 | 22 3e 40 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 | ">@addWithOverflow(comptime.T:.t |
| 20880 | 79 70 65 2c 20 61 3a 20 54 2c 20 62 3a 20 54 2c 20 72 65 73 75 6c 74 3a 20 26 61 6d 70 3b 54 29 | ype,.a:.T,.b:.T,.result:.&T) |
| 208a0 | 20 2d 26 67 74 3b 20 62 6f 6f 6c 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c | .->.bool</code></pre>.......< |
| 208c0 | 70 3e 0a 20 20 20 20 20 20 50 65 72 66 6f 72 6d 73 20 3c 63 6f 64 65 3e 2a 72 65 73 75 6c 74 20 | p>.......Performs.<code>*result. |
| 208e0 | 3d 20 61 20 2b 20 62 3c 2f 63 6f 64 65 3e 2e 20 49 66 20 6f 76 65 72 66 6c 6f 77 20 6f 72 20 75 | =.a.+.b</code>..If.overflow.or.u |
| 20900 | 6e 64 65 72 66 6c 6f 77 20 6f 63 63 75 72 73 2c 0a 20 20 20 20 20 20 73 74 6f 72 65 73 20 74 68 | nderflow.occurs,.......stores.th |
| 20920 | 65 20 6f 76 65 72 66 6c 6f 77 65 64 20 62 69 74 73 20 69 6e 20 3c 63 6f 64 65 3e 72 65 73 75 6c | e.overflowed.bits.in.<code>resul |
| 20940 | 74 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 74 72 75 65 3c | t</code>.and.returns.<code>true< |
| 20960 | 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 49 66 20 6e 6f 20 6f 76 65 72 66 6c 6f 77 20 6f 72 20 | /code>........If.no.overflow.or. |
| 20980 | 75 6e 64 65 72 66 6c 6f 77 20 6f 63 63 75 72 73 2c 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e | underflow.occurs,.returns.<code> |
| 209a0 | 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | false</code>........</p>.......< |
| 209c0 | 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 62 69 74 43 61 73 74 22 3e 40 62 69 74 43 61 73 74 | h3.id="builtin-bitCast">@bitCast |
| 209e0 | 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 | </h3>.......<pre><code.class="zi |
| 20a00 | 67 22 3e 40 62 69 74 43 61 73 74 28 63 6f 6d 70 74 69 6d 65 20 44 65 73 74 54 79 70 65 3a 20 74 | g">@bitCast(comptime.DestType:.t |
| 20a20 | 79 70 65 2c 20 76 61 6c 75 65 3a 20 76 61 72 29 20 2d 26 67 74 3b 20 44 65 73 74 54 79 70 65 3c | ype,.value:.var).->.DestType< |
| 20a40 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 6f 6e | /code></pre>.......<p>.......Con |
| 20a60 | 76 65 72 74 73 20 61 20 76 61 6c 75 65 20 6f 66 20 6f 6e 65 20 74 79 70 65 20 74 6f 20 61 6e 6f | verts.a.value.of.one.type.to.ano |
| 20a80 | 74 68 65 72 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a | ther.type........</p>.......<p>. |
| 20aa0 | 20 20 20 20 20 20 41 73 73 65 72 74 73 20 74 68 61 74 20 3c 63 6f 64 65 3e 40 73 69 7a 65 4f 66 | ......Asserts.that.<code>@sizeOf |
| 20ac0 | 28 40 74 79 70 65 4f 66 28 76 61 6c 75 65 29 29 20 3d 3d 20 40 73 69 7a 65 4f 66 28 44 65 73 74 | (@typeOf(value)).==.@sizeOf(Dest |
| 20ae0 | 54 79 70 65 29 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | Type)</code>........</p>.......< |
| 20b00 | 70 3e 0a 20 20 20 20 20 20 41 73 73 65 72 74 73 20 74 68 61 74 20 3c 63 6f 64 65 3e 40 74 79 70 | p>.......Asserts.that.<code>@typ |
| 20b20 | 65 49 64 28 44 65 73 74 54 79 70 65 29 20 21 3d 20 40 69 6d 70 6f 72 74 28 22 62 75 69 6c 74 69 | eId(DestType).!=.@import("builti |
| 20b40 | 6e 22 29 2e 54 79 70 65 49 64 2e 50 6f 69 6e 74 65 72 3c 2f 63 6f 64 65 3e 2e 20 55 73 65 20 3c | n").TypeId.Pointer</code>..Use.< |
| 20b60 | 63 6f 64 65 3e 40 70 74 72 43 61 73 74 3c 2f 63 6f 64 65 3e 20 6f 72 20 3c 63 6f 64 65 3e 40 69 | code>@ptrCast</code>.or.<code>@i |
| 20b80 | 6e 74 54 6f 50 74 72 3c 2f 63 6f 64 65 3e 20 69 66 20 79 6f 75 20 6e 65 65 64 20 74 68 69 73 2e | ntToPtr</code>.if.you.need.this. |
| 20ba0 | 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 61 6e 20 | .......</p>.......<p>.......Can. |
| 20bc0 | 62 65 20 75 73 65 64 20 66 6f 72 20 74 68 65 73 65 20 74 68 69 6e 67 73 20 66 6f 72 20 65 78 61 | be.used.for.these.things.for.exa |
| 20be0 | 6d 70 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 | mple:.......</p>.......<ul>..... |
| 20c00 | 20 20 20 20 3c 6c 69 3e 43 6f 6e 76 65 72 74 20 3c 63 6f 64 65 3e 66 33 32 3c 2f 63 6f 64 65 3e | ....<li>Convert.<code>f32</code> |
| 20c20 | 20 74 6f 20 3c 63 6f 64 65 3e 75 33 32 3c 2f 63 6f 64 65 3e 20 62 69 74 73 3c 2f 6c 69 3e 0a 20 | .to.<code>u32</code>.bits</li>.. |
| 20c40 | 20 20 20 20 20 20 20 3c 6c 69 3e 43 6f 6e 76 65 72 74 20 3c 63 6f 64 65 3e 69 33 32 3c 2f 63 6f | .......<li>Convert.<code>i32</co |
| 20c60 | 64 65 3e 20 74 6f 20 3c 63 6f 64 65 3e 75 33 32 3c 2f 63 6f 64 65 3e 20 70 72 65 73 65 72 76 69 | de>.to.<code>u32</code>.preservi |
| 20c80 | 6e 67 20 74 77 6f 73 20 63 6f 6d 70 6c 65 6d 65 6e 74 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f | ng.twos.complement</li>.......</ |
| 20ca0 | 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 6f 72 6b 73 20 61 74 20 63 6f 6d | ul>.......<p>.......Works.at.com |
| 20cc0 | 70 69 6c 65 2d 74 69 6d 65 20 69 66 20 3c 63 6f 64 65 3e 76 61 6c 75 65 3c 2f 63 6f 64 65 3e 20 | pile-time.if.<code>value</code>. |
| 20ce0 | 69 73 20 6b 6e 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 2e 20 49 74 27 73 20 61 | is.known.at.compile.time..It's.a |
| 20d00 | 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 74 6f 20 62 69 74 63 61 73 74 20 61 20 73 74 72 75 | .compile.error.to.bitcast.a.stru |
| 20d20 | 63 74 20 74 6f 20 61 20 73 63 61 6c 61 72 20 74 79 70 65 20 6f 66 20 74 68 65 20 73 61 6d 65 20 | ct.to.a.scalar.type.of.the.same. |
| 20d40 | 73 69 7a 65 20 73 69 6e 63 65 20 73 74 72 75 63 74 73 20 68 61 76 65 20 75 6e 64 65 66 69 6e 65 | size.since.structs.have.undefine |
| 20d60 | 64 20 6c 61 79 6f 75 74 2e 20 48 6f 77 65 76 65 72 20 69 66 20 74 68 65 20 73 74 72 75 63 74 20 | d.layout..However.if.the.struct. |
| 20d80 | 69 73 20 70 61 63 6b 65 64 20 74 68 65 6e 20 69 74 20 77 6f 72 6b 73 2e 0a 20 20 20 20 20 20 3c | is.packed.then.it.works........< |
| 20da0 | 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 62 72 65 61 6b 70 | /p>.......<h3.id="builtin-breakp |
| 20dc0 | 6f 69 6e 74 22 3e 40 62 72 65 61 6b 70 6f 69 6e 74 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 | oint">@breakpoint</h3>.......<pr |
| 20de0 | 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 62 72 65 61 6b 70 6f 69 6e 74 28 | e><code.class="zig">@breakpoint( |
| 20e00 | 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 | )</code></pre>.......<p>.......T |
| 20e20 | 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 65 72 74 73 20 61 20 70 6c 61 74 66 6f 72 6d 2d | his.function.inserts.a.platform- |
| 20e40 | 73 70 65 63 69 66 69 63 20 64 65 62 75 67 20 74 72 61 70 20 69 6e 73 74 72 75 63 74 69 6f 6e 20 | specific.debug.trap.instruction. |
| 20e60 | 77 68 69 63 68 20 63 61 75 73 65 73 0a 20 20 20 20 20 20 64 65 62 75 67 67 65 72 73 20 74 6f 20 | which.causes.......debuggers.to. |
| 20e80 | 62 72 65 61 6b 20 74 68 65 72 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 | break.there........</p>.......<p |
| 20ea0 | 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6f 6e 6c 79 20 76 61 | >.......This.function.is.only.va |
| 20ec0 | 6c 69 64 20 77 69 74 68 69 6e 20 66 75 6e 63 74 69 6f 6e 20 73 63 6f 70 65 2e 0a 20 20 20 20 20 | lid.within.function.scope....... |
| 20ee0 | 20 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 61 6c 69 | .</p>........<h3.id="builtin-ali |
| 20f00 | 67 6e 43 61 73 74 22 3e 40 61 6c 69 67 6e 43 61 73 74 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 | gnCast">@alignCast</h3>.......<p |
| 20f20 | 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 61 6c 69 67 6e 43 61 73 74 28 | re><code.class="zig">@alignCast( |
| 20f40 | 63 6f 6d 70 74 69 6d 65 20 61 6c 69 67 6e 6d 65 6e 74 3a 20 75 32 39 2c 20 70 74 72 3a 20 76 61 | comptime.alignment:.u29,.ptr:.va |
| 20f60 | 72 29 20 2d 26 67 74 3b 20 76 61 72 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 | r).->.var</code></pre>....... |
| 20f80 | 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 70 74 72 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 | <p>.......<code>ptr</code>.can.b |
| 20fa0 | 65 20 3c 63 6f 64 65 3e 26 61 6d 70 3b 54 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 66 6e 28 | e.<code>&T</code>,.<code>fn( |
| 20fc0 | 29 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 3f 26 61 6d 70 3b 54 3c 2f 63 6f 64 65 3e 2c 0a | )</code>,.<code>?&T</code>,. |
| 20fe0 | 20 20 20 20 20 20 3c 63 6f 64 65 3e 3f 66 6e 28 29 3c 2f 63 6f 64 65 3e 2c 20 6f 72 20 3c 63 6f | ......<code>?fn()</code>,.or.<co |
| 21000 | 64 65 3e 5b 5d 54 3c 2f 63 6f 64 65 3e 2e 20 49 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 73 61 | de>[]T</code>..It.returns.the.sa |
| 21020 | 6d 65 20 74 79 70 65 20 61 73 20 3c 63 6f 64 65 3e 70 74 72 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 | me.type.as.<code>ptr</code>..... |
| 21040 | 20 20 65 78 63 65 70 74 20 77 69 74 68 20 74 68 65 20 61 6c 69 67 6e 6d 65 6e 74 20 61 64 6a 75 | ..except.with.the.alignment.adju |
| 21060 | 73 74 65 64 20 74 6f 20 74 68 65 20 6e 65 77 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 3c 2f 70 | sted.to.the.new.value........</p |
| 21080 | 3e 0a 20 20 20 20 20 20 3c 70 3e 41 20 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 2d 69 6e 63 | >.......<p>A.<a.href="#undef-inc |
| 210a0 | 6f 72 72 65 63 74 2d 70 6f 69 6e 74 65 72 2d 61 6c 69 67 6e 6d 65 6e 74 22 3e 70 6f 69 6e 74 65 | orrect-pointer-alignment">pointe |
| 210c0 | 72 20 61 6c 69 67 6e 6d 65 6e 74 20 73 61 66 65 74 79 20 63 68 65 63 6b 3c 2f 61 3e 20 69 73 20 | r.alignment.safety.check</a>.is. |
| 210e0 | 61 64 64 65 64 0a 20 20 20 20 20 20 74 6f 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 20 63 6f 64 | added.......to.the.generated.cod |
| 21100 | 65 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68 65 20 70 6f 69 6e 74 65 72 20 69 73 20 61 6c | e.to.make.sure.the.pointer.is.al |
| 21120 | 69 67 6e 65 64 20 61 73 20 70 72 6f 6d 69 73 65 64 2e 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 3c 68 | igned.as.promised.</p>........<h |
| 21140 | 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 61 6c 69 67 6e 4f 66 22 3e 40 61 6c 69 67 6e 4f 66 3c | 3.id="builtin-alignOf">@alignOf< |
| 21160 | 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 | /h3>.......<pre><code.class="zig |
| 21180 | 22 3e 40 61 6c 69 67 6e 4f 66 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 29 20 2d 26 67 | ">@alignOf(comptime.T:.type).-&g |
| 211a0 | 74 3b 20 28 6e 75 6d 62 65 72 20 6c 69 74 65 72 61 6c 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e | t;.(number.literal)</code></pre> |
| 211c0 | 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 | .......<p>.......This.function.r |
| 211e0 | 65 74 75 72 6e 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 20 74 68 61 74 20 | eturns.the.number.of.bytes.that. |
| 21200 | 74 68 69 73 20 74 79 70 65 20 73 68 6f 75 6c 64 20 62 65 20 61 6c 69 67 6e 65 64 20 74 6f 0a 20 | this.type.should.be.aligned.to.. |
| 21220 | 20 20 20 20 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 61 72 67 65 74 20 74 6f 20 6d | .....for.the.current.target.to.m |
| 21240 | 61 74 63 68 20 74 68 65 20 43 20 41 42 49 2e 20 57 68 65 6e 20 74 68 65 20 63 68 69 6c 64 20 74 | atch.the.C.ABI..When.the.child.t |
| 21260 | 79 70 65 20 6f 66 20 61 20 70 6f 69 6e 74 65 72 20 68 61 73 0a 20 20 20 20 20 20 74 68 69 73 20 | ype.of.a.pointer.has.......this. |
| 21280 | 61 6c 69 67 6e 6d 65 6e 74 2c 20 74 68 65 20 61 6c 69 67 6e 6d 65 6e 74 20 63 61 6e 20 62 65 20 | alignment,.the.alignment.can.be. |
| 212a0 | 6f 6d 69 74 74 65 64 20 66 72 6f 6d 20 74 68 65 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 | omitted.from.the.type........</p |
| 212c0 | 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 | >.......<pre><code.class="zig">c |
| 212e0 | 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 | onst.assert.=.@import("std").deb |
| 21300 | 75 67 2e 61 73 73 65 72 74 3b 0a 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 61 73 73 65 72 74 | ug.assert;.comptime.{.....assert |
| 21320 | 28 26 61 6d 70 3b 75 33 32 20 3d 3d 20 26 61 6d 70 3b 61 6c 69 67 6e 28 40 61 6c 69 67 6e 4f 66 | (&u32.==.&align(@alignOf |
| 21340 | 28 75 33 32 29 29 20 75 33 32 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 | (u32)).u32);.}</code></pre>..... |
| 21360 | 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 20 74 61 72 67 | ..<p>.......The.result.is.a.targ |
| 21380 | 65 74 2d 73 70 65 63 69 66 69 63 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 63 6f 6e 73 74 61 6e | et-specific.compile.time.constan |
| 213a0 | 74 2e 20 49 74 20 69 73 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 62 65 0a 20 20 20 20 20 20 | t..It.is.guaranteed.to.be....... |
| 213c0 | 6c 65 73 73 20 74 68 61 6e 20 6f 72 20 65 71 75 61 6c 20 74 6f 20 3c 61 20 68 72 65 66 3d 22 23 | less.than.or.equal.to.<a.href="# |
| 213e0 | 62 75 69 6c 74 69 6e 2d 73 69 7a 65 4f 66 22 3e 40 73 69 7a 65 4f 66 28 54 29 3c 2f 61 3e 2e 0a | builtin-sizeOf">@sizeOf(T)</a>.. |
| 21400 | 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 | ......</p>.......<p>See.also:</p |
| 21420 | 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 | >.......<ul>.........<li><a.href |
| 21440 | 3d 22 23 61 6c 69 67 6e 6d 65 6e 74 22 3e 41 6c 69 67 6e 6d 65 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e | ="#alignment">Alignment</a></li> |
| 21460 | 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c | .......</ul>........<h3.id="buil |
| 21480 | 74 69 6e 2d 63 44 65 66 69 6e 65 22 3e 40 63 44 65 66 69 6e 65 3c 2f 68 33 3e 0a 20 20 20 20 20 | tin-cDefine">@cDefine</h3>...... |
| 214a0 | 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 63 44 65 66 69 6e 65 | .<pre><code.class="zig">@cDefine |
| 214c0 | 28 63 6f 6d 70 74 69 6d 65 20 6e 61 6d 65 3a 20 5b 5d 75 38 2c 20 76 61 6c 75 65 29 3c 2f 63 6f | (comptime.name:.[]u8,.value)</co |
| 214e0 | 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 | de></pre>.......<p>.......This.f |
| 21500 | 75 6e 63 74 69 6f 6e 20 63 61 6e 20 6f 6e 6c 79 20 6f 63 63 75 72 20 69 6e 73 69 64 65 20 3c 63 | unction.can.only.occur.inside.<c |
| 21520 | 6f 64 65 3e 40 63 49 6d 70 6f 72 74 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a | ode>@cImport</code>........</p>. |
| 21540 | 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 61 70 70 65 6e 64 73 20 3c 63 6f | ......<p>.......This.appends.<co |
| 21560 | 64 65 3e 23 64 65 66 69 6e 65 20 24 6e 61 6d 65 20 24 76 61 6c 75 65 3c 2f 63 6f 64 65 3e 20 74 | de>#define.$name.$value</code>.t |
| 21580 | 6f 20 74 68 65 20 3c 63 6f 64 65 3e 40 63 49 6d 70 6f 72 74 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 | o.the.<code>@cImport</code>..... |
| 215a0 | 20 20 74 65 6d 70 6f 72 61 72 79 20 62 75 66 66 65 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 | ..temporary.buffer........</p>.. |
| 215c0 | 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 6f 20 64 65 66 69 6e 65 20 77 69 74 68 6f 75 74 | .....<p>.......To.define.without |
| 215e0 | 20 61 20 76 61 6c 75 65 2c 20 6c 69 6b 65 20 74 68 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a | .a.value,.like.this:.......</p>. |
| 21600 | 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 23 64 65 66 69 | ......<pre><code.class="c">#defi |
| 21620 | 6e 65 20 5f 47 4e 55 5f 53 4f 55 52 43 45 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 | ne._GNU_SOURCE</code></pre>..... |
| 21640 | 20 20 3c 70 3e 0a 20 20 20 20 20 20 55 73 65 20 74 68 65 20 76 6f 69 64 20 76 61 6c 75 65 2c 20 | ..<p>.......Use.the.void.value,. |
| 21660 | 6c 69 6b 65 20 74 68 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 | like.this:.......</p>.......<pre |
| 21680 | 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 63 44 65 66 69 6e 65 28 22 5f 47 4e | ><code.class="zig">@cDefine("_GN |
| 216a0 | 55 5f 53 4f 55 52 43 45 22 2c 20 7b 7d 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 | U_SOURCE",.{})</code></pre>..... |
| 216c0 | 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 | ..<p>See.also:</p>.......<ul>... |
| 216e0 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 2d 69 6d 70 6f 72 74 22 3e 49 6d | ......<li><a.href="#c-import">Im |
| 21700 | 70 6f 72 74 20 66 72 6f 6d 20 43 20 48 65 61 64 65 72 20 46 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e | port.from.C.Header.File</a></li> |
| 21720 | 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 63 | .........<li><a.href="#builtin-c |
| 21740 | 49 6e 63 6c 75 64 65 22 3e 40 63 49 6e 63 6c 75 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 | Include">@cInclude</a></li>..... |
| 21760 | 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 63 49 6d 70 6f 72 | ....<li><a.href="#builtin-cImpor |
| 21780 | 74 22 3e 40 63 49 6d 70 6f 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 | t">@cImport</a></li>.........<li |
| 217a0 | 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 63 55 6e 64 65 66 22 3e 40 63 55 6e 64 | ><a.href="#builtin-cUndef">@cUnd |
| 217c0 | 65 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d | ef</a></li>.........<li><a.href= |
| 217e0 | 22 23 76 6f 69 64 22 3e 76 6f 69 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c | "#void">void</a></li>.......</ul |
| 21800 | 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 63 49 6d 70 6f 72 74 22 | >.......<h3.id="builtin-cImport" |
| 21820 | 3e 40 63 49 6d 70 6f 72 74 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 | >@cImport</h3>.......<pre><code. |
| 21840 | 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 63 49 6d 70 6f 72 74 28 65 78 70 72 65 73 73 69 6f 6e 29 | class="zig">@cImport(expression) |
| 21860 | 20 2d 26 67 74 3b 20 28 6e 61 6d 65 73 70 61 63 65 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a | .->.(namespace)</code></pre>. |
| 21880 | 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 70 61 | ......<p>.......This.function.pa |
| 218a0 | 72 73 65 73 20 43 20 63 6f 64 65 20 61 6e 64 20 69 6d 70 6f 72 74 73 20 74 68 65 20 66 75 6e 63 | rses.C.code.and.imports.the.func |
| 218c0 | 74 69 6f 6e 73 2c 20 74 79 70 65 73 2c 20 76 61 72 69 61 62 6c 65 73 2c 20 61 6e 64 0a 20 20 20 | tions,.types,.variables,.and.... |
| 218e0 | 20 20 20 63 6f 6d 70 61 74 69 62 6c 65 20 6d 61 63 72 6f 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 | ...compatible.macro.definitions. |
| 21900 | 69 6e 74 6f 20 74 68 65 20 72 65 73 75 6c 74 20 6e 61 6d 65 73 70 61 63 65 2e 0a 20 20 20 20 20 | into.the.result.namespace....... |
| 21920 | 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 65 78 70 72 | .</p>.......<p>.......<code>expr |
| 21940 | 65 73 73 69 6f 6e 3c 2f 63 6f 64 65 3e 20 69 73 20 69 6e 74 65 72 70 72 65 74 65 64 20 61 74 20 | ession</code>.is.interpreted.at. |
| 21960 | 63 6f 6d 70 69 6c 65 20 74 69 6d 65 2e 20 54 68 65 20 62 75 69 6c 74 69 6e 20 66 75 6e 63 74 69 | compile.time..The.builtin.functi |
| 21980 | 6f 6e 73 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 40 63 49 6e 63 6c 75 64 65 3c 2f 63 6f 64 65 3e | ons.......<code>@cInclude</code> |
| 219a0 | 2c 20 3c 63 6f 64 65 3e 40 63 44 65 66 69 6e 65 3c 2f 63 6f 64 65 3e 2c 20 61 6e 64 20 3c 63 6f | ,.<code>@cDefine</code>,.and.<co |
| 219c0 | 64 65 3e 40 63 55 6e 64 65 66 3c 2f 63 6f 64 65 3e 20 77 6f 72 6b 0a 20 20 20 20 20 20 77 69 74 | de>@cUndef</code>.work.......wit |
| 219e0 | 68 69 6e 20 74 68 69 73 20 65 78 70 72 65 73 73 69 6f 6e 2c 20 61 70 70 65 6e 64 69 6e 67 20 74 | hin.this.expression,.appending.t |
| 21a00 | 6f 20 61 20 74 65 6d 70 6f 72 61 72 79 20 62 75 66 66 65 72 20 77 68 69 63 68 20 69 73 20 74 68 | o.a.temporary.buffer.which.is.th |
| 21a20 | 65 6e 20 70 61 72 73 65 64 20 61 73 20 43 20 63 6f 64 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a | en.parsed.as.C.code........</p>. |
| 21a40 | 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c | ......<p>See.also:</p>.......<ul |
| 21a60 | 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 2d 69 6d 70 6f 72 74 | >.........<li><a.href="#c-import |
| 21a80 | 22 3e 49 6d 70 6f 72 74 20 66 72 6f 6d 20 43 20 48 65 61 64 65 72 20 46 69 6c 65 3c 2f 61 3e 3c | ">Import.from.C.Header.File</a>< |
| 21aa0 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 | /li>.........<li><a.href="#built |
| 21ac0 | 69 6e 2d 63 49 6e 63 6c 75 64 65 22 3e 40 63 49 6e 63 6c 75 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a | in-cInclude">@cInclude</a></li>. |
| 21ae0 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 63 44 | ........<li><a.href="#builtin-cD |
| 21b00 | 65 66 69 6e 65 22 3e 40 63 44 65 66 69 6e 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | efine">@cDefine</a></li>........ |
| 21b20 | 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 63 55 6e 64 65 66 22 3e 40 | .<li><a.href="#builtin-cUndef">@ |
| 21b40 | 63 55 6e 64 65 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 | cUndef</a></li>.......</ul>..... |
| 21b60 | 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 63 49 6e 63 6c 75 64 65 22 3e 40 63 49 6e | ..<h3.id="builtin-cInclude">@cIn |
| 21b80 | 63 6c 75 64 65 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | clude</h3>.......<pre><code.clas |
| 21ba0 | 73 3d 22 7a 69 67 22 3e 40 63 49 6e 63 6c 75 64 65 28 63 6f 6d 70 74 69 6d 65 20 70 61 74 68 3a | s="zig">@cInclude(comptime.path: |
| 21bc0 | 20 5b 5d 75 38 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 | .[]u8)</code></pre>.......<p>... |
| 21be0 | 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 6f 6e 6c 79 20 6f 63 63 75 72 | ....This.function.can.only.occur |
| 21c00 | 20 69 6e 73 69 64 65 20 3c 63 6f 64 65 3e 40 63 49 6d 70 6f 72 74 3c 2f 63 6f 64 65 3e 2e 0a 20 | .inside.<code>@cImport</code>... |
| 21c20 | 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 61 | .....</p>.......<p>.......This.a |
| 21c40 | 70 70 65 6e 64 73 20 3c 63 6f 64 65 3e 23 69 6e 63 6c 75 64 65 20 3c 24 70 61 74 68 3e 5c 6e 3c | ppends.<code>#include.<$path>\n< |
| 21c60 | 2f 63 6f 64 65 3e 20 74 6f 20 74 68 65 20 3c 63 6f 64 65 3e 63 5f 69 6d 70 6f 72 74 3c 2f 63 6f | /code>.to.the.<code>c_import</co |
| 21c80 | 64 65 3e 0a 20 20 20 20 20 20 74 65 6d 70 6f 72 61 72 79 20 62 75 66 66 65 72 2e 0a 20 20 20 20 | de>.......temporary.buffer...... |
| 21ca0 | 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 | ..</p>.......<p>See.also:</p>... |
| 21cc0 | 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 | ....<ul>.........<li><a.href="#c |
| 21ce0 | 2d 69 6d 70 6f 72 74 22 3e 49 6d 70 6f 72 74 20 66 72 6f 6d 20 43 20 48 65 61 64 65 72 20 46 69 | -import">Import.from.C.Header.Fi |
| 21d00 | 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d | le</a></li>.........<li><a.href= |
| 21d20 | 22 23 62 75 69 6c 74 69 6e 2d 63 49 6d 70 6f 72 74 22 3e 40 63 49 6d 70 6f 72 74 3c 2f 61 3e 3c | "#builtin-cImport">@cImport</a>< |
| 21d40 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 | /li>.........<li><a.href="#built |
| 21d60 | 69 6e 2d 63 44 65 66 69 6e 65 22 3e 40 63 44 65 66 69 6e 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 | in-cDefine">@cDefine</a></li>... |
| 21d80 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 63 55 6e 64 | ......<li><a.href="#builtin-cUnd |
| 21da0 | 65 66 22 3e 40 63 55 6e 64 65 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e | ef">@cUndef</a></li>.......</ul> |
| 21dc0 | 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 63 55 6e 64 65 66 22 3e 40 | .......<h3.id="builtin-cUndef">@ |
| 21de0 | 63 55 6e 64 65 66 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 | cUndef</h3>.......<pre><code.cla |
| 21e00 | 73 73 3d 22 7a 69 67 22 3e 40 63 55 6e 64 65 66 28 63 6f 6d 70 74 69 6d 65 20 6e 61 6d 65 3a 20 | ss="zig">@cUndef(comptime.name:. |
| 21e20 | 5b 5d 75 38 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 | []u8)</code></pre>.......<p>.... |
| 21e40 | 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 6f 6e 6c 79 20 6f 63 63 75 72 20 | ...This.function.can.only.occur. |
| 21e60 | 69 6e 73 69 64 65 20 3c 63 6f 64 65 3e 40 63 49 6d 70 6f 72 74 3c 2f 63 6f 64 65 3e 2e 0a 20 20 | inside.<code>@cImport</code>.... |
| 21e80 | 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 61 70 | ....</p>.......<p>.......This.ap |
| 21ea0 | 70 65 6e 64 73 20 3c 63 6f 64 65 3e 23 75 6e 64 65 66 20 24 6e 61 6d 65 3c 2f 63 6f 64 65 3e 20 | pends.<code>#undef.$name</code>. |
| 21ec0 | 74 6f 20 74 68 65 20 3c 63 6f 64 65 3e 40 63 49 6d 70 6f 72 74 3c 2f 63 6f 64 65 3e 0a 20 20 20 | to.the.<code>@cImport</code>.... |
| 21ee0 | 20 20 20 74 65 6d 70 6f 72 61 72 79 20 62 75 66 66 65 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a | ...temporary.buffer........</p>. |
| 21f00 | 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c | ......<p>See.also:</p>.......<ul |
| 21f20 | 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 2d 69 6d 70 6f 72 74 | >.........<li><a.href="#c-import |
| 21f40 | 22 3e 49 6d 70 6f 72 74 20 66 72 6f 6d 20 43 20 48 65 61 64 65 72 20 46 69 6c 65 3c 2f 61 3e 3c | ">Import.from.C.Header.File</a>< |
| 21f60 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 | /li>.........<li><a.href="#built |
| 21f80 | 69 6e 2d 63 49 6d 70 6f 72 74 22 3e 40 63 49 6d 70 6f 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 | in-cImport">@cImport</a></li>... |
| 21fa0 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 63 44 65 66 | ......<li><a.href="#builtin-cDef |
| 21fc0 | 69 6e 65 22 3e 40 63 44 65 66 69 6e 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c | ine">@cDefine</a></li>.........< |
| 21fe0 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 63 49 6e 63 6c 75 64 65 22 3e 40 | li><a.href="#builtin-cInclude">@ |
| 22000 | 63 49 6e 63 6c 75 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 | cInclude</a></li>.......</ul>... |
| 22020 | 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 63 61 6e 49 6d 70 6c 69 63 69 74 43 | ....<h3.id="builtin-canImplicitC |
| 22040 | 61 73 74 22 3e 40 63 61 6e 49 6d 70 6c 69 63 69 74 43 61 73 74 3c 2f 68 33 3e 0a 20 20 20 20 20 | ast">@canImplicitCast</h3>...... |
| 22060 | 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 63 61 6e 49 6d 70 6c | .<pre><code.class="zig">@canImpl |
| 22080 | 69 63 69 74 43 61 73 74 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 2c 20 76 61 6c 75 65 | icitCast(comptime.T:.type,.value |
| 220a0 | 29 20 2d 26 67 74 3b 20 62 6f 6f 6c 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 | ).->.bool</code></pre>....... |
| 220c0 | 3c 70 3e 0a 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 77 68 65 74 68 65 72 20 61 20 76 61 6c 75 | <p>.......Returns.whether.a.valu |
| 220e0 | 65 20 63 61 6e 20 62 65 20 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 65 64 20 74 6f 20 61 20 | e.can.be.implicitly.casted.to.a. |
| 22100 | 67 69 76 65 6e 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 | given.type........</p>.......<h3 |
| 22120 | 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 63 6c 7a 22 3e 40 63 6c 7a 3c 2f 68 33 3e 0a 20 20 20 20 | .id="builtin-clz">@clz</h3>..... |
| 22140 | 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 63 6c 7a 28 78 3a | ..<pre><code.class="zig">@clz(x: |
| 22160 | 20 54 29 20 2d 26 67 74 3b 20 55 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c | .T).->.U</code></pre>.......< |
| 22180 | 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 6f 75 6e 74 73 20 74 68 | p>.......This.function.counts.th |
| 221a0 | 65 20 6e 75 6d 62 65 72 20 6f 66 20 6c 65 61 64 69 6e 67 20 7a 65 72 6f 65 73 20 69 6e 20 3c 63 | e.number.of.leading.zeroes.in.<c |
| 221c0 | 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 77 68 69 63 68 20 69 73 20 61 6e 20 69 6e 74 65 67 65 72 | ode>x</code>.which.is.an.integer |
| 221e0 | 0a 20 20 20 20 20 20 74 79 70 65 20 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 | .......type.<code>T</code>...... |
| 22200 | 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 72 65 74 75 72 | ..</p>.......<p>.......The.retur |
| 22220 | 6e 20 74 79 70 65 20 3c 63 6f 64 65 3e 55 3c 2f 63 6f 64 65 3e 20 69 73 20 61 6e 20 75 6e 73 69 | n.type.<code>U</code>.is.an.unsi |
| 22240 | 67 6e 65 64 20 69 6e 74 65 67 65 72 20 77 69 74 68 20 74 68 65 20 6d 69 6e 69 6d 75 6d 20 6e 75 | gned.integer.with.the.minimum.nu |
| 22260 | 6d 62 65 72 0a 20 20 20 20 20 20 6f 66 20 62 69 74 73 20 74 68 61 74 20 63 61 6e 20 72 65 70 72 | mber.......of.bits.that.can.repr |
| 22280 | 65 73 65 6e 74 20 74 68 65 20 76 61 6c 75 65 20 3c 63 6f 64 65 3e 54 2e 62 69 74 5f 63 6f 75 6e | esent.the.value.<code>T.bit_coun |
| 222a0 | 74 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 | t</code>........</p>.......<p>.. |
| 222c0 | 20 20 20 20 20 49 66 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 69 73 20 7a 65 72 6f 2c 20 | .....If.<code>x</code>.is.zero,. |
| 222e0 | 3c 63 6f 64 65 3e 40 63 6c 7a 3c 2f 63 6f 64 65 3e 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e | <code>@clz</code>.returns.<code> |
| 22300 | 54 2e 62 69 74 5f 63 6f 75 6e 74 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 0a | T.bit_count</code>........</p>.. |
| 22320 | 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 63 6d 70 78 63 68 67 22 3e 40 | ......<h3.id="builtin-cmpxchg">@ |
| 22340 | 63 6d 70 78 63 68 67 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | cmpxchg</h3>.......<pre><code.cl |
| 22360 | 61 73 73 3d 22 7a 69 67 22 3e 40 63 6d 70 78 63 68 67 28 70 74 72 3a 20 26 61 6d 70 3b 54 2c 20 | ass="zig">@cmpxchg(ptr:.&T,. |
| 22380 | 63 6d 70 3a 20 54 2c 20 6e 65 77 3a 20 54 2c 20 73 75 63 63 65 73 73 5f 6f 72 64 65 72 3a 20 41 | cmp:.T,.new:.T,.success_order:.A |
| 223a0 | 74 6f 6d 69 63 4f 72 64 65 72 2c 20 66 61 69 6c 5f 6f 72 64 65 72 3a 20 41 74 6f 6d 69 63 4f 72 | tomicOrder,.fail_order:.AtomicOr |
| 223c0 | 64 65 72 29 20 2d 26 67 74 3b 20 62 6f 6f 6c 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 | der).->.bool</code></pre>.... |
| 223e0 | 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 70 65 72 66 6f | ...<p>.......This.function.perfo |
| 22400 | 72 6d 73 20 61 6e 20 61 74 6f 6d 69 63 20 63 6f 6d 70 61 72 65 20 65 78 63 68 61 6e 67 65 20 6f | rms.an.atomic.compare.exchange.o |
| 22420 | 70 65 72 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 | peration........</p>.......<p>.. |
| 22440 | 20 20 20 20 20 3c 63 6f 64 65 3e 41 74 6f 6d 69 63 4f 72 64 65 72 3c 2f 63 6f 64 65 3e 20 63 61 | .....<code>AtomicOrder</code>.ca |
| 22460 | 6e 20 62 65 20 66 6f 75 6e 64 20 77 69 74 68 20 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 62 | n.be.found.with.<code>@import("b |
| 22480 | 75 69 6c 74 69 6e 22 29 2e 41 74 6f 6d 69 63 4f 72 64 65 72 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 | uiltin").AtomicOrder</code>..... |
| 224a0 | 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 3e 40 74 79 70 65 4f 66 28 70 | ...</p>.......<p><code>@typeOf(p |
| 224c0 | 74 72 29 2e 61 6c 69 67 6e 6d 65 6e 74 3c 2f 63 6f 64 65 3e 20 6d 75 73 74 20 62 65 20 3c 63 6f | tr).alignment</code>.must.be.<co |
| 224e0 | 64 65 3e 26 67 74 3b 3d 20 40 73 69 7a 65 4f 66 28 54 29 2e 3c 2f 63 6f 64 65 3e 3c 2f 70 3e 0a | de>>=.@sizeOf(T).</code></p>. |
| 22500 | 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c | ......<p>See.also:</p>.......<ul |
| 22520 | 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 69 6c 65 2d | >.........<li><a.href="#compile- |
| 22540 | 76 61 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 20 56 61 72 69 61 62 6c 65 73 3c 2f 61 3e | variables">Compile.Variables</a> |
| 22560 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d | </li>.......</ul>........<h3.id= |
| 22580 | 22 62 75 69 6c 74 69 6e 2d 63 6f 6d 70 69 6c 65 45 72 72 6f 72 22 3e 40 63 6f 6d 70 69 6c 65 45 | "builtin-compileError">@compileE |
| 225a0 | 72 72 6f 72 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 | rror</h3>.......<pre><code.class |
| 225c0 | 3d 22 7a 69 67 22 3e 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 28 63 6f 6d 70 74 69 6d 65 20 6d 73 | ="zig">@compileError(comptime.ms |
| 225e0 | 67 3a 20 5b 5d 75 38 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a | g:.[]u8)</code></pre>.......<p>. |
| 22600 | 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 2c 20 77 68 65 6e 20 73 65 6d 61 6e 74 | ......This.function,.when.semant |
| 22620 | 69 63 61 6c 6c 79 20 61 6e 61 6c 79 7a 65 64 2c 20 63 61 75 73 65 73 20 61 20 63 6f 6d 70 69 6c | ically.analyzed,.causes.a.compil |
| 22640 | 65 20 65 72 72 6f 72 20 77 69 74 68 20 74 68 65 0a 20 20 20 20 20 20 6d 65 73 73 61 67 65 20 3c | e.error.with.the.......message.< |
| 22660 | 63 6f 64 65 3e 6d 73 67 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 | code>msg</code>........</p>..... |
| 22680 | 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 72 65 20 61 72 65 20 73 65 76 65 72 61 6c 20 77 61 | ..<p>.......There.are.several.wa |
| 226a0 | 79 73 20 74 68 61 74 20 63 6f 64 65 20 61 76 6f 69 64 73 20 62 65 69 6e 67 20 73 65 6d 61 6e 74 | ys.that.code.avoids.being.semant |
| 226c0 | 69 63 61 6c 6c 79 20 63 68 65 63 6b 65 64 2c 20 73 75 63 68 20 61 73 0a 20 20 20 20 20 20 75 73 | ically.checked,.such.as.......us |
| 226e0 | 69 6e 67 20 3c 63 6f 64 65 3e 69 66 3c 2f 63 6f 64 65 3e 20 6f 72 20 3c 63 6f 64 65 3e 73 77 69 | ing.<code>if</code>.or.<code>swi |
| 22700 | 74 63 68 3c 2f 63 6f 64 65 3e 20 77 69 74 68 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 63 6f 6e | tch</code>.with.compile.time.con |
| 22720 | 73 74 61 6e 74 73 2c 0a 20 20 20 20 20 20 61 6e 64 20 3c 63 6f 64 65 3e 63 6f 6d 70 74 69 6d 65 | stants,.......and.<code>comptime |
| 22740 | 3c 2f 63 6f 64 65 3e 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 | </code>.functions........</p>... |
| 22760 | 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 63 6f 6d 70 69 6c 65 4c 6f 67 22 3e | ....<h3.id="builtin-compileLog"> |
| 22780 | 40 63 6f 6d 70 69 6c 65 4c 6f 67 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 | @compileLog</h3>.......<pre><cod |
| 227a0 | 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 63 6f 6d 70 69 6c 65 4c 6f 67 28 61 72 67 73 3a 20 | e.class="zig">@compileLog(args:. |
| 227c0 | 2e 2e 2e 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 | ...)</code></pre>.......<p>..... |
| 227e0 | 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 2c 20 77 68 65 6e 20 73 65 6d 61 6e 74 69 63 61 6c | ..This.function,.when.semantical |
| 22800 | 6c 79 20 61 6e 61 6c 79 7a 65 64 2c 20 63 61 75 73 65 73 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 | ly.analyzed,.causes.a.compile.er |
| 22820 | 72 6f 72 2c 20 62 75 74 20 69 74 20 64 6f 65 73 0a 20 20 20 20 20 20 6e 6f 74 20 70 72 65 76 65 | ror,.but.it.does.......not.preve |
| 22840 | 6e 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 63 6f 64 65 20 66 72 6f 6d 20 63 6f 6e 74 69 6e | nt.compile-time.code.from.contin |
| 22860 | 75 69 6e 67 20 74 6f 20 72 75 6e 2c 20 61 6e 64 20 69 74 20 6f 74 68 65 72 77 69 73 65 20 64 6f | uing.to.run,.and.it.otherwise.do |
| 22880 | 65 73 20 6e 6f 74 0a 20 20 20 20 20 20 69 6e 74 65 72 66 65 72 65 20 77 69 74 68 20 61 6e 61 6c | es.not.......interfere.with.anal |
| 228a0 | 79 73 69 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 | ysis........</p>.......<p>...... |
| 228c0 | 20 45 61 63 68 20 6f 66 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 77 69 6c 6c 20 62 65 20 73 | .Each.of.the.arguments.will.be.s |
| 228e0 | 65 72 69 61 6c 69 7a 65 64 20 74 6f 20 61 20 70 72 69 6e 74 61 62 6c 65 20 64 65 62 75 67 20 76 | erialized.to.a.printable.debug.v |
| 22900 | 61 6c 75 65 20 61 6e 64 20 6f 75 74 70 75 74 0a 20 20 20 20 20 20 74 6f 20 73 74 64 65 72 72 2c | alue.and.output.......to.stderr, |
| 22920 | 20 61 6e 64 20 74 68 65 6e 20 61 20 6e 65 77 6c 69 6e 65 20 61 74 20 74 68 65 20 65 6e 64 2e 0a | .and.then.a.newline.at.the.end.. |
| 22940 | 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 | ......</p>.......<p>.......This. |
| 22960 | 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 64 6f 20 22 70 72 69 6e | function.can.be.used.to.do."prin |
| 22980 | 74 66 20 64 65 62 75 67 67 69 6e 67 22 20 6f 6e 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 65 78 | tf.debugging".on.compile-time.ex |
| 229a0 | 65 63 75 74 69 6e 67 0a 20 20 20 20 20 20 63 6f 64 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 | ecuting.......code........</p>.. |
| 229c0 | 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 63 74 7a 22 3e 40 63 74 7a 3c 2f | .....<h3.id="builtin-ctz">@ctz</ |
| 229e0 | 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 | h3>.......<pre><code.class="zig" |
| 22a00 | 3e 40 63 74 7a 28 78 3a 20 54 29 20 2d 26 67 74 3b 20 55 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e | >@ctz(x:.T).->.U</code></pre> |
| 22a20 | 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 | .......<p>.......This.function.c |
| 22a40 | 6f 75 6e 74 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 74 72 61 69 6c 69 6e 67 20 7a 65 72 | ounts.the.number.of.trailing.zer |
| 22a60 | 6f 65 73 20 69 6e 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 77 68 69 63 68 20 69 73 20 61 | oes.in.<code>x</code>.which.is.a |
| 22a80 | 6e 20 69 6e 74 65 67 65 72 0a 20 20 20 20 20 20 74 79 70 65 20 3c 63 6f 64 65 3e 54 3c 2f 63 6f | n.integer.......type.<code>T</co |
| 22aa0 | 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 | de>........</p>.......<p>....... |
| 22ac0 | 54 68 65 20 72 65 74 75 72 6e 20 74 79 70 65 20 3c 63 6f 64 65 3e 55 3c 2f 63 6f 64 65 3e 20 69 | The.return.type.<code>U</code>.i |
| 22ae0 | 73 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 20 77 69 74 68 20 74 68 65 20 6d | s.an.unsigned.integer.with.the.m |
| 22b00 | 69 6e 69 6d 75 6d 20 6e 75 6d 62 65 72 0a 20 20 20 20 20 20 6f 66 20 62 69 74 73 20 74 68 61 74 | inimum.number.......of.bits.that |
| 22b20 | 20 63 61 6e 20 72 65 70 72 65 73 65 6e 74 20 74 68 65 20 76 61 6c 75 65 20 3c 63 6f 64 65 3e 54 | .can.represent.the.value.<code>T |
| 22b40 | 2e 62 69 74 5f 63 6f 75 6e 74 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 | .bit_count</code>........</p>... |
| 22b60 | 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 66 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 | ....<p>.......If.<code>x</code>. |
| 22b80 | 69 73 20 7a 65 72 6f 2c 20 3c 63 6f 64 65 3e 40 63 74 7a 3c 2f 63 6f 64 65 3e 20 72 65 74 75 72 | is.zero,.<code>@ctz</code>.retur |
| 22ba0 | 6e 73 20 3c 63 6f 64 65 3e 54 2e 62 69 74 5f 63 6f 75 6e 74 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 | ns.<code>T.bit_count</code>..... |
| 22bc0 | 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 64 69 | ...</p>.......<h3.id="builtin-di |
| 22be0 | 76 45 78 61 63 74 22 3e 40 64 69 76 45 78 61 63 74 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 | vExact">@divExact</h3>.......<pr |
| 22c00 | 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 64 69 76 45 78 61 63 74 28 6e 75 | e><code.class="zig">@divExact(nu |
| 22c20 | 6d 65 72 61 74 6f 72 3a 20 54 2c 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 3a 20 54 29 20 2d 26 67 74 | merator:.T,.denominator:.T).-> |
| 22c40 | 3b 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 | ;.T</code></pre>.......<p>...... |
| 22c60 | 20 45 78 61 63 74 20 64 69 76 69 73 69 6f 6e 2e 20 43 61 6c 6c 65 72 20 67 75 61 72 61 6e 74 65 | .Exact.division..Caller.guarante |
| 22c80 | 65 73 20 3c 63 6f 64 65 3e 64 65 6e 6f 6d 69 6e 61 74 6f 72 20 21 3d 20 30 3c 2f 63 6f 64 65 3e | es.<code>denominator.!=.0</code> |
| 22ca0 | 20 61 6e 64 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 40 64 69 76 54 72 75 6e 63 28 6e 75 6d 65 72 | .and.......<code>@divTrunc(numer |
| 22cc0 | 61 74 6f 72 2c 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 29 20 2a 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 | ator,.denominator).*.denominator |
| 22ce0 | 20 3d 3d 20 6e 75 6d 65 72 61 74 6f 72 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e | .==.numerator</code>........</p> |
| 22d00 | 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 64 | .......<ul>.........<li><code>@d |
| 22d20 | 69 76 45 78 61 63 74 28 36 2c 20 33 29 20 3d 3d 20 32 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 | ivExact(6,.3).==.2</code></li>.. |
| 22d40 | 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 64 69 76 45 78 61 63 74 28 61 2c 20 62 29 | .......<li><code>@divExact(a,.b) |
| 22d60 | 20 2a 20 62 20 3d 3d 20 61 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c | .*.b.==.a</code></li>.......</ul |
| 22d80 | 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | >.......<p>See.also:</p>.......< |
| 22da0 | 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 | ul>.........<li><a.href="#builti |
| 22dc0 | 6e 2d 64 69 76 54 72 75 6e 63 22 3e 40 64 69 76 54 72 75 6e 63 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 | n-divTrunc">@divTrunc</a></li>.. |
| 22de0 | 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 64 69 76 | .......<li><a.href="#builtin-div |
| 22e00 | 46 6c 6f 6f 72 22 3e 40 64 69 76 46 6c 6f 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | Floor">@divFloor</a></li>....... |
| 22e20 | 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d 61 74 68 2e | ..<li><code>@import("std").math. |
| 22e40 | 64 69 76 45 78 61 63 74 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e | divExact</code></li>.......</ul> |
| 22e60 | 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 64 69 76 46 6c 6f 6f 72 22 | .......<h3.id="builtin-divFloor" |
| 22e80 | 3e 40 64 69 76 46 6c 6f 6f 72 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 | >@divFloor</h3>.......<pre><code |
| 22ea0 | 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 64 69 76 46 6c 6f 6f 72 28 6e 75 6d 65 72 61 74 6f 72 | .class="zig">@divFloor(numerator |
| 22ec0 | 3a 20 54 2c 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 3a 20 54 29 20 2d 26 67 74 3b 20 54 3c 2f 63 6f | :.T,.denominator:.T).->.T</co |
| 22ee0 | 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6c 6f 6f 72 65 | de></pre>.......<p>.......Floore |
| 22f00 | 64 20 64 69 76 69 73 69 6f 6e 2e 20 52 6f 75 6e 64 73 20 74 6f 77 61 72 64 20 6e 65 67 61 74 69 | d.division..Rounds.toward.negati |
| 22f20 | 76 65 20 69 6e 66 69 6e 69 74 79 2e 20 46 6f 72 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 | ve.infinity..For.unsigned.intege |
| 22f40 | 72 73 20 69 74 20 69 73 0a 20 20 20 20 20 20 74 68 65 20 73 61 6d 65 20 61 73 20 3c 63 6f 64 65 | rs.it.is.......the.same.as.<code |
| 22f60 | 3e 6e 75 6d 65 72 61 74 6f 72 20 2f 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 3c 2f 63 6f 64 65 3e 2e | >numerator./.denominator</code>. |
| 22f80 | 20 43 61 6c 6c 65 72 20 67 75 61 72 61 6e 74 65 65 73 20 3c 63 6f 64 65 3e 64 65 6e 6f 6d 69 6e | .Caller.guarantees.<code>denomin |
| 22fa0 | 61 74 6f 72 20 21 3d 20 30 3c 2f 63 6f 64 65 3e 20 61 6e 64 0a 20 20 20 20 20 20 3c 63 6f 64 65 | ator.!=.0</code>.and.......<code |
| 22fc0 | 3e 21 28 40 74 79 70 65 49 64 28 54 29 20 3d 3d 20 62 75 69 6c 74 69 6e 2e 54 79 70 65 49 64 2e | >!(@typeId(T).==.builtin.TypeId. |
| 22fe0 | 49 6e 74 20 61 6e 64 20 54 2e 69 73 5f 73 69 67 6e 65 64 20 61 6e 64 20 6e 75 6d 65 72 61 74 6f | Int.and.T.is_signed.and.numerato |
| 23000 | 72 20 3d 3d 20 40 6d 69 6e 56 61 6c 75 65 28 54 29 20 61 6e 64 20 64 65 6e 6f 6d 69 6e 61 74 6f | r.==.@minValue(T).and.denominato |
| 23020 | 72 20 3d 3d 20 2d 31 29 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 | r.==.-1)</code>........</p>..... |
| 23040 | 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 64 69 76 46 6c 6f | ..<ul>.........<li><code>@divFlo |
| 23060 | 6f 72 28 2d 35 2c 20 33 29 20 3d 3d 20 2d 32 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 | or(-5,.3).==.-2</code></li>..... |
| 23080 | 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 64 69 76 46 6c 6f 6f 72 28 61 2c 20 62 29 20 2b 20 | ....<li><code>@divFloor(a,.b).+. |
| 230a0 | 40 6d 6f 64 28 61 2c 20 62 29 20 3d 3d 20 61 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 | @mod(a,.b).==.a</code></li>..... |
| 230c0 | 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 | ..</ul>.......<p>See.also:</p>.. |
| 230e0 | 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | .....<ul>.........<li><a.href="# |
| 23100 | 62 75 69 6c 74 69 6e 2d 64 69 76 54 72 75 6e 63 22 3e 40 64 69 76 54 72 75 6e 63 3c 2f 61 3e 3c | builtin-divTrunc">@divTrunc</a>< |
| 23120 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 | /li>.........<li><a.href="#built |
| 23140 | 69 6e 2d 64 69 76 45 78 61 63 74 22 3e 40 64 69 76 45 78 61 63 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a | in-divExact">@divExact</a></li>. |
| 23160 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 | ........<li><code>@import("std") |
| 23180 | 2e 6d 61 74 68 2e 64 69 76 46 6c 6f 6f 72 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | .math.divFloor</code></li>...... |
| 231a0 | 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 64 69 76 | .</ul>.......<h3.id="builtin-div |
| 231c0 | 54 72 75 6e 63 22 3e 40 64 69 76 54 72 75 6e 63 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 | Trunc">@divTrunc</h3>.......<pre |
| 231e0 | 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 64 69 76 54 72 75 6e 63 28 6e 75 6d | ><code.class="zig">@divTrunc(num |
| 23200 | 65 72 61 74 6f 72 3a 20 54 2c 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 3a 20 54 29 20 2d 26 67 74 3b | erator:.T,.denominator:.T).-> |
| 23220 | 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 | .T</code></pre>.......<p>....... |
| 23240 | 54 72 75 6e 63 61 74 65 64 20 64 69 76 69 73 69 6f 6e 2e 20 52 6f 75 6e 64 73 20 74 6f 77 61 72 | Truncated.division..Rounds.towar |
| 23260 | 64 20 7a 65 72 6f 2e 20 46 6f 72 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 73 20 69 74 | d.zero..For.unsigned.integers.it |
| 23280 | 20 69 73 0a 20 20 20 20 20 20 74 68 65 20 73 61 6d 65 20 61 73 20 3c 63 6f 64 65 3e 6e 75 6d 65 | .is.......the.same.as.<code>nume |
| 232a0 | 72 61 74 6f 72 20 2f 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 3c 2f 63 6f 64 65 3e 2e 20 43 61 6c 6c | rator./.denominator</code>..Call |
| 232c0 | 65 72 20 67 75 61 72 61 6e 74 65 65 73 20 3c 63 6f 64 65 3e 64 65 6e 6f 6d 69 6e 61 74 6f 72 20 | er.guarantees.<code>denominator. |
| 232e0 | 21 3d 20 30 3c 2f 63 6f 64 65 3e 20 61 6e 64 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 21 28 40 74 | !=.0</code>.and.......<code>!(@t |
| 23300 | 79 70 65 49 64 28 54 29 20 3d 3d 20 62 75 69 6c 74 69 6e 2e 54 79 70 65 49 64 2e 49 6e 74 20 61 | ypeId(T).==.builtin.TypeId.Int.a |
| 23320 | 6e 64 20 54 2e 69 73 5f 73 69 67 6e 65 64 20 61 6e 64 20 6e 75 6d 65 72 61 74 6f 72 20 3d 3d 20 | nd.T.is_signed.and.numerator.==. |
| 23340 | 40 6d 69 6e 56 61 6c 75 65 28 54 29 20 61 6e 64 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 20 3d 3d 20 | @minValue(T).and.denominator.==. |
| 23360 | 2d 31 29 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c | -1)</code>........</p>.......<ul |
| 23380 | 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 64 69 76 54 72 75 6e 63 28 2d 35 | >.........<li><code>@divTrunc(-5 |
| 233a0 | 2c 20 33 29 20 3d 3d 20 2d 31 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c | ,.3).==.-1</code></li>.........< |
| 233c0 | 6c 69 3e 3c 63 6f 64 65 3e 40 64 69 76 54 72 75 6e 63 28 61 2c 20 62 29 20 2b 20 40 72 65 6d 28 | li><code>@divTrunc(a,.b).+.@rem( |
| 233e0 | 61 2c 20 62 29 20 3d 3d 20 61 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 | a,.b).==.a</code></li>.......</u |
| 23400 | 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 | l>.......<p>See.also:</p>....... |
| 23420 | 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 | <ul>.........<li><a.href="#built |
| 23440 | 69 6e 2d 64 69 76 46 6c 6f 6f 72 22 3e 40 64 69 76 46 6c 6f 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a | in-divFloor">@divFloor</a></li>. |
| 23460 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 64 69 | ........<li><a.href="#builtin-di |
| 23480 | 76 45 78 61 63 74 22 3e 40 64 69 76 45 78 61 63 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | vExact">@divExact</a></li>...... |
| 234a0 | 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d 61 74 68 | ...<li><code>@import("std").math |
| 234c0 | 2e 64 69 76 54 72 75 6e 63 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c | .divTrunc</code></li>.......</ul |
| 234e0 | 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 65 6d 62 65 64 46 69 6c | >.......<h3.id="builtin-embedFil |
| 23500 | 65 22 3e 40 65 6d 62 65 64 46 69 6c 65 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 | e">@embedFile</h3>.......<pre><c |
| 23520 | 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 65 6d 62 65 64 46 69 6c 65 28 63 6f 6d 70 74 | ode.class="zig">@embedFile(compt |
| 23540 | 69 6d 65 20 70 61 74 68 3a 20 5b 5d 63 6f 6e 73 74 20 75 38 29 20 2d 26 67 74 3b 20 5b 58 5d 75 | ime.path:.[]const.u8).->.[X]u |
| 23560 | 38 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 | 8</code></pre>.......<p>.......T |
| 23580 | 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 61 20 63 6f 6d 70 69 6c 65 20 74 | his.function.returns.a.compile.t |
| 235a0 | 69 6d 65 20 63 6f 6e 73 74 61 6e 74 20 66 69 78 65 64 2d 73 69 7a 65 20 61 72 72 61 79 20 77 69 | ime.constant.fixed-size.array.wi |
| 235c0 | 74 68 20 6c 65 6e 67 74 68 0a 20 20 20 20 20 20 65 71 75 61 6c 20 74 6f 20 74 68 65 20 62 79 74 | th.length.......equal.to.the.byt |
| 235e0 | 65 20 63 6f 75 6e 74 20 6f 66 20 74 68 65 20 66 69 6c 65 20 67 69 76 65 6e 20 62 79 20 3c 63 6f | e.count.of.the.file.given.by.<co |
| 23600 | 64 65 3e 70 61 74 68 3c 2f 63 6f 64 65 3e 2e 20 54 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 | de>path</code>..The.contents.of. |
| 23620 | 74 68 65 20 61 72 72 61 79 0a 20 20 20 20 20 20 61 72 65 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 | the.array.......are.the.contents |
| 23640 | 20 6f 66 20 74 68 65 20 66 69 6c 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | .of.the.file........</p>.......< |
| 23660 | 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 70 61 74 68 3c 2f 63 6f 64 65 3e 20 69 73 20 61 62 | p>.......<code>path</code>.is.ab |
| 23680 | 73 6f 6c 75 74 65 20 6f 72 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e | solute.or.relative.to.the.curren |
| 236a0 | 74 20 66 69 6c 65 2c 20 6a 75 73 74 20 6c 69 6b 65 20 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 3c | t.file,.just.like.<code>@import< |
| 236c0 | 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 | /code>........</p>.......<p>See. |
| 236e0 | 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 | also:</p>.......<ul>.........<li |
| 23700 | 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 69 6d 70 6f 72 74 22 3e 40 69 6d 70 6f | ><a.href="#builtin-import">@impo |
| 23720 | 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 | rt</a></li>.......</ul>.......<h |
| 23740 | 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 65 6e 75 6d 54 61 67 4e 61 6d 65 22 3e 40 65 6e 75 6d | 3.id="builtin-enumTagName">@enum |
| 23760 | 54 61 67 4e 61 6d 65 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | TagName</h3>.......<pre><code.cl |
| 23780 | 61 73 73 3d 22 7a 69 67 22 3e 40 65 6e 75 6d 54 61 67 4e 61 6d 65 28 76 61 6c 75 65 3a 20 76 61 | ass="zig">@enumTagName(value:.va |
| 237a0 | 72 29 20 2d 26 67 74 3b 20 5b 5d 63 6f 6e 73 74 20 75 38 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e | r).->.[]const.u8</code></pre> |
| 237c0 | 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 6f 6e 76 65 72 74 73 20 61 6e 20 65 6e 75 | .......<p>.......Converts.an.enu |
| 237e0 | 6d 20 74 61 67 20 6e 61 6d 65 20 74 6f 20 61 20 73 6c 69 63 65 20 6f 66 20 62 79 74 65 73 2e 0a | m.tag.name.to.a.slice.of.bytes.. |
| 23800 | 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e | ......</p>.......<h3.id="builtin |
| 23820 | 2d 65 72 72 6f 72 4e 61 6d 65 22 3e 40 65 72 72 6f 72 4e 61 6d 65 3c 2f 68 33 3e 0a 20 20 20 20 | -errorName">@errorName</h3>..... |
| 23840 | 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 65 72 72 6f 72 4e | ..<pre><code.class="zig">@errorN |
| 23860 | 61 6d 65 28 65 72 72 3a 20 65 72 72 6f 72 29 20 2d 26 67 74 3b 20 5b 5d 75 38 3c 2f 63 6f 64 65 | ame(err:.error).->.[]u8</code |
| 23880 | 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e | ></pre>.......<p>.......This.fun |
| 238a0 | 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 73 74 72 69 6e 67 20 72 65 70 72 65 73 65 | ction.returns.the.string.represe |
| 238c0 | 6e 74 61 74 69 6f 6e 20 6f 66 20 61 6e 20 65 72 72 6f 72 2e 20 49 66 20 61 6e 20 65 72 72 6f 72 | ntation.of.an.error..If.an.error |
| 238e0 | 0a 20 20 20 20 20 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 | .......declaration.is:.......</p |
| 23900 | 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 65 | >.......<pre><code.class="zig">e |
| 23920 | 72 72 6f 72 20 4f 75 74 4f 66 4d 65 6d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 | rror.OutOfMem</code></pre>...... |
| 23940 | 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 6e 20 74 68 65 20 73 74 72 69 6e 67 20 72 65 70 72 65 | .<p>.......Then.the.string.repre |
| 23960 | 73 65 6e 74 61 74 69 6f 6e 20 69 73 20 3c 63 6f 64 65 3e 22 4f 75 74 4f 66 4d 65 6d 22 3c 2f 63 | sentation.is.<code>"OutOfMem"</c |
| 23980 | 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 | ode>........</p>.......<p>...... |
| 239a0 | 20 49 66 20 74 68 65 72 65 20 61 72 65 20 6e 6f 20 63 61 6c 6c 73 20 74 6f 20 3c 63 6f 64 65 3e | .If.there.are.no.calls.to.<code> |
| 239c0 | 40 65 72 72 6f 72 4e 61 6d 65 3c 2f 63 6f 64 65 3e 20 69 6e 20 61 6e 20 65 6e 74 69 72 65 20 61 | @errorName</code>.in.an.entire.a |
| 239e0 | 70 70 6c 69 63 61 74 69 6f 6e 2c 0a 20 20 20 20 20 20 6f 72 20 61 6c 6c 20 63 61 6c 6c 73 20 68 | pplication,.......or.all.calls.h |
| 23a00 | 61 76 65 20 61 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6b 6e 6f 77 6e 20 76 61 6c 75 65 20 66 | ave.a.compile-time.known.value.f |
| 23a20 | 6f 72 20 3c 63 6f 64 65 3e 65 72 72 3c 2f 63 6f 64 65 3e 2c 20 74 68 65 6e 20 6e 6f 0a 20 20 20 | or.<code>err</code>,.then.no.... |
| 23a40 | 20 20 20 65 72 72 6f 72 20 6e 61 6d 65 20 74 61 62 6c 65 20 77 69 6c 6c 20 62 65 20 67 65 6e 65 | ...error.name.table.will.be.gene |
| 23a60 | 72 61 74 65 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 | rated........</p>.......<h3.id=" |
| 23a80 | 62 75 69 6c 74 69 6e 2d 66 65 6e 63 65 22 3e 40 66 65 6e 63 65 3c 2f 68 33 3e 0a 20 20 20 20 20 | builtin-fence">@fence</h3>...... |
| 23aa0 | 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 66 65 6e 63 65 28 6f | .<pre><code.class="zig">@fence(o |
| 23ac0 | 72 64 65 72 3a 20 41 74 6f 6d 69 63 4f 72 64 65 72 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a | rder:.AtomicOrder)</code></pre>. |
| 23ae0 | 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 3c 63 6f 64 65 3e 66 65 6e 63 65 3c | ......<p>.......The.<code>fence< |
| 23b00 | 2f 63 6f 64 65 3e 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 75 73 65 64 20 74 6f 20 69 6e 74 72 6f | /code>.function.is.used.to.intro |
| 23b20 | 64 75 63 65 20 68 61 70 70 65 6e 73 2d 62 65 66 6f 72 65 20 65 64 67 65 73 20 62 65 74 77 65 65 | duce.happens-before.edges.betwee |
| 23b40 | 6e 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | n.operations........</p>.......< |
| 23b60 | 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 41 74 6f 6d 69 63 4f 72 64 65 72 3c 2f 63 6f 64 65 | p>.......<code>AtomicOrder</code |
| 23b80 | 3e 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 77 69 74 68 20 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 | >.can.be.found.with.<code>@impor |
| 23ba0 | 74 28 22 62 75 69 6c 74 69 6e 22 29 2e 41 74 6f 6d 69 63 4f 72 64 65 72 3c 2f 63 6f 64 65 3e 2e | t("builtin").AtomicOrder</code>. |
| 23bc0 | 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f | .......</p>.......<p>See.also:</ |
| 23be0 | 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 | p>.......<ul>.........<li><a.hre |
| 23c00 | 66 3d 22 23 63 6f 6d 70 69 6c 65 2d 76 61 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 20 56 | f="#compile-variables">Compile.V |
| 23c20 | 61 72 69 61 62 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 | ariables</a></li>.......</ul>... |
| 23c40 | 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 66 69 65 6c 64 50 61 72 65 6e 74 50 | ....<h3.id="builtin-fieldParentP |
| 23c60 | 74 72 22 3e 40 66 69 65 6c 64 50 61 72 65 6e 74 50 74 72 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c | tr">@fieldParentPtr</h3>.......< |
| 23c80 | 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 66 69 65 6c 64 50 61 72 65 | pre><code.class="zig">@fieldPare |
| 23ca0 | 6e 74 50 74 72 28 63 6f 6d 70 74 69 6d 65 20 50 61 72 65 6e 74 54 79 70 65 3a 20 74 79 70 65 2c | ntPtr(comptime.ParentType:.type, |
| 23cc0 | 20 63 6f 6d 70 74 69 6d 65 20 66 69 65 6c 64 5f 6e 61 6d 65 3a 20 5b 5d 63 6f 6e 73 74 20 75 38 | .comptime.field_name:.[]const.u8 |
| 23ce0 | 2c 0a 20 20 20 20 66 69 65 6c 64 5f 70 74 72 3a 20 26 61 6d 70 3b 54 29 20 2d 26 67 74 3b 20 26 | ,.....field_ptr:.&T).->.& |
| 23d00 | 61 6d 70 3b 50 61 72 65 6e 74 54 79 70 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 | amp;ParentType</code></pre>..... |
| 23d20 | 20 20 3c 70 3e 0a 20 20 20 20 20 20 47 69 76 65 6e 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 | ..<p>.......Given.a.pointer.to.a |
| 23d40 | 20 66 69 65 6c 64 2c 20 72 65 74 75 72 6e 73 20 74 68 65 20 62 61 73 65 20 70 6f 69 6e 74 65 72 | .field,.returns.the.base.pointer |
| 23d60 | 20 6f 66 20 61 20 73 74 72 75 63 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | .of.a.struct........</p>.......< |
| 23d80 | 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 66 72 61 6d 65 41 64 64 72 65 73 73 22 3e 40 66 72 | h3.id="builtin-frameAddress">@fr |
| 23da0 | 61 6d 65 41 64 64 72 65 73 73 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 | ameAddress</h3>.......<pre><code |
| 23dc0 | 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 66 72 61 6d 65 41 64 64 72 65 73 73 28 29 3c 2f 63 6f | .class="zig">@frameAddress()</co |
| 23de0 | 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 | de></pre>.......<p>.......This.f |
| 23e00 | 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 62 61 73 65 20 70 6f 69 6e 74 65 72 | unction.returns.the.base.pointer |
| 23e20 | 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 74 61 63 6b 20 66 72 61 6d 65 2e 0a 20 20 20 | .of.the.current.stack.frame..... |
| 23e40 | 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 69 6d 70 6c | ...</p>.......<p>.......The.impl |
| 23e60 | 69 63 61 74 69 6f 6e 73 20 6f 66 20 74 68 69 73 20 61 72 65 20 74 61 72 67 65 74 20 73 70 65 63 | ications.of.this.are.target.spec |
| 23e80 | 69 66 69 63 20 61 6e 64 20 6e 6f 74 20 63 6f 6e 73 69 73 74 65 6e 74 20 61 63 72 6f 73 73 20 61 | ific.and.not.consistent.across.a |
| 23ea0 | 6c 6c 0a 20 20 20 20 20 20 70 6c 61 74 66 6f 72 6d 73 2e 20 54 68 65 20 66 72 61 6d 65 20 61 64 | ll.......platforms..The.frame.ad |
| 23ec0 | 64 72 65 73 73 20 6d 61 79 20 6e 6f 74 20 62 65 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 72 65 | dress.may.not.be.available.in.re |
| 23ee0 | 6c 65 61 73 65 20 6d 6f 64 65 20 64 75 65 20 74 6f 0a 20 20 20 20 20 20 61 67 67 72 65 73 73 69 | lease.mode.due.to.......aggressi |
| 23f00 | 76 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 | ve.optimizations........</p>.... |
| 23f20 | 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6f 6e | ...<p>.......This.function.is.on |
| 23f40 | 6c 79 20 76 61 6c 69 64 20 77 69 74 68 69 6e 20 66 75 6e 63 74 69 6f 6e 20 73 63 6f 70 65 2e 0a | ly.valid.within.function.scope.. |
| 23f60 | 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e | ......</p>.......<h3.id="builtin |
| 23f80 | 2d 69 6d 70 6f 72 74 22 3e 40 69 6d 70 6f 72 74 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 | -import">@import</h3>.......<pre |
| 23fa0 | 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 69 6d 70 6f 72 74 28 63 6f 6d 70 74 | ><code.class="zig">@import(compt |
| 23fc0 | 69 6d 65 20 70 61 74 68 3a 20 5b 5d 75 38 29 20 2d 26 67 74 3b 20 28 6e 61 6d 65 73 70 61 63 65 | ime.path:.[]u8).->.(namespace |
| 23fe0 | 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 | )</code></pre>.......<p>.......T |
| 24000 | 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 73 20 61 20 7a 69 67 20 66 69 6c 65 20 63 6f | his.function.finds.a.zig.file.co |
| 24020 | 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 3c 63 6f 64 65 3e 70 61 74 68 3c 2f 63 6f 64 65 3e | rresponding.to.<code>path</code> |
| 24040 | 20 61 6e 64 20 69 6d 70 6f 72 74 73 20 61 6c 6c 20 74 68 65 0a 20 20 20 20 20 20 70 75 62 6c 69 | .and.imports.all.the.......publi |
| 24060 | 63 20 74 6f 70 20 6c 65 76 65 6c 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 69 6e 74 6f 20 74 68 | c.top.level.declarations.into.th |
| 24080 | 65 20 72 65 73 75 6c 74 69 6e 67 20 6e 61 6d 65 73 70 61 63 65 2e 0a 20 20 20 20 20 20 3c 2f 70 | e.resulting.namespace........</p |
| 240a0 | 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 70 61 74 68 3c 2f 63 6f | >.......<p>.......<code>path</co |
| 240c0 | 64 65 3e 20 63 61 6e 20 62 65 20 61 20 72 65 6c 61 74 69 76 65 20 6f 72 20 61 62 73 6f 6c 75 74 | de>.can.be.a.relative.or.absolut |
| 240e0 | 65 20 70 61 74 68 2c 20 6f 72 20 69 74 20 63 61 6e 20 62 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 | e.path,.or.it.can.be.the.name.of |
| 24100 | 20 61 20 70 61 63 6b 61 67 65 2e 0a 20 20 20 20 20 20 49 66 20 69 74 20 69 73 20 61 20 72 65 6c | .a.package........If.it.is.a.rel |
| 24120 | 61 74 69 76 65 20 70 61 74 68 2c 20 69 74 20 69 73 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 | ative.path,.it.is.relative.to.th |
| 24140 | 65 20 66 69 6c 65 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 3c 63 6f 64 65 3e 40 | e.file.that.contains.the.<code>@ |
| 24160 | 69 6d 70 6f 72 74 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c | import</code>.......function.cal |
| 24180 | 6c 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 | l........</p>.......<p>.......Th |
| 241a0 | 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 61 63 6b 61 67 65 73 20 61 72 65 20 61 6c 77 61 79 73 20 | e.following.packages.are.always. |
| 241c0 | 61 76 61 69 6c 61 62 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e | available:.......</p>.......<ul> |
| 241e0 | 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 73 74 64 22 | .........<li><code>@import("std" |
| 24200 | 29 3c 2f 63 6f 64 65 3e 20 2d 20 5a 69 67 20 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 3c | )</code>.-.Zig.Standard.Library< |
| 24220 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 | /li>.........<li><code>@import(" |
| 24240 | 62 75 69 6c 74 69 6e 22 29 3c 2f 63 6f 64 65 3e 20 2d 20 43 6f 6d 70 69 6c 65 72 2d 70 72 6f 76 | builtin")</code>.-.Compiler-prov |
| 24260 | 69 64 65 64 20 74 79 70 65 73 20 61 6e 64 20 76 61 72 69 61 62 6c 65 73 3c 2f 6c 69 3e 0a 20 20 | ided.types.and.variables</li>... |
| 24280 | 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e | ....</ul>.......<p>See.also:</p> |
| 242a0 | 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d | .......<ul>.........<li><a.href= |
| 242c0 | 22 23 63 6f 6d 70 69 6c 65 2d 76 61 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 20 56 61 72 | "#compile-variables">Compile.Var |
| 242e0 | 69 61 62 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 | iables</a></li>.........<li><a.h |
| 24300 | 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 65 6d 62 65 64 46 69 6c 65 22 3e 40 65 6d 62 65 64 46 | ref="#builtin-embedFile">@embedF |
| 24320 | 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c | ile</a></li>.......</ul>.......< |
| 24340 | 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 69 6e 6c 69 6e 65 43 61 6c 6c 22 3e 40 69 6e 6c 69 | h3.id="builtin-inlineCall">@inli |
| 24360 | 6e 65 43 61 6c 6c 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 | neCall</h3>.......<pre><code.cla |
| 24380 | 73 73 3d 22 7a 69 67 22 3e 40 69 6e 6c 69 6e 65 43 61 6c 6c 28 66 75 6e 63 74 69 6f 6e 3a 20 58 | ss="zig">@inlineCall(function:.X |
| 243a0 | 2c 20 61 72 67 73 3a 20 2e 2e 2e 29 20 2d 26 67 74 3b 20 59 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 | ,.args:....).->.Y</code></pre |
| 243c0 | 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 63 61 6c 6c 73 20 61 20 66 | >.......<p>.......This.calls.a.f |
| 243e0 | 75 6e 63 74 69 6f 6e 2c 20 69 6e 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 74 68 61 74 20 69 6e | unction,.in.the.same.way.that.in |
| 24400 | 76 6f 6b 69 6e 67 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 77 69 74 68 20 70 61 72 65 6e 74 | voking.an.expression.with.parent |
| 24420 | 68 65 73 65 73 20 64 6f 65 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 | heses.does:.......</p>.......<pr |
| 24440 | 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 | e><code.class="zig">const.assert |
| 24460 | 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a | .=.@import("std").debug.assert;. |
| 24480 | 74 65 73 74 20 22 69 6e 6c 69 6e 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 22 20 7b 0a 20 20 | test."inline.function.call".{... |
| 244a0 | 20 20 61 73 73 65 72 74 28 40 69 6e 6c 69 6e 65 43 61 6c 6c 28 61 64 64 2c 20 33 2c 20 39 29 20 | ..assert(@inlineCall(add,.3,.9). |
| 244c0 | 3d 3d 20 31 32 29 3b 0a 7d 0a 0a 66 6e 20 61 64 64 28 61 3a 20 69 33 32 2c 20 62 3a 20 69 33 32 | ==.12);.}..fn.add(a:.i32,.b:.i32 |
| 244e0 | 29 20 2d 26 67 74 3b 20 69 33 32 20 7b 20 61 20 2b 20 62 20 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 | ).->.i32.{.a.+.b.}</code></pr |
| 24500 | 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 55 6e 6c 69 6b 65 20 61 20 6e 6f 72 6d | e>.......<p>.......Unlike.a.norm |
| 24520 | 61 6c 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 2c 20 68 6f 77 65 76 65 72 2c 20 3c 63 6f 64 65 | al.function.call,.however,.<code |
| 24540 | 3e 40 69 6e 6c 69 6e 65 43 61 6c 6c 3c 2f 63 6f 64 65 3e 20 67 75 61 72 61 6e 74 65 65 73 20 74 | >@inlineCall</code>.guarantees.t |
| 24560 | 68 61 74 20 74 68 65 20 63 61 6c 6c 0a 20 20 20 20 20 20 77 69 6c 6c 20 62 65 20 69 6e 6c 69 6e | hat.the.call.......will.be.inlin |
| 24580 | 65 64 2e 20 49 66 20 74 68 65 20 63 61 6c 6c 20 63 61 6e 6e 6f 74 20 62 65 20 69 6e 6c 69 6e 65 | ed..If.the.call.cannot.be.inline |
| 245a0 | 64 2c 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 69 73 20 65 6d 69 74 74 65 64 2e 0a 20 | d,.a.compile.error.is.emitted... |
| 245c0 | 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d | .....</p>.......<h3.id="builtin- |
| 245e0 | 69 6e 74 54 6f 50 74 72 22 3e 40 69 6e 74 54 6f 50 74 72 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c | intToPtr">@intToPtr</h3>.......< |
| 24600 | 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 69 6e 74 54 6f 50 74 72 28 | pre><code.class="zig">@intToPtr( |
| 24620 | 63 6f 6d 70 74 69 6d 65 20 44 65 73 74 54 79 70 65 3a 20 74 79 70 65 2c 20 69 6e 74 3a 20 75 73 | comptime.DestType:.type,.int:.us |
| 24640 | 69 7a 65 29 20 2d 26 67 74 3b 20 44 65 73 74 54 79 70 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e | ize).->.DestType</code></pre> |
| 24660 | 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 6f 6e 76 65 72 74 73 20 61 6e 20 69 6e 74 | .......<p>.......Converts.an.int |
| 24680 | 65 67 65 72 20 74 6f 20 61 20 70 6f 69 6e 74 65 72 2e 20 54 6f 20 63 6f 6e 76 65 72 74 20 74 68 | eger.to.a.pointer..To.convert.th |
| 246a0 | 65 20 6f 74 68 65 72 20 77 61 79 2c 20 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 | e.other.way,.use.<a.href="#built |
| 246c0 | 69 6e 2d 70 74 72 54 6f 49 6e 74 22 3e 40 70 74 72 54 6f 49 6e 74 3c 2f 61 3e 2e 0a 20 20 20 20 | in-ptrToInt">@ptrToInt</a>...... |
| 246e0 | 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 49 6e 74 | ..</p>.......<h3.id="builtin-Int |
| 24700 | 54 79 70 65 22 3e 40 49 6e 74 54 79 70 65 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c | Type">@IntType</h3>.......<pre>< |
| 24720 | 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 49 6e 74 54 79 70 65 28 63 6f 6d 70 74 69 | code.class="zig">@IntType(compti |
| 24740 | 6d 65 20 69 73 5f 73 69 67 6e 65 64 3a 20 62 6f 6f 6c 2c 20 63 6f 6d 70 74 69 6d 65 20 62 69 74 | me.is_signed:.bool,.comptime.bit |
| 24760 | 5f 63 6f 75 6e 74 3a 20 75 38 29 20 2d 26 67 74 3b 20 74 79 70 65 3c 2f 63 6f 64 65 3e 3c 2f 70 | _count:.u8).->.type</code></p |
| 24780 | 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f | re>.......<p>.......This.functio |
| 247a0 | 6e 20 72 65 74 75 72 6e 73 20 61 6e 20 69 6e 74 65 67 65 72 20 74 79 70 65 20 77 69 74 68 20 74 | n.returns.an.integer.type.with.t |
| 247c0 | 68 65 20 67 69 76 65 6e 20 73 69 67 6e 6e 65 73 73 20 61 6e 64 20 62 69 74 20 63 6f 75 6e 74 2e | he.given.signness.and.bit.count. |
| 247e0 | 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 | .......</p>.......<h3.id="builti |
| 24800 | 6e 2d 6d 61 78 56 61 6c 75 65 22 3e 40 6d 61 78 56 61 6c 75 65 3c 2f 68 33 3e 0a 20 20 20 20 20 | n-maxValue">@maxValue</h3>...... |
| 24820 | 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 6d 61 78 56 61 6c 75 | .<pre><code.class="zig">@maxValu |
| 24840 | 65 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 29 20 2d 26 67 74 3b 20 28 6e 75 6d 62 65 | e(comptime.T:.type).->.(numbe |
| 24860 | 72 20 6c 69 74 65 72 61 6c 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 | r.literal)</code></pre>.......<p |
| 24880 | 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 | >.......This.function.returns.th |
| 248a0 | 65 20 6d 61 78 69 6d 75 6d 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 69 6e 74 65 67 65 72 20 74 | e.maximum.value.of.the.integer.t |
| 248c0 | 79 70 65 20 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 | ype.<code>T</code>........</p>.. |
| 248e0 | 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 20 63 | .....<p>.......The.result.is.a.c |
| 24900 | 6f 6d 70 69 6c 65 20 74 69 6d 65 20 63 6f 6e 73 74 61 6e 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e | ompile.time.constant........</p> |
| 24920 | 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 6d 65 6d 62 65 72 43 6f 75 | .......<h3.id="builtin-memberCou |
| 24940 | 6e 74 22 3e 40 6d 65 6d 62 65 72 43 6f 75 6e 74 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 | nt">@memberCount</h3>.......<pre |
| 24960 | 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 6d 65 6d 62 65 72 43 6f 75 6e 74 28 | ><code.class="zig">@memberCount( |
| 24980 | 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 29 20 2d 26 67 74 3b 20 28 6e 75 6d 62 65 72 20 | comptime.T:.type).->.(number. |
| 249a0 | 6c 69 74 65 72 61 6c 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a | literal)</code></pre>.......<p>. |
| 249c0 | 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 | ......This.function.returns.the. |
| 249e0 | 6e 75 6d 62 65 72 20 6f 66 20 65 6e 75 6d 20 76 61 6c 75 65 73 20 69 6e 20 61 6e 20 65 6e 75 6d | number.of.enum.values.in.an.enum |
| 24a00 | 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 | .type........</p>.......<p>..... |
| 24a20 | 20 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 63 | ..The.result.is.a.compile.time.c |
| 24a40 | 6f 6e 73 74 61 6e 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 | onstant........</p>.......<h3.id |
| 24a60 | 3d 22 62 75 69 6c 74 69 6e 2d 6d 65 6d 63 70 79 22 3e 40 6d 65 6d 63 70 79 3c 2f 68 33 3e 0a 20 | ="builtin-memcpy">@memcpy</h3>.. |
| 24a80 | 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 6d 65 6d | .....<pre><code.class="zig">@mem |
| 24aa0 | 63 70 79 28 6e 6f 61 6c 69 61 73 20 64 65 73 74 3a 20 26 61 6d 70 3b 75 38 2c 20 6e 6f 61 6c 69 | cpy(noalias.dest:.&u8,.noali |
| 24ac0 | 61 73 20 73 6f 75 72 63 65 3a 20 26 61 6d 70 3b 63 6f 6e 73 74 20 75 38 2c 20 62 79 74 65 5f 63 | as.source:.&const.u8,.byte_c |
| 24ae0 | 6f 75 6e 74 3a 20 75 73 69 7a 65 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 | ount:.usize)</code></pre>....... |
| 24b00 | 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 69 65 73 20 62 | <p>.......This.function.copies.b |
| 24b20 | 79 74 65 73 20 66 72 6f 6d 20 6f 6e 65 20 72 65 67 69 6f 6e 20 6f 66 20 6d 65 6d 6f 72 79 20 74 | ytes.from.one.region.of.memory.t |
| 24b40 | 6f 20 61 6e 6f 74 68 65 72 2e 20 3c 63 6f 64 65 3e 64 65 73 74 3c 2f 63 6f 64 65 3e 20 61 6e 64 | o.another..<code>dest</code>.and |
| 24b60 | 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 73 6f 75 72 63 65 3c 2f 63 6f 64 65 3e 20 61 72 65 20 62 | .......<code>source</code>.are.b |
| 24b80 | 6f 74 68 20 70 6f 69 6e 74 65 72 73 20 61 6e 64 20 6d 75 73 74 20 6e 6f 74 20 6f 76 65 72 6c 61 | oth.pointers.and.must.not.overla |
| 24ba0 | 70 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 | p........</p>.......<p>.......Th |
| 24bc0 | 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 61 20 6c 6f 77 20 6c 65 76 65 6c 20 69 6e 74 72 69 | is.function.is.a.low.level.intri |
| 24be0 | 6e 73 69 63 20 77 69 74 68 20 6e 6f 20 73 61 66 65 74 79 20 6d 65 63 68 61 6e 69 73 6d 73 2e 20 | nsic.with.no.safety.mechanisms.. |
| 24c00 | 4d 6f 73 74 20 63 6f 64 65 0a 20 20 20 20 20 20 73 68 6f 75 6c 64 20 6e 6f 74 20 75 73 65 20 74 | Most.code.......should.not.use.t |
| 24c20 | 68 69 73 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 73 74 65 61 64 20 75 73 69 6e 67 20 73 6f 6d 65 | his.function,.instead.using.some |
| 24c40 | 74 68 69 6e 67 20 6c 69 6b 65 20 74 68 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 | thing.like.this:.......</p>..... |
| 24c60 | 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 6f 72 20 28 73 6f | ..<pre><code.class="zig">for.(so |
| 24c80 | 75 72 63 65 5b 30 2e 2e 2e 62 79 74 65 5f 63 6f 75 6e 74 5d 29 20 7c 62 2c 20 69 7c 20 64 65 73 | urce[0...byte_count]).|b,.i|.des |
| 24ca0 | 74 5b 69 5d 20 3d 20 62 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e | t[i].=.b;</code></pre>.......<p> |
| 24cc0 | 0a 20 20 20 20 20 20 54 68 65 20 6f 70 74 69 6d 69 7a 65 72 20 69 73 20 69 6e 74 65 6c 6c 69 67 | .......The.optimizer.is.intellig |
| 24ce0 | 65 6e 74 20 65 6e 6f 75 67 68 20 74 6f 20 74 75 72 6e 20 74 68 65 20 61 62 6f 76 65 20 73 6e 69 | ent.enough.to.turn.the.above.sni |
| 24d00 | 70 70 65 74 20 69 6e 74 6f 20 61 20 6d 65 6d 63 70 79 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 | ppet.into.a.memcpy........</p>.. |
| 24d20 | 20 20 20 20 20 3c 70 3e 54 68 65 72 65 20 69 73 20 61 6c 73 6f 20 61 20 73 74 61 6e 64 61 72 64 | .....<p>There.is.also.a.standard |
| 24d40 | 20 6c 69 62 72 61 72 79 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 74 68 69 73 3a 3c 2f 70 3e 0a | .library.function.for.this:</p>. |
| 24d60 | 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e | ......<pre><code.class="zig">con |
| 24d80 | 73 74 20 6d 65 6d 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d 65 6d 3b 0a 6d 65 6d | st.mem.=.@import("std").mem;.mem |
| 24da0 | 2e 63 6f 70 79 28 75 38 2c 20 64 65 73 74 5b 30 2e 2e 2e 62 79 74 65 5f 63 6f 75 6e 74 5d 2c 20 | .copy(u8,.dest[0...byte_count],. |
| 24dc0 | 73 6f 75 72 63 65 5b 30 2e 2e 2e 62 79 74 65 5f 63 6f 75 6e 74 5d 29 3b 3c 2f 63 6f 64 65 3e 3c | source[0...byte_count]);</code>< |
| 24de0 | 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 6d 65 6d 73 | /pre>.......<h3.id="builtin-mems |
| 24e00 | 65 74 22 3e 40 6d 65 6d 73 65 74 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 | et">@memset</h3>.......<pre><cod |
| 24e20 | 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 6d 65 6d 73 65 74 28 64 65 73 74 3a 20 26 61 6d 70 | e.class="zig">@memset(dest:.& |
| 24e40 | 3b 75 38 2c 20 63 3a 20 75 38 2c 20 62 79 74 65 5f 63 6f 75 6e 74 3a 20 75 73 69 7a 65 29 3c 2f | ;u8,.c:.u8,.byte_count:.usize)</ |
| 24e60 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 | code></pre>.......<p>.......This |
| 24e80 | 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 20 61 20 72 65 67 69 6f 6e 20 6f 66 20 6d 65 6d 6f 72 | .function.sets.a.region.of.memor |
| 24ea0 | 79 20 74 6f 20 3c 63 6f 64 65 3e 63 3c 2f 63 6f 64 65 3e 2e 20 3c 63 6f 64 65 3e 64 65 73 74 3c | y.to.<code>c</code>..<code>dest< |
| 24ec0 | 2f 63 6f 64 65 3e 20 69 73 20 61 20 70 6f 69 6e 74 65 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a | /code>.is.a.pointer........</p>. |
| 24ee0 | 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 | ......<p>.......This.function.is |
| 24f00 | 20 61 20 6c 6f 77 20 6c 65 76 65 6c 20 69 6e 74 72 69 6e 73 69 63 20 77 69 74 68 20 6e 6f 20 73 | .a.low.level.intrinsic.with.no.s |
| 24f20 | 61 66 65 74 79 20 6d 65 63 68 61 6e 69 73 6d 73 2e 20 4d 6f 73 74 0a 20 20 20 20 20 20 63 6f 64 | afety.mechanisms..Most.......cod |
| 24f40 | 65 20 73 68 6f 75 6c 64 20 6e 6f 74 20 75 73 65 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2c 20 | e.should.not.use.this.function,. |
| 24f60 | 69 6e 73 74 65 61 64 20 75 73 69 6e 67 20 73 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65 20 74 68 69 | instead.using.something.like.thi |
| 24f80 | 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 | s:.......</p>.......<pre><code.c |
| 24fa0 | 6c 61 73 73 3d 22 7a 69 67 22 3e 66 6f 72 20 28 64 65 73 74 5b 30 2e 2e 2e 62 79 74 65 5f 63 6f | lass="zig">for.(dest[0...byte_co |
| 24fc0 | 75 6e 74 5d 29 20 7c 2a 62 7c 20 2a 62 20 3d 20 63 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a | unt]).|*b|.*b.=.c;</code></pre>. |
| 24fe0 | 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 6f 70 74 69 6d 69 7a 65 72 20 69 73 | ......<p>.......The.optimizer.is |
| 25000 | 20 69 6e 74 65 6c 6c 69 67 65 6e 74 20 65 6e 6f 75 67 68 20 74 6f 20 74 75 72 6e 20 74 68 65 20 | .intelligent.enough.to.turn.the. |
| 25020 | 61 62 6f 76 65 20 73 6e 69 70 70 65 74 20 69 6e 74 6f 20 61 20 6d 65 6d 73 65 74 2e 0a 20 20 20 | above.snippet.into.a.memset..... |
| 25040 | 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 68 65 72 65 20 69 73 20 61 6c 73 6f 20 61 | ...</p>.......<p>There.is.also.a |
| 25060 | 20 73 74 61 6e 64 61 72 64 20 6c 69 62 72 61 72 79 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 74 | .standard.library.function.for.t |
| 25080 | 68 69 73 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 63 6f 6e 73 74 20 | his:</p>.......<pre><code>const. |
| 250a0 | 6d 65 6d 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d 65 6d 3b 0a 6d 65 6d 2e 73 65 | mem.=.@import("std").mem;.mem.se |
| 250c0 | 74 28 75 38 2c 20 64 65 73 74 2c 20 63 29 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 | t(u8,.dest,.c);</code></pre>.... |
| 250e0 | 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 6d 69 6e 56 61 6c 75 65 22 3e 40 6d 69 | ...<h3.id="builtin-minValue">@mi |
| 25100 | 6e 56 61 6c 75 65 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 | nValue</h3>.......<pre><code.cla |
| 25120 | 73 73 3d 22 7a 69 67 22 3e 40 6d 69 6e 56 61 6c 75 65 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 | ss="zig">@minValue(comptime.T:.t |
| 25140 | 79 70 65 29 20 2d 26 67 74 3b 20 28 6e 75 6d 62 65 72 20 6c 69 74 65 72 61 6c 29 3c 2f 63 6f 64 | ype).->.(number.literal)</cod |
| 25160 | 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 | e></pre>.......<p>.......This.fu |
| 25180 | 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 6d 69 6e 69 6d 75 6d 20 76 61 6c 75 65 | nction.returns.the.minimum.value |
| 251a0 | 20 6f 66 20 74 68 65 20 69 6e 74 65 67 65 72 20 74 79 70 65 20 54 2e 0a 20 20 20 20 20 20 3c 2f | .of.the.integer.type.T........</ |
| 251c0 | 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 | p>.......<p>.......The.result.is |
| 251e0 | 20 61 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 63 6f 6e 73 74 61 6e 74 2e 0a 20 20 20 20 20 20 | .a.compile.time.constant........ |
| 25200 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 6d 6f 64 22 3e | </p>.......<h3.id="builtin-mod"> |
| 25220 | 40 6d 6f 64 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 | @mod</h3>.......<pre><code.class |
| 25240 | 3d 22 7a 69 67 22 3e 40 6d 6f 64 28 6e 75 6d 65 72 61 74 6f 72 3a 20 54 2c 20 64 65 6e 6f 6d 69 | ="zig">@mod(numerator:.T,.denomi |
| 25260 | 6e 61 74 6f 72 3a 20 54 29 20 2d 26 67 74 3b 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 | nator:.T).->.T</code></pre>.. |
| 25280 | 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4d 6f 64 75 6c 75 73 20 64 69 76 69 73 69 6f 6e 2e | .....<p>.......Modulus.division. |
| 252a0 | 20 46 6f 72 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 73 20 74 68 69 73 20 69 73 20 74 | .For.unsigned.integers.this.is.t |
| 252c0 | 68 65 20 73 61 6d 65 20 61 73 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 6e 75 6d 65 72 61 74 6f 72 | he.same.as.......<code>numerator |
| 252e0 | 20 25 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 3c 2f 63 6f 64 65 3e 2e 20 43 61 6c 6c 65 72 20 67 75 | .%.denominator</code>..Caller.gu |
| 25300 | 61 72 61 6e 74 65 65 73 20 3c 63 6f 64 65 3e 64 65 6e 6f 6d 69 6e 61 74 6f 72 20 26 67 74 3b 20 | arantees.<code>denominator.>. |
| 25320 | 30 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a | 0</code>........</p>.......<ul>. |
| 25340 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 6d 6f 64 28 2d 35 2c 20 33 29 20 3d 3d | ........<li><code>@mod(-5,.3).== |
| 25360 | 20 31 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 | .1</code></li>.........<li><code |
| 25380 | 3e 40 64 69 76 46 6c 6f 6f 72 28 61 2c 20 62 29 20 2b 20 40 6d 6f 64 28 61 2c 20 62 29 20 3d 3d | >@divFloor(a,.b).+.@mod(a,.b).== |
| 253a0 | 20 61 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 | .a</code></li>.......</ul>...... |
| 253c0 | 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 | .<p>See.also:</p>.......<ul>.... |
| 253e0 | 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 72 65 6d 22 3e | .....<li><a.href="#builtin-rem"> |
| 25400 | 40 72 65 6d 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e | @rem</a></li>.........<li><code> |
| 25420 | 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d 61 74 68 2e 6d 6f 64 3c 2f 63 6f 64 65 3e 3c 2f | @import("std").math.mod</code></ |
| 25440 | 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 | li>.......</ul>.......<h3.id="bu |
| 25460 | 69 6c 74 69 6e 2d 6d 75 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 6d 75 6c 57 69 74 68 4f | iltin-mulWithOverflow">@mulWithO |
| 25480 | 76 65 72 66 6c 6f 77 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | verflow</h3>.......<pre><code.cl |
| 254a0 | 61 73 73 3d 22 7a 69 67 22 3e 40 6d 75 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 28 63 6f 6d 70 74 | ass="zig">@mulWithOverflow(compt |
| 254c0 | 69 6d 65 20 54 3a 20 74 79 70 65 2c 20 61 3a 20 54 2c 20 62 3a 20 54 2c 20 72 65 73 75 6c 74 3a | ime.T:.type,.a:.T,.b:.T,.result: |
| 254e0 | 20 26 61 6d 70 3b 54 29 20 2d 26 67 74 3b 20 62 6f 6f 6c 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e | .&T).->.bool</code></pre> |
| 25500 | 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 50 65 72 66 6f 72 6d 73 20 3c 63 6f 64 65 3e | .......<p>.......Performs.<code> |
| 25520 | 2a 72 65 73 75 6c 74 20 3d 20 61 20 2a 20 62 3c 2f 63 6f 64 65 3e 2e 20 49 66 20 6f 76 65 72 66 | *result.=.a.*.b</code>..If.overf |
| 25540 | 6c 6f 77 20 6f 72 20 75 6e 64 65 72 66 6c 6f 77 20 6f 63 63 75 72 73 2c 0a 20 20 20 20 20 20 73 | low.or.underflow.occurs,.......s |
| 25560 | 74 6f 72 65 73 20 74 68 65 20 6f 76 65 72 66 6c 6f 77 65 64 20 62 69 74 73 20 69 6e 20 3c 63 6f | tores.the.overflowed.bits.in.<co |
| 25580 | 64 65 3e 72 65 73 75 6c 74 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 72 65 74 75 72 6e 73 20 3c 63 6f | de>result</code>.and.returns.<co |
| 255a0 | 64 65 3e 74 72 75 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 49 66 20 6e 6f 20 6f 76 65 72 | de>true</code>........If.no.over |
| 255c0 | 66 6c 6f 77 20 6f 72 20 75 6e 64 65 72 66 6c 6f 77 20 6f 63 63 75 72 73 2c 20 72 65 74 75 72 6e | flow.or.underflow.occurs,.return |
| 255e0 | 73 20 3c 63 6f 64 65 3e 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e | s.<code>false</code>........</p> |
| 25600 | 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 6f 66 66 73 65 74 4f 66 22 | .......<h3.id="builtin-offsetOf" |
| 25620 | 3e 40 6f 66 66 73 65 74 4f 66 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 | >@offsetOf</h3>.......<pre><code |
| 25640 | 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 6f 66 66 73 65 74 4f 66 28 63 6f 6d 70 74 69 6d 65 20 | .class="zig">@offsetOf(comptime. |
| 25660 | 54 3a 20 74 79 70 65 2c 20 63 6f 6d 70 74 69 6d 65 20 66 69 65 6c 64 5f 6e 61 6d 65 3a 20 5b 5d | T:.type,.comptime.field_name:.[] |
| 25680 | 20 63 6f 6e 73 74 20 75 38 29 20 2d 26 67 74 3b 20 28 6e 75 6d 62 65 72 20 6c 69 74 65 72 61 6c | .const.u8).->.(number.literal |
| 256a0 | 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 | )</code></pre>.......<p>.......T |
| 256c0 | 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 62 79 74 65 20 6f 66 | his.function.returns.the.byte.of |
| 256e0 | 66 73 65 74 20 6f 66 20 61 20 66 69 65 6c 64 20 72 65 6c 61 74 69 76 65 20 74 6f 20 69 74 73 20 | fset.of.a.field.relative.to.its. |
| 25700 | 63 6f 6e 74 61 69 6e 69 6e 67 20 73 74 72 75 63 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 | containing.struct........</p>... |
| 25720 | 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 4f 70 61 71 75 65 54 79 70 65 22 3e | ....<h3.id="builtin-OpaqueType"> |
| 25740 | 40 4f 70 61 71 75 65 54 79 70 65 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 | @OpaqueType</h3>.......<pre><cod |
| 25760 | 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 4f 70 61 71 75 65 54 79 70 65 28 29 20 2d 26 67 74 | e.class="zig">@OpaqueType().-> |
| 25780 | 3b 20 74 79 70 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 | ;.type</code></pre>.......<p>... |
| 257a0 | 20 20 20 20 43 72 65 61 74 65 73 20 61 20 6e 65 77 20 74 79 70 65 20 77 69 74 68 20 61 6e 20 75 | ....Creates.a.new.type.with.an.u |
| 257c0 | 6e 6b 6e 6f 77 6e 20 73 69 7a 65 20 61 6e 64 20 61 6c 69 67 6e 6d 65 6e 74 2e 0a 20 20 20 20 20 | nknown.size.and.alignment....... |
| 257e0 | 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 69 73 20 74 79 | .</p>.......<p>.......This.is.ty |
| 25800 | 70 69 63 61 6c 6c 79 20 75 73 65 64 20 66 6f 72 20 74 79 70 65 20 73 61 66 65 74 79 20 77 68 65 | pically.used.for.type.safety.whe |
| 25820 | 6e 20 69 6e 74 65 72 61 63 74 69 6e 67 20 77 69 74 68 20 43 20 63 6f 64 65 20 74 68 61 74 20 64 | n.interacting.with.C.code.that.d |
| 25840 | 6f 65 73 20 6e 6f 74 20 65 78 70 6f 73 65 20 73 74 72 75 63 74 20 64 65 74 61 69 6c 73 2e 0a 20 | oes.not.expose.struct.details... |
| 25860 | 20 20 20 20 20 45 78 61 6d 70 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | .....Example:.......</p>.......< |
| 25880 | 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 44 65 72 70 | pre><code.class="zig">const.Derp |
| 258a0 | 20 3d 20 40 4f 70 61 71 75 65 54 79 70 65 28 29 3b 0a 63 6f 6e 73 74 20 57 61 74 20 3d 20 40 4f | .=.@OpaqueType();.const.Wat.=.@O |
| 258c0 | 70 61 71 75 65 54 79 70 65 28 29 3b 0a 0a 65 78 74 65 72 6e 20 66 6e 20 62 61 72 28 64 3a 20 26 | paqueType();..extern.fn.bar(d:.& |
| 258e0 | 61 6d 70 3b 44 65 72 70 29 3b 0a 65 78 70 6f 72 74 20 66 6e 20 66 6f 6f 28 77 3a 20 26 61 6d 70 | amp;Derp);.export.fn.foo(w:.& |
| 25900 | 3b 57 61 74 29 20 7b 0a 20 20 20 20 62 61 72 28 77 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 | ;Wat).{.....bar(w);.}</code></pr |
| 25920 | 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 | e>.......<pre><code.class="sh">$ |
| 25940 | 20 2e 2f 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 74 65 73 74 2e 7a 69 67 0a 74 65 73 74 2e 7a | ../zig.build-obj.test.zig.test.z |
| 25960 | 69 67 3a 35 3a 39 3a 20 65 72 72 6f 72 3a 20 65 78 70 65 63 74 65 64 20 74 79 70 65 20 27 26 61 | ig:5:9:.error:.expected.type.'&a |
| 25980 | 6d 70 3b 44 65 72 70 27 2c 20 66 6f 75 6e 64 20 27 26 61 6d 70 3b 57 61 74 27 0a 20 20 20 20 62 | mp;Derp',.found.'&Wat'.....b |
| 259a0 | 61 72 28 77 29 3b 0a 20 20 20 20 20 20 20 20 5e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 | ar(w);.........^</code></pre>... |
| 259c0 | 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 70 61 6e 69 63 22 3e 40 70 61 6e 69 | ....<h3.id="builtin-panic">@pani |
| 259e0 | 63 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a | c</h3>.......<pre><code.class="z |
| 25a00 | 69 67 22 3e 40 70 61 6e 69 63 28 6d 65 73 73 61 67 65 3a 20 5b 5d 63 6f 6e 73 74 20 75 38 29 20 | ig">@panic(message:.[]const.u8). |
| 25a20 | 2d 26 67 74 3b 20 6e 6f 72 65 74 75 72 6e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 | ->.noreturn</code></pre>..... |
| 25a40 | 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 76 6f 6b 65 73 20 74 68 65 20 70 61 6e 69 63 20 68 61 | ..<p>.......Invokes.the.panic.ha |
| 25a60 | 6e 64 6c 65 72 20 66 75 6e 63 74 69 6f 6e 2e 20 42 79 20 64 65 66 61 75 6c 74 20 74 68 65 20 70 | ndler.function..By.default.the.p |
| 25a80 | 61 6e 69 63 20 68 61 6e 64 6c 65 72 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 63 61 6c 6c | anic.handler.function.......call |
| 25aa0 | 73 20 74 68 65 20 70 75 62 6c 69 63 20 3c 63 6f 64 65 3e 70 61 6e 69 63 3c 2f 63 6f 64 65 3e 20 | s.the.public.<code>panic</code>. |
| 25ac0 | 66 75 6e 63 74 69 6f 6e 20 65 78 70 6f 73 65 64 20 69 6e 20 74 68 65 20 72 6f 6f 74 20 73 6f 75 | function.exposed.in.the.root.sou |
| 25ae0 | 72 63 65 20 66 69 6c 65 2c 20 6f 72 0a 20 20 20 20 20 20 69 66 20 74 68 65 72 65 20 69 73 20 6e | rce.file,.or.......if.there.is.n |
| 25b00 | 6f 74 20 6f 6e 65 20 73 70 65 63 69 66 69 65 64 2c 20 69 6e 76 6f 6b 65 73 20 74 68 65 20 6f 6e | ot.one.specified,.invokes.the.on |
| 25b20 | 65 20 70 72 6f 76 69 64 65 64 20 69 6e 20 3c 63 6f 64 65 3e 73 74 64 2f 73 70 65 63 69 61 6c 2f | e.provided.in.<code>std/special/ |
| 25b40 | 70 61 6e 69 63 2e 7a 69 67 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 | panic.zig</code>........</p>.... |
| 25b60 | 20 20 20 3c 70 3e 47 65 6e 65 72 61 6c 6c 79 20 69 74 20 69 73 20 62 65 74 74 65 72 20 74 6f 20 | ...<p>Generally.it.is.better.to. |
| 25b80 | 75 73 65 20 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 75 67 2e 70 | use.<code>@import("std").debug.p |
| 25ba0 | 61 6e 69 63 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 48 6f 77 65 76 65 72 2c 20 3c 63 6f 64 | anic</code>........However,.<cod |
| 25bc0 | 65 3e 40 70 61 6e 69 63 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 75 73 65 66 75 6c 20 66 6f | e>@panic</code>.can.be.useful.fo |
| 25be0 | 72 20 32 20 73 63 65 6e 61 72 69 6f 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 | r.2.scenarios:.......</p>....... |
| 25c00 | 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 46 72 6f 6d 20 6c 69 62 72 61 72 79 20 63 6f | <ul>.........<li>From.library.co |
| 25c20 | 64 65 2c 20 63 61 6c 6c 69 6e 67 20 74 68 65 20 70 72 6f 67 72 61 6d 6d 65 72 27 73 20 70 61 6e | de,.calling.the.programmer's.pan |
| 25c40 | 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 66 20 74 68 65 79 20 65 78 70 6f 73 65 64 20 6f 6e 65 20 | ic.function.if.they.exposed.one. |
| 25c60 | 69 6e 20 74 68 65 20 72 6f 6f 74 20 73 6f 75 72 63 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 20 20 | in.the.root.source.file.</li>... |
| 25c80 | 20 20 20 20 20 20 3c 6c 69 3e 57 68 65 6e 20 6d 69 78 69 6e 67 20 43 20 61 6e 64 20 5a 69 67 20 | ......<li>When.mixing.C.and.Zig. |
| 25ca0 | 63 6f 64 65 2c 20 63 61 6c 6c 69 6e 67 20 74 68 65 20 63 61 6e 6f 6e 69 63 61 6c 20 70 61 6e 69 | code,.calling.the.canonical.pani |
| 25cc0 | 63 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 61 63 72 6f 73 73 20 6d 75 6c 74 69 70 6c 65 | c.implementation.across.multiple |
| 25ce0 | 20 2e 6f 20 66 69 6c 65 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 | ..o.files.</li>.......</ul>..... |
| 25d00 | 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 | ..<p>See.also:</p>.......<ul>... |
| 25d20 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 72 6f 6f 74 2d 73 6f 75 72 63 65 2d | ......<li><a.href="#root-source- |
| 25d40 | 66 69 6c 65 22 3e 52 6f 6f 74 20 53 6f 75 72 63 65 20 46 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a | file">Root.Source.File</a></li>. |
| 25d60 | 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 | ......</ul>........<h3.id="built |
| 25d80 | 69 6e 2d 70 74 72 43 61 73 74 22 3e 40 70 74 72 43 61 73 74 3c 2f 68 33 3e 0a 20 20 20 20 20 20 | in-ptrCast">@ptrCast</h3>....... |
| 25da0 | 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 70 74 72 43 61 73 74 28 | <pre><code.class="zig">@ptrCast( |
| 25dc0 | 63 6f 6d 70 74 69 6d 65 20 44 65 73 74 54 79 70 65 3a 20 74 79 70 65 2c 20 76 61 6c 75 65 3a 20 | comptime.DestType:.type,.value:. |
| 25de0 | 76 61 72 29 20 2d 26 67 74 3b 20 44 65 73 74 54 79 70 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e | var).->.DestType</code></pre> |
| 25e00 | 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 6f 6e 76 65 72 74 73 20 61 20 70 6f 69 6e | .......<p>.......Converts.a.poin |
| 25e20 | 74 65 72 20 6f 66 20 6f 6e 65 20 74 79 70 65 20 74 6f 20 61 20 70 6f 69 6e 74 65 72 20 6f 66 20 | ter.of.one.type.to.a.pointer.of. |
| 25e40 | 61 6e 6f 74 68 65 72 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | another.type........</p>.......< |
| 25e60 | 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 70 74 72 54 6f 49 6e 74 22 3e 40 70 74 72 54 6f 49 | h3.id="builtin-ptrToInt">@ptrToI |
| 25e80 | 6e 74 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 | nt</h3>.......<pre><code.class=" |
| 25ea0 | 7a 69 67 22 3e 40 70 74 72 54 6f 49 6e 74 28 76 61 6c 75 65 3a 20 76 61 72 29 20 2d 26 67 74 3b | zig">@ptrToInt(value:.var).-> |
| 25ec0 | 20 75 73 69 7a 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 | .usize</code></pre>.......<p>... |
| 25ee0 | 20 20 20 20 43 6f 6e 76 65 72 74 73 20 3c 63 6f 64 65 3e 76 61 6c 75 65 3c 2f 63 6f 64 65 3e 20 | ....Converts.<code>value</code>. |
| 25f00 | 74 6f 20 61 20 3c 63 6f 64 65 3e 75 73 69 7a 65 3c 2f 63 6f 64 65 3e 20 77 68 69 63 68 20 69 73 | to.a.<code>usize</code>.which.is |
| 25f20 | 20 74 68 65 20 61 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 70 6f 69 6e 74 65 72 2e 20 3c 63 6f | .the.address.of.the.pointer..<co |
| 25f40 | 64 65 3e 76 61 6c 75 65 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 6f 6e 65 20 6f 66 20 74 68 | de>value</code>.can.be.one.of.th |
| 25f60 | 65 73 65 20 74 79 70 65 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e | ese.types:.......</p>.......<ul> |
| 25f80 | 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 26 61 6d 70 3b 54 3c 2f 63 6f 64 65 3e | .........<li><code>&T</code> |
| 25fa0 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 3f 26 61 6d 70 3b 54 3c | </li>.........<li><code>?&T< |
| 25fc0 | 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 66 6e | /code></li>.........<li><code>fn |
| 25fe0 | 28 29 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 | ()</code></li>.........<li><code |
| 26000 | 3e 3f 66 6e 28 29 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 | >?fn()</code></li>.......</ul>.. |
| 26020 | 20 20 20 20 20 3c 70 3e 54 6f 20 63 6f 6e 76 65 72 74 20 74 68 65 20 6f 74 68 65 72 20 77 61 79 | .....<p>To.convert.the.other.way |
| 26040 | 2c 20 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 69 6e 74 54 6f 50 74 72 | ,.use.<a.href="#builtin-intToPtr |
| 26060 | 22 3e 40 69 6e 74 54 6f 50 74 72 3c 2f 61 3e 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 | ">@intToPtr</a></p>........<h3.i |
| 26080 | 64 3d 22 62 75 69 6c 74 69 6e 2d 72 65 6d 22 3e 40 72 65 6d 3c 2f 68 33 3e 0a 20 20 20 20 20 20 | d="builtin-rem">@rem</h3>....... |
| 260a0 | 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 72 65 6d 28 6e 75 6d 65 | <pre><code.class="zig">@rem(nume |
| 260c0 | 72 61 74 6f 72 3a 20 54 2c 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 3a 20 54 29 20 2d 26 67 74 3b 20 | rator:.T,.denominator:.T).->. |
| 260e0 | 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 | T</code></pre>.......<p>.......R |
| 26100 | 65 6d 61 69 6e 64 65 72 20 64 69 76 69 73 69 6f 6e 2e 20 46 6f 72 20 75 6e 73 69 67 6e 65 64 20 | emainder.division..For.unsigned. |
| 26120 | 69 6e 74 65 67 65 72 73 20 74 68 69 73 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 0a 20 20 20 | integers.this.is.the.same.as.... |
| 26140 | 20 20 20 3c 63 6f 64 65 3e 6e 75 6d 65 72 61 74 6f 72 20 25 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 | ...<code>numerator.%.denominator |
| 26160 | 3c 2f 63 6f 64 65 3e 2e 20 43 61 6c 6c 65 72 20 67 75 61 72 61 6e 74 65 65 73 20 3c 63 6f 64 65 | </code>..Caller.guarantees.<code |
| 26180 | 3e 64 65 6e 6f 6d 69 6e 61 74 6f 72 20 26 67 74 3b 20 30 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 | >denominator.>.0</code>...... |
| 261a0 | 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 | ..</p>.......<ul>.........<li><c |
| 261c0 | 6f 64 65 3e 40 72 65 6d 28 2d 35 2c 20 33 29 20 3d 3d 20 2d 32 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 | ode>@rem(-5,.3).==.-2</code></li |
| 261e0 | 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 64 69 76 54 72 75 6e 63 28 61 2c | >.........<li><code>@divTrunc(a, |
| 26200 | 20 62 29 20 2b 20 40 72 65 6d 28 61 2c 20 62 29 20 3d 3d 20 61 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 | .b).+.@rem(a,.b).==.a</code></li |
| 26220 | 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a | >.......</ul>.......<p>See.also: |
| 26240 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 | </p>.......<ul>.........<li><a.h |
| 26260 | 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 6d 6f 64 22 3e 40 6d 6f 64 3c 2f 61 3e 3c 2f 6c 69 3e | ref="#builtin-mod">@mod</a></li> |
| 26280 | 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 73 74 64 22 | .........<li><code>@import("std" |
| 262a0 | 29 2e 6d 61 74 68 2e 72 65 6d 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 | ).math.rem</code></li>.......</u |
| 262c0 | 6c 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 72 65 74 75 72 6e 41 | l>.......<h3.id="builtin-returnA |
| 262e0 | 64 64 72 65 73 73 22 3e 40 72 65 74 75 72 6e 41 64 64 72 65 73 73 3c 2f 68 33 3e 0a 20 20 20 20 | ddress">@returnAddress</h3>..... |
| 26300 | 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 72 65 74 75 72 6e | ..<pre><code.class="zig">@return |
| 26320 | 41 64 64 72 65 73 73 28 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e | Address()</code></pre>.......<p> |
| 26340 | 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 61 20 70 | .......This.function.returns.a.p |
| 26360 | 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 72 65 74 75 72 6e 20 61 64 64 72 65 73 73 20 6f 66 20 | ointer.to.the.return.address.of. |
| 26380 | 74 68 65 20 63 75 72 72 65 6e 74 20 73 74 61 63 6b 0a 20 20 20 20 20 20 66 72 61 6d 65 2e 0a 20 | the.current.stack.......frame... |
| 263a0 | 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 69 6d | .....</p>.......<p>.......The.im |
| 263c0 | 70 6c 69 63 61 74 69 6f 6e 73 20 6f 66 20 74 68 69 73 20 61 72 65 20 74 61 72 67 65 74 20 73 70 | plications.of.this.are.target.sp |
| 263e0 | 65 63 69 66 69 63 20 61 6e 64 20 6e 6f 74 20 63 6f 6e 73 69 73 74 65 6e 74 20 61 63 72 6f 73 73 | ecific.and.not.consistent.across |
| 26400 | 0a 20 20 20 20 20 20 61 6c 6c 20 70 6c 61 74 66 6f 72 6d 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e | .......all.platforms........</p> |
| 26420 | 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 | .......<p>.......This.function.i |
| 26440 | 73 20 6f 6e 6c 79 20 76 61 6c 69 64 20 77 69 74 68 69 6e 20 66 75 6e 63 74 69 6f 6e 20 73 63 6f | s.only.valid.within.function.sco |
| 26460 | 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 | pe........</p>........<h3.id="bu |
| 26480 | 69 6c 74 69 6e 2d 73 65 74 44 65 62 75 67 53 61 66 65 74 79 22 3e 40 73 65 74 44 65 62 75 67 53 | iltin-setDebugSafety">@setDebugS |
| 264a0 | 61 66 65 74 79 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | afety</h3>.......<pre><code.clas |
| 264c0 | 73 3d 22 7a 69 67 22 3e 40 73 65 74 44 65 62 75 67 53 61 66 65 74 79 28 73 63 6f 70 65 2c 20 73 | s="zig">@setDebugSafety(scope,.s |
| 264e0 | 61 66 65 74 79 5f 6f 6e 3a 20 62 6f 6f 6c 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 | afety_on:.bool)</code></pre>.... |
| 26500 | 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 53 65 74 73 20 77 68 65 74 68 65 72 20 64 65 62 75 67 20 | ...<p>.......Sets.whether.debug. |
| 26520 | 73 61 66 65 74 79 20 63 68 65 63 6b 73 20 61 72 65 20 6f 6e 20 66 6f 72 20 61 20 67 69 76 65 6e | safety.checks.are.on.for.a.given |
| 26540 | 20 73 63 6f 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 | .scope........</p>........<h3.id |
| 26560 | 3d 22 62 75 69 6c 74 69 6e 2d 73 65 74 45 76 61 6c 42 72 61 6e 63 68 51 75 6f 74 61 22 3e 40 73 | ="builtin-setEvalBranchQuota">@s |
| 26580 | 65 74 45 76 61 6c 42 72 61 6e 63 68 51 75 6f 74 61 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 | etEvalBranchQuota</h3>.......<pr |
| 265a0 | 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 73 65 74 45 76 61 6c 42 72 61 6e | e><code.class="zig">@setEvalBran |
| 265c0 | 63 68 51 75 6f 74 61 28 6e 65 77 5f 71 75 6f 74 61 3a 20 75 73 69 7a 65 29 3c 2f 63 6f 64 65 3e | chQuota(new_quota:.usize)</code> |
| 265e0 | 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 68 61 6e 67 65 73 20 74 | </pre>.......<p>.......Changes.t |
| 26600 | 68 65 20 6d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20 62 61 63 6b 77 61 72 64 73 20 62 | he.maximum.number.of.backwards.b |
| 26620 | 72 61 6e 63 68 65 73 20 74 68 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 63 6f 64 65 0a 20 | ranches.that.compile-time.code.. |
| 26640 | 20 20 20 20 20 65 78 65 63 75 74 69 6f 6e 20 63 61 6e 20 75 73 65 20 62 65 66 6f 72 65 20 67 69 | .....execution.can.use.before.gi |
| 26660 | 76 69 6e 67 20 75 70 20 61 6e 64 20 6d 61 6b 69 6e 67 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 | ving.up.and.making.a.compile.err |
| 26680 | 6f 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 | or........</p>.......<p>.......I |
| 266a0 | 66 20 74 68 65 20 3c 63 6f 64 65 3e 6e 65 77 5f 71 75 6f 74 61 3c 2f 63 6f 64 65 3e 20 69 73 20 | f.the.<code>new_quota</code>.is. |
| 266c0 | 73 6d 61 6c 6c 65 72 20 74 68 61 6e 20 74 68 65 20 64 65 66 61 75 6c 74 20 71 75 6f 74 61 20 28 | smaller.than.the.default.quota.( |
| 266e0 | 3c 63 6f 64 65 3e 31 30 30 30 3c 2f 63 6f 64 65 3e 29 20 6f 72 0a 20 20 20 20 20 20 61 20 70 72 | <code>1000</code>).or.......a.pr |
| 26700 | 65 76 69 6f 75 73 6c 79 20 65 78 70 6c 69 63 69 74 6c 79 20 73 65 74 20 71 75 6f 74 61 2c 20 69 | eviously.explicitly.set.quota,.i |
| 26720 | 74 20 69 73 20 69 67 6e 6f 72 65 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | t.is.ignored........</p>.......< |
| 26740 | 70 3e 0a 20 20 20 20 20 20 45 78 61 6d 70 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 | p>.......Example:.......</p>.... |
| 26760 | 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6d 70 74 69 | ...<pre><code.class="zig">compti |
| 26780 | 6d 65 20 7b 0a 20 20 20 20 76 61 72 20 69 20 3d 20 30 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 69 | me.{.....var.i.=.0;.....while.(i |
| 267a0 | 20 26 6c 74 3b 20 31 30 30 31 29 20 3a 20 28 69 20 2b 3d 20 31 29 20 7b 7d 0a 7d 3c 2f 63 6f 64 | .<.1001).:.(i.+=.1).{}.}</cod |
| 267c0 | 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d | e></pre>.......<pre><code.class= |
| 267e0 | 22 73 68 22 3e 24 20 2e 2f 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 74 65 73 74 2e 7a 69 67 0a | "sh">$../zig.build-obj.test.zig. |
| 26800 | 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 74 65 73 74 2e 7a 69 | /home/andy/dev/zig/build/test.zi |
| 26820 | 67 3a 33 3a 35 3a 20 65 72 72 6f 72 3a 20 65 76 61 6c 75 61 74 69 6f 6e 20 65 78 63 65 65 64 65 | g:3:5:.error:.evaluation.exceede |
| 26840 | 64 20 31 30 30 30 20 62 61 63 6b 77 61 72 64 73 20 62 72 61 6e 63 68 65 73 0a 20 20 20 20 77 68 | d.1000.backwards.branches.....wh |
| 26860 | 69 6c 65 20 28 69 20 26 6c 74 3b 20 31 30 30 31 29 20 3a 20 28 69 20 2b 3d 20 31 29 20 7b 7d 0a | ile.(i.<.1001).:.(i.+=.1).{}. |
| 26880 | 20 20 20 20 5e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 4e 6f 77 20 | ....^</code></pre>.......<p>Now. |
| 268a0 | 77 65 20 75 73 65 20 3c 63 6f 64 65 3e 40 73 65 74 45 76 61 6c 42 72 61 6e 63 68 51 75 6f 74 61 | we.use.<code>@setEvalBranchQuota |
| 268c0 | 3c 2f 63 6f 64 65 3e 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | </code>:</p>.......<pre><code.cl |
| 268e0 | 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 40 73 65 74 45 76 61 | ass="zig">comptime.{.....@setEva |
| 26900 | 6c 42 72 61 6e 63 68 51 75 6f 74 61 28 31 30 30 31 29 3b 0a 20 20 20 20 76 61 72 20 69 20 3d 20 | lBranchQuota(1001);.....var.i.=. |
| 26920 | 30 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 69 20 26 6c 74 3b 20 31 30 30 31 29 20 3a 20 28 69 20 | 0;.....while.(i.<.1001).:.(i. |
| 26940 | 2b 3d 20 31 29 20 7b 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 | +=.1).{}.}</code></pre>.......<p |
| 26960 | 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 2e 2f 7a 69 67 20 62 75 69 6c | re><code.class="sh">$../zig.buil |
| 26980 | 64 2d 6f 62 6a 20 74 65 73 74 2e 7a 69 67 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 | d-obj.test.zig</code></pre>..... |
| 269a0 | 20 20 3c 70 3e 28 6e 6f 20 6f 75 74 70 75 74 20 62 65 63 61 75 73 65 20 69 74 20 77 6f 72 6b 65 | ..<p>(no.output.because.it.worke |
| 269c0 | 64 20 66 69 6e 65 29 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c | d.fine)</p>........<p>See.also:< |
| 269e0 | 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 | /p>.......<ul>.........<li><a.hr |
| 26a00 | 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e | ef="#comptime">comptime</a></li> |
| 26a20 | 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c | .......</ul>........<h3.id="buil |
| 26a40 | 74 69 6e 2d 73 65 74 46 6c 6f 61 74 4d 6f 64 65 22 3e 40 73 65 74 46 6c 6f 61 74 4d 6f 64 65 3c | tin-setFloatMode">@setFloatMode< |
| 26a60 | 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 | /h3>.......<pre><code.class="zig |
| 26a80 | 22 3e 40 73 65 74 46 6c 6f 61 74 4d 6f 64 65 28 73 63 6f 70 65 2c 20 6d 6f 64 65 3a 20 40 69 6d | ">@setFloatMode(scope,.mode:.@im |
| 26aa0 | 70 6f 72 74 28 22 62 75 69 6c 74 69 6e 22 29 2e 46 6c 6f 61 74 4d 6f 64 65 29 3c 2f 63 6f 64 65 | port("builtin").FloatMode)</code |
| 26ac0 | 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 53 65 74 73 20 74 68 65 | ></pre>.......<p>.......Sets.the |
| 26ae0 | 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6d 6f 64 65 20 66 6f 72 20 61 20 67 69 76 65 6e | .floating.point.mode.for.a.given |
| 26b00 | 20 73 63 6f 70 65 2e 20 50 6f 73 73 69 62 6c 65 20 76 61 6c 75 65 73 20 61 72 65 3a 0a 20 20 20 | .scope..Possible.values.are:.... |
| 26b20 | 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 | ...</p>.......<pre><code.class=" |
| 26b40 | 7a 69 67 22 3e 70 75 62 20 63 6f 6e 73 74 20 46 6c 6f 61 74 4d 6f 64 65 20 3d 20 65 6e 75 6d 20 | zig">pub.const.FloatMode.=.enum. |
| 26b60 | 7b 0a 20 20 20 20 4f 70 74 69 6d 69 7a 65 64 2c 0a 20 20 20 20 53 74 72 69 63 74 2c 0a 7d 3b 3c | {.....Optimized,.....Strict,.};< |
| 26b80 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 | /code></pre>.......<ul>......... |
| 26ba0 | 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 4f 70 74 69 6d 69 7a 65 64 3c 2f | <li>...........<code>Optimized</ |
| 26bc0 | 63 6f 64 65 3e 20 28 64 65 66 61 75 6c 74 29 20 2d 20 46 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 | code>.(default).-.Floating.point |
| 26be0 | 20 6f 70 65 72 61 74 69 6f 6e 73 20 6d 61 79 20 64 6f 20 61 6c 6c 20 6f 66 20 74 68 65 20 66 6f | .operations.may.do.all.of.the.fo |
| 26c00 | 6c 6c 6f 77 69 6e 67 3a 0a 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 | llowing:...........<ul>......... |
| 26c20 | 20 20 20 20 3c 6c 69 3e 41 73 73 75 6d 65 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 61 6e 64 | ....<li>Assume.the.arguments.and |
| 26c40 | 20 72 65 73 75 6c 74 20 61 72 65 20 6e 6f 74 20 4e 61 4e 2e 20 4f 70 74 69 6d 69 7a 61 74 69 6f | .result.are.not.NaN..Optimizatio |
| 26c60 | 6e 73 20 61 72 65 20 72 65 71 75 69 72 65 64 20 74 6f 20 72 65 74 61 69 6e 20 64 65 66 69 6e 65 | ns.are.required.to.retain.define |
| 26c80 | 64 20 62 65 68 61 76 69 6f 72 20 6f 76 65 72 20 4e 61 4e 73 2c 20 62 75 74 20 74 68 65 20 76 61 | d.behavior.over.NaNs,.but.the.va |
| 26ca0 | 6c 75 65 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 75 6e 64 65 66 69 6e 65 64 2e 3c | lue.of.the.result.is.undefined.< |
| 26cc0 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 73 73 75 6d 65 20 74 68 65 20 | /li>.............<li>Assume.the. |
| 26ce0 | 61 72 67 75 6d 65 6e 74 73 20 61 6e 64 20 72 65 73 75 6c 74 20 61 72 65 20 6e 6f 74 20 2b 2f 2d | arguments.and.result.are.not.+/- |
| 26d00 | 49 6e 66 2e 20 4f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 61 72 65 20 72 65 71 75 69 72 65 64 20 | Inf..Optimizations.are.required. |
| 26d20 | 74 6f 20 72 65 74 61 69 6e 20 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 20 6f 76 65 72 20 | to.retain.defined.behavior.over. |
| 26d40 | 2b 2f 2d 49 6e 66 2c 20 62 75 74 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 72 65 73 | +/-Inf,.but.the.value.of.the.res |
| 26d60 | 75 6c 74 20 69 73 20 75 6e 64 65 66 69 6e 65 64 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 | ult.is.undefined.</li>.......... |
| 26d80 | 20 20 20 3c 6c 69 3e 54 72 65 61 74 20 74 68 65 20 73 69 67 6e 20 6f 66 20 61 20 7a 65 72 6f 20 | ...<li>Treat.the.sign.of.a.zero. |
| 26da0 | 61 72 67 75 6d 65 6e 74 20 6f 72 20 72 65 73 75 6c 74 20 61 73 20 69 6e 73 69 67 6e 69 66 69 63 | argument.or.result.as.insignific |
| 26dc0 | 61 6e 74 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 55 73 65 20 74 68 | ant.</li>.............<li>Use.th |
| 26de0 | 65 20 72 65 63 69 70 72 6f 63 61 6c 20 6f 66 20 61 6e 20 61 72 67 75 6d 65 6e 74 20 72 61 74 68 | e.reciprocal.of.an.argument.rath |
| 26e00 | 65 72 20 74 68 61 6e 20 70 65 72 66 6f 72 6d 20 64 69 76 69 73 69 6f 6e 2e 3c 2f 6c 69 3e 0a 20 | er.than.perform.division.</li>.. |
| 26e20 | 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 50 65 72 66 6f 72 6d 20 66 6c 6f 61 74 69 6e 67 2d | ...........<li>Perform.floating- |
| 26e40 | 70 6f 69 6e 74 20 63 6f 6e 74 72 61 63 74 69 6f 6e 20 28 65 2e 67 2e 20 66 75 73 69 6e 67 20 61 | point.contraction.(e.g..fusing.a |
| 26e60 | 20 6d 75 6c 74 69 70 6c 79 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 6e 20 61 64 64 69 74 69 6f | .multiply.followed.by.an.additio |
| 26e80 | 6e 20 69 6e 74 6f 20 61 20 66 75 73 65 64 20 6d 75 6c 74 69 70 6c 79 2d 61 6e 64 2d 61 64 64 29 | n.into.a.fused.multiply-and-add) |
| 26ea0 | 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 50 65 72 66 6f 72 6d 20 61 | .</li>.............<li>Perform.a |
| 26ec0 | 6c 67 65 62 72 61 69 63 61 6c 6c 79 20 65 71 75 69 76 61 6c 65 6e 74 20 74 72 61 6e 73 66 6f 72 | lgebraically.equivalent.transfor |
| 26ee0 | 6d 61 74 69 6f 6e 73 20 74 68 61 74 20 6d 61 79 20 63 68 61 6e 67 65 20 72 65 73 75 6c 74 73 20 | mations.that.may.change.results. |
| 26f00 | 69 6e 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 28 65 2e 67 2e 20 72 65 61 73 73 6f 63 69 | in.floating.point.(e.g..reassoci |
| 26f20 | 61 74 65 29 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 | ate).</li>...........</ul>...... |
| 26f40 | 20 20 20 20 20 54 68 69 73 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 3c 63 6f 64 65 | .....This.is.equivalent.to.<code |
| 26f60 | 3e 2d 66 66 61 73 74 2d 6d 61 74 68 3c 2f 63 6f 64 65 3e 20 69 6e 20 47 43 43 2e 0a 20 20 20 20 | >-ffast-math</code>.in.GCC...... |
| 26f80 | 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 | ....</li>.........<li>.......... |
| 26fa0 | 20 3c 63 6f 64 65 3e 53 74 72 69 63 74 3c 2f 63 6f 64 65 3e 20 2d 20 46 6c 6f 61 74 69 6e 67 20 | .<code>Strict</code>.-.Floating. |
| 26fc0 | 70 6f 69 6e 74 20 6f 70 65 72 61 74 69 6f 6e 73 20 66 6f 6c 6c 6f 77 20 73 74 72 69 63 74 20 49 | point.operations.follow.strict.I |
| 26fe0 | 45 45 45 20 63 6f 6d 70 6c 69 61 6e 63 65 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 | EEE.compliance..........</li>... |
| 27000 | 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e | ....</ul>.......<p>See.also:</p> |
| 27020 | 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d | .......<ul>.........<li><a.href= |
| 27040 | 22 23 66 6c 6f 61 74 2d 6f 70 65 72 61 74 69 6f 6e 73 22 3e 46 6c 6f 61 74 69 6e 67 20 50 6f 69 | "#float-operations">Floating.Poi |
| 27060 | 6e 74 20 4f 70 65 72 61 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 | nt.Operations</a></li>.......</u |
| 27080 | 6c 3e 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 73 65 74 47 6c 6f | l>........<h3.id="builtin-setGlo |
| 270a0 | 62 61 6c 4c 69 6e 6b 61 67 65 22 3e 40 73 65 74 47 6c 6f 62 61 6c 4c 69 6e 6b 61 67 65 3c 2f 68 | balLinkage">@setGlobalLinkage</h |
| 270c0 | 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e | 3>.......<pre><code.class="zig"> |
| 270e0 | 40 73 65 74 47 6c 6f 62 61 6c 4c 69 6e 6b 61 67 65 28 67 6c 6f 62 61 6c 5f 76 61 72 69 61 62 6c | @setGlobalLinkage(global_variabl |
| 27100 | 65 5f 6e 61 6d 65 2c 20 63 6f 6d 70 74 69 6d 65 20 6c 69 6e 6b 61 67 65 3a 20 47 6c 6f 62 61 6c | e_name,.comptime.linkage:.Global |
| 27120 | 4c 69 6e 6b 61 67 65 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a | Linkage)</code></pre>.......<p>. |
| 27140 | 20 20 20 20 20 20 3c 63 6f 64 65 3e 47 6c 6f 62 61 6c 4c 69 6e 6b 61 67 65 3c 2f 63 6f 64 65 3e | ......<code>GlobalLinkage</code> |
| 27160 | 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 77 69 74 68 20 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 | .can.be.found.with.<code>@import |
| 27180 | 28 22 62 75 69 6c 74 69 6e 22 29 2e 47 6c 6f 62 61 6c 4c 69 6e 6b 61 67 65 3c 2f 63 6f 64 65 3e | ("builtin").GlobalLinkage</code> |
| 271a0 | 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c | ........</p>.......<p>See.also:< |
| 271c0 | 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 | /p>.......<ul>.........<li><a.hr |
| 271e0 | 65 66 3d 22 23 63 6f 6d 70 69 6c 65 2d 76 61 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 20 | ef="#compile-variables">Compile. |
| 27200 | 56 61 72 69 61 62 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 | Variables</a></li>.......</ul>.. |
| 27220 | 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 73 65 74 47 6c 6f 62 61 6c 53 65 | .....<h3.id="builtin-setGlobalSe |
| 27240 | 63 74 69 6f 6e 22 3e 40 73 65 74 47 6c 6f 62 61 6c 53 65 63 74 69 6f 6e 3c 2f 68 33 3e 0a 20 20 | ction">@setGlobalSection</h3>... |
| 27260 | 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 73 65 74 47 | ....<pre><code.class="zig">@setG |
| 27280 | 6c 6f 62 61 6c 53 65 63 74 69 6f 6e 28 67 6c 6f 62 61 6c 5f 76 61 72 69 61 62 6c 65 5f 6e 61 6d | lobalSection(global_variable_nam |
| 272a0 | 65 2c 20 63 6f 6d 70 74 69 6d 65 20 73 65 63 74 69 6f 6e 5f 6e 61 6d 65 3a 20 5b 5d 63 6f 6e 73 | e,.comptime.section_name:.[]cons |
| 272c0 | 74 20 75 38 29 20 2d 26 67 74 3b 20 62 6f 6f 6c 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 | t.u8).->.bool</code></pre>... |
| 272e0 | 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 50 75 74 73 20 74 68 65 20 67 6c 6f 62 61 6c 20 76 61 | ....<p>.......Puts.the.global.va |
| 27300 | 72 69 61 62 6c 65 20 69 6e 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 73 65 63 74 69 6f 6e 2e | riable.in.the.specified.section. |
| 27320 | 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 | .......</p>.......<h3.id="builti |
| 27340 | 6e 2d 73 68 6c 45 78 61 63 74 22 3e 40 73 68 6c 45 78 61 63 74 3c 2f 68 33 3e 0a 20 20 20 20 20 | n-shlExact">@shlExact</h3>...... |
| 27360 | 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 73 68 6c 45 78 61 63 | .<pre><code.class="zig">@shlExac |
| 27380 | 74 28 76 61 6c 75 65 3a 20 54 2c 20 73 68 69 66 74 5f 61 6d 74 3a 20 4c 6f 67 32 54 29 20 2d 26 | t(value:.T,.shift_amt:.Log2T).-& |
| 273a0 | 67 74 3b 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 | gt;.T</code></pre>.......<p>.... |
| 273c0 | 20 20 20 50 65 72 66 6f 72 6d 73 20 74 68 65 20 6c 65 66 74 20 73 68 69 66 74 20 6f 70 65 72 61 | ...Performs.the.left.shift.opera |
| 273e0 | 74 69 6f 6e 20 28 3c 63 6f 64 65 3e 26 6c 74 3b 26 6c 74 3b 3c 2f 63 6f 64 65 3e 29 2e 20 43 61 | tion.(<code><<</code>)..Ca |
| 27400 | 6c 6c 65 72 20 67 75 61 72 61 6e 74 65 65 73 0a 20 20 20 20 20 20 74 68 61 74 20 74 68 65 20 73 | ller.guarantees.......that.the.s |
| 27420 | 68 69 66 74 20 77 69 6c 6c 20 6e 6f 74 20 73 68 69 66 74 20 61 6e 79 20 31 20 62 69 74 73 20 6f | hift.will.not.shift.any.1.bits.o |
| 27440 | 75 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 | ut........</p>.......<p>.......T |
| 27460 | 68 65 20 74 79 70 65 20 6f 66 20 3c 63 6f 64 65 3e 73 68 69 66 74 5f 61 6d 74 3c 2f 63 6f 64 65 | he.type.of.<code>shift_amt</code |
| 27480 | 3e 20 69 73 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 20 77 69 74 68 20 3c 63 | >.is.an.unsigned.integer.with.<c |
| 274a0 | 6f 64 65 3e 6c 6f 67 32 28 54 2e 62 69 74 5f 63 6f 75 6e 74 29 3c 2f 63 6f 64 65 3e 20 62 69 74 | ode>log2(T.bit_count)</code>.bit |
| 274c0 | 73 2e 0a 20 20 20 20 20 20 54 68 69 73 20 69 73 20 62 65 63 61 75 73 65 20 3c 63 6f 64 65 3e 73 | s........This.is.because.<code>s |
| 274e0 | 68 69 66 74 5f 61 6d 74 20 26 67 74 3b 3d 20 54 2e 62 69 74 5f 63 6f 75 6e 74 3c 2f 63 6f 64 65 | hift_amt.>=.T.bit_count</code |
| 27500 | 3e 20 69 73 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 2e 0a 20 20 20 20 20 20 3c | >.is.undefined.behavior........< |
| 27520 | 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 | /p>.......<p>See.also:</p>...... |
| 27540 | 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c | .<ul>.........<li><a.href="#buil |
| 27560 | 74 69 6e 2d 73 68 72 45 78 61 63 74 22 3e 40 73 68 72 45 78 61 63 74 3c 2f 61 3e 3c 2f 6c 69 3e | tin-shrExact">@shrExact</a></li> |
| 27580 | 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 73 | .........<li><a.href="#builtin-s |
| 275a0 | 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 | hlWithOverflow">@shlWithOverflow |
| 275c0 | 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 33 20 | </a></li>.......</ul>.......<h3. |
| 275e0 | 69 64 3d 22 62 75 69 6c 74 69 6e 2d 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 73 68 | id="builtin-shlWithOverflow">@sh |
| 27600 | 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 | lWithOverflow</h3>.......<pre><c |
| 27620 | 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 | ode.class="zig">@shlWithOverflow |
| 27640 | 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 2c 20 61 3a 20 54 2c 20 73 68 69 66 74 5f 61 | (comptime.T:.type,.a:.T,.shift_a |
| 27660 | 6d 74 3a 20 4c 6f 67 32 54 2c 20 72 65 73 75 6c 74 3a 20 26 61 6d 70 3b 54 29 20 2d 26 67 74 3b | mt:.Log2T,.result:.&T).-> |
| 27680 | 20 62 6f 6f 6c 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 | .bool</code></pre>.......<p>.... |
| 276a0 | 20 20 20 50 65 72 66 6f 72 6d 73 20 3c 63 6f 64 65 3e 2a 72 65 73 75 6c 74 20 3d 20 61 20 26 6c | ...Performs.<code>*result.=.a.&l |
| 276c0 | 74 3b 26 6c 74 3b 20 62 3c 2f 63 6f 64 65 3e 2e 20 49 66 20 6f 76 65 72 66 6c 6f 77 20 6f 72 20 | t;<.b</code>..If.overflow.or. |
| 276e0 | 75 6e 64 65 72 66 6c 6f 77 20 6f 63 63 75 72 73 2c 0a 20 20 20 20 20 20 73 74 6f 72 65 73 20 74 | underflow.occurs,.......stores.t |
| 27700 | 68 65 20 6f 76 65 72 66 6c 6f 77 65 64 20 62 69 74 73 20 69 6e 20 3c 63 6f 64 65 3e 72 65 73 75 | he.overflowed.bits.in.<code>resu |
| 27720 | 6c 74 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 74 72 75 65 | lt</code>.and.returns.<code>true |
| 27740 | 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 49 66 20 6e 6f 20 6f 76 65 72 66 6c 6f 77 20 6f 72 | </code>........If.no.overflow.or |
| 27760 | 20 75 6e 64 65 72 66 6c 6f 77 20 6f 63 63 75 72 73 2c 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 | .underflow.occurs,.returns.<code |
| 27780 | 3e 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 | >false</code>........</p>....... |
| 277a0 | 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 74 79 70 65 20 6f 66 20 3c 63 6f 64 65 3e 73 68 69 66 | <p>.......The.type.of.<code>shif |
| 277c0 | 74 5f 61 6d 74 3c 2f 63 6f 64 65 3e 20 69 73 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 | t_amt</code>.is.an.unsigned.inte |
| 277e0 | 67 65 72 20 77 69 74 68 20 3c 63 6f 64 65 3e 6c 6f 67 32 28 54 2e 62 69 74 5f 63 6f 75 6e 74 29 | ger.with.<code>log2(T.bit_count) |
| 27800 | 3c 2f 63 6f 64 65 3e 20 62 69 74 73 2e 0a 20 20 20 20 20 20 54 68 69 73 20 69 73 20 62 65 63 61 | </code>.bits........This.is.beca |
| 27820 | 75 73 65 20 3c 63 6f 64 65 3e 73 68 69 66 74 5f 61 6d 74 20 26 67 74 3b 3d 20 54 2e 62 69 74 5f | use.<code>shift_amt.>=.T.bit_ |
| 27840 | 63 6f 75 6e 74 3c 2f 63 6f 64 65 3e 20 69 73 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 | count</code>.is.undefined.behavi |
| 27860 | 6f 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f | or........</p>.......<p>See.also |
| 27880 | 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 | :</p>.......<ul>.........<li><a. |
| 278a0 | 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 73 68 6c 45 78 61 63 74 22 3e 40 73 68 6c 45 78 61 | href="#builtin-shlExact">@shlExa |
| 278c0 | 63 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d | ct</a></li>.........<li><a.href= |
| 278e0 | 22 23 62 75 69 6c 74 69 6e 2d 73 68 72 45 78 61 63 74 22 3e 40 73 68 72 45 78 61 63 74 3c 2f 61 | "#builtin-shrExact">@shrExact</a |
| 27900 | 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d | ></li>.......</ul>.......<h3.id= |
| 27920 | 22 62 75 69 6c 74 69 6e 2d 73 68 72 45 78 61 63 74 22 3e 40 73 68 72 45 78 61 63 74 3c 2f 68 33 | "builtin-shrExact">@shrExact</h3 |
| 27940 | 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 | >.......<pre><code.class="zig">@ |
| 27960 | 73 68 72 45 78 61 63 74 28 76 61 6c 75 65 3a 20 54 2c 20 73 68 69 66 74 5f 61 6d 74 3a 20 4c 6f | shrExact(value:.T,.shift_amt:.Lo |
| 27980 | 67 32 54 29 20 2d 26 67 74 3b 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 | g2T).->.T</code></pre>....... |
| 279a0 | 3c 70 3e 0a 20 20 20 20 20 20 50 65 72 66 6f 72 6d 73 20 74 68 65 20 72 69 67 68 74 20 73 68 69 | <p>.......Performs.the.right.shi |
| 279c0 | 66 74 20 6f 70 65 72 61 74 69 6f 6e 20 28 3c 63 6f 64 65 3e 26 67 74 3b 26 67 74 3b 3c 2f 63 6f | ft.operation.(<code>>></co |
| 279e0 | 64 65 3e 29 2e 20 43 61 6c 6c 65 72 20 67 75 61 72 61 6e 74 65 65 73 0a 20 20 20 20 20 20 74 68 | de>)..Caller.guarantees.......th |
| 27a00 | 61 74 20 74 68 65 20 73 68 69 66 74 20 77 69 6c 6c 20 6e 6f 74 20 73 68 69 66 74 20 61 6e 79 20 | at.the.shift.will.not.shift.any. |
| 27a20 | 31 20 62 69 74 73 20 6f 75 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e | 1.bits.out........</p>.......<p> |
| 27a40 | 0a 20 20 20 20 20 20 54 68 65 20 74 79 70 65 20 6f 66 20 3c 63 6f 64 65 3e 73 68 69 66 74 5f 61 | .......The.type.of.<code>shift_a |
| 27a60 | 6d 74 3c 2f 63 6f 64 65 3e 20 69 73 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 | mt</code>.is.an.unsigned.integer |
| 27a80 | 20 77 69 74 68 20 3c 63 6f 64 65 3e 6c 6f 67 32 28 54 2e 62 69 74 5f 63 6f 75 6e 74 29 3c 2f 63 | .with.<code>log2(T.bit_count)</c |
| 27aa0 | 6f 64 65 3e 20 62 69 74 73 2e 0a 20 20 20 20 20 20 54 68 69 73 20 69 73 20 62 65 63 61 75 73 65 | ode>.bits........This.is.because |
| 27ac0 | 20 3c 63 6f 64 65 3e 73 68 69 66 74 5f 61 6d 74 20 26 67 74 3b 3d 20 54 2e 62 69 74 5f 63 6f 75 | .<code>shift_amt.>=.T.bit_cou |
| 27ae0 | 6e 74 3c 2f 63 6f 64 65 3e 20 69 73 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 2e | nt</code>.is.undefined.behavior. |
| 27b00 | 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f | .......</p>.......<p>See.also:</ |
| 27b20 | 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 | p>.......<ul>.........<li><a.hre |
| 27b40 | 66 3d 22 23 62 75 69 6c 74 69 6e 2d 73 68 6c 45 78 61 63 74 22 3e 40 73 68 6c 45 78 61 63 74 3c | f="#builtin-shlExact">@shlExact< |
| 27b60 | 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 | /a></li>.......</ul>.......<h3.i |
| 27b80 | 64 3d 22 62 75 69 6c 74 69 6e 2d 73 69 7a 65 4f 66 22 3e 40 73 69 7a 65 4f 66 3c 2f 68 33 3e 0a | d="builtin-sizeOf">@sizeOf</h3>. |
| 27ba0 | 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 73 69 | ......<pre><code.class="zig">@si |
| 27bc0 | 7a 65 4f 66 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 29 20 2d 26 67 74 3b 20 28 6e 75 | zeOf(comptime.T:.type).->.(nu |
| 27be0 | 6d 62 65 72 20 6c 69 74 65 72 61 6c 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 | mber.literal)</code></pre>...... |
| 27c00 | 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 | .<p>.......This.function.returns |
| 27c20 | 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 20 69 74 20 74 61 6b 65 73 20 74 6f | .the.number.of.bytes.it.takes.to |
| 27c40 | 20 73 74 6f 72 65 20 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e 20 69 6e 20 6d 65 6d 6f 72 79 2e | .store.<code>T</code>.in.memory. |
| 27c60 | 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 | .......</p>.......<p>.......The. |
| 27c80 | 72 65 73 75 6c 74 20 69 73 20 61 20 74 61 72 67 65 74 2d 73 70 65 63 69 66 69 63 20 63 6f 6d 70 | result.is.a.target-specific.comp |
| 27ca0 | 69 6c 65 20 74 69 6d 65 20 63 6f 6e 73 74 61 6e 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 | ile.time.constant........</p>... |
| 27cc0 | 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 73 75 62 57 69 74 68 4f 76 65 72 66 | ....<h3.id="builtin-subWithOverf |
| 27ce0 | 6c 6f 77 22 3e 40 73 75 62 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 68 33 3e 0a 20 20 20 20 20 | low">@subWithOverflow</h3>...... |
| 27d00 | 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 73 75 62 57 69 74 68 | .<pre><code.class="zig">@subWith |
| 27d20 | 4f 76 65 72 66 6c 6f 77 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 2c 20 61 3a 20 54 2c | Overflow(comptime.T:.type,.a:.T, |
| 27d40 | 20 62 3a 20 54 2c 20 72 65 73 75 6c 74 3a 20 26 61 6d 70 3b 54 29 20 2d 26 67 74 3b 20 62 6f 6f | .b:.T,.result:.&T).->.boo |
| 27d60 | 6c 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 50 | l</code></pre>.......<p>.......P |
| 27d80 | 65 72 66 6f 72 6d 73 20 3c 63 6f 64 65 3e 2a 72 65 73 75 6c 74 20 3d 20 61 20 2d 20 62 3c 2f 63 | erforms.<code>*result.=.a.-.b</c |
| 27da0 | 6f 64 65 3e 2e 20 49 66 20 6f 76 65 72 66 6c 6f 77 20 6f 72 20 75 6e 64 65 72 66 6c 6f 77 20 6f | ode>..If.overflow.or.underflow.o |
| 27dc0 | 63 63 75 72 73 2c 0a 20 20 20 20 20 20 73 74 6f 72 65 73 20 74 68 65 20 6f 76 65 72 66 6c 6f 77 | ccurs,.......stores.the.overflow |
| 27de0 | 65 64 20 62 69 74 73 20 69 6e 20 3c 63 6f 64 65 3e 72 65 73 75 6c 74 3c 2f 63 6f 64 65 3e 20 61 | ed.bits.in.<code>result</code>.a |
| 27e00 | 6e 64 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 74 72 75 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 | nd.returns.<code>true</code>.... |
| 27e20 | 20 20 20 20 49 66 20 6e 6f 20 6f 76 65 72 66 6c 6f 77 20 6f 72 20 75 6e 64 65 72 66 6c 6f 77 20 | ....If.no.overflow.or.underflow. |
| 27e40 | 6f 63 63 75 72 73 2c 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 66 61 6c 73 65 3c 2f 63 6f 64 | occurs,.returns.<code>false</cod |
| 27e60 | 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 | e>........</p>.......<h3.id="bui |
| 27e80 | 6c 74 69 6e 2d 74 72 75 6e 63 61 74 65 22 3e 40 74 72 75 6e 63 61 74 65 3c 2f 68 33 3e 0a 20 20 | ltin-truncate">@truncate</h3>... |
| 27ea0 | 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 74 72 75 6e | ....<pre><code.class="zig">@trun |
| 27ec0 | 63 61 74 65 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 2c 20 69 6e 74 65 67 65 72 29 20 | cate(comptime.T:.type,.integer). |
| 27ee0 | 2d 26 67 74 3b 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 | ->.T</code></pre>.......<p>.. |
| 27f00 | 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 72 75 6e 63 61 74 65 73 20 62 69 74 | .....This.function.truncates.bit |
| 27f20 | 73 20 66 72 6f 6d 20 61 6e 20 69 6e 74 65 67 65 72 20 74 79 70 65 2c 20 72 65 73 75 6c 74 69 6e | s.from.an.integer.type,.resultin |
| 27f40 | 67 20 69 6e 20 61 20 73 6d 61 6c 6c 65 72 0a 20 20 20 20 20 20 69 6e 74 65 67 65 72 20 74 79 70 | g.in.a.smaller.......integer.typ |
| 27f60 | 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 | e........</p>.......<p>.......Th |
| 27f80 | 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 72 6f 64 75 63 65 73 20 61 20 63 72 61 73 68 20 69 6e 20 | e.following.produces.a.crash.in. |
| 27fa0 | 64 65 62 75 67 20 6d 6f 64 65 20 61 6e 64 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f | debug.mode.and.undefined.behavio |
| 27fc0 | 72 20 69 6e 0a 20 20 20 20 20 20 72 65 6c 65 61 73 65 20 6d 6f 64 65 3a 0a 20 20 20 20 20 20 3c | r.in.......release.mode:.......< |
| 27fe0 | 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 | /p>.......<pre><code.class="zig" |
| 28000 | 3e 63 6f 6e 73 74 20 61 3a 20 75 31 36 20 3d 20 30 78 61 62 63 64 3b 0a 63 6f 6e 73 74 20 62 3a | >const.a:.u16.=.0xabcd;.const.b: |
| 28020 | 20 75 38 20 3d 20 75 38 28 61 29 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 | .u8.=.u8(a);</code></pre>....... |
| 28040 | 3c 70 3e 0a 20 20 20 20 20 20 48 6f 77 65 76 65 72 20 74 68 69 73 20 69 73 20 77 65 6c 6c 20 64 | <p>.......However.this.is.well.d |
| 28060 | 65 66 69 6e 65 64 20 61 6e 64 20 77 6f 72 6b 69 6e 67 20 63 6f 64 65 3a 0a 20 20 20 20 20 20 3c | efined.and.working.code:.......< |
| 28080 | 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 | /p>.......<pre><code.class="zig" |
| 280a0 | 3e 63 6f 6e 73 74 20 61 3a 20 75 31 36 20 3d 20 30 78 61 62 63 64 3b 0a 63 6f 6e 73 74 20 62 3a | >const.a:.u16.=.0xabcd;.const.b: |
| 280c0 | 20 75 38 20 3d 20 40 74 72 75 6e 63 61 74 65 28 75 38 2c 20 61 29 3b 0a 2f 2f 20 62 20 69 73 20 | .u8.=.@truncate(u8,.a);.//.b.is. |
| 280e0 | 6e 6f 77 20 30 78 63 64 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a | now.0xcd</code></pre>.......<p>. |
| 28100 | 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 61 6c 77 61 79 73 20 74 72 75 6e 63 | ......This.function.always.trunc |
| 28120 | 61 74 65 73 20 74 68 65 20 73 69 67 6e 69 66 69 63 61 6e 74 20 62 69 74 73 20 6f 66 20 74 68 65 | ates.the.significant.bits.of.the |
| 28140 | 20 69 6e 74 65 67 65 72 2c 20 72 65 67 61 72 64 6c 65 73 73 0a 20 20 20 20 20 20 6f 66 20 65 6e | .integer,.regardless.......of.en |
| 28160 | 64 69 61 6e 6e 65 73 73 20 6f 6e 20 74 68 65 20 74 61 72 67 65 74 20 70 6c 61 74 66 6f 72 6d 2e | dianness.on.the.target.platform. |
| 28180 | 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 | .......</p>........<h3.id="built |
| 281a0 | 69 6e 2d 74 79 70 65 49 64 22 3e 40 74 79 70 65 49 64 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 | in-typeId">@typeId</h3>.......<p |
| 281c0 | 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 74 79 70 65 49 64 28 63 6f 6d | re><code.class="zig">@typeId(com |
| 281e0 | 70 74 69 6d 65 20 54 3a 20 74 79 70 65 29 20 2d 26 67 74 3b 20 40 69 6d 70 6f 72 74 28 22 62 75 | ptime.T:.type).->.@import("bu |
| 28200 | 69 6c 74 69 6e 22 29 2e 54 79 70 65 49 64 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 | iltin").TypeId</code></pre>..... |
| 28220 | 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 77 68 69 63 68 20 6b 69 6e 64 20 6f | ..<p>.......Returns.which.kind.o |
| 28240 | 66 20 74 79 70 65 20 73 6f 6d 65 74 68 69 6e 67 20 69 73 2e 20 50 6f 73 73 69 62 6c 65 20 76 61 | f.type.something.is..Possible.va |
| 28260 | 6c 75 65 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 | lues:.......</p>.......<pre><cod |
| 28280 | 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 70 75 62 20 63 6f 6e 73 74 20 54 79 70 65 49 64 20 3d | e.class="zig">pub.const.TypeId.= |
| 282a0 | 20 65 6e 75 6d 20 7b 0a 20 20 20 20 54 79 70 65 2c 0a 20 20 20 20 56 6f 69 64 2c 0a 20 20 20 20 | .enum.{.....Type,.....Void,..... |
| 282c0 | 42 6f 6f 6c 2c 0a 20 20 20 20 4e 6f 52 65 74 75 72 6e 2c 0a 20 20 20 20 49 6e 74 2c 0a 20 20 20 | Bool,.....NoReturn,.....Int,.... |
| 282e0 | 20 46 6c 6f 61 74 2c 0a 20 20 20 20 50 6f 69 6e 74 65 72 2c 0a 20 20 20 20 41 72 72 61 79 2c 0a | .Float,.....Pointer,.....Array,. |
| 28300 | 20 20 20 20 53 74 72 75 63 74 2c 0a 20 20 20 20 46 6c 6f 61 74 4c 69 74 65 72 61 6c 2c 0a 20 20 | ....Struct,.....FloatLiteral,... |
| 28320 | 20 20 49 6e 74 4c 69 74 65 72 61 6c 2c 0a 20 20 20 20 55 6e 64 65 66 69 6e 65 64 4c 69 74 65 72 | ..IntLiteral,.....UndefinedLiter |
| 28340 | 61 6c 2c 0a 20 20 20 20 4e 75 6c 6c 4c 69 74 65 72 61 6c 2c 0a 20 20 20 20 4e 75 6c 6c 61 62 6c | al,.....NullLiteral,.....Nullabl |
| 28360 | 65 2c 0a 20 20 20 20 45 72 72 6f 72 55 6e 69 6f 6e 2c 0a 20 20 20 20 45 72 72 6f 72 2c 0a 20 20 | e,.....ErrorUnion,.....Error,... |
| 28380 | 20 20 45 6e 75 6d 2c 0a 20 20 20 20 45 6e 75 6d 54 61 67 2c 0a 20 20 20 20 55 6e 69 6f 6e 2c 0a | ..Enum,.....EnumTag,.....Union,. |
| 283a0 | 20 20 20 20 46 6e 2c 0a 20 20 20 20 4e 61 6d 65 73 70 61 63 65 2c 0a 20 20 20 20 42 6c 6f 63 6b | ....Fn,.....Namespace,.....Block |
| 283c0 | 2c 0a 20 20 20 20 42 6f 75 6e 64 46 6e 2c 0a 20 20 20 20 41 72 67 54 75 70 6c 65 2c 0a 20 20 20 | ,.....BoundFn,.....ArgTuple,.... |
| 283e0 | 20 4f 70 61 71 75 65 2c 0a 7d 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 | .Opaque,.};</code></pre>........ |
| 28400 | 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 74 79 70 65 4e 61 6d 65 22 3e 40 74 79 70 65 4e | <h3.id="builtin-typeName">@typeN |
| 28420 | 61 6d 65 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d | ame</h3>.......<pre><code.class= |
| 28440 | 22 7a 69 67 22 3e 40 74 79 70 65 4e 61 6d 65 28 54 3a 20 74 79 70 65 29 20 2d 26 67 74 3b 20 5b | "zig">@typeName(T:.type).->.[ |
| 28460 | 5d 75 38 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 | ]u8</code></pre>.......<p>...... |
| 28480 | 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 73 74 72 69 6e | .This.function.returns.the.strin |
| 284a0 | 67 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 61 20 74 79 70 65 2e 0a 20 20 20 20 | g.representation.of.a.type...... |
| 284c0 | 20 20 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 69 6c 74 69 6e 2d 74 79 | ..</p>........<h3.id="builtin-ty |
| 284e0 | 70 65 4f 66 22 3e 40 74 79 70 65 4f 66 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 | peOf">@typeOf</h3>.......<pre><c |
| 28500 | 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 74 79 70 65 4f 66 28 65 78 70 72 65 73 73 69 | ode.class="zig">@typeOf(expressi |
| 28520 | 6f 6e 29 20 2d 26 67 74 3b 20 74 79 70 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 | on).->.type</code></pre>..... |
| 28540 | 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e | ..<p>.......This.function.return |
| 28560 | 73 20 61 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 63 6f 6e 73 74 61 6e 74 2c 20 77 68 69 63 68 | s.a.compile-time.constant,.which |
| 28580 | 20 69 73 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 0a 20 20 20 20 20 20 65 78 70 72 65 73 | .is.the.type.of.the.......expres |
| 285a0 | 73 69 6f 6e 20 70 61 73 73 65 64 20 61 73 20 61 6e 20 61 72 67 75 6d 65 6e 74 2e 20 54 68 65 20 | sion.passed.as.an.argument..The. |
| 285c0 | 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 65 76 61 6c 75 61 74 65 64 2e 0a 20 20 20 20 20 20 3c | expression.is.evaluated........< |
| 285e0 | 2f 70 3e 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 62 75 69 6c 64 2d 6d 6f 64 65 22 3e 42 | /p>........<h2.id="build-mode">B |
| 28600 | 75 69 6c 64 20 4d 6f 64 65 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a | uild.Mode</h2>.......<p>.......Z |
| 28620 | 69 67 20 68 61 73 20 74 68 72 65 65 20 62 75 69 6c 64 20 6d 6f 64 65 73 3a 0a 20 20 20 20 20 20 | ig.has.three.build.modes:....... |
| 28640 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 | </p>.......<ul>.........<li><a.h |
| 28660 | 72 65 66 3d 22 23 62 75 69 6c 64 2d 6d 6f 64 65 2d 64 65 62 75 67 22 3e 44 65 62 75 67 3c 2f 61 | ref="#build-mode-debug">Debug</a |
| 28680 | 3e 20 28 64 65 66 61 75 6c 74 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 | >.(default)</li>.........<li><a. |
| 286a0 | 68 72 65 66 3d 22 23 62 75 69 6c 64 2d 6d 6f 64 65 2d 72 65 6c 65 61 73 65 2d 66 61 73 74 22 3e | href="#build-mode-release-fast"> |
| 286c0 | 52 65 6c 65 61 73 65 46 61 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 | ReleaseFast</a></li>.........<li |
| 286e0 | 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 64 2d 6d 6f 64 65 2d 72 65 6c 65 61 73 65 2d 73 61 | ><a.href="#build-mode-release-sa |
| 28700 | 66 65 22 3e 52 65 6c 65 61 73 65 53 61 66 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c | fe">ReleaseSafe</a></li>.......< |
| 28720 | 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 6f 20 61 64 64 20 73 74 61 6e | /ul>.......<p>.......To.add.stan |
| 28740 | 64 61 72 64 20 62 75 69 6c 64 20 6f 70 74 69 6f 6e 73 20 74 6f 20 61 20 3c 63 6f 64 65 3e 62 75 | dard.build.options.to.a.<code>bu |
| 28760 | 69 6c 64 2e 7a 69 67 3c 2f 63 6f 64 65 3e 20 66 69 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a | ild.zig</code>.file:.......</p>. |
| 28780 | 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 63 6f 6e 73 | ......<pre><code.class="sh">cons |
| 287a0 | 74 20 42 75 69 6c 64 65 72 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 62 75 69 6c 64 | t.Builder.=.@import("std").build |
| 287c0 | 2e 42 75 69 6c 64 65 72 3b 0a 0a 70 75 62 20 66 6e 20 62 75 69 6c 64 28 62 3a 20 26 61 6d 70 3b | .Builder;..pub.fn.build(b:.& |
| 287e0 | 42 75 69 6c 64 65 72 29 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 65 78 65 20 3d 20 62 2e 61 64 64 | Builder).{.....const.exe.=.b.add |
| 28800 | 45 78 65 63 75 74 61 62 6c 65 28 22 65 78 61 6d 70 6c 65 22 2c 20 22 65 78 61 6d 70 6c 65 2e 7a | Executable("example",."example.z |
| 28820 | 69 67 22 29 3b 0a 20 20 20 20 65 78 65 2e 73 65 74 42 75 69 6c 64 4d 6f 64 65 28 62 2e 73 74 61 | ig");.....exe.setBuildMode(b.sta |
| 28840 | 6e 64 61 72 64 52 65 6c 65 61 73 65 4f 70 74 69 6f 6e 73 28 29 29 3b 0a 20 20 20 20 62 2e 64 65 | ndardReleaseOptions());.....b.de |
| 28860 | 66 61 75 6c 74 5f 73 74 65 70 2e 64 65 70 65 6e 64 4f 6e 28 26 61 6d 70 3b 65 78 65 2e 73 74 65 | fault_step.dependOn(&exe.ste |
| 28880 | 70 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 | p);.}</code></pre>.......<p>.... |
| 288a0 | 20 20 20 54 68 69 73 20 63 61 75 73 65 73 20 74 68 65 73 65 20 6f 70 74 69 6f 6e 73 20 74 6f 20 | ...This.causes.these.options.to. |
| 288c0 | 62 65 20 61 76 61 69 6c 61 62 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | be.available:.......</p>.......< |
| 288e0 | 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 20 20 2d 44 72 65 6c 65 61 73 65 | pre><code.class="sh">..-Drelease |
| 28900 | 2d 73 61 66 65 3d 28 62 6f 6f 6c 29 20 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 6f 6e 20 61 | -safe=(bool)..optimizations.on.a |
| 28920 | 6e 64 20 73 61 66 65 74 79 20 6f 6e 0a 20 20 2d 44 72 65 6c 65 61 73 65 2d 66 61 73 74 3d 28 62 | nd.safety.on...-Drelease-fast=(b |
| 28940 | 6f 6f 6c 29 20 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 6f 6e 20 61 6e 64 20 73 61 66 65 74 | ool)..optimizations.on.and.safet |
| 28960 | 79 20 6f 66 66 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d | y.off</code></pre>.......<h3.id= |
| 28980 | 22 62 75 69 6c 64 2d 6d 6f 64 65 2d 64 65 62 75 67 22 3e 44 65 62 75 67 3c 2f 68 32 3e 0a 20 20 | "build-mode-debug">Debug</h2>... |
| 289a0 | 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 | ....<pre><code.class="sh">$.zig. |
| 289c0 | 62 75 69 6c 64 2d 65 78 65 20 65 78 61 6d 70 6c 65 2e 7a 69 67 3c 2f 63 6f 64 65 3e 3c 2f 70 72 | build-exe.example.zig</code></pr |
| 289e0 | 65 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 46 61 73 74 20 63 | e>.......<ul>.........<li>Fast.c |
| 28a00 | 6f 6d 70 69 6c 61 74 69 6f 6e 20 73 70 65 65 64 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c | ompilation.speed</li>.........<l |
| 28a20 | 69 3e 53 61 66 65 74 79 20 63 68 65 63 6b 73 20 65 6e 61 62 6c 65 64 3c 2f 6c 69 3e 0a 20 20 20 | i>Safety.checks.enabled</li>.... |
| 28a40 | 20 20 20 20 20 3c 6c 69 3e 53 6c 6f 77 20 72 75 6e 74 69 6d 65 20 70 65 72 66 6f 72 6d 61 6e 63 | .....<li>Slow.runtime.performanc |
| 28a60 | 65 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d | e</li>.......</ul>.......<h3.id= |
| 28a80 | 22 62 75 69 6c 64 2d 6d 6f 64 65 2d 72 65 6c 65 61 73 65 2d 66 61 73 74 22 3e 52 65 6c 65 61 73 | "build-mode-release-fast">Releas |
| 28aa0 | 65 46 61 73 74 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | eFast</h2>.......<pre><code.clas |
| 28ac0 | 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 65 78 61 6d 70 6c 65 2e 7a | s="sh">$.zig.build-exe.example.z |
| 28ae0 | 69 67 20 2d 2d 72 65 6c 65 61 73 65 2d 66 61 73 74 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 | ig.--release-fast</code></pre>.. |
| 28b00 | 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 46 61 73 74 20 72 75 6e 74 69 | .....<ul>.........<li>Fast.runti |
| 28b20 | 6d 65 20 70 65 72 66 6f 72 6d 61 6e 63 65 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e | me.performance</li>.........<li> |
| 28b40 | 53 61 66 65 74 79 20 63 68 65 63 6b 73 20 64 69 73 61 62 6c 65 64 3c 2f 6c 69 3e 0a 20 20 20 20 | Safety.checks.disabled</li>..... |
| 28b60 | 20 20 20 20 3c 6c 69 3e 53 6c 6f 77 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 73 70 65 65 64 3c 2f | ....<li>Slow.compilation.speed</ |
| 28b80 | 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 75 | li>.......</ul>.......<h3.id="bu |
| 28ba0 | 69 6c 64 2d 6d 6f 64 65 2d 72 65 6c 65 61 73 65 2d 73 61 66 65 22 3e 52 65 6c 65 61 73 65 53 61 | ild-mode-release-safe">ReleaseSa |
| 28bc0 | 66 65 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 | fe</h2>.......<pre><code.class=" |
| 28be0 | 73 68 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 65 78 61 6d 70 6c 65 2e 7a 69 67 20 | sh">$.zig.build-exe.example.zig. |
| 28c00 | 2d 2d 72 65 6c 65 61 73 65 2d 73 61 66 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 | --release-safe</code></pre>..... |
| 28c20 | 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 4d 65 64 69 75 6d 20 72 75 6e 74 69 6d | ..<ul>.........<li>Medium.runtim |
| 28c40 | 65 20 70 65 72 66 6f 72 6d 61 6e 63 65 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 | e.performance</li>.........<li>S |
| 28c60 | 61 66 65 74 79 20 63 68 65 63 6b 73 20 65 6e 61 62 6c 65 64 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | afety.checks.enabled</li>....... |
| 28c80 | 20 20 3c 6c 69 3e 53 6c 6f 77 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 73 70 65 65 64 3c 2f 6c 69 | ..<li>Slow.compilation.speed</li |
| 28ca0 | 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a | >.......</ul>.......<p>See.also: |
| 28cc0 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 | </p>.......<ul>.........<li><a.h |
| 28ce0 | 72 65 66 3d 22 23 63 6f 6d 70 69 6c 65 2d 76 61 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 | ref="#compile-variables">Compile |
| 28d00 | 20 56 61 72 69 61 62 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e | .Variables</a></li>.........<li> |
| 28d20 | 3c 61 20 68 72 65 66 3d 22 23 7a 69 67 2d 62 75 69 6c 64 2d 73 79 73 74 65 6d 22 3e 5a 69 67 20 | <a.href="#zig-build-system">Zig. |
| 28d40 | 42 75 69 6c 64 20 53 79 73 74 65 6d 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c | Build.System</a></li>.........<l |
| 28d60 | 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 69 6e 65 64 2d 62 65 68 61 76 69 6f 72 22 3e | i><a.href="#undefined-behavior"> |
| 28d80 | 55 6e 64 65 66 69 6e 65 64 20 42 65 68 61 76 69 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 | Undefined.Behavior</a></li>..... |
| 28da0 | 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 75 6e 64 65 66 69 6e 65 64 2d | ..</ul>.......<h2.id="undefined- |
| 28dc0 | 62 65 68 61 76 69 6f 72 22 3e 55 6e 64 65 66 69 6e 65 64 20 42 65 68 61 76 69 6f 72 3c 2f 68 32 | behavior">Undefined.Behavior</h2 |
| 28de0 | 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 68 61 73 20 6d 61 6e 79 20 69 | >.......<p>.......Zig.has.many.i |
| 28e00 | 6e 73 74 61 6e 63 65 73 20 6f 66 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 2e 20 | nstances.of.undefined.behavior.. |
| 28e20 | 49 66 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 20 69 73 0a 20 20 20 20 20 20 64 | If.undefined.behavior.is.......d |
| 28e40 | 65 74 65 63 74 65 64 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2c 20 5a 69 67 20 65 6d 69 | etected.at.compile-time,.Zig.emi |
| 28e60 | 74 73 20 61 6e 20 65 72 72 6f 72 2e 20 4d 6f 73 74 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 | ts.an.error..Most.undefined.beha |
| 28e80 | 76 69 6f 72 20 74 68 61 74 0a 20 20 20 20 20 20 63 61 6e 6e 6f 74 20 62 65 20 64 65 74 65 63 74 | vior.that.......cannot.be.detect |
| 28ea0 | 65 64 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 63 61 6e 20 62 65 20 64 65 74 65 63 74 | ed.at.compile-time.can.be.detect |
| 28ec0 | 65 64 20 61 74 20 72 75 6e 74 69 6d 65 2e 20 49 6e 20 74 68 65 73 65 20 63 61 73 65 73 2c 0a 20 | ed.at.runtime..In.these.cases,.. |
| 28ee0 | 20 20 20 20 20 5a 69 67 20 68 61 73 20 73 61 66 65 74 79 20 63 68 65 63 6b 73 2e 20 53 61 66 65 | .....Zig.has.safety.checks..Safe |
| 28f00 | 74 79 20 63 68 65 63 6b 73 20 63 61 6e 20 62 65 20 64 69 73 61 62 6c 65 64 20 6f 6e 20 61 20 70 | ty.checks.can.be.disabled.on.a.p |
| 28f20 | 65 72 2d 62 6c 6f 63 6b 20 62 61 73 69 73 0a 20 20 20 20 20 20 77 69 74 68 20 3c 63 6f 64 65 3e | er-block.basis.......with.<code> |
| 28f40 | 40 73 65 74 44 65 62 75 67 53 61 66 65 74 79 3c 2f 63 6f 64 65 3e 2e 20 54 68 65 20 3c 61 20 68 | @setDebugSafety</code>..The.<a.h |
| 28f60 | 72 65 66 3d 22 23 62 75 69 6c 64 2d 6d 6f 64 65 2d 72 65 6c 65 61 73 65 2d 66 61 73 74 22 3e 52 | ref="#build-mode-release-fast">R |
| 28f80 | 65 6c 65 61 73 65 46 61 73 74 3c 2f 61 3e 0a 20 20 20 20 20 20 62 75 69 6c 64 20 6d 6f 64 65 20 | eleaseFast</a>.......build.mode. |
| 28fa0 | 64 69 73 61 62 6c 65 73 20 61 6c 6c 20 73 61 66 65 74 79 20 63 68 65 63 6b 73 20 69 6e 20 6f 72 | disables.all.safety.checks.in.or |
| 28fc0 | 64 65 72 20 74 6f 20 66 61 63 69 6c 69 74 61 74 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 2e | der.to.facilitate.optimizations. |
| 28fe0 | 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 65 6e | .......</p>.......<p>.......When |
| 29000 | 20 61 20 73 61 66 65 74 79 20 63 68 65 63 6b 20 66 61 69 6c 73 2c 20 5a 69 67 20 63 72 61 73 68 | .a.safety.check.fails,.Zig.crash |
| 29020 | 65 73 20 77 69 74 68 20 61 20 73 74 61 63 6b 20 74 72 61 63 65 2c 20 6c 69 6b 65 20 74 68 69 73 | es.with.a.stack.trace,.like.this |
| 29040 | 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | :.......</p>.......<pre><code.cl |
| 29060 | 61 73 73 3d 22 7a 69 67 22 3e 74 65 73 74 20 22 73 61 66 65 74 79 20 63 68 65 63 6b 22 20 7b 0a | ass="zig">test."safety.check".{. |
| 29080 | 20 20 20 20 75 6e 72 65 61 63 68 61 62 6c 65 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a | ....unreachable;.}</code></pre>. |
| 290a0 | 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 | ......<pre><code.class="sh">$.zi |
| 290c0 | 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 73 61 66 65 74 79 20 | g.test.test.zig.Test.1/1.safety. |
| 290e0 | 63 68 65 63 6b 2e 2e 2e 72 65 61 63 68 65 64 20 75 6e 72 65 61 63 68 61 62 6c 65 20 63 6f 64 65 | check...reached.unreachable.code |
| 29100 | 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 | ./home/andy/dev/zig/build/lib/zi |
| 29120 | 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 7a 69 67 72 74 2e 7a 69 67 3a 31 36 3a 33 35 3a 20 30 | g/std/special/zigrt.zig:16:35:.0 |
| 29140 | 78 30 30 30 30 30 30 30 30 30 30 32 30 33 33 31 63 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 0a | x000000000020331c.in.???.(test). |
| 29160 | 20 20 20 20 20 20 20 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 75 67 2e 70 61 6e | ........@import("std").debug.pan |
| 29180 | 69 63 28 22 7b 7d 22 2c 20 6d 65 73 73 61 67 65 5f 70 74 72 5b 30 2e 2e 2e 6d 65 73 73 61 67 65 | ic("{}",.message_ptr[0...message |
| 291a0 | 5f 6c 65 6e 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | _len]);......................... |
| 291c0 | 20 20 20 20 20 20 20 20 20 20 5e 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 | ..........^./home/andy/dev/zig/b |
| 291e0 | 75 69 6c 64 2f 74 65 73 74 2e 7a 69 67 3a 32 3a 35 3a 20 30 78 30 30 30 30 30 30 30 30 30 30 32 | uild/test.zig:2:5:.0x00000000002 |
| 29200 | 30 33 32 39 37 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 0a 20 20 20 20 75 6e 72 65 61 63 68 61 | 03297.in.???.(test).....unreacha |
| 29220 | 62 6c 65 3b 0a 20 20 20 20 5e 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 | ble;.....^./home/andy/dev/zig/bu |
| 29240 | 69 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 74 65 73 74 5f 72 75 6e | ild/lib/zig/std/special/test_run |
| 29260 | 6e 65 72 2e 7a 69 67 3a 39 3a 32 31 3a 20 30 78 30 30 30 30 30 30 30 30 30 30 32 31 34 62 30 61 | ner.zig:9:21:.0x0000000000214b0a |
| 29280 | 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 0a 20 20 20 20 20 20 20 20 74 65 73 74 5f 66 6e 2e 66 | .in.???.(test).........test_fn.f |
| 292a0 | 75 6e 63 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 0a 2f 68 6f | unc();.....................^./ho |
| 292c0 | 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 74 | me/andy/dev/zig/build/lib/zig/st |
| 292e0 | 64 2f 73 70 65 63 69 61 6c 2f 62 6f 6f 74 73 74 72 61 70 2e 7a 69 67 3a 35 30 3a 32 31 3a 20 30 | d/special/bootstrap.zig:50:21:.0 |
| 29300 | 78 30 30 30 30 30 30 30 30 30 30 32 31 34 61 31 37 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 0a | x0000000000214a17.in.???.(test). |
| 29320 | 20 20 20 20 72 65 74 75 72 6e 20 72 6f 6f 74 2e 6d 61 69 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 | ....return.root.main();......... |
| 29340 | 20 20 20 20 20 20 20 20 20 20 20 20 5e 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 | ............^./home/andy/dev/zig |
| 29360 | 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 62 6f 6f 74 73 | /build/lib/zig/std/special/boots |
| 29380 | 74 72 61 70 2e 7a 69 67 3a 33 37 3a 31 33 3a 20 30 78 30 30 30 30 30 30 30 30 30 30 32 31 34 38 | trap.zig:37:13:.0x00000000002148 |
| 293a0 | 64 30 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 0a 20 20 20 20 63 61 6c 6c 4d 61 69 6e 28 61 72 | d0.in.???.(test).....callMain(ar |
| 293c0 | 67 63 2c 20 61 72 67 76 2c 20 65 6e 76 70 29 20 25 25 20 65 78 69 74 28 31 29 3b 0a 20 20 20 20 | gc,.argv,.envp).%%.exit(1);..... |
| 293e0 | 20 20 20 20 20 20 20 20 5e 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 | ........^./home/andy/dev/zig/bui |
| 29400 | 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 62 6f 6f 74 73 74 72 61 70 | ld/lib/zig/std/special/bootstrap |
| 29420 | 2e 7a 69 67 3a 33 30 3a 32 30 3a 20 30 78 30 30 30 30 30 30 30 30 30 30 32 31 34 38 32 30 20 69 | .zig:30:20:.0x0000000000214820.i |
| 29440 | 6e 20 3f 3f 3f 20 28 74 65 73 74 29 0a 20 20 20 20 63 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 | n.???.(test).....callMainAndExit |
| 29460 | 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 0a 0a 54 65 73 74 73 20 66 | ()....................^..Tests.f |
| 29480 | 61 69 6c 65 64 2e 20 55 73 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 | ailed..Use.the.following.command |
| 294a0 | 20 74 6f 20 72 65 70 72 6f 64 75 63 65 20 74 68 65 20 66 61 69 6c 75 72 65 3a 0a 2e 2f 74 65 73 | .to.reproduce.the.failure:../tes |
| 294c0 | 74 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 75 6e 64 | t</code></pre>.......<h3.id="und |
| 294e0 | 65 66 2d 75 6e 72 65 61 63 68 61 62 6c 65 22 3e 52 65 61 63 68 69 6e 67 20 55 6e 72 65 61 63 68 | ef-unreachable">Reaching.Unreach |
| 29500 | 61 62 6c 65 20 43 6f 64 65 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 | able.Code</h3>.......<p>At.compi |
| 29520 | 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | le-time:</p>.......<pre><code.cl |
| 29540 | 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 | ass="zig">comptime.{.....assert( |
| 29560 | 66 61 6c 73 65 29 3b 0a 7d 0a 66 6e 20 61 73 73 65 72 74 28 6f 6b 3a 20 62 6f 6f 6c 29 20 7b 0a | false);.}.fn.assert(ok:.bool).{. |
| 29580 | 20 20 20 20 69 66 20 28 21 6f 6b 29 20 75 6e 72 65 61 63 68 61 62 6c 65 3b 20 2f 2f 20 61 73 73 | ....if.(!ok).unreachable;.//.ass |
| 295a0 | 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 | ertion.failure.}</code></pre>... |
| 295c0 | 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 | ....<pre><code.class="sh">$.zig. |
| 295e0 | 62 75 69 6c 64 2d 6f 62 6a 20 74 65 73 74 2e 7a 69 67 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 | build-obj.test.zig./home/andy/de |
| 29600 | 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 31 34 3a 20 65 72 72 6f 72 | v/zig/build/test.zig:5:14:.error |
| 29620 | 3a 20 75 6e 61 62 6c 65 20 74 6f 20 65 76 61 6c 75 61 74 65 20 63 6f 6e 73 74 61 6e 74 20 65 78 | :.unable.to.evaluate.constant.ex |
| 29640 | 70 72 65 73 73 69 6f 6e 0a 20 20 20 20 69 66 20 28 21 6f 6b 29 20 75 6e 72 65 61 63 68 61 62 6c | pression.....if.(!ok).unreachabl |
| 29660 | 65 3b 20 2f 2f 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 0a 20 20 20 20 20 20 20 20 | e;.//.assertion.failure......... |
| 29680 | 20 20 20 20 20 5e 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f | .....^./home/andy/dev/zig/build/ |
| 296a0 | 74 65 73 74 2e 7a 69 67 3a 32 3a 31 31 3a 20 6e 6f 74 65 3a 20 63 61 6c 6c 65 64 20 66 72 6f 6d | test.zig:2:11:.note:.called.from |
| 296c0 | 20 68 65 72 65 0a 20 20 20 20 61 73 73 65 72 74 28 66 61 6c 73 65 29 3b 0a 20 20 20 20 20 20 20 | .here.....assert(false);........ |
| 296e0 | 20 20 20 5e 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 74 65 | ...^./home/andy/dev/zig/build/te |
| 29700 | 73 74 2e 7a 69 67 3a 31 3a 31 30 3a 20 6e 6f 74 65 3a 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 | st.zig:1:10:.note:.called.from.h |
| 29720 | 65 72 65 0a 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 20 20 20 20 20 5e 3c 2f 63 6f 64 65 3e | ere.comptime.{..........^</code> |
| 29740 | 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 20 63 72 61 73 68 | </pre>.......<p>At.runtime.crash |
| 29760 | 65 73 20 77 69 74 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 3c 63 6f 64 65 3e 72 65 61 63 68 65 | es.with.the.message.<code>reache |
| 29780 | 64 20 75 6e 72 65 61 63 68 61 62 6c 65 20 63 6f 64 65 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 61 20 | d.unreachable.code</code>.and.a. |
| 297a0 | 73 74 61 63 6b 20 74 72 61 63 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 75 | stack.trace.</p>.......<h3.id="u |
| 297c0 | 6e 64 65 66 2d 69 6e 64 65 78 2d 6f 75 74 2d 6f 66 2d 62 6f 75 6e 64 73 22 3e 49 6e 64 65 78 20 | ndef-index-out-of-bounds">Index. |
| 297e0 | 6f 75 74 20 6f 66 20 42 6f 75 6e 64 73 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 | out.of.Bounds</h3>.......<p>At.c |
| 29800 | 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 | ompile-time:</p>.......<pre><cod |
| 29820 | 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 63 6f 6e | e.class="zig">comptime.{.....con |
| 29840 | 73 74 20 61 72 72 61 79 20 3d 20 22 68 65 6c 6c 6f 22 3b 0a 20 20 20 20 63 6f 6e 73 74 20 67 61 | st.array.=."hello";.....const.ga |
| 29860 | 72 62 61 67 65 20 3d 20 61 72 72 61 79 5b 35 5d 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e | rbage.=.array[5];.}</code></pre> |
| 29880 | 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a | .......<pre><code.class="sh">$.z |
| 298a0 | 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 74 65 73 74 2e 7a 69 67 0a 2f 68 6f 6d 65 2f 61 6e 64 79 | ig.build-obj.test.zig./home/andy |
| 298c0 | 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 32 36 3a 20 65 72 | /dev/zig/build/test.zig:3:26:.er |
| 298e0 | 72 6f 72 3a 20 69 6e 64 65 78 20 35 20 6f 75 74 73 69 64 65 20 61 72 72 61 79 20 6f 66 20 73 69 | ror:.index.5.outside.array.of.si |
| 29900 | 7a 65 20 35 0a 20 20 20 20 63 6f 6e 73 74 20 67 61 72 62 61 67 65 20 3d 20 61 72 72 61 79 5b 35 | ze.5.....const.garbage.=.array[5 |
| 29920 | 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 3c 2f 63 | ];..........................^</c |
| 29940 | 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 20 63 | ode></pre>.......<p>At.runtime.c |
| 29960 | 72 61 73 68 65 73 20 77 69 74 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 3c 63 6f 64 65 3e 69 6e | rashes.with.the.message.<code>in |
| 29980 | 64 65 78 20 6f 75 74 20 6f 66 20 62 6f 75 6e 64 73 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 61 20 73 | dex.out.of.bounds</code>.and.a.s |
| 299a0 | 74 61 63 6b 20 74 72 61 63 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 75 6e | tack.trace.</p>.......<h3.id="un |
| 299c0 | 64 65 66 2d 63 61 73 74 2d 6e 65 67 61 74 69 76 65 2d 75 6e 73 69 67 6e 65 64 22 3e 43 61 73 74 | def-cast-negative-unsigned">Cast |
| 299e0 | 20 4e 65 67 61 74 69 76 65 20 4e 75 6d 62 65 72 20 74 6f 20 55 6e 73 69 67 6e 65 64 20 49 6e 74 | .Negative.Number.to.Unsigned.Int |
| 29a00 | 65 67 65 72 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 | eger</h3>.......<p>At.compile-ti |
| 29a20 | 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 | me:</p>.......<pre><code.class=" |
| 29a40 | 7a 69 67 22 3e 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 76 61 6c 75 65 3a | zig">comptime.{.....const.value: |
| 29a60 | 20 69 33 32 20 3d 20 2d 31 3b 0a 20 20 20 20 63 6f 6e 73 74 20 75 6e 73 69 67 6e 65 64 20 3d 20 | .i32.=.-1;.....const.unsigned.=. |
| 29a80 | 75 33 32 28 76 61 6c 75 65 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 | u32(value);.}</code></pre>...... |
| 29aa0 | 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 62 75 69 | .<pre><code.class="sh">$.zig.bui |
| 29ac0 | 6c 64 2d 6f 62 6a 20 74 65 73 74 2e 7a 69 67 20 74 65 73 74 2e 7a 69 67 3a 33 3a 32 35 3a 20 65 | ld-obj.test.zig.test.zig:3:25:.e |
| 29ae0 | 72 72 6f 72 3a 20 61 74 74 65 6d 70 74 20 74 6f 20 63 61 73 74 20 6e 65 67 61 74 69 76 65 20 76 | rror:.attempt.to.cast.negative.v |
| 29b00 | 61 6c 75 65 20 74 6f 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 0a 20 20 20 20 63 6f 6e | alue.to.unsigned.integer.....con |
| 29b20 | 73 74 20 75 6e 73 69 67 6e 65 64 20 3d 20 75 33 32 28 76 61 6c 75 65 29 3b 0a 20 20 20 20 20 20 | st.unsigned.=.u32(value);....... |
| 29b40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e | ..................^</code></pre> |
| 29b60 | 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 20 63 72 61 73 68 65 73 20 77 69 74 | .......<p>At.runtime.crashes.wit |
| 29b80 | 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 3c 63 6f 64 65 3e 61 74 74 65 6d 70 74 20 74 6f 20 63 | h.the.message.<code>attempt.to.c |
| 29ba0 | 61 73 74 20 6e 65 67 61 74 69 76 65 20 76 61 6c 75 65 20 74 6f 20 75 6e 73 69 67 6e 65 64 20 69 | ast.negative.value.to.unsigned.i |
| 29bc0 | 6e 74 65 67 65 72 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 61 20 73 74 61 63 6b 20 74 72 61 63 65 2e | nteger</code>.and.a.stack.trace. |
| 29be0 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 66 20 79 6f 75 20 61 72 65 20 | </p>.......<p>.......If.you.are. |
| 29c00 | 74 72 79 69 6e 67 20 74 6f 20 6f 62 74 61 69 6e 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 76 61 6c | trying.to.obtain.the.maximum.val |
| 29c20 | 75 65 20 6f 66 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 2c 20 75 73 65 20 3c | ue.of.an.unsigned.integer,.use.< |
| 29c40 | 63 6f 64 65 3e 40 6d 61 78 56 61 6c 75 65 28 54 29 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 | code>@maxValue(T)</code>,....... |
| 29c60 | 77 68 65 72 65 20 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e 20 69 73 20 74 68 65 20 69 6e 74 65 | where.<code>T</code>.is.the.inte |
| 29c80 | 67 65 72 20 74 79 70 65 2c 20 73 75 63 68 20 61 73 20 3c 63 6f 64 65 3e 75 33 32 3c 2f 63 6f 64 | ger.type,.such.as.<code>u32</cod |
| 29ca0 | 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 75 6e 64 | e>........</p>.......<h3.id="und |
| 29cc0 | 65 66 2d 63 61 73 74 2d 74 72 75 6e 63 61 74 65 73 2d 64 61 74 61 22 3e 43 61 73 74 20 54 72 75 | ef-cast-truncates-data">Cast.Tru |
| 29ce0 | 6e 63 61 74 65 73 20 44 61 74 61 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d | ncates.Data</h3>.......<p>At.com |
| 29d00 | 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 | pile-time:</p>.......<pre><code. |
| 29d20 | 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 63 6f 6e 73 74 | class="zig">comptime.{.....const |
| 29d40 | 20 73 70 61 72 74 61 6e 5f 63 6f 75 6e 74 3a 20 75 31 36 20 3d 20 33 30 30 3b 0a 20 20 20 20 63 | .spartan_count:.u16.=.300;.....c |
| 29d60 | 6f 6e 73 74 20 62 79 74 65 20 3d 20 75 38 28 73 70 61 72 74 61 6e 5f 63 6f 75 6e 74 29 3b 0a 7d | onst.byte.=.u8(spartan_count);.} |
| 29d80 | 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 | </code></pre>.......<pre><code.c |
| 29da0 | 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 74 65 73 74 2e 7a | lass="sh">$.zig.build-obj.test.z |
| 29dc0 | 69 67 0a 74 65 73 74 2e 7a 69 67 3a 33 3a 32 30 3a 20 65 72 72 6f 72 3a 20 63 61 73 74 20 66 72 | ig.test.zig:3:20:.error:.cast.fr |
| 29de0 | 6f 6d 20 27 75 31 36 27 20 74 6f 20 27 75 38 27 20 74 72 75 6e 63 61 74 65 73 20 62 69 74 73 0a | om.'u16'.to.'u8'.truncates.bits. |
| 29e00 | 20 20 20 20 63 6f 6e 73 74 20 62 79 74 65 20 3d 20 75 38 28 73 70 61 72 74 61 6e 5f 63 6f 75 6e | ....const.byte.=.u8(spartan_coun |
| 29e20 | 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 3c 2f 63 6f 64 65 3e 3c | t);....................^</code>< |
| 29e40 | 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 20 63 72 61 73 68 65 | /pre>.......<p>At.runtime.crashe |
| 29e60 | 73 20 77 69 74 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 3c 63 6f 64 65 3e 69 6e 74 65 67 65 72 | s.with.the.message.<code>integer |
| 29e80 | 20 63 61 73 74 20 74 72 75 6e 63 61 74 65 64 20 62 69 74 73 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 | .cast.truncated.bits</code>.and. |
| 29ea0 | 61 20 73 74 61 63 6b 20 74 72 61 63 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 | a.stack.trace.</p>.......<p>.... |
| 29ec0 | 20 20 20 49 66 20 79 6f 75 20 61 72 65 20 74 72 79 69 6e 67 20 74 6f 20 74 72 75 6e 63 61 74 65 | ...If.you.are.trying.to.truncate |
| 29ee0 | 20 62 69 74 73 2c 20 75 73 65 20 3c 63 6f 64 65 3e 40 74 72 75 6e 63 61 74 65 28 54 2c 20 76 61 | .bits,.use.<code>@truncate(T,.va |
| 29f00 | 6c 75 65 29 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 77 68 65 72 65 20 3c 63 6f 64 65 3e 54 | lue)</code>,.......where.<code>T |
| 29f20 | 3c 2f 63 6f 64 65 3e 20 69 73 20 74 68 65 20 69 6e 74 65 67 65 72 20 74 79 70 65 2c 20 73 75 63 | </code>.is.the.integer.type,.suc |
| 29f40 | 68 20 61 73 20 3c 63 6f 64 65 3e 75 33 32 3c 2f 63 6f 64 65 3e 2c 20 61 6e 64 20 3c 63 6f 64 65 | h.as.<code>u32</code>,.and.<code |
| 29f60 | 3e 76 61 6c 75 65 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 69 73 20 74 68 65 20 76 61 6c 75 65 | >value</code>.......is.the.value |
| 29f80 | 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 74 72 75 6e 63 61 74 65 2e 0a 20 20 20 20 20 20 3c 2f 70 | .you.want.to.truncate........</p |
| 29fa0 | 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 75 6e 64 65 66 2d 69 6e 74 65 67 65 72 2d 6f 76 | >.......<h3.id="undef-integer-ov |
| 29fc0 | 65 72 66 6c 6f 77 22 3e 49 6e 74 65 67 65 72 20 4f 76 65 72 66 6c 6f 77 3c 2f 68 33 3e 0a 20 20 | erflow">Integer.Overflow</h3>... |
| 29fe0 | 20 20 20 20 3c 68 34 20 69 64 3d 22 75 6e 64 65 66 2d 69 6e 74 2d 6f 76 65 72 66 6c 6f 77 2d 64 | ....<h4.id="undef-int-overflow-d |
| 2a000 | 65 66 61 75 6c 74 22 3e 44 65 66 61 75 6c 74 20 4f 70 65 72 61 74 69 6f 6e 73 3c 2f 68 34 3e 0a | efault">Default.Operations</h4>. |
| 2a020 | 20 20 20 20 20 20 3c 70 3e 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6f 70 65 72 61 74 6f 72 73 | ......<p>The.following.operators |
| 2a040 | 20 63 61 6e 20 63 61 75 73 65 20 69 6e 74 65 67 65 72 20 6f 76 65 72 66 6c 6f 77 3a 3c 2f 70 3e | .can.cause.integer.overflow:</p> |
| 2a060 | 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 2b 3c | .......<ul>.........<li><code>+< |
| 2a080 | 2f 63 6f 64 65 3e 20 28 61 64 64 69 74 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c | /code>.(addition)</li>.........< |
| 2a0a0 | 6c 69 3e 3c 63 6f 64 65 3e 2d 3c 2f 63 6f 64 65 3e 20 28 73 75 62 74 72 61 63 74 69 6f 6e 29 3c | li><code>-</code>.(subtraction)< |
| 2a0c0 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 2d 3c 2f 63 6f 64 65 3e 20 | /li>.........<li><code>-</code>. |
| 2a0e0 | 28 6e 65 67 61 74 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 | (negation)</li>.........<li><cod |
| 2a100 | 65 3e 2a 3c 2f 63 6f 64 65 3e 20 28 6d 75 6c 74 69 70 6c 69 63 61 74 69 6f 6e 29 3c 2f 6c 69 3e | e>*</code>.(multiplication)</li> |
| 2a120 | 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 2f 3c 2f 63 6f 64 65 3e 20 28 64 69 76 | .........<li><code>/</code>.(div |
| 2a140 | 69 73 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 64 | ision)</li>.........<li><code>@d |
| 2a160 | 69 76 54 72 75 6e 63 3c 2f 63 6f 64 65 3e 20 28 64 69 76 69 73 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 | ivTrunc</code>.(division)</li>.. |
| 2a180 | 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 64 69 76 46 6c 6f 6f 72 3c 2f 63 6f 64 65 | .......<li><code>@divFloor</code |
| 2a1a0 | 3e 20 28 64 69 76 69 73 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 | >.(division)</li>.........<li><c |
| 2a1c0 | 6f 64 65 3e 40 64 69 76 45 78 61 63 74 3c 2f 63 6f 64 65 3e 20 28 64 69 76 69 73 69 6f 6e 29 3c | ode>@divExact</code>.(division)< |
| 2a1e0 | 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 45 78 61 6d 70 6c | /li>.......</ul>.......<p>Exampl |
| 2a200 | 65 20 77 69 74 68 20 61 64 64 69 74 69 6f 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a | e.with.addition.at.compile-time: |
| 2a220 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 | </p>.......<pre><code.class="zig |
| 2a240 | 22 3e 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 76 61 72 20 62 79 74 65 3a 20 75 38 20 3d 20 | ">comptime.{.....var.byte:.u8.=. |
| 2a260 | 32 35 35 3b 0a 20 20 20 20 62 79 74 65 20 2b 3d 20 31 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 | 255;.....byte.+=.1;.}</code></pr |
| 2a280 | 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 | e>.......<pre><code.class="sh">$ |
| 2a2a0 | 20 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 74 65 73 74 2e 7a 69 67 0a 2f 68 6f 6d 65 2f 61 6e | .zig.build-obj.test.zig./home/an |
| 2a2c0 | 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 31 30 3a 20 | dy/dev/zig/build/test.zig:3:10:. |
| 2a2e0 | 65 72 72 6f 72 3a 20 6f 70 65 72 61 74 69 6f 6e 20 63 61 75 73 65 64 20 6f 76 65 72 66 6c 6f 77 | error:.operation.caused.overflow |
| 2a300 | 0a 20 20 20 20 62 79 74 65 20 2b 3d 20 31 3b 0a 20 20 20 20 20 20 20 20 20 5e 3c 2f 63 6f 64 65 | .....byte.+=.1;..........^</code |
| 2a320 | 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 20 63 72 61 73 | ></pre>.......<p>At.runtime.cras |
| 2a340 | 68 65 73 20 77 69 74 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 3c 63 6f 64 65 3e 69 6e 74 65 67 | hes.with.the.message.<code>integ |
| 2a360 | 65 72 20 6f 76 65 72 66 6c 6f 77 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 61 20 73 74 61 63 6b 20 74 | er.overflow</code>.and.a.stack.t |
| 2a380 | 72 61 63 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 75 6e 64 65 66 2d 69 6e | race.</p>.......<h4.id="undef-in |
| 2a3a0 | 74 2d 6f 76 65 72 66 6c 6f 77 2d 73 74 64 22 3e 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 | t-overflow-std">Standard.Library |
| 2a3c0 | 20 4d 61 74 68 20 46 75 6e 63 74 69 6f 6e 73 3c 2f 68 34 3e 0a 20 20 20 20 20 20 3c 70 3e 54 68 | .Math.Functions</h4>.......<p>Th |
| 2a3e0 | 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 20 73 74 | ese.functions.provided.by.the.st |
| 2a400 | 61 6e 64 61 72 64 20 6c 69 62 72 61 72 79 20 72 65 74 75 72 6e 20 70 6f 73 73 69 62 6c 65 20 65 | andard.library.return.possible.e |
| 2a420 | 72 72 6f 72 73 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c | rrors.</p>.......<ul>.........<l |
| 2a440 | 69 3e 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d 61 74 68 2e 61 64 64 3c | i><code>@import("std").math.add< |
| 2a460 | 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 69 | /code></li>.........<li><code>@i |
| 2a480 | 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d 61 74 68 2e 73 75 62 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 | mport("std").math.sub</code></li |
| 2a4a0 | 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 73 74 64 | >.........<li><code>@import("std |
| 2a4c0 | 22 29 2e 6d 61 74 68 2e 6d 75 6c 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 | ").math.mul</code></li>......... |
| 2a4e0 | 3c 6c 69 3e 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d 61 74 68 2e 64 69 | <li><code>@import("std").math.di |
| 2a500 | 76 54 72 75 6e 63 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c | vTrunc</code></li>.........<li>< |
| 2a520 | 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d 61 74 68 2e 64 69 76 46 6c 6f 6f | code>@import("std").math.divFloo |
| 2a540 | 72 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e | r</code></li>.........<li><code> |
| 2a560 | 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d 61 74 68 2e 64 69 76 45 78 61 63 74 3c 2f 63 6f | @import("std").math.divExact</co |
| 2a580 | 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 69 6d 70 6f | de></li>.........<li><code>@impo |
| 2a5a0 | 72 74 28 22 73 74 64 22 29 2e 6d 61 74 68 2e 73 68 6c 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 | rt("std").math.shl</code></li>.. |
| 2a5c0 | 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 45 78 61 6d 70 6c 65 20 6f 66 20 63 | .....</ul>.......<p>Example.of.c |
| 2a5e0 | 61 74 63 68 69 6e 67 20 61 6e 20 6f 76 65 72 66 6c 6f 77 20 66 6f 72 20 61 64 64 69 74 69 6f 6e | atching.an.overflow.for.addition |
| 2a600 | 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 | :</p>.......<pre><code.class="zi |
| 2a620 | 67 22 3e 63 6f 6e 73 74 20 6d 61 74 68 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d | g">const.math.=.@import("std").m |
| 2a640 | 61 74 68 3b 0a 63 6f 6e 73 74 20 69 6f 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 69 | ath;.const.io.=.@import("std").i |
| 2a660 | 6f 3b 0a 70 75 62 20 66 6e 20 6d 61 69 6e 28 29 20 2d 26 67 74 3b 20 25 76 6f 69 64 20 7b 0a 20 | o;.pub.fn.main().->.%void.{.. |
| 2a680 | 20 20 20 76 61 72 20 62 79 74 65 3a 20 75 38 20 3d 20 32 35 35 3b 0a 0a 20 20 20 20 62 79 74 65 | ...var.byte:.u8.=.255;......byte |
| 2a6a0 | 20 3d 20 69 66 20 28 6d 61 74 68 2e 61 64 64 28 75 38 2c 20 62 79 74 65 2c 20 31 29 29 20 7c 72 | .=.if.(math.add(u8,.byte,.1)).|r |
| 2a6c0 | 65 73 75 6c 74 7c 20 7b 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 0a 20 20 20 20 7d 20 65 6c | esult|.{.........result.....}.el |
| 2a6e0 | 73 65 20 7c 65 72 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 25 25 69 6f 2e 73 74 64 65 72 72 2e 70 | se.|err|.{.........%%io.stderr.p |
| 2a700 | 72 69 6e 74 66 28 22 75 6e 61 62 6c 65 20 74 6f 20 61 64 64 20 6f 6e 65 3a 20 7b 7d 5c 6e 22 2c | rintf("unable.to.add.one:.{}\n", |
| 2a720 | 20 40 65 72 72 6f 72 4e 61 6d 65 28 65 72 72 29 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 | .@errorName(err));.........retur |
| 2a740 | 6e 20 65 72 72 3b 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 25 25 69 6f 2e 73 74 64 65 72 72 2e 70 | n.err;.....};......%%io.stderr.p |
| 2a760 | 72 69 6e 74 66 28 22 72 65 73 75 6c 74 3a 20 7b 7d 5c 6e 22 2c 20 62 79 74 65 29 3b 0a 7d 3c 2f | rintf("result:.{}\n",.byte);.}</ |
| 2a780 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 | code></pre>.......<pre><code.cla |
| 2a7a0 | 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 | ss="sh">$.zig.build-exe.test.zig |
| 2a7c0 | 0a 24 20 2e 2f 74 65 73 74 0a 75 6e 61 62 6c 65 20 74 6f 20 61 64 64 20 6f 6e 65 3a 20 4f 76 65 | .$../test.unable.to.add.one:.Ove |
| 2a7e0 | 72 66 6c 6f 77 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d | rflow</code></pre>.......<h4.id= |
| 2a800 | 22 75 6e 64 65 66 2d 69 6e 74 2d 6f 76 65 72 66 6c 6f 77 2d 62 75 69 6c 74 69 6e 22 3e 42 75 69 | "undef-int-overflow-builtin">Bui |
| 2a820 | 6c 74 69 6e 20 4f 76 65 72 66 6c 6f 77 20 46 75 6e 63 74 69 6f 6e 73 3c 2f 68 34 3e 0a 20 20 20 | ltin.Overflow.Functions</h4>.... |
| 2a840 | 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 73 65 20 62 75 69 6c 74 69 6e 73 20 72 65 74 75 | ...<p>.......These.builtins.retu |
| 2a860 | 72 6e 20 61 20 3c 63 6f 64 65 3e 62 6f 6f 6c 3c 2f 63 6f 64 65 3e 20 6f 66 20 77 68 65 74 68 65 | rn.a.<code>bool</code>.of.whethe |
| 2a880 | 72 20 6f 72 20 6e 6f 74 20 6f 76 65 72 66 6c 6f 77 0a 20 20 20 20 20 20 6f 63 63 75 72 72 65 64 | r.or.not.overflow.......occurred |
| 2a8a0 | 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 72 65 74 75 72 6e 69 6e 67 20 74 68 65 20 6f 76 65 72 66 | ,.as.well.as.returning.the.overf |
| 2a8c0 | 6c 6f 77 65 64 20 62 69 74 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c | lowed.bits:.......</p>.......<ul |
| 2a8e0 | 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 61 64 64 57 69 74 68 4f 76 65 72 | >.........<li><code>@addWithOver |
| 2a900 | 66 6c 6f 77 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f | flow</code></li>.........<li><co |
| 2a920 | 64 65 3e 40 73 75 62 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a | de>@subWithOverflow</code></li>. |
| 2a940 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 6d 75 6c 57 69 74 68 4f 76 65 72 66 6c | ........<li><code>@mulWithOverfl |
| 2a960 | 6f 77 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 | ow</code></li>.........<li><code |
| 2a980 | 3e 40 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 | >@shlWithOverflow</code></li>... |
| 2a9a0 | 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 45 78 61 6d 70 6c | ....</ul>.......<p>.......Exampl |
| 2a9c0 | 65 20 6f 66 20 3c 63 6f 64 65 3e 40 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 63 6f 64 | e.of.<code>@addWithOverflow</cod |
| 2a9e0 | 65 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 | e>:.......</p>.......<pre><code. |
| 2aa00 | 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 69 6f 20 3d 20 40 69 6d 70 6f 72 74 28 22 | class="zig">const.io.=.@import(" |
| 2aa20 | 73 74 64 22 29 2e 69 6f 3b 0a 70 75 62 20 66 6e 20 6d 61 69 6e 28 29 20 2d 26 67 74 3b 20 25 76 | std").io;.pub.fn.main().->.%v |
| 2aa40 | 6f 69 64 20 7b 0a 20 20 20 20 76 61 72 20 62 79 74 65 3a 20 75 38 20 3d 20 32 35 35 3b 0a 0a 20 | oid.{.....var.byte:.u8.=.255;... |
| 2aa60 | 20 20 20 76 61 72 20 72 65 73 75 6c 74 3a 20 75 38 20 3d 20 75 6e 64 65 66 69 6e 65 64 3b 0a 20 | ...var.result:.u8.=.undefined;.. |
| 2aa80 | 20 20 20 69 66 20 28 40 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 28 75 38 2c 20 62 79 74 65 | ...if.(@addWithOverflow(u8,.byte |
| 2aaa0 | 2c 20 31 30 2c 20 26 61 6d 70 3b 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 25 25 | ,.10,.&result)).{.........%% |
| 2aac0 | 69 6f 2e 73 74 64 65 72 72 2e 70 72 69 6e 74 66 28 22 6f 76 65 72 66 6c 6f 77 65 64 20 72 65 73 | io.stderr.printf("overflowed.res |
| 2aae0 | 75 6c 74 3a 20 7b 7d 5c 6e 22 2c 20 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 | ult:.{}\n",.result);.....}.else. |
| 2ab00 | 7b 0a 20 20 20 20 20 20 20 20 25 25 69 6f 2e 73 74 64 65 72 72 2e 70 72 69 6e 74 66 28 22 72 65 | {.........%%io.stderr.printf("re |
| 2ab20 | 73 75 6c 74 3a 20 7b 7d 5c 6e 22 2c 20 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 | sult:.{}\n",.result);.....}.}</c |
| 2ab40 | 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | ode></pre>.......<pre><code.clas |
| 2ab60 | 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 0a | s="sh">$.zig.build-exe.test.zig. |
| 2ab80 | 24 20 2e 2f 74 65 73 74 0a 6f 76 65 72 66 6c 6f 77 65 64 20 72 65 73 75 6c 74 3a 20 39 3c 2f 63 | $../test.overflowed.result:.9</c |
| 2aba0 | 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 75 6e 64 65 66 2d 69 | ode></pre>.......<h4.id="undef-i |
| 2abc0 | 6e 74 2d 6f 76 65 72 66 6c 6f 77 2d 77 72 61 70 22 3e 57 72 61 70 70 69 6e 67 20 4f 70 65 72 61 | nt-overflow-wrap">Wrapping.Opera |
| 2abe0 | 74 69 6f 6e 73 3c 2f 68 34 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 73 65 | tions</h4>.......<p>.......These |
| 2ac00 | 20 6f 70 65 72 61 74 69 6f 6e 73 20 68 61 76 65 20 67 75 61 72 61 6e 74 65 65 64 20 77 72 61 70 | .operations.have.guaranteed.wrap |
| 2ac20 | 61 72 6f 75 6e 64 20 73 65 6d 61 6e 74 69 63 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 | around.semantics........</p>.... |
| 2ac40 | 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 2b 25 3c 2f 63 6f | ...<ul>.........<li><code>+%</co |
| 2ac60 | 64 65 3e 20 28 77 72 61 70 61 72 6f 75 6e 64 20 61 64 64 69 74 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 | de>.(wraparound.addition)</li>.. |
| 2ac80 | 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 2d 25 3c 2f 63 6f 64 65 3e 20 28 77 72 61 70 | .......<li><code>-%</code>.(wrap |
| 2aca0 | 61 72 6f 75 6e 64 20 73 75 62 74 72 61 63 74 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | around.subtraction)</li>........ |
| 2acc0 | 20 3c 6c 69 3e 3c 63 6f 64 65 3e 2d 25 3c 2f 63 6f 64 65 3e 20 28 77 72 61 70 61 72 6f 75 6e 64 | .<li><code>-%</code>.(wraparound |
| 2ace0 | 20 6e 65 67 61 74 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 | .negation)</li>.........<li><cod |
| 2ad00 | 65 3e 2a 25 3c 2f 63 6f 64 65 3e 20 28 77 72 61 70 61 72 6f 75 6e 64 20 6d 75 6c 74 69 70 6c 69 | e>*%</code>.(wraparound.multipli |
| 2ad20 | 63 61 74 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c | cation)</li>.......</ul>.......< |
| 2ad40 | 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 | pre><code.class="zig">const.asse |
| 2ad60 | 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 | rt.=.@import("std").debug.assert |
| 2ad80 | 3b 0a 0a 74 65 73 74 20 22 77 72 61 70 61 72 6f 75 6e 64 20 61 64 64 69 74 69 6f 6e 20 61 6e 64 | ;..test."wraparound.addition.and |
| 2ada0 | 20 73 75 62 74 72 61 63 74 69 6f 6e 22 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 78 3a 20 69 33 32 | .subtraction".{.....const.x:.i32 |
| 2adc0 | 20 3d 20 40 6d 61 78 56 61 6c 75 65 28 69 33 32 29 3b 0a 20 20 20 20 63 6f 6e 73 74 20 6d 69 6e | .=.@maxValue(i32);.....const.min |
| 2ade0 | 5f 76 61 6c 20 3d 20 78 20 2b 25 20 31 3b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 69 6e 5f 76 61 | _val.=.x.+%.1;.....assert(min_va |
| 2ae00 | 6c 20 3d 3d 20 40 6d 69 6e 56 61 6c 75 65 28 69 33 32 29 29 3b 0a 20 20 20 20 63 6f 6e 73 74 20 | l.==.@minValue(i32));.....const. |
| 2ae20 | 6d 61 78 5f 76 61 6c 20 3d 20 6d 69 6e 5f 76 61 6c 20 2d 25 20 31 3b 0a 20 20 20 20 61 73 73 65 | max_val.=.min_val.-%.1;.....asse |
| 2ae40 | 72 74 28 6d 61 78 5f 76 61 6c 20 3d 3d 20 40 6d 61 78 56 61 6c 75 65 28 69 33 32 29 29 3b 0a 7d | rt(max_val.==.@maxValue(i32));.} |
| 2ae60 | 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 75 6e 64 65 | </code></pre>.......<h3.id="unde |
| 2ae80 | 66 2d 73 68 6c 2d 6f 76 65 72 66 6c 6f 77 22 3e 45 78 61 63 74 20 4c 65 66 74 20 53 68 69 66 74 | f-shl-overflow">Exact.Left.Shift |
| 2aea0 | 20 4f 76 65 72 66 6c 6f 77 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 | .Overflow</h3>.......<p>At.compi |
| 2aec0 | 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | le-time:</p>.......<pre><code.cl |
| 2aee0 | 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 78 | ass="zig">comptime.{.....const.x |
| 2af00 | 20 3d 20 40 73 68 6c 45 78 61 63 74 28 75 38 28 30 62 30 31 30 31 30 31 30 31 29 2c 20 32 29 3b | .=.@shlExact(u8(0b01010101),.2); |
| 2af20 | 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 | .}</code></pre>.......<pre><code |
| 2af40 | 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 74 65 73 74 | .class="sh">$.zig.build-obj.test |
| 2af60 | 2e 7a 69 67 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 74 65 | .zig./home/andy/dev/zig/build/te |
| 2af80 | 73 74 2e 7a 69 67 3a 32 3a 31 35 3a 20 65 72 72 6f 72 3a 20 6f 70 65 72 61 74 69 6f 6e 20 63 61 | st.zig:2:15:.error:.operation.ca |
| 2afa0 | 75 73 65 64 20 6f 76 65 72 66 6c 6f 77 0a 20 20 20 20 63 6f 6e 73 74 20 78 20 3d 20 40 73 68 6c | used.overflow.....const.x.=.@shl |
| 2afc0 | 45 78 61 63 74 28 75 38 28 30 62 30 31 30 31 30 31 30 31 29 2c 20 32 29 3b 0a 20 20 20 20 20 20 | Exact(u8(0b01010101),.2);....... |
| 2afe0 | 20 20 20 20 20 20 20 20 5e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e | ........^</code></pre>.......<p> |
| 2b000 | 41 74 20 72 75 6e 74 69 6d 65 20 63 72 61 73 68 65 73 20 77 69 74 68 20 74 68 65 20 6d 65 73 73 | At.runtime.crashes.with.the.mess |
| 2b020 | 61 67 65 20 3c 63 6f 64 65 3e 6c 65 66 74 20 73 68 69 66 74 20 6f 76 65 72 66 6c 6f 77 65 64 20 | age.<code>left.shift.overflowed. |
| 2b040 | 62 69 74 73 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 61 20 73 74 61 63 6b 20 74 72 61 63 65 2e 3c 2f | bits</code>.and.a.stack.trace.</ |
| 2b060 | 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 75 6e 64 65 66 2d 73 68 72 2d 6f 76 65 72 66 | p>.......<h3.id="undef-shr-overf |
| 2b080 | 6c 6f 77 22 3e 45 78 61 63 74 20 52 69 67 68 74 20 53 68 69 66 74 20 4f 76 65 72 66 6c 6f 77 3c | low">Exact.Right.Shift.Overflow< |
| 2b0a0 | 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f | /h3>.......<p>At.compile-time:</ |
| 2b0c0 | 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e | p>.......<pre><code.class="zig"> |
| 2b0e0 | 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 78 20 3d 20 40 73 68 72 45 78 61 | comptime.{.....const.x.=.@shrExa |
| 2b100 | 63 74 28 75 38 28 30 62 31 30 31 30 31 30 31 30 29 2c 20 32 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c | ct(u8(0b10101010),.2);.}</code>< |
| 2b120 | 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 | /pre>.......<pre><code.class="sh |
| 2b140 | 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 74 65 73 74 2e 7a 69 67 0a 2f 68 6f 6d 65 | ">$.zig.build-obj.test.zig./home |
| 2b160 | 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 74 65 73 74 2e 7a 69 67 3a 32 3a 31 | /andy/dev/zig/build/test.zig:2:1 |
| 2b180 | 35 3a 20 65 72 72 6f 72 3a 20 65 78 61 63 74 20 73 68 69 66 74 20 73 68 69 66 74 65 64 20 6f 75 | 5:.error:.exact.shift.shifted.ou |
| 2b1a0 | 74 20 31 20 62 69 74 73 0a 20 20 20 20 63 6f 6e 73 74 20 78 20 3d 20 40 73 68 72 45 78 61 63 74 | t.1.bits.....const.x.=.@shrExact |
| 2b1c0 | 28 75 38 28 30 62 31 30 31 30 31 30 31 30 29 2c 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 | (u8(0b10101010),.2);............ |
| 2b1e0 | 20 20 20 5e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 | ...^</code></pre>.......<p>At.ru |
| 2b200 | 6e 74 69 6d 65 20 63 72 61 73 68 65 73 20 77 69 74 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 3c | ntime.crashes.with.the.message.< |
| 2b220 | 63 6f 64 65 3e 72 69 67 68 74 20 73 68 69 66 74 20 6f 76 65 72 66 6c 6f 77 65 64 20 62 69 74 73 | code>right.shift.overflowed.bits |
| 2b240 | 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 61 20 73 74 61 63 6b 20 74 72 61 63 65 2e 3c 2f 70 3e 0a 20 | </code>.and.a.stack.trace.</p>.. |
| 2b260 | 20 20 20 20 20 3c 68 33 20 69 64 3d 22 75 6e 64 65 66 2d 64 69 76 69 73 69 6f 6e 2d 62 79 2d 7a | .....<h3.id="undef-division-by-z |
| 2b280 | 65 72 6f 22 3e 44 69 76 69 73 69 6f 6e 20 62 79 20 5a 65 72 6f 3c 2f 68 33 3e 0a 20 20 20 20 20 | ero">Division.by.Zero</h3>...... |
| 2b2a0 | 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | .<p>At.compile-time:</p>.......< |
| 2b2c0 | 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6d 70 74 69 6d 65 20 7b | pre><code.class="zig">comptime.{ |
| 2b2e0 | 0a 20 20 20 20 63 6f 6e 73 74 20 61 3a 20 69 33 32 20 3d 20 31 3b 0a 20 20 20 20 63 6f 6e 73 74 | .....const.a:.i32.=.1;.....const |
| 2b300 | 20 62 3a 20 69 33 32 20 3d 20 30 3b 0a 20 20 20 20 63 6f 6e 73 74 20 63 20 3d 20 61 20 2f 20 62 | .b:.i32.=.0;.....const.c.=.a./.b |
| 2b320 | 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 | ;.}</code></pre>.......<pre><cod |
| 2b340 | 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 74 65 73 | e.class="sh">$.zig.build-obj.tes |
| 2b360 | 74 2e 7a 69 67 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 74 | t.zig./home/andy/dev/zig/build/t |
| 2b380 | 65 73 74 2e 7a 69 67 3a 34 3a 31 37 3a 20 65 72 72 6f 72 3a 20 64 69 76 69 73 69 6f 6e 20 62 79 | est.zig:4:17:.error:.division.by |
| 2b3a0 | 20 7a 65 72 6f 20 69 73 20 75 6e 64 65 66 69 6e 65 64 0a 20 20 20 20 63 6f 6e 73 74 20 63 20 3d | .zero.is.undefined.....const.c.= |
| 2b3c0 | 20 61 20 2f 20 62 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 3c 2f 63 6f 64 65 3e | .a./.b;.................^</code> |
| 2b3e0 | 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 20 63 72 61 73 68 | </pre>.......<p>At.runtime.crash |
| 2b400 | 65 73 20 77 69 74 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 3c 63 6f 64 65 3e 64 69 76 69 73 69 | es.with.the.message.<code>divisi |
| 2b420 | 6f 6e 20 62 79 20 7a 65 72 6f 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 61 20 73 74 61 63 6b 20 74 72 | on.by.zero</code>.and.a.stack.tr |
| 2b440 | 61 63 65 2e 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 75 6e 64 65 66 2d 72 65 | ace.</p>........<h3.id="undef-re |
| 2b460 | 6d 61 69 6e 64 65 72 2d 64 69 76 69 73 69 6f 6e 2d 62 79 2d 7a 65 72 6f 22 3e 52 65 6d 61 69 6e | mainder-division-by-zero">Remain |
| 2b480 | 64 65 72 20 44 69 76 69 73 69 6f 6e 20 62 79 20 5a 65 72 6f 3c 2f 68 33 3e 0a 20 20 20 20 20 20 | der.Division.by.Zero</h3>....... |
| 2b4a0 | 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 | <p>At.compile-time:</p>.......<p |
| 2b4c0 | 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6d 70 74 69 6d 65 20 7b 0a | re><code.class="zig">comptime.{. |
| 2b4e0 | 20 20 20 20 63 6f 6e 73 74 20 61 3a 20 69 33 32 20 3d 20 31 30 3b 0a 20 20 20 20 63 6f 6e 73 74 | ....const.a:.i32.=.10;.....const |
| 2b500 | 20 62 3a 20 69 33 32 20 3d 20 30 3b 0a 20 20 20 20 63 6f 6e 73 74 20 63 20 3d 20 61 20 25 20 62 | .b:.i32.=.0;.....const.c.=.a.%.b |
| 2b520 | 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 | ;.}</code></pre>.......<pre><cod |
| 2b540 | 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 74 65 73 | e.class="sh">$.zig.build-obj.tes |
| 2b560 | 74 2e 7a 69 67 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 74 | t.zig./home/andy/dev/zig/build/t |
| 2b580 | 65 73 74 2e 7a 69 67 3a 34 3a 31 37 3a 20 65 72 72 6f 72 3a 20 64 69 76 69 73 69 6f 6e 20 62 79 | est.zig:4:17:.error:.division.by |
| 2b5a0 | 20 7a 65 72 6f 20 69 73 20 75 6e 64 65 66 69 6e 65 64 0a 20 20 20 20 63 6f 6e 73 74 20 63 20 3d | .zero.is.undefined.....const.c.= |
| 2b5c0 | 20 61 20 25 20 62 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5e 3c 2f 63 6f 64 65 3e | .a.%.b;.................^</code> |
| 2b5e0 | 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 20 63 72 61 73 68 | </pre>.......<p>At.runtime.crash |
| 2b600 | 65 73 20 77 69 74 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 3c 63 6f 64 65 3e 72 65 6d 61 69 6e | es.with.the.message.<code>remain |
| 2b620 | 64 65 72 20 64 69 76 69 73 69 6f 6e 20 62 79 20 7a 65 72 6f 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 | der.division.by.zero</code>.and. |
| 2b640 | 61 20 73 74 61 63 6b 20 74 72 61 63 65 2e 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 | a.stack.trace.</p>........<h3.id |
| 2b660 | 3d 22 75 6e 64 65 66 2d 65 78 61 63 74 2d 64 69 76 69 73 69 6f 6e 2d 72 65 6d 61 69 6e 64 65 72 | ="undef-exact-division-remainder |
| 2b680 | 22 3e 45 78 61 63 74 20 44 69 76 69 73 69 6f 6e 20 52 65 6d 61 69 6e 64 65 72 3c 2f 68 33 3e 0a | ">Exact.Division.Remainder</h3>. |
| 2b6a0 | 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 | ......<p>TODO</p>.......<h3.id=" |
| 2b6c0 | 75 6e 64 65 66 2d 73 6c 69 63 65 2d 77 69 64 65 6e 2d 72 65 6d 61 69 6e 64 65 72 22 3e 53 6c 69 | undef-slice-widen-remainder">Sli |
| 2b6e0 | 63 65 20 57 69 64 65 6e 20 52 65 6d 61 69 6e 64 65 72 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 | ce.Widen.Remainder</h3>.......<p |
| 2b700 | 3e 54 4f 44 4f 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 75 6e 64 65 66 2d 61 74 | >TODO</p>.......<h3.id="undef-at |
| 2b720 | 74 65 6d 70 74 2d 75 6e 77 72 61 70 2d 6e 75 6c 6c 22 3e 41 74 74 65 6d 70 74 20 74 6f 20 55 6e | tempt-unwrap-null">Attempt.to.Un |
| 2b740 | 77 72 61 70 20 4e 75 6c 6c 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 | wrap.Null</h3>.......<p>At.compi |
| 2b760 | 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | le-time:</p>.......<pre><code.cl |
| 2b780 | 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 6e | ass="zig">comptime.{.....const.n |
| 2b7a0 | 75 6c 6c 61 62 6c 65 5f 6e 75 6d 62 65 72 3a 20 3f 69 33 32 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 | ullable_number:.?i32.=.null;.... |
| 2b7c0 | 20 63 6f 6e 73 74 20 6e 75 6d 62 65 72 20 3d 20 3f 3f 6e 75 6c 6c 61 62 6c 65 5f 6e 75 6d 62 65 | .const.number.=.??nullable_numbe |
| 2b7e0 | 72 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f | r;.}</code></pre>.......<pre><co |
| 2b800 | 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 74 65 | de.class="sh">$.zig.build-obj.te |
| 2b820 | 73 74 2e 7a 69 67 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f | st.zig./home/andy/dev/zig/build/ |
| 2b840 | 74 65 73 74 2e 7a 69 67 3a 33 3a 32 30 3a 20 65 72 72 6f 72 3a 20 75 6e 61 62 6c 65 20 74 6f 20 | test.zig:3:20:.error:.unable.to. |
| 2b860 | 75 6e 77 72 61 70 20 6e 75 6c 6c 0a 20 20 20 20 63 6f 6e 73 74 20 6e 75 6d 62 65 72 20 3d 20 3f | unwrap.null.....const.number.=.? |
| 2b880 | 3f 6e 75 6c 6c 61 62 6c 65 5f 6e 75 6d 62 65 72 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ?nullable_number;............... |
| 2b8a0 | 20 20 20 20 20 5e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 | .....^</code></pre>.......<p>At. |
| 2b8c0 | 72 75 6e 74 69 6d 65 20 63 72 61 73 68 65 73 20 77 69 74 68 20 74 68 65 20 6d 65 73 73 61 67 65 | runtime.crashes.with.the.message |
| 2b8e0 | 20 3c 63 6f 64 65 3e 61 74 74 65 6d 70 74 20 74 6f 20 75 6e 77 72 61 70 20 6e 75 6c 6c 3c 2f 63 | .<code>attempt.to.unwrap.null</c |
| 2b900 | 6f 64 65 3e 20 61 6e 64 20 61 20 73 74 61 63 6b 20 74 72 61 63 65 2e 3c 2f 70 3e 0a 20 20 20 20 | ode>.and.a.stack.trace.</p>..... |
| 2b920 | 20 20 3c 70 3e 4f 6e 65 20 77 61 79 20 74 6f 20 61 76 6f 69 64 20 74 68 69 73 20 63 72 61 73 68 | ..<p>One.way.to.avoid.this.crash |
| 2b940 | 20 69 73 20 74 6f 20 74 65 73 74 20 66 6f 72 20 6e 75 6c 6c 20 69 6e 73 74 65 61 64 20 6f 66 20 | .is.to.test.for.null.instead.of. |
| 2b960 | 61 73 73 75 6d 69 6e 67 20 6e 6f 6e 2d 6e 75 6c 6c 2c 20 77 69 74 68 0a 20 20 20 20 20 20 74 68 | assuming.non-null,.with.......th |
| 2b980 | 65 20 3c 63 6f 64 65 3e 69 66 3c 2f 63 6f 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e 3a 3c 2f 70 | e.<code>if</code>.expression:</p |
| 2b9a0 | 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 | >.......<pre><code.class="zig">c |
| 2b9c0 | 6f 6e 73 74 20 69 6f 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 69 6f 3b 0a 70 75 62 | onst.io.=.@import("std").io;.pub |
| 2b9e0 | 20 66 6e 20 6d 61 69 6e 28 29 20 2d 26 67 74 3b 20 25 76 6f 69 64 20 7b 0a 20 20 20 20 63 6f 6e | .fn.main().->.%void.{.....con |
| 2ba00 | 73 74 20 6e 75 6c 6c 61 62 6c 65 5f 6e 75 6d 62 65 72 3a 20 3f 69 33 32 20 3d 20 6e 75 6c 6c 3b | st.nullable_number:.?i32.=.null; |
| 2ba20 | 0a 0a 20 20 20 20 69 66 20 28 6e 75 6c 6c 61 62 6c 65 5f 6e 75 6d 62 65 72 29 20 7c 6e 75 6d 62 | ......if.(nullable_number).|numb |
| 2ba40 | 65 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 25 25 69 6f 2e 73 74 64 65 72 72 2e 70 72 69 6e 74 66 | er|.{.........%%io.stderr.printf |
| 2ba60 | 28 22 67 6f 74 20 6e 75 6d 62 65 72 3a 20 7b 7d 5c 6e 22 2c 20 6e 75 6d 62 65 72 29 3b 0a 20 20 | ("got.number:.{}\n",.number);... |
| 2ba80 | 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 25 25 69 6f 2e 73 74 64 65 72 72 2e 70 | ..}.else.{.........%%io.stderr.p |
| 2baa0 | 72 69 6e 74 66 28 22 69 74 27 73 20 6e 75 6c 6c 5c 6e 22 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 | rintf("it's.null\n");.....}.}</c |
| 2bac0 | 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | ode></pre>.......<pre><code.clas |
| 2bae0 | 73 3d 22 73 68 22 3e 25 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 0a | s="sh">%.zig.build-exe.test.zig. |
| 2bb00 | 24 20 2e 2f 74 65 73 74 0a 69 74 27 73 20 6e 75 6c 6c 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a | $../test.it's.null</code></pre>. |
| 2bb20 | 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 75 6e 64 65 66 2d 61 74 74 65 6d 70 74 2d 75 6e 77 72 | ......<h3.id="undef-attempt-unwr |
| 2bb40 | 61 70 2d 65 72 72 6f 72 22 3e 41 74 74 65 6d 70 74 20 74 6f 20 55 6e 77 72 61 70 20 45 72 72 6f | ap-error">Attempt.to.Unwrap.Erro |
| 2bb60 | 72 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a | r</h3>.......<p>At.compile-time: |
| 2bb80 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 | </p>.......<pre><code.class="zig |
| 2bba0 | 22 3e 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 6e 75 6d 62 65 72 20 3d 20 | ">comptime.{.....const.number.=. |
| 2bbc0 | 25 25 67 65 74 4e 75 6d 62 65 72 4f 72 46 61 69 6c 28 29 3b 0a 7d 0a 0a 65 72 72 6f 72 20 55 6e | %%getNumberOrFail();.}..error.Un |
| 2bbe0 | 61 62 6c 65 54 6f 52 65 74 75 72 6e 4e 75 6d 62 65 72 3b 0a 0a 66 6e 20 67 65 74 4e 75 6d 62 65 | ableToReturnNumber;..fn.getNumbe |
| 2bc00 | 72 4f 72 46 61 69 6c 28 29 20 2d 26 67 74 3b 20 25 69 33 32 20 7b 0a 20 20 20 20 72 65 74 75 72 | rOrFail().->.%i32.{.....retur |
| 2bc20 | 6e 20 65 72 72 6f 72 2e 55 6e 61 62 6c 65 54 6f 52 65 74 75 72 6e 4e 75 6d 62 65 72 3b 0a 7d 3c | n.error.UnableToReturnNumber;.}< |
| 2bc40 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | /code></pre>.......<pre><code.cl |
| 2bc60 | 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 74 65 73 74 2e 7a 69 | ass="sh">$.zig.build-obj.test.zi |
| 2bc80 | 67 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 74 65 73 74 2e | g./home/andy/dev/zig/build/test. |
| 2bca0 | 7a 69 67 3a 32 3a 32 30 3a 20 65 72 72 6f 72 3a 20 75 6e 61 62 6c 65 20 74 6f 20 75 6e 77 72 61 | zig:2:20:.error:.unable.to.unwra |
| 2bcc0 | 70 20 65 72 72 6f 72 20 27 55 6e 61 62 6c 65 54 6f 52 65 74 75 72 6e 4e 75 6d 62 65 72 27 0a 20 | p.error.'UnableToReturnNumber'.. |
| 2bce0 | 20 20 20 63 6f 6e 73 74 20 6e 75 6d 62 65 72 20 3d 20 25 25 67 65 74 4e 75 6d 62 65 72 4f 72 46 | ...const.number.=.%%getNumberOrF |
| 2bd00 | 61 69 6c 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ail();.......................... |
| 2bd20 | 5e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 | ^</code></pre>.......<p>At.runti |
| 2bd40 | 6d 65 20 63 72 61 73 68 65 73 20 77 69 74 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 3c 63 6f 64 | me.crashes.with.the.message.<cod |
| 2bd60 | 65 3e 61 74 74 65 6d 70 74 20 74 6f 20 75 6e 77 72 61 70 20 65 72 72 6f 72 3a 20 45 72 72 6f 72 | e>attempt.to.unwrap.error:.Error |
| 2bd80 | 43 6f 64 65 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 61 20 73 74 61 63 6b 20 74 72 61 63 65 2e 3c 2f | Code</code>.and.a.stack.trace.</ |
| 2bda0 | 70 3e 0a 20 20 20 20 20 20 3c 70 3e 4f 6e 65 20 77 61 79 20 74 6f 20 61 76 6f 69 64 20 74 68 69 | p>.......<p>One.way.to.avoid.thi |
| 2bdc0 | 73 20 63 72 61 73 68 20 69 73 20 74 6f 20 74 65 73 74 20 66 6f 72 20 61 6e 20 65 72 72 6f 72 20 | s.crash.is.to.test.for.an.error. |
| 2bde0 | 69 6e 73 74 65 61 64 20 6f 66 20 61 73 73 75 6d 69 6e 67 20 61 20 73 75 63 63 65 73 73 66 75 6c | instead.of.assuming.a.successful |
| 2be00 | 20 72 65 73 75 6c 74 2c 20 77 69 74 68 0a 20 20 20 20 20 20 74 68 65 20 3c 63 6f 64 65 3e 69 66 | .result,.with.......the.<code>if |
| 2be20 | 3c 2f 63 6f 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 | </code>.expression:</p>.......<p |
| 2be40 | 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 69 6f 20 3d 20 | re><code.class="zig">const.io.=. |
| 2be60 | 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 69 6f 3b 0a 0a 70 75 62 20 66 6e 20 6d 61 69 6e 28 | @import("std").io;..pub.fn.main( |
| 2be80 | 29 20 2d 26 67 74 3b 20 25 76 6f 69 64 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 72 65 73 75 6c 74 | ).->.%void.{.....const.result |
| 2bea0 | 20 3d 20 67 65 74 4e 75 6d 62 65 72 4f 72 46 61 69 6c 28 29 3b 0a 0a 20 20 20 20 69 66 20 28 72 | .=.getNumberOrFail();......if.(r |
| 2bec0 | 65 73 75 6c 74 29 20 7c 6e 75 6d 62 65 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 25 25 69 6f 2e 73 | esult).|number|.{.........%%io.s |
| 2bee0 | 74 64 65 72 72 2e 70 72 69 6e 74 66 28 22 67 6f 74 20 6e 75 6d 62 65 72 3a 20 7b 7d 5c 6e 22 2c | tderr.printf("got.number:.{}\n", |
| 2bf00 | 20 6e 75 6d 62 65 72 29 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7c 65 72 72 7c 20 7b 0a 20 20 20 | .number);.....}.else.|err|.{.... |
| 2bf20 | 20 20 20 20 20 25 25 69 6f 2e 73 74 64 65 72 72 2e 70 72 69 6e 74 66 28 22 67 6f 74 20 65 72 72 | .....%%io.stderr.printf("got.err |
| 2bf40 | 6f 72 3a 20 7b 7d 5c 6e 22 2c 20 40 65 72 72 6f 72 4e 61 6d 65 28 65 72 72 29 29 3b 0a 20 20 20 | or:.{}\n",.@errorName(err));.... |
| 2bf60 | 20 7d 0a 7d 0a 0a 65 72 72 6f 72 20 55 6e 61 62 6c 65 54 6f 52 65 74 75 72 6e 4e 75 6d 62 65 72 | .}.}..error.UnableToReturnNumber |
| 2bf80 | 3b 0a 0a 66 6e 20 67 65 74 4e 75 6d 62 65 72 4f 72 46 61 69 6c 28 29 20 2d 26 67 74 3b 20 25 69 | ;..fn.getNumberOrFail().->.%i |
| 2bfa0 | 33 32 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 65 72 72 6f 72 2e 55 6e 61 62 6c 65 54 6f 52 65 | 32.{.....return.error.UnableToRe |
| 2bfc0 | 74 75 72 6e 4e 75 6d 62 65 72 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 | turnNumber;.}</code></pre>...... |
| 2bfe0 | 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 62 75 69 | .<pre><code.class="sh">$.zig.bui |
| 2c000 | 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 0a 24 20 2e 2f 74 65 73 74 0a 67 6f 74 20 65 72 72 | ld-exe.test.zig.$../test.got.err |
| 2c020 | 6f 72 3a 20 55 6e 61 62 6c 65 54 6f 52 65 74 75 72 6e 4e 75 6d 62 65 72 3c 2f 63 6f 64 65 3e 3c | or:.UnableToReturnNumber</code>< |
| 2c040 | 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 75 6e 64 65 66 2d 69 6e 76 61 6c | /pre>........<h3.id="undef-inval |
| 2c060 | 69 64 2d 65 72 72 6f 72 2d 63 6f 64 65 22 3e 49 6e 76 61 6c 69 64 20 45 72 72 6f 72 20 43 6f 64 | id-error-code">Invalid.Error.Cod |
| 2c080 | 65 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a | e</h3>.......<p>At.compile-time: |
| 2c0a0 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 | </p>.......<pre><code.class="zig |
| 2c0c0 | 22 3e 65 72 72 6f 72 20 41 6e 45 72 72 6f 72 3b 0a 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 | ">error.AnError;.comptime.{..... |
| 2c0e0 | 63 6f 6e 73 74 20 65 72 72 20 3d 20 65 72 72 6f 72 2e 41 6e 45 72 72 6f 72 3b 0a 20 20 20 20 63 | const.err.=.error.AnError;.....c |
| 2c100 | 6f 6e 73 74 20 6e 75 6d 62 65 72 20 3d 20 75 33 32 28 65 72 72 29 20 2b 20 31 30 3b 0a 20 20 20 | onst.number.=.u32(err).+.10;.... |
| 2c120 | 20 63 6f 6e 73 74 20 69 6e 76 61 6c 69 64 5f 65 72 72 20 3d 20 65 72 72 6f 72 28 6e 75 6d 62 65 | .const.invalid_err.=.error(numbe |
| 2c140 | 72 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 | r);.}</code></pre>.......<pre><c |
| 2c160 | 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 74 | ode.class="sh">$.zig.build-obj.t |
| 2c180 | 65 73 74 2e 7a 69 67 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 | est.zig./home/andy/dev/zig/build |
| 2c1a0 | 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 33 30 3a 20 65 72 72 6f 72 3a 20 69 6e 74 65 67 65 72 20 76 | /test.zig:5:30:.error:.integer.v |
| 2c1c0 | 61 6c 75 65 20 31 31 20 72 65 70 72 65 73 65 6e 74 73 20 6e 6f 20 65 72 72 6f 72 0a 20 20 20 20 | alue.11.represents.no.error..... |
| 2c1e0 | 63 6f 6e 73 74 20 69 6e 76 61 6c 69 64 5f 65 72 72 20 3d 20 65 72 72 6f 72 28 6e 75 6d 62 65 72 | const.invalid_err.=.error(number |
| 2c200 | 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | );.............................. |
| 2c220 | 5e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 | ^</code></pre>.......<p>At.runti |
| 2c240 | 6d 65 20 63 72 61 73 68 65 73 20 77 69 74 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 3c 63 6f 64 | me.crashes.with.the.message.<cod |
| 2c260 | 65 3e 69 6e 76 61 6c 69 64 20 65 72 72 6f 72 20 63 6f 64 65 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 | e>invalid.error.code</code>.and. |
| 2c280 | 61 20 73 74 61 63 6b 20 74 72 61 63 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d | a.stack.trace.</p>.......<h3.id= |
| 2c2a0 | 22 75 6e 64 65 66 2d 69 6e 76 61 6c 69 64 2d 65 6e 75 6d 2d 63 61 73 74 22 3e 49 6e 76 61 6c 69 | "undef-invalid-enum-cast">Invali |
| 2c2c0 | 64 20 45 6e 75 6d 20 43 61 73 74 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3c 2f | d.Enum.Cast</h3>.......<p>TODO</ |
| 2c2e0 | 70 3e 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 75 6e 64 65 66 2d 69 6e 63 6f 72 72 65 63 | p>........<h3.id="undef-incorrec |
| 2c300 | 74 2d 70 6f 69 6e 74 65 72 2d 61 6c 69 67 6e 6d 65 6e 74 22 3e 49 6e 63 6f 72 72 65 63 74 20 50 | t-pointer-alignment">Incorrect.P |
| 2c320 | 6f 69 6e 74 65 72 20 41 6c 69 67 6e 6d 65 6e 74 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 3e 54 | ointer.Alignment</h3>.......<p>T |
| 2c340 | 4f 44 4f 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 6d 65 6d 6f 72 79 22 3e 4d | ODO</p>........<h2.id="memory">M |
| 2c360 | 65 6d 6f 72 79 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 70 6c 61 69 | emory</h2>.......<p>TODO:.explai |
| 2c380 | 6e 20 6e 6f 20 64 65 66 61 75 6c 74 20 61 6c 6c 6f 63 61 74 6f 72 20 69 6e 20 7a 69 67 3c 2f 70 | n.no.default.allocator.in.zig</p |
| 2c3a0 | 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 73 68 6f 77 20 68 6f 77 20 74 6f 20 75 73 65 | >.......<p>TODO:.show.how.to.use |
| 2c3c0 | 20 74 68 65 20 61 6c 6c 6f 63 61 74 6f 72 20 69 6e 74 65 72 66 61 63 65 3c 2f 70 3e 0a 20 20 20 | .the.allocator.interface</p>.... |
| 2c3e0 | 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 6d 65 6e 74 69 6f 6e 20 64 65 62 75 67 20 61 6c 6c 6f 63 61 | ...<p>TODO:.mention.debug.alloca |
| 2c400 | 74 6f 72 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 69 6d 70 6f 72 74 61 6e 63 | tor</p>.......<p>TODO:.importanc |
| 2c420 | 65 20 6f 66 20 63 68 65 63 6b 69 6e 67 20 66 6f 72 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 66 61 69 | e.of.checking.for.allocation.fai |
| 2c440 | 6c 75 72 65 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 6d 65 6e 74 69 6f 6e 20 | lure</p>.......<p>TODO:.mention. |
| 2c460 | 6f 76 65 72 63 6f 6d 6d 69 74 20 61 6e 64 20 74 68 65 20 4f 4f 4d 20 4b 69 6c 6c 65 72 3c 2f 70 | overcommit.and.the.OOM.Killer</p |
| 2c480 | 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 6d 65 6e 74 69 6f 6e 20 72 65 63 75 72 73 69 | >.......<p>TODO:.mention.recursi |
| 2c4a0 | 6f 6e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 | on</p>.......<p>See.also:</p>... |
| 2c4c0 | 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 70 | ....<ul>.........<li><a.href="#p |
| 2c4e0 | 6f 69 6e 74 65 72 73 22 3e 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | ointers">Pointers</a></li>...... |
| 2c500 | 20 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 63 6f 6d 70 69 6c 65 2d 76 61 | .</ul>........<h2.id="compile-va |
| 2c520 | 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 20 56 61 72 69 61 62 6c 65 73 3c 2f 68 32 3e 0a | riables">Compile.Variables</h2>. |
| 2c540 | 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 6f 6d 70 69 6c 65 20 76 61 72 69 61 62 6c 65 | ......<p>.......Compile.variable |
| 2c560 | 73 20 61 72 65 20 61 63 63 65 73 73 69 62 6c 65 20 62 79 20 69 6d 70 6f 72 74 69 6e 67 20 74 68 | s.are.accessible.by.importing.th |
| 2c580 | 65 20 3c 63 6f 64 65 3e 22 62 75 69 6c 74 69 6e 22 3c 2f 63 6f 64 65 3e 20 70 61 63 6b 61 67 65 | e.<code>"builtin"</code>.package |
| 2c5a0 | 2c 0a 20 20 20 20 20 20 77 68 69 63 68 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 6d 61 6b 65 73 | ,.......which.the.compiler.makes |
| 2c5c0 | 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 65 76 65 72 79 20 5a 69 67 20 73 6f 75 72 63 65 20 66 | .available.to.every.Zig.source.f |
| 2c5e0 | 69 6c 65 2e 20 49 74 20 63 6f 6e 74 61 69 6e 73 0a 20 20 20 20 20 20 63 6f 6d 70 69 6c 65 2d 74 | ile..It.contains.......compile-t |
| 2c600 | 69 6d 65 20 63 6f 6e 73 74 61 6e 74 73 20 73 75 63 68 20 61 73 20 74 68 65 20 63 75 72 72 65 6e | ime.constants.such.as.the.curren |
| 2c620 | 74 20 74 61 72 67 65 74 2c 20 65 6e 64 69 61 6e 6e 65 73 73 2c 20 61 6e 64 20 72 65 6c 65 61 73 | t.target,.endianness,.and.releas |
| 2c640 | 65 20 6d 6f 64 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 | e.mode........</p>.......<pre><c |
| 2c660 | 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 62 75 69 6c 74 69 6e 20 3d 20 | ode.class="zig">const.builtin.=. |
| 2c680 | 40 69 6d 70 6f 72 74 28 22 62 75 69 6c 74 69 6e 22 29 3b 0a 63 6f 6e 73 74 20 73 65 70 61 72 61 | @import("builtin");.const.separa |
| 2c6a0 | 74 6f 72 20 3d 20 69 66 20 28 62 75 69 6c 74 69 6e 2e 6f 73 20 3d 3d 20 62 75 69 6c 74 69 6e 2e | tor.=.if.(builtin.os.==.builtin. |
| 2c6c0 | 4f 73 2e 77 69 6e 64 6f 77 73 29 20 27 5c 5c 27 20 65 6c 73 65 20 27 2f 27 3b 3c 2f 63 6f 64 65 | Os.windows).'\\'.else.'/';</code |
| 2c6e0 | 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 45 78 61 6d 70 6c 65 20 | ></pre>.......<p>.......Example. |
| 2c700 | 6f 66 20 77 68 61 74 20 69 73 20 69 6d 70 6f 72 74 65 64 20 77 69 74 68 20 3c 63 6f 64 65 3e 40 | of.what.is.imported.with.<code>@ |
| 2c720 | 69 6d 70 6f 72 74 28 22 62 75 69 6c 74 69 6e 22 29 3c 2f 63 6f 64 65 3e 3a 0a 20 20 20 20 20 20 | import("builtin")</code>:....... |
| 2c740 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 | </p>.......<pre><code.class="zig |
| 2c760 | 22 3e 70 75 62 20 63 6f 6e 73 74 20 4f 73 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 66 72 65 65 | ">pub.const.Os.=.enum.{.....free |
| 2c780 | 73 74 61 6e 64 69 6e 67 2c 0a 20 20 20 20 63 6c 6f 75 64 61 62 69 2c 0a 20 20 20 20 64 61 72 77 | standing,.....cloudabi,.....darw |
| 2c7a0 | 69 6e 2c 0a 20 20 20 20 64 72 61 67 6f 6e 66 6c 79 2c 0a 20 20 20 20 66 72 65 65 62 73 64 2c 0a | in,.....dragonfly,.....freebsd,. |
| 2c7c0 | 20 20 20 20 69 6f 73 2c 0a 20 20 20 20 6b 66 72 65 65 62 73 64 2c 0a 20 20 20 20 6c 69 6e 75 78 | ....ios,.....kfreebsd,.....linux |
| 2c7e0 | 2c 0a 20 20 20 20 6c 76 32 2c 0a 20 20 20 20 6d 61 63 6f 73 78 2c 0a 20 20 20 20 6e 65 74 62 73 | ,.....lv2,.....macosx,.....netbs |
| 2c800 | 64 2c 0a 20 20 20 20 6f 70 65 6e 62 73 64 2c 0a 20 20 20 20 73 6f 6c 61 72 69 73 2c 0a 20 20 20 | d,.....openbsd,.....solaris,.... |
| 2c820 | 20 77 69 6e 64 6f 77 73 2c 0a 20 20 20 20 68 61 69 6b 75 2c 0a 20 20 20 20 6d 69 6e 69 78 2c 0a | .windows,.....haiku,.....minix,. |
| 2c840 | 20 20 20 20 72 74 65 6d 73 2c 0a 20 20 20 20 6e 61 63 6c 2c 0a 20 20 20 20 63 6e 6b 2c 0a 20 20 | ....rtems,.....nacl,.....cnk,... |
| 2c860 | 20 20 62 69 74 72 69 67 2c 0a 20 20 20 20 61 69 78 2c 0a 20 20 20 20 63 75 64 61 2c 0a 20 20 20 | ..bitrig,.....aix,.....cuda,.... |
| 2c880 | 20 6e 76 63 6c 2c 0a 20 20 20 20 61 6d 64 68 73 61 2c 0a 20 20 20 20 70 73 34 2c 0a 20 20 20 20 | .nvcl,.....amdhsa,.....ps4,..... |
| 2c8a0 | 65 6c 66 69 61 6d 63 75 2c 0a 20 20 20 20 74 76 6f 73 2c 0a 20 20 20 20 77 61 74 63 68 6f 73 2c | elfiamcu,.....tvos,.....watchos, |
| 2c8c0 | 0a 20 20 20 20 6d 65 73 61 33 64 2c 0a 7d 3b 0a 0a 70 75 62 20 63 6f 6e 73 74 20 41 72 63 68 20 | .....mesa3d,.};..pub.const.Arch. |
| 2c8e0 | 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 61 72 6d 76 38 5f 32 61 2c 0a 20 20 20 20 61 72 6d 76 38 | =.enum.{.....armv8_2a,.....armv8 |
| 2c900 | 5f 31 61 2c 0a 20 20 20 20 61 72 6d 76 38 2c 0a 20 20 20 20 61 72 6d 76 38 6d 5f 62 61 73 65 6c | _1a,.....armv8,.....armv8m_basel |
| 2c920 | 69 6e 65 2c 0a 20 20 20 20 61 72 6d 76 38 6d 5f 6d 61 69 6e 6c 69 6e 65 2c 0a 20 20 20 20 61 72 | ine,.....armv8m_mainline,.....ar |
| 2c940 | 6d 76 37 2c 0a 20 20 20 20 61 72 6d 76 37 65 6d 2c 0a 20 20 20 20 61 72 6d 76 37 6d 2c 0a 20 20 | mv7,.....armv7em,.....armv7m,... |
| 2c960 | 20 20 61 72 6d 76 37 73 2c 0a 20 20 20 20 61 72 6d 76 37 6b 2c 0a 20 20 20 20 61 72 6d 76 36 2c | ..armv7s,.....armv7k,.....armv6, |
| 2c980 | 0a 20 20 20 20 61 72 6d 76 36 6d 2c 0a 20 20 20 20 61 72 6d 76 36 6b 2c 0a 20 20 20 20 61 72 6d | .....armv6m,.....armv6k,.....arm |
| 2c9a0 | 76 36 74 32 2c 0a 20 20 20 20 61 72 6d 76 35 2c 0a 20 20 20 20 61 72 6d 76 35 74 65 2c 0a 20 20 | v6t2,.....armv5,.....armv5te,... |
| 2c9c0 | 20 20 61 72 6d 76 34 74 2c 0a 20 20 20 20 61 72 6d 65 62 2c 0a 20 20 20 20 61 61 72 63 68 36 34 | ..armv4t,.....armeb,.....aarch64 |
| 2c9e0 | 2c 0a 20 20 20 20 61 61 72 63 68 36 34 5f 62 65 2c 0a 20 20 20 20 61 76 72 2c 0a 20 20 20 20 62 | ,.....aarch64_be,.....avr,.....b |
| 2ca00 | 70 66 65 6c 2c 0a 20 20 20 20 62 70 66 65 62 2c 0a 20 20 20 20 68 65 78 61 67 6f 6e 2c 0a 20 20 | pfel,.....bpfeb,.....hexagon,... |
| 2ca20 | 20 20 6d 69 70 73 2c 0a 20 20 20 20 6d 69 70 73 65 6c 2c 0a 20 20 20 20 6d 69 70 73 36 34 2c 0a | ..mips,.....mipsel,.....mips64,. |
| 2ca40 | 20 20 20 20 6d 69 70 73 36 34 65 6c 2c 0a 20 20 20 20 6d 73 70 34 33 30 2c 0a 20 20 20 20 70 6f | ....mips64el,.....msp430,.....po |
| 2ca60 | 77 65 72 70 63 2c 0a 20 20 20 20 70 6f 77 65 72 70 63 36 34 2c 0a 20 20 20 20 70 6f 77 65 72 70 | werpc,.....powerpc64,.....powerp |
| 2ca80 | 63 36 34 6c 65 2c 0a 20 20 20 20 72 36 30 30 2c 0a 20 20 20 20 61 6d 64 67 63 6e 2c 0a 20 20 20 | c64le,.....r600,.....amdgcn,.... |
| 2caa0 | 20 73 70 61 72 63 2c 0a 20 20 20 20 73 70 61 72 63 76 39 2c 0a 20 20 20 20 73 70 61 72 63 65 6c | .sparc,.....sparcv9,.....sparcel |
| 2cac0 | 2c 0a 20 20 20 20 73 33 39 30 78 2c 0a 20 20 20 20 74 63 65 2c 0a 20 20 20 20 74 68 75 6d 62 2c | ,.....s390x,.....tce,.....thumb, |
| 2cae0 | 0a 20 20 20 20 74 68 75 6d 62 65 62 2c 0a 20 20 20 20 69 33 38 36 2c 0a 20 20 20 20 78 38 36 5f | .....thumbeb,.....i386,.....x86_ |
| 2cb00 | 36 34 2c 0a 20 20 20 20 78 63 6f 72 65 2c 0a 20 20 20 20 6e 76 70 74 78 2c 0a 20 20 20 20 6e 76 | 64,.....xcore,.....nvptx,.....nv |
| 2cb20 | 70 74 78 36 34 2c 0a 20 20 20 20 6c 65 33 32 2c 0a 20 20 20 20 6c 65 36 34 2c 0a 20 20 20 20 61 | ptx64,.....le32,.....le64,.....a |
| 2cb40 | 6d 64 69 6c 2c 0a 20 20 20 20 61 6d 64 69 6c 36 34 2c 0a 20 20 20 20 68 73 61 69 6c 2c 0a 20 20 | mdil,.....amdil64,.....hsail,... |
| 2cb60 | 20 20 68 73 61 69 6c 36 34 2c 0a 20 20 20 20 73 70 69 72 2c 0a 20 20 20 20 73 70 69 72 36 34 2c | ..hsail64,.....spir,.....spir64, |
| 2cb80 | 0a 20 20 20 20 6b 61 6c 69 6d 62 61 76 33 2c 0a 20 20 20 20 6b 61 6c 69 6d 62 61 76 34 2c 0a 20 | .....kalimbav3,.....kalimbav4,.. |
| 2cba0 | 20 20 20 6b 61 6c 69 6d 62 61 76 35 2c 0a 20 20 20 20 73 68 61 76 65 2c 0a 20 20 20 20 6c 61 6e | ...kalimbav5,.....shave,.....lan |
| 2cbc0 | 61 69 2c 0a 20 20 20 20 77 61 73 6d 33 32 2c 0a 20 20 20 20 77 61 73 6d 36 34 2c 0a 20 20 20 20 | ai,.....wasm32,.....wasm64,..... |
| 2cbe0 | 72 65 6e 64 65 72 73 63 72 69 70 74 33 32 2c 0a 20 20 20 20 72 65 6e 64 65 72 73 63 72 69 70 74 | renderscript32,.....renderscript |
| 2cc00 | 36 34 2c 0a 7d 3b 0a 70 75 62 20 63 6f 6e 73 74 20 45 6e 76 69 72 6f 6e 20 3d 20 65 6e 75 6d 20 | 64,.};.pub.const.Environ.=.enum. |
| 2cc20 | 7b 0a 20 20 20 20 67 6e 75 2c 0a 20 20 20 20 67 6e 75 61 62 69 36 34 2c 0a 20 20 20 20 67 6e 75 | {.....gnu,.....gnuabi64,.....gnu |
| 2cc40 | 65 61 62 69 2c 0a 20 20 20 20 67 6e 75 65 61 62 69 68 66 2c 0a 20 20 20 20 67 6e 75 78 33 32 2c | eabi,.....gnueabihf,.....gnux32, |
| 2cc60 | 0a 20 20 20 20 63 6f 64 65 31 36 2c 0a 20 20 20 20 65 61 62 69 2c 0a 20 20 20 20 65 61 62 69 68 | .....code16,.....eabi,.....eabih |
| 2cc80 | 66 2c 0a 20 20 20 20 61 6e 64 72 6f 69 64 2c 0a 20 20 20 20 6d 75 73 6c 2c 0a 20 20 20 20 6d 75 | f,.....android,.....musl,.....mu |
| 2cca0 | 73 6c 65 61 62 69 2c 0a 20 20 20 20 6d 75 73 6c 65 61 62 69 68 66 2c 0a 20 20 20 20 6d 73 76 63 | sleabi,.....musleabihf,.....msvc |
| 2ccc0 | 2c 0a 20 20 20 20 69 74 61 6e 69 75 6d 2c 0a 20 20 20 20 63 79 67 6e 75 73 2c 0a 20 20 20 20 61 | ,.....itanium,.....cygnus,.....a |
| 2cce0 | 6d 64 6f 70 65 6e 63 6c 2c 0a 20 20 20 20 63 6f 72 65 63 6c 72 2c 0a 7d 3b 0a 0a 70 75 62 20 63 | mdopencl,.....coreclr,.};..pub.c |
| 2cd00 | 6f 6e 73 74 20 4f 62 6a 65 63 74 46 6f 72 6d 61 74 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 75 | onst.ObjectFormat.=.enum.{.....u |
| 2cd20 | 6e 6b 6e 6f 77 6e 2c 0a 20 20 20 20 63 6f 66 66 2c 0a 20 20 20 20 65 6c 66 2c 0a 20 20 20 20 6d | nknown,.....coff,.....elf,.....m |
| 2cd40 | 61 63 68 6f 2c 0a 7d 3b 0a 0a 70 75 62 20 63 6f 6e 73 74 20 47 6c 6f 62 61 6c 4c 69 6e 6b 61 67 | acho,.};..pub.const.GlobalLinkag |
| 2cd60 | 65 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 49 6e 74 65 72 6e 61 6c 2c 0a 20 20 20 20 53 74 72 | e.=.enum.{.....Internal,.....Str |
| 2cd80 | 6f 6e 67 2c 0a 20 20 20 20 57 65 61 6b 2c 0a 20 20 20 20 4c 69 6e 6b 4f 6e 63 65 2c 0a 7d 3b 0a | ong,.....Weak,.....LinkOnce,.};. |
| 2cda0 | 0a 70 75 62 20 63 6f 6e 73 74 20 41 74 6f 6d 69 63 4f 72 64 65 72 20 3d 20 65 6e 75 6d 20 7b 0a | .pub.const.AtomicOrder.=.enum.{. |
| 2cdc0 | 20 20 20 20 55 6e 6f 72 64 65 72 65 64 2c 0a 20 20 20 20 4d 6f 6e 6f 74 6f 6e 69 63 2c 0a 20 20 | ....Unordered,.....Monotonic,... |
| 2cde0 | 20 20 41 63 71 75 69 72 65 2c 0a 20 20 20 20 52 65 6c 65 61 73 65 2c 0a 20 20 20 20 41 63 71 52 | ..Acquire,.....Release,.....AcqR |
| 2ce00 | 65 6c 2c 0a 20 20 20 20 53 65 71 43 73 74 2c 0a 7d 3b 0a 0a 70 75 62 20 63 6f 6e 73 74 20 4d 6f | el,.....SeqCst,.};..pub.const.Mo |
| 2ce20 | 64 65 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 44 65 62 75 67 2c 0a 20 20 20 20 52 65 6c 65 61 | de.=.enum.{.....Debug,.....Relea |
| 2ce40 | 73 65 53 61 66 65 2c 0a 20 20 20 20 52 65 6c 65 61 73 65 46 61 73 74 2c 0a 7d 3b 0a 0a 70 75 62 | seSafe,.....ReleaseFast,.};..pub |
| 2ce60 | 20 63 6f 6e 73 74 20 69 73 5f 62 69 67 5f 65 6e 64 69 61 6e 20 3d 20 66 61 6c 73 65 3b 0a 70 75 | .const.is_big_endian.=.false;.pu |
| 2ce80 | 62 20 63 6f 6e 73 74 20 69 73 5f 74 65 73 74 20 3d 20 66 61 6c 73 65 3b 0a 70 75 62 20 63 6f 6e | b.const.is_test.=.false;.pub.con |
| 2cea0 | 73 74 20 6f 73 20 3d 20 4f 73 2e 6c 69 6e 75 78 3b 0a 70 75 62 20 63 6f 6e 73 74 20 61 72 63 68 | st.os.=.Os.linux;.pub.const.arch |
| 2cec0 | 20 3d 20 41 72 63 68 2e 78 38 36 5f 36 34 3b 0a 70 75 62 20 63 6f 6e 73 74 20 65 6e 76 69 72 6f | .=.Arch.x86_64;.pub.const.enviro |
| 2cee0 | 6e 20 3d 20 45 6e 76 69 72 6f 6e 2e 67 6e 75 3b 0a 70 75 62 20 63 6f 6e 73 74 20 6f 62 6a 65 63 | n.=.Environ.gnu;.pub.const.objec |
| 2cf00 | 74 5f 66 6f 72 6d 61 74 20 3d 20 4f 62 6a 65 63 74 46 6f 72 6d 61 74 2e 65 6c 66 3b 0a 70 75 62 | t_format.=.ObjectFormat.elf;.pub |
| 2cf20 | 20 63 6f 6e 73 74 20 6d 6f 64 65 20 3d 20 4d 6f 64 65 2e 52 65 6c 65 61 73 65 46 61 73 74 3b 0a | .const.mode.=.Mode.ReleaseFast;. |
| 2cf40 | 70 75 62 20 63 6f 6e 73 74 20 6c 69 6e 6b 5f 6c 69 62 73 20 3d 20 5b 5d 5b 5d 63 6f 6e 73 74 20 | pub.const.link_libs.=.[][]const. |
| 2cf60 | 75 38 20 7b 0a 7d 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 | u8.{.};</code></pre>.......<p>Se |
| 2cf80 | 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c | e.also:</p>.......<ul>.........< |
| 2cfa0 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 64 2d 6d 6f 64 65 22 3e 42 75 69 6c 64 20 4d | li><a.href="#build-mode">Build.M |
| 2cfc0 | 6f 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c | ode</a></li>.......</ul>.......< |
| 2cfe0 | 68 32 20 69 64 3d 22 72 6f 6f 74 2d 73 6f 75 72 63 65 2d 66 69 6c 65 22 3e 52 6f 6f 74 20 53 6f | h2.id="root-source-file">Root.So |
| 2d000 | 75 72 63 65 20 46 69 6c 65 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 | urce.File</h2>.......<p>TODO:.ex |
| 2d020 | 70 6c 61 69 6e 20 68 6f 77 20 72 6f 6f 74 20 73 6f 75 72 63 65 20 66 69 6c 65 20 66 69 6e 64 73 | plain.how.root.source.file.finds |
| 2d040 | 20 6f 74 68 65 72 20 66 69 6c 65 73 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 | .other.files</p>.......<p>TODO:. |
| 2d060 | 70 75 62 20 66 6e 20 6d 61 69 6e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 70 | pub.fn.main</p>.......<p>TODO:.p |
| 2d080 | 75 62 20 66 6e 20 70 61 6e 69 63 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 69 | ub.fn.panic</p>.......<p>TODO:.i |
| 2d0a0 | 66 20 6c 69 6e 6b 69 6e 67 20 77 69 74 68 20 6c 69 62 63 20 79 6f 75 20 63 61 6e 20 75 73 65 20 | f.linking.with.libc.you.can.use. |
| 2d0c0 | 65 78 70 6f 72 74 20 66 6e 20 6d 61 69 6e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f | export.fn.main</p>.......<p>TODO |
| 2d0e0 | 3a 20 6f 72 64 65 72 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 74 6f 70 20 6c 65 76 65 6c 20 64 65 | :.order.independent.top.level.de |
| 2d100 | 63 6c 61 72 61 74 69 6f 6e 73 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 6c 61 | clarations</p>.......<p>TODO:.la |
| 2d120 | 7a 79 20 61 6e 61 6c 79 73 69 73 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 75 | zy.analysis</p>.......<p>TODO:.u |
| 2d140 | 73 69 6e 67 20 63 6f 6d 70 74 69 6d 65 20 7b 20 5f 20 3d 20 40 69 6d 70 6f 72 74 28 29 20 7d 3c | sing.comptime.{._.=.@import().}< |
| 2d160 | 2f 70 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 7a 69 67 2d 74 65 73 74 22 3e 5a 69 67 20 | /p>.......<h2.id="zig-test">Zig. |
| 2d180 | 54 65 73 74 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 62 61 73 69 63 20 75 | Test</h2>.......<p>TODO:.basic.u |
| 2d1a0 | 73 61 67 65 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 6c 61 7a 79 20 61 6e 61 | sage</p>.......<p>TODO:.lazy.ana |
| 2d1c0 | 6c 79 73 69 73 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 2d 2d 74 65 73 74 2d | lysis</p>.......<p>TODO:.--test- |
| 2d1e0 | 66 69 6c 74 65 72 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 2d 2d 74 65 73 74 | filter</p>.......<p>TODO:.--test |
| 2d200 | 2d 6e 61 6d 65 2d 70 72 65 66 69 78 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 | -name-prefix</p>.......<p>TODO:. |
| 2d220 | 74 65 73 74 69 6e 67 20 69 6e 20 72 65 6c 65 61 73 65 66 61 73 74 20 61 6e 64 20 72 65 6c 65 61 | testing.in.releasefast.and.relea |
| 2d240 | 73 65 73 61 66 65 20 6d 6f 64 65 2e 20 61 73 73 65 72 74 20 73 74 69 6c 6c 20 77 6f 72 6b 73 3c | sesafe.mode..assert.still.works< |
| 2d260 | 2f 70 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 7a 69 67 2d 62 75 69 6c 64 2d 73 79 73 74 | /p>.......<h2.id="zig-build-syst |
| 2d280 | 65 6d 22 3e 5a 69 67 20 42 75 69 6c 64 20 53 79 73 74 65 6d 3c 2f 68 32 3e 0a 20 20 20 20 20 20 | em">Zig.Build.System</h2>....... |
| 2d2a0 | 3c 70 3e 54 4f 44 4f 3a 20 65 78 70 6c 61 69 6e 20 70 75 72 70 6f 73 65 2c 20 69 74 27 73 20 73 | <p>TODO:.explain.purpose,.it's.s |
| 2d2c0 | 75 70 70 6f 73 65 64 20 74 6f 20 72 65 70 6c 61 63 65 20 6d 61 6b 65 2f 63 6d 61 6b 65 3c 2f 70 | upposed.to.replace.make/cmake</p |
| 2d2e0 | 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 61 6d 70 6c 65 20 6f 66 20 62 75 69 6c | >.......<p>TODO:.example.of.buil |
| 2d300 | 64 69 6e 67 20 61 20 7a 69 67 20 65 78 65 63 75 74 61 62 6c 65 3c 2f 70 3e 0a 20 20 20 20 20 20 | ding.a.zig.executable</p>....... |
| 2d320 | 3c 70 3e 54 4f 44 4f 3a 20 65 78 61 6d 70 6c 65 20 6f 66 20 62 75 69 6c 64 69 6e 67 20 61 20 43 | <p>TODO:.example.of.building.a.C |
| 2d340 | 20 6c 69 62 72 61 72 79 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 63 22 3e 43 3c | .library</p>.......<h2.id="c">C< |
| 2d360 | 2f 68 32 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 6c 74 68 6f 75 67 68 20 5a 69 | /h2>.......<p>.......Although.Zi |
| 2d380 | 67 20 69 73 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 6f 66 20 43 2c 20 61 6e 64 2c 20 75 6e 6c 69 | g.is.independent.of.C,.and,.unli |
| 2d3a0 | 6b 65 20 6d 6f 73 74 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 73 2c 20 64 6f 65 73 20 6e 6f | ke.most.other.languages,.does.no |
| 2d3c0 | 74 20 64 65 70 65 6e 64 20 6f 6e 20 6c 69 62 63 2c 0a 20 20 20 20 20 20 5a 69 67 20 61 63 6b 6e | t.depend.on.libc,.......Zig.ackn |
| 2d3e0 | 6f 77 6c 65 64 67 65 73 20 74 68 65 20 69 6d 70 6f 72 74 61 6e 63 65 20 6f 66 20 69 6e 74 65 72 | owledges.the.importance.of.inter |
| 2d400 | 61 63 74 69 6e 67 20 77 69 74 68 20 65 78 69 73 74 69 6e 67 20 43 20 63 6f 64 65 2e 0a 20 20 20 | acting.with.existing.C.code..... |
| 2d420 | 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 72 65 20 61 72 | ...</p>.......<p>.......There.ar |
| 2d440 | 65 20 61 20 66 65 77 20 77 61 79 73 20 74 68 61 74 20 5a 69 67 20 66 61 63 69 6c 69 74 61 74 65 | e.a.few.ways.that.Zig.facilitate |
| 2d460 | 73 20 43 20 69 6e 74 65 72 6f 70 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 | s.C.interop........</p>.......<h |
| 2d480 | 33 20 69 64 3d 22 63 2d 74 79 70 65 2d 70 72 69 6d 69 74 69 76 65 73 22 3e 43 20 54 79 70 65 20 | 3.id="c-type-primitives">C.Type. |
| 2d4a0 | 50 72 69 6d 69 74 69 76 65 73 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 | Primitives</h3>.......<p>....... |
| 2d4c0 | 54 68 65 73 65 20 68 61 76 65 20 67 75 61 72 61 6e 74 65 65 64 20 43 20 41 42 49 20 63 6f 6d 70 | These.have.guaranteed.C.ABI.comp |
| 2d4e0 | 61 74 69 62 69 6c 69 74 79 20 61 6e 64 20 63 61 6e 20 62 65 20 75 73 65 64 20 6c 69 6b 65 20 61 | atibility.and.can.be.used.like.a |
| 2d500 | 6e 79 20 6f 74 68 65 72 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 | ny.other.type........</p>....... |
| 2d520 | 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 63 5f 73 68 6f 72 74 3c 2f | <ul>.........<li><code>c_short</ |
| 2d540 | 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 63 5f 75 | code></li>.........<li><code>c_u |
| 2d560 | 73 68 6f 72 74 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 | short</code></li>.........<li><c |
| 2d580 | 6f 64 65 3e 63 5f 69 6e 74 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c | ode>c_int</code></li>.........<l |
| 2d5a0 | 69 3e 3c 63 6f 64 65 3e 63 5f 75 69 6e 74 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | i><code>c_uint</code></li>...... |
| 2d5c0 | 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 63 5f 6c 6f 6e 67 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a | ...<li><code>c_long</code></li>. |
| 2d5e0 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 63 5f 75 6c 6f 6e 67 3c 2f 63 6f 64 65 3e | ........<li><code>c_ulong</code> |
| 2d600 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 63 5f 6c 6f 6e 67 6c 6f | </li>.........<li><code>c_longlo |
| 2d620 | 6e 67 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 | ng</code></li>.........<li><code |
| 2d640 | 3e 63 5f 75 6c 6f 6e 67 6c 6f 6e 67 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | >c_ulonglong</code></li>........ |
| 2d660 | 20 3c 6c 69 3e 3c 63 6f 64 65 3e 63 5f 6c 6f 6e 67 64 6f 75 62 6c 65 3c 2f 63 6f 64 65 3e 3c 2f | .<li><code>c_longdouble</code></ |
| 2d680 | 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 63 5f 76 6f 69 64 3c 2f 63 6f | li>.........<li><code>c_void</co |
| 2d6a0 | 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 | de></li>.......</ul>.......<p>Se |
| 2d6c0 | 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c | e.also:</p>.......<ul>.........< |
| 2d6e0 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 70 72 69 6d 69 74 69 76 65 2d 74 79 70 65 73 22 3e 50 72 | li><a.href="#primitive-types">Pr |
| 2d700 | 69 6d 69 74 69 76 65 20 54 79 70 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 | imitive.Types</a></li>.......</u |
| 2d720 | 6c 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 63 2d 73 74 72 69 6e 67 2d 6c 69 74 65 72 61 | l>.......<h3.id="c-string-litera |
| 2d740 | 6c 73 22 3e 43 20 53 74 72 69 6e 67 20 4c 69 74 65 72 61 6c 73 3c 2f 68 33 3e 0a 20 20 20 20 20 | ls">C.String.Literals</h3>...... |
| 2d760 | 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 65 78 74 65 72 6e 20 66 | .<pre><code.class="zig">extern.f |
| 2d780 | 6e 20 70 75 74 73 28 26 61 6d 70 3b 63 6f 6e 73 74 20 75 38 29 3b 0a 0a 70 75 62 20 66 6e 20 6d | n.puts(&const.u8);..pub.fn.m |
| 2d7a0 | 61 69 6e 28 29 20 2d 26 67 74 3b 20 25 76 6f 69 64 20 7b 0a 20 20 20 20 70 75 74 73 28 63 22 74 | ain().->.%void.{.....puts(c"t |
| 2d7c0 | 68 69 73 20 68 61 73 20 61 20 6e 75 6c 6c 20 74 65 72 6d 69 6e 61 74 6f 72 22 29 3b 0a 20 20 20 | his.has.a.null.terminator");.... |
| 2d7e0 | 20 70 75 74 73 28 0a 20 20 20 20 20 20 20 20 63 5c 5c 61 6e 64 20 73 6f 0a 20 20 20 20 20 20 20 | .puts(.........c\\and.so........ |
| 2d800 | 20 63 5c 5c 64 6f 65 73 20 74 68 69 73 0a 20 20 20 20 20 20 20 20 63 5c 5c 6d 75 6c 74 69 6c 69 | .c\\does.this.........c\\multili |
| 2d820 | 6e 65 20 43 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 0a 20 20 20 20 29 3b 0a 7d 3c 2f 63 6f | ne.C.string.literal.....);.}</co |
| 2d840 | 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e | de></pre>.......<p>See.also:</p> |
| 2d860 | 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d | .......<ul>.........<li><a.href= |
| 2d880 | 22 23 73 74 72 69 6e 67 2d 6c 69 74 65 72 61 6c 73 22 3e 53 74 72 69 6e 67 20 4c 69 74 65 72 61 | "#string-literals">String.Litera |
| 2d8a0 | 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 | ls</a></li>.......</ul>.......<h |
| 2d8c0 | 33 20 69 64 3d 22 63 2d 69 6d 70 6f 72 74 22 3e 49 6d 70 6f 72 74 20 66 72 6f 6d 20 43 20 48 65 | 3.id="c-import">Import.from.C.He |
| 2d8e0 | 61 64 65 72 20 46 69 6c 65 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 | ader.File</h3>.......<p>.......T |
| 2d900 | 68 65 20 3c 63 6f 64 65 3e 40 63 49 6d 70 6f 72 74 3c 2f 63 6f 64 65 3e 20 62 75 69 6c 74 69 6e | he.<code>@cImport</code>.builtin |
| 2d920 | 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 62 65 20 75 73 65 64 0a 20 20 20 20 20 20 74 6f 20 64 | .function.can.be.used.......to.d |
| 2d940 | 69 72 65 63 74 6c 79 20 69 6d 70 6f 72 74 20 73 79 6d 62 6f 6c 73 20 66 72 6f 6d 20 2e 68 20 66 | irectly.import.symbols.from..h.f |
| 2d960 | 69 6c 65 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 | iles:.......</p>.......<pre><cod |
| 2d980 | 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 63 20 3d 20 40 63 49 6d 70 6f 72 74 | e.class="zig">const.c.=.@cImport |
| 2d9a0 | 28 40 63 49 6e 63 6c 75 64 65 28 22 73 74 64 69 6f 2e 68 22 29 29 3b 0a 70 75 62 20 66 6e 20 6d | (@cInclude("stdio.h"));.pub.fn.m |
| 2d9c0 | 61 69 6e 28 29 20 2d 26 67 74 3b 20 25 76 6f 69 64 20 7b 0a 20 20 20 20 63 2e 70 72 69 6e 74 66 | ain().->.%void.{.....c.printf |
| 2d9e0 | 28 22 68 65 6c 6c 6f 5c 6e 22 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 | ("hello\n");.}</code></pre>..... |
| 2da00 | 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 3c 63 6f 64 65 3e 40 63 49 6d 70 6f 72 74 3c 2f | ..<p>.......The.<code>@cImport</ |
| 2da20 | 63 6f 64 65 3e 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 73 20 61 6e 20 65 78 70 72 65 73 73 69 | code>.function.takes.an.expressi |
| 2da40 | 6f 6e 20 61 73 20 61 20 70 61 72 61 6d 65 74 65 72 2e 0a 20 20 20 20 20 20 54 68 69 73 20 65 78 | on.as.a.parameter........This.ex |
| 2da60 | 70 72 65 73 73 69 6f 6e 20 69 73 20 65 76 61 6c 75 61 74 65 64 20 61 74 20 63 6f 6d 70 69 6c 65 | pression.is.evaluated.at.compile |
| 2da80 | 2d 74 69 6d 65 20 61 6e 64 20 69 73 20 75 73 65 64 20 74 6f 20 63 6f 6e 74 72 6f 6c 0a 20 20 20 | -time.and.is.used.to.control.... |
| 2daa0 | 20 20 20 70 72 65 70 72 6f 63 65 73 73 6f 72 20 64 69 72 65 63 74 69 76 65 73 20 61 6e 64 20 69 | ...preprocessor.directives.and.i |
| 2dac0 | 6e 63 6c 75 64 65 20 6d 75 6c 74 69 70 6c 65 20 2e 68 20 66 69 6c 65 73 3a 0a 20 20 20 20 20 20 | nclude.multiple..h.files:....... |
| 2dae0 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 | </p>.......<pre><code.class="zig |
| 2db00 | 22 3e 63 6f 6e 73 74 20 62 75 69 6c 74 69 6e 20 3d 20 40 69 6d 70 6f 72 74 28 22 62 75 69 6c 74 | ">const.builtin.=.@import("built |
| 2db20 | 69 6e 22 29 3b 0a 0a 63 6f 6e 73 74 20 63 20 3d 20 40 63 49 6d 70 6f 72 74 28 7b 0a 20 20 20 20 | in");..const.c.=.@cImport({..... |
| 2db40 | 40 63 44 65 66 69 6e 65 28 22 4e 44 45 42 55 47 22 2c 20 62 75 69 6c 74 69 6e 2e 6d 6f 64 65 20 | @cDefine("NDEBUG",.builtin.mode. |
| 2db60 | 3d 3d 20 62 75 69 6c 74 69 6e 2e 4d 6f 64 65 2e 52 65 6c 65 61 73 65 46 61 73 74 29 3b 0a 20 20 | ==.builtin.Mode.ReleaseFast);... |
| 2db80 | 20 20 69 66 20 28 73 6f 6d 65 74 68 69 6e 67 29 20 7b 0a 20 20 20 20 20 20 20 20 40 63 44 65 66 | ..if.(something).{.........@cDef |
| 2dba0 | 69 6e 65 28 22 5f 47 4e 55 5f 53 4f 55 52 43 45 22 2c 20 7b 7d 29 3b 0a 20 20 20 20 7d 0a 20 20 | ine("_GNU_SOURCE",.{});.....}... |
| 2dbc0 | 20 20 40 63 49 6e 63 6c 75 64 65 28 22 73 74 64 6c 69 62 2e 68 22 29 0a 20 20 20 20 69 66 20 28 | ..@cInclude("stdlib.h").....if.( |
| 2dbe0 | 73 6f 6d 65 74 68 69 6e 67 29 20 7b 0a 20 20 20 20 20 20 20 20 40 63 55 6e 64 65 66 28 22 5f 47 | something).{.........@cUndef("_G |
| 2dc00 | 4e 55 5f 53 4f 55 52 43 45 22 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 40 63 49 6e 63 6c 75 64 65 | NU_SOURCE");.....}.....@cInclude |
| 2dc20 | 28 22 73 6f 75 6e 64 69 6f 2e 68 22 29 3b 0a 7d 29 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a | ("soundio.h");.});</code></pre>. |
| 2dc40 | 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c | ......<p>See.also:</p>.......<ul |
| 2dc60 | 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d | >.........<li><a.href="#builtin- |
| 2dc80 | 63 49 6d 70 6f 72 74 22 3e 40 63 49 6d 70 6f 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | cImport">@cImport</a></li>...... |
| 2dca0 | 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 63 49 6e 63 6c 75 64 | ...<li><a.href="#builtin-cInclud |
| 2dcc0 | 65 22 3e 40 63 49 6e 63 6c 75 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c | e">@cInclude</a></li>.........<l |
| 2dce0 | 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 63 44 65 66 69 6e 65 22 3e 40 63 44 | i><a.href="#builtin-cDefine">@cD |
| 2dd00 | 65 66 69 6e 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 | efine</a></li>.........<li><a.hr |
| 2dd20 | 65 66 3d 22 23 62 75 69 6c 74 69 6e 2d 63 55 6e 64 65 66 22 3e 40 63 55 6e 64 65 66 3c 2f 61 3e | ef="#builtin-cUndef">@cUndef</a> |
| 2dd40 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 75 69 6c | </li>.........<li><a.href="#buil |
| 2dd60 | 74 69 6e 2d 69 6d 70 6f 72 74 22 3e 40 69 6d 70 6f 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 | tin-import">@import</a></li>.... |
| 2dd80 | 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 6d 69 78 69 6e 67 2d 6f 62 | ...</ul>.......<h3.id="mixing-ob |
| 2dda0 | 6a 65 63 74 2d 66 69 6c 65 73 22 3e 4d 69 78 69 6e 67 20 4f 62 6a 65 63 74 20 46 69 6c 65 73 3c | ject-files">Mixing.Object.Files< |
| 2ddc0 | 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 59 6f 75 20 63 61 6e 20 6d 69 78 | /h3>.......<p>.......You.can.mix |
| 2dde0 | 20 5a 69 67 20 6f 62 6a 65 63 74 20 66 69 6c 65 73 20 77 69 74 68 20 61 6e 79 20 6f 74 68 65 72 | .Zig.object.files.with.any.other |
| 2de00 | 20 6f 62 6a 65 63 74 20 66 69 6c 65 73 20 74 68 61 74 20 72 65 73 70 65 63 74 20 74 68 65 20 43 | .object.files.that.respect.the.C |
| 2de20 | 20 41 42 49 2e 20 45 78 61 6d 70 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 | .ABI..Example:.......</p>....... |
| 2de40 | 3c 68 34 3e 62 61 73 65 36 34 2e 7a 69 67 3c 2f 68 34 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c | <h4>base64.zig</h4>.......<pre>< |
| 2de60 | 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 62 61 73 65 36 34 20 3d 20 | code.class="zig">const.base64.=. |
| 2de80 | 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 62 61 73 65 36 34 3b 0a 0a 65 78 70 6f 72 74 20 66 | @import("std").base64;..export.f |
| 2dea0 | 6e 20 64 65 63 6f 64 65 5f 62 61 73 65 5f 36 34 28 64 65 73 74 5f 70 74 72 3a 20 26 61 6d 70 3b | n.decode_base_64(dest_ptr:.& |
| 2dec0 | 75 38 2c 20 64 65 73 74 5f 6c 65 6e 3a 20 75 73 69 7a 65 2c 0a 20 20 20 20 73 6f 75 72 63 65 5f | u8,.dest_len:.usize,.....source_ |
| 2dee0 | 70 74 72 3a 20 26 61 6d 70 3b 63 6f 6e 73 74 20 75 38 2c 20 73 6f 75 72 63 65 5f 6c 65 6e 3a 20 | ptr:.&const.u8,.source_len:. |
| 2df00 | 75 73 69 7a 65 29 20 2d 26 67 74 3b 20 75 73 69 7a 65 0a 7b 0a 20 20 20 20 63 6f 6e 73 74 20 73 | usize).->.usize.{.....const.s |
| 2df20 | 72 63 20 3d 20 73 6f 75 72 63 65 5f 70 74 72 5b 30 2e 2e 2e 73 6f 75 72 63 65 5f 6c 65 6e 5d 3b | rc.=.source_ptr[0...source_len]; |
| 2df40 | 0a 20 20 20 20 63 6f 6e 73 74 20 64 65 73 74 20 3d 20 64 65 73 74 5f 70 74 72 5b 30 2e 2e 2e 64 | .....const.dest.=.dest_ptr[0...d |
| 2df60 | 65 73 74 5f 6c 65 6e 5d 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 62 61 73 65 36 34 2e 64 65 63 6f | est_len];.....return.base64.deco |
| 2df80 | 64 65 28 64 65 73 74 2c 20 73 72 63 29 2e 6c 65 6e 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 | de(dest,.src).len;.}</code></pre |
| 2dfa0 | 3e 0a 20 20 20 20 20 20 3c 68 34 3e 74 65 73 74 2e 63 3c 2f 68 34 3e 0a 20 20 20 20 20 20 3c 70 | >.......<h4>test.c</h4>.......<p |
| 2dfc0 | 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 2f 2f 20 54 68 69 73 20 68 65 61 64 65 | re><code.class="c">//.This.heade |
| 2dfe0 | 72 20 69 73 20 67 65 6e 65 72 61 74 65 64 20 62 79 20 7a 69 67 20 66 72 6f 6d 20 62 61 73 65 36 | r.is.generated.by.zig.from.base6 |
| 2e000 | 34 2e 7a 69 67 0a 23 69 6e 63 6c 75 64 65 20 22 62 61 73 65 36 34 2e 68 22 0a 0a 23 69 6e 63 6c | 4.zig.#include."base64.h"..#incl |
| 2e020 | 75 64 65 20 26 6c 74 3b 73 74 72 69 6e 67 2e 68 26 67 74 3b 0a 23 69 6e 63 6c 75 64 65 20 26 6c | ude.<string.h>.#include.&l |
| 2e040 | 74 3b 73 74 64 69 6f 2e 68 26 67 74 3b 0a 0a 69 6e 74 20 6d 61 69 6e 28 69 6e 74 20 61 72 67 63 | t;stdio.h>..int.main(int.argc |
| 2e060 | 2c 20 63 68 61 72 20 2a 2a 61 72 67 76 29 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 | ,.char.**argv).{.....const.char. |
| 2e080 | 2a 65 6e 63 6f 64 65 64 20 3d 20 22 59 57 78 73 49 48 6c 76 64 58 49 67 59 6d 46 7a 5a 53 42 68 | *encoded.=."YWxsIHlvdXIgYmFzZSBh |
| 2e0a0 | 63 6d 55 67 59 6d 56 73 62 32 35 6e 49 48 52 76 49 48 56 7a 22 3b 0a 20 20 20 20 63 68 61 72 20 | cmUgYmVsb25nIHRvIHVz";.....char. |
| 2e0c0 | 62 75 66 5b 32 30 30 5d 3b 0a 0a 20 20 20 20 73 69 7a 65 5f 74 20 6c 65 6e 20 3d 20 64 65 63 6f | buf[200];......size_t.len.=.deco |
| 2e0e0 | 64 65 5f 62 61 73 65 5f 36 34 28 62 75 66 2c 20 32 30 30 2c 20 65 6e 63 6f 64 65 64 2c 20 73 74 | de_base_64(buf,.200,.encoded,.st |
| 2e100 | 72 6c 65 6e 28 65 6e 63 6f 64 65 64 29 29 3b 0a 20 20 20 20 62 75 66 5b 6c 65 6e 5d 20 3d 20 30 | rlen(encoded));.....buf[len].=.0 |
| 2e120 | 3b 0a 20 20 20 20 70 75 74 73 28 62 75 66 29 3b 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a | ;.....puts(buf);......return.0;. |
| 2e140 | 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 68 34 3e 62 75 69 6c 64 2e 7a | }</code></pre>.......<h4>build.z |
| 2e160 | 69 67 3c 2f 68 34 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 | ig</h4>.......<pre><code.class=" |
| 2e180 | 7a 69 67 22 3e 63 6f 6e 73 74 20 42 75 69 6c 64 65 72 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 | zig">const.Builder.=.@import("st |
| 2e1a0 | 64 22 29 2e 62 75 69 6c 64 2e 42 75 69 6c 64 65 72 3b 0a 0a 70 75 62 20 66 6e 20 62 75 69 6c 64 | d").build.Builder;..pub.fn.build |
| 2e1c0 | 28 62 3a 20 26 61 6d 70 3b 42 75 69 6c 64 65 72 29 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 6f 62 | (b:.&Builder).{.....const.ob |
| 2e1e0 | 6a 20 3d 20 62 2e 61 64 64 4f 62 6a 65 63 74 28 22 62 61 73 65 36 34 22 2c 20 22 62 61 73 65 36 | j.=.b.addObject("base64",."base6 |
| 2e200 | 34 2e 7a 69 67 22 29 3b 0a 0a 20 20 20 20 63 6f 6e 73 74 20 65 78 65 20 3d 20 62 2e 61 64 64 43 | 4.zig");......const.exe.=.b.addC |
| 2e220 | 45 78 65 63 75 74 61 62 6c 65 28 22 74 65 73 74 22 29 3b 0a 20 20 20 20 65 78 65 2e 61 64 64 43 | Executable("test");.....exe.addC |
| 2e240 | 6f 6d 70 69 6c 65 46 6c 61 67 73 28 5b 5d 5b 5d 63 6f 6e 73 74 20 75 38 20 7b 0a 20 20 20 20 20 | ompileFlags([][]const.u8.{...... |
| 2e260 | 20 20 20 22 2d 73 74 64 3d 63 39 39 22 2c 0a 20 20 20 20 7d 29 3b 0a 20 20 20 20 65 78 65 2e 61 | ..."-std=c99",.....});.....exe.a |
| 2e280 | 64 64 53 6f 75 72 63 65 46 69 6c 65 28 22 74 65 73 74 2e 63 22 29 3b 0a 20 20 20 20 65 78 65 2e | ddSourceFile("test.c");.....exe. |
| 2e2a0 | 61 64 64 4f 62 6a 65 63 74 28 6f 62 6a 29 3b 0a 20 20 20 20 65 78 65 2e 73 65 74 4f 75 74 70 75 | addObject(obj);.....exe.setOutpu |
| 2e2c0 | 74 50 61 74 68 28 22 2e 22 29 3b 0a 0a 20 20 20 20 62 2e 64 65 66 61 75 6c 74 5f 73 74 65 70 2e | tPath(".");......b.default_step. |
| 2e2e0 | 64 65 70 65 6e 64 4f 6e 28 26 61 6d 70 3b 65 78 65 2e 73 74 65 70 29 3b 0a 7d 3c 2f 63 6f 64 65 | dependOn(&exe.step);.}</code |
| 2e300 | 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 68 34 3e 54 65 72 6d 69 6e 61 6c 3c 2f 68 34 3e 0a | ></pre>.......<h4>Terminal</h4>. |
| 2e320 | 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e 24 20 7a 69 | ......<pre><code.class="sh">$.zi |
| 2e340 | 67 20 62 75 69 6c 64 0a 24 20 2e 2f 74 65 73 74 0a 61 6c 6c 20 79 6f 75 72 20 62 61 73 65 20 61 | g.build.$../test.all.your.base.a |
| 2e360 | 72 65 20 62 65 6c 6f 6e 67 20 74 6f 20 75 73 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 | re.belong.to.us</code></pre>.... |
| 2e380 | 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 | ...<p>See.also:</p>.......<ul>.. |
| 2e3a0 | 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 74 61 72 67 65 74 73 22 3e 54 61 | .......<li><a.href="#targets">Ta |
| 2e3c0 | 72 67 65 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 | rgets</a></li>.........<li><a.hr |
| 2e3e0 | 65 66 3d 22 23 7a 69 67 2d 62 75 69 6c 64 2d 73 79 73 74 65 6d 22 3e 5a 69 67 20 42 75 69 6c 64 | ef="#zig-build-system">Zig.Build |
| 2e400 | 20 53 79 73 74 65 6d 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 | .System</a></li>.......</ul>.... |
| 2e420 | 20 20 20 3c 68 32 20 69 64 3d 22 74 61 72 67 65 74 73 22 3e 54 61 72 67 65 74 73 3c 2f 68 32 3e | ...<h2.id="targets">Targets</h2> |
| 2e440 | 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 73 75 70 70 6f 72 74 73 20 67 65 | .......<p>.......Zig.supports.ge |
| 2e460 | 6e 65 72 61 74 69 6e 67 20 63 6f 64 65 20 66 6f 72 20 61 6c 6c 20 74 61 72 67 65 74 73 20 74 68 | nerating.code.for.all.targets.th |
| 2e480 | 61 74 20 4c 4c 56 4d 20 73 75 70 70 6f 72 74 73 2e 20 48 65 72 65 20 69 73 0a 20 20 20 20 20 20 | at.LLVM.supports..Here.is....... |
| 2e4a0 | 77 68 61 74 20 69 74 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 74 6f 20 65 78 65 63 75 74 65 20 3c 63 | what.it.looks.like.to.execute.<c |
| 2e4c0 | 6f 64 65 3e 7a 69 67 20 74 61 72 67 65 74 73 3c 2f 63 6f 64 65 3e 20 6f 6e 20 61 20 4c 69 6e 75 | ode>zig.targets</code>.on.a.Linu |
| 2e4e0 | 78 20 78 38 36 5f 36 34 0a 20 20 20 20 20 20 63 6f 6d 70 75 74 65 72 3a 0a 20 20 20 20 20 20 3c | x.x86_64.......computer:.......< |
| 2e500 | 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 22 3e | /p>.......<pre><code.class="sh"> |
| 2e520 | 24 20 7a 69 67 20 74 61 72 67 65 74 73 0a 41 72 63 68 69 74 65 63 74 75 72 65 73 3a 0a 20 20 61 | $.zig.targets.Architectures:...a |
| 2e540 | 72 6d 76 38 5f 32 61 0a 20 20 61 72 6d 76 38 5f 31 61 0a 20 20 61 72 6d 76 38 0a 20 20 61 72 6d | rmv8_2a...armv8_1a...armv8...arm |
| 2e560 | 76 38 6d 5f 62 61 73 65 6c 69 6e 65 0a 20 20 61 72 6d 76 38 6d 5f 6d 61 69 6e 6c 69 6e 65 0a 20 | v8m_baseline...armv8m_mainline.. |
| 2e580 | 20 61 72 6d 76 37 0a 20 20 61 72 6d 76 37 65 6d 0a 20 20 61 72 6d 76 37 6d 0a 20 20 61 72 6d 76 | .armv7...armv7em...armv7m...armv |
| 2e5a0 | 37 73 0a 20 20 61 72 6d 76 37 6b 0a 20 20 61 72 6d 76 36 0a 20 20 61 72 6d 76 36 6d 0a 20 20 61 | 7s...armv7k...armv6...armv6m...a |
| 2e5c0 | 72 6d 76 36 6b 0a 20 20 61 72 6d 76 36 74 32 0a 20 20 61 72 6d 76 35 0a 20 20 61 72 6d 76 35 74 | rmv6k...armv6t2...armv5...armv5t |
| 2e5e0 | 65 0a 20 20 61 72 6d 76 34 74 0a 20 20 61 72 6d 65 62 0a 20 20 61 61 72 63 68 36 34 0a 20 20 61 | e...armv4t...armeb...aarch64...a |
| 2e600 | 61 72 63 68 36 34 5f 62 65 0a 20 20 61 76 72 0a 20 20 62 70 66 65 6c 0a 20 20 62 70 66 65 62 0a | arch64_be...avr...bpfel...bpfeb. |
| 2e620 | 20 20 68 65 78 61 67 6f 6e 0a 20 20 6d 69 70 73 0a 20 20 6d 69 70 73 65 6c 0a 20 20 6d 69 70 73 | ..hexagon...mips...mipsel...mips |
| 2e640 | 36 34 0a 20 20 6d 69 70 73 36 34 65 6c 0a 20 20 6d 73 70 34 33 30 0a 20 20 70 6f 77 65 72 70 63 | 64...mips64el...msp430...powerpc |
| 2e660 | 0a 20 20 70 6f 77 65 72 70 63 36 34 0a 20 20 70 6f 77 65 72 70 63 36 34 6c 65 0a 20 20 72 36 30 | ...powerpc64...powerpc64le...r60 |
| 2e680 | 30 0a 20 20 61 6d 64 67 63 6e 0a 20 20 73 70 61 72 63 0a 20 20 73 70 61 72 63 76 39 0a 20 20 73 | 0...amdgcn...sparc...sparcv9...s |
| 2e6a0 | 70 61 72 63 65 6c 0a 20 20 73 33 39 30 78 0a 20 20 74 63 65 0a 20 20 74 68 75 6d 62 0a 20 20 74 | parcel...s390x...tce...thumb...t |
| 2e6c0 | 68 75 6d 62 65 62 0a 20 20 69 33 38 36 0a 20 20 78 38 36 5f 36 34 20 28 6e 61 74 69 76 65 29 0a | humbeb...i386...x86_64.(native). |
| 2e6e0 | 20 20 78 63 6f 72 65 0a 20 20 6e 76 70 74 78 0a 20 20 6e 76 70 74 78 36 34 0a 20 20 6c 65 33 32 | ..xcore...nvptx...nvptx64...le32 |
| 2e700 | 0a 20 20 6c 65 36 34 0a 20 20 61 6d 64 69 6c 0a 20 20 61 6d 64 69 6c 36 34 0a 20 20 68 73 61 69 | ...le64...amdil...amdil64...hsai |
| 2e720 | 6c 0a 20 20 68 73 61 69 6c 36 34 0a 20 20 73 70 69 72 36 34 0a 20 20 6b 61 6c 69 6d 62 61 76 33 | l...hsail64...spir64...kalimbav3 |
| 2e740 | 0a 20 20 6b 61 6c 69 6d 62 61 76 34 0a 20 20 6b 61 6c 69 6d 62 61 76 35 0a 20 20 73 68 61 76 65 | ...kalimbav4...kalimbav5...shave |
| 2e760 | 0a 20 20 6c 61 6e 61 69 0a 20 20 77 61 73 6d 33 32 0a 20 20 77 61 73 6d 36 34 0a 20 20 72 65 6e | ...lanai...wasm32...wasm64...ren |
| 2e780 | 64 65 72 73 63 72 69 70 74 33 32 0a 20 20 72 65 6e 64 65 72 73 63 72 69 70 74 36 34 0a 0a 4f 70 | derscript32...renderscript64..Op |
| 2e7a0 | 65 72 61 74 69 6e 67 20 53 79 73 74 65 6d 73 3a 0a 20 20 66 72 65 65 73 74 61 6e 64 69 6e 67 0a | erating.Systems:...freestanding. |
| 2e7c0 | 20 20 63 6c 6f 75 64 61 62 69 0a 20 20 64 61 72 77 69 6e 0a 20 20 64 72 61 67 6f 6e 66 6c 79 0a | ..cloudabi...darwin...dragonfly. |
| 2e7e0 | 20 20 66 72 65 65 62 73 64 0a 20 20 69 6f 73 0a 20 20 6b 66 72 65 65 62 73 64 0a 20 20 6c 69 6e | ..freebsd...ios...kfreebsd...lin |
| 2e800 | 75 78 20 28 6e 61 74 69 76 65 29 0a 20 20 6c 76 32 0a 20 20 6d 61 63 6f 73 78 0a 20 20 6e 65 74 | ux.(native)...lv2...macosx...net |
| 2e820 | 62 73 64 0a 20 20 6f 70 65 6e 62 73 64 0a 20 20 73 6f 6c 61 72 69 73 0a 20 20 77 69 6e 64 6f 77 | bsd...openbsd...solaris...window |
| 2e840 | 73 0a 20 20 68 61 69 6b 75 0a 20 20 6d 69 6e 69 78 0a 20 20 72 74 65 6d 73 0a 20 20 6e 61 63 6c | s...haiku...minix...rtems...nacl |
| 2e860 | 0a 20 20 63 6e 6b 0a 20 20 62 69 74 72 69 67 0a 20 20 61 69 78 0a 20 20 63 75 64 61 0a 20 20 6e | ...cnk...bitrig...aix...cuda...n |
| 2e880 | 76 63 6c 0a 20 20 61 6d 64 68 73 61 0a 20 20 70 73 34 0a 20 20 65 6c 66 69 61 6d 63 75 0a 20 20 | vcl...amdhsa...ps4...elfiamcu... |
| 2e8a0 | 74 76 6f 73 0a 20 20 77 61 74 63 68 6f 73 0a 20 20 6d 65 73 61 33 64 0a 0a 45 6e 76 69 72 6f 6e | tvos...watchos...mesa3d..Environ |
| 2e8c0 | 6d 65 6e 74 73 3a 0a 20 20 67 6e 75 20 28 6e 61 74 69 76 65 29 0a 20 20 67 6e 75 61 62 69 36 34 | ments:...gnu.(native)...gnuabi64 |
| 2e8e0 | 0a 20 20 67 6e 75 65 61 62 69 0a 20 20 67 6e 75 65 61 62 69 68 66 0a 20 20 67 6e 75 78 33 32 0a | ...gnueabi...gnueabihf...gnux32. |
| 2e900 | 20 20 63 6f 64 65 31 36 0a 20 20 65 61 62 69 0a 20 20 65 61 62 69 68 66 0a 20 20 61 6e 64 72 6f | ..code16...eabi...eabihf...andro |
| 2e920 | 69 64 0a 20 20 6d 75 73 6c 0a 20 20 6d 75 73 6c 65 61 62 69 0a 20 20 6d 75 73 6c 65 61 62 69 68 | id...musl...musleabi...musleabih |
| 2e940 | 66 0a 20 20 6d 73 76 63 0a 20 20 69 74 61 6e 69 75 6d 0a 20 20 63 79 67 6e 75 73 0a 20 20 61 6d | f...msvc...itanium...cygnus...am |
| 2e960 | 64 6f 70 65 6e 63 6c 0a 20 20 63 6f 72 65 63 6c 72 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 | dopencl...coreclr</code></pre>.. |
| 2e980 | 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 5a 69 67 20 53 74 61 6e 64 61 72 64 20 | .....<p>.......The.Zig.Standard. |
| 2e9a0 | 4c 69 62 72 61 72 79 20 28 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 3c 2f 63 | Library.(<code>@import("std")</c |
| 2e9c0 | 6f 64 65 3e 29 20 68 61 73 20 61 72 63 68 69 74 65 63 74 75 72 65 2c 20 65 6e 76 69 72 6f 6e 6d | ode>).has.architecture,.environm |
| 2e9e0 | 65 6e 74 2c 20 61 6e 64 20 6f 70 65 72 61 74 69 6e 67 20 73 79 74 73 65 6d 0a 20 20 20 20 20 20 | ent,.and.operating.sytsem....... |
| 2ea00 | 61 62 73 74 72 61 63 74 69 6f 6e 73 2c 20 61 6e 64 20 74 68 75 73 20 74 61 6b 65 73 20 61 64 64 | abstractions,.and.thus.takes.add |
| 2ea20 | 69 74 69 6f 6e 61 6c 20 77 6f 72 6b 20 74 6f 20 73 75 70 70 6f 72 74 20 6d 6f 72 65 20 70 6c 61 | itional.work.to.support.more.pla |
| 2ea40 | 74 66 6f 72 6d 73 2e 20 49 74 20 63 75 72 72 65 6e 74 6c 79 20 73 75 70 70 6f 72 74 73 0a 20 20 | tforms..It.currently.supports... |
| 2ea60 | 20 20 20 20 4c 69 6e 75 78 20 78 38 36 5f 36 34 2e 20 4e 6f 74 20 61 6c 6c 20 73 74 61 6e 64 61 | ....Linux.x86_64..Not.all.standa |
| 2ea80 | 72 64 20 6c 69 62 72 61 72 79 20 63 6f 64 65 20 72 65 71 75 69 72 65 73 20 6f 70 65 72 61 74 69 | rd.library.code.requires.operati |
| 2eaa0 | 6e 67 20 73 79 73 74 65 6d 20 61 62 73 74 72 61 63 74 69 6f 6e 73 2c 20 68 6f 77 65 76 65 72 2c | ng.system.abstractions,.however, |
| 2eac0 | 0a 20 20 20 20 20 20 73 6f 20 74 68 69 6e 67 73 20 73 75 63 68 20 61 73 20 67 65 6e 65 72 69 63 | .......so.things.such.as.generic |
| 2eae0 | 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 73 20 77 6f 72 6b 20 61 6e 20 61 6c 6c 20 61 62 6f | .data.structures.work.an.all.abo |
| 2eb00 | 76 65 20 70 6c 61 74 66 6f 72 6d 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | ve.platforms........</p>.......< |
| 2eb20 | 68 32 20 69 64 3d 22 73 74 79 6c 65 2d 67 75 69 64 65 22 3e 53 74 79 6c 65 20 47 75 69 64 65 3c | h2.id="style-guide">Style.Guide< |
| 2eb40 | 2f 68 32 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 54 68 65 73 65 20 63 6f 64 69 6e 67 20 63 6f 6e 76 | /h2>.......<p>.These.coding.conv |
| 2eb60 | 65 6e 74 69 6f 6e 73 20 61 72 65 20 6e 6f 74 20 65 6e 66 6f 72 63 65 64 20 62 79 20 74 68 65 20 | entions.are.not.enforced.by.the. |
| 2eb80 | 63 6f 6d 70 69 6c 65 72 2c 20 62 75 74 20 74 68 65 79 20 61 72 65 20 73 68 69 70 70 65 64 20 69 | compiler,.but.they.are.shipped.i |
| 2eba0 | 6e 0a 74 68 69 73 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 61 6c 6f 6e 67 20 77 69 74 68 20 | n.this.documentation.along.with. |
| 2ebc0 | 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 70 72 6f 76 69 64 65 | the.compiler.in.order.to.provide |
| 2ebe0 | 20 61 20 70 6f 69 6e 74 20 6f 66 0a 72 65 66 65 72 65 6e 63 65 2c 20 73 68 6f 75 6c 64 20 61 6e | .a.point.of.reference,.should.an |
| 2ec00 | 79 6f 6e 65 20 77 69 73 68 20 74 6f 20 70 6f 69 6e 74 20 74 6f 20 61 6e 20 61 75 74 68 6f 72 69 | yone.wish.to.point.to.an.authori |
| 2ec20 | 74 79 20 6f 6e 20 61 67 72 65 65 64 20 75 70 6f 6e 20 5a 69 67 0a 63 6f 64 69 6e 67 20 73 74 79 | ty.on.agreed.upon.Zig.coding.sty |
| 2ec40 | 6c 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 73 74 79 | le........</p>.......<h3.id="sty |
| 2ec60 | 6c 65 2d 67 75 69 64 65 2d 77 68 69 74 65 73 70 61 63 65 22 3e 57 68 69 74 65 73 70 61 63 65 3c | le-guide-whitespace">Whitespace< |
| 2ec80 | 2f 68 33 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 | /h3>.......<ul>.........<li>.... |
| 2eca0 | 20 20 20 20 20 20 20 34 20 73 70 61 63 65 20 69 6e 64 65 6e 74 61 74 69 6f 6e 0a 20 20 20 20 20 | .......4.space.indentation...... |
| 2ecc0 | 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 | ...</li>.........<li>........... |
| 2ece0 | 4f 70 65 6e 20 62 72 61 63 65 73 20 6f 6e 20 73 61 6d 65 20 6c 69 6e 65 2c 20 75 6e 6c 65 73 73 | Open.braces.on.same.line,.unless |
| 2ed00 | 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 77 72 61 70 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e | .you.need.to.wrap..........</li> |
| 2ed20 | 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 49 66 20 61 20 6c 69 73 74 20 6f 66 20 74 68 69 6e 67 73 | .........<li>If.a.list.of.things |
| 2ed40 | 20 69 73 20 6c 6f 6e 67 65 72 20 74 68 61 6e 20 32 2c 20 70 75 74 20 65 61 63 68 20 69 74 65 6d | .is.longer.than.2,.put.each.item |
| 2ed60 | 20 6f 6e 20 69 74 73 20 6f 77 6e 20 6c 69 6e 65 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 65 | .on.its.own.line.and...........e |
| 2ed80 | 78 65 72 63 69 73 65 20 74 68 65 20 61 62 69 6c 74 79 20 74 6f 20 70 75 74 20 61 6e 20 65 78 74 | xercise.the.abilty.to.put.an.ext |
| 2eda0 | 72 61 20 63 6f 6d 6d 61 20 61 74 20 74 68 65 20 65 6e 64 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c | ra.comma.at.the.end..........</l |
| 2edc0 | 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 4c 69 6e 65 20 6c | i>.........<li>...........Line.l |
| 2ede0 | 65 6e 67 74 68 3a 20 61 69 6d 20 66 6f 72 20 31 30 30 3b 20 75 73 65 20 63 6f 6d 6d 6f 6e 20 73 | ength:.aim.for.100;.use.common.s |
| 2ee00 | 65 6e 73 65 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a | ense..........</li>.......</ul>. |
| 2ee20 | 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 73 74 79 6c 65 2d 67 75 69 64 65 2d 6e 61 6d 65 73 22 | ......<h3.id="style-guide-names" |
| 2ee40 | 3e 4e 61 6d 65 73 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 6f 75 67 | >Names</h3>.......<p>.......Roug |
| 2ee60 | 68 6c 79 20 73 70 65 61 6b 69 6e 67 3a 20 3c 63 6f 64 65 3e 63 61 6d 65 6c 43 61 73 65 46 75 6e | hly.speaking:.<code>camelCaseFun |
| 2ee80 | 63 74 69 6f 6e 4e 61 6d 65 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 54 69 74 6c 65 43 61 73 | ctionName</code>,.<code>TitleCas |
| 2eea0 | 65 54 79 70 65 4e 61 6d 65 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 73 6e | eTypeName</code>,.......<code>sn |
| 2eec0 | 61 6b 65 5f 63 61 73 65 5f 76 61 72 69 61 62 6c 65 5f 6e 61 6d 65 3c 2f 63 6f 64 65 3e 2e 20 4d | ake_case_variable_name</code>..M |
| 2eee0 | 6f 72 65 20 70 72 65 63 69 73 65 6c 79 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 | ore.precisely:.......</p>....... |
| 2ef00 | 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 49 66 20 3c | <ul>.........<li>...........If.< |
| 2ef20 | 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 69 73 20 61 20 3c 63 6f 64 65 3e 73 74 72 75 63 74 3c | code>x</code>.is.a.<code>struct< |
| 2ef40 | 2f 63 6f 64 65 3e 20 28 6f 72 20 61 6e 20 61 6c 69 61 73 20 6f 66 20 61 20 3c 63 6f 64 65 3e 73 | /code>.(or.an.alias.of.a.<code>s |
| 2ef60 | 74 72 75 63 74 3c 2f 63 6f 64 65 3e 29 2c 0a 20 20 20 20 20 20 20 20 20 20 74 68 65 6e 20 3c 63 | truct</code>),...........then.<c |
| 2ef80 | 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 73 68 6f 75 6c 64 20 62 65 20 3c 63 6f 64 65 3e 54 69 74 | ode>x</code>.should.be.<code>Tit |
| 2efa0 | 6c 65 43 61 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 | leCase</code>..........</li>.... |
| 2efc0 | 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 49 66 20 3c 63 6f 64 65 3e 78 3c 2f | .....<li>...........If.<code>x</ |
| 2efe0 | 63 6f 64 65 3e 20 6f 74 68 65 72 77 69 73 65 20 69 64 65 6e 74 69 66 69 65 73 20 61 20 74 79 70 | code>.otherwise.identifies.a.typ |
| 2f000 | 65 2c 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 73 68 6f 75 6c 64 20 68 61 76 65 20 3c 63 | e,.<code>x</code>.should.have.<c |
| 2f020 | 6f 64 65 3e 73 6e 61 6b 65 5f 63 61 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 3c | ode>snake_case</code>..........< |
| 2f040 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 49 66 20 3c | /li>.........<li>...........If.< |
| 2f060 | 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 69 73 20 63 61 6c 6c 61 62 6c 65 2c 20 61 6e 64 20 3c | code>x</code>.is.callable,.and.< |
| 2f080 | 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 27 73 20 72 65 74 75 72 6e 20 74 79 70 65 20 69 73 20 3c | code>x</code>'s.return.type.is.< |
| 2f0a0 | 63 6f 64 65 3e 74 79 70 65 3c 2f 63 6f 64 65 3e 2c 20 74 68 65 6e 20 3c 63 6f 64 65 3e 78 3c 2f | code>type</code>,.then.<code>x</ |
| 2f0c0 | 63 6f 64 65 3e 20 73 68 6f 75 6c 64 20 62 65 20 3c 63 6f 64 65 3e 54 69 74 6c 65 43 61 73 65 3c | code>.should.be.<code>TitleCase< |
| 2f0e0 | 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c | /code>..........</li>.........<l |
| 2f100 | 69 3e 0a 20 20 20 20 20 20 20 20 20 20 49 66 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 69 | i>...........If.<code>x</code>.i |
| 2f120 | 73 20 6f 74 68 65 72 77 69 73 65 20 63 61 6c 6c 61 62 6c 65 2c 20 74 68 65 6e 20 3c 63 6f 64 65 | s.otherwise.callable,.then.<code |
| 2f140 | 3e 78 3c 2f 63 6f 64 65 3e 20 73 68 6f 75 6c 64 20 62 65 20 3c 63 6f 64 65 3e 63 61 6d 65 6c 43 | >x</code>.should.be.<code>camelC |
| 2f160 | 61 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | ase</code>..........</li>....... |
| 2f180 | 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 4f 74 68 65 72 77 69 73 65 2c 20 3c 63 6f 64 | ..<li>...........Otherwise,.<cod |
| 2f1a0 | 65 3e 78 3c 2f 63 6f 64 65 3e 20 73 68 6f 75 6c 64 20 62 65 20 3c 63 6f 64 65 3e 73 6e 61 6b 65 | e>x</code>.should.be.<code>snake |
| 2f1c0 | 5f 63 61 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 | _case</code>..........</li>..... |
| 2f1e0 | 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 63 72 6f 6e 79 6d 73 | ..</ul>.......<p>.......Acronyms |
| 2f200 | 2c 20 69 6e 69 74 69 61 6c 69 73 6d 73 2c 20 70 72 6f 70 65 72 20 6e 6f 75 6e 73 2c 20 6f 72 20 | ,.initialisms,.proper.nouns,.or. |
| 2f220 | 61 6e 79 20 6f 74 68 65 72 20 77 6f 72 64 20 74 68 61 74 20 68 61 73 20 63 61 70 69 74 61 6c 69 | any.other.word.that.has.capitali |
| 2f240 | 7a 61 74 69 6f 6e 0a 20 20 20 20 20 20 72 75 6c 65 73 20 69 6e 20 77 72 69 74 74 65 6e 20 45 6e | zation.......rules.in.written.En |
| 2f260 | 67 6c 69 73 68 20 61 72 65 20 73 75 62 6a 65 63 74 20 74 6f 20 6e 61 6d 69 6e 67 20 63 6f 6e 76 | glish.are.subject.to.naming.conv |
| 2f280 | 65 6e 74 69 6f 6e 73 20 6a 75 73 74 20 6c 69 6b 65 20 61 6e 79 20 6f 74 68 65 72 0a 20 20 20 20 | entions.just.like.any.other..... |
| 2f2a0 | 20 20 77 6f 72 64 2e 20 45 76 65 6e 20 61 63 72 6f 6e 79 6d 73 20 74 68 61 74 20 61 72 65 20 6f | ..word..Even.acronyms.that.are.o |
| 2f2c0 | 6e 6c 79 20 32 20 6c 65 74 74 65 72 73 20 6c 6f 6e 67 20 61 72 65 20 73 75 62 6a 65 63 74 20 74 | nly.2.letters.long.are.subject.t |
| 2f2e0 | 6f 20 74 68 65 73 65 0a 20 20 20 20 20 20 63 6f 6e 76 65 6e 74 69 6f 6e 73 2e 0a 20 20 20 20 20 | o.these.......conventions....... |
| 2f300 | 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 73 65 20 61 72 65 20 | .</p>.......<p>.......These.are. |
| 2f320 | 67 65 6e 65 72 61 6c 20 72 75 6c 65 73 20 6f 66 20 74 68 75 6d 62 3b 20 69 66 20 69 74 20 6d 61 | general.rules.of.thumb;.if.it.ma |
| 2f340 | 6b 65 73 20 73 65 6e 73 65 20 74 6f 20 64 6f 20 73 6f 6d 65 74 68 69 6e 67 20 64 69 66 66 65 72 | kes.sense.to.do.something.differ |
| 2f360 | 65 6e 74 2c 0a 20 20 20 20 20 20 64 6f 20 77 68 61 74 20 6d 61 6b 65 73 20 73 65 6e 73 65 2e 20 | ent,.......do.what.makes.sense.. |
| 2f380 | 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 74 68 65 72 65 20 69 73 20 61 6e 20 65 73 74 61 | For.example,.if.there.is.an.esta |
| 2f3a0 | 62 6c 69 73 68 65 64 20 63 6f 6e 76 65 6e 74 69 6f 6e 20 73 75 63 68 20 61 73 0a 20 20 20 20 20 | blished.convention.such.as...... |
| 2f3c0 | 20 3c 63 6f 64 65 3e 45 4e 4f 45 4e 54 3c 2f 63 6f 64 65 3e 2c 20 66 6f 6c 6c 6f 77 20 74 68 65 | .<code>ENOENT</code>,.follow.the |
| 2f3e0 | 20 65 73 74 61 62 6c 69 73 68 65 64 20 63 6f 6e 76 65 6e 74 69 6f 6e 2e 0a 20 20 20 20 20 20 3c | .established.convention........< |
| 2f400 | 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 73 74 79 6c 65 2d 67 75 69 64 65 2d 65 78 | /p>.......<h3.id="style-guide-ex |
| 2f420 | 61 6d 70 6c 65 73 22 3e 45 78 61 6d 70 6c 65 73 3c 2f 68 33 3e 0a 20 20 20 20 20 20 3c 70 72 65 | amples">Examples</h3>.......<pre |
| 2f440 | 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 6e 61 6d 65 73 70 61 | ><code.class="zig">const.namespa |
| 2f460 | 63 65 5f 6e 61 6d 65 20 3d 20 40 69 6d 70 6f 72 74 28 22 64 69 72 5f 6e 61 6d 65 2f 66 69 6c 65 | ce_name.=.@import("dir_name/file |
| 2f480 | 5f 6e 61 6d 65 2e 7a 69 67 22 29 3b 0a 76 61 72 20 67 6c 6f 62 61 6c 5f 76 61 72 3a 20 69 33 32 | _name.zig");.var.global_var:.i32 |
| 2f4a0 | 20 3d 20 75 6e 64 65 66 69 6e 65 64 3b 0a 63 6f 6e 73 74 20 63 6f 6e 73 74 5f 6e 61 6d 65 20 3d | .=.undefined;.const.const_name.= |
| 2f4c0 | 20 34 32 3b 0a 63 6f 6e 73 74 20 70 72 69 6d 69 74 69 76 65 5f 74 79 70 65 5f 61 6c 69 61 73 20 | .42;.const.primitive_type_alias. |
| 2f4e0 | 3d 20 66 33 32 3b 0a 63 6f 6e 73 74 20 73 74 72 69 6e 67 5f 61 6c 69 61 73 20 3d 20 5b 5d 75 38 | =.f32;.const.string_alias.=.[]u8 |
| 2f500 | 3b 0a 0a 63 6f 6e 73 74 20 53 74 72 75 63 74 4e 61 6d 65 20 3d 20 73 74 72 75 63 74 20 7b 7d 3b | ;..const.StructName.=.struct.{}; |
| 2f520 | 0a 63 6f 6e 73 74 20 53 74 72 75 63 74 41 6c 69 61 73 20 3d 20 53 74 72 75 63 74 4e 61 6d 65 3b | .const.StructAlias.=.StructName; |
| 2f540 | 0a 0a 66 6e 20 66 75 6e 63 74 69 6f 6e 4e 61 6d 65 28 70 61 72 61 6d 5f 6e 61 6d 65 3a 20 54 79 | ..fn.functionName(param_name:.Ty |
| 2f560 | 70 65 4e 61 6d 65 29 20 7b 0a 20 20 20 20 76 61 72 20 66 75 6e 63 74 69 6f 6e 50 6f 69 6e 74 65 | peName).{.....var.functionPointe |
| 2f580 | 72 20 3d 20 66 75 6e 63 74 69 6f 6e 4e 61 6d 65 3b 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 50 6f | r.=.functionName;.....functionPo |
| 2f5a0 | 69 6e 74 65 72 28 29 3b 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 50 6f 69 6e 74 65 72 20 3d 20 6f | inter();.....functionPointer.=.o |
| 2f5c0 | 74 68 65 72 46 75 6e 63 74 69 6f 6e 3b 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 50 6f 69 6e 74 65 | therFunction;.....functionPointe |
| 2f5e0 | 72 28 29 3b 0a 7d 0a 63 6f 6e 73 74 20 66 75 6e 63 74 69 6f 6e 41 6c 69 61 73 20 3d 20 66 75 6e | r();.}.const.functionAlias.=.fun |
| 2f600 | 63 74 69 6f 6e 4e 61 6d 65 3b 0a 0a 66 6e 20 4c 69 73 74 54 65 6d 70 6c 61 74 65 46 75 6e 63 74 | ctionName;..fn.ListTemplateFunct |
| 2f620 | 69 6f 6e 28 63 6f 6d 70 74 69 6d 65 20 43 68 69 6c 64 54 79 70 65 3a 20 74 79 70 65 2c 20 63 6f | ion(comptime.ChildType:.type,.co |
| 2f640 | 6d 70 74 69 6d 65 20 66 69 78 65 64 5f 73 69 7a 65 3a 20 75 73 69 7a 65 29 20 2d 26 67 74 3b 20 | mptime.fixed_size:.usize).->. |
| 2f660 | 74 79 70 65 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 4c 69 73 74 28 43 68 69 6c 64 54 79 70 65 | type.{.....return.List(ChildType |
| 2f680 | 2c 20 66 69 78 65 64 5f 73 69 7a 65 29 3b 0a 7d 0a 0a 66 6e 20 53 68 6f 72 74 4c 69 73 74 28 63 | ,.fixed_size);.}..fn.ShortList(c |
| 2f6a0 | 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 2c 20 63 6f 6d 70 74 69 6d 65 20 6e 3a 20 75 73 69 | omptime.T:.type,.comptime.n:.usi |
| 2f6c0 | 7a 65 29 20 2d 26 67 74 3b 20 74 79 70 65 20 7b 0a 20 20 20 20 73 74 72 75 63 74 20 7b 0a 20 20 | ze).->.type.{.....struct.{... |
| 2f6e0 | 20 20 20 20 20 20 66 69 65 6c 64 5f 6e 61 6d 65 3a 20 5b 6e 5d 54 2c 0a 20 20 20 20 20 20 20 20 | ......field_name:.[n]T,......... |
| 2f700 | 66 6e 20 6d 65 74 68 6f 64 4e 61 6d 65 28 29 20 7b 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 2f 2f 20 54 | fn.methodName().{}.....}.}..//.T |
| 2f720 | 68 65 20 77 6f 72 64 20 58 4d 4c 20 6c 6f 73 65 73 20 69 74 73 20 63 61 73 69 6e 67 20 77 68 65 | he.word.XML.loses.its.casing.whe |
| 2f740 | 6e 20 75 73 65 64 20 69 6e 20 5a 69 67 20 69 64 65 6e 74 69 66 69 65 72 73 2e 0a 63 6f 6e 73 74 | n.used.in.Zig.identifiers..const |
| 2f760 | 20 78 6d 6c 5f 64 6f 63 75 6d 65 6e 74 20 3d 0a 20 20 20 20 5c 5c 26 6c 74 3b 3f 78 6d 6c 20 76 | .xml_document.=.....\\<?xml.v |
| 2f780 | 65 72 73 69 6f 6e 3d 22 31 2e 30 22 20 65 6e 63 6f 64 69 6e 67 3d 22 55 54 46 2d 38 22 3f 26 67 | ersion="1.0".encoding="UTF-8"?&g |
| 2f7a0 | 74 3b 0a 20 20 20 20 5c 5c 26 6c 74 3b 64 6f 63 75 6d 65 6e 74 26 67 74 3b 0a 20 20 20 20 5c 5c | t;.....\\<document>.....\\ |
| 2f7c0 | 26 6c 74 3b 2f 64 6f 63 75 6d 65 6e 74 26 67 74 3b 0a 3b 0a 63 6f 6e 73 74 20 58 6d 6c 50 61 72 | </document>.;.const.XmlPar |
| 2f7e0 | 73 65 72 20 3d 20 73 74 72 75 63 74 20 7b 7d 3b 0a 0a 2f 2f 20 54 68 65 20 69 6e 69 74 69 61 6c | ser.=.struct.{};..//.The.initial |
| 2f800 | 73 20 42 45 20 28 42 69 67 20 45 6e 64 69 61 6e 29 20 61 72 65 20 6a 75 73 74 20 61 6e 6f 74 68 | s.BE.(Big.Endian).are.just.anoth |
| 2f820 | 65 72 20 77 6f 72 64 20 69 6e 20 5a 69 67 20 69 64 65 6e 74 69 66 69 65 72 20 6e 61 6d 65 73 2e | er.word.in.Zig.identifier.names. |
| 2f840 | 0a 66 6e 20 72 65 61 64 55 33 32 42 65 28 29 20 2d 26 67 74 3b 20 75 33 32 20 7b 7d 3c 2f 63 6f | .fn.readU32Be().->.u32.{}</co |
| 2f860 | 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 53 65 65 20 74 68 | de></pre>.......<p>.......See.th |
| 2f880 | 65 20 5a 69 67 20 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 20 66 6f 72 20 6d 6f 72 65 20 | e.Zig.Standard.Library.for.more. |
| 2f8a0 | 65 78 61 6d 70 6c 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 | examples........</p>.......<h2.i |
| 2f8c0 | 64 3d 22 67 72 61 6d 6d 61 72 22 3e 47 72 61 6d 6d 61 72 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c | d="grammar">Grammar</h2>.......< |
| 2f8e0 | 70 72 65 3e 3c 63 6f 64 65 3e 52 6f 6f 74 20 3d 20 6d 61 6e 79 28 54 6f 70 4c 65 76 65 6c 49 74 | pre><code>Root.=.many(TopLevelIt |
| 2f900 | 65 6d 29 20 45 4f 46 0a 0a 54 6f 70 4c 65 76 65 6c 49 74 65 6d 20 3d 20 45 72 72 6f 72 56 61 6c | em).EOF..TopLevelItem.=.ErrorVal |
| 2f920 | 75 65 44 65 63 6c 20 7c 20 43 6f 6d 70 54 69 6d 65 45 78 70 72 65 73 73 69 6f 6e 28 42 6c 6f 63 | ueDecl.|.CompTimeExpression(Bloc |
| 2f940 | 6b 29 20 7c 20 54 6f 70 4c 65 76 65 6c 44 65 63 6c 20 7c 20 54 65 73 74 44 65 63 6c 0a 0a 54 65 | k).|.TopLevelDecl.|.TestDecl..Te |
| 2f960 | 73 74 44 65 63 6c 20 3d 20 22 74 65 73 74 22 20 53 74 72 69 6e 67 20 42 6c 6f 63 6b 0a 0a 54 6f | stDecl.=."test".String.Block..To |
| 2f980 | 70 4c 65 76 65 6c 44 65 63 6c 20 3d 20 6f 70 74 69 6f 6e 28 56 69 73 69 62 6c 65 4d 6f 64 29 20 | pLevelDecl.=.option(VisibleMod). |
| 2f9a0 | 28 46 6e 44 65 66 20 7c 20 45 78 74 65 72 6e 44 65 63 6c 20 7c 20 47 6c 6f 62 61 6c 56 61 72 44 | (FnDef.|.ExternDecl.|.GlobalVarD |
| 2f9c0 | 65 63 6c 20 7c 20 55 73 65 44 65 63 6c 29 0a 0a 45 72 72 6f 72 56 61 6c 75 65 44 65 63 6c 20 3d | ecl.|.UseDecl)..ErrorValueDecl.= |
| 2f9e0 | 20 22 65 72 72 6f 72 22 20 53 79 6d 62 6f 6c 20 22 3b 22 0a 0a 47 6c 6f 62 61 6c 56 61 72 44 65 | ."error".Symbol.";"..GlobalVarDe |
| 2fa00 | 63 6c 20 3d 20 56 61 72 69 61 62 6c 65 44 65 63 6c 61 72 61 74 69 6f 6e 20 22 3b 22 0a 0a 56 61 | cl.=.VariableDeclaration.";"..Va |
| 2fa20 | 72 69 61 62 6c 65 44 65 63 6c 61 72 61 74 69 6f 6e 20 3d 20 6f 70 74 69 6f 6e 28 22 63 6f 6d 70 | riableDeclaration.=.option("comp |
| 2fa40 | 74 69 6d 65 22 29 20 28 22 76 61 72 22 20 7c 20 22 63 6f 6e 73 74 22 29 20 53 79 6d 62 6f 6c 20 | time").("var".|."const").Symbol. |
| 2fa60 | 6f 70 74 69 6f 6e 28 22 3a 22 20 54 79 70 65 45 78 70 72 29 20 6f 70 74 69 6f 6e 28 22 61 6c 69 | option(":".TypeExpr).option("ali |
| 2fa80 | 67 6e 22 20 22 28 22 20 45 78 70 72 65 73 73 69 6f 6e 20 22 29 22 29 20 22 3d 22 20 45 78 70 72 | gn"."(".Expression.")")."=".Expr |
| 2faa0 | 65 73 73 69 6f 6e 0a 0a 43 6f 6e 74 61 69 6e 65 72 4d 65 6d 62 65 72 20 3d 20 28 43 6f 6e 74 61 | ession..ContainerMember.=.(Conta |
| 2fac0 | 69 6e 65 72 46 69 65 6c 64 20 7c 20 46 6e 44 65 66 20 7c 20 47 6c 6f 62 61 6c 56 61 72 44 65 63 | inerField.|.FnDef.|.GlobalVarDec |
| 2fae0 | 6c 29 0a 0a 43 6f 6e 74 61 69 6e 65 72 46 69 65 6c 64 20 3d 20 53 79 6d 62 6f 6c 20 6f 70 74 69 | l)..ContainerField.=.Symbol.opti |
| 2fb00 | 6f 6e 28 22 3a 22 20 45 78 70 72 65 73 73 69 6f 6e 29 20 22 2c 22 0a 0a 55 73 65 44 65 63 6c 20 | on(":".Expression).","..UseDecl. |
| 2fb20 | 3d 20 22 75 73 65 22 20 45 78 70 72 65 73 73 69 6f 6e 20 22 3b 22 0a 0a 45 78 74 65 72 6e 44 65 | =."use".Expression.";"..ExternDe |
| 2fb40 | 63 6c 20 3d 20 22 65 78 74 65 72 6e 22 20 6f 70 74 69 6f 6e 28 53 74 72 69 6e 67 29 20 28 46 6e | cl.=."extern".option(String).(Fn |
| 2fb60 | 50 72 6f 74 6f 20 7c 20 56 61 72 69 61 62 6c 65 44 65 63 6c 61 72 61 74 69 6f 6e 29 20 22 3b 22 | Proto.|.VariableDeclaration).";" |
| 2fb80 | 0a 0a 46 6e 50 72 6f 74 6f 20 3d 20 6f 70 74 69 6f 6e 28 22 63 6f 6c 64 63 63 22 20 7c 20 22 6e | ..FnProto.=.option("coldcc".|."n |
| 2fba0 | 61 6b 65 64 63 63 22 20 7c 20 22 73 74 64 63 61 6c 6c 63 63 22 29 20 22 66 6e 22 20 6f 70 74 69 | akedcc".|."stdcallcc")."fn".opti |
| 2fbc0 | 6f 6e 28 53 79 6d 62 6f 6c 29 20 50 61 72 61 6d 44 65 63 6c 4c 69 73 74 20 6f 70 74 69 6f 6e 28 | on(Symbol).ParamDeclList.option( |
| 2fbe0 | 22 61 6c 69 67 6e 22 20 22 28 22 20 45 78 70 72 65 73 73 69 6f 6e 20 22 29 22 29 20 6f 70 74 69 | "align"."(".Expression.")").opti |
| 2fc00 | 6f 6e 28 22 2d 26 67 74 3b 22 20 54 79 70 65 45 78 70 72 29 0a 0a 56 69 73 69 62 6c 65 4d 6f 64 | on("->".TypeExpr)..VisibleMod |
| 2fc20 | 20 3d 20 22 70 75 62 22 20 7c 20 22 65 78 70 6f 72 74 22 0a 0a 46 6e 44 65 66 20 3d 20 6f 70 74 | .=."pub".|."export"..FnDef.=.opt |
| 2fc40 | 69 6f 6e 28 22 69 6e 6c 69 6e 65 22 20 7c 20 22 65 78 74 65 72 6e 22 29 20 46 6e 50 72 6f 74 6f | ion("inline".|."extern").FnProto |
| 2fc60 | 20 42 6c 6f 63 6b 0a 0a 50 61 72 61 6d 44 65 63 6c 4c 69 73 74 20 3d 20 22 28 22 20 6c 69 73 74 | .Block..ParamDeclList.=."(".list |
| 2fc80 | 28 50 61 72 61 6d 44 65 63 6c 2c 20 22 2c 22 29 20 22 29 22 0a 0a 50 61 72 61 6d 44 65 63 6c 20 | (ParamDecl,.",").")"..ParamDecl. |
| 2fca0 | 3d 20 6f 70 74 69 6f 6e 28 22 6e 6f 61 6c 69 61 73 22 20 7c 20 22 63 6f 6d 70 74 69 6d 65 22 29 | =.option("noalias".|."comptime") |
| 2fcc0 | 20 6f 70 74 69 6f 6e 28 53 79 6d 62 6f 6c 20 22 3a 22 29 20 28 54 79 70 65 45 78 70 72 20 7c 20 | .option(Symbol.":").(TypeExpr.|. |
| 2fce0 | 22 2e 2e 2e 22 29 0a 0a 42 6c 6f 63 6b 20 3d 20 22 7b 22 20 6d 61 6e 79 28 53 74 61 74 65 6d 65 | "...")..Block.=."{".many(Stateme |
| 2fd00 | 6e 74 29 20 6f 70 74 69 6f 6e 28 45 78 70 72 65 73 73 69 6f 6e 29 20 22 7d 22 0a 0a 53 74 61 74 | nt).option(Expression)."}"..Stat |
| 2fd20 | 65 6d 65 6e 74 20 3d 20 4c 61 62 65 6c 20 7c 20 56 61 72 69 61 62 6c 65 44 65 63 6c 61 72 61 74 | ement.=.Label.|.VariableDeclarat |
| 2fd40 | 69 6f 6e 20 22 3b 22 20 7c 20 44 65 66 65 72 28 42 6c 6f 63 6b 29 20 7c 20 44 65 66 65 72 28 45 | ion.";".|.Defer(Block).|.Defer(E |
| 2fd60 | 78 70 72 65 73 73 69 6f 6e 29 20 22 3b 22 20 7c 20 42 6c 6f 63 6b 45 78 70 72 65 73 73 69 6f 6e | xpression).";".|.BlockExpression |
| 2fd80 | 28 42 6c 6f 63 6b 29 20 7c 20 45 78 70 72 65 73 73 69 6f 6e 20 22 3b 22 20 7c 20 22 3b 22 0a 0a | (Block).|.Expression.";".|.";".. |
| 2fda0 | 4c 61 62 65 6c 20 3d 20 53 79 6d 62 6f 6c 20 22 3a 22 0a 0a 54 79 70 65 45 78 70 72 20 3d 20 50 | Label.=.Symbol.":"..TypeExpr.=.P |
| 2fdc0 | 72 65 66 69 78 4f 70 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 22 76 61 72 22 0a 0a 42 6c 6f 63 6b | refixOpExpression.|."var"..Block |
| 2fde0 | 4f 72 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 42 6c 6f 63 6b 20 7c 20 45 78 70 72 65 73 73 69 6f | OrExpression.=.Block.|.Expressio |
| 2fe00 | 6e 0a 0a 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 52 65 74 75 72 6e 45 78 70 72 65 73 73 69 6f 6e | n..Expression.=.ReturnExpression |
| 2fe20 | 20 7c 20 42 72 65 61 6b 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 41 73 73 69 67 6e 6d 65 6e 74 45 | .|.BreakExpression.|.AssignmentE |
| 2fe40 | 78 70 72 65 73 73 69 6f 6e 0a 0a 41 73 6d 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 22 61 73 6d 22 | xpression..AsmExpression.=."asm" |
| 2fe60 | 20 6f 70 74 69 6f 6e 28 22 76 6f 6c 61 74 69 6c 65 22 29 20 22 28 22 20 53 74 72 69 6e 67 20 6f | .option("volatile")."(".String.o |
| 2fe80 | 70 74 69 6f 6e 28 41 73 6d 4f 75 74 70 75 74 29 20 22 29 22 0a 0a 41 73 6d 4f 75 74 70 75 74 20 | ption(AsmOutput).")"..AsmOutput. |
| 2fea0 | 3d 20 22 3a 22 20 6c 69 73 74 28 41 73 6d 4f 75 74 70 75 74 49 74 65 6d 2c 20 22 2c 22 29 20 6f | =.":".list(AsmOutputItem,.",").o |
| 2fec0 | 70 74 69 6f 6e 28 41 73 6d 49 6e 70 75 74 29 0a 0a 41 73 6d 49 6e 70 75 74 20 3d 20 22 3a 22 20 | ption(AsmInput)..AsmInput.=.":". |
| 2fee0 | 6c 69 73 74 28 41 73 6d 49 6e 70 75 74 49 74 65 6d 2c 20 22 2c 22 29 20 6f 70 74 69 6f 6e 28 41 | list(AsmInputItem,.",").option(A |
| 2ff00 | 73 6d 43 6c 6f 62 62 65 72 73 29 0a 0a 41 73 6d 4f 75 74 70 75 74 49 74 65 6d 20 3d 20 22 5b 22 | smClobbers)..AsmOutputItem.=."[" |
| 2ff20 | 20 53 79 6d 62 6f 6c 20 22 5d 22 20 53 74 72 69 6e 67 20 22 28 22 20 28 53 79 6d 62 6f 6c 20 7c | .Symbol."]".String."(".(Symbol.| |
| 2ff40 | 20 22 2d 26 67 74 3b 22 20 54 79 70 65 45 78 70 72 29 20 22 29 22 0a 0a 41 73 6d 49 6e 70 75 74 | ."->".TypeExpr).")"..AsmInput |
| 2ff60 | 49 74 65 6d 20 3d 20 22 5b 22 20 53 79 6d 62 6f 6c 20 22 5d 22 20 53 74 72 69 6e 67 20 22 28 22 | Item.=."[".Symbol."]".String."(" |
| 2ff80 | 20 45 78 70 72 65 73 73 69 6f 6e 20 22 29 22 0a 0a 41 73 6d 43 6c 6f 62 62 65 72 73 3d 20 22 3a | .Expression.")"..AsmClobbers=.": |
| 2ffa0 | 22 20 6c 69 73 74 28 53 74 72 69 6e 67 2c 20 22 2c 22 29 0a 0a 55 6e 77 72 61 70 45 78 70 72 65 | ".list(String,.",")..UnwrapExpre |
| 2ffc0 | 73 73 69 6f 6e 20 3d 20 42 6f 6f 6c 4f 72 45 78 70 72 65 73 73 69 6f 6e 20 28 55 6e 77 72 61 70 | ssion.=.BoolOrExpression.(Unwrap |
| 2ffe0 | 4e 75 6c 6c 61 62 6c 65 20 7c 20 55 6e 77 72 61 70 45 72 72 6f 72 29 20 7c 20 42 6f 6f 6c 4f 72 | Nullable.|.UnwrapError).|.BoolOr |
| 30000 | 45 78 70 72 65 73 73 69 6f 6e 0a 0a 55 6e 77 72 61 70 4e 75 6c 6c 61 62 6c 65 20 3d 20 22 3f 3f | Expression..UnwrapNullable.=."?? |
| 30020 | 22 20 45 78 70 72 65 73 73 69 6f 6e 0a 0a 55 6e 77 72 61 70 45 72 72 6f 72 20 3d 20 22 25 25 22 | ".Expression..UnwrapError.=."%%" |
| 30040 | 20 6f 70 74 69 6f 6e 28 22 7c 22 20 53 79 6d 62 6f 6c 20 22 7c 22 29 20 45 78 70 72 65 73 73 69 | .option("|".Symbol."|").Expressi |
| 30060 | 6f 6e 0a 0a 41 73 73 69 67 6e 6d 65 6e 74 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 55 6e 77 72 61 | on..AssignmentExpression.=.Unwra |
| 30080 | 70 45 78 70 72 65 73 73 69 6f 6e 20 41 73 73 69 67 6e 6d 65 6e 74 4f 70 65 72 61 74 6f 72 20 55 | pExpression.AssignmentOperator.U |
| 300a0 | 6e 77 72 61 70 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 55 6e 77 72 61 70 45 78 70 72 65 73 73 69 | nwrapExpression.|.UnwrapExpressi |
| 300c0 | 6f 6e 0a 0a 41 73 73 69 67 6e 6d 65 6e 74 4f 70 65 72 61 74 6f 72 20 3d 20 22 3d 22 20 7c 20 22 | on..AssignmentOperator.=."=".|." |
| 300e0 | 2a 3d 22 20 7c 20 22 2f 3d 22 20 7c 20 22 25 3d 22 20 7c 20 22 2b 3d 22 20 7c 20 22 2d 3d 22 20 | *=".|."/=".|."%=".|."+=".|."-=". |
| 30100 | 7c 20 22 26 6c 74 3b 26 6c 74 3b 3d 22 20 7c 20 22 26 67 74 3b 26 67 74 3b 3d 22 20 7c 20 22 26 | |."<<=".|.">>=".|."& |
| 30120 | 61 6d 70 3b 3d 22 20 7c 20 22 5e 3d 22 20 7c 20 22 7c 3d 22 20 7c 20 22 2a 25 3d 22 20 7c 20 22 | amp;=".|."^=".|."|=".|."*%=".|." |
| 30140 | 2b 25 3d 22 20 7c 20 22 2d 25 3d 22 0a 0a 42 6c 6f 63 6b 45 78 70 72 65 73 73 69 6f 6e 28 62 6f | +%=".|."-%="..BlockExpression(bo |
| 30160 | 64 79 29 20 3d 20 42 6c 6f 63 6b 20 7c 20 49 66 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 | dy).=.Block.|.IfExpression(body) |
| 30180 | 20 7c 20 54 72 79 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 20 7c 20 54 65 73 74 45 78 70 | .|.TryExpression(body).|.TestExp |
| 301a0 | 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 20 7c 20 57 68 69 6c 65 45 78 70 72 65 73 73 69 6f 6e 28 | ression(body).|.WhileExpression( |
| 301c0 | 62 6f 64 79 29 20 7c 20 46 6f 72 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 20 7c 20 53 77 | body).|.ForExpression(body).|.Sw |
| 301e0 | 69 74 63 68 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 43 6f 6d 70 54 69 6d 65 45 78 70 72 65 73 73 | itchExpression.|.CompTimeExpress |
| 30200 | 69 6f 6e 28 62 6f 64 79 29 0a 0a 43 6f 6d 70 54 69 6d 65 45 78 70 72 65 73 73 69 6f 6e 28 62 6f | ion(body)..CompTimeExpression(bo |
| 30220 | 64 79 29 20 3d 20 22 63 6f 6d 70 74 69 6d 65 22 20 62 6f 64 79 0a 0a 53 77 69 74 63 68 45 78 70 | dy).=."comptime".body..SwitchExp |
| 30240 | 72 65 73 73 69 6f 6e 20 3d 20 22 73 77 69 74 63 68 22 20 22 28 22 20 45 78 70 72 65 73 73 69 6f | ression.=."switch"."(".Expressio |
| 30260 | 6e 20 22 29 22 20 22 7b 22 20 6d 61 6e 79 28 53 77 69 74 63 68 50 72 6f 6e 67 29 20 22 7d 22 0a | n.")"."{".many(SwitchProng)."}". |
| 30280 | 0a 53 77 69 74 63 68 50 72 6f 6e 67 20 3d 20 28 6c 69 73 74 28 53 77 69 74 63 68 49 74 65 6d 2c | .SwitchProng.=.(list(SwitchItem, |
| 302a0 | 20 22 2c 22 29 20 7c 20 22 65 6c 73 65 22 29 20 22 3d 26 67 74 3b 22 20 6f 70 74 69 6f 6e 28 22 | .",").|."else")."=>".option(" |
| 302c0 | 7c 22 20 6f 70 74 69 6f 6e 28 22 2a 22 29 20 53 79 6d 62 6f 6c 20 22 7c 22 29 20 45 78 70 72 65 | |".option("*").Symbol."|").Expre |
| 302e0 | 73 73 69 6f 6e 20 22 2c 22 0a 0a 53 77 69 74 63 68 49 74 65 6d 20 3d 20 45 78 70 72 65 73 73 69 | ssion.","..SwitchItem.=.Expressi |
| 30300 | 6f 6e 20 7c 20 28 45 78 70 72 65 73 73 69 6f 6e 20 22 2e 2e 2e 22 20 45 78 70 72 65 73 73 69 6f | on.|.(Expression."...".Expressio |
| 30320 | 6e 29 0a 0a 46 6f 72 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 20 3d 20 6f 70 74 69 6f 6e | n)..ForExpression(body).=.option |
| 30340 | 28 22 69 6e 6c 69 6e 65 22 29 20 22 66 6f 72 22 20 22 28 22 20 45 78 70 72 65 73 73 69 6f 6e 20 | ("inline")."for"."(".Expression. |
| 30360 | 22 29 22 20 6f 70 74 69 6f 6e 28 22 7c 22 20 6f 70 74 69 6f 6e 28 22 2a 22 29 20 53 79 6d 62 6f | ")".option("|".option("*").Symbo |
| 30380 | 6c 20 6f 70 74 69 6f 6e 28 22 2c 22 20 53 79 6d 62 6f 6c 29 20 22 7c 22 29 20 62 6f 64 79 20 6f | l.option(",".Symbol)."|").body.o |
| 303a0 | 70 74 69 6f 6e 28 22 65 6c 73 65 22 20 42 6c 6f 63 6b 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 | ption("else".BlockExpression(bod |
| 303c0 | 79 29 29 0a 0a 42 6f 6f 6c 4f 72 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 42 6f 6f 6c 41 6e 64 45 | y))..BoolOrExpression.=.BoolAndE |
| 303e0 | 78 70 72 65 73 73 69 6f 6e 20 22 6f 72 22 20 42 6f 6f 6c 4f 72 45 78 70 72 65 73 73 69 6f 6e 20 | xpression."or".BoolOrExpression. |
| 30400 | 7c 20 42 6f 6f 6c 41 6e 64 45 78 70 72 65 73 73 69 6f 6e 0a 0a 52 65 74 75 72 6e 45 78 70 72 65 | |.BoolAndExpression..ReturnExpre |
| 30420 | 73 73 69 6f 6e 20 3d 20 6f 70 74 69 6f 6e 28 22 25 22 29 20 22 72 65 74 75 72 6e 22 20 6f 70 74 | ssion.=.option("%")."return".opt |
| 30440 | 69 6f 6e 28 45 78 70 72 65 73 73 69 6f 6e 29 0a 0a 42 72 65 61 6b 45 78 70 72 65 73 73 69 6f 6e | ion(Expression)..BreakExpression |
| 30460 | 20 3d 20 22 62 72 65 61 6b 22 20 6f 70 74 69 6f 6e 28 45 78 70 72 65 73 73 69 6f 6e 29 0a 0a 44 | .=."break".option(Expression)..D |
| 30480 | 65 66 65 72 28 62 6f 64 79 29 20 3d 20 6f 70 74 69 6f 6e 28 22 25 22 29 20 22 64 65 66 65 72 22 | efer(body).=.option("%")."defer" |
| 304a0 | 20 62 6f 64 79 0a 0a 49 66 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 20 3d 20 22 69 66 22 | .body..IfExpression(body).=."if" |
| 304c0 | 20 22 28 22 20 45 78 70 72 65 73 73 69 6f 6e 20 22 29 22 20 62 6f 64 79 20 6f 70 74 69 6f 6e 28 | ."(".Expression.")".body.option( |
| 304e0 | 22 65 6c 73 65 22 20 42 6c 6f 63 6b 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 29 0a 0a 54 | "else".BlockExpression(body))..T |
| 30500 | 72 79 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 20 3d 20 22 69 66 22 20 22 28 22 20 45 78 | ryExpression(body).=."if"."(".Ex |
| 30520 | 70 72 65 73 73 69 6f 6e 20 22 29 22 20 6f 70 74 69 6f 6e 28 22 7c 22 20 6f 70 74 69 6f 6e 28 22 | pression.")".option("|".option(" |
| 30540 | 2a 22 29 20 53 79 6d 62 6f 6c 20 22 7c 22 29 20 62 6f 64 79 20 22 65 6c 73 65 22 20 22 7c 22 20 | *").Symbol."|").body."else"."|". |
| 30560 | 53 79 6d 62 6f 6c 20 22 7c 22 20 42 6c 6f 63 6b 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 | Symbol."|".BlockExpression(body) |
| 30580 | 0a 0a 54 65 73 74 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 20 3d 20 22 69 66 22 20 22 28 | ..TestExpression(body).=."if"."( |
| 305a0 | 22 20 45 78 70 72 65 73 73 69 6f 6e 20 22 29 22 20 6f 70 74 69 6f 6e 28 22 7c 22 20 6f 70 74 69 | ".Expression.")".option("|".opti |
| 305c0 | 6f 6e 28 22 2a 22 29 20 53 79 6d 62 6f 6c 20 22 7c 22 29 20 62 6f 64 79 20 6f 70 74 69 6f 6e 28 | on("*").Symbol."|").body.option( |
| 305e0 | 22 65 6c 73 65 22 20 42 6c 6f 63 6b 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 29 0a 0a 57 | "else".BlockExpression(body))..W |
| 30600 | 68 69 6c 65 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 20 3d 20 6f 70 74 69 6f 6e 28 22 69 | hileExpression(body).=.option("i |
| 30620 | 6e 6c 69 6e 65 22 29 20 22 77 68 69 6c 65 22 20 22 28 22 20 45 78 70 72 65 73 73 69 6f 6e 20 22 | nline")."while"."(".Expression." |
| 30640 | 29 22 20 6f 70 74 69 6f 6e 28 22 7c 22 20 6f 70 74 69 6f 6e 28 22 2a 22 29 20 53 79 6d 62 6f 6c | )".option("|".option("*").Symbol |
| 30660 | 20 22 7c 22 29 20 6f 70 74 69 6f 6e 28 22 3a 22 20 22 28 22 20 45 78 70 72 65 73 73 69 6f 6e 20 | ."|").option(":"."(".Expression. |
| 30680 | 22 29 22 29 20 62 6f 64 79 20 6f 70 74 69 6f 6e 28 22 65 6c 73 65 22 20 6f 70 74 69 6f 6e 28 22 | ")").body.option("else".option(" |
| 306a0 | 7c 22 20 53 79 6d 62 6f 6c 20 22 7c 22 29 20 42 6c 6f 63 6b 45 78 70 72 65 73 73 69 6f 6e 28 62 | |".Symbol."|").BlockExpression(b |
| 306c0 | 6f 64 79 29 29 0a 0a 42 6f 6f 6c 41 6e 64 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 43 6f 6d 70 61 | ody))..BoolAndExpression.=.Compa |
| 306e0 | 72 69 73 6f 6e 45 78 70 72 65 73 73 69 6f 6e 20 22 61 6e 64 22 20 42 6f 6f 6c 41 6e 64 45 78 70 | risonExpression."and".BoolAndExp |
| 30700 | 72 65 73 73 69 6f 6e 20 7c 20 43 6f 6d 70 61 72 69 73 6f 6e 45 78 70 72 65 73 73 69 6f 6e 0a 0a | ression.|.ComparisonExpression.. |
| 30720 | 43 6f 6d 70 61 72 69 73 6f 6e 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 42 69 6e 61 72 79 4f 72 45 | ComparisonExpression.=.BinaryOrE |
| 30740 | 78 70 72 65 73 73 69 6f 6e 20 43 6f 6d 70 61 72 69 73 6f 6e 4f 70 65 72 61 74 6f 72 20 42 69 6e | xpression.ComparisonOperator.Bin |
| 30760 | 61 72 79 4f 72 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 42 69 6e 61 72 79 4f 72 45 78 70 72 65 73 | aryOrExpression.|.BinaryOrExpres |
| 30780 | 73 69 6f 6e 0a 0a 43 6f 6d 70 61 72 69 73 6f 6e 4f 70 65 72 61 74 6f 72 20 3d 20 22 3d 3d 22 20 | sion..ComparisonOperator.=."==". |
| 307a0 | 7c 20 22 21 3d 22 20 7c 20 22 26 6c 74 3b 22 20 7c 20 22 26 67 74 3b 22 20 7c 20 22 26 6c 74 3b | |."!=".|."<".|.">".|."< |
| 307c0 | 3d 22 20 7c 20 22 26 67 74 3b 3d 22 0a 0a 42 69 6e 61 72 79 4f 72 45 78 70 72 65 73 73 69 6f 6e | =".|.">="..BinaryOrExpression |
| 307e0 | 20 3d 20 42 69 6e 61 72 79 58 6f 72 45 78 70 72 65 73 73 69 6f 6e 20 22 7c 22 20 42 69 6e 61 72 | .=.BinaryXorExpression."|".Binar |
| 30800 | 79 4f 72 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 42 69 6e 61 72 79 58 6f 72 45 78 70 72 65 73 73 | yOrExpression.|.BinaryXorExpress |
| 30820 | 69 6f 6e 0a 0a 42 69 6e 61 72 79 58 6f 72 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 42 69 6e 61 72 | ion..BinaryXorExpression.=.Binar |
| 30840 | 79 41 6e 64 45 78 70 72 65 73 73 69 6f 6e 20 22 5e 22 20 42 69 6e 61 72 79 58 6f 72 45 78 70 72 | yAndExpression."^".BinaryXorExpr |
| 30860 | 65 73 73 69 6f 6e 20 7c 20 42 69 6e 61 72 79 41 6e 64 45 78 70 72 65 73 73 69 6f 6e 0a 0a 42 69 | ession.|.BinaryAndExpression..Bi |
| 30880 | 6e 61 72 79 41 6e 64 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 42 69 74 53 68 69 66 74 45 78 70 72 | naryAndExpression.=.BitShiftExpr |
| 308a0 | 65 73 73 69 6f 6e 20 22 26 61 6d 70 3b 22 20 42 69 6e 61 72 79 41 6e 64 45 78 70 72 65 73 73 69 | ession."&".BinaryAndExpressi |
| 308c0 | 6f 6e 20 7c 20 42 69 74 53 68 69 66 74 45 78 70 72 65 73 73 69 6f 6e 0a 0a 42 69 74 53 68 69 66 | on.|.BitShiftExpression..BitShif |
| 308e0 | 74 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 41 64 64 69 74 69 6f 6e 45 78 70 72 65 73 73 69 6f 6e | tExpression.=.AdditionExpression |
| 30900 | 20 42 69 74 53 68 69 66 74 4f 70 65 72 61 74 6f 72 20 42 69 74 53 68 69 66 74 45 78 70 72 65 73 | .BitShiftOperator.BitShiftExpres |
| 30920 | 73 69 6f 6e 20 7c 20 41 64 64 69 74 69 6f 6e 45 78 70 72 65 73 73 69 6f 6e 0a 0a 42 69 74 53 68 | sion.|.AdditionExpression..BitSh |
| 30940 | 69 66 74 4f 70 65 72 61 74 6f 72 20 3d 20 22 26 6c 74 3b 26 6c 74 3b 22 20 7c 20 22 26 67 74 3b | iftOperator.=."<<".|."> |
| 30960 | 26 67 74 3b 22 20 7c 20 22 26 6c 74 3b 26 6c 74 3b 22 0a 0a 41 64 64 69 74 69 6f 6e 45 78 70 72 | >".|."<<"..AdditionExpr |
| 30980 | 65 73 73 69 6f 6e 20 3d 20 4d 75 6c 74 69 70 6c 79 45 78 70 72 65 73 73 69 6f 6e 20 41 64 64 69 | ession.=.MultiplyExpression.Addi |
| 309a0 | 74 69 6f 6e 4f 70 65 72 61 74 6f 72 20 41 64 64 69 74 69 6f 6e 45 78 70 72 65 73 73 69 6f 6e 20 | tionOperator.AdditionExpression. |
| 309c0 | 7c 20 4d 75 6c 74 69 70 6c 79 45 78 70 72 65 73 73 69 6f 6e 0a 0a 41 64 64 69 74 69 6f 6e 4f 70 | |.MultiplyExpression..AdditionOp |
| 309e0 | 65 72 61 74 6f 72 20 3d 20 22 2b 22 20 7c 20 22 2d 22 20 7c 20 22 2b 2b 22 20 7c 20 22 2b 25 22 | erator.=."+".|."-".|."++".|."+%" |
| 30a00 | 20 7c 20 22 2d 25 22 0a 0a 4d 75 6c 74 69 70 6c 79 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 43 75 | .|."-%"..MultiplyExpression.=.Cu |
| 30a20 | 72 6c 79 53 75 66 66 69 78 45 78 70 72 65 73 73 69 6f 6e 20 4d 75 6c 74 69 70 6c 79 4f 70 65 72 | rlySuffixExpression.MultiplyOper |
| 30a40 | 61 74 6f 72 20 4d 75 6c 74 69 70 6c 79 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 43 75 72 6c 79 53 | ator.MultiplyExpression.|.CurlyS |
| 30a60 | 75 66 66 69 78 45 78 70 72 65 73 73 69 6f 6e 0a 0a 43 75 72 6c 79 53 75 66 66 69 78 45 78 70 72 | uffixExpression..CurlySuffixExpr |
| 30a80 | 65 73 73 69 6f 6e 20 3d 20 54 79 70 65 45 78 70 72 20 6f 70 74 69 6f 6e 28 43 6f 6e 74 61 69 6e | ession.=.TypeExpr.option(Contain |
| 30aa0 | 65 72 49 6e 69 74 45 78 70 72 65 73 73 69 6f 6e 29 0a 0a 4d 75 6c 74 69 70 6c 79 4f 70 65 72 61 | erInitExpression)..MultiplyOpera |
| 30ac0 | 74 6f 72 20 3d 20 22 2a 22 20 7c 20 22 2f 22 20 7c 20 22 25 22 20 7c 20 22 2a 2a 22 20 7c 20 22 | tor.=."*".|."/".|."%".|."**".|." |
| 30ae0 | 2a 25 22 0a 0a 50 72 65 66 69 78 4f 70 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 50 72 65 66 69 78 | *%"..PrefixOpExpression.=.Prefix |
| 30b00 | 4f 70 20 50 72 65 66 69 78 4f 70 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 53 75 66 66 69 78 4f 70 | Op.PrefixOpExpression.|.SuffixOp |
| 30b20 | 45 78 70 72 65 73 73 69 6f 6e 0a 0a 53 75 66 66 69 78 4f 70 45 78 70 72 65 73 73 69 6f 6e 20 3d | Expression..SuffixOpExpression.= |
| 30b40 | 20 50 72 69 6d 61 72 79 45 78 70 72 65 73 73 69 6f 6e 20 6f 70 74 69 6f 6e 28 46 6e 43 61 6c 6c | .PrimaryExpression.option(FnCall |
| 30b60 | 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 41 72 72 61 79 41 63 63 65 73 73 45 78 70 72 65 73 73 69 | Expression.|.ArrayAccessExpressi |
| 30b80 | 6f 6e 20 7c 20 46 69 65 6c 64 41 63 63 65 73 73 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 53 6c 69 | on.|.FieldAccessExpression.|.Sli |
| 30ba0 | 63 65 45 78 70 72 65 73 73 69 6f 6e 29 0a 0a 46 69 65 6c 64 41 63 63 65 73 73 45 78 70 72 65 73 | ceExpression)..FieldAccessExpres |
| 30bc0 | 73 69 6f 6e 20 3d 20 22 2e 22 20 53 79 6d 62 6f 6c 0a 0a 46 6e 43 61 6c 6c 45 78 70 72 65 73 73 | sion.=.".".Symbol..FnCallExpress |
| 30be0 | 69 6f 6e 20 3d 20 22 28 22 20 6c 69 73 74 28 45 78 70 72 65 73 73 69 6f 6e 2c 20 22 2c 22 29 20 | ion.=."(".list(Expression,.","). |
| 30c00 | 22 29 22 0a 0a 41 72 72 61 79 41 63 63 65 73 73 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 22 5b 22 | ")"..ArrayAccessExpression.=."[" |
| 30c20 | 20 45 78 70 72 65 73 73 69 6f 6e 20 22 5d 22 0a 0a 53 6c 69 63 65 45 78 70 72 65 73 73 69 6f 6e | .Expression."]"..SliceExpression |
| 30c40 | 20 3d 20 22 5b 22 20 45 78 70 72 65 73 73 69 6f 6e 20 22 2e 2e 22 20 6f 70 74 69 6f 6e 28 45 78 | .=."[".Expression."..".option(Ex |
| 30c60 | 70 72 65 73 73 69 6f 6e 29 20 22 5d 22 0a 0a 43 6f 6e 74 61 69 6e 65 72 49 6e 69 74 45 78 70 72 | pression)."]"..ContainerInitExpr |
| 30c80 | 65 73 73 69 6f 6e 20 3d 20 22 7b 22 20 43 6f 6e 74 61 69 6e 65 72 49 6e 69 74 42 6f 64 79 20 22 | ession.=."{".ContainerInitBody." |
| 30ca0 | 7d 22 0a 0a 43 6f 6e 74 61 69 6e 65 72 49 6e 69 74 42 6f 64 79 20 3d 20 6c 69 73 74 28 53 74 72 | }"..ContainerInitBody.=.list(Str |
| 30cc0 | 75 63 74 4c 69 74 65 72 61 6c 46 69 65 6c 64 2c 20 22 2c 22 29 20 7c 20 6c 69 73 74 28 45 78 70 | uctLiteralField,.",").|.list(Exp |
| 30ce0 | 72 65 73 73 69 6f 6e 2c 20 22 2c 22 29 0a 0a 53 74 72 75 63 74 4c 69 74 65 72 61 6c 46 69 65 6c | ression,.",")..StructLiteralFiel |
| 30d00 | 64 20 3d 20 22 2e 22 20 53 79 6d 62 6f 6c 20 22 3d 22 20 45 78 70 72 65 73 73 69 6f 6e 0a 0a 50 | d.=.".".Symbol."=".Expression..P |
| 30d20 | 72 65 66 69 78 4f 70 20 3d 20 22 21 22 20 7c 20 22 2d 22 20 7c 20 22 7e 22 20 7c 20 22 2a 22 20 | refixOp.=."!".|."-".|."~".|."*". |
| 30d40 | 7c 20 28 22 26 61 6d 70 3b 22 20 6f 70 74 69 6f 6e 28 22 61 6c 69 67 6e 22 20 22 28 22 20 45 78 | |.("&".option("align"."(".Ex |
| 30d60 | 70 72 65 73 73 69 6f 6e 20 6f 70 74 69 6f 6e 28 22 3a 22 20 49 6e 74 65 67 65 72 20 22 3a 22 20 | pression.option(":".Integer.":". |
| 30d80 | 49 6e 74 65 67 65 72 29 20 22 29 22 20 29 20 6f 70 74 69 6f 6e 28 22 63 6f 6e 73 74 22 29 20 6f | Integer).")".).option("const").o |
| 30da0 | 70 74 69 6f 6e 28 22 76 6f 6c 61 74 69 6c 65 22 29 29 20 7c 20 22 3f 22 20 7c 20 22 25 22 20 7c | ption("volatile")).|."?".|."%".| |
| 30dc0 | 20 22 25 25 22 20 7c 20 22 3f 3f 22 20 7c 20 22 2d 25 22 0a 0a 50 72 69 6d 61 72 79 45 78 70 72 | ."%%".|."??".|."-%"..PrimaryExpr |
| 30de0 | 65 73 73 69 6f 6e 20 3d 20 49 6e 74 65 67 65 72 20 7c 20 46 6c 6f 61 74 20 7c 20 53 74 72 69 6e | ession.=.Integer.|.Float.|.Strin |
| 30e00 | 67 20 7c 20 43 68 61 72 4c 69 74 65 72 61 6c 20 7c 20 4b 65 79 77 6f 72 64 4c 69 74 65 72 61 6c | g.|.CharLiteral.|.KeywordLiteral |
| 30e20 | 20 7c 20 47 72 6f 75 70 65 64 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 47 6f 74 6f 45 78 70 72 65 | .|.GroupedExpression.|.GotoExpre |
| 30e40 | 73 73 69 6f 6e 20 7c 20 42 6c 6f 63 6b 45 78 70 72 65 73 73 69 6f 6e 28 42 6c 6f 63 6b 4f 72 45 | ssion.|.BlockExpression(BlockOrE |
| 30e60 | 78 70 72 65 73 73 69 6f 6e 29 20 7c 20 53 79 6d 62 6f 6c 20 7c 20 28 22 40 22 20 53 79 6d 62 6f | xpression).|.Symbol.|.("@".Symbo |
| 30e80 | 6c 20 46 6e 43 61 6c 6c 45 78 70 72 65 73 73 69 6f 6e 29 20 7c 20 41 72 72 61 79 54 79 70 65 20 | l.FnCallExpression).|.ArrayType. |
| 30ea0 | 7c 20 28 6f 70 74 69 6f 6e 28 22 65 78 74 65 72 6e 22 29 20 46 6e 50 72 6f 74 6f 29 20 7c 20 41 | |.(option("extern").FnProto).|.A |
| 30ec0 | 73 6d 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 28 22 65 72 72 6f 72 22 20 22 2e 22 20 53 79 6d 62 | smExpression.|.("error".".".Symb |
| 30ee0 | 6f 6c 29 20 7c 20 43 6f 6e 74 61 69 6e 65 72 44 65 63 6c 0a 0a 41 72 72 61 79 54 79 70 65 20 3a | ol).|.ContainerDecl..ArrayType.: |
| 30f00 | 20 22 5b 22 20 6f 70 74 69 6f 6e 28 45 78 70 72 65 73 73 69 6f 6e 29 20 22 5d 22 20 6f 70 74 69 | ."[".option(Expression)."]".opti |
| 30f20 | 6f 6e 28 22 61 6c 69 67 6e 22 20 22 28 22 20 45 78 70 72 65 73 73 69 6f 6e 20 6f 70 74 69 6f 6e | on("align"."(".Expression.option |
| 30f40 | 28 22 3a 22 20 49 6e 74 65 67 65 72 20 22 3a 22 20 49 6e 74 65 67 65 72 29 20 22 29 22 29 29 20 | (":".Integer.":".Integer).")")). |
| 30f60 | 6f 70 74 69 6f 6e 28 22 63 6f 6e 73 74 22 29 20 6f 70 74 69 6f 6e 28 22 76 6f 6c 61 74 69 6c 65 | option("const").option("volatile |
| 30f80 | 22 29 20 54 79 70 65 45 78 70 72 0a 0a 47 6f 74 6f 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 22 67 | ").TypeExpr..GotoExpression.=."g |
| 30fa0 | 6f 74 6f 22 20 53 79 6d 62 6f 6c 0a 0a 47 72 6f 75 70 65 64 45 78 70 72 65 73 73 69 6f 6e 20 3d | oto".Symbol..GroupedExpression.= |
| 30fc0 | 20 22 28 22 20 45 78 70 72 65 73 73 69 6f 6e 20 22 29 22 0a 0a 4b 65 79 77 6f 72 64 4c 69 74 65 | ."(".Expression.")"..KeywordLite |
| 30fe0 | 72 61 6c 20 3d 20 22 74 72 75 65 22 20 7c 20 22 66 61 6c 73 65 22 20 7c 20 22 6e 75 6c 6c 22 20 | ral.=."true".|."false".|."null". |
| 31000 | 7c 20 22 63 6f 6e 74 69 6e 75 65 22 20 7c 20 22 75 6e 64 65 66 69 6e 65 64 22 20 7c 20 22 65 72 | |."continue".|."undefined".|."er |
| 31020 | 72 6f 72 22 20 7c 20 22 74 68 69 73 22 20 7c 20 22 75 6e 72 65 61 63 68 61 62 6c 65 22 0a 0a 43 | ror".|."this".|."unreachable"..C |
| 31040 | 6f 6e 74 61 69 6e 65 72 44 65 63 6c 20 3d 20 6f 70 74 69 6f 6e 28 22 65 78 74 65 72 6e 22 20 7c | ontainerDecl.=.option("extern".| |
| 31060 | 20 22 70 61 63 6b 65 64 22 29 20 28 22 73 74 72 75 63 74 22 20 7c 20 22 65 6e 75 6d 22 20 7c 20 | ."packed").("struct".|."enum".|. |
| 31080 | 22 75 6e 69 6f 6e 22 29 20 22 7b 22 20 6d 61 6e 79 28 43 6f 6e 74 61 69 6e 65 72 4d 65 6d 62 65 | "union")."{".many(ContainerMembe |
| 310a0 | 72 29 20 22 7d 22 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 | r)."}"</code></pre>.......<h2.id |
| 310c0 | 3d 22 7a 65 6e 22 3e 5a 65 6e 3c 2f 68 32 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 | ="zen">Zen</h2>.......<ul>...... |
| 310e0 | 20 20 20 3c 6c 69 3e 43 6f 6d 6d 75 6e 69 63 61 74 65 20 69 6e 74 65 6e 74 20 70 72 65 63 69 73 | ...<li>Communicate.intent.precis |
| 31100 | 65 6c 79 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 45 64 67 65 20 63 61 73 65 73 | ely.</li>.........<li>Edge.cases |
| 31120 | 20 6d 61 74 74 65 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 46 61 76 6f 72 20 | .matter.</li>.........<li>Favor. |
| 31140 | 72 65 61 64 69 6e 67 20 63 6f 64 65 20 6f 76 65 72 20 77 72 69 74 69 6e 67 20 63 6f 64 65 2e 3c | reading.code.over.writing.code.< |
| 31160 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 4f 6e 6c 79 20 6f 6e 65 20 6f 62 76 69 6f 75 | /li>.........<li>Only.one.obviou |
| 31180 | 73 20 77 61 79 20 74 6f 20 64 6f 20 74 68 69 6e 67 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | s.way.to.do.things.</li>........ |
| 311a0 | 20 3c 6c 69 3e 52 75 6e 74 69 6d 65 20 63 72 61 73 68 65 73 20 61 72 65 20 62 65 74 74 65 72 20 | .<li>Runtime.crashes.are.better. |
| 311c0 | 74 68 61 6e 20 62 75 67 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 6f 6d 70 | than.bugs.</li>.........<li>Comp |
| 311e0 | 69 6c 65 20 65 72 72 6f 72 73 20 61 72 65 20 62 65 74 74 65 72 20 74 68 61 6e 20 72 75 6e 74 69 | ile.errors.are.better.than.runti |
| 31200 | 6d 65 20 63 72 61 73 68 65 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 49 6e 63 | me.crashes.</li>.........<li>Inc |
| 31220 | 72 65 6d 65 6e 74 61 6c 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 | remental.improvements.</li>..... |
| 31240 | 20 20 20 20 3c 6c 69 3e 41 76 6f 69 64 20 6c 6f 63 61 6c 20 6d 61 78 69 6d 75 6d 73 2e 3c 2f 6c | ....<li>Avoid.local.maximums.</l |
| 31260 | 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 52 65 64 75 63 65 20 74 68 65 20 61 6d 6f 75 6e 74 | i>.........<li>Reduce.the.amount |
| 31280 | 20 6f 6e 65 20 6d 75 73 74 20 72 65 6d 65 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | .one.must.remember.</li>........ |
| 312a0 | 20 3c 6c 69 3e 4d 69 6e 69 6d 69 7a 65 20 65 6e 65 72 67 79 20 73 70 65 6e 74 20 6f 6e 20 63 6f | .<li>Minimize.energy.spent.on.co |
| 312c0 | 64 69 6e 67 20 73 74 79 6c 65 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 54 6f 67 | ding.style.</li>.........<li>Tog |
| 312e0 | 65 74 68 65 72 20 77 65 20 73 65 72 76 65 20 65 6e 64 20 75 73 65 72 73 2e 3c 2f 6c 69 3e 0a 20 | ether.we.serve.end.users.</li>.. |
| 31300 | 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 3c 2f 64 69 76 3e 0a 20 20 20 20 0a 20 20 20 20 0a | .....</ul>.....</div>........... |
| 31320 | 20 20 3c 2f 62 6f 64 79 3e 0a 3c 2f 68 74 6d 6c 3e 0a 50 4b 01 02 14 00 14 00 00 00 00 00 00 00 | ..</body>.</html>.PK............ |
| 31340 | 21 52 6f 61 ab 2c 14 00 00 00 14 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | !Roa.,.......................... |
| 31360 | 6d 69 6d 65 74 79 70 65 50 4b 01 02 14 00 14 00 00 00 00 00 00 00 21 52 6f 92 d0 0a fc 00 00 00 | mimetypePK............!Ro....... |
| 31380 | fc 00 00 00 16 00 00 00 00 00 00 00 00 00 00 00 00 00 3a 00 00 00 4d 45 54 41 2d 49 4e 46 2f 63 | ..................:...META-INF/c |
| 313a0 | 6f 6e 74 61 69 6e 65 72 2e 78 6d 6c 50 4b 01 02 14 00 14 00 00 00 00 00 00 00 21 52 f7 75 ad 9d | ontainer.xmlPK............!R.u.. |
| 313c0 | a7 02 00 00 a7 02 00 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 01 00 00 4f 45 42 50 53 2f | ......................j...OEBPS/ |
| 313e0 | 63 6f 6e 74 65 6e 74 2e 6f 70 66 50 4b 01 02 14 00 14 00 00 00 00 00 00 00 21 52 73 54 30 2e 86 | content.opfPK............!RsT0.. |
| 31400 | 01 00 00 86 01 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 40 04 00 00 4f 45 42 50 53 2f 6e | .....................@...OEBPS/n |
| 31420 | 61 76 2e 78 68 74 6d 6c 50 4b 01 02 14 00 14 00 00 00 00 00 00 00 21 52 99 93 6f 87 10 0d 03 00 | av.xhtmlPK............!R..o..... |
| 31440 | 10 0d 03 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 f3 05 00 00 4f 45 42 50 53 2f 69 6e 64 65 | ......................OEBPS/inde |
| 31460 | 78 2e 78 68 74 6d 6c 50 4b 05 06 00 00 00 00 05 00 05 00 35 01 00 00 32 13 03 00 00 00 | x.xhtmlPK..........5...2..... |