Commit Graph

6 Commits

Author SHA1 Message Date
hgranthorner
0658550d09 Serialize Gradle and test runs 2026-08-06 13:07:31 -04:00
hgranthorner
bb54639ce5 Parser: cover full Jai corpus 2026-08-04 13:44:59 -04:00
hgranthorner
086ae993c5 Parser: corpus parse rate 69% -> 81%, and stop --tests from sticking
Grammar: 'using,except(x)' modifiers, '#ifx' with block branches, unions with
parameters, multi-value initializers, mixed 'name:, lvalue = call()' targets,
'push_context' with no explicit context, 'operator []=', '#foreign lib "symbol"',
keyword-named arguments such as 'remove={...}', and '#insert (options) body'.
Directive flags now require adjacency: without it, in
'(callback: (*GUID) #c_call, lpContext: *void)' the flag swallowed ', lpContext'.

procModifier is now just directiveExpr — one rule for directives in both
positions, so fixes apply everywhere.

jaitest: a '--tests' filter persisted through Gradle's configuration cache, so a
later unfiltered ./jaitest silently re-ran only that class and printed OK.
Unfiltered runs now disable the configuration cache.

MIN_CLEAN_FILES ratchets the corpus gate at 575/714.
2026-08-04 12:20:36 -04:00
hgranthorner
746647d27d Build an installable plugin ZIP: real README/CHANGELOG, cache-poisoning recovery
- README documents install-from-disk and what actually works today
- jaitest prints the recovery steps when a poisoned build cache makes
  :test report NO-SOURCE, and AGENTS.md records the failure mode
2026-08-04 10:42:10 -04:00
hgranthorner
ba5d8aba7b Phase 1 gate: Tier 0 corpus lexer invariants over the whole Jai distribution
Lexes all 714 .jai files (17.1M chars, 3.0M tokens) and asserts round-trip
tiling, strict offset progress, and zero BAD_CHARACTER. Green on first run.

jaitest: use cleanTest and retry once when a concurrent Gradle run clobbers
build/test-results (java.io.EOFException with no XML).
2026-08-04 10:25:01 -04:00
hgranthorner
711334885b Phase 0: strip JetBrains template, register Jai language and file type
- delete demo tool window + message bundle, rewrite plugin.xml metadata
- add JaiLanguage, JaiFileType, file icon, JaiTokenTypes (from the compiler's
  own lexer: modules/Jai_Lexer/module.jai)
- add ./jaitest: runs tests and reports the JUnit XML, not just the exit code
- ignore .kotlin
2026-08-04 10:19:11 -04:00