feat(language): a parameter value that is null or NaN is refused when the data is attached - #788
Merged
Merged
Conversation
… the data is attached A coordinate with no value has no row, so a missing row is the only gap a parameter has. inf and -inf stay values. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
FBumann
pushed a commit
that referenced
this pull request
Sep 29, 2026
Takes #788. CHANGELOG keeps both lines. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015VUkQfE5dT7mEGoTQXSxN3
FBumann
pushed a commit
that referenced
this pull request
Sep 29, 2026
Takes #788 through #630. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015VUkQfE5dT7mEGoTQXSxN3
FBumann
pushed a commit
that referenced
this pull request
Sep 29, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AzXL2w5xdUm8FsYMNWf1KW
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
The following content was generated by AI.
A parameter value that is null or NaN is refused when the data is attached. A missing row is the only gap a parameter has.
infand-infstay values. Refs #750. It does not close #750.Method, gate output, alternatives
What changes
docs/reference/language/declarations.md, underparameters: the rule, next to the dtype table that the consumer also enforces at attach.docs/reference/language/absence.md: one sentence that links to the rule, after "A missing parameter row is not absence".ParameterDeclarationdocstring (src/mathspec/program.py): the consumer that attaches data refuses a null or NaN, as it refuses a column of the wrong dtype.Why this is language
Take one spec with one frame. If one engine reads a NaN coefficient as
0and another lets the NaN drop the row, they build two models (what counts as language). The language already reads a null in awhere(ParameterDefined: non-null and finite) and already refuses a null in a relation (relations.md). The consumer enforces the check. specsolve needs the matching refusal.What this does not do
absence:on parameters, the main proposal of a parameter cannot say that a missing row is absent, so a decision supplied as data brings back the rows its mask deleted #750. It settles only the open point "whether a missing row may also arrive as a null": no, only as no row.default:(a parameter cannot declare a default, so a bound that data prep fills no longer tells awhere:which rows the modeller gave #773). A default fills a missing row. A null row is refused before a default applies.0where a read is unguarded, so the binder has to decide per attribute.Gates
pixi run test: 2599 passed.pixi run docs-build: no issues.pixi run lint: all hooks pass except pyrefly, which fails locally on untouchedorigin/mainas well (theyamlstubs are installed but not found). CI is the check for it.compile-texnot run: no file underexamples/changed.🤖 Generated with Claude Code