1. 16 Feb, 2026 6 commits
    • Roman Alifanov's avatar
      Add DCE for unused classes · cb16dd5f
      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
      cb16dd5f
    • Roman Alifanov's avatar
      Add Dead Code Elimination (DCE) for stdlib · dde710fe
      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)
      dde710fe
    • Roman Alifanov's avatar
      Update benchmark results · 5a7a4772
      Roman Alifanov authored
      5a7a4772
    • Roman Alifanov's avatar
    • Roman Alifanov's avatar
      Add estrlist example with benchmarks, fix time.ms/math.* codegen · 890d457c
      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
      890d457c
    • Roman Alifanov's avatar
      Initial commit · 4115df74
      Roman Alifanov authored
      4115df74