Releases: paradigmxyz/solar
Releases · paradigmxyz/solar
0.1.8
01 Oct 18:09
Compare
Sorry, something went wrong.
No results found
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 Recovered enum 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::For to reduce the size of yul::Stmt (#500 )
Styling
Implement fmt::Debug for more types (#537 )
Testing
Add unit test and debug assertion for sources inconsistency (#550 )
Track node sizes (#497 )
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 | sh
Install 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
0.1.7
11 Sep 19:09
Compare
Sorry, something went wrong.
No results found
Release Notes
Bug Fixes
[sema] Handle linearization failure fallout (#472 )
Pin dependencies on ourselves
Dependencies
[deps] Weekly cargo update (#482 )
[lexer] Inline token glueing into Cursor (#479 )
[deps] Weekly cargo update (#459 )
Features
[interface] Add Session::reconfigure (#491 )
[sema] Add Compiler::stage getter (#490 )
Diagnostic suggestions (#474 )
Add error format options for human-readable diagnostics (#473 )
[interface] Impl Default for Session, create dcx from opts (#471 )
[parser] Implement recursion depth limit for expr, stmt, and yul_stmt (#464 )
Bump to annotate-snippets 0.12, diagnostic tweaks (#465 )
[sema] Add Compiler::enter{,_mut}_sequential (#457 )
Add another utility method for extracting diagnostics (#455 )
[diagnostics] Track notes + expose notes/warn counts (#447 )
InMemoryEmitter (#451 )
Miscellaneous Tasks
Improve 'parsed' debug log (#489 )
Rename lexer methods to slop (#481 )
[interface] Rename dcx flag setters (#478 )
Update signal handler (#463 )
Use json_type to sort ABIs (#456 )
Move VERSION to config::version::SEMVER_VERSION and log it (#454 )
Hide more source map implementation details (#450 )
Chore!(data-structures): remove aliases in sync re-exports (#452 )
Remove deprecated items (#449 )
[meta] Update solidity links (#448 )
Cap default threads at available_parallelism (#445 )
Make all features reachable from meta crate (#444 )
Performance
Diagnostic suggestions (#483 )
[lexer] Minor improvements (#480 )
[interface] Cache thread pool inside of session (#458 )
Testing
Add CLI test suite (#453 )
Install solar 0.1.7
Install prebuilt binaries via shell script
curl --proto ' =https' --tlsv1.2 -LsSf https://github.com/paradigmxyz/solar/releases/download/v0.1.7/solar-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c " irm https://github.com/paradigmxyz/solar/releases/download/v0.1.7/solar-installer.ps1 | iex"
Download solar 0.1.7
0.1.6
25 Aug 21:02
Compare
Sorry, something went wrong.
No results found
Release Notes
Notable changes:
Rename enter to enter_sequential (#392 )
Manual parser (solar_parse) usage is unchanged, but solar_sema API now goes through Compiler. See: Add Compiler (#397 )
Bug Fixes
Don't print fs errors twice (#440 )
[ast] Visit array size (#437 )
Error on dummy instead of empty args (#407 )
OnDrop drops, rename to DropGuard (#399 )
Dependencies
[deps] Weekly cargo update (#433 )
[deps] Weekly cargo update (#402 )
[deps] Weekly cargo update (#395 )
[deps] Weekly cargo update (#393 )
[deps] Bump breakings (#388 )
[deps] Weekly cargo update (#387 )
[deps] Weekly cargo update (#384 )
Documentation
Typo in benchmarks (#431 )
Link to benchmarks in readme (#398 )
Features
Add getters for source by file name (path) (#442 )
[interface] Add FileLoader abstraction for fs/io (#438 )
Implement base_path, streamline creating pcx (#436 )
Allow session mutable access (#435 )
Make Literals implement Copy (#414 )
Add ByteSymbol, use in LitKind::Str (#425 )
Add Compiler (#397 )
Support cargo binstall (#396 )
[sema] Add helper methods to Function (#385 )
Visit_override when walking fn (#383 )
Miscellaneous Tasks
Update analyze_source_file (#430 )
Downgrade some debug spans to trace (#412 )
Abstract implementation of Declarations (#410 )
Add some more #[track_caller] (#409 )
Remove query tracing (#406 )
Clean up contract inheritance linearization (#405 )
Update docs, fix ci (#403 )
Update cargo-dist and move off of fork (#400 )
Rename enter to enter_sequential (#392 )
Update benchmarks (#390 )
Other
Enforce typos (#423 )
Update to actions/checkout@v5 (#404 )
Performance
Load input source files in parallel (#429 )
[sema] Better parallel parser scheduling (#428 )
[parser] Improve parse_lit for integers (#427 )
Tweak inlining (#426 )
Pool symbol resolver scopes, refactor (#413 )
[sema] Add some reserve calls (#411 )
[sema] Use Cell<usize> in lowering (#408 )
Implement likely/unlikely with #[cold] (#386 )
Testing
Add non existant import test (#441 )
Install solar 0.1.6
Install prebuilt binaries via shell script
curl --proto ' =https' --tlsv1.2 -LsSf https://github.com/paradigmxyz/solar/releases/download/v0.1.6/solar-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c " irm https://github.com/paradigmxyz/solar/releases/download/v0.1.6/solar-installer.ps1 | iex"
Download solar 0.1.6
0.1.5
14 Jul 04:40
Compare
Sorry, something went wrong.
No results found
Release Notes
Bug Fixes
Visit modifiers in hir visitor (#373 )
Dependencies
[deps] Weekly cargo update (#381 )
[deps] Weekly cargo update (#376 )
Bump to edition 2024, MSRV 1.88 (#375 )
[deps] Weekly cargo update (#372 )
[deps] Weekly cargo update (#365 )
Bump & remove mimalloc patch (#361 )
[deps] Weekly cargo update (#358 )
[deps] Weekly cargo update (#351 )
[deps] Weekly cargo update (#345 )
Documentation
Add CLAUDE.md for Claude Code guidance (#357 )
Recommend default-features=false in README.md
Features
Resolve ctor base args (#322 )
Flatten diag msg with style (#368 )
Add span visitor debug tool (#355 )
[lexer] Add Cursor::with_position (#348 )
Miscellaneous Tasks
Store SessionGlobals inside of Session (#379 )
[benches] Extract Session initialization to its own benchmark (#380 )
[meta] Add .git-blame-ignore-revs
Use Option in the AST (#374 )
Fn header spans (#371 )
Clippy
Misc cleanup, util methods (#367 )
Add span to TryCatchClause (#364 )
[parser] Move unescaping from lexer to parser (#360 )
Other
Add ds store (#362 )
Rm bench concurrency
Performance
Use inturn as the interner (#349 )
[lexer] Optimize is_id_continue_byte using bitwise operations (#347 )
Refactor
Remove redundant EoF check (#366 )
Install solar 0.1.5
Install prebuilt binaries via shell script
curl --proto ' =https' --tlsv1.2 -LsSf https://github.com/paradigmxyz/solar/releases/download/v0.1.5/solar-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c " irm https://github.com/paradigmxyz/solar/releases/download/v0.1.5/solar-installer.ps1 | iex"
Download solar 0.1.5
0.1.4
29 May 19:07
Compare
Sorry, something went wrong.
No results found
Release Notes
Minor bug fixes and lexer/parser performance improvements.
Bug Fixes
Windows eol lexing (#340 )
[parser] Allow EVM builtins to be present in yul paths (#336 )
[sema] Don't warn 3628 if no interface functions (#330 )
Try absolute paths in file resolver too (#323 )
Dependencies
[deps] Weekly cargo update (#333 )
[lexer] Rewrite prefixed literal lexing (#325 )
[deps] Weekly cargo update (#320 )
[deps] Weekly cargo update (#311 )
Documentation
Remove outdated section in CONTRIBUTING.md
Features
[sema] Implement receive function checks (#321 )
[sema] Display more types, add Ty::display (#328 )
Add span in FunctionHeader (#318 )
[ast] Add spans to blocks (#314 )
Typecheck for external type clashes (#312 )
Miscellaneous Tasks
[lexer] Cursor cleanup (#338 )
[benches] Add Optimism
[benches] Add Solady
[meta] Fix deny.toml
Other
Remove concurrency from bench
Performance
[lexer] Use slice::Iter instead of Chars in Cursor (#339 )
[lexer] Use memchr in block_comment (#337 )
[lexer] Add eat_until (#324 )
Install solar 0.1.4
Install prebuilt binaries via shell script
curl --proto ' =https' --tlsv1.2 -LsSf https://github.com/paradigmxyz/solar/releases/download/v0.1.4/solar-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c " irm https://github.com/paradigmxyz/solar/releases/download/v0.1.4/solar-installer.ps1 | iex"
Download solar 0.1.4
0.1.3
10 May 00:00
Compare
Sorry, something went wrong.
No results found
Release Notes
Bug Fixes
[parser] Clear docs if not consumed immediatly (#309 )
[sema] Declare selfdestruct builtin (#297 )
[sema] Correct variable declaration scopes (#300 )
[parser] Named call arguments are allowed to be empty (#283 )
Invalid underscores check (#281 )
[parser] Typo in concatenated string literals
[parser] Align number parsing with solc (#272 )
[parser] Correct token precedence (#271 )
[parser] Ignore comments in lookahead (#267 )
[ast] BinOpToken::Caret is BinOpKind::BitXor (#262 )
[parser] Remove RawTokenKind::UnknownPrefix (#260 )
[parser] Don't panic when parsing hex rationals (#256 )
Dependencies
[deps] Weekly cargo update (#306 )
[deps] Weekly cargo update (#286 )
[deps] Weekly cargo update (#278 )
Add update=none to submodules (#270 )
[deps] Weekly cargo update (#257 )
[deps] Bump breaking deps (#253 )
Documentation
[meta] Update RELEASE_CHECKLIST.md
Fix newtype_index! generated doc comments (#288 )
Update library usage in README
Update release checklist
Features
Update solidity to 0.8.30 (#307 )
[ast] Add helpers to Delimiter (#296 )
Allow constructing DiagId with a string (#295 )
Warn when payable fallback function found but no receive function (#170 )
--no-warnings (#293 )
Literal checks (#287 )
[parser] Accept non-checksummed addresses, to be validated later (#285 )
[ast] Store concatenated string literals (#266 )
[ast] Add span to CallArgs (#265 )
Pretty printing utilities (#264 )
Add CompilerStage::ParsedAndImported (#259 )
[parser] Use impl Into (#258 )
Miscellaneous Tasks
[meta] Update dist
[lexer] Add tokens.capacity log
Use astral-sh/cargo-dist fork (#292 )
Shorter Debug impls (#291 )
Rust 1.86 (#290 )
Update hint fns (#289 )
[benches] Add seaport (#282 )
Add linguist-vendored
[benches] Add tree-sitter (#280 )
Misc map cleanups (#277 )
[benches] Update and plot data (#274 )
Add some more non_exhaustive (#261 )
Tweak tracing events (#255 )
Sync sourcemap from upstream (#254 )
Add 'fetchRecurseSubmodules = false' to solidity submodule
Revert extra changelog
Performance
[lexer] Deal with bytes instead of chars in Cursor (#279 )
Add and default to using mimalloc (#276 )
[lexer] Filter out comments again (#269 )
[lexer] Double tokens capacity estimate (#268 )
Testing
Add a test for global storage param (#299 )
Add another try catch resolve test (#298 )
Install solar 0.1.3
Install prebuilt binaries via shell script
curl --proto ' =https' --tlsv1.2 -LsSf https://github.com/paradigmxyz/solar/releases/download/v0.1.3/solar-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c " irm https://github.com/paradigmxyz/solar/releases/download/v0.1.3/solar-installer.ps1 | iex"
Download solar 0.1.3
v0.1.2
07 Apr 16:31
Compare
Sorry, something went wrong.
No results found
Install solar 0.1.2
Install prebuilt binaries via shell script
curl --proto ' =https' --tlsv1.2 -LsSf https://github.com/paradigmxyz/solar/releases/download/v0.1.2/solar-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c " irm https://github.com/paradigmxyz/solar/releases/download/v0.1.2/solar-installer.ps1 | iex"
Download solar 0.1.2
0.1.1
05 Jan 23:44
Compare
Sorry, something went wrong.
No results found
Release Notes
Notable and breaking changes (!):
The parser now fully supports doc-comments in any position (#154 ). This was the last major feature needed to support the full Solidity grammar, as implemented in solc. The parser and AST are now considered feature-complete.
Fixed some bugs in the parser
Implemented some more syntax checks and validations
Library
(!) Return ControlFlow from AST visitor methods (#115 )
(!) Remove Pos trait (#137 )
(!) Re-export solar_ast::ast::* internal module (#141 )
Unify CLI and Session options (#176 )
Session::builder's individual config option methods have been removed in favor of using Args directly.
Install rayon pool in Session::enter (#123 )
Add Session::enter_parallel (#183 )
The session is now parallel by default; enter will behave the same, use enter_parallel to be able to make use of rayon inside of the closure.
Install solar 0.1.1
Install prebuilt binaries via shell script
curl --proto ' =https' --tlsv1.2 -LsSf https://github.com/paradigmxyz/solar/releases/download/v0.1.1/solar-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c " irm https://github.com/paradigmxyz/solar/releases/download/v0.1.1/solar-installer.ps1 | iex"
Download solar 0.1.1
What's Changed
New Contributors
Read more
0.1.0
08 Nov 04:41
Compare
Sorry, something went wrong.
No results found
Release Notes
Initial release. See the announcement blog post: https://www.paradigm.xyz/2024/11/solar
Install solar 0.1.0
Install prebuilt binaries via shell script
curl --proto ' =https' --tlsv1.2 -LsSf https://github.com/paradigmxyz/solar/releases/download/v0.1.0/solar-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c " irm https://github.com/paradigmxyz/solar/releases/download/v0.1.0/solar-installer.ps1 | iex"
Download solar 0.1.0