- 16 Feb, 2026 18 commits
-
-
Roman Alifanov authored
- json.parse() now creates a dict from JSON string - json.stringify() converts dict back to JSON - Dict methods (.get, .set, .has, .del, .keys) work on parsed JSON - Added 4 integration tests for JSON functionality - Updated documentation
-
Roman Alifanov authored
- Fix benchmark numbers (47s/0.09s, ~530x speedup) - Add full project structure with all codegen mixins - Replace "Управление потоком" with "Условия и циклы" - Remove stale internal reference
-
Roman Alifanov authored
Made bench_heavy_awk.ct and bench_heavy_bash.ct identical except for @awk decorator. Fixed compound assignment with method calls that was causing different results.
-
Roman Alifanov authored
-
Roman Alifanov authored
-
Roman Alifanov authored
-
Roman Alifanov authored
New features: - .map() / .filter() for arrays with lambda support - @validate decorator for argument validation - fs.open() / f.read() / f.write() / f.close() file handles - with X in Y { } context manager for auto-closing resources All features work in both Bash and @awk codegen. Added 18 new pytest tests for the new functionality. Updated documentation (LANGUAGE_SPEC.md, README.md, README_ru.md). -
Roman Alifanov authored
-
Roman Alifanov authored
- @test("description") decorator marks functions as tests - assert(condition, message) works in both bash and @awk functions - content test command runs all @test functions - Colored output with timing, pass/fail status - DCE skips @test functions in normal compilation mode - Supports combining @test with other decorators (@awk, @retry, etc.) -
Roman Alifanov authored
-
Roman Alifanov authored
-
Roman Alifanov authored
-
Roman Alifanov authored
- Track which classes are instantiated (new X() or X()) - Track transitive dependencies via class fields - Skip generating unused classes with comment marker Example: if class A is used but class B is not, B is skipped: # DCE: skipped unused class B
-
Roman Alifanov authored
- Add dce.py: UsageAnalyzer that scans AST for used stdlib categories - Modify stdlib.py: emit_stdlib() now accepts used_categories parameter - Modify codegen.py: analyze programs before generating stdlib Categories: core, object, http, fs, json, logger, string, array, dict, regex, math, time, awk, exception, args, misc Results: - Simple "print(Hello)" program: 200+ lines -> 35 lines - Complex programs: minimal change (use most categories anyway)
-
Roman Alifanov authored
-
Roman Alifanov authored
-
Roman Alifanov authored
- Add estrlist.ct: string list operations with @awk acceleration - Add estrlist_noawk.ct: pure bash version for comparison - Add benchmark.sh: performance comparison script - Add BENCHMARK.md: results showing @awk gives 93x speedup on union Codegen fixes: - Fix time.now() and time.ms() calls in dispatch_codegen - Fix math.* namespace calls - Previous fixes for class field assignment and nested constructors
-
Roman Alifanov authored
-