<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Appendices on</title><link>https://tyu.lexbytes.org/en/docs/latest/appendices/</link><description>Recent content in Appendices on</description><generator>Hugo</generator><language>en-US</language><atom:link href="https://tyu.lexbytes.org/en/docs/latest/appendices/index.xml" rel="self" type="application/rss+xml"/><item><title>Appendix A — Language Reference</title><link>https://tyu.lexbytes.org/en/docs/latest/appendices/appendix-a-language-reference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tyu.lexbytes.org/en/docs/latest/appendices/appendix-a-language-reference/</guid><description>&lt;blockquote&gt;&#10;&lt;p&gt;Status: condensed, verified against the compiler at draft time. Where&#10;the older &lt;code&gt;tyu-technical-manual.md&lt;/code&gt; disagrees with this appendix, this&#10;appendix wins — it was checked against the current tree (the manual&#10;still shows the retired &lt;code&gt;requires [ … ]&lt;/code&gt; predicate syntax, for&#10;example).&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;h2 id="a1-table-a1--the-built-in-words"&gt;&#10; &lt;a class="docs-heading-anchor" href="#a1-table-a1--the-built-in-words" aria-label="Link to A.1 Table A.1 — the built-in words"&gt;#&lt;/a&gt;&#10; A.1 Table A.1 — the built-in words&#10;&lt;/h2&gt;&#10;&lt;p&gt;The compiler ships exactly sixteen words. Everything else in the&#10;vocabulary is written in Tyu (see chapter 2.8, and the sysroot sources).&#10;&lt;code&gt;net&lt;/code&gt; is the change in stack depth; &lt;code&gt;high&lt;/code&gt; the peak (chapter 6).&lt;/p&gt;</description></item><item><title>Appendix B — Error and Trap Registry</title><link>https://tyu.lexbytes.org/en/docs/latest/appendices/appendix-b-error-registry/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tyu.lexbytes.org/en/docs/latest/appendices/appendix-b-error-registry/</guid><description>&lt;blockquote&gt;&#10;&lt;p&gt;Every code in this book&amp;rsquo;s labs, with the fixture that earned it. The&#10;checker&amp;rsquo;s error codes are falsifiable claims: each one exists because a&#10;violation exists. Bands: &lt;code&gt;10xx–70xx&lt;/code&gt; compiler front end, &lt;code&gt;32xx–37xx&lt;/code&gt;&#10;typecheck, &lt;code&gt;36xx&lt;/code&gt; MMIO, &lt;code&gt;50xx&lt;/code&gt; effects/contexts, &lt;code&gt;51xx&lt;/code&gt; stack bounds,&#10;| &lt;code&gt;52xx&lt;/code&gt; loader.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;h2 id="compile-time-rejections-verified-in-this-book"&gt;&#10; &lt;a class="docs-heading-anchor" href="#compile-time-rejections-verified-in-this-book" aria-label="Link to Compile-time rejections verified in this book"&gt;#&lt;/a&gt;&#10; Compile-time rejections verified in this book&#10;&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Code&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Meaning&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Lab&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E1018&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;main&lt;/code&gt; must return exactly one value (the exit code)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.4&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E2195&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;legacy &lt;code&gt;requires [ … ]&lt;/code&gt; predicate — use &lt;code&gt;needs [ … ]&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;(migration note, ch. 4)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E2201&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;imported interface not found for this platform&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;12.6&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E2203&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;imported symbol not exported by the interface&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;10.4&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E2218&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;interface/implementation word signature mismatch&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;10.3&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E2219&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;interface/implementation word effect mismatch&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;10.5&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E3202&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;stack underflow&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;2.5&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E3210&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;word not found&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.6&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E3211&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;signature stack underflow at a call&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;(trace idiom, ch. 2)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E3212&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;call-site type mismatch&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;3.3&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E3220&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;declared stack effect vs computed body&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;2.6, 6.2, 9.3&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E3242&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;if&lt;/code&gt; cannot pop a condition&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;(ch. 2 notes)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E3243&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;if&lt;/code&gt; condition is not a bool&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;2.7 variant&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E3246&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;if&lt;/code&gt; branch depth mismatch&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;2.7&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E3251&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;while&lt;/code&gt; cannot pop its condition&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;(ch. 2 notes)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E3253&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;while&lt;/code&gt; condition is not a quotation&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;(ch. 2 notes)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E3257&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;while&lt;/code&gt; body is not net-zero&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;6.3&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E3304&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;bitcast&lt;/code&gt; size mismatch&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;3.6&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E3305&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;raw pointer cast&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;3.7&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E3310&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;contract verdict count wrong (one bool on top)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;4.4, 4.6&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E3311&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;contract verdict is not a bool&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;4.5&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E3312&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;contract modified its inputs&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;(registry; shape rarely reachable)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E3608&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;MMIO bitfield is not addressable&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;8.6&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E3611&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;MMIO register misaligned&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;8.5&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E3640&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;MMIO without a platform descriptor&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;8.7&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E3644&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;MMIO board instance not found&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;8.3&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E3647&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;MMIO register-map rows disagree with the descriptor&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;8.4&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E3760&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;call&lt;/code&gt;/&lt;code&gt;spawn&lt;/code&gt; of an unannotated quotation&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;12.4&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E5001&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;suspend where forbidden (main, lock, ISR)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;5.7, 11.3&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E5002&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;nested lock&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;11.2&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E5004&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;capability missing (resource access outside its lock)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;5.6&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E5005&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;undeclared effect&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;5.5&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E5010&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;dup&lt;/code&gt; of an &lt;code&gt;iso&lt;/code&gt; value&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;7.4&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E5011&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;implicit &lt;code&gt;drop&lt;/code&gt; of an &lt;code&gt;iso&lt;/code&gt; value&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;7.5&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E5012&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;use after move&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;7.6&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E5020&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;borrow escaped its block&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;7.7&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E5021&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;conflicting live borrows of one root&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;7.8&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E5022&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;dup&lt;/code&gt; of a live mutable borrow&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;(ch. 7 prose, verified)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E5030&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;ISR stack exceeds its budget&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;11.5&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E5031&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;interrupt-reachable resource accessed unlocked&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;11.4&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;E5040&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;unbounded (self-recursive) handler&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;6.4&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="runtime-trap-codes"&gt;&#10; &lt;a class="docs-heading-anchor" href="#runtime-trap-codes" aria-label="Link to Runtime trap codes"&gt;#&lt;/a&gt;&#10; Runtime trap codes&#10;&lt;/h2&gt;&#10;&lt;p&gt;Hosted exit status equals the trap code.&lt;/p&gt;</description></item><item><title>Appendix C — Toolchain Setup (current procedure)</title><link>https://tyu.lexbytes.org/en/docs/latest/appendices/appendix-c-toolchain-setup/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tyu.lexbytes.org/en/docs/latest/appendices/appendix-c-toolchain-setup/</guid><description>&lt;blockquote&gt;&#10;&lt;p&gt;Temporary by the project&amp;rsquo;s own roadmap: a script/rustup-style installer&#10;will replace this procedure. Until then, this is the setup this book&amp;rsquo;s&#10;labs were verified with.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;h2 id="build-the-toolchain"&gt;&#10; &lt;a class="docs-heading-anchor" href="#build-the-toolchain" aria-label="Link to Build the toolchain"&gt;#&lt;/a&gt;&#10; Build the toolchain&#10;&lt;/h2&gt;&#10;&lt;p&gt;Prerequisites: Rust (pinned by &lt;code&gt;rust-toolchain.toml&lt;/code&gt;), &lt;code&gt;fasm&lt;/code&gt; (flat&#10;assembler), GNU &lt;code&gt;ld&lt;/code&gt;, &lt;code&gt;cc&lt;/code&gt;, and — for the QEMU track and the metal&#10;interludes — &lt;code&gt;qemu-system-x86_64&lt;/code&gt; plus the cross binutils&#10;(&lt;code&gt;gcc-arm-none-eabi&lt;/code&gt;, &lt;code&gt;gcc-riscv64-unknown-elf&lt;/code&gt;).&lt;/p&gt;&#10;&lt;figure class="docs-codeblock docs-codeblock--console"&gt;&lt;div&#10; class="docs-codeblock__body"&#10; data-codeblock&#10; data-copy-label="Copy code"&#10; data-copied-label="Copied"&#10; data-copy-failed-label="Copy failed"&#10; &gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;$&lt;/span&gt; cargo build --release -p langc -p tyu -p lmod-pack -p lmod-sign -p lmod-encrypt&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;$&lt;/span&gt; &lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$PWD&lt;/span&gt;&lt;span class="s2"&gt;/target/release:&lt;/span&gt;&lt;span class="nv"&gt;$PATH&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;# tyu finds langc on PATH&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;$&lt;/span&gt; langc --help&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;$&lt;/span&gt; tyu &lt;span class="nb"&gt;help&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/figure&gt;&#10;&lt;h2 id="the-two-tracks"&gt;&#10; &lt;a class="docs-heading-anchor" href="#the-two-tracks" aria-label="Link to The two tracks"&gt;#&lt;/a&gt;&#10; The two tracks&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Hosted&lt;/strong&gt; (most labs): &lt;code&gt;--target=x86_64-unknown-linux-gnu&lt;/code&gt; — builds and&#10;runs on the computer, no simulator.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;QEMU metal&lt;/strong&gt; (chapters 8 and 6&amp;rsquo;s interlude): &lt;code&gt;--target=x86_64-unknown-none --platform=x86_64-unknown-none&lt;/code&gt; — runs under &lt;code&gt;qemu-system-x86_64&lt;/code&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="the-commands-used-in-this-book"&gt;&#10; &lt;a class="docs-heading-anchor" href="#the-commands-used-in-this-book" aria-label="Link to The commands used in this book"&gt;#&lt;/a&gt;&#10; The commands used in this book&#10;&lt;/h2&gt;&#10;&lt;figure class="docs-codeblock docs-codeblock--console"&gt;&lt;div&#10; class="docs-codeblock__body"&#10; data-codeblock&#10; data-copy-label="Copy code"&#10; data-copied-label="Copied"&#10; data-copy-failed-label="Copy failed"&#10; &gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;#&lt;/span&gt; build + direct run &lt;span class="o"&gt;(&lt;/span&gt;hosted&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;$&lt;/span&gt; tyu build labs/.../lab.mod --target&lt;span class="o"&gt;=&lt;/span&gt;x86_64-unknown-linux-gnu &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; --sysroot=sysroot --out-dir=build/&amp;lt;name&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;$&lt;/span&gt; ./build/&amp;lt;name&amp;gt;/image.elf&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;#&lt;/span&gt; harness run &lt;span class="o"&gt;(&lt;/span&gt;checks the S marker, classifies the verdict&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;$&lt;/span&gt; tyu run labs/.../lab.mod --target&lt;span class="o"&gt;=&lt;/span&gt;x86_64-unknown-linux-gnu &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; --sysroot=sysroot --out-dir=build/&amp;lt;name&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;#&lt;/span&gt; MMIO chapters: name the platform pack, and use static link mode&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;$&lt;/span&gt; tyu &lt;span class="nb"&gt;test&lt;/span&gt; --manifest&lt;span class="o"&gt;=&lt;/span&gt;labs/ch08/manifest.toml &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; --target=x86_64-unknown-none --platform=x86_64-unknown-none \&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; --mode=static&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;#&lt;/span&gt; inspection &lt;span class="o"&gt;(&lt;/span&gt;the debugging habit of ch. 2&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;$&lt;/span&gt; langc --emit&lt;span class="o"&gt;=&lt;/span&gt;tc labs/.../lab.mod --sysroot&lt;span class="o"&gt;=&lt;/span&gt;sysroot &lt;span class="c1"&gt;# per-term stack trace&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;$&lt;/span&gt; langc --emit&lt;span class="o"&gt;=&lt;/span&gt;ir labs/.../lab.mod --sysroot&lt;span class="o"&gt;=&lt;/span&gt;sysroot &lt;span class="c1"&gt;# IR dump&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/figure&gt;&#10;&lt;h2 id="a-project-manifest-optional"&gt;&#10; &lt;a class="docs-heading-anchor" href="#a-project-manifest-optional" aria-label="Link to A project manifest (optional)"&gt;#&lt;/a&gt;&#10; A project manifest (optional)&#10;&lt;/h2&gt;&#10;&lt;p&gt;&lt;code&gt;tyu.toml&lt;/code&gt; in a project directory removes the repeated flags:&lt;/p&gt;</description></item><item><title>Appendix D — Style Summary (one page)</title><link>https://tyu.lexbytes.org/en/docs/latest/appendices/appendix-d-style-summary/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tyu.lexbytes.org/en/docs/latest/appendices/appendix-d-style-summary/</guid><description>&lt;blockquote&gt;&#10;&lt;p&gt;The book in one page. Each rule has a chapter; each rule is checked by&#10;something.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;h2 id="claims"&gt;&#10; &lt;a class="docs-heading-anchor" href="#claims" aria-label="Link to Claims"&gt;#&lt;/a&gt;&#10; Claims&#10;&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Every word declares its stack effect — and the declaration is true&#10;(ch. 2).&lt;/li&gt;&#10;&lt;li&gt;Ranges live in subtypes; choices live in enums; groupings live in&#10;structs (ch. 3).&lt;/li&gt;&#10;&lt;li&gt;Contracts are arithmetic about the values in view: no tautologies, no&#10;effects, no drift (ch. 4). Write them the way the prover will want&#10;them.&lt;/li&gt;&#10;&lt;li&gt;Declare what a word does (&lt;code&gt;performs&lt;/code&gt;) and what it needs granted&#10;(&lt;code&gt;requires&lt;/code&gt;); the caller decides (ch. 5).&lt;/li&gt;&#10;&lt;li&gt;Beyond two or three stack items, name them (&lt;code&gt;=&amp;gt;&lt;/code&gt;) (ch. 2, 9).&lt;/li&gt;&#10;&lt;li&gt;Recursion is net-zero per level or it is rejected — keep it that way&#10;(ch. 6).&lt;/li&gt;&#10;&lt;li&gt;One writer or many readers, never both; a borrow&amp;rsquo;s life is its&#10;bracket; custody moves and is never cloned (ch. 7).&lt;/li&gt;&#10;&lt;li&gt;Hardware is named, never addressed; the descriptor wins every&#10;disagreement (ch. 8).&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="design"&gt;&#10; &lt;a class="docs-heading-anchor" href="#design" aria-label="Link to Design"&gt;#&lt;/a&gt;&#10; Design&#10;&lt;/h2&gt;&#10;&lt;ol start="9"&gt;&#10;&lt;li&gt;Factor until every word passes the one-sentence test; stop before&#10;shims (ch. 9).&lt;/li&gt;&#10;&lt;li&gt;Factor along the grammar: predicates keep their subject, loop bodies&#10;are net-zero, locked sections stay inline (ch. 5, 9).&lt;/li&gt;&#10;&lt;li&gt;A module&amp;rsquo;s &lt;code&gt;.def&lt;/code&gt; is its constitution: exports are decisions, the&#10;mirror never drifts (ch. 10).&lt;/li&gt;&#10;&lt;li&gt;A shared resource is a declared resource, and the lock is bought only&#10;where reachability demands it (ch. 11).&lt;/li&gt;&#10;&lt;li&gt;A worker&amp;rsquo;s quotation carries its annotation; a join lives under its&#10;discharge (ch. 12).&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="field"&gt;&#10; &lt;a class="docs-heading-anchor" href="#field" aria-label="Link to Field"&gt;#&lt;/a&gt;&#10; Field&#10;&lt;/h2&gt;&#10;&lt;ol start="14"&gt;&#10;&lt;li&gt;If a fact is load-bearing, it is not a comment (ch. 1).&lt;/li&gt;&#10;&lt;li&gt;Checked failures are the cheapest failures: trap codes are verdicts,&#10;not embarrassments (ch. 1).&lt;/li&gt;&#10;&lt;li&gt;A proof states its boundary. Say what is proven, what is not, and&#10;which workstream closes it (ch. 6, 11, 13).&lt;/li&gt;&#10;&lt;li&gt;The mirror, the wall, and the seal are one mechanism: promises live&#10;in interfaces, interfaces are hashed, and hashes are refused on&#10;mismatch (ch. 10, 13).&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="the-two-sentences-to-carry"&gt;&#10; &lt;a class="docs-heading-anchor" href="#the-two-sentences-to-carry" aria-label="Link to The two sentences to carry"&gt;#&lt;/a&gt;&#10; The two sentences to carry&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;em&gt;Everything claimed, the machine checks; claims are cheap, and lies&#10;are loud.&lt;/em&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;em&gt;Safety is not the brake — it is the engine: the rigor licenses the&#10;daring parts.&lt;/em&gt;&lt;/li&gt;&#10;&lt;/ul&gt;</description></item></channel></rss>