Documentation
Release Notes
Release Notes
1.25.0 (2026-10-26)
Bug Fixes
- aix: lower ¬ to IRx's ! operator (#120) (c17f0cd)
- arxjit: preserve Python expression semantics in lowering (#114) (0a68b0b)
- stdlib: validate integer helper boundaries (#137) (3695ef6)
- Update AGENTS.md (#113) (641eb1a)
Features
- add Arrow-backed CSV I/O and checked DataFrame conversion (#130) (ca93587)
- add nullable Series operations and rich DataFrame schemas (#133) (7ee36fc)
- add Python-style exceptions across compiler and runtime (#139) (e65e38c)
- Add support for file management (#122) (877651d)
- Add support for keyword argument for method and function calls (#125) (7be3b76)
- arxjit: lower a validated function's shell to an astx module (#107) (b8e82b1), closes #99
- arxjit: lower comparisons and boolean operators to astx (#112) (e6ba880)
- arxjit: lower expressions to astx (#109) (b011728), closes #107 #107
- arxjit: resolve a compilable signature from Python annotations (#103) (61d48c2)
- enforce lossless promotion and checked arithmetic (#138) (9e4d9a5)
- expose Arrow IPC, C Data/C Stream, and TCP interoperability in Arx (#128) (23e1e9b)
- extend Parquet I/O and nullable DataFrame support (#132) (8abddd3)
- harden compiler ownership and production readiness (#115) (84aa7a1)
- Implement parquet handling (#131) (97589f9)
- implement scoped lifecycle plan (#123) (7cc0b3e)
- Improve File class (#124) (93132fc)
- stdlib: add CSV and Parquet modules with DataFrame I/O (#135) (b8c7e0d)
- support native dependencies for external Arx packages (#126) (f1cda76)
Unreleased
Python-inspired exceptions (breaking)
raise, orderedexcepthandlers,else, andfinallynow propagate across generated calls. Builtin and single-inheritance user exception classes use ordinary nominal identities; causes and dynamic bare re-raise are supported.- Checked numeric, assertion, bounds, file, and Arrow/CSV/Parquet failures are catchable. Finalizers and owned-resource cleanup run before propagation; implicit cleanup preserves a primary failure and records secondary failures.
try,except,finally, andraiseare reserved keywords. ASTx now models cause/else clauses and qualified handler references;ThrowStmt.get_struct()names its children. Empty handler type lists are not catch-all handlers.- Generated functions and runtime callbacks use a context/status/result-slot ABI; rebuild all native producers and consumers together. Ordinary external C signatures remain unchanged. Uncaught failures use structured exception reports; ArxPy exposes them as execution-result data, not Python exceptions.
- Protected regions spanning generator suspension, Python traceback mutation, exception groups, asynchronous exceptions, and ArxJIT exception lowering remain unsupported. See the support boundary.
Checked numeric promotion (breaking)
- Numeric promotion and implicit conversions are now lossless across the whole source domain. Mixed signed/unsigned comparisons no longer reinterpret negatives; combinations without a common domain require an explicit cast.
- Integer arithmetic and numeric casts now fail on out-of-range results in all
builds. Source literals retain context and signed minima until type checking.
math.squarepreserves its selected type and fails on overflow; widen its input or explicitly select a wider specialization before computing. - Use
wrapping_add,wrapping_sub,wrapping_mul, andwrapping_castonly where modulo arithmetic is intended. Ordinary narrowing no longer truncates silently. Nonidentity Series/tensor casts are explicitly unsupported. - ArxJIT lowering shares IRx numeric promotion; integer source literals use
i32-then-i64 inference and must remain exact in floating contexts. Python
@jitfallback and the reservedintannotation (i64) are unchanged. - ASTx contextual numeric nodes are
LiteralIntegerandLiteralFloat, inastx.literals.LiteralFloataccepts exact decimal text orDecimal, not Pythonfloat. These replaceSourceInteger/SourceFloatwithout aliases. IRx preserves literal payloads and resolves types and rounded values only in semantic metadata, avoiding decimal-to-f32/f16 double rounding. - Direct ASTx/IRx clients must analyze numeric nodes before lowering. Arithmetic and conversion plans, including union storage, are authoritative sidecars. See the numeric safety contract.
Integer helper safety and templates
rangenow terminates without wrapping when a step crosses an i32 endpoint; it still returns an eagerly allocatedlist[i32].stdlib.mathscalar helpers now use a shared signed-integer template bound fori8,i16,i32, andi64, preserving the selected result type.stdlib.math.abson the selected type's minimum now fails checked arithmetic;clampwith reversed bounds raisesAssertionError;absoverflow raisesOverflowError. These failures can be handled by exception statements.
Migration notes
- Math helpers no longer convert every call to
i32. Inferred arguments must have the same concrete signed type; use casts or explicit specialization, such asmath.min<i64>(small, wide), when mixing widths. Floating-point, unsigned, Boolean, and nullable specializations remain unsupported. - CSV and Parquet operations live in
stdlib.csvandstdlib.parquet;stdlib.arrowretains shared schemas, batches, and IPC. UseCSVStreamandParquetStreamfor explicit sessions instead of the removedCSVandParquetclass names. No compatibility aliases are provided. Module-levelread_csv/write_csvandread_parquet/write_parquetremain the eager path.
1.24.1 (2026-08-05)
Bug Fixes
1.24.0 (2026-08-04)
Bug Fixes
Features
- Add initial version of aix (#84) (008a7dd)
- arxjit: add clear errors when source extraction is unavailable (#98) (0cc3c12)
- arxjit: add Python-subset validation for decorated functions (#99) (8fb8ffc)
- arxjit: add scalar type and signature API (#91) (7442764)
- arxjit: add source extraction for decorated functions (#96) (f2580d5)
- arxjit: add source extraction for decorated functions (#96) (77536dc)
- arxjit: add structured diagnostics and the public error hierarchy (#95) (b6b35e0)
- arxjit: add the @jit decorator + Python-to-ASTx design notes (#92) (f3e8f3b)
- arxjit: reject methods and make the rejection matrix exhaustive (#102) (2fcd661)
- arxjit: scaffold arxjit JIT decorator package (#90) (48508c3)
- irx: add utf8 and large_utf8 string columns to record batch (#93) (31c409c)
- pyarx: add error and diagnostic layer (#86) (3c3602c)
- scaffold pyarx Python API package (#85) (336eabf)
1.23.1 (2026-04-29)
Bug Fixes
1.23.0 (2026-04-28)
Features
1.22.0 (2026-04-28)
Features
1.21.0 (2026-04-28)
Features
1.20.0 (2026-04-27)
Features
- Add support for dataframes/series (#75) (bbc76e4)
- Standardize unsize types for collections/tensors/dataframes etc (#76) (99bf4f2)
1.19.2 (2026-04-27)
Bug Fixes
1.19.1 (2026-04-27)
Bug Fixes
1.19.0 (2026-04-26)
Features
0.16.0 (2026-04-25)
Features
- Add initial stdlib (#67) (3e74ca7)
- Add support for NDArray (#66) (d473ae3)
- Create initial structure for builtins (#69) (5f7bb17)
- Move from ndarray to tensors with arrow c++ (#70) (c2f68e8)
Unreleased
Features
- migrate Arx tensor syntax to IRx Tensor APIs and Arrow C++ runtime terminology
0.15.0 (2026-04-22)
Features
- align Arx surface syntax with IRx array-first naming (#65) (b7ae1b1)
- Improve lexer layout; Update syntax.json (#64) (a3e6285)
0.14.0 (2026-04-21)
Bug Fixes
Features
0.13.0 (2026-04-20)
Features
0.12.0 (2026-04-20)
Features
0.11.0 (2026-04-19)
Features
0.10.0 (2026-04-18)
Features
0.9.0 (2026-04-18)
Features
0.8.0 (2026-04-18)
Features
- Improve arx.settings to handle requirements fro arxpm (#55) (c18d52e)
- Improve test configuration (#54) (b97c9eb)
0.7.0 (2026-04-18)
Features
0.6.1 (2026-04-18)
Bug Fixes
0.6.0 (2026-04-18)
Features
- testing: preserve shared top-level declarations in arx test wrappers; Add assert statement (#51) (83a6591)
0.5.0 (2026-04-16)
Features
0.4.0 (2026-04-16)
Features
0.3.4 (2026-04-02)
Bug Fixes
- correct _default_value_for_type for temporal and unsupported types (#36) (93d7b13)
- refactor: Update irx and update its usage; rename classes (#39) (c95c47c)
0.3.3 (2026-03-06)
Bug Fixes
0.3.2 (2026-03-06)
Bug Fixes
0.3.1 (2026-03-06)
Bug Fixes
0.3.0 (2026-03-06)
Features
- Add support for loops, cast, print, datatypes, etc (#31) (3b9b27a)
- syntax: Support for Docstring syntax (#29) (2bb1f8b)
0.2.0 (2025-08-07)
Bug Fixes
Features
- Add support for blocks of nodes (#6) (1fd099f)
- Move the AST output to YAML format (#7) (6a8e10f)
- Support multiple input files (#8) (ad31064)
- Use ASTx and IRx as core libraries for AST and code generation (#14) (b730859)