sh2lang v0.2.0
Highlights
- Codegen Modularization: Significant refactoring split the monolithic lowering logic into focused submodules (e.g.,
emit_line,emit_val,emit_cmd). - Sudo Lowering Extraction: Separated
sudohandling for clarity and maintainability. - Import aliases:
import "path" as aliaswith qualified calls:alias.func(). Mangled wrappers emitted lazily (only when referenced). - Error-Type Research: Layed groundwork for unified error-types within the compiler.
- Fixture Naming Policy: Established and documented conventions for snake_case naming of test fixtures.
Features
(No new user-facing language syntax other than import aliases; output behavior remains identical).
Diagnostics
- Suggestions: “did you mean …?” hints for unknown import aliases and unknown qualified function names
Editors
- VS Code:
askeyword highlighting in import statements
Fixes
- Test harness: exec fixtures now fail fast when missing expected output files.
Breaking changes
- Reserved keyword:
asis now a reserved keyword. Previously,aswas a valid identifier in all positions (variables, function names, parameters). Any existing code usingasas an identifier will fail to compile.
Source Code & Repository
👉 https://github.com/siu-mak/sh2lang
👉 https://github.com/siu-mak/sh2lang