Commit Graph

56 Commits

Author SHA1 Message Date
lilleman 98bb73f096 Give scope, binding, link, pick and head one meaning each: renderEnv, nodeSet, pipeline, resolvedRef, resolveTemplates, drawItem and a read's start 2026-10-07 01:04:44 +02:00
lilleman 0993d86f22 Answer architecture round 1: the read-once check back at link over uses from the compiled arms, every link step taking its inputs as arguments in link.go, a record column holding its name and datatype, and items 104 to 106 dropped from the plan with the decisions citing them reworded 2026-10-05 22:49:04 +02:00
lilleman cd7f0a04dc Link each template in steps that each return what they build, create a name scope with its owner in one place, and settle each record's columns at load, so Generator.records goes 2026-10-05 22:49:04 +02:00
lilleman 54cb52b483 Answer architecture round 1: one categoryPath, the walk's label named label, checkAncestors split from proveParent, and file items 115 and 116 2026-10-05 21:21:46 +02:00
lilleman 8ffaa31e39 Set a table's path when it compiles, link a table family in one function, and label a cell from the walk 2026-10-05 21:21:46 +02:00
lilleman c55b296385 Answer prose round 2: the maintainer's approval beside the list it covers, Facts and compileInto docs naming what they read, and "the folder that dir names" 2026-10-05 16:30:28 +02:00
lilleman 643efc8650 Answer prose round 1: the restructure in three named parts, Category.Folders and proven.Facts for one meaning per name, plainer builtinfunc and datafiles comments, and no false iban rationale 2026-10-05 16:30:28 +02:00
lilleman 4f484cd780 Answer architecture round 3, stability round 1 and product-owner round 1: CalcName and proven.OfCalc for one meaning per name, a lazy load placed where its lookup found it, DataType's constants typed under it, and cover printing the module's total 2026-10-05 16:30:28 +02:00
lilleman 818a9b56c2 Move the folder walk and the reading of a data tree's JSON and TSV files into internal/datafiles 2026-10-05 16:30:28 +02:00
lilleman c2f2e86735 Move how the template language is written into internal/grammar 2026-10-05 12:35:08 +02:00
lilleman 1a15a139c8 Answer architecture round 1: refuse a name read inside the field it binds, check every scope's cycles, build a column read in one pass, drop the implicit struct pick for names across tags, and state the fresh-draw rule once 2026-10-05 10:19:01 +02:00
lilleman 6aebeebb72 Draw every {…} afresh, keep a pick only by name, and delete drawGroup with the hold and draw fences 2026-10-05 10:19:01 +02:00
lilleman cc8797744b Answer architecture round 3: the generated header names go generate, one sorted-keys helper everywhere, one site constructor, and an inline folder reference refused before anything loads 2026-10-03 20:37:07 +02:00
lilleman 5667cd5dc3 Load a shipped category on the first call reaching it, from an index generated from data/ 2026-10-03 20:37:07 +02:00
lilleman a9448d1a99 Delete comments restating their code, and doc.go's partial list of draw fences 2026-09-30 22:01:04 +02:00
lilleman 4fb81a5672 Correct IsTemplate's, loadDir's and the README's row-index claims 2026-09-30 21:56:14 +02:00
lilleman e9b8216116 Say at checkNodeFences that its scope's cycles are refused first 2026-09-30 21:35:47 +02:00
lilleman 42c443bd5a Build the draw fence's fold with the fence, deleting its lazy accessor 2026-09-29 21:31:07 +02:00
lilleman e1769f20a2 Delete loadData's, drawRow's and selector's comments, and render.go's second and third compile notes 2026-09-29 13:31:04 +02:00
lilleman 94c8bd229d Give checkOwnFamily the scope walk's signature, and drop its wrapper 2026-09-29 13:26:56 +02:00
lilleman 6cb2d143d6 Refuse own-family reads before any survey, and panic on a clash where readSurvey.edge enters a read's pins 2026-09-29 13:26:56 +02:00
lilleman fe2fea5da2 Drop the last field-alternation wording, say checkNodeFences holds the fences every binding needs, and tick the rename off 2026-09-29 04:31:25 +02:00
lilleman 29f3821a21 Rename pinnedRow, table.category, checkRenders, fieldAlternation and referenceFence to what they are 2026-09-29 04:31:25 +02:00
lilleman f7cfc75394 Name the fence drawFence and the route surveyRoute, and move the survey tests to readsurvey_test.go 2026-09-29 03:14:13 +02:00
lilleman 2d82f34cd4 Rename the load-time draw types to the read survey and fence, and move the survey to readsurvey.go 2026-09-29 03:14:13 +02:00
lilleman e257dc0e6e Return link's and format compile's outputs as templateLink and formatOps, assigned once in linkTemplate 2026-09-28 23:55:22 +02:00
lilleman 2254b33f0e Keep the binding's prose to what its code cannot say 2026-09-28 10:53:26 +02:00
lilleman 01a60d06f1 Name the inline drawGroup refusal as a binding's reference fence, beside the cycle fence 2026-09-28 10:53:26 +02:00
lilleman cfe653de4d Run New, NewTemplate and FakeStruct through one bind pipeline naming where they differ 2026-09-28 10:53:26 +02:00
lilleman b38974adb2 Say path where hold and dataSource comments named the old spelling 2026-09-25 19:31:09 +02:00
lilleman c55c75a29e Give dir, path, structs and r one meaning each, and name the table option indexes keyIndex through parentIndex 2026-09-25 19:31:09 +02:00
lilleman d6ac8ed9fd Give check, children, column, columns, draw, drawn, fields, format, head, index, key, n, name, named, names, null, number, op, reads, record, root, row, t and whole one meaning each 2026-09-25 19:31:09 +02:00
lilleman cfe8124cc3 Rename addField to gatherField and reachMemo to renderCounts, and list every shared name left 2026-09-25 19:02:58 +02:00
lilleman 65091233a8 Give rows, field, walk, column, expr and of one meaning each: rowCount, readRows, gatherFields, addField, addTag, renderCount and the prove methods 2026-09-25 19:02:58 +02:00
lilleman f94546edaa Say what the graph and the load path each hold 2026-09-21 21:21:10 +02:00
lilleman 11ecc1e365 Put the load path and the fence order in one file 2026-09-21 21:21:10 +02:00
lilleman c8a4ffa764 Export ErrNoColumns, name the cure for a shell-split template and an unquoted record, and name the flag a missing data path came from 2026-09-18 20:35:56 +02:00
lilleman d5d9c2655e Give every table its path in one pass, name it in every message, read the layout probes through predicates, and leave the shell to the CLI 2026-09-18 20:02:08 +02:00
lilleman f6b54c8ae6 Add the table node: rows TSV, key and name selection, linked tables drawn consistently, and the choice-of-rows fence 2026-09-17 12:28:46 +02:00
lilleman 5ed45cc55c Rename the folder node type from group to folder, freeing group for the draw option 2026-09-15 23:25:39 +02:00
lilleman 80e8d72bb7 One fence sequence over a node scope, and inline templates reject the folder sigils 2026-09-03 20:34:42 +02:00
lilleman 873b7678ba Address reviewer findings: reference hint, consumer-terms type errors, misuse exit code, immutability and parity docs
Tests / vet + fmt + tests (pull_request) Successful in 57s
2026-09-03 19:21:42 +02:00
lilleman 08c7ef9b7f Keep the real data-path error, reject an empty data path, and report a crypto/rand failure instead of seeding zero
Tests / vet + fmt + tests (pull_request) Successful in 58s
2026-09-02 19:09:29 +02:00
lilleman f9647ff6bb Decompose compileTemplate, checkBoundLevelsHeld and loadDir; gate cyclomatic complexity at 14
Tests / vet + fmt + tests (pull_request) Successful in 54s
2026-09-02 18:31:38 +02:00
lilleman 1bf5470c6f Reference sigils follow the filesystem: / the root, . this folder, .. the folder above
Tests / vet + fmt + tests (pull_request) Successful in 53s
2026-09-02 18:26:02 +02:00
lilleman 1b1b93b35f Reject weight 0, a never-numeric calc operand and a repeat product past the cap; the CLI classifies ErrNoData
Tests / vet + fmt + tests (pull_request) Successful in 52s
2026-09-02 18:23:03 +02:00
lilleman f210c7a764 Embed the shipped data, load any fs.FS, New takes options, Fake is safe for concurrent use 2026-09-01 23:07:15 +02:00
lilleman 05dc042e49 Rename the project to fejkdata and record the fork source
Tests / vet + fmt + tests (pull_request) Failing after 6s
2026-09-01 20:24:03 +02:00
M 2dbc9b1f9f Drop the unreachable reference-prefix checks
A name starting with ".." also starts with ".", so loadDir's hidden-entry
skip reaches it first and neither isRef branch could ever fire. Removed, and
the comment in named now names the skip that actually holds the invariant it
depends on.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-31 21:58:37 +02:00
M 447cfae50a Hold a bound level against every route that renders it, and let a matching string be 2026-08-30 22:31:54 +02:00