Make everything replaceable goal 9, require changing inputs in the library and default them in the CLI, and record item 77's answers
This commit is contained in:
+10
-10
@@ -120,7 +120,7 @@ still lives in `data/`; `--data-path` layers over it.
|
||||
|
||||
2026-10-03, a restructure the maintainer approved.
|
||||
|
||||
Goal 12: `New` pays nothing for a category a run never reaches, which matters once the
|
||||
Goal 13: `New` pays nothing for a category a run never reaches, which matters once the
|
||||
shipped set grows to hundreds of MB. A category loads with every category it references
|
||||
and its whole table family, and binds as a whole load does, so it renders the same as
|
||||
after a whole load. `List` reads `shippedindex.go`, which `go generate` writes from
|
||||
@@ -130,7 +130,7 @@ reach.
|
||||
|
||||
Goal 6: beside a `--data-path`, `WithDataPath` or `WithDataFS`, every category loads in
|
||||
`New`, so each mistake in the user's data is `New`'s error. That parses the whole shipped
|
||||
set, against goal 12, until `todo.md` item 79 ends it.
|
||||
set, against goal 13, until `todo.md` item 79 ends it.
|
||||
|
||||
Valid while CI proves the shipped set whole and each category alone.
|
||||
|
||||
@@ -353,7 +353,7 @@ a reader meeting two spellings of one empty set. Making the maps where the draws
|
||||
record's on its frame's stack, but a `Fake`'s draws live on the `Generator`, so there it
|
||||
cost the cheapest render two heap allocations and 240→390 ns, measured 2026-09-28.
|
||||
Lazily, a render reading a reference path pays those two allocations, a record or struct
|
||||
included, and one reading none pays nothing; goal 12 holds either way.
|
||||
included, and one reading none pays nothing; goal 13 holds either way.
|
||||
|
||||
`todo.md` item 4 deletes what this decides.
|
||||
|
||||
@@ -459,7 +459,7 @@ The benchmark suite (the README's Development) reports time for a human, not as
|
||||
|
||||
## Rows live in a TSV, the shape in JSON
|
||||
|
||||
2026-09-17, Lilleman auf Larv. Goals 8 and 12.
|
||||
2026-09-17, Lilleman auf Larv. Goals 8 and 13.
|
||||
|
||||
`New` allocates once per node, so a register of thirty thousand rows written as JSON
|
||||
objects would cost it a second; a TSV is one allocation whose cells are substrings, and
|
||||
@@ -638,7 +638,7 @@ is until a real data set needs the indexed form.
|
||||
|
||||
2026-09-17, Lilleman auf Larv.
|
||||
|
||||
Goals 9 and 12: a path that fails moves no seeded stream, at the cost of one draw-free
|
||||
Goals 10 and 13: a path that fails moves no seeded stream, at the cost of one draw-free
|
||||
walk per call, compiling its steps into a stack buffer of 16. Valid while that walk
|
||||
costs little against the draw it guards.
|
||||
|
||||
@@ -776,7 +776,7 @@ which says "Chinese, Mandarin" for `zh`.
|
||||
Where every territory row has a child the column is a `parent`, and the import drops the
|
||||
child rows whose territory the set does not ship — 17 of `misc.timezone`'s, Antarctica's
|
||||
ten among them. Agreement across a record is worth more than the last rows of a table:
|
||||
goal 4.1 wins over goal 13.1 here, as the maintainer confirmed on 2026-10-03.
|
||||
goal 4.1 wins over goal 14.1 here, as the maintainer confirmed on 2026-10-03.
|
||||
Where no such link can hold the fact stays a column. Layer your own `misc.territory`
|
||||
over the shipped one and you must layer `misc.timezone` too, or the link fails at load
|
||||
naming the row.
|
||||
@@ -786,7 +786,7 @@ naming the row.
|
||||
2026-09-20, Lilleman auf Larv.
|
||||
|
||||
`misc.httpmethod`, `misc.port`, `misc.httpstatus`, `misc.mimetype` and `misc.tld` weigh
|
||||
every row alike, so GET is a ninth of the methods drawn. Goal 13 keeps an authored fact
|
||||
every row alike, so GET is a ninth of the methods drawn. Goal 14 keeps an authored fact
|
||||
out of a sourced table, and no register publishes how often a method, a port or a TLD is
|
||||
used, so a weight here would be invented. Where one exists it is read, as
|
||||
`misc.timezone` reads GeoNames populations and `sv_SE.first-name` SCB bearers.
|
||||
@@ -796,7 +796,7 @@ used, so a weight here would be invented. Where one exists it is read, as
|
||||
2026-09-24, Lilleman auf Larv.
|
||||
|
||||
The weight is the population GeoNames records in the zone's cities of 15,000 or more,
|
||||
floored at 15,000, which goal 15 asks for: over 300 seeded draws of
|
||||
floored at 15,000, which goal 16 asks for: over 300 seeded draws of
|
||||
`misc.territory[US].timezone`, the four zones most Americans live in took 278 where an
|
||||
even weight gave them 44, and `America/Indiana/Petersburg`, a town of 2,400, fell from 17
|
||||
to 0. Valid while a draw weighted this way lands where people live.
|
||||
@@ -845,7 +845,7 @@ with no separator. `misc.tld[se]` misses for it, which `todo.md` item 44 ends.
|
||||
2026-09-20, Lilleman auf Larv.
|
||||
|
||||
A `parent` demands a child for every parent row, so linking them would drop every root
|
||||
zone row naming no territory, which is most of them, and goal 13 holds a sourced table
|
||||
zone row naming no territory, which is most of them, and goal 14 holds a sourced table
|
||||
whole. The loader refuses the link outright anyway: `tld` is a column of
|
||||
`misc.territory`, and a table may not be named like a column of its ancestor.
|
||||
|
||||
@@ -901,7 +901,7 @@ the direct chain is the one a reader can predict from the tables' parents.
|
||||
|
||||
2026-09-30, larv-review on the comprehension round the maintainer approved on 2026-09-29;
|
||||
replaces "The path walks are separate loops".
|
||||
Goals 3 and 12: `drawSteps` draws every path from its steps, compiled at link by
|
||||
Goals 3 and 13: `drawSteps` draws every path from its steps, compiled at link by
|
||||
`pathCheck` or, for a caller's path, by `probePath` into a stack buffer. The check and
|
||||
the probe stay two loops: on 2026-09-29 one loop over all three walks, switching on a
|
||||
mode field, leaked the check's leaves and errors with the draw's pins, arm and memo,
|
||||
|
||||
@@ -90,7 +90,7 @@ Recommendation: embed SCB 2022 xlsx-derived lists (top-N per sheet with counts)
|
||||
## 3. Phone
|
||||
|
||||
- Source: PTS "The Swedish numbering plan for telephony according to ITU-T E.164", 2024-01-08 (verified, text extracted): https://pts.se/globalassets/globala-block/nummertillstand/the-swedish-numbering-plan-for-telephony-according-to-itu---2024-01-08.pdf. Swedish "nrplansammanstallning-2026-02-04.pdf" and https://nummer.pts.se/NbrPlanSearch are behind a Radware bot check (both curl and Playwright blocked). No licence stated by PTS anywhere found; pts.se says contact pts@pts.se for data.
|
||||
- Reserved for fiction, PTS "Telefonnummer till böcker och filmer" (verified 2026-09-21; curl and Playwright are Radware-blocked, a rendering fetcher gets through): https://www.pts.se/internet-och-telefoni/telefonnummer-och-adressering/telefonnummer-till-bocker-och-filmer/ — mobile 070-1740605–1740699, geographic 08-46500400–46500499 (Stockholm), 031-3900600–3900699 (Göteborg), 040-6280400–6280499 (Malmö), 0980-319200–319299 (Kiruna). 495 numbers PTS holds back so they reach nobody, which is goal 15's never-reaching path for `sv_SE.phone`. Same licence status as the numbering plan: none stated, facts only, cite PTS. The mobile block fits the shipped `{a} {b} {c}` grouping (`174 06 05`–`99`), as do 031 and 040; Stockholm's 8 subscriber digits and Kiruna's 6 need a format of their own, and 0980 is not among the 20 shipped area codes.
|
||||
- Reserved for fiction, PTS "Telefonnummer till böcker och filmer" (verified 2026-09-21; curl and Playwright are Radware-blocked, a rendering fetcher gets through): https://www.pts.se/internet-och-telefoni/telefonnummer-och-adressering/telefonnummer-till-bocker-och-filmer/ — mobile 070-1740605–1740699, geographic 08-46500400–46500499 (Stockholm), 031-3900600–3900699 (Göteborg), 040-6280400–6280499 (Malmö), 0980-319200–319299 (Kiruna). 495 numbers PTS holds back so they reach nobody, which is goal 16's never-reaching path for `sv_SE.phone`. Same licence status as the numbering plan: none stated, facts only, cite PTS. The mobile block fits the shipped `{a} {b} {c}` grouping (`174 06 05`–`99`), as do 031 and 040; Stockholm's 8 subscriber digits and Kiruna's 6 need a format of their own, and 0980 is not among the 20 shipped area codes.
|
||||
- 264 geographic area codes (PDF text yields 263 "Area code for" rows; one likely split across a page break — flag). Area code = trunk "0" + NDC of 1–3 digits (08 Stockholm, 031 Göteborg, 040 Malmö, 0480 Kalmar). Geographic N(S)N (NDC + subscriber) max 9 digits, min 7 (2-digit NDC) or 8 (3-digit NDC); Stockholm min 7. Each row in the PDF gives NDC, max/min length, "Area code for <name>", so a `{ndc, name}` list can be built from it.
|
||||
- Mobile: NDC 70, 72, 73, 76, 79 — N(S)N exactly 9 digits, i.e. 07X-XXX XX XX (10 digits with trunk 0). Others: 71 mobile broadband/M2M (13 digits), 74 paging, 75 personal numbering, 77 shared cost, 20 freephone, 10 location-independent (10 AXX XX XX, A=1–8), 378 M2M fixed (10 digits).
|
||||
- Formatting (Språkrådet/Isof frågelådan, via search excerpts): hyphen after area code, subscriber digits grouped 2–3 from the left: `08-668 01 50`, `031-123 45 67`, `0480-123 45`, `070-123 45 67` (also `0701-23 45 67` accepted). International: `+46 70 123 45 67` (drop trunk 0).
|
||||
|
||||
Reference in New Issue
Block a user