Changelog¶
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.2.3] - 2026-05-18¶
Added¶
- Architecture diagram
- Developer documentation (
docs/lessons-learned.md,docs/known-bugs.md) - README architecture description
Fixed¶
print(dict)now correctly emits dictionary entries instead of{}- Break/continue statements now work correctly inside generator while-loops
- Boxed f64/i64 subscript stores; catch
StopIterationin codegen
Performance¶
- Native f64/i32 benchmark variants wired up (geometric mean: 6.87× → 9.21×)
Maintenance¶
- Ruff cleanup and formatting
- Proper typing added across codebase
- Dependency updates
[0.2.2] - 2026-03-31¶
Added¶
- Full CLI with argparse:
-o/--output,-r/--run,-v/--verbose,-d/--debug,-V/--version p2w -rcompiles and runs a Python file in one command (via wasm-tools + Node.js)
Fixed¶
- README now references
wasm-toolsinstead ofwabt(which doesn't support WASM GC)
Changed¶
- Refactored type inference to use class-level constants for operator/type mappings
- Improved README with step-by-step usage example and CLI reference
[0.2.1] - 2026-03-02¶
Changed¶
- Refactored codegen modules to reduce code duplication
[0.2.0] - 2026-02-17¶
Fixed¶
- Floor division (
//) now correctly rounds toward negative infinity for negative numbers - Modulo (
%) now correctly returns result with sign of divisor (Python semantics) - Removed duplicate type analysis pass in inference phase
- Fixed dict comprehension tuple unpacking in escape analysis
Added¶
p2w-benchmark checkcommand for detecting performance regressions between sessions- Property-based testing with hypothesis for compiler correctness verification
- Comprehensive test suite additions (171 new tests):
- Type inference unit tests
- AST analysis unit tests
- Large integer boundary tests (i31/INT64 transitions)
- Generator corner case tests
- Exception handling tests
- Property-based compilation tests
- Architecture documentation (
docs/architecture.md) - Mermaid diagrams for compilation pipeline and type system
Changed¶
- Simplified
$int_divand$int_modruntime functions using new native helpers - Added native
$i32_floordiv,$i32_mod,$i64_floordiv,$i64_modWAT helpers
[0.1.0] - 2026-02-09¶
Initial public release.
Features¶
- Python-to-WAT compiler supporting a substantial Python subset
- Data types: integers (arbitrary precision), floats, booleans, strings, bytes, lists, tuples, dicts, sets
- Control flow: if/elif/else, for/while loops, break/continue, match statements
- Functions: definitions, default arguments, *args/**kwargs, closures, lambdas, decorators
- Classes: inheritance, properties, static/class methods, special methods
- Comprehensions: list, dict, set, generator expressions
- Exception handling: try/except/finally, raise, exception chaining
- Context managers, generators, f-strings, walrus operator
- JavaScript interop via
jsmodule for browser integration - WASM GC for automatic memory management
Included¶
- 104 golden test programs in
programs/internal/ - Two benchmark suites (
programs/benchmarks/,programs/benchmarks-alioth/) - Two browser demos (
demos/data-dashboard,demos/simulation)