Repository navigation
Adopt the relix-core#102 engine changes and drop their workarounds - #37
Merged
Merged
Conversation
…s refused DarkCollective/relix-core#98 made stream() refuse τ and γ over an unbounded Relix.input with UnboundedRelationException, so the test #34 disabled now runs, for τ and for γ, and checks the error names the input as unbounded. δ is not among them: it streams by design.
DarkCollective/relix-core#99 made ScriptPrinter keep a script's comments and print the ASCII spelling, so fmt no longer scans for comments itself or respells the glyphs token by token. It prints ScriptPrinter.print(Relix.parse(text, source), spelling) and aligns the inline tables' columns, as before. A statement with a comment inside it is now formatted too, with the comment kept. The engine's printer drops a blank line between a comment and the statement or namespace after it; a disabled test records that until the engine keeps it.
DarkCollective/relix-core#100 made render() of an optimized relation always parse back, a seeded closure included, so optimize no longer parses each rewrite, leaves a query it cannot write as written, or warns about it. The introspection example's closure query is now rewritten, and the test checks the output with relix check; the examples' optimize runs write nothing to stderr.
DarkCollective/relix-core#95 put the reference index in relix-docs: ReferenceLookup indexes the language pages and the installed functions' pages, and a language keyword keeps a name it shares with a function. That is what DocIndex built here, so DocIndex and its test go and doc uses ReferenceLookup. relix-cli has no pages of its own, so it passes none. The listing gives the functions grouped by category, as ReferenceLookup offers them, rather than in the order the libraries list them.
This was referenced Oct 8, 2026
david-Darkcollective
added a commit
that referenced
this pull request
Oct 12, 2026
* Re-enable the test that a blocking operator over an unbounded input is refused DarkCollective/relix-core#98 made stream() refuse τ and γ over an unbounded Relix.input with UnboundedRelationException, so the test #34 disabled now runs, for τ and for γ, and checks the error names the input as unbounded. δ is not among them: it streams by design. * Print relix fmt's output with the engine's script printer DarkCollective/relix-core#99 made ScriptPrinter keep a script's comments and print the ASCII spelling, so fmt no longer scans for comments itself or respells the glyphs token by token. It prints ScriptPrinter.print(Relix.parse(text, source), spelling) and aligns the inline tables' columns, as before. A statement with a comment inside it is now formatted too, with the comment kept. The engine's printer drops a blank line between a comment and the statement or namespace after it; a disabled test records that until the engine keeps it. * Print every relix optimize rewrite, now that each one parses DarkCollective/relix-core#100 made render() of an optimized relation always parse back, a seeded closure included, so optimize no longer parses each rewrite, leaves a query it cannot write as written, or warns about it. The introspection example's closure query is now rewritten, and the test checks the output with relix check; the examples' optimize runs write nothing to stderr. * Look relix doc's pages up in relix-docs' ReferenceLookup DarkCollective/relix-core#95 put the reference index in relix-docs: ReferenceLookup indexes the language pages and the installed functions' pages, and a language keyword keeps a name it shares with a function. That is what DocIndex built here, so DocIndex and its test go and doc uses ReferenceLookup. relix-cli has no pages of its own, so it passes none. The listing gives the functions grouped by category, as ReferenceLookup offers them, rather than in the order the libraries list them.
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.
Adopts the engine changes in DarkCollective/relix-core#102 (published as 1.0.0-SNAPSHOT) and removes the workarounds that were waiting for them. One commit per change:
fmtprintsScriptPrinter.print(Relix.parse(text, source), spelling)and still aligns inline tables. The command no longer scans for comments or respells glyphs one token at a time, andScriptTextkeeps only the scan that finds where each statement ends. Statements with a comment inside them are now formatted too; a new test covers that. The examples are still formatted idempotently, with the same statements and every comment kept, in both spellings.namespace …;comes out with no blank line. A disabled test (FmtTest.Layout.blankAfterComment) records this until relix-core fixes it.relix check. The existing test that the optimized examples return the same rows still passes.DocIndexduplicatedReferenceLookup, soDocIndexand its test are removed. relix-cli has no reference pages of its own, so it passes no extra pages. Therelix doctests inManagementCommandsTeststill cover lookup by glyph, keyword and name, thefixcollision, the listing, and every key.Not changed: DarkCollective/relix-core#101 (a parameter's text read as its analysed type). Nothing in relix-cli binds parameters yet, because
-a NAME=VALUE(#14) isn't built. When it is, it can pass the text through and let the engine convert it../gradlew build --refresh-dependenciespasses.