From b2406ef4bcd0dfa0c5e82d5910bde2e58fcb31e4 Mon Sep 17 00:00:00 2001 From: Lilleman auf Larv Date: Sun, 4 Oct 2026 12:19:06 +0200 Subject: [PATCH] Answer prose round 3: say where NaN prints, and leave item 77's option name open --- docs/decisions.md | 7 ++++--- todo.md | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/decisions.md b/docs/decisions.md index f9ed312..d2b3a28 100644 --- a/docs/decisions.md +++ b/docs/decisions.md @@ -255,9 +255,10 @@ assumes a 64-bit int; on a 32-bit target it could overflow and panic. load error; the fold stops where an operand varies, so `a/(b*c)` with `b` fixed at `0` and `c` varying loads and prints `Inf` every draw — catching it needs zero-absorbing algebra for a shape nobody writes. A [typed column](../README.md#datatype) bounds its operands -instead and refuses a divisor it cannot keep from zero. An operand that is sometimes not a -number prints `NaN` the same way. `Inf` and `NaN` in a string column work against goals -6.1 and 4 until `todo.md` item 81 refuses them there too. +instead and refuses a divisor it cannot keep from zero. In a string column, an operand that +is sometimes not a number loads, and prints `NaN` on each draw where it is not one. `Inf` +and `NaN` in a string column work against goals 6.1 and 4 until `todo.md` item 81 +refuses them there too. ## In data, a default written out and a constant spelled as a sample are load errors diff --git a/todo.md b/todo.md index e336bb2..acaadf2 100644 --- a/todo.md +++ b/todo.md @@ -135,7 +135,7 @@ ### 77. Split the shipped data into Go modules per locale and country, which a library imports by choice, and embed every one in the CLI. -The CLI binary carries every module and may grow to hundreds of MB; a library imports only what it uses, as it imports any dependency, and nothing is fetched at run time. Goal 2 says what ships where. The maintainer decided on 2026-10-04: one module per locale, one per country's `geo/` tree, and one for `misc`. A module registers nothing when imported; the library passes it to `New`, as in `New(WithData(svse.Data))`, per the technical principles "Compose, do not entangle" and "Explicit over implicit". The entry for `docs/decisions.md` is written when this ships. Still to decide: what a bare `New()` loads, whether a module's data is an `fs.FS` passed to `WithDataFS` so no second option exists, and whether `WithoutShippedData` goes. Before the module API ships, a panel of the README's audience personas tries pulling in data with it. +The CLI binary carries every module and may grow to hundreds of MB; a library imports only what it uses, as it imports any dependency, and nothing is fetched at run time. Goal 2 says what ships where. The maintainer decided on 2026-10-04: one module per locale, one per country's `geo/` tree, and one for `misc`. A module registers nothing when imported; the library passes it to `New` as an option, per the technical principles "Compose, do not entangle" and "Explicit over implicit". Still to decide: what a bare `New()` loads; whether a module's data is an `fs.FS` passed to the existing `WithDataFS` or a new option such as `WithData(svse.Data)`; and whether `WithoutShippedData` goes. Before the module API ships, a panel of the README's audience personas tries pulling in data with it. ### 78. Ship 10% of every place's streets, at least 10, and 10% of all US places drawn by population, each place weighted by population.