Skip to content

0.1.8

Latest

Choose a tag to compare

@github-actions github-actions released this 01 Oct 18:09
v0.1.8
d284850

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

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