From 8bfc867a620cfc7134f8e374b60a1f54a643d4ac Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Dec 2025 02:39:40 +0000 Subject: [PATCH 1/4] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20deps:=20Update=20depen?= =?UTF-8?q?dencies=20(non-major)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.lock | 39 ++++++++++++++++----------------------- Cargo.toml | 2 +- 2 files changed, 17 insertions(+), 24 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7c02baa..43f4a6a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -64,9 +64,9 @@ checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d" [[package]] name = "clap" -version = "4.5.51" +version = "4.5.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5" +checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8" dependencies = [ "clap_builder", "clap_derive", @@ -74,9 +74,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.51" +version = "4.5.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a" +checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00" dependencies = [ "anstream", "anstyle", @@ -108,12 +108,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" -[[package]] -name = "either" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" - [[package]] name = "heck" version = "0.5.0" @@ -122,11 +116,10 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "inkwell" -version = "0.6.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e67349bd7578d4afebbe15eaa642a80b884e8623db74b1716611b131feb1deef" +checksum = "39457e8611219cf690f862a470575f5c06862910d03ea3c3b187ad7abc44b4e2" dependencies = [ - "either", "inkwell_internals", "libc", "llvm-sys", @@ -136,9 +129,9 @@ dependencies = [ [[package]] name = "inkwell_internals" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f365c8de536236cfdebd0ba2130de22acefed18b1fb99c32783b3840aec5fb46" +checksum = "ad9a7dd586b00f2b20e0b9ae3c6faa351fbfd56d15d63bbce35b13bece682eda" dependencies = [ "proc-macro2", "quote", @@ -206,9 +199,9 @@ checksum = "132dca9b868d927b35b5dd728167b2dee150eb1ad686008fc71ccb298b776fca" [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" dependencies = [ "unicode-ident", ] @@ -251,9 +244,9 @@ checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" dependencies = [ "proc-macro2", "quote", @@ -262,18 +255,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.56" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.56" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index f311db8..03e2136 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,5 +11,5 @@ jit = ["inkwell"] [dependencies] clap = { version = "4.5.38", features = ["derive"] } -inkwell = { version = "0.6.0", features = ["llvm18-1"], optional = true } +inkwell = { version = "0.7.0", features = ["llvm18-1"], optional = true } peg = "0.8.5" From 9097fa7287fe1a5c0305111e0d4a4ac43c0eb369 Mon Sep 17 00:00:00 2001 From: SigureMo Date: Tue, 16 Dec 2025 00:51:40 +0800 Subject: [PATCH 2/4] fix breaking changes --- Cargo.toml | 2 +- src/visitor/jit.rs | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 03e2136..e0df140 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,5 +11,5 @@ jit = ["inkwell"] [dependencies] clap = { version = "4.5.38", features = ["derive"] } -inkwell = { version = "0.7.0", features = ["llvm18-1"], optional = true } +inkwell = { version = "0.7.1", features = ["llvm18-1"], optional = true } peg = "0.8.5" diff --git a/src/visitor/jit.rs b/src/visitor/jit.rs index 58f5dca..0f8b99d 100644 --- a/src/visitor/jit.rs +++ b/src/visitor/jit.rs @@ -76,8 +76,7 @@ impl<'ctx> CalculatorJIT<'ctx> { func: FuncLLVM<'ctx, FloatValue<'ctx>>, ) -> Result<(), SymbolError> { let ret_type = self.double(); - let args_types = std::iter::repeat(ret_type) - .take(argc) + let args_types = std::iter::repeat_n(ret_type, argc) .map(|f| f.into()) .collect::>(); let args_types = args_types.as_slice(); @@ -124,7 +123,7 @@ impl<'ctx> CalculatorJIT<'ctx> { Ok(()) } - pub fn compile(&mut self, ast: &Expr) -> Option> { + pub fn compile(&mut self, ast: &Expr) -> Option> { let sig = self.double().fn_type(&[], false); let func = self.module.add_function(CALC_ENTRYPOINT, sig, None); let basic_block = self.context.append_basic_block(func, "entry"); @@ -202,8 +201,7 @@ impl<'ctx> Visitor> for CalculatorJIT<'ctx> { .build_call(func, argsv.as_slice(), "tmp") .expect("Unable to call function") .try_as_basic_value() - .left() - .unwrap(); + .unwrap_basic(); ret_val.into_float_value() } From 0f4518ff09573a99f48ccd7cdfa77232c7b9c5c0 Mon Sep 17 00:00:00 2001 From: SigureMo Date: Tue, 16 Dec 2025 00:54:30 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20deps:=20use=20llvm=202?= =?UTF-8?q?2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/rcalc-test.yml | 2 +- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/rcalc-test.yml b/.github/workflows/rcalc-test.yml index 262a736..678ee4e 100644 --- a/.github/workflows/rcalc-test.yml +++ b/.github/workflows/rcalc-test.yml @@ -9,7 +9,7 @@ on: env: CARGO_TERM_COLOR: always - LLVM_VERSION: 18.1 + LLVM_VERSION: 21.1 jobs: test-rcalc: diff --git a/Cargo.lock b/Cargo.lock index 43f4a6a..545b9ca 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -152,9 +152,9 @@ checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c" [[package]] name = "llvm-sys" -version = "181.2.0" +version = "211.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d320f9d2723c97d4b78f9190a61ed25cc7cfbe456668c08e6e7dd8e50ceb8500" +checksum = "108b3ad2b2eaf2a561fc74196273b20e3436e4a688b8b44e250d83974dc1b2e2" dependencies = [ "anyhow", "cc", diff --git a/Cargo.toml b/Cargo.toml index e0df140..2312ef8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,5 +11,5 @@ jit = ["inkwell"] [dependencies] clap = { version = "4.5.38", features = ["derive"] } -inkwell = { version = "0.7.1", features = ["llvm18-1"], optional = true } +inkwell = { version = "0.7.1", features = ["llvm21-1"], optional = true } peg = "0.8.5" From dfff18e9fd11a0e99dfefc473038ed54303f9d25 Mon Sep 17 00:00:00 2001 From: SigureMo Date: Tue, 16 Dec 2025 00:59:12 +0800 Subject: [PATCH 4/4] update llvm install command --- .github/workflows/rcalc-test.yml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/.github/workflows/rcalc-test.yml b/.github/workflows/rcalc-test.yml index 678ee4e..900b0b6 100644 --- a/.github/workflows/rcalc-test.yml +++ b/.github/workflows/rcalc-test.yml @@ -10,6 +10,7 @@ on: env: CARGO_TERM_COLOR: always LLVM_VERSION: 21.1 + LLVM_VERSION_MAJOR: 21 jobs: test-rcalc: @@ -22,9 +23,18 @@ jobs: - name: Update rust toolchain run: rustup update - name: Install LLVM and Clang - uses: KyleMayes/install-llvm-action@v2 - with: - version: ${{ env.LLVM_VERSION }} + run: | + sudo apt install --no-install-recommends -y lsb-release wget software-properties-common gnupg + wget https://apt.llvm.org/llvm.sh + chmod +x llvm.sh + sudo ./llvm.sh ${{ env.LLVM_VERSION_MAJOR }} + sudo apt-get update + sudo apt install --no-install-recommends -y libllvm${{ env.LLVM_VERSION_MAJOR }} \ + llvm-${{ env.LLVM_VERSION_MAJOR }} \ + llvm-${{ env.LLVM_VERSION_MAJOR }}-dev \ + llvm-${{ env.LLVM_VERSION_MAJOR }}-runtime \ + libpolly-${{ env.LLVM_VERSION_MAJOR }}-dev + sudo update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-${{ env.LLVM_VERSION_MAJOR }} 10 - name: Run llvm-config run: llvm-config --version --bindir --libdir - name: Cache cargo build