Full top-to-bottom proofread of the root README.
Narrow fixes (typos, grammar, formatting, broken syntax):
- Two malformed `</br>` closing tags replaced with `<br/>`.
- "See the [here](...)" → "See [this chapter](...) for..." (the
previous phrasing had a dangling article and a preposition that
did not parse cleanly).
- Stray angle brackets around a URL in the "Here is a link to 'a'
main instruction set page" sentence removed (the brackets created
a redundant autolink inside an already-formed markdown link).
- "quite straight forward" → "straightforward" (one word).
- "whose job it is turn high level languages" → inserted the
missing "to".
- Added backticks around "gcc" and "g++" in the "We use gcc and g++
directly..." sentence for consistency with every other reference
to those tools in the file.
- `main.s` → `main.S` in the "Suppose main() is implemented in
assembly language..." paragraph; the surrounding prose teaches
the capital-S convention, and the lowercase `.s` was contradicting
the very point being made.
- "for handing `#include`" → "for handling `#include`".
- "a general tool can is used by other languages" → "a general tool
used by other languages" (extra "can is" was clearly a mid-edit
remnant).
Substantive corrections:
- The linker description listed ".dlls on Windows" as an example of
a statically-linked library file. DLLs are the canonical dynamic
linking format on Windows; static on Windows is .lib. The sentence
now correctly separates the two categories: `.a` (Linux) and `.lib`
(Windows) for static, `.so` (Linux) and `.dll` (Windows) for
dynamic.
- The "Twenty twenty three marks Perry's 19th year teaching..."
paragraph was three years stale and referenced an ongoing count
that had since ended. Replaced with a year-agnostic retirement
statement summing the nineteen total years (ten UW Madison plus
nine Carthage). The new phrasing will not age.
- Normalized "pre-processor" (hyphenated) to "preprocessor" (one
word) throughout the "C Preprocessor" subsection, matching the
four unhyphenated uses that appeared earlier in the same document
and aligning with common modern style. Section heading updated to
match.
Expanded author bio:
- Added a new paragraph in "About The Author" surfacing credentials
directly relevant to this book's systems/assembly audience: the
undergraduate V6 Unix kernel study on a PDP-11/60, the subsequent
Bell Labs Unix-internals teaching role, priority on the earliest
known software keylogger, the 1985 appearance on Fred Fish Disk #1
(the first volume of the longest-running public-domain software
library in personal-computing history), named references to the
ASDG / TAD / ADPro / Elastic Reality commercial lineage, and the
"Loaders → Operators → Savers" architectural throughline that has
now evolved into the "Sensor → Operator → Emitter" pipeline in
the author's current open-source GlowUp project (home automation
broader than just lighting). The GlowUp repo at
github.com/pkivolowitz/lifx is linked.
Rejected alternatives:
- Rolling the "19th year" numbers forward to 2026 rather than
switching to the retirement framing — rejected because the count
is no longer ongoing and any year-pinned phrasing will age the
same way again.
- A Front-Matter-level authorship / biography section rather than
an addition to the existing "About The Author" section — rejected
as tonally too heavy; biography belongs where biography already
lives.
- Fixing the DLL/static-linking text by simply renaming "statically
linked" to "dynamically linked" for the .dll example — rejected
because the surrounding sentence teaches the concept of library
linking and benefits from showing both categories side by side.
No test coverage applies; this is prose.
New subsection "A Note on Authorship and AI Assistance" at the end of
"About The Author" states that as of 19 April 2026 the author has
begun using an AI assistant as a writing and editing aid on this
book, and that all material preceding that date was produced unaided.
Points the reader at git history and the scripts/ and .github/
tooling landed around the same time as the durable markers for
distinguishing AI-assisted from unaided work going forward.
Placement rationale: "About The Author" is already the section
carrying author-identity and first-person voice, so the disclosure
lives where a reader with any interest in authorship provenance
naturally scrolls. The alternative (a Front Matter subsection) was
considered and rejected as tonally too heavy for a note that exists
mainly to answer a future question, not to front-load caveats ahead
of the book's self-description.
No test coverage applies; this is prose.