From 80ce478a251b6c7067b25a89e05a87cb0b26319b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ralph=20K=C3=BCpper?= Date: Mon, 10 Aug 2026 20:18:52 +0200 Subject: [PATCH 1/3] test(hir): pin the for-of desugar counter's literal kind at both emission sites (#7766 follow-up) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #7778 made both for-of desugar sites mint the synthetic __idx_* counter as Expr::Integer(0) — the literal kind collect_integer_let_ids seeds on, and thus the difference between a counter that gets a canonical i32 slot and one that is invisible to every i32-counter loop optimization. Nothing pinned it: the desugar is correct either way and prints identical output, so a revert to Number(0.0) would silently un-optimize every for-of loop with no test failing. Verdict tests on the lowered HIR, one per emission site (module-init and function-body have drifted independently before), both sabotage-verified. --- .../7783-forof-counter-verdict-tests.md | 16 ++ .../src/lower/for_of_counter_tests.rs | 153 ++++++++++++++++++ crates/perry-hir/src/lower/mod.rs | 2 + 3 files changed, 171 insertions(+) create mode 100644 changelog.d/7783-forof-counter-verdict-tests.md create mode 100644 crates/perry-hir/src/lower/for_of_counter_tests.rs diff --git a/changelog.d/7783-forof-counter-verdict-tests.md b/changelog.d/7783-forof-counter-verdict-tests.md new file mode 100644 index 0000000000..eed12553f0 --- /dev/null +++ b/changelog.d/7783-forof-counter-verdict-tests.md @@ -0,0 +1,16 @@ +**test: pin the `for…of` desugar counter's literal kind at both emission sites (#7766 follow-up).** + +#7778 changed both `for…of` desugar sites to mint the synthetic `__idx_*` +counter as `Expr::Integer(0)` instead of `Expr::Number(0.0)` — the literal +KIND `collect_integer_let_ids` seeds on, and therefore the difference between +a counter that gets a canonical i32 slot and one that is structurally +invisible to every i32-counter loop optimization (the element-shape clone's +matcher hard-requires `ctx.i32_counter_slots`). + +Nothing pinned it. The desugar is correct either way and prints identical +output, so a future edit back to `Number(0.0)` would silently un-optimize +every `for…of` loop with no test failing — CLAUDE.md's fourth way a gate can +be unable to fail. These are verdict tests on the lowered HIR, one per +emission site (module-init and function-body, which have drifted +independently before), and both are sabotage-verified: reverting either site +to `Number(0.0)` reds them. diff --git a/crates/perry-hir/src/lower/for_of_counter_tests.rs b/crates/perry-hir/src/lower/for_of_counter_tests.rs new file mode 100644 index 0000000000..478b95ab98 --- /dev/null +++ b/crates/perry-hir/src/lower/for_of_counter_tests.rs @@ -0,0 +1,153 @@ +//! #7766: the `for…of` desugar's synthetic counter must be seeded as an +//! INTEGER literal. +//! +//! The counter is integral by construction (zero init, `++` only), but +//! `collectors/i32_locals.rs::collect_integer_let_ids` seeds on the literal +//! KIND, not on provable integrality. A `Number(0.0)` init therefore kept +//! every desugared `for…of` counter out of `integer_locals`, so it never got +//! a canonical i32 slot — and every i32-counter loop optimization silently +//! declined the `for…of` spelling of a loop it served in indexed form. The +//! element-shape versioned clone (#7771) is the case that made this visible: +//! its matcher hard-requires `ctx.i32_counter_slots`, so it could never fire +//! for `for…of` at all. +//! +//! This is a VERDICT test, not a behaviour test: the desugar is correct +//! either way and prints the same numbers, so only the literal kind +//! distinguishes "optimizable" from "structurally excluded" — CLAUDE.md's +//! fourth way a gate can be unable to fail. Behaviour is covered by +//! `test-files/test_gap_repsel_element_shape_param_binding.ts`, byte-compared +//! against node. + +#![cfg(test)] + +use crate::{Expr, Module, Stmt}; +use perry_diagnostics::SourceCache; + +fn lower(src: &str) -> Module { + let src = src.to_string(); + std::thread::Builder::new() + .stack_size(32 * 1024 * 1024) + .spawn(move || { + let mut cache = SourceCache::new(); + let parsed = + perry_parser::parse_typescript_with_cache(&src, "for_of_counter.ts", &mut cache) + .expect("parse should succeed"); + crate::lower_module(&parsed.module, "test", "for_of_counter.ts") + .expect("lower should succeed") + }) + .expect("spawn lower thread") + .join() + .expect("lower thread panicked") +} + +/// Init expressions of every `Stmt::Let` named `__idx_*` anywhere in `stmts` +/// — the synthetic counters the for-of / for-in desugars mint. +fn synthetic_counter_inits(stmts: &[Stmt]) -> Vec { + fn walk(stmts: &[Stmt], out: &mut Vec) { + for s in stmts { + if let Stmt::Let { + name, + init: Some(init), + .. + } = s + { + if name.starts_with("__idx_") { + out.push(init.clone()); + } + } + match s { + Stmt::If { + then_branch, + else_branch, + .. + } => { + walk(then_branch, out); + if let Some(eb) = else_branch { + walk(eb, out); + } + } + Stmt::While { body, .. } | Stmt::DoWhile { body, .. } => walk(body, out), + Stmt::For { init, body, .. } => { + if let Some(init) = init { + walk(std::slice::from_ref(init.as_ref()), out); + } + walk(body, out); + } + Stmt::Try { + body, + catch, + finally, + } => { + walk(body, out); + if let Some(c) = catch { + walk(&c.body, out); + } + if let Some(f) = finally { + walk(f, out); + } + } + Stmt::Switch { cases, .. } => { + for c in cases { + walk(&c.body, out); + } + } + Stmt::Labeled { body, .. } => walk(std::slice::from_ref(body.as_ref()), out), + _ => {} + } + } + } + let mut out = Vec::new(); + walk(stmts, &mut out); + out +} + +#[test] +fn module_level_for_of_counter_is_an_integer_literal() { + let m = lower( + "class P { constructor(public x: number) {} }\n\ + const a: P[] = [new P(1)];\n\ + let s = 0;\n\ + for (const p of a) { s += p.x; }\n\ + console.log(s);\n", + ); + let inits = synthetic_counter_inits(&m.init); + assert!( + !inits.is_empty(), + "the for-of desugar should mint a `__idx_*` counter; found none" + ); + assert!( + inits.iter().all(|e| matches!(e, Expr::Integer(0))), + "every desugared for-of counter must be seeded `Integer(0)` so \ + `collect_integer_let_ids` can see it; got {inits:?}" + ); +} + +#[test] +fn function_body_for_of_counter_is_an_integer_literal() { + // The function-body desugar is a SECOND emission site + // (`lower_decl/body_stmt.rs`). It drifted independently before, and the + // parameter case #7766 is about lives here, not in module init. + let m = lower( + "class P { constructor(public x: number) {} }\n\ + function total(ps: P[]): number {\n\ + let s = 0;\n\ + for (const p of ps) { s += p.x; }\n\ + return s;\n\ + }\n\ + console.log(total([new P(1)]));\n", + ); + let f = m + .functions + .iter() + .find(|f| f.name == "total") + .expect("`total` should be lowered"); + let inits = synthetic_counter_inits(&f.body); + assert!( + !inits.is_empty(), + "the function-body for-of desugar should mint a `__idx_*` counter" + ); + assert!( + inits.iter().all(|e| matches!(e, Expr::Integer(0))), + "every desugared for-of counter must be seeded `Integer(0)`; got {inits:?}" + ); +} diff --git a/crates/perry-hir/src/lower/mod.rs b/crates/perry-hir/src/lower/mod.rs index 7d002c868c..d566ebb13a 100644 --- a/crates/perry-hir/src/lower/mod.rs +++ b/crates/perry-hir/src/lower/mod.rs @@ -131,4 +131,6 @@ pub(crate) use crate::lower_types::*; #[cfg(test)] mod collection_view_tests; #[cfg(test)] +mod for_of_counter_tests; +#[cfg(test)] mod tests; From 5d64e854c70ee3d20ecd4f9eee7412797723aef1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ralph=20K=C3=BCpper?= Date: Mon, 10 Aug 2026 22:32:19 +0200 Subject: [PATCH 2/3] docs: key the changelog fragment to its own PR number Claude-Session: https://claude.ai/code/session_01Y1QZ5wUP9gRSwpiweT4Wix --- ...unter-verdict-tests.md => 7790-forof-counter-verdict-tests.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename changelog.d/{7783-forof-counter-verdict-tests.md => 7790-forof-counter-verdict-tests.md} (100%) diff --git a/changelog.d/7783-forof-counter-verdict-tests.md b/changelog.d/7790-forof-counter-verdict-tests.md similarity index 100% rename from changelog.d/7783-forof-counter-verdict-tests.md rename to changelog.d/7790-forof-counter-verdict-tests.md From 2f62c3eb4b43da33e2d2163b00f9245f226cb42a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ralph=20K=C3=BCpper?= Date: Mon, 10 Aug 2026 22:35:59 +0200 Subject: [PATCH 3/3] chore: bump version to 0.5.1459 Claude-Session: https://claude.ai/code/session_01Y1QZ5wUP9gRSwpiweT4Wix --- CLAUDE.md | 2 +- Cargo.lock | 152 ++++++++++++++++++++++++++--------------------------- Cargo.toml | 2 +- 3 files changed, 78 insertions(+), 78 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 71c13e0f0d..b8a0eb7e85 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -8,7 +8,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co Perry is a native TypeScript compiler written in Rust that compiles TypeScript source code directly to native executables. It uses SWC for TypeScript parsing and LLVM for code generation. -**Current Version:** 0.5.1458 +**Current Version:** 0.5.1459 ## TypeScript Parity Status diff --git a/Cargo.lock b/Cargo.lock index 3e6652d7ed..0ac0c6c6e9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5547,7 +5547,7 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "perry" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "anyhow", "base64", @@ -5607,14 +5607,14 @@ dependencies = [ [[package]] name = "perry-api-manifest" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "serde", ] [[package]] name = "perry-audio-miniaudio" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "cc", "libc", @@ -5622,7 +5622,7 @@ dependencies = [ [[package]] name = "perry-codegen" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "anyhow", "inkwell", @@ -5639,7 +5639,7 @@ dependencies = [ [[package]] name = "perry-codegen-arkts" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "anyhow", "perry-hir", @@ -5647,7 +5647,7 @@ dependencies = [ [[package]] name = "perry-codegen-glance" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "anyhow", "perry-hir", @@ -5655,7 +5655,7 @@ dependencies = [ [[package]] name = "perry-codegen-js" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "anyhow", "perry-dispatch", @@ -5664,7 +5664,7 @@ dependencies = [ [[package]] name = "perry-codegen-swiftui" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "anyhow", "perry-hir", @@ -5672,7 +5672,7 @@ dependencies = [ [[package]] name = "perry-codegen-wasm" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "anyhow", "base64", @@ -5684,7 +5684,7 @@ dependencies = [ [[package]] name = "perry-codegen-wear-tiles" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "anyhow", "perry-hir", @@ -5692,7 +5692,7 @@ dependencies = [ [[package]] name = "perry-container-compose" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "anyhow", "async-trait", @@ -5721,14 +5721,14 @@ dependencies = [ [[package]] name = "perry-container-e2e" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "anyhow", ] [[package]] name = "perry-diagnostics" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "serde", "serde_json", @@ -5736,7 +5736,7 @@ dependencies = [ [[package]] name = "perry-dispatch" -version = "0.5.1458" +version = "0.5.1459" [[package]] name = "perry-doc-fixture-my-bindings" @@ -5747,7 +5747,7 @@ dependencies = [ [[package]] name = "perry-doc-tests" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "anyhow", "clap", @@ -5762,7 +5762,7 @@ dependencies = [ [[package]] name = "perry-ext-ads" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "block2", "objc2", @@ -5772,7 +5772,7 @@ dependencies = [ [[package]] name = "perry-ext-argon2" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "argon2", "perry-ffi", @@ -5780,7 +5780,7 @@ dependencies = [ [[package]] name = "perry-ext-axios" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "perry-ffi", "reqwest", @@ -5789,7 +5789,7 @@ dependencies = [ [[package]] name = "perry-ext-bcrypt" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "bcrypt", "perry-ffi", @@ -5797,7 +5797,7 @@ dependencies = [ [[package]] name = "perry-ext-better-sqlite3" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "perry-ffi", "rusqlite", @@ -5805,7 +5805,7 @@ dependencies = [ [[package]] name = "perry-ext-cheerio" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "perry-ffi", "scraper", @@ -5813,7 +5813,7 @@ dependencies = [ [[package]] name = "perry-ext-commander" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "perry-ffi", "perry-runtime", @@ -5821,7 +5821,7 @@ dependencies = [ [[package]] name = "perry-ext-cron" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "chrono", "cron", @@ -5831,7 +5831,7 @@ dependencies = [ [[package]] name = "perry-ext-dayjs" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "chrono", "perry-ffi", @@ -5839,7 +5839,7 @@ dependencies = [ [[package]] name = "perry-ext-decimal" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "perry-ffi", "rust_decimal", @@ -5847,7 +5847,7 @@ dependencies = [ [[package]] name = "perry-ext-dotenv" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "perry-ffi", "serde_json", @@ -5855,7 +5855,7 @@ dependencies = [ [[package]] name = "perry-ext-ethers" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "perry-ffi", "rand 0.10.1", @@ -5863,7 +5863,7 @@ dependencies = [ [[package]] name = "perry-ext-events" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "perry-ffi", "perry-runtime", @@ -5871,14 +5871,14 @@ dependencies = [ [[package]] name = "perry-ext-exponential-backoff" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "perry-ffi", ] [[package]] name = "perry-ext-fastify" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "bytes", "http-body-util", @@ -5896,7 +5896,7 @@ dependencies = [ [[package]] name = "perry-ext-fetch" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "bytes", "lazy_static", @@ -5909,7 +5909,7 @@ dependencies = [ [[package]] name = "perry-ext-http" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "bytes", "h2", @@ -5933,7 +5933,7 @@ dependencies = [ [[package]] name = "perry-ext-ioredis" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "lazy_static", "perry-ffi", @@ -5943,7 +5943,7 @@ dependencies = [ [[package]] name = "perry-ext-jsonwebtoken" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "base64", "jsonwebtoken", @@ -5954,7 +5954,7 @@ dependencies = [ [[package]] name = "perry-ext-lru-cache" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "lru", "perry-ffi", @@ -5963,7 +5963,7 @@ dependencies = [ [[package]] name = "perry-ext-moment" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "chrono", "perry-ffi", @@ -5971,7 +5971,7 @@ dependencies = [ [[package]] name = "perry-ext-mongodb" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "bson", "futures-util", @@ -5983,7 +5983,7 @@ dependencies = [ [[package]] name = "perry-ext-mysql2" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "chrono", "perry-ffi", @@ -5993,7 +5993,7 @@ dependencies = [ [[package]] name = "perry-ext-nanoid" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "nanoid", "perry-ffi", @@ -6002,7 +6002,7 @@ dependencies = [ [[package]] name = "perry-ext-net" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "bytes", "perry-ffi", @@ -6015,7 +6015,7 @@ dependencies = [ [[package]] name = "perry-ext-node-forge" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "const-oid 0.9.6", "der 0.7.10", @@ -6034,7 +6034,7 @@ dependencies = [ [[package]] name = "perry-ext-nodemailer" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "lettre", "perry-ffi", @@ -6044,7 +6044,7 @@ dependencies = [ [[package]] name = "perry-ext-pdf" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "perry-ffi", "printpdf", @@ -6052,7 +6052,7 @@ dependencies = [ [[package]] name = "perry-ext-pg" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "perry-ffi", "sqlx", @@ -6061,7 +6061,7 @@ dependencies = [ [[package]] name = "perry-ext-ratelimit" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "governor", "perry-ffi", @@ -6069,7 +6069,7 @@ dependencies = [ [[package]] name = "perry-ext-sharp" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "fast_image_resize", "image", @@ -6079,14 +6079,14 @@ dependencies = [ [[package]] name = "perry-ext-slugify" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "perry-ffi", ] [[package]] name = "perry-ext-streams" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "lazy_static", "perry-ffi", @@ -6095,7 +6095,7 @@ dependencies = [ [[package]] name = "perry-ext-undici" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "perry-ffi", "perry-runtime", @@ -6104,7 +6104,7 @@ dependencies = [ [[package]] name = "perry-ext-uuid" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "perry-ffi", "uuid", @@ -6112,7 +6112,7 @@ dependencies = [ [[package]] name = "perry-ext-validator" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "perry-ffi", "regex", @@ -6122,7 +6122,7 @@ dependencies = [ [[package]] name = "perry-ext-ws" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "futures-util", "lazy_static", @@ -6135,7 +6135,7 @@ dependencies = [ [[package]] name = "perry-ext-zlib" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "brotli", "flate2", @@ -6145,7 +6145,7 @@ dependencies = [ [[package]] name = "perry-ffi" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "dashmap", "once_cell", @@ -6154,7 +6154,7 @@ dependencies = [ [[package]] name = "perry-hir" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "anyhow", "perry-api-manifest", @@ -6172,7 +6172,7 @@ dependencies = [ [[package]] name = "perry-parser" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "anyhow", "perry-diagnostics", @@ -6184,7 +6184,7 @@ dependencies = [ [[package]] name = "perry-runtime" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "anyhow", "base64", @@ -6226,14 +6226,14 @@ dependencies = [ [[package]] name = "perry-runtime-static" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "perry-runtime", ] [[package]] name = "perry-stdlib" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "aes 0.8.4", "aes 0.9.1", @@ -6328,14 +6328,14 @@ dependencies = [ [[package]] name = "perry-stdlib-static" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "perry-stdlib", ] [[package]] name = "perry-transform" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "anyhow", "perry-hir", @@ -6344,14 +6344,14 @@ dependencies = [ [[package]] name = "perry-ui" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "perry-ui-model", ] [[package]] name = "perry-ui-android" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "base64", "itoa", @@ -6368,7 +6368,7 @@ dependencies = [ [[package]] name = "perry-ui-geisterhand" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "rand 0.10.1", "serde", @@ -6378,7 +6378,7 @@ dependencies = [ [[package]] name = "perry-ui-gtk4" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "base64", "cairo-rs 0.22.0", @@ -6401,7 +6401,7 @@ dependencies = [ [[package]] name = "perry-ui-ios" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "base64", "block2", @@ -6417,7 +6417,7 @@ dependencies = [ [[package]] name = "perry-ui-macos" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "base64", "block2", @@ -6432,7 +6432,7 @@ dependencies = [ [[package]] name = "perry-ui-model" -version = "0.5.1458" +version = "0.5.1459" [[package]] name = "perry-ui-test" @@ -6443,11 +6443,11 @@ dependencies = [ [[package]] name = "perry-ui-testkit" -version = "0.5.1458" +version = "0.5.1459" [[package]] name = "perry-ui-tvos" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "base64", "block2", @@ -6463,7 +6463,7 @@ dependencies = [ [[package]] name = "perry-ui-visionos" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "base64", "block2", @@ -6479,7 +6479,7 @@ dependencies = [ [[package]] name = "perry-ui-watchos" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "block2", "libc", @@ -6492,7 +6492,7 @@ dependencies = [ [[package]] name = "perry-ui-windows" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "base64", "libc", @@ -6509,14 +6509,14 @@ dependencies = [ [[package]] name = "perry-ui-windows-winui" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "perry-ui-windows", ] [[package]] name = "perry-updater" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "anyhow", "base64", @@ -6532,7 +6532,7 @@ dependencies = [ [[package]] name = "perry-wasm-host" -version = "0.5.1458" +version = "0.5.1459" dependencies = [ "wasmi", ] diff --git a/Cargo.toml b/Cargo.toml index 62d023206c..d0441dc2c5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -315,7 +315,7 @@ codegen-units = 16 codegen-units = 16 [workspace.package] -version = "0.5.1458" +version = "0.5.1459" edition = "2021" license = "MIT" repository = "https://github.com/PerryTS/perry"