Summary
Compiler-only, AOT-only. Everyday hyper run and hyper compile no longer use a JIT. The default path is Hyper IR → LLVM IR → clang and the C runtime. Cranelift remains the fast object path (--emit-obj) and an opt-in AOT backend (--backend cranelift / HYPER_CODEGEN=cranelift).
Breaking
- No JIT.
runandcompilebuild a temporary executable and run it. There is no interpreter and no Cranelift JIT. clangis required for the default LLVM path. If it is missing, use--backend cranelift.--emit-objis always Cranelift, even when the selected backend is LLVM.--emit-llvmwrites a.llfile and does not link an executable.
Added
- Threaded
@parallel. Outlineableforrange loops (induction variable and callees only) run on an OS thread pool. Bodies that capture or mutate outer locals stay sequential, with the same per-index results.breakandcontinueinside a@parallelbody are rejected. - Struct field checks at compile time: existence, mutability, and types when the receiver’s struct type is known. Type errors are fatal before codegen (exit 65).
- Shared
reffor list, dict, and array payloads. Mutations through an alias are visible to every name that holds the same value. Overwriting a slot does not free a nested list or dict that another name still holds. - Unicode-aware case transforms on the AOT path (
upper,lower,capitalize,title,swapcase, and the case predicates) for ASCII, Latin-1, Latin Extended-A, Cyrillic, Greek, and theß/İ/ıexpansions. This is not a full Unicode case-folding database. reprfor lists and dicts prints the value instead of<?>.- Empty
{}is an empty dict.[]stays an empty list.{1, 2}(no colon) is unchanged.
Fixed
- Windows C-runtime builds no longer flood
_CRT_SECURE_WARNINGS. - Literal division, modulo, and
divmodby zero are rejected at compile time. A zero divisor that is not a literal still raisesRuntimeError(exit 70).
Notes
@vectorizeis still sequential. Same per-index results as a plainfor. SIMD and GPU codegen are not in this release.- Generics and full Python / stdlib parity are not claimed.
- Open good-first issues are follow-up work. They are not part of 0.5.0.