Skip to content

The new SPEC. - #21

Open
janstrakowski wants to merge 36 commits into
mainfrom
janstrakowski-spec
Open

The new SPEC.#21
janstrakowski wants to merge 36 commits into
mainfrom
janstrakowski-spec

Conversation

@janstrakowski

Copy link
Copy Markdown
Owner

No description provided.

janstrakowski and others added 30 commits September 3, 2026 23:08
Added charset and encoding details to the specification.
Added typographical conventions section and clarified comments and identifiers.
Clarified specifications for binary integer literals and string interpolation.
Clarified specification for Line-Formatting String Literal regarding allowed characters.
Alongside the grammar skeleton and ignorables files it now lives next
to. Updates the paths that actually resolve against it: the spec-html
generator's default input and usage text, the playground's virtual-fs
assertion and its `cat` help example, and LANGUAGE.md's repo listing
and link. Comments citing "SPEC.md §N" for a design rule are left
alone - the document's name didn't change, only its directory.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MX2AMXTjijaCXmiw5PFF3g
Added EBNF conceptual definitions and grammar constructs.
Clarified the definition of 'anywhere' in the context of ignorables.
Clarified the definition of 'anywhere' in the context of ignorables.
…r files

spec/SPEC.md embeds grammar_skeleton.ebnf and grammar_ignorables.ebnf
verbatim, and GitHub's Markdown rendering has no include directive that
would keep the embedded copy in sync on its own - so it was a silent
copy-paste from here on. Generalizes the existing fenced_block helper
(previously hardcoded to the "```hashedbuild" fence) to take the fence
literal as a parameter, and reuses it to compare SPEC.md's two ```ebnf
blocks against the standalone files. Nothing outside spec/ touches
either side of the comparison, so this only ever fires on a spec/
change.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MX2AMXTjijaCXmiw5PFF3g
Updated grammar to include function application and pipe operator. Added operation precedence table and clarified juxtaposition rules.
The spec/ directory (SPEC.md plus grammar_skeleton.ebnf and
grammar_ignorables.ebnf) turned out to be more structure than needed:
the two EBNF files were duplicated verbatim inside SPEC.md's own
```ebnf blocks (guarded only by a drift test), rather than adding
anything SPEC.md couldn't hold on its own. Move SPEC.md back to the
repo root, delete the two grammar_*.ebnf files, and update every
reference (tools/spec-html, LANGUAGE.md, the playground page and its
browser test) plus drop the now-obsolete drift test in docs_test.odin.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014aXoeHLg1CNF9SyCpfJoyQ
Updated the specification to include new constructs and clarify existing definitions. Adjusted grammar rules and added extra specifications for better clarity.
Added 'Func' to the list of operators and introduced 'Let', 'Then', 'Matches', 'Else' as new constructs. Clarified restrictions on Function Application and added details on Arithmetic Negation.
Anything-Else Marker -> Anything-Else Table Pattern Marker (the two
occurrences had drifted to different names for the same nonterminal),
plus spelling fixes: compiletoobj, Conceptual, consecutive, their
underlying hierarchies, Ambiguity, interpreted, juxtaposition,
beginning, adjacent construct.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018rHGLAdRLeZf55Cvj5MSxg
Removed typographical conventions section from SPEC.md.
Added sections on Data Representation, Data Types, and their descriptions.
Item 2 pointed at "Data Types", the child subsection, instead of the
new top-level "Data Representation" heading that now also contains
"Data Structure Representation".

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TFLodvjcRvAJ38efn1uhZg
Added sections on evaluation, functions, let rec, and placeholders for other topics.
A stale local checkout was reviewed as current on this branch; git status
only compares against the last fetch, so it reported clean while origin
had moved 5 commits ahead. Recording the fix so it doesn't recur.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016vjCb7JCbkrbhjo3RLYa4J
Clarify the behavior of `let rec` in the specification.
Clarified the explanation of 'let rec' regarding accessibility and function behavior.
Removed 'rec' from 'let rec' syntax and updated the description accordingly.
Added sections on Boolean representation and parameters, and introduced control flow expressions.
Updated syntax for 'let' and 'then' to include optional 'func' keyword. Added sections for named and implicit parameters in function definitions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants