Release Notes
Notable changes:
- Reduced size of AST for lower memory usage and better performance (#500, #546, #497)
- Faster parsing, lexing (#516, #502, #533)
- Implemented fmt::Debug for more types (#537)
Bug Fixes
- [sema] Remap Sources::file_to_id when sorting (#548)
- [sema] Do not expose mutable Session access while entered (#542)
- [diagnostics] Render footers at the bottom (#538)
- [lexer] Str_from_to_end (#532)
- [interface] Check longest context matches (#529)
- [ast] Debug for Token (#512)
- [CONTRIBUTING.md] Fmt check needs nightly toolchain (#501)
- [ast] Store yul::Expr even if only Call is allowed (#496)
- [sema] Peel parens when lowering call args (#495)
Dependencies
- [deps] Weekly
cargo update(#539) - [deps] Weekly
cargo update(#534) - Bump codspeed 4 (#522)
- [deps] Weekly
cargo update(#511)
Features
- [ast] Spanned optional commasep elements (#543)
- [data-structures] Add ThinSlice (#545)
- Add
ItemId::as_struct(#544) - [sema] Allow delaying/manual import resolution (#531)
- [sema] Add sources getters (#528)
- Checks on upper bounds of contract storage sizes (#169)
- [sema] Add validation for assembly memory-safe flags (#263)
- Configurable logging destination (#498)
- [parser] Introduce
Recoveredenum to improve code readability (#517)
Miscellaneous Tasks
- Add some traits to AstPath (#549)
- Simplify pointer projection (#541)
- Remove feature(doc_auto_cfg) (#540)
- [sema] Simplify perform_imports (#530)
- [sema] Fix parse dbg log (#527)
- Update benchmarks (#523)
- [interface] Make SessionGlobals private (#506)
Other
- Use meta crate (#526)
- Lowering benchmarks (#521)
- Add source & parser capabilities (#519)
- Update benchmarks (#504)
Performance
- [ast] Use ThinSlice (#546)
- [sema] Pre-compute topo_sort map (#533)
- [sema] Use a map in AST Sources (#535)
- [parser] General improvements (#516)
- [interface] Estimate capacity for SourceFile::lines (#515)
- [parser] Pass Token in registers (#509)
- [lexer] Avoid thread locals when we have a Session (#507)
- [lexer] Use eat_until_either in eat_string (#505)
- [lexer] Use lookup tables for char info (#502)
Refactor
- [ast] Boxed
yul::StmtKind::Forto reduce the size ofyul::Stmt(#500)
Styling
- Implement fmt::Debug for more types (#537)
Testing
Install solar 0.1.8
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/paradigmxyz/solar/releases/download/v0.1.8/solar-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/paradigmxyz/solar/releases/download/v0.1.8/solar-installer.ps1 | iex"Download solar 0.1.8
| File | Platform | Checksum |
|---|---|---|
| solar-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| solar-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| solar-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| solar-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| solar-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| solar-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |