Update Summary
- Introduce a new analysis method for faster, more accurate lifetime visualization
- Up to 1.5× faster analysis compared to v1.0.0-rc.1 (benchmarked by analyzing RustOwl itself)
- Split lifetimes into two categories: definitely live and maybe live
Details
🚨 Breaking Changes
- Move installation docs to README - by @MuntasirSZN (31eb0)
- Multiple Rust version support - by @cordx56 in #504 (aa777)
- Live range calculation now uses StorageLive/StorageDead and shows correct ranges - by @cordx56 in #514 (60ef1)
- Polonius subset calculation algorithm - by @cordx56 in #524 (9722e)
- analyzer:
- build:
- core-analyzer:
- lsp:
🚀 Features
- Winget package - by @MuntasirSZN in #178 (d24b0)
- Consolidate and enhance CI workflows by replacing check.yaml with checks.yml and adding a development checks script - by @avifenesh in #233 (52502)
- Add security and memory safety testing workflow - by @avifenesh in #234 (f1407)
- Enhance CLI command handling with options for all targets and features - by @avifenesh in #225 (b0ce9)
- Update to rustc 1.88.0 - by @MuntasirSZN (512de)
- Add docker image - by @MuntasirSZN (01726)
- Add vscode tests, migrate to zod v4, format code - by @MuntasirSZN in #330 (2357d)
- Bump rustc to 1.89.0 - by @cordx56 (41b20)
- Commitlint in script - by @MuntasirSZN (85b45)
- Use rustowl/analyze in nvim - by @cordx56 (e3e29)
- Use rustowl/analyze in emacs - by @cordx56 (8dcb7)
- Implement CLI underline show command - by @cordx56 and @MuntasirSZN in #509 (ba14e)
- Support Rust 1.94.0 - by @cordx56 in #548 (5f881)
- Add installer script - by @cordx56 in #567 (a894c)
- Toolchain installation progress bar - by @cordx56 in #569 (84b3f)
- New lifetime visualization algorithm based on CFG analysis - by @cordx56 in #595 (e89f3)
- Implement new precise lifetime visualization plugin for editors - by @cordx56 in #600 (2d1dd)
- Support Rust 1.95.0 - by @cordx56 in #613 (7e20a)
- build:
- cache:
- config:
- Add configurable highlight colors for neovim plugin - by @MuntasirSZN (3a65d)
- neovim:
- Prevent analyzing when disabled - by @cordx56 (d5358)
- Ensure color config falls back to defaults using deep merge - by @MuntasirSZN (5c30d)
- perf-tests:
- Memory fixes - by @avifenesh in #226 (a614c)
- performance:
- toolchain:
🐞 Bug Fixes
- Add mkdir command - by @MuntasirSZN (a55eb)
- Call vscode bootstrap only when RustOwl is downloaded - by @cordx56 in #309 (10c2f)
- Visualize inside async function - by @cordx56 in #327 (000fc)
- Visualize wrong range, caused by byte check - by @cordx56 in #325 (38f89)
- Add skip installing RustOwl toolchain option on toolchain installation - by @cordx56 in #342 (c90b4)
- Eslint: - by @MuntasirSZN (6ed6f)
- Yarn - by @MuntasirSZN (a5c84)
- Yarn - by @MuntasirSZN (62597)
- Yarn - by @MuntasirSZN (8f068)
- Revert - by @MuntasirSZN (2e16f)
- Commitlint - by @MuntasirSZN (bbe4d)
- Run toolchain install BEFORE cache see https://github.com/Swatinem/rust-cache - by @MuntasirSZN (966bd)
- Cache only on main (we are reaching 10gb) - by @MuntasirSZN (cbfdb)
- Emacs rustowl/analyze - by @cordx56 (a95fd)
- Emacs fixed (by GPT-5) - by @cordx56 (5b057)
- Analysis on check failure - by @cordx56 in #379 (0e133)
- No need to pass frozen-lockfile in ci - by @MuntasirSZN (4508b)
- Block scalar in action-setup - by @MuntasirSZN (eeffc)
- Lockfile: - by @MuntasirSZN (dff02)
- Terminate range bug - by @cordx56 in #508 (7c102)
- Use macos-15-intel in build actions - by @cordx56 in #511 (28150)
- Select boxes are is considered as task list - by @cordx56 in #520 (ff2a5)
- Lto in windows, rustc allocator - by @cordx56 in #519 (69f1a)
- Support more MIR statement (e.g. aggregate rval) - by @cordx56 in #612 (bcec5)
- alloc:
- Properly setup mimalloc - by @MuntasirSZN (07bff)
- Move to jemalloc as rustc does - by @MuntasirSZN in #335 (592cd)
- analyzer:
- benchmarks:
- Increase measurement and warm-up time for benchmark tests - by @avifenesh (a7cc2)
- bencmarks:
- Fix benchmarks script to calculate result correctly, and increased the amount of iteration for more precise results - by @avifenesh (57327)
- ci:
- core-analyzer:
- deps:
- Update tar dependency to version 0.4 - by @avifenesh (208ba)
- docs:
- lsp-backend:
- neovim:
- rustc:
- New 1.88.0, bump version in ci - by @MuntasirSZN in #300 (38f72)
- windows:
- Zip now contains a top level dir - by @MuntasirSZN in #341 (584c2)
- Add turbofish arguments in visualize to make trait solver happy - by @MuntasirSZN and @cordx56 in #518 (40719)