diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 839997c..7bb4893 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,23 +12,23 @@ jobs: name: clippy runs-on: ubuntu-latest env: - MLIR_SYS_180_PREFIX: /usr/lib/llvm-18/ - LLVM_SYS_180_PREFIX: /usr/lib/llvm-18/ - TABLEGEN_180_PREFIX: /usr/lib/llvm-18/ + MLIR_SYS_190_PREFIX: /usr/lib/llvm-19/ + LLVM_SYS_191_PREFIX: /usr/lib/llvm-19/ + TABLEGEN_190_PREFIX: /usr/lib/llvm-19/ steps: - uses: actions/checkout@v3 - - uses: dtolnay/rust-toolchain@1.78.0 + - uses: dtolnay/rust-toolchain@1.83.0 with: components: rustfmt, clippy - uses: Swatinem/rust-cache@v2 - name: add llvm deb repository uses: myci-actions/add-deb-repo@10 with: - repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main + repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main repo-name: llvm-repo keys-asc: https://apt.llvm.org/llvm-snapshot.gpg.key - name: Install LLVM - run: sudo apt-get install llvm-18 llvm-18-dev llvm-18-runtime clang-18 clang-tools-18 lld-18 libpolly-18-dev libmlir-18-dev mlir-18-tools + run: sudo apt-get install llvm-19 llvm-19-dev llvm-19-runtime clang-19 clang-tools-19 lld-19 libpolly-19-dev libmlir-19-dev mlir-19-tools - name: Clippy run: make check @@ -37,7 +37,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - uses: dtolnay/rust-toolchain@1.78.0 + - uses: dtolnay/rust-toolchain@1.83.0 with: components: rustfmt - run: cargo fmt --all -- --check @@ -46,9 +46,9 @@ jobs: name: test (linux, amd64) runs-on: ubuntu-latest env: - MLIR_SYS_180_PREFIX: /usr/lib/llvm-18/ - LLVM_SYS_180_PREFIX: /usr/lib/llvm-18/ - TABLEGEN_180_PREFIX: /usr/lib/llvm-18/ + MLIR_SYS_190_PREFIX: /usr/lib/llvm-19/ + LLVM_SYS_191_PREFIX: /usr/lib/llvm-19/ + TABLEGEN_190_PREFIX: /usr/lib/llvm-19/ RUST_LOG: debug steps: - uses: actions/checkout@v3 @@ -58,17 +58,17 @@ jobs: sudo rm -rf /usr/share/dotnet/ sudo rm -rf /usr/local/lib/android - name: Setup rust env - uses: dtolnay/rust-toolchain@1.78.0 + uses: dtolnay/rust-toolchain@1.83.0 - name: Retreive cached dependecies uses: Swatinem/rust-cache@v2 - name: add llvm deb repository uses: myci-actions/add-deb-repo@10 with: - repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main + repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main repo-name: llvm-repo keys-asc: https://apt.llvm.org/llvm-snapshot.gpg.key - name: Install LLVM - run: sudo apt-get install llvm-18 llvm-18-dev llvm-18-runtime clang-18 clang-tools-18 lld-18 libpolly-18-dev libmlir-18-dev mlir-18-tools + run: sudo apt-get install llvm-19 llvm-19-dev llvm-19-runtime clang-19 clang-tools-19 lld-19 libpolly-19-dev libmlir-19-dev mlir-19-tools - name: Install Link deps run: sudo apt-get install libc-dev build-essential - name: test @@ -79,17 +79,17 @@ jobs: env: CARGO_TERM_COLOR: always LIBRARY_PATH: /opt/homebrew/lib - MLIR_SYS_180_PREFIX: /opt/homebrew/opt/llvm@18 - LLVM_SYS_180_PREFIX: /opt/homebrew/opt/llvm@18 - TABLEGEN_180_PREFIX: /opt/homebrew/opt/llvm@18 + MLIR_SYS_190_PREFIX: /opt/homebrew/opt/llvm@19 + LLVM_SYS_191_PREFIX: /opt/homebrew/opt/llvm@19 + TABLEGEN_190_PREFIX: /opt/homebrew/opt/llvm@19 RUST_LOG: debug steps: - uses: actions/checkout@v4 - name: Rustup toolchain install - uses: dtolnay/rust-toolchain@1.78.0 + uses: dtolnay/rust-toolchain@1.83.0 - uses: homebrew/actions/setup-homebrew@master - name: install llvm - run: brew install llvm@18 + run: brew install llvm@19 - name: Run tests run: make test coverage: @@ -97,9 +97,9 @@ jobs: runs-on: ubuntu-latest env: CARGO_TERM_COLOR: always - MLIR_SYS_180_PREFIX: /usr/lib/llvm-18/ - LLVM_SYS_180_PREFIX: /usr/lib/llvm-18/ - TABLEGEN_180_PREFIX: /usr/lib/llvm-18/ + MLIR_SYS_190_PREFIX: /usr/lib/llvm-19/ + LLVM_SYS_191_PREFIX: /usr/lib/llvm-19/ + TABLEGEN_190_PREFIX: /usr/lib/llvm-19/ RUST_LOG: debug steps: - uses: actions/checkout@v3 @@ -109,17 +109,17 @@ jobs: sudo rm -rf /usr/share/dotnet/ sudo rm -rf /usr/local/lib/android - name: Setup rust env - uses: dtolnay/rust-toolchain@1.78.0 + uses: dtolnay/rust-toolchain@1.83.0 - name: Retreive cached dependecies uses: Swatinem/rust-cache@v2 - name: add llvm deb repository uses: myci-actions/add-deb-repo@10 with: - repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main + repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main repo-name: llvm-repo keys-asc: https://apt.llvm.org/llvm-snapshot.gpg.key - name: Install LLVM - run: sudo apt-get install llvm-18 llvm-18-dev llvm-18-runtime clang-18 clang-tools-18 lld-18 libpolly-18-dev libmlir-18-dev mlir-18-tools + run: sudo apt-get install llvm-19 llvm-19-dev llvm-19-runtime clang-19 clang-tools-19 lld-19 libpolly-19-dev libmlir-19-dev mlir-19-tools - name: Install Link deps run: sudo apt-get install libc-dev build-essential - name: Install cargo-llvm-cov @@ -136,9 +136,9 @@ jobs: name: Bench runs-on: ubuntu-latest env: - MLIR_SYS_180_PREFIX: /usr/lib/llvm-18/ - LLVM_SYS_180_PREFIX: /usr/lib/llvm-18/ - TABLEGEN_180_PREFIX: /usr/lib/llvm-18/ + MLIR_SYS_190_PREFIX: /usr/lib/llvm-19/ + LLVM_SYS_191_PREFIX: /usr/lib/llvm-19/ + TABLEGEN_190_PREFIX: /usr/lib/llvm-19/ steps: - uses: actions/checkout@v4 - name: free HDD space @@ -146,22 +146,22 @@ jobs: # deleting space sudo rm -rf /usr/share/dotnet/ sudo rm -rf /usr/local/lib/android - - uses: dtolnay/rust-toolchain@1.78.0 + - uses: dtolnay/rust-toolchain@1.83.0 with: components: clippy - uses: Swatinem/rust-cache@v2 - name: Setup rust env - uses: dtolnay/rust-toolchain@1.78.0 + uses: dtolnay/rust-toolchain@1.83.0 - name: Retreive cached dependecies uses: Swatinem/rust-cache@v2 - name: add llvm deb repository uses: myci-actions/add-deb-repo@11 with: - repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main + repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main repo-name: llvm-repo keys-asc: https://apt.llvm.org/llvm-snapshot.gpg.key - name: Install LLVM - run: sudo apt-get install llvm-18 llvm-18-dev llvm-18-runtime clang-18 clang-tools-18 lld-18 libpolly-18-dev libmlir-18-dev mlir-18-tools + run: sudo apt-get install llvm-19 llvm-19-dev llvm-19-runtime clang-19 clang-tools-19 lld-19 libpolly-19-dev libmlir-19-dev mlir-19-tools - name: Install Link deps run: sudo apt-get install libc-dev build-essential - name: Run bench diff --git a/Cargo.lock b/Cargo.lock index 8e3e6e7..abad13e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,12 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +version = 4 [[package]] name = "ahash" @@ -29,17 +23,11 @@ dependencies = [ "memchr", ] -[[package]] -name = "allocator-api2" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" - [[package]] name = "anstream" -version = "0.6.14" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -52,43 +40,49 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.7" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.3" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.3" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.86" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" + +[[package]] +name = "append-only-vec" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +checksum = "7992085ec035cfe96992dd31bfd495a2ebd31969bb95f624471cb6c0b349e571" [[package]] name = "arc-swap" @@ -98,9 +92,9 @@ checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" [[package]] name = "ariadne" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44055e597c674aef7cb903b2b9f6e4cba1277ed0d2d61dae7cd52d7ffa81f8e2" +checksum = "31beedec3ce83ae6da3a79592b3d8d7afd146a5b15bb9bb940279aced60faa89" dependencies = [ "concolor", "unicode-width", @@ -109,24 +103,18 @@ dependencies = [ [[package]] name = "ascii-canvas" -version = "3.0.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +checksum = "ef1e3e699d84ab1b0911a1010c5c106aa34ae89aeac103be5ce0c3859db1e891" dependencies = [ "term", ] [[package]] name = "autocfg" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" - -[[package]] -name = "base64" -version = "0.21.7" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "beef" @@ -135,51 +123,62 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" [[package]] -name = "bincode" -version = "1.3.3" +name = "bindgen" +version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "serde", + "bitflags 2.6.0", + "cexpr", + "clang-sys", + "itertools 0.12.1", + "lazy_static", + "lazycell", + "log", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash 1.1.0", + "shlex", + "syn", + "which", ] [[package]] name = "bindgen" -version = "0.69.4" +version = "0.71.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" +checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "cexpr", "clang-sys", - "itertools 0.12.1", - "lazy_static", - "lazycell", + "itertools 0.13.0", "log", "prettyplease", "proc-macro2", "quote", "regex", - "rustc-hash", + "rustc-hash 2.1.0", "shlex", - "syn 2.0.66", - "which", + "syn", ] [[package]] name = "bit-set" -version = "0.5.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ "bit-vec", ] [[package]] name = "bit-vec" -version = "0.6.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" [[package]] name = "bitflags" @@ -189,9 +188,43 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.5.0" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "block-buffer" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bon" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f265cdb2e8501f1c952749e78babe8f1937be92c98120e5f78fc72d634682bad" +dependencies = [ + "bon-macros", + "rustversion", +] + +[[package]] +name = "bon-macros" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38aa5c627cd7706490e5b003d685f8b9d69bc343b1a00b9fdd01e75fdf6827cf" +dependencies = [ + "darling", + "ident_case", + "prettyplease", + "proc-macro2", + "quote", + "rustversion", + "syn", +] [[package]] name = "bumpalo" @@ -199,15 +232,25 @@ version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +[[package]] +name = "caseless" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808dab3318747be122cb31d36de18d4d1c81277a76f8332a02b81a3d73463d7f" +dependencies = [ + "regex", + "unicode-normalization", +] + [[package]] name = "cc" -version = "1.0.98" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" +checksum = "27f657647bcff5394bf56c7317665bbf790a137a50eaaa5c6bfbb9e27a518f2d" dependencies = [ "jobserver", "libc", - "once_cell", + "shlex", ] [[package]] @@ -227,9 +270,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clang-sys" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a483f3cbf7cec2e153d424d0e92329d816becc6421389bd494375c6065921b9b" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" dependencies = [ "glob", "libc", @@ -238,9 +281,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.4" +version = "4.5.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" +checksum = "3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84" dependencies = [ "clap_builder", "clap_derive", @@ -248,60 +291,55 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.2" +version = "4.5.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" +checksum = "30582fc632330df2bd26877bde0c1f4470d57c582bbc070376afcd04d8cb4838" dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim 0.11.1", - "terminal_size", + "strsim", ] [[package]] name = "clap_derive" -version = "4.5.4" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", - "syn 2.0.66", + "syn", ] [[package]] name = "clap_lex" -version = "0.7.0" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "colorchoice" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "comrak" -version = "0.23.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5681b26a36dc46800a908f7d932672a4e82f74759419dd4018bf40658457d5" +checksum = "453dcb42e33f7b474d7e0db12e0b8d82802c88f35cf5a1d8c297d0dfcecb154f" dependencies = [ - "clap", - "derive_builder", + "bon", + "caseless", "entities", - "in-place", "memchr", "once_cell", "regex", - "shell-words", "slug", - "syntect", "typed-arena", "unicode_categories", - "xdg", ] [[package]] @@ -346,8 +384,8 @@ dependencies = [ "concrete_ast", "concrete_ir", "concrete_session", - "itertools 0.12.1", - "thiserror", + "itertools 0.13.0", + "thiserror 2.0.6", "tracing", ] @@ -359,11 +397,11 @@ dependencies = [ "concrete_check", "concrete_ir", "concrete_session", - "itertools 0.12.1", + "itertools 0.13.0", "llvm-sys", "melior", "mlir-sys", - "thiserror", + "thiserror 2.0.6", "tracing", ] @@ -382,7 +420,7 @@ dependencies = [ "concrete_session", "git2", "owo-colors", - "salsa-2022", + "salsa", "serde", "tempfile", "test-case", @@ -398,7 +436,7 @@ version = "0.1.0" dependencies = [ "concrete_ast", "educe", - "thiserror", + "thiserror 2.0.6", "tracing", ] @@ -408,11 +446,11 @@ version = "0.1.0" dependencies = [ "ariadne", "concrete_ast", - "itertools 0.12.1", + "itertools 0.13.0", "lalrpop", "lalrpop-util", "logos", - "salsa-2022", + "salsa", "tracing", "unescaper", ] @@ -434,12 +472,12 @@ dependencies = [ ] [[package]] -name = "crc32fast" -version = "1.4.2" +name = "cpufeatures" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" dependencies = [ - "cfg-if", + "libc", ] [[package]] @@ -499,16 +537,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] -name = "crunchy" -version = "0.2.2" +name = "crypto-common" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] [[package]] name = "darling" -version = "0.14.4" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ "darling_core", "darling_macro", @@ -516,82 +558,43 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.14.4" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", - "strsim 0.10.0", - "syn 1.0.109", + "strsim", + "syn", ] [[package]] name = "darling_macro" -version = "0.14.4" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 1.0.109", + "syn", ] [[package]] name = "dashmap" -version = "5.5.3" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" dependencies = [ "cfg-if", - "hashbrown", + "crossbeam-utils", + "hashbrown 0.14.5", "lock_api", "once_cell", "parking_lot_core", ] -[[package]] -name = "deranged" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" -dependencies = [ - "powerfmt", -] - -[[package]] -name = "derive_builder" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" -dependencies = [ - "derive_builder_macro", -] - -[[package]] -name = "derive_builder_core" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive_builder_macro" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" -dependencies = [ - "derive_builder_core", - "syn 1.0.109", -] - [[package]] name = "deunicode" version = "1.6.0" @@ -599,24 +602,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "339544cc9e2c4dc3fc7149fd630c5f22263a4fdf18a98afd0075784968b5cf00" [[package]] -name = "dirs-next" -version = "2.0.0" +name = "digest" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "cfg-if", - "dirs-sys-next", + "block-buffer", + "crypto-common", ] [[package]] -name = "dirs-sys-next" -version = "0.1.2" +name = "displaydoc" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ - "libc", - "redox_users", - "winapi", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -628,14 +631,14 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.66", + "syn", ] [[package]] name = "either" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "ena" @@ -669,7 +672,7 @@ checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn", ] [[package]] @@ -680,39 +683,19 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "eyre" -version = "0.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" -dependencies = [ - "indenter", - "once_cell", -] - -[[package]] -name = "fancy-regex" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2" -dependencies = [ - "bit-set", - "regex", + "windows-sys 0.59.0", ] [[package]] name = "fastrand" -version = "2.1.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fixedbitset" @@ -720,16 +703,6 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" -[[package]] -name = "flate2" -version = "1.0.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - [[package]] name = "fnv" version = "1.0.7" @@ -746,23 +719,22 @@ dependencies = [ ] [[package]] -name = "getrandom" -version = "0.2.15" +name = "generic-array" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ - "cfg-if", - "libc", - "wasi", + "typenum", + "version_check", ] [[package]] name = "git2" -version = "0.18.3" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "232e6a7bfe35766bf715e55a88b39a700596c0ccfd88cd3680b4cdb40d66ef70" +checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "libc", "libgit2-sys", "log", @@ -784,23 +756,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash", - "allocator-api2", ] [[package]] -name = "hashlink" -version = "0.8.4" +name = "hashbrown" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" -dependencies = [ - "hashbrown", -] +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" [[package]] -name = "heck" -version = "0.4.1" +name = "hashlink" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" +dependencies = [ + "hashbrown 0.14.5", +] [[package]] name = "heck" @@ -810,9 +781,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.3.9" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" [[package]] name = "home" @@ -823,6 +794,124 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -831,44 +920,40 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "idna_adapter", + "smallvec", + "utf8_iter", ] [[package]] -name = "in-place" -version = "0.2.0" +name = "idna_adapter" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cdb69f3adfd5f493210cece799f4620417bf9965bc1536c22ae0e29ba27a8c0" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" dependencies = [ - "tempfile", + "icu_normalizer", + "icu_properties", ] -[[package]] -name = "indenter" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" - [[package]] name = "indexmap" -version = "2.2.6" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.15.2", ] [[package]] name = "is-terminal" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" +checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" dependencies = [ "hermit-abi", "libc", @@ -877,79 +962,83 @@ dependencies = [ [[package]] name = "is_terminal_polyfill" -version = "1.70.0" +version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itertools" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" dependencies = [ "either", ] [[package]] name = "itertools" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" dependencies = [ "either", ] [[package]] -name = "itoa" -version = "1.0.11" +name = "jobserver" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] [[package]] -name = "jobserver" -version = "0.1.31" +name = "keccak" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" dependencies = [ - "libc", + "cpufeatures", ] [[package]] name = "lalrpop" -version = "0.20.2" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" +checksum = "06093b57658c723a21da679530e061a8c25340fa5a6f98e313b542268c7e2a1f" dependencies = [ "ascii-canvas", "bit-set", "ena", - "itertools 0.11.0", + "itertools 0.13.0", "lalrpop-util", "petgraph", "pico-args", "regex", - "regex-syntax 0.8.3", + "regex-syntax 0.8.5", + "sha3", "string_cache", "term", - "tiny-keccak", "unicode-xid", "walkdir", ] [[package]] name = "lalrpop-util" -version = "0.20.2" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" +checksum = "feee752d43abd0f4807a921958ab4131f692a44d4d599733d4419c5d586176ce" dependencies = [ - "regex-automata 0.4.6", + "regex-automata 0.4.9", + "rustversion", ] [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "lazycell" @@ -959,15 +1048,15 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.155" +version = "0.2.168" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "5aaeb2981e0606ca11d79718f8bb01164f1d6ed75080182d3abf017e6d244b6d" [[package]] name = "libgit2-sys" -version = "0.16.2+1.7.2" +version = "0.17.0+1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8" +checksum = "10472326a8a6477c3c20a64547b0059e4b0d086869eee31e6d7da728a8eb7224" dependencies = [ "cc", "libc", @@ -979,22 +1068,12 @@ dependencies = [ [[package]] name = "libloading" -version = "0.8.3" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if", - "windows-targets 0.52.5", -] - -[[package]] -name = "libredox" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" -dependencies = [ - "bitflags 2.5.0", - "libc", + "windows-targets 0.52.6", ] [[package]] @@ -1013,9 +1092,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.18" +version = "1.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e" +checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" dependencies = [ "cc", "libc", @@ -1023,29 +1102,23 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "line-wrap" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd1bc4d24ad230d21fb898d1116b1801d7adfc449d42026475862ab48b11e70e" - -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - [[package]] name = "linux-raw-sys" version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +[[package]] +name = "litemap" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" + [[package]] name = "llvm-sys" -version = "180.0.0" +version = "191.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "778fa5fa02e32728e718f11eec147e6f134137399ab02fd2c13d32476337affa" +checksum = "893cddf1adf0354b93411e413553dd4daf5c43195d73f1acfa1e394bdd371456" dependencies = [ "anyhow", "cc", @@ -1067,39 +1140,40 @@ dependencies = [ [[package]] name = "log" -version = "0.4.21" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "logos" -version = "0.14.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "161971eb88a0da7ae0c333e1063467c5b5727e7fb6b710b8db4814eade3a42e8" +checksum = "ab6f536c1af4c7cc81edf73da1f8029896e7e1e16a219ef09b184e76a296f3db" dependencies = [ "logos-derive", ] [[package]] name = "logos-codegen" -version = "0.14.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e31badd9de5131fdf4921f6473d457e3dd85b11b7f091ceb50e4df7c3eeb12a" +checksum = "189bbfd0b61330abea797e5e9276408f2edbe4f822d7ad08685d67419aafb34e" dependencies = [ "beef", "fnv", "lazy_static", "proc-macro2", "quote", - "regex-syntax 0.8.3", - "syn 2.0.66", + "regex-syntax 0.8.5", + "rustc_version", + "syn", ] [[package]] name = "logos-derive" -version = "0.14.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c2a69b3eb68d5bd595107c9ee58d7e07fe2bb5e360cc85b0f084dedac80de0a" +checksum = "ebfe8e1a19049ddbfccbd14ac834b215e11b85b90bab0c2dba7c7b92fb5d5cba" dependencies = [ "logos-codegen", ] @@ -1115,38 +1189,35 @@ dependencies = [ [[package]] name = "melior" -version = "0.18.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99339d2a34c0b7eba15d4c36085c3fa0414fc331e17c17f1676862f2ebf90eb1" +checksum = "9ee1cff4225a41563d0517e274eea56d6e07d40004184dda898ef08f421c1546" dependencies = [ - "dashmap", "melior-macro", "mlir-sys", - "once_cell", ] [[package]] name = "melior-macro" -version = "0.11.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8253d8a5059e2d6b8321c3cf5f086d37a3f70a8edd57714dfa20d4d018f4e1" +checksum = "f4c74bfe1b3e796b3dec1b4a178d813398171658a0f55a3ccb963cc9212022d1" dependencies = [ "comrak", "convert_case", - "once_cell", "proc-macro2", "quote", "regex", - "syn 2.0.66", + "syn", "tblgen-alt", "unindent", ] [[package]] name = "memchr" -version = "2.7.2" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "minimal-lexical" @@ -1154,22 +1225,13 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" -[[package]] -name = "miniz_oxide" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" -dependencies = [ - "adler", -] - [[package]] name = "mlir-sys" -version = "0.2.2" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1b5806a63bc959cd5c4e5db8cadd20e40045d41969d325132748db8af11b7f" +checksum = "21b598f9c0fa7a453eeaa9fe419ae93759c94a66eb6f8a496d195ba596ae3c4d" dependencies = [ - "bindgen", + "bindgen 0.71.1", ] [[package]] @@ -1198,39 +1260,11 @@ dependencies = [ "winapi", ] -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - [[package]] name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "onig" -version = "6.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f" -dependencies = [ - "bitflags 1.3.2", - "libc", - "once_cell", - "onig_sys", -] - -[[package]] -name = "onig_sys" -version = "69.8.1" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7" -dependencies = [ - "cc", - "pkg-config", -] +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "openssl-probe" @@ -1240,9 +1274,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.102" +version = "0.9.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" +checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" dependencies = [ "cc", "libc", @@ -1258,9 +1292,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "owo-colors" -version = "4.0.0" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caff54706df99d2a78a5a4e3455ff45448d81ef1bb63c22cd14052ca0e993a3f" +checksum = "fb37767f6569cd834a413442455e0f066d0d522de8630436e2a1761d9726ba56" [[package]] name = "parking_lot" @@ -1282,7 +1316,7 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -1324,35 +1358,15 @@ checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" - -[[package]] -name = "plist" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9d34169e64b3c7a80c8621a48adaf44e0cf62c78a9b25dd9dd35f1881a17cf9" -dependencies = [ - "base64", - "indexmap", - "line-wrap", - "quick-xml", - "serde", - "time", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "precomputed-hash" @@ -1362,71 +1376,71 @@ checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" [[package]] name = "prettyplease" -version = "0.2.20" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ "proc-macro2", - "syn 2.0.66", + "syn", ] [[package]] name = "proc-macro2" -version = "1.0.84" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec96c6a92621310b51366f1e28d05ef11489516e93be030060e5fc12024a49d6" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] [[package]] -name = "quick-xml" -version = "0.31.0" +name = "quote" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ - "memchr", + "proc-macro2", ] [[package]] -name = "quote" -version = "1.0.36" +name = "rayon" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ - "proc-macro2", + "either", + "rayon-core", ] [[package]] -name = "redox_syscall" -version = "0.5.1" +name = "rayon-core" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ - "bitflags 2.5.0", + "crossbeam-deque", + "crossbeam-utils", ] [[package]] -name = "redox_users" -version = "0.4.5" +name = "redox_syscall" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ - "getrandom", - "libredox", - "thiserror", + "bitflags 2.6.0", ] [[package]] name = "regex" -version = "1.10.4" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.6", - "regex-syntax 0.8.3", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", ] [[package]] @@ -1440,20 +1454,20 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.6" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.3", + "regex-syntax 0.8.5", ] [[package]] name = "regex-lite" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b661b2f27137bdbc16f00eda72866a92bb28af1753ffbd56744fb6e2e9cd8e" +checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" [[package]] name = "regex-syntax" @@ -1463,9 +1477,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "rustc-hash" @@ -1473,59 +1487,76 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc-hash" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + [[package]] name = "rustix" -version = "0.38.34" +version = "0.38.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "rustversion" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" - -[[package]] -name = "ryu" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" [[package]] -name = "salsa-2022" -version = "0.1.0" -source = "git+https://github.com/salsa-rs/salsa.git#05b4e3ebdcdc47730cdd359e7e97fb2470527279" +name = "salsa" +version = "0.18.0" +source = "git+https://github.com/salsa-rs/salsa.git?rev=c2a6d6238efa5f4642e8f0d2b5097f06b5f46dd0#c2a6d6238efa5f4642e8f0d2b5097f06b5f46dd0" dependencies = [ + "append-only-vec", "arc-swap", "crossbeam", - "crossbeam-utils", "dashmap", "hashlink", "indexmap", - "log", + "lazy_static", "parking_lot", - "rustc-hash", - "salsa-2022-macros", + "rayon", + "rustc-hash 2.1.0", + "salsa-macro-rules", + "salsa-macros", "smallvec", + "tracing", ] [[package]] -name = "salsa-2022-macros" +name = "salsa-macro-rules" version = "0.1.0" -source = "git+https://github.com/salsa-rs/salsa.git#05b4e3ebdcdc47730cdd359e7e97fb2470527279" +source = "git+https://github.com/salsa-rs/salsa.git?rev=c2a6d6238efa5f4642e8f0d2b5097f06b5f46dd0#c2a6d6238efa5f4642e8f0d2b5097f06b5f46dd0" + +[[package]] +name = "salsa-macros" +version = "0.18.0" +source = "git+https://github.com/salsa-rs/salsa.git?rev=c2a6d6238efa5f4642e8f0d2b5097f06b5f46dd0#c2a6d6238efa5f4642e8f0d2b5097f06b5f46dd0" dependencies = [ - "eyre", - "heck 0.4.1", + "heck", "proc-macro2", "quote", - "syn 1.0.109", + "syn", + "synstructure", ] [[package]] @@ -1551,42 +1582,41 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.203" +version = "1.0.216" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" +checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.203" +version = "1.0.216" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn", ] [[package]] -name = "serde_json" -version = "1.0.117" +name = "serde_spanned" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ - "itoa", - "ryu", "serde", ] [[package]] -name = "serde_spanned" -version = "0.6.6" +name = "sha3" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ - "serde", + "digest", + "keccak", ] [[package]] @@ -1598,12 +1628,6 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "shell-words" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" - [[package]] name = "shlex" version = "1.3.0" @@ -1618,9 +1642,9 @@ checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" [[package]] name = "slug" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bd94acec9c8da640005f8e135a39fc0372e74535e6b368b7a04b875f784c8c4" +checksum = "882a80f72ee45de3cc9a5afeb2da0331d58df69e4e7d8eeb5d3c7784ae67e724" dependencies = [ "deunicode", "wasm-bindgen", @@ -1632,6 +1656,12 @@ version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "string_cache" version = "0.8.7" @@ -1645,12 +1675,6 @@ dependencies = [ "precomputed-hash", ] -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - [[package]] name = "strsim" version = "0.11.1" @@ -1659,9 +1683,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "syn" -version = "1.0.109" +version = "2.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" dependencies = [ "proc-macro2", "quote", @@ -1669,82 +1693,49 @@ dependencies = [ ] [[package]] -name = "syn" -version = "2.0.66" +name = "synstructure" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "unicode-ident", -] - -[[package]] -name = "syntect" -version = "5.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "874dcfa363995604333cf947ae9f751ca3af4522c60886774c4963943b4746b1" -dependencies = [ - "bincode", - "bitflags 1.3.2", - "fancy-regex", - "flate2", - "fnv", - "once_cell", - "onig", - "plist", - "regex-syntax 0.8.3", - "serde", - "serde_derive", - "serde_json", - "thiserror", - "walkdir", - "yaml-rust", + "syn", ] [[package]] name = "tblgen-alt" -version = "0.3.3" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8128e684b18b518f32cd15779659c4a8dbb54ef6a36b532f7e3520f27dd01c95" +checksum = "0ecbc9175dd38627cd01d546e7b41c9a115e5773f4c98f64e2185c81ec5f45ab" dependencies = [ - "bindgen", + "bindgen 0.69.5", "cc", "paste", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "tempfile" -version = "3.10.1" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if", "fastrand", + "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "term" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" -dependencies = [ - "dirs-next", - "rustversion", - "winapi", -] - -[[package]] -name = "terminal_size" -version = "0.3.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +checksum = "4df4175de05129f31b80458c6df371a15e7fc3fd367272e6bf938e5c351c7ea0" dependencies = [ - "rustix", - "windows-sys 0.48.0", + "home", + "windows-sys 0.52.0", ] [[package]] @@ -1765,7 +1756,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.66", + "syn", ] [[package]] @@ -1776,85 +1767,75 @@ checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn", "test-case-core", ] [[package]] name = "thiserror" -version = "1.0.61" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.69", ] [[package]] -name = "thiserror-impl" -version = "1.0.61" +name = "thiserror" +version = "2.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +checksum = "8fec2a1820ebd077e2b90c4df007bebf344cd394098a13c563957d0afc83ea47" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", + "thiserror-impl 2.0.6", ] [[package]] -name = "thread_local" -version = "1.1.8" +name = "thiserror-impl" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ - "cfg-if", - "once_cell", + "proc-macro2", + "quote", + "syn", ] [[package]] -name = "time" -version = "0.3.36" +name = "thiserror-impl" +version = "2.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "d65750cab40f4ff1929fb1ba509e9914eb756131cef4210da8d5d700d26f6312" dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", + "proc-macro2", + "quote", + "syn", ] [[package]] -name = "time-core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" - -[[package]] -name = "time-macros" -version = "0.2.18" +name = "thread_local" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ - "num-conv", - "time-core", + "cfg-if", + "once_cell", ] [[package]] -name = "tiny-keccak" -version = "2.0.2" +name = "tinystr" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" dependencies = [ - "crunchy", + "displaydoc", + "zerovec", ] [[package]] name = "tinyvec" -version = "1.6.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" dependencies = [ "tinyvec_macros", ] @@ -1867,9 +1848,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "toml" -version = "0.8.13" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" dependencies = [ "serde", "serde_spanned", @@ -1879,18 +1860,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.6" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.22.13" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ "indexmap", "serde", @@ -1901,9 +1882,9 @@ dependencies = [ [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -1912,20 +1893,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", "valuable", @@ -1944,9 +1925,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ "matchers", "nu-ansi-term", @@ -1967,52 +1948,52 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" [[package]] -name = "unescaper" -version = "0.1.4" +name = "typenum" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0adf6ad32eb5b3cadff915f7b770faaac8f7ff0476633aa29eb0d9584d889d34" -dependencies = [ - "thiserror", -] +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] -name = "unicode-bidi" -version = "0.3.15" +name = "unescaper" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "c878a167baa8afd137494101a688ef8c67125089ff2249284bd2b5f9bfedb815" +dependencies = [ + "thiserror 1.0.69", +] [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-normalization" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.1.12" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] name = "unicode-xid" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "unicode_categories" @@ -2028,20 +2009,32 @@ checksum = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce" [[package]] name = "url" -version = "2.5.0" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", "percent-encoding", ] +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "valuable" @@ -2057,9 +2050,9 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "walkdir" @@ -2071,42 +2064,36 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.66", + "syn", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2114,22 +2101,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" [[package]] name = "which" @@ -2161,11 +2148,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2185,20 +2172,20 @@ dependencies = [ [[package]] name = "windows-sys" -version = "0.48.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] name = "windows-sys" -version = "0.52.0" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -2218,33 +2205,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" -dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -2255,15 +2227,9 @@ checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -2273,15 +2239,9 @@ checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -2291,21 +2251,15 @@ checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -2315,15 +2269,9 @@ checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -2333,15 +2281,9 @@ checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" @@ -2351,15 +2293,9 @@ checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -2369,39 +2305,30 @@ checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.8" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" dependencies = [ "memchr", ] [[package]] -name = "xdg" -version = "2.5.2" +name = "write16" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" [[package]] -name = "yaml-rust" -version = "0.4.5" +name = "writeable" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" -dependencies = [ - "linked-hash-map", -] +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] name = "yansi" @@ -2409,22 +2336,89 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + [[package]] name = "zerocopy" -version = "0.7.34" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.34" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerofrom" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn", ] diff --git a/Cargo.toml b/Cargo.toml index d626f11..4e0545a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,4 +16,4 @@ opt-level = 3 opt-level = 1 [workspace.dependencies] -tracing = "0.1.40" +tracing = "0.1.41" diff --git a/Makefile b/Makefile index 894579c..4ee6e02 100644 --- a/Makefile +++ b/Makefile @@ -13,16 +13,16 @@ check-deps: ifeq (, $(shell which cargo)) $(error "The cargo command could not be found in your PATH, please install Rust: https://www.rust-lang.org/tools/install") endif -ifndef LLVM_SYS_180_PREFIX - $(error Could not find a suitable LLVM 18 toolchain, please set LLVM_SYS_180_PREFIX env pointing to the LLVM 18 dir) +ifndef LLVM_SYS_191_PREFIX + $(error Could not find a suitable LLVM 19 toolchain, please set LLVM_SYS_190_PREFIX env pointing to the LLVM 19 dir) endif -ifndef MLIR_SYS_180_PREFIX - $(error Could not find a suitable LLVM 18 toolchain (mlir), please set MLIR_SYS_180_PREFIX env pointing to the LLVM 18 dir) +ifndef MLIR_SYS_190_PREFIX + $(error Could not find a suitable LLVM 19 toolchain (mlir), please set MLIR_SYS_190_PREFIX env pointing to the LLVM 19 dir) endif -ifndef TABLEGEN_180_PREFIX - $(error Could not find a suitable LLVM 18 toolchain (tablegen), please set TABLEGEN_180_PREFIX env pointing to the LLVM 18 dir) +ifndef TABLEGEN_190_PREFIX + $(error Could not find a suitable LLVM 19 toolchain (tablegen), please set TABLEGEN_190_PREFIX env pointing to the LLVM 19 dir) endif - @echo "[make] LLVM is correctly set at $(MLIR_SYS_180_PREFIX)." + @echo "[make] LLVM is correctly set at $(MLIR_SYS_190_PREFIX)." .PHONY: build build: check-deps diff --git a/README.md b/README.md index 1c5c32a..4343765 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Make sure you have installed the dependencies: - git - Rust -- LLVM 18 with MLIR enabled +- LLVM 19 with MLIR enabled - libgit2 If building LLVM from source, you'll need additional tools: @@ -37,10 +37,10 @@ If building LLVM from source, you'll need additional tools: Setup the following env vars: ```bash -# For Debian/Ubuntu using the repository, the path will be /usr/lib/llvm-18 -export MLIR_SYS_180_PREFIX=/usr/lib/llvm-18 -export LLVM_SYS_180_PREFIX=/usr/lib/llvm-18 -export TABLEGEN_180_PREFIX=/usr/lib/llvm-18 +# For Debian/Ubuntu using the repository, the path will be /usr/lib/llvm-19 +export MLIR_SYS_190_PREFIX=/usr/lib/llvm-19 +export LLVM_SYS_191_PREFIX=/usr/lib/llvm-19 +export TABLEGEN_190_PREFIX=/usr/lib/llvm-19 ``` If you installed llvm with brew, source the `env-macos.sh` script to set up the needed env vars: diff --git a/crates/concrete_check/Cargo.toml b/crates/concrete_check/Cargo.toml index a5a20c2..425d220 100644 --- a/crates/concrete_check/Cargo.toml +++ b/crates/concrete_check/Cargo.toml @@ -6,11 +6,10 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -ariadne = { version = "0.4.0", features = ["auto-color"] } +ariadne = { version = "0.5.0", features = ["auto-color"] } concrete_ast = { version = "0.1.0", path = "../concrete_ast" } concrete_ir = { version = "0.1.0", path = "../concrete_ir" } concrete_session = { version = "0.1.0", path = "../concrete_session" } -itertools = "0.12.0" -thiserror = "1.0.56" +itertools = "0.13.0" +thiserror = "2.0.6" tracing.workspace = true - diff --git a/crates/concrete_check/src/lib.rs b/crates/concrete_check/src/lib.rs index 7554c15..231e12e 100644 --- a/crates/concrete_check/src/lib.rs +++ b/crates/concrete_check/src/lib.rs @@ -19,9 +19,8 @@ pub fn lowering_error_to_report( module, program_id, } => { - let offset = span.from; let path = session.file_paths[program_id].display().to_string(); - Report::build(ReportKind::Error, path.clone(), offset) + Report::build(ReportKind::Error, (path.clone(), span.from..span.to)) .with_code("ModuleNotFound") .with_label( Label::new((path, span.into())) @@ -37,7 +36,7 @@ pub fn lowering_error_to_report( program_id, } => { let path = session.file_paths[program_id].display().to_string(); - Report::build(ReportKind::Error, path.clone(), span.from) + Report::build(ReportKind::Error, (path.clone(), span.from..span.to)) .with_code("FunctionNotFound") .with_label( Label::new((path, span.into())) @@ -52,7 +51,7 @@ pub fn lowering_error_to_report( program_id, } => { let path = session.file_paths[program_id].display().to_string(); - Report::build(ReportKind::Error, path.clone(), span.from) + Report::build(ReportKind::Error, (path.clone(), span.from..span.to)) .with_code("StructFieldNotFound") .with_label( Label::new((path, span.into())) @@ -68,8 +67,8 @@ pub fn lowering_error_to_report( program_id, } => { let path = session.file_paths[program_id].display().to_string(); - let offset = symbol.span.from; - Report::build(ReportKind::Error, path.clone(), offset) + let span = symbol.span; + Report::build(ReportKind::Error, (path.clone(), span.from..span.to)) .with_code("ImportNotFound") .with_label( Label::new((path.clone(), module_span.into())) @@ -108,7 +107,7 @@ pub fn lowering_error_to_report( ); } - Report::build(ReportKind::Error, path.clone(), span.from) + Report::build(ReportKind::Error, (path.clone(), span.from..span.to)) .with_code("BorrowNotMutable") .with_labels(labels) .finish() @@ -119,7 +118,7 @@ pub fn lowering_error_to_report( program_id, } => { let path = session.file_paths[program_id].display().to_string(); - Report::build(ReportKind::Error, path.clone(), span.from) + Report::build(ReportKind::Error, (path.clone(), span.from..span.to)) .with_code("UnrecognizedType") .with_label( Label::new((path, span.into())) @@ -135,7 +134,7 @@ pub fn lowering_error_to_report( program_id, } => { let path = session.file_paths[program_id].display().to_string(); - Report::build(ReportKind::Error, path.clone(), span.from) + Report::build(ReportKind::Error, (path.clone(), span.from..span.to)) .with_code("E_ID") .with_label( Label::new((path, span.into())) @@ -151,7 +150,7 @@ pub fn lowering_error_to_report( program_id, } => { let path = session.file_paths[program_id].display().to_string(); - Report::build(ReportKind::Error, path.clone(), span.from) + Report::build(ReportKind::Error, (path.clone(), span.from..span.to)) .with_code("NotYetImplemented") .with_label( Label::new((path, span.into())) @@ -182,7 +181,7 @@ pub fn lowering_error_to_report( ); } - Report::build(ReportKind::Error, path.clone(), span.from) + Report::build(ReportKind::Error, (path.clone(), span.from..span.to)) .with_code("UnexpectedType") .with_labels(labels) .with_message(format!("expected type {}.", expected.kind)) @@ -194,7 +193,7 @@ pub fn lowering_error_to_report( program_id, } => { let path = session.file_paths[program_id].display().to_string(); - Report::build(ReportKind::Error, path.clone(), span.from) + Report::build(ReportKind::Error, (path.clone(), span.from..span.to)) .with_code("UseOfUndeclaredVariable") .with_label( Label::new((path, span.into())) @@ -209,7 +208,7 @@ pub fn lowering_error_to_report( program_id, } => { let path = session.file_paths[program_id].display().to_string(); - Report::build(ReportKind::Error, path.clone(), span.from) + Report::build(ReportKind::Error, (path.clone(), span.from..span.to)) .with_code("ExternFnWithBody") .with_label( Label::new((path, span.into())) @@ -220,7 +219,7 @@ pub fn lowering_error_to_report( } LoweringError::InternalError(msg, program_id) => { let path = session.file_paths[program_id].display().to_string(); - Report::build(ReportKind::Error, path.clone(), 0) + Report::build(ReportKind::Error, (path.clone(), 0..0)) .with_code("InternalError") .with_message(msg) .finish() @@ -232,7 +231,7 @@ pub fn lowering_error_to_report( program_id, } => { let path = session.file_paths[program_id].display().to_string(); - Report::build(ReportKind::Error, path.clone(), span.from) + Report::build(ReportKind::Error, (path.clone(), span.from..span.to)) .with_code("CallParamCountMismatch") .with_label( Label::new((path, span.into())) @@ -251,7 +250,7 @@ pub fn lowering_error_to_report( program_id, } => { let path = session.file_paths[program_id].display().to_string(); - let mut report = Report::build(ReportKind::Error, path.clone(), span.from) + let mut report = Report::build(ReportKind::Error, (path.clone(), span.from..span.to)) .with_code("NotMutable") .with_label( Label::new((path.clone(), span.into())) @@ -274,7 +273,7 @@ pub fn lowering_error_to_report( program_id, } => { let path = session.file_paths[program_id].display().to_string(); - let mut report = Report::build(ReportKind::Error, path.clone(), span.from) + let mut report = Report::build(ReportKind::Error, (path.clone(), span.from..span.to)) .with_code("CantTakeMutableBorrow") .with_label( Label::new((path.clone(), span.into())) diff --git a/crates/concrete_check/src/linearity_check/errors.rs b/crates/concrete_check/src/linearity_check/errors.rs index d72968d..dee0d27 100644 --- a/crates/concrete_check/src/linearity_check/errors.rs +++ b/crates/concrete_check/src/linearity_check/errors.rs @@ -32,6 +32,6 @@ pub enum LinearityError { StateInconsistency { message: String }, #[error("Not implemented: {message}")] NotImplemented { message: String }, - #[error("Unhandled statement type {r#type}")] + #[error("Unhandled statement type {}", r#type)] UnhandledStatementType { r#type: String }, } diff --git a/crates/concrete_codegen_mlir/Cargo.toml b/crates/concrete_codegen_mlir/Cargo.toml index 1ba0c32..91b0daf 100644 --- a/crates/concrete_codegen_mlir/Cargo.toml +++ b/crates/concrete_codegen_mlir/Cargo.toml @@ -9,12 +9,13 @@ edition = "2021" concrete_ir = { version = "0.1.0", path = "../concrete_ir" } concrete_check = { version = "0.1.0", path = "../concrete_check" } concrete_session = { path = "../concrete_session"} -itertools = "0.12.0" -llvm-sys = "180.0.0" -melior = { version = "0.18.1", features = ["ods-dialects"] } -mlir-sys = "0.2.2" +itertools = "0.13.0" tracing = { workspace = true } -thiserror = "1.0.57" +thiserror = "2.0.6" + +melior = { version = "0.20.0", features = ["ods-dialects"] } +llvm-sys = "191.0.0" +mlir-sys = "0.4.1" [build-dependencies] -cc = "1.0.83" +cc = "1.2.3" diff --git a/crates/concrete_codegen_mlir/src/codegen.rs b/crates/concrete_codegen_mlir/src/codegen.rs index 1fb511c..f019814 100644 --- a/crates/concrete_codegen_mlir/src/codegen.rs +++ b/crates/concrete_codegen_mlir/src/codegen.rs @@ -46,7 +46,7 @@ struct ModuleCodegenCtx<'a> { pub module_id: DefId, } -impl<'a> ModuleCodegenCtx<'a> { +impl ModuleCodegenCtx<'_> { /// Gets the module IR body. pub fn get_module_body(&self) -> &ModuleBody { self.ctx @@ -118,7 +118,7 @@ struct FunctionCodegenCtx<'a> { pub function_id: DefId, } -impl<'a> FunctionCodegenCtx<'a> { +impl FunctionCodegenCtx<'_> { /// Gets the function IR body. pub fn get_fn_body(&self) -> &FnBody { self.module_ctx diff --git a/crates/concrete_driver/Cargo.toml b/crates/concrete_driver/Cargo.toml index 4873cb4..916fd52 100644 --- a/crates/concrete_driver/Cargo.toml +++ b/crates/concrete_driver/Cargo.toml @@ -6,24 +6,24 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -clap = { version = "4.4.16", features = ["derive"] } +clap = { version = "4.5.23", features = ["derive"] } tracing = { workspace = true } -tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } +tracing-subscriber = { version = "0.3.19", features = ["env-filter"] } concrete_ast = { path = "../concrete_ast"} concrete_parser = { path = "../concrete_parser"} concrete_session = { path = "../concrete_session"} concrete_codegen_mlir = { path = "../concrete_codegen_mlir"} -salsa = { git = "https://github.com/salsa-rs/salsa.git", package = "salsa-2022" } -ariadne = { version = "0.4.0", features = ["auto-color"] } +salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "c2a6d6238efa5f4642e8f0d2b5097f06b5f46dd0"} +ariadne = { version = "0.5.0", features = ["auto-color"] } concrete_ir = { version = "0.1.0", path = "../concrete_ir" } concrete_check = { version = "0.1.0", path = "../concrete_check" } walkdir = "2.5.0" anyhow = "1" -toml = "0.8.10" -git2 = "0.18.2" -owo-colors = "4.0.0" -serde = { version = "1.0.197", features = ["derive"] } +toml = "0.8.19" +git2 = "0.19.0" +owo-colors = "4.1.0" +serde = { version = "1.0.216", features = ["derive"] } [dev-dependencies] -tempfile = "3.9.0" +tempfile = "3.14.0" test-case = "3.3.1" diff --git a/crates/concrete_driver/src/db.rs b/crates/concrete_driver/src/db.rs index 8713b82..7e2e167 100644 --- a/crates/concrete_driver/src/db.rs +++ b/crates/concrete_driver/src/db.rs @@ -1,29 +1,15 @@ -#[salsa::jar(db = Db)] -pub struct Jar( - // TODO: Add stuff. -); +pub use salsa::Database as Db; -pub trait Db -where - Self: salsa::DbWithJar + salsa::DbWithJar, -{ -} - -impl Db for T where T: ?Sized + salsa::DbWithJar + salsa::DbWithJar -{} - -#[derive(Default)] -#[salsa::db(Jar, concrete_parser::db::Jar)] -pub struct Database { +#[salsa::db] +#[derive(Default, Clone)] +pub struct DatabaseImpl { storage: salsa::Storage, } -impl salsa::Database for Database {} - -impl salsa::ParallelDatabase for Database { - fn snapshot(&self) -> salsa::Snapshot { - salsa::Snapshot::new(Self { - storage: self.storage.snapshot(), - }) +#[salsa::db] +impl salsa::Database for DatabaseImpl { + fn salsa_event(&self, event: &dyn Fn() -> salsa::Event) { + let event = event(); + tracing::debug!("Salsa Db Event: {event:?}"); } } diff --git a/crates/concrete_driver/src/lib.rs b/crates/concrete_driver/src/lib.rs index 76ac10e..2f7b339 100644 --- a/crates/concrete_driver/src/lib.rs +++ b/crates/concrete_driver/src/lib.rs @@ -6,13 +6,12 @@ use clap::Args; use clap::{Parser, Subcommand}; use concrete_ast::Program; use concrete_ir::lowering::lower_programs; -use concrete_parser::{error::Diagnostics, ProgramSource}; +use concrete_parser::ProgramSource; use concrete_session::{ config::{DebugInfo, OptLevel}, Session, }; use config::{Package, Profile}; -use db::Database; use git2::{IndexAddOption, Repository}; use owo_colors::OwoColorize; use std::io::Read; @@ -499,7 +498,7 @@ fn handle_build( pub fn parse_file( modules: &mut Vec<(PathBuf, String, Program)>, mut path: PathBuf, - db: &Database, + db: &dyn crate::db::Db, ) -> Result<()> { if path.is_dir() { path = path.join("mod.ed"); @@ -511,13 +510,14 @@ pub fn parse_file( let mut program = match concrete_parser::parse_ast(db, source) { Some(x) => x, None => { - Diagnostics::dump( - db, - source, - &concrete_parser::parse_ast::accumulated::( - db, source, - ), - ); + let diagnostics = concrete_parser::parse_ast::accumulated::< + concrete_parser::error::Diagnostics, + >(db, source); + + for diag in &diagnostics { + diag.render(db, source); + } + std::process::exit(1); } }; @@ -541,7 +541,7 @@ pub fn compile(args: &CompilerArgs) -> Result { let start_time = Instant::now(); let mut programs = Vec::new(); - let db = crate::db::Database::default(); + let db = crate::db::DatabaseImpl::default(); parse_file(&mut programs, args.input.clone(), &db)?; let session = Session { diff --git a/crates/concrete_driver/tests/checks.rs b/crates/concrete_driver/tests/checks.rs index 41a9b4a..11c428f 100644 --- a/crates/concrete_driver/tests/checks.rs +++ b/crates/concrete_driver/tests/checks.rs @@ -1,7 +1,7 @@ use std::path::PathBuf; use concrete_ir::lowering::{errors::LoweringError, lower_programs}; -use concrete_parser::{error::Diagnostics, ProgramSource}; +use concrete_parser::ProgramSource; #[test] fn module_not_found() { @@ -64,18 +64,14 @@ fn unrecorgnized_type() { } pub fn check_invalid_program(source: &str, name: &str) -> LoweringError { - let db = concrete_driver::db::Database::default(); + let db = concrete_driver::db::DatabaseImpl::default(); let source = ProgramSource::new(&db, source.to_string(), name.to_string()); let mut program = match concrete_parser::parse_ast(&db, source) { Some(x) => x, None => { - Diagnostics::dump( - &db, - source, - &concrete_parser::parse_ast::accumulated::( - &db, source, - ), + concrete_parser::parse_ast::accumulated::( + &db, source, ); panic!("error parsing ast"); } diff --git a/crates/concrete_driver/tests/common.rs b/crates/concrete_driver/tests/common.rs index 2290e5c..03bee75 100644 --- a/crates/concrete_driver/tests/common.rs +++ b/crates/concrete_driver/tests/common.rs @@ -8,7 +8,7 @@ use std::{ use ariadne::Source; use concrete_driver::linker::{link_binary, link_shared_lib}; use concrete_ir::lowering::lower_programs; -use concrete_parser::{error::Diagnostics, ProgramSource}; +use concrete_parser::ProgramSource; use concrete_session::{ config::{DebugInfo, OptLevel}, Session, @@ -28,7 +28,9 @@ impl std::error::Error for TestError {} #[derive(Debug)] pub struct CompileResult { + #[allow(unused)] pub folder: TempDir, + #[allow(unused)] pub object_file: PathBuf, pub binary_file: PathBuf, } @@ -39,18 +41,14 @@ pub fn compile_program( library: bool, optlevel: OptLevel, ) -> Result> { - let db = concrete_driver::db::Database::default(); + let db = concrete_driver::db::DatabaseImpl::default(); let source = ProgramSource::new(&db, source.to_string(), name.to_string()); tracing::debug!("source code:\n{}", source.input(&db)); let mut program = match concrete_parser::parse_ast(&db, source) { Some(x) => x, None => { - Diagnostics::dump( - &db, - source, - &concrete_parser::parse_ast::accumulated::( - &db, source, - ), + concrete_parser::parse_ast::accumulated::( + &db, source, ); return Err(Box::new(TestError("error compiling".into()))); } diff --git a/crates/concrete_ir/Cargo.toml b/crates/concrete_ir/Cargo.toml index e8e4180..42f1a14 100644 --- a/crates/concrete_ir/Cargo.toml +++ b/crates/concrete_ir/Cargo.toml @@ -7,6 +7,6 @@ edition = "2021" [dependencies] concrete_ast = { version = "0.1.0", path = "../concrete_ast" } -thiserror = "1.0.57" +thiserror = "2.0.6" tracing.workspace = true educe = "0.5.11" diff --git a/crates/concrete_parser/Cargo.toml b/crates/concrete_parser/Cargo.toml index 49701d2..9171cb4 100644 --- a/crates/concrete_parser/Cargo.toml +++ b/crates/concrete_parser/Cargo.toml @@ -6,14 +6,14 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -lalrpop-util = { version = "0.20.0", features = ["unicode"] } -logos = "0.14.0" +lalrpop-util = { version = "0.22.0", features = ["unicode"] } +logos = "0.15.0" tracing = { workspace = true } concrete_ast = { path = "../concrete_ast"} -salsa = { git = "https://github.com/salsa-rs/salsa.git", package = "salsa-2022" } -ariadne = { version = "0.4.0", features = ["auto-color"] } -itertools = "0.12.0" -unescaper = "0.1.3" +salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "c2a6d6238efa5f4642e8f0d2b5097f06b5f46dd0"} +ariadne = { version = "0.5.0", features = ["auto-color"] } +itertools = "0.13.0" +unescaper = "0.1.5" [build-dependencies] -lalrpop = "0.20.0" +lalrpop = "0.22.0" diff --git a/crates/concrete_parser/src/db.rs b/crates/concrete_parser/src/db.rs index ce58542..7e2e167 100644 --- a/crates/concrete_parser/src/db.rs +++ b/crates/concrete_parser/src/db.rs @@ -1,14 +1,15 @@ -#[salsa::jar(db = Db)] -pub struct Jar( - crate::error::Diagnostics, - crate::parse_ast, - crate::ProgramSource, -); +pub use salsa::Database as Db; -pub trait Db -where - Self: salsa::DbWithJar, -{ +#[salsa::db] +#[derive(Default, Clone)] +pub struct DatabaseImpl { + storage: salsa::Storage, } -impl Db for T where T: ?Sized + salsa::DbWithJar {} +#[salsa::db] +impl salsa::Database for DatabaseImpl { + fn salsa_event(&self, event: &dyn Fn() -> salsa::Event) { + let event = event(); + tracing::debug!("Salsa Db Event: {event:?}"); + } +} diff --git a/crates/concrete_parser/src/error.rs b/crates/concrete_parser/src/error.rs index 2d2665e..c19bd5f 100644 --- a/crates/concrete_parser/src/error.rs +++ b/crates/concrete_parser/src/error.rs @@ -1,5 +1,4 @@ use crate::{ - db::Db, lexer::LexicalError, tokens::{self, Token}, ProgramSource, @@ -10,108 +9,109 @@ use lalrpop_util::ParseError; pub type Error = ParseError; -#[salsa::accumulator(jar = crate::db::Jar)] -pub struct Diagnostics(Error); +#[salsa::accumulator] +pub struct Diagnostics(pub Error); impl Diagnostics { - pub fn dump(db: &dyn Db, source: ProgramSource, errors: &[Error]) { + pub fn render<'db>(&self, db: &'db dyn crate::Db, source: ProgramSource<'db>) { let path = source.path(db); let source = source.input(db); + let error = &self.0; - for error in errors { - let mut colors = ColorGenerator::new(); - let report = match error { - ParseError::InvalidToken { location } => { - let loc = *location; - Report::build(ReportKind::Error, path, loc) - .with_code("P1") - .with_label( - Label::new((path, loc..(loc + 1))) - .with_color(colors.next()) - .with_message("invalid token"), - ) - .with_label( - Label::new((path, (loc.saturating_sub(10))..(loc + 10))) - .with_message("There was a problem parsing part of this code."), - ) - .finish() - } - ParseError::UnrecognizedEof { location, expected } => { - let loc = *location; - Report::build(ReportKind::Error, path, loc) - .with_code("P2") - .with_label( - Label::new((path, loc..(loc + 1))) - .with_message("unrecognized eof") - .with_color(colors.next()), - ) - .with_note(format!( - "expected one of the following: {}", - expected.iter().join(", ") - )) - .with_label( - Label::new((path, (loc.saturating_sub(10))..(loc + 10))) - .with_message("There was a problem parsing part of this code."), - ) - .finish() - } - ParseError::UnrecognizedToken { token, expected } => { - Report::build(ReportKind::Error, path, token.0) - .with_code(3) - .with_label( - Label::new((path, token.0..token.2)) - .with_message(format!("unrecognized token {:?}", token.1)) - .with_color(colors.next()), - ) - .with_note(format!( - "expected one of the following: {}", - expected.iter().join(", ") - )) - .with_label( - Label::new((path, (token.0.saturating_sub(10))..(token.2 + 10))) - .with_message("There was a problem parsing part of this code."), - ) - .finish() - } - ParseError::ExtraToken { token } => Report::build(ReportKind::Error, path, token.0) + let mut colors = ColorGenerator::new(); + let report = match error { + ParseError::InvalidToken { location } => { + let loc = *location; + Report::build(ReportKind::Error, (path, loc..loc)) + .with_code("P1") + .with_label( + Label::new((path, loc..(loc + 1))) + .with_color(colors.next()) + .with_message("invalid token"), + ) + .with_label( + Label::new((path, (loc.saturating_sub(10))..(loc + 10))) + .with_message("There was a problem parsing part of this code."), + ) + .finish() + } + ParseError::UnrecognizedEof { location, expected } => { + let loc = *location; + Report::build(ReportKind::Error, (path, loc..loc)) + .with_code("P2") + .with_label( + Label::new((path, loc..(loc + 1))) + .with_message("unrecognized eof") + .with_color(colors.next()), + ) + .with_note(format!( + "expected one of the following: {}", + expected.iter().join(", ") + )) + .with_label( + Label::new((path, (loc.saturating_sub(10))..(loc + 10))) + .with_message("There was a problem parsing part of this code."), + ) + .finish() + } + ParseError::UnrecognizedToken { token, expected } => { + Report::build(ReportKind::Error, (path, token.0..token.2)) + .with_code(3) + .with_label( + Label::new((path, token.0..token.2)) + .with_message(format!("unrecognized token {:?}", token.1)) + .with_color(colors.next()), + ) + .with_note(format!( + "expected one of the following: {}", + expected.iter().join(", ") + )) + .with_label( + Label::new((path, (token.0.saturating_sub(10))..(token.2 + 10))) + .with_message("There was a problem parsing part of this code."), + ) + .finish() + } + ParseError::ExtraToken { token } => { + Report::build(ReportKind::Error, (path, token.0..token.2)) .with_code("P3") .with_message("Extra token") .with_label( Label::new((path, token.0..token.2)) .with_message(format!("unexpected extra token {:?}", token.1)), ) - .finish(), - ParseError::User { error } => match error { - LexicalError::InvalidToken(err, range) => match err { - tokens::LexingError::NumberParseError => { - Report::build(ReportKind::Error, path, range.start) - .with_code(4) - .with_message("Error parsing literal number") - .with_label( - Label::new((path, range.start..range.end)) - .with_message("error parsing literal number") - .with_color(colors.next()), - ) - .finish() - } - tokens::LexingError::Other => { - Report::build(ReportKind::Error, path, range.start) - .with_code(4) - .with_message("Other error") - .with_label( - Label::new((path, range.start..range.end)) - .with_message("other error") - .with_color(colors.next()), - ) - .finish() - } - }, + .finish() + } + ParseError::User { error } => match error { + LexicalError::InvalidToken(err, range) => match err { + tokens::LexingError::NumberParseError => { + Report::build(ReportKind::Error, (path, range.clone())) + .with_code(4) + .with_message("Error parsing literal number") + .with_label( + Label::new((path, range.clone())) + .with_message("error parsing literal number") + .with_color(colors.next()), + ) + .finish() + } + tokens::LexingError::Other => { + Report::build(ReportKind::Error, (path, range.clone())) + .with_code(4) + .with_message("Other error") + .with_label( + Label::new((path, range.clone())) + .with_message("other error") + .with_color(colors.next()), + ) + .finish() + } }, - }; + }, + }; - report - .eprint((path, Source::from(source))) - .expect("failed to print to stderr"); - } + report + .eprint((path, Source::from(source))) + .expect("failed to print to stderr"); } } diff --git a/crates/concrete_parser/src/lexer.rs b/crates/concrete_parser/src/lexer.rs index 8d4eda6..4205eda 100644 --- a/crates/concrete_parser/src/lexer.rs +++ b/crates/concrete_parser/src/lexer.rs @@ -35,7 +35,7 @@ impl<'input> Lexer<'input> { } } -impl<'input> Iterator for Lexer<'input> { +impl Iterator for Lexer<'_> { type Item = Spanned; fn next(&mut self) -> Option { diff --git a/crates/concrete_parser/src/lib.rs b/crates/concrete_parser/src/lib.rs index 5acfc43..02d00a9 100644 --- a/crates/concrete_parser/src/lib.rs +++ b/crates/concrete_parser/src/lib.rs @@ -1,10 +1,13 @@ use concrete_ast::Program; +use error::Diagnostics; use lexer::Lexer; +use salsa::Accumulator; pub mod db; pub mod error; mod lexer; pub mod tokens; +pub use db::Db; pub mod grammar { #![allow(dead_code, unused_imports, unused_variables)] @@ -15,8 +18,8 @@ pub mod grammar { lalrpop_mod!(pub grammar); } -#[salsa::interned(jar = crate::db::Jar)] -pub struct ProgramSource { +#[salsa::interned] +pub struct ProgramSource<'db> { #[return_ref] pub input: String, #[return_ref] @@ -24,15 +27,15 @@ pub struct ProgramSource { } // Todo: better error handling -#[salsa::tracked(jar = crate::db::Jar)] -pub fn parse_ast(db: &dyn crate::db::Db, source: ProgramSource) -> Option { +#[salsa::tracked] +pub fn parse_ast<'db>(db: &'db dyn crate::db::Db, source: ProgramSource<'db>) -> Option { let lexer = Lexer::new(source.input(db)); let parser = grammar::ProgramParser::new(); match parser.parse(lexer) { Ok(ast) => Some(ast), Err(e) => { - crate::error::Diagnostics::push(db, e); + Diagnostics(e).accumulate(db); None } } diff --git a/crates/concrete_session/Cargo.toml b/crates/concrete_session/Cargo.toml index f69684e..67dac7d 100644 --- a/crates/concrete_session/Cargo.toml +++ b/crates/concrete_session/Cargo.toml @@ -6,4 +6,4 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -ariadne = "0.4.0" +ariadne = "0.5.0" diff --git a/scripts/env-macos.sh b/scripts/env-macos.sh index 4a678e3..4cbd774 100644 --- a/scripts/env-macos.sh +++ b/scripts/env-macos.sh @@ -3,10 +3,6 @@ # This script is only useful on macOS using brew. # It sets the LLVM environment variables. -MLIR_SYS_180_PREFIX="$(brew --prefix llvm@18)" -LLVM_SYS_180_PREFIX="$(brew --prefix llvm@18)" -TABLEGEN_180_PREFIX="$(brew --prefix llvm@18)" - -export MLIR_SYS_180_PREFIX -export LLVM_SYS_180_PREFIX -export TABLEGEN_180_PREFIX +export MLIR_SYS_190_PREFIX="$(brew --prefix llvm@19)" +export LLVM_SYS_191_PREFIX="$(brew --prefix llvm@19)" +export TABLEGEN_190_PREFIX="$(brew --prefix llvm@19)"