Reussir v0.1.0, built from 677b70e635299f657041c9955c6d95c6814c2bc7. See CHANGELOG.md for the release notes.
Contents: the Reussir toolchain — rrc (ahead-of-time compiler), rene (package manager), and rrepl (REPL). LLVM/MLIR and the Reussir backend are linked statically into the binaries; no shared libraries ship and nothing needs LD_LIBRARY_PATH.
Platforms:
- Linux x86_64 (built against LLVM 22)
- Linux aarch64 (built against LLVM 22)
- macOS ARM64 (built against Homebrew LLVM)
- Windows x64 (built against MSVC LLVM via conda-forge)
Usage: Extract the archive and add <prefix>/bin to PATH.
Compiling programs requires a Rust toolchain (rustc/cargo) on PATH: the bundled rene bakes the reussir-rt runtime from its embedded source with your toolchain on first use — no toolchain or prebuilt runtime ships in this archive.
What's Changed
- Core types by @SchrodingerZhu in #1
- Codegen by @SchrodingerZhu in #2
- support short circuit by @SchrodingerZhu in #3
- Codegen Branch Updates by @SchrodingerZhu in #4
- Codegen Updates by @SchrodingerZhu in #5
- finish codegen for fib by @SchrodingerZhu in #6
- more codegen support for arith operations by @SchrodingerZhu in #7
- Codegen by @SchrodingerZhu in #8
- Codegen updates by @SchrodingerZhu in #9
- Prepare import MLIR by @SchrodingerZhu in #10
- Mlir by @SchrodingerZhu in #11
- MLIR (part 2) by @SchrodingerZhu in #12
- add more basic operation lowering by @SchrodingerZhu in #13
- add more mlir operations by @SchrodingerZhu in #14
- scaffold scf lowering pass by @SchrodingerZhu in #15
- prepare closure operations by @SchrodingerZhu in #16
- adjust vtable operation by @SchrodingerZhu in #17
- Bridging library by @SchrodingerZhu in #18
- make the primitive compiler work by @SchrodingerZhu in #19
- more operations of the compiler by @SchrodingerZhu in #20
- Add drop operations by @SchrodingerZhu in #21
- alias analysis by @SchrodingerZhu in #22
- scaffold the dec expansion operation by @SchrodingerZhu in #23
- adjust for 21.1.0 by @SchrodingerZhu in #24
- Scaffold reussir-infer-variant-tag pass library by @SchrodingerZhu in #25
- try enable LLVM-22 by @SchrodingerZhu in #26
- add inc-dec-cancellation pass by @SchrodingerZhu in #27
- More on optimization pipeline by @SchrodingerZhu in #28
- start runtime by @SchrodingerZhu in #29
- [regional] Add scanner instruction generator by @SchrodingerZhu in #30
- adjust vtable operation by @SchrodingerZhu in #31
- Closure lowering by @SchrodingerZhu in #32
- [TPDE] support tpde backend as a new fast compilation mode by @SchrodingerZhu in #33
- [misc] updates for builds and license by @SchrodingerZhu in #34
- Init hs by @SchrodingerZhu in #35
- [misc] remove hardcoded targets from nix flake by @SchrodingerZhu in #36
- [frontend] clean up rust by @SchrodingerZhu in #37
- [bridge] initialize haskell bridge by @SchrodingerZhu in #38
- [bridge] create haskell bridge library by @SchrodingerZhu in #39
- [cabal] fix build from clean project by @SchrodingerZhu in #40
- [frontend] stage works for frontend by @SchrodingerZhu in #41
- [frontend] add more builtin codegen utilities by @SchrodingerZhu in #42
- [frontend] add more builtin codegen utilities by @SchrodingerZhu in #43
- [frontend] adjust more codegen by @SchrodingerZhu in #44
- [misc] migrate to GHC 9.12 by @SchrodingerZhu in #45
- [frontend] add all arith builtins by @SchrodingerZhu in #46
- [misc] workaround some new issues in flesh installation by @SchrodingerZhu in #47
- [CI] Add CI workflow for Haskell project using Nix by @SchrodingerZhu in #48
- [frontend/codegen] add math builtins by @SchrodingerZhu in #49
- [misc] lock GHC back to 9.10.3 by @SchrodingerZhu in #50
- [frontend] add more types by @SchrodingerZhu in #51
- [frontend] general refactor to allow IO effects in codegen by @SchrodingerZhu in #52
- [mlir] separate token consideration from frontend by @SchrodingerZhu in #54
- [frontend] refactor emission interface to allow state lookup during emission by @SchrodingerZhu in #55
- [frontend] generalize state handling by @SchrodingerZhu in #56
- [frontend] add mangling for types by @SchrodingerZhu in #57
- [frontend] implement type emission for records by @SchrodingerZhu in #58
- [frontend] implement other type emissions by @SchrodingerZhu in #59
- [frontend] prepare IR construction by @SchrodingerZhu in #60
- [frontend] use scientific value in constant construction by @SchrodingerZhu in #61
- [frontend] start implement instrCodegen by @SchrodingerZhu in #62
- [frontend] add more instr generations by @SchrodingerZhu in #63
- [frontend] add more basic instr codegen by @SchrodingerZhu in #64
- [frontend] adjust comment spec by @SchrodingerZhu in #65
- [feat(frontend)] add new haskell parser by @Archaversine in #66
- [frontend] add APIs to allow frontend to customize codegen by @SchrodingerZhu in #67
- ci: workaround upstream build problem by @SchrodingerZhu in #68
- Add Windows build support for CMake and integration tests by @SchrodingerZhu with @Copilot in #69
- Change MSYS2 setup to use mingw64 toolchain by @SchrodingerZhu in #71
- Add GHCup setup and Haskell frontend build steps by @SchrodingerZhu in #73
- [backend/TPDE] upgrade TPDE and remove adhoc patches by @SchrodingerZhu in #77
- [backend/JIT] Add a JIT backend for REPL by @SchrodingerZhu in #78
- [frontend/test] use tasty framework by @SchrodingerZhu in #79
- [CI] adjust names by @SchrodingerZhu in #80
- Remove redundant library copies, use deps directory for runtime linking by @SchrodingerZhu with @Copilot in #82
- [backend] Add rustc support by @SchrodingerZhu in #83
- debug the silly stupid windows by @SchrodingerZhu in #84
- [WIP] create FFI compilation pass by @SchrodingerZhu in #85
- [backend] continue closure lowering pass by @SchrodingerZhu in #87
- [misc] bump all deps and prepare reuse pass by @SchrodingerZhu in #89
- [backend] implement reuse analysis pass by @SchrodingerZhu in #90
- [backend] switch to set-based token container by @SchrodingerZhu in #91
- [frontend] Add a customized error reporting library by @SchrodingerZhu in #92
- [backend] fix TPDE again by @SchrodingerZhu in #94
- [frontend] format and adjust lexical rules in existing parser code by @SchrodingerZhu in #93
- [frontend] major refactor on the parser package by @SchrodingerZhu in #95
- [frontend] adjust frontend syntatical AST by @SchrodingerZhu in #97
- [frontend] add meta solving framework by @SchrodingerZhu in #98
- [frontend] adjust record parsing logic by @SchrodingerZhu in #99
- [frontend] add more parsing support by @SchrodingerZhu in #100
- [frontend] allow empty function body by @SchrodingerZhu in #101
- [frontend] separate generic from hole by @SchrodingerZhu in #102
- [frontend] add basic bidirectional typechecking for constant/arith operations by @SchrodingerZhu in #103
- [frontend] initialize bidirectional translation with typeclasses by @SchrodingerZhu in #104
- [backend] refactor for new capability system by @SchrodingerZhu in #105
- [CI] fix unit test by @SchrodingerZhu in #106
- [frontend] adjust frontend syntax for new capability system by @SchrodingerZhu in #107
- [frontend] finish bidirectional tyck for let-in and var by @SchrodingerZhu in #108
- [frontend] add translation for projection by @SchrodingerZhu in #109
- [frontend] add function call translation by @SchrodingerZhu in #110
- [frontend] fix ambiguity on comparison parsing by @SchrodingerZhu in #111
- [frontend] add stmt translation by @SchrodingerZhu in #112
- [frontend] display well-typed expression by @SchrodingerZhu in #113
- [frontend] translate ctor call expressions by @SchrodingerZhu in #114
- [frontend] support type bound for generics by @SchrodingerZhu in #116
- [frontend] add type flow analysis for module generics by @SchrodingerZhu in #118
- [frontend] display cycles after detection by @SchrodingerZhu in #119
- [frontend] fix core module test cases by @SchrodingerZhu in #120
- [frontend] start lowering core structure to IR by @SchrodingerZhu in #121
- [frontend] minor changes for better logging and printing by @SchrodingerZhu in #123
- [frontend] remove integer and float suffix by @SchrodingerZhu in #124
- [frontend] minor fixups without feature change by @SchrodingerZhu in #125
- [frontend][backend] scaffold debug attributes by @SchrodingerZhu in #127
- [frontend] scaffold the repl by @SchrodingerZhu in #128
- [frontend] allow empty type argument list as syntax sugar by @QueClr in #131
- [frontend] remove rc-wrapper from record field and support chain projections by @SchrodingerZhu in #137
- [frontend] add nullable as a special variant type by @SchrodingerZhu in #138
- [frontend] fix field projection by @SchrodingerZhu in #139
- [frontend] start refactoring by @SchrodingerZhu in #141
- [backend] add reussir.record.extract operation to ease frontend by @SchrodingerZhu in #142
- [frontend] port semi-abstract syntax elaboration by @SchrodingerZhu in #143
- [misc] include simple frontend tests by @SchrodingerZhu in #144
- [frontend] vectorize more data structure where suitable by @SchrodingerZhu in #145
- [frontend] reimplement lowering for Core2 by @SchrodingerZhu in #146
- [frontend] switch to sequence expr by @SchrodingerZhu in #147
- [frontend] add REPL and REPL tests by @QueClr in #149
- Add macOS CI pipeline with Homebrew LLVM and platform-specific fixes by @SchrodingerZhu with @Copilot in #152
- [misc] attempt to cache haskell build files by @SchrodingerZhu in #153
- Update macOS version in CI workflow by @SchrodingerZhu in #154
- [frontend] remove nix and migrate to latest GHC by @SchrodingerZhu in #156
- feat(frontend): add syntax sugar for auto-forward record fields by @QueClr in #161
- Fix Windows build error during copying Rust toolchain by @SchrodingerZhu with @Copilot in #162
- [frontend][backend] pattern matching syntax and str pattern op by @SchrodingerZhu in #163
- [frontend] pattern matching in semi elaboration by @SchrodingerZhu in #171
- [CI] add llvm-22 back by @SchrodingerZhu in #172
- Desugar X::Y to X::Y{} for nullary enum variants by @SchrodingerZhu in #175
- Register ___chkstk_ms symbol for Windows x86-64 JIT session by @SchrodingerZhu in #178
- [Backend] Fix use-after-free in TokenReuse pass and install LLVM crash handler by @SchrodingerZhu with @Copilot in #181
- [frontend][backend] add FFI trampoline support by @SchrodingerZhu in #184
- [CI] add nightly release pipeline by @QueClr in #186
- [backend] migrate to a general CABI conversion framework by @SchrodingerZhu in #188
- [backend] add reussir.ref.acquire op and rename DropExpansion to AcquireDropExpansion by @SchrodingerZhu in #189
- [backend] fix ownership analysis for val struct and cross references by @SchrodingerZhu in #190
- [backend] improve alias analysis and adjust lowering pipeline by @SchrodingerZhu in #191
- [frontend][LSP] add a simple LSP by @SchrodingerZhu in #182
- Fix nightly release pipeline for relocatable packages by @QueClr in #192
- docs: document pattern matching and ownership analysis by @SchrodingerZhu in #193
- [CI] resolve dangling libLLVM symlink in release tarball by @QueClr in #195
- feat: add customizable target triple for cross-compilation by @SchrodingerZhu in #196
- Fix all security alerts: workflow permissions and minimatch ReDoS by @SchrodingerZhu with @Copilot in #199
- [frontend] Expose relocation-mode in reussir-compiler CLI by @SchrodingerZhu in #204
- [frontend][parser] support complex arrow type syntax and lambda return annotations by @SchrodingerZhu in #205
- [ci] Use setup-dev-drive for Windows CI performance by @SchrodingerZhu in #207
- [frontend] add closure type in frontend by @SchrodingerZhu in #208
- Bump minimatch from 10.2.2 to 10.2.4 in /reussir-vscode in the npm_and_yarn group across 1 directory by @dependabot[bot] in #212
- [frontend] function-to-closure lifting and partial application by @QueClr in #215
- [frontend][parser] resolve if-condition ctor-call ambiguity by @SchrodingerZhu in #218
- [frontend][parser][semi] allow expression-based closure calls by @SchrodingerZhu in #216
- [frontend][test] add tree-to-list e2e test with C driver by @SchrodingerZhu in #219
- [backend] add LLVM allocation simplification pass for null runtime calls by @SchrodingerZhu in #220
- [backend] use invariant.group/launder pair for devirtualization by @SchrodingerZhu in #221
- [backend][conversion] lift invariant group marking into dataflow analysis pass by @SchrodingerZhu in #222
- [frontend][ownership] fix decision tree branch reconciliation by @SchrodingerZhu in #223
- Add --reuse-across-call flag and mimalloc allocator by @SchrodingerZhu in #224
- Fix DT ownership merge bug and rbtree-zipper insertion logic by @SchrodingerZhu in #225
- [backend] recover pointer equality and add CFSink pass by @SchrodingerZhu in #226
- [backend[token-reuse] add DFS pre-order tiebreaking for equal locality scores by @SchrodingerZhu in https://github.com//pull/228
- [backend] mark destructors cold and skip acquire/drop for bare variants by @SchrodingerZhu in #229
- [backend] add best-effort fusion by @SchrodingerZhu in #230
- [backend] add explicit copy avoidance. by @SchrodingerZhu in #231
- Add unique-carrying recursion analysis by @SchrodingerZhu in #232
- [backend] add simple TRMc support by @SchrodingerZhu in #233
- [backend] make unique-carry recursion cloning sound by @SchrodingerZhu in #234
- [NFC][Backend] Refactor pass libraries into transformation aggregates by @SchrodingerZhu in #236
- [backend] add unique view support for rc arrays by @SchrodingerZhu in #238
- Bump brace-expansion from 5.0.2 to 5.0.5 in /reussir-vscode in the npm_and_yarn group across 1 directory by @dependabot[bot] in #239
- Support tensor array views in SCF lowering by @SchrodingerZhu in #240
- [backend] Use convert-to-llvm interfaces for Reussir lowering by @SchrodingerZhu in #243
- Add ref/memref<0> bridge ops by @SchrodingerZhu in #244
- Add sanitizer runtime pipeline (ASan, LSan, MSan, TSan) by @SchrodingerZhu in #245
- Add filesystem-based module system with mod declarations by @SchrodingerZhu in #246
- Redesign trampoline lowering for explicit C ABI boundaries by @SchrodingerZhu in #248
- Add JSON serialization for all frontend pipeline contexts by @SchrodingerZhu in #251
- Add Rust surface syntax parser emitting aeson-compatible JSON by @SchrodingerZhu in #252
- Add reussir-backend Rust crates with melior + Reussir dialect by @SchrodingerZhu in #254
- Add Reussir lowering pipeline via fine-grained CAPI + melior by @SchrodingerZhu in #255
- Add Reussir dialect bindings + JIT wrapper to reussir-backend by @SchrodingerZhu in #256
- Add reussir-jit: ORC LLJIT engine with custom LLVM passes + TPDE by @SchrodingerZhu in #257
- Move runtime to crates/reussir-rt; resolve JIT runtime symbols in-process by @SchrodingerZhu in #258
- [frontend] add string unique storage to rust frontend by @SchrodingerZhu in #259
- Fix nightly Windows (MSVC) build: suppress snmalloc C4864 by @SchrodingerZhu in #260
- Fix nightly Windows release: pin rustup default-host to gnullvm by @SchrodingerZhu in #263
- [frontend] reussir-core type/trait foundations + Semi elaboration by @SchrodingerZhu in #262
- [frontend] reussir-core: v0 symbol mangling for the Full phase by @SchrodingerZhu in #264
- [frontend] reussir-core: Semi → Full monomorphization by @SchrodingerZhu in #265
- [frontend] reussir-core: seed punycode Fenwick tree via FromIterator by @SchrodingerZhu in #270
- [frontend] semi: a freshly-constructed regional record is born flex by @SchrodingerZhu in #271
- [frontend] reussir-core: textual IR ser/de (logos + lalrpop + pprint) for MIR & HIR by @SchrodingerZhu in #266
- [backend] reussir-codegen: lower the scalar/control-flow Full MIR subset to MLIR + run it by @SchrodingerZhu in #267
- semi: add fuzzy "did you mean" suggestions for unresolved names by @SchrodingerZhu in #272
- [backend] reussir-compiler: standalone AOT object/asm/llvm-ir compiler by @SchrodingerZhu in #268
- Perceus-style ownership (precise reference-counting) analysis over Full MIR by @SchrodingerZhu in #273
- Optimize HybridBitSet hot paths with cold_path hints by @SchrodingerZhu in #274
- [frontend][codegen] value records and expression revision by @SchrodingerZhu in #269
- [backend] reussir-codegen: managed (
[shared]) records via ownership-driven reference counting by @SchrodingerZhu in #275 - [backend] reussir-codegen: source locations + DWARF debug info for the lowered subset by @SchrodingerZhu in #276
- [backend] reussir-codegen: lower enum (variant) construction + variant debug info by @SchrodingerZhu in #277
- [backend] region-patterns: always give region-allocated objects a vtable by @SchrodingerZhu in #280
- [backend] builders: region-allocating rc.create and region.run/yield ops by @SchrodingerZhu in #281
- [backend] reussir-codegen: lower regional record construction, region-run, and regional calls by @SchrodingerZhu in #282
- [backend] reussir-codegen: lower projection of regional record members by @SchrodingerZhu in #283
- [backend][frontend] regional
[field]link mutation + flexivity coloring fixes by @SchrodingerZhu in #285 - [backend] reussir-codegen: lower closures (create/apply/eval) by @SchrodingerZhu in #286
- [backend] reussir-codegen: lower
match(decision-tree dispatch) by @SchrodingerZhu in #287 - [compiler] rrc: clang-style multi-stage driver with IR I/O targets by @SchrodingerZhu in #288
- [tests] migrate elab-only frontend lit tests to rrc by @SchrodingerZhu in #291
- [backend] reussir-codegen: settle refcount of temporary projection bases by @SchrodingerZhu in #295
- [frontend] elaboration diagnostics: render with source carets, trace patterns to source by @SchrodingerZhu in #296
- [frontend] remove the Rust reussir-elab bin, superseded by rrc by @SchrodingerZhu in #298
- [frontend][backend] arbitrary-precision numeric literals with single rounding by @SchrodingerZhu in #297
- [backend] reussir-codegen: bind the whole value at a switched match path by @SchrodingerZhu in #299
- [frontend] non-
[field]regional member: enforce frozen-only at elaboration, lower projection by @SchrodingerZhu in #301 - [backend] inc-dec-cancellation: don't cancel a retain across a consuming call by @SchrodingerZhu in #302
- [backend] reussir-codegen: lower a closure record member as a capability member by @SchrodingerZhu in #303
- [frontend] elaborate a bare-name call of a closure binding as a closure application by @SchrodingerZhu in #300
- [tests] migrate e2e + MIR-dump frontend tests from the Haskell driver to rrc by @SchrodingerZhu in #304
- [tests] migrate MLIR-check + TRMC + closure-HIR frontend tests to rrc by @SchrodingerZhu in #305
- [frontend] incremental REPL engine APIs: shared interner, atomic elaborator extension, tracked JIT modules by @SchrodingerZhu in #289
- [frontend] nullable-pattern dispatch and nullable value refcounting by @SchrodingerZhu in #306
- [frontend] reussir-repl: Rust REPL driver (persistent HIR + incremental ORC JIT) with script mode by @SchrodingerZhu in #292
- [frontend] render types in surface syntax in diagnostics by @SchrodingerZhu in #307
- [frontend] reussir-repl: ratatui TUI frontend with smart-Enter multiline input by @SchrodingerZhu in #293
- [frontend] reussir-repl: structural value printing via a host-side layout mirror by @SchrodingerZhu in #294
- [frontend] reussir-repl: global
letbindings by @SchrodingerZhu in #308 - [frontend] rrc: emit target triple in LLVM IR, add dynamic-no-pic, conventional --help by @SchrodingerZhu in #309
- [tests] migrate REPL lit tests from the Haskell REPL to rrepl by @SchrodingerZhu in #310
- [backend] fix [value]-capability enum matching: spilled-ref capability + inc-dec-cancellation drop barrier by @SchrodingerZhu in #311
- [backend] stamp target data layout on modules; layout-aware convert-to-llvm by @SchrodingerZhu in #313
- [frontend] multi-file source cache (ariadne) + lossless textual IR locations by @SchrodingerZhu in #314
- syntax: parse char literals by @SchrodingerZhu in #319
- codegen: lower string and char matches by @SchrodingerZhu in #320
- backend: mangle string globals with blake3 by @SchrodingerZhu in #321
- frontend: field shorthand auto-forward; migrate field_shorthand + sanitizer lits to rrc by @SchrodingerZhu in #322
- capi: gate stripInvariantGroupBarriers behind REUSSIR_HAS_TPDE by @SchrodingerZhu in #323
- tests: ASan/LSan e2e gates + regional cyclic-graph coverage by @SchrodingerZhu in #324
- [backend] never call the allocator to free a null token (#325 P1) by @SchrodingerZhu in #326
- [backend] TBI tagged-pointer immediates by @SchrodingerZhu in #327
- [backend] register the func inliner extension — the pipeline inliner was silently dead by @SchrodingerZhu in #328
- [tests] pin the variant debug-info e2e test to -Onone by @SchrodingerZhu in #329
- [backend] TRMC via first-class constructor contexts (!reussir.cctx) by @SchrodingerZhu in #330
- [frontend] module system: package discovery, module-aware resolution, rrc package mode by @SchrodingerZhu in #315
- [frontend] multi-CGU codegen: --codegen-units N (default 1) by @SchrodingerZhu in #316
- [frontend] AOT linkage policy: internal / linkonce_odr / external per item class by @SchrodingerZhu in #331
- [frontend] core::intrinsic::math intrinsics by @SchrodingerZhu in #317
- [tests] migrate the module and math tests from the Haskell driver to rrc by @SchrodingerZhu in #318
- [tests] migrate the last lit tests off the Haskell driver tools by @SchrodingerZhu in #332
- [frontend] lift named functions to closures (value use + partial application) by @SchrodingerZhu in #334
- chore: remove the Haskell frontend; migrate CI/CD to the Rust toolchain by @SchrodingerZhu in #335
- [backend] token reuse: escape member tokens trapped in expanded decrements by @SchrodingerZhu in #337
- [backend] destructuring decrements: fuse pattern-match consumption (dropn_reuse) by @SchrodingerZhu in #338
- [rt] natural-bin mimalloc GlobalAlloc; make mimalloc the default allocator by @SchrodingerZhu in #339
- [backend] unique-carrying analysis: soundness, completeness, and a real spec by @SchrodingerZhu in #343
- Experiment: migrate Windows CI to MSVC by @SchrodingerZhu in #336
- [backend] record layout: pack members by alignment; minimal-width variant tags by @SchrodingerZhu in #340
- [backend] fused 8-byte rc box header: i32 count + i32 tag in one word by @SchrodingerZhu in #341
- [backend] drop two unused indexType locals (fix -Werror pedantic build) by @SchrodingerZhu in #346
- [backend] transform-interpreter anchors in the lowering pipeline (#349 Phase 1, 1/2) by @SchrodingerZhu in #350
- [ci] install libpolly-dev in nightly release; drop dead LLVM_SYS_220_PREFIX by @SchrodingerZhu in #352
- [runtime] feature flags to select bundled mimalloc major (v3 default, v2 optional) by @SchrodingerZhu in #356
- [backend] TokenReuse: flush carried tokens before tail-positioned calls (#325 P8) by @SchrodingerZhu in #354
- [backend] bin model fix by @SchrodingerZhu in #357
- [backend] per-constructor variant box sizing: switch + arm-size helper + create-side + verifier (#325, 1/N) by @SchrodingerZhu in #360
- [backend] per-constructor box sizing: dynamic token free + token<?> fallback reuse (2/N) by @SchrodingerZhu in #361
- [runtime] default the bundled mimalloc to the stable v2 line by @SchrodingerZhu in #363
- [test] pin straight-line reuse of a dynamic token<?> donor by @SchrodingerZhu in #364
- [backend] make per-constructor variant box sizing the default (#325, 3/N) by @SchrodingerZhu in #365
- [backend] unsized dynamic token<?> + 8-granular mimalloc bins (#325) by @SchrodingerZhu in #366
- [frontend][backend] per-type variant box sizing via #[repr(fixed)] (#325) by @SchrodingerZhu in #367
- [backend] token uniformity: only count token-producing arms (fixes 2x rbtree regression) by @SchrodingerZhu in #369
- [backend] gate guarded rc stores behind unlikely branches instead of cmov steering (#325) by @SchrodingerZhu in #358
- [runtime] no-copy language realloc: in-place when the block fits, else free+alloc (#362) by @SchrodingerZhu in #370
- [misc] nix flake devshell (LLVM/MLIR 22, fenix Rust, clangd/rust-analyzer) by @SchrodingerZhu in #353
- [backend][tests] debugger-verified debug info: rustc-shaped variant DWARF + %lldb/%gdb lit suite by @SchrodingerZhu in #371
- [backend] closure beta reduction: fold apply/eval chains, inline visible redexes by @SchrodingerZhu in #375
- [driver] rrc --transform-script: run schedules at pipeline anchors (#349 Phase 1, 2/2) by @SchrodingerZhu in #351
- [backend] inc/dec cancellation: count-observing ops are barriers by @SchrodingerZhu in #376
- [syntax] statically shaped array types: [T; e1, e2, ...] by @SchrodingerZhu in #377
- [frontend] TyKind::Array: the [T; extents…] type through the type system by @SchrodingerZhu in #378
- [frontend] ArrayOp: the built-in array operation node in HIR and MIR by @SchrodingerZhu in #379
- [frontend] array intrinsics: splat, get, set by @SchrodingerZhu in #380
- [backend] closure beta reduction: inline loop-carried redexes by @SchrodingerZhu in #392
- [frontend] array tabulate/fold: kernels are ordinary closures by @SchrodingerZhu in #393
- [frontend] textual IR: array types and array#… op forms parse back by @SchrodingerZhu in #382
- [codegen] array access ops: memref views, bounds checks, get, set by @SchrodingerZhu in #383
- [codegen] array constructors and fold: inlined scf.for loop nests by @SchrodingerZhu in #384
- [tests] array e2e: construction, access, folds, COW, in-place update by @SchrodingerZhu in #385
- [frontend] closure captures: free variables, not variable occurrences by @SchrodingerZhu in #394
- [backend] closure beta reduction: preserve identity yields by @SchrodingerZhu in #397
- [frontend][backend] arrays as record members: one shared rc box, like closures by @SchrodingerZhu in #395
- [syntax] parse opaque transform module items by @SchrodingerZhu in #386
- [frontend] collect transform anchors and scripts by @SchrodingerZhu in #387
- [hir] preserve inline transform metadata by @SchrodingerZhu in #388
- [mir] preserve inline transform metadata by @SchrodingerZhu in #389
- [codegen] embed inline transform schedules by @SchrodingerZhu in #390
- [pipeline] run inline transform schedules by @SchrodingerZhu in #391
- [backend] ensure lowering: reuse the dec condition only for its own token by @SchrodingerZhu in #399
- [backend] materialize stack slots in the entry block by @SchrodingerZhu in #401
- [rc] queue at koka parity: member transfer for rebuilt compounds + inlining into reussir regions by @SchrodingerZhu in #404
- [rt][backend] size-specialized allocation entry __reussir_allocate_small by @SchrodingerZhu in #405
- [scf] peel nullary arms into immediate compares at dispatch by @SchrodingerZhu in #406
- [driver][codegen] --sanitizer: annotate functions for sanitizer instrumentation by @SchrodingerZhu in #411
- [backend] atomic rc lifecycle: acq_rel fetch_sub decrement, acquire fetch (#409 PR 1) by @SchrodingerZhu in #410
- [mlir] add shared RC cell operations by @SchrodingerZhu in #412
- [nfc] format project sources and test cell names by @SchrodingerZhu in #413
- [backend] generalize structural beta reduction by @SchrodingerZhu in #414
- [mlir] rework cells: exclusive flavor with in-use flag, triviality-driven get by @SchrodingerZhu in #422
- [mlir] add atomic cells and memory ordering by @SchrodingerZhu in #423
- [mlir] restrict atomic cells to atomic shared RC boxes by @SchrodingerZhu in #428
- [mlir] add mlir-sync dependency and lock-guarded cell kinds by @SchrodingerZhu in #429
- [backend] clean up and rename scf lowering to std conversion by @SchrodingerZhu in #432
- [backend] lower mutex cell operations by @SchrodingerZhu in #433
- [backend] lower flatlock cell operations by @SchrodingerZhu in #434
- [misc]provision libomp in the dev shell, bump mlir-sync, and default the nightly preserve_most feature on by @SchrodingerZhu in #435
- [backend] lower rwlock cell operations by @SchrodingerZhu in #436
- [frontend] add the Arc builtin type for atomic rc coloring by @SchrodingerZhu in #424
- [frontend] add Arc constructors for shared structs and enums by @SchrodingerZhu in #425
- [frontend] make reads transparent through the Arc coloring by @SchrodingerZhu in #426
- [build] fix Windows CI deadlock: drop preserve_most on sync slow paths by @SchrodingerZhu in #437
- [docs] add thread-safety design: the Sync discipline, Arc, and cells by @SchrodingerZhu in #438
- [frontend] retire the Send marker trait; Sync is the single predicate by @SchrodingerZhu in #439
- [codegen] lower Arc to an atomically counted rc box by @SchrodingerZhu in #427
- [frontend] structural Sync: coinductive checker + Arc member well-formedness by @SchrodingerZhu in #440
- [docs] thread-safety: Arc on recursive types via SCC color promotion by @SchrodingerZhu in #441
- [frontend] reject inline-recursive value records (infinite size) by @SchrodingerZhu in #444
- [mlir][frontend] SCC promotion: whole-subtree atomicity, Arc on recursive types by @SchrodingerZhu in #443
- [misc] migrate source license headers to LLVM style by @SchrodingerZhu in #442
- [frontend] explain arc-coloring mismatches in rustc-lifetime style by @SchrodingerZhu in #445
- [frontend] sync-cell surface: Atomic, Mutex, FlatLock, RwLock + core::cell::rdlock by @SchrodingerZhu in #446
- [frontend] import path abbreviations with optional as-rename by @SchrodingerZhu in #447
- Polyffi rework by @SchrodingerZhu in #448
- [llvm] Linear recurrence strength reduction: recursion linearization + Kitamasa exponentiation by @SchrodingerZhu in #450
- [frontend][mlir] rrc: explicit polyffi toolchain flags by @SchrodingerZhu in #449
- [frontend][mlir] polyffi: allow multiple libdirs by @SchrodingerZhu in #453
- [rene] initialize package manager crate:
rene buildloads and dumps the Nickel manifest by @SchrodingerZhu in #455 - [rene] build directory with status db; bake bundled reussir-rt and print polyffi libdirs by @SchrodingerZhu in #456
- [ci] test rene on push/PR: clippy, fast suite, and the host-toolchain bake by @SchrodingerZhu in #457
- [frontend] rrc: root a package at the input file via --package-name by @SchrodingerZhu in #454
- [frontend] rrc: --scan-deps lists the package source graph instead of compiling by @SchrodingerZhu in #458
- [rene] record the package source graph; rebuild it on config or mtime drift by @SchrodingerZhu in #459
- [frontend][mlir] rrc: staticlib output mode, with --lto packing by @SchrodingerZhu in #460
- [frontend] give the builtin type formers module homes under core::intrinsic, imported as a prelude by @SchrodingerZhu in #462
- [frontend]
#[main]names the entry point; executables start under the Rust runtime by @SchrodingerZhu in #461 - [build][ci] drop the staged reussir-rt/rust packages; rene prepares the runtime by @SchrodingerZhu in #463
- [frontend] rrc: executable and dynlib output modes by @SchrodingerZhu in #464
- [rene] declare targets and build profiles in rene.ncl; drive rrc to artifacts by @SchrodingerZhu in #465
- [rene] pin the linker through the runtime bake; un-gate the Windows e2e by @SchrodingerZhu in #466
- [frontend][mlir] AOT linkage from the reference graph: mono-export upgrade, weak_odr instances by @SchrodingerZhu in #467
- [frontend] --emit rri: the reduced HIR package interface by @SchrodingerZhu in #468
- [rrc] modularize the driver by @SchrodingerZhu in #469
- [frontend] rrc: load package interfaces with --extern; extern-head resolution + access control by @SchrodingerZhu in #470
- [frontend] cross-package monomorphization and --link-lib by @SchrodingerZhu in #472
- [tests] extern_link: portable llvm-nm checks (fix macOS) by @SchrodingerZhu in #474
- [rene] compio async, version constraints, pubgrub feasibility, and the plan dump by @SchrodingerZhu in #471
- [backend] COFF comdat for ODR definitions; dedup instances on COFF by @SchrodingerZhu in #473
- [rene] plan: join dependency archives with --link-lib by @SchrodingerZhu in #475
- [rene] compio-dispatcher process pool with -j/--jobs by @SchrodingerZhu in #476
- [rene] the ready-queue build pipeline (cross-package builds land) by @SchrodingerZhu in #477
- [tests] extern_mono: COFF instances are weak_odr in a comdat group by @SchrodingerZhu in #478
- Realistic rene e2e examples (calc, inventory, stats) and the compiler fixes they exposed by @SchrodingerZhu in #479
- [ci] release ships only the self-contained toolchain (rrc, rene, rrepl) by @SchrodingerZhu in #481
- [rene] select products with --bin and --lib by @SchrodingerZhu in #482
- [rene] add machine target support by @SchrodingerZhu in #483
- [closure] make payload alignment explicit by @SchrodingerZhu in #484
- [tests][ci] wasmer-driven wasip1-threads suite, behind two lit features by @SchrodingerZhu in #485
- [misc] coverage improvement by @SchrodingerZhu in #486
- [misc] adopt Sentinel design language from reussir-lang/artwork by @SchrodingerZhu in #487
- [syntax][core] accept
ifwithoutelseas sugar for an emptyelse {}by @SchrodingerZhu in #488 - [rene] add
rene new: package scaffolding with an interactive form by @SchrodingerZhu in #489 - [ci] publish versioned releases from v* tags in the release pipeline by @SchrodingerZhu in #490
New Contributors
- @Archaversine made their first contribution in #66
- @QueClr made their first contribution in #131
- @dependabot[bot] made their first contribution in #212
Full Changelog: https://github.com/reussir-lang/reussir/commits/v0.1.0