feature: add .@ as canonical source extension, deprecate .ilo#476
Merged
Conversation
9e64698 to
309a06b
Compare
Add maybe_warn_ilo_ext() that emits a stderr hint when a .ilo file is loaded. The .@ extension saves one token per filename on cl100k/o200k tokenizers. Both extensions continue to work; .ilo is supported permanently with a soft deprecation warning at load time. Update AOT output-path stripping to handle both extensions. Update all usage strings, REPL help, and skill descriptions to show .@ as primary.
Mechanical rename of all source fixtures to the canonical .@ extension. The imports.@ file's use statement is updated to reference math-lib.@, and fs-builtins.@ glob pattern updated from **/*.ilo to **/*.@ to match the renamed tree.
- examples_engines.rs: add is_ilo_source() helper that accepts both .@ and .ilo, update collect_ilo() to use it - eval_inline.rs: update temp file paths to .@, add three new tests: at_extension_file_runs_correctly, ilo_extension_emits_deprecation_hint (verifies stderr hint on .ilo load), aot_at_extension_strips_correctly - Update all regression_*.rs and cli_*.rs temp file paths to .@
Update example paths and string literals in diagnostic registry, codegen (fmt.rs, explain.rs, python.rs), parser, vm, interpreter, and verify modules to reflect the canonical .@ extension.
- SPEC.md: new Source File Extension section explaining .@ is canonical, update imports examples and CLI invocation blocks to .@ - MANIFESTO.md: add tokenizer measurement note before Prefix notation - README.md: show .@ as primary in CLI examples, note .ilo still works - CHANGELOG.md: 0.13.0 Added entry for .@ (not BREAKING) - ai.txt: regenerated from SPEC.md via build.rs
- skills/ilo/*.md: update all CLI examples and file references to .@ - .claude-plugin/marketplace.json: mention .@ as canonical in description - extensions/vscode/package.json: add .@ alongside .ilo in languages config - pi/extensions/ilo.ts: update tool description to show .@ as canonical
6c2a7bb to
7f52856
Compare
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
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.
Summary
.@is now the canonical source extension for ilo programs, saving one token per filename on cl100k and o200k tokenizers (foo.ilo= 3 tokens,foo.@= 2).ilocontinues to work permanently but emits a deprecation hint on stderr at load timeTokenizer evidence
prog.iloprog.@GitHub URL verification
https://github.com/ilo-lang/ilo/blob/feature/ext-at/examples/ext-at-demo.%40 - returns HTTP 200, renders as plain text.
What's in the diff
maybe_warn_ilo_ext()insrc/main.rs, called at all three file-loading sites; AOT output path stripping handles both extensions; usage strings updatedimports.@updated touse "math-lib.@";fs-builtins.@glob pattern updated to**/*.@is_ilo_source()helper inexamples_engines.rs; three new tests ineval_inline.rscovering .@ execution, .ilo deprecation hint, and AOT path stripping; all regression test temp paths updatedTest plan
cargo test --releasepasses (3245 lib tests; 7 pre-existing AOT failures unrelated to this change)cargo test --test examples_enginespassescargo test --test eval_inlinepasses (202 tests including the 3 new ones)ilo examples/ext-at-demo.@ mainprints42ilo examples/arithmetic.ilo add 1 2prints3and emits deprecation hint on stderrFollow-ups
/Users/dan/code/ilo-lang/site