Answer architecture round 7: reads and its note move to item 196, a mounted module's errors read sv_SE (address.json), internal/datafiles handles namespace folders in one form, and a folder outside the mount is a broken invariant
This commit is contained in:
+7
-12
@@ -143,7 +143,7 @@ A directory a machine happens to have would make `--seed 42` machine-dependent;
|
||||
- One Go package per locale, one per country's `geo` tree, and one for `misc`, all in the core's Go module. A package registers nothing when imported.
|
||||
- A bare `New()` loads no data and fails, naming the option to add. `WithoutShippedData` goes.
|
||||
- A data package's `FS` is an `fs.FS` passed to `WithDataFS`, as anyone's data is, and `New` takes several. It is an exported `var FS embed.FS`, the shape `//go:embed` gives; a function returning it would only stop a program reassigning the FS variable of a package it imports. A module carrying functions loads through an option of its own, so a data module that starts carrying functions breaks its users. Such a function reaches the randomness through an interface the root declares; `internal/drawstate`'s type stays internal.
|
||||
- A module names, in a manifest, every module it reads by default, directly or through another, so the first error names the whole set to import. A manifest is optional: a `--data-path` folder without one is a module. Nothing loads a default on its own.
|
||||
- A module names, in a manifest, every module it reads by default, directly or through another, so the first error names the whole set to import; `todo.md` item 196 carries this out. A manifest is optional: a `--data-path` folder without one is a module. Nothing loads a default on its own.
|
||||
- A manifest names no fejkdata version, and `New` checks none: the shipped packages ship in the core's Go module, and a module from anyone else keeps loading across a minor or a patch, as the README's Versioning promises. The maintainer chose so on 2026-10-09.
|
||||
- In the CLI, a flag of its own says a `--data-path` replaces what it clashes with, so flags still go anywhere on the line. Data authors and hand fixture authors bench it.
|
||||
- The README asks for functions with no side effects of their own.
|
||||
@@ -159,11 +159,8 @@ custom-CLI builder. Serves goals 1 and 3.3. `sv_SE` ships as `data/svse`, `en_US
|
||||
`data/enus`, `geo.SE` as `data/geose`, `geo.US` as `data/geous`, and `misc` as `data/misc`:
|
||||
Go linters flag a capital or an underscore in a package name, and `SE.FS` read as a type.
|
||||
Each package holds its files at its root, and its manifest's `namespace` puts them under
|
||||
the namespace, so no path repeats it. The bench also chose `reads` for what a module reads
|
||||
by default and the wording of the errors naming it. A `reads` entry is a namespace, so the
|
||||
error names only what nothing loaded provides, and with every module loaded a typo names
|
||||
none. Valid until a locale's lowered name
|
||||
clashes with another's.
|
||||
the namespace, so no path repeats it. Valid until a locale's lowered name clashes with
|
||||
another's.
|
||||
|
||||
## A source whose manifest carries an index loads each category on first reach; any other loads in `New`, with what it reads
|
||||
|
||||
@@ -590,14 +587,12 @@ its ZIPs would shape the two trees differently, so both draw inside the pinned l
|
||||
and an address agrees at that level. A street's own code is the exact pairing to add
|
||||
when a source carries it.
|
||||
|
||||
## A locale's `address` reads its country's `geo` tree, and the locale module's manifest reads its country's geo module
|
||||
## A locale's `address` reads its country's `geo` tree, whose module a program loads beside it
|
||||
|
||||
2026-09-24, Lilleman auf Larv; revised 2026-10-10, when the shipped data became Go packages.
|
||||
Serves goal 6.2. `svse.FS` loads alone, and `sv_SE.address` then fails at first reach,
|
||||
naming `geo.SE`, which `svse`'s manifest reads and nothing loaded provides.
|
||||
`New` does not check that each module a manifest reads was given. A check by module name
|
||||
would refuse a stand-in providing the same paths (goal 9.2). A check by path needs every
|
||||
reference, and only loading each indexed category finds them, which goal 13 rules out.
|
||||
Serves goal 9.2. `svse.FS` loads alone, and `sv_SE.address` then fails at first reach with
|
||||
`no entry "geo"`, so anything providing `geo.SE`'s paths can stand in for `geose`. Until
|
||||
`todo.md` item 196 names the missing module in that error, it works against goal 6.2.
|
||||
|
||||
## The default embed holds every Swedish postort the import can place and give a street-delivery code and a street, and the US places of 25,000 or more
|
||||
|
||||
|
||||
Reference in New Issue
Block a user