From 23d1cb11ee0031cacd6cc0a4e7e7d6e7e5dce55e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ralph=20K=C3=BCpper?= Date: Sat, 26 Sep 2026 21:15:02 +0200 Subject: [PATCH 1/3] fix(ci): run stdlib lib tests for runtime changes (#11423) --- .github/workflows/test.yml | 3 + CLAUDE.md | 2 +- Cargo.lock | 134 +++++++++++++------------- Cargo.toml | 2 +- changelog.d/11423-stdlib-ci-fanout.md | 8 ++ docs/src/testing/ci-tiers.md | 6 ++ scripts/ci_test_scope.py | 21 ++-- tests/test_ci_test_scope.py | 91 +++++++++++++++++ 8 files changed, 188 insertions(+), 79 deletions(-) create mode 100644 changelog.d/11423-stdlib-ci-fanout.md create mode 100644 tests/test_ci_test_scope.py diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fc26019e64d..2595aacf2fa 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -191,6 +191,9 @@ jobs: if: ${{ !cancelled() }} run: ./scripts/check_changeset_fragment.sh --self-test + - name: Cargo test scope regression tests + run: python3 -m unittest discover -s tests -p 'test_ci_test_scope.py' -v + - name: Docs catalog toolchain tests run: python3 docs/scripts/test_i18n_toolchain.py diff --git a/CLAUDE.md b/CLAUDE.md index 6516e0decb8..4ee37ed58e3 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.1654 +**Current Version:** 0.5.1655 ## TypeScript Parity Status diff --git a/Cargo.lock b/Cargo.lock index a79ddfc4e41..6cf80d46380 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4782,7 +4782,7 @@ checksum = "1473d470930ed48574515a25df34900f3af89c6fa422d903e019121312a9f13e" [[package]] name = "perry" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "anyhow", "clap", @@ -4839,7 +4839,7 @@ dependencies = [ [[package]] name = "perry-api-manifest" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "perry-dispatch", "serde", @@ -4847,7 +4847,7 @@ dependencies = [ [[package]] name = "perry-audio-miniaudio" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "cc", "libc", @@ -4856,14 +4856,14 @@ dependencies = [ [[package]] name = "perry-base64" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "base64 0.23.1", ] [[package]] name = "perry-cli-support" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "anyhow", "console 0.16.6", @@ -4877,7 +4877,7 @@ dependencies = [ [[package]] name = "perry-codegen" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "aho-corasick", "anyhow", @@ -4895,7 +4895,7 @@ dependencies = [ [[package]] name = "perry-codegen-arkts" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "anyhow", "perry-hir", @@ -4903,7 +4903,7 @@ dependencies = [ [[package]] name = "perry-codegen-glance" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "anyhow", "perry-hir", @@ -4911,7 +4911,7 @@ dependencies = [ [[package]] name = "perry-codegen-js" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "anyhow", "perry-dispatch", @@ -4920,7 +4920,7 @@ dependencies = [ [[package]] name = "perry-codegen-swiftui" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "anyhow", "perry-hir", @@ -4928,7 +4928,7 @@ dependencies = [ [[package]] name = "perry-codegen-wasm" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "anyhow", "perry-base64", @@ -4940,7 +4940,7 @@ dependencies = [ [[package]] name = "perry-codegen-wear-tiles" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "anyhow", "perry-hir", @@ -4948,7 +4948,7 @@ dependencies = [ [[package]] name = "perry-container-compose" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "async-lock", "async-trait", @@ -4972,14 +4972,14 @@ dependencies = [ [[package]] name = "perry-container-e2e" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "anyhow", ] [[package]] name = "perry-db-turnloop" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "perry-ffi", "perry-tls-turnloop", @@ -4987,7 +4987,7 @@ dependencies = [ [[package]] name = "perry-diagnostics" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "serde", "serde_json", @@ -4995,7 +4995,7 @@ dependencies = [ [[package]] name = "perry-dispatch" -version = "0.5.1654" +version = "0.5.1655" [[package]] name = "perry-doc-fixture-my-bindings" @@ -5006,7 +5006,7 @@ dependencies = [ [[package]] name = "perry-doc-tests" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "anyhow", "clap", @@ -5021,7 +5021,7 @@ dependencies = [ [[package]] name = "perry-ext-ads" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "block2", "objc2", @@ -5031,7 +5031,7 @@ dependencies = [ [[package]] name = "perry-ext-argon2" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "argon2", "perry-ffi", @@ -5040,7 +5040,7 @@ dependencies = [ [[package]] name = "perry-ext-bcrypt" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "bcrypt", "perry-ffi", @@ -5048,7 +5048,7 @@ dependencies = [ [[package]] name = "perry-ext-better-sqlite3" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "perry-ffi", "rusqlite", @@ -5056,7 +5056,7 @@ dependencies = [ [[package]] name = "perry-ext-cheerio" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "perry-ffi", "scraper", @@ -5064,7 +5064,7 @@ dependencies = [ [[package]] name = "perry-ext-ethers" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "perry-ffi", "rand 0.10.2", @@ -5072,7 +5072,7 @@ dependencies = [ [[package]] name = "perry-ext-events" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "perry-ffi", "perry-runtime", @@ -5080,7 +5080,7 @@ dependencies = [ [[package]] name = "perry-ext-http" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "bytes", "http", @@ -5106,7 +5106,7 @@ dependencies = [ [[package]] name = "perry-ext-net" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "bytes", "perry-ffi", @@ -5120,7 +5120,7 @@ dependencies = [ [[package]] name = "perry-ext-nodemailer" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "perry-ffi", "perry-uuid", @@ -5129,7 +5129,7 @@ dependencies = [ [[package]] name = "perry-ext-parcel-watcher" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "notify", "perry-ffi", @@ -5141,7 +5141,7 @@ dependencies = [ [[package]] name = "perry-ext-pdf" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "perry-ffi", "printpdf", @@ -5149,7 +5149,7 @@ dependencies = [ [[package]] name = "perry-ext-sharp" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "fast_image_resize", "image", @@ -5160,7 +5160,7 @@ dependencies = [ [[package]] name = "perry-ext-streams" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "perry-ffi", "perry-runtime", @@ -5168,7 +5168,7 @@ dependencies = [ [[package]] name = "perry-ext-typescript" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "anyhow", "perry-ffi", @@ -5188,7 +5188,7 @@ dependencies = [ [[package]] name = "perry-ext-undici" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "perry-ffi", "perry-runtime", @@ -5197,7 +5197,7 @@ dependencies = [ [[package]] name = "perry-ext-ws" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "perry-ffi", "perry-http-server", @@ -5211,7 +5211,7 @@ dependencies = [ [[package]] name = "perry-ext-zlib" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "brotli", "flate2", @@ -5221,7 +5221,7 @@ dependencies = [ [[package]] name = "perry-ffi" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "dashmap 6.2.1", "perry-native-registration", @@ -5230,11 +5230,11 @@ dependencies = [ [[package]] name = "perry-hex" -version = "0.5.1654" +version = "0.5.1655" [[package]] name = "perry-hir" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "anyhow", "perry-api-manifest", @@ -5254,7 +5254,7 @@ dependencies = [ [[package]] name = "perry-http-client" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "perry-base64", "perry-tls-session", @@ -5267,7 +5267,7 @@ dependencies = [ [[package]] name = "perry-http-server" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "http", "httpdate", @@ -5277,11 +5277,11 @@ dependencies = [ [[package]] name = "perry-native-registration" -version = "0.5.1654" +version = "0.5.1655" [[package]] name = "perry-parser" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "anyhow", "perry-diagnostics", @@ -5294,7 +5294,7 @@ dependencies = [ [[package]] name = "perry-perex" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "perex", "regex", @@ -5302,7 +5302,7 @@ dependencies = [ [[package]] name = "perry-runtime" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "ahash", "cc", @@ -5359,14 +5359,14 @@ dependencies = [ [[package]] name = "perry-runtime-static" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "perry-runtime", ] [[package]] name = "perry-stdlib" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "aes 0.8.4", "aes 0.9.1", @@ -5440,21 +5440,21 @@ dependencies = [ [[package]] name = "perry-stdlib-static" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "perry-stdlib", ] [[package]] name = "perry-tls-session" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "turnloop-tls", ] [[package]] name = "perry-tls-turnloop" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "perry-ffi", "perry-tls-session", @@ -5463,14 +5463,14 @@ dependencies = [ [[package]] name = "perry-transform" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "perry-hir", ] [[package]] name = "perry-ui" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "dirs", "perry-ffi", @@ -5480,7 +5480,7 @@ dependencies = [ [[package]] name = "perry-ui-android" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "jni", "libc", @@ -5495,7 +5495,7 @@ dependencies = [ [[package]] name = "perry-ui-geisterhand" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "rand 0.10.2", "serde", @@ -5505,7 +5505,7 @@ dependencies = [ [[package]] name = "perry-ui-gtk4" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "async-channel", "async-executor", @@ -5530,7 +5530,7 @@ dependencies = [ [[package]] name = "perry-ui-ios" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "block2", "libc", @@ -5547,7 +5547,7 @@ dependencies = [ [[package]] name = "perry-ui-macos" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "block2", "libc", @@ -5564,7 +5564,7 @@ dependencies = [ [[package]] name = "perry-ui-model" -version = "0.5.1654" +version = "0.5.1655" [[package]] name = "perry-ui-test" @@ -5575,11 +5575,11 @@ dependencies = [ [[package]] name = "perry-ui-testkit" -version = "0.5.1654" +version = "0.5.1655" [[package]] name = "perry-ui-tvos" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "block2", "libc", @@ -5596,7 +5596,7 @@ dependencies = [ [[package]] name = "perry-ui-visionos" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "block2", "libc", @@ -5613,7 +5613,7 @@ dependencies = [ [[package]] name = "perry-ui-watchos" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "block2", "libc", @@ -5627,7 +5627,7 @@ dependencies = [ [[package]] name = "perry-ui-windows" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "libc", "perry-audio-miniaudio", @@ -5646,7 +5646,7 @@ dependencies = [ [[package]] name = "perry-ui-windows-winui" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "libc", "perry-base64", @@ -5659,7 +5659,7 @@ dependencies = [ [[package]] name = "perry-updater" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "anyhow", "ed25519-dalek", @@ -5674,14 +5674,14 @@ dependencies = [ [[package]] name = "perry-uuid" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "getrandom 0.4.3", ] [[package]] name = "perry-wasm-host" -version = "0.5.1654" +version = "0.5.1655" dependencies = [ "wasmi", ] diff --git a/Cargo.toml b/Cargo.toml index 390678183e7..5e12d2832da 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -317,7 +317,7 @@ codegen-units = 1 codegen-units = 1 [workspace.package] -version = "0.5.1654" +version = "0.5.1655" edition = "2021" license = "MIT" repository = "https://github.com/PerryTS/perry" diff --git a/changelog.d/11423-stdlib-ci-fanout.md b/changelog.d/11423-stdlib-ci-fanout.md new file mode 100644 index 00000000000..6a419ad08e3 --- /dev/null +++ b/changelog.d/11423-stdlib-ci-fanout.md @@ -0,0 +1,8 @@ +Runtime changes now select the `perry-stdlib` unit tests in per-PR CI, covering +the GC, arena, closure and event-loop interactions previously skipped by the +reverse-dependency selector (#11423). Extension shims remain outside dependency +fan-out unless directly changed. Required lint coverage checks the selector’s +runtime, direct-change, unrelated, metadata-only and full-workspace cases. +Library-target detection now recognizes explicit Cargo crate types such as +`rlib`, so the selected stdlib suite actually runs with `--lib --bins` instead +of being skipped by `--bins`. diff --git a/docs/src/testing/ci-tiers.md b/docs/src/testing/ci-tiers.md index 318f20d420f..0aabb32d553 100644 --- a/docs/src/testing/ci-tiers.md +++ b/docs/src/testing/ci-tiers.md @@ -55,6 +55,12 @@ Within the **pr** tier the changed-file list narrows the plan further: - **deps** (a lockfile, manifest, `deny.toml`, `package.json`, `.claude/`, `skills/`, …) → additionally the `security-audit` reusable workflow. +Within `cargo-test`, runtime changes also select `perry-stdlib` unit tests: +those tests exercise runtime GC, arenas, closures, promises and the event loop. +The `perry-ext-*` crates remain excluded from dependency fan-out unless directly +changed. `scripts/ci_test_scope.py` owns this policy, with regression tests in +`lint`. + `e2e-scoped` runs integration suites selected by the diff, but its `SUITE_EXCLUSIONS` check is deliberately not scoped: whenever that list is nonempty, every core PR reruns each excluded exact test and fails if it no diff --git a/scripts/ci_test_scope.py b/scripts/ci_test_scope.py index aaaec90e984..9ba5974567e 100755 --- a/scripts/ci_test_scope.py +++ b/scripts/ci_test_scope.py @@ -96,15 +96,13 @@ def _runtime_link_augment(seeds): def _is_fanout_leaf(name): """Crates we never fan *into* when a dependency changes. - `perry-ext-*` and `perry-stdlib` are runtime FFI shims whose UNIT tests are - self-contained pure-Rust logic — they do not exercise perry-runtime internals, - so a perry-runtime change need not re-run them per-PR (the nightly full run + - perry's integration tests cover that interaction). Excluding them from the - reverse-dep fan-out keeps a foundational change from selecting ~40 crates, and - avoids perry-runtime feature-unification rebuilds. A direct change *to* one of - these crates still selects it (it starts as a seed). + `perry-ext-*` shims stay out of dependency fan-out to bound per-PR test + links and feature-unification rebuilds; direct changes still select them. + `perry-stdlib` MUST participate: its unit tests exercise runtime GC, arena, + closure, promise and event-loop behavior. Excluding it hid runtime-caused + failures until an unrelated stdlib change selected the suite (#11423). """ - return name == "perry-stdlib" or name.startswith("perry-ext-") + return name.startswith("perry-ext-") def _reverse_dep_closure(md, seeds): @@ -133,7 +131,7 @@ def _reverse_dep_closure(md, seeds): def _has_lib_mode() -> int: - """Exit 0 if any package named on stdin has a `lib` target, else exit 1. + """Exit 0 if any package named on stdin has a library target, else exit 1. `cargo test --lib` errors ("no library targets") when *no* selected package has a library — e.g. a perry-only diff selects just the bin-only `perry` @@ -141,8 +139,11 @@ def _has_lib_mode() -> int: """ names = set(sys.stdin.read().split()) md = _load_metadata() + # Cargo reports an explicit crate-type as the kind (e.g. stdlib's rlib), + # rather than always spelling library targets "lib". + library_kinds = {"lib", "rlib", "staticlib", "dylib", "cdylib", "proc-macro"} has = any( - any("lib" in t["kind"] for t in p["targets"]) + any(library_kinds.intersection(t["kind"]) for t in p["targets"]) for p in md["packages"] if p["name"] in names ) diff --git a/tests/test_ci_test_scope.py b/tests/test_ci_test_scope.py new file mode 100644 index 00000000000..998b8f73d28 --- /dev/null +++ b/tests/test_ci_test_scope.py @@ -0,0 +1,91 @@ +"""Regression coverage for the per-PR cargo-test package selection.""" +import contextlib +import io +from pathlib import Path +import sys +import unittest +from unittest.mock import patch + +SCRIPTS = Path(__file__).resolve().parents[1] / "scripts" +sys.path.insert(0, str(SCRIPTS)) +import ci_test_scope as scope + + +def package(name, *dependencies): + return { + "name": name, + "manifest_path": f"/workspace/crates/{name}/Cargo.toml", + "dependencies": [{"name": dep} for dep in dependencies], + } + + +class CargoTestScopeTests(unittest.TestCase): + def setUp(self): + self.metadata = {"packages": [ + package("perry-runtime"), + package("perry-stdlib", "perry-runtime"), + package("perry-stdlib-static", "perry-stdlib"), + package("perry-ffi", "perry-runtime"), + package("perry", "perry-ffi"), + package("perry-ext-net", "perry-runtime", "perry-stdlib"), + package("perry-parser"), + ]} + + def selected(self, *paths, full=False): + output = io.StringIO() + argv = ["ci_test_scope.py"] + (["--full"] if full else []) + with patch.object(scope, "_load_metadata", return_value=self.metadata), \ + patch.object(sys, "argv", argv), \ + patch.object(sys, "stdin", io.StringIO("\n".join(paths))), \ + contextlib.redirect_stdout(output): + self.assertEqual(scope.main(), 0) + return set(output.getvalue().splitlines()) + + def test_library_target_detection(self): + for kind in ("lib", "rlib", "staticlib", "dylib", "cdylib", "proc-macro", + "bin", "test", "example", "bench", "custom-build"): + with self.subTest(kind=kind): + md = {"packages": [{"name": "subject", "targets": [{"kind": [kind]}]}]} + with patch.object(scope, "_load_metadata", return_value=md), \ + patch.object(sys, "stdin", io.StringIO("subject\n")): + expected = 0 if kind in { + "lib", "rlib", "staticlib", "dylib", "cdylib", "proc-macro" + } else 1 + self.assertEqual(scope._has_lib_mode(), expected) + + def test_runtime_changes_run_stdlib_tests(self): + for path in ("arena/block.rs", "gc/roots.rs", "closure/mod.rs", + "event_pump.rs", "promise.rs"): + with self.subTest(path=path): + selected = self.selected(f"crates/perry-runtime/src/{path}") + self.assertIn("perry-stdlib", selected) + self.assertIn("perry-runtime", selected) + self.assertIn("perry", selected) + self.assertNotIn("perry-ext-net", selected) + self.assertNotIn("perry-parser", selected) + + def test_stdlib_direct_change_selects_stdlib_and_driver(self): + selected = self.selected("crates/perry-stdlib/src/common/async_bridge.rs") + self.assertIn("perry-stdlib", selected) + self.assertIn("perry", selected) + self.assertNotIn("perry-ext-net", selected) + + def test_extension_direct_change_is_still_selected(self): + self.assertEqual(self.selected("crates/perry-ext-net/src/lib.rs"), + {"perry-ext-net", "perry"}) + + def test_unrelated_change_does_not_run_stdlib(self): + self.assertEqual(self.selected("crates/perry-parser/src/lib.rs"), + {"perry-parser"}) + + def test_metadata_only_selects_nothing(self): + self.assertEqual(self.selected("Cargo.toml", "Cargo.lock", "CLAUDE.md"), set()) + + def test_full_and_infra_still_include_extensions(self): + expected = {p["name"] for p in self.metadata["packages"]} - scope.EXCLUDED + self.assertEqual(self.selected(full=True), expected) + self.assertEqual(self.selected("scripts/ci_test_scope.py"), expected) + + +if __name__ == "__main__": + unittest.main() From 28f249899dd0d241e3b2d53ebce1baf703cac6a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ralph=20K=C3=BCpper?= Date: Sat, 26 Sep 2026 21:15:32 +0200 Subject: [PATCH 2/3] chore: key changelog fragment to PR #11424 --- .../{11423-stdlib-ci-fanout.md => 11424-stdlib-ci-fanout.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename changelog.d/{11423-stdlib-ci-fanout.md => 11424-stdlib-ci-fanout.md} (100%) diff --git a/changelog.d/11423-stdlib-ci-fanout.md b/changelog.d/11424-stdlib-ci-fanout.md similarity index 100% rename from changelog.d/11423-stdlib-ci-fanout.md rename to changelog.d/11424-stdlib-ci-fanout.md From 0f150c2b1918dbdd94ae110e0577334dc8cf81cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ralph=20K=C3=BCpper?= Date: Sat, 26 Sep 2026 21:16:13 +0200 Subject: [PATCH 3/3] chore: leave version bump to release maintainer --- CLAUDE.md | 2 +- Cargo.lock | 134 ++++++++++++++++++++++++++--------------------------- Cargo.toml | 2 +- 3 files changed, 69 insertions(+), 69 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 4ee37ed58e3..6516e0decb8 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.1655 +**Current Version:** 0.5.1654 ## TypeScript Parity Status diff --git a/Cargo.lock b/Cargo.lock index 6cf80d46380..a79ddfc4e41 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4782,7 +4782,7 @@ checksum = "1473d470930ed48574515a25df34900f3af89c6fa422d903e019121312a9f13e" [[package]] name = "perry" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "anyhow", "clap", @@ -4839,7 +4839,7 @@ dependencies = [ [[package]] name = "perry-api-manifest" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "perry-dispatch", "serde", @@ -4847,7 +4847,7 @@ dependencies = [ [[package]] name = "perry-audio-miniaudio" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "cc", "libc", @@ -4856,14 +4856,14 @@ dependencies = [ [[package]] name = "perry-base64" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "base64 0.23.1", ] [[package]] name = "perry-cli-support" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "anyhow", "console 0.16.6", @@ -4877,7 +4877,7 @@ dependencies = [ [[package]] name = "perry-codegen" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "aho-corasick", "anyhow", @@ -4895,7 +4895,7 @@ dependencies = [ [[package]] name = "perry-codegen-arkts" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "anyhow", "perry-hir", @@ -4903,7 +4903,7 @@ dependencies = [ [[package]] name = "perry-codegen-glance" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "anyhow", "perry-hir", @@ -4911,7 +4911,7 @@ dependencies = [ [[package]] name = "perry-codegen-js" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "anyhow", "perry-dispatch", @@ -4920,7 +4920,7 @@ dependencies = [ [[package]] name = "perry-codegen-swiftui" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "anyhow", "perry-hir", @@ -4928,7 +4928,7 @@ dependencies = [ [[package]] name = "perry-codegen-wasm" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "anyhow", "perry-base64", @@ -4940,7 +4940,7 @@ dependencies = [ [[package]] name = "perry-codegen-wear-tiles" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "anyhow", "perry-hir", @@ -4948,7 +4948,7 @@ dependencies = [ [[package]] name = "perry-container-compose" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "async-lock", "async-trait", @@ -4972,14 +4972,14 @@ dependencies = [ [[package]] name = "perry-container-e2e" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "anyhow", ] [[package]] name = "perry-db-turnloop" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "perry-ffi", "perry-tls-turnloop", @@ -4987,7 +4987,7 @@ dependencies = [ [[package]] name = "perry-diagnostics" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "serde", "serde_json", @@ -4995,7 +4995,7 @@ dependencies = [ [[package]] name = "perry-dispatch" -version = "0.5.1655" +version = "0.5.1654" [[package]] name = "perry-doc-fixture-my-bindings" @@ -5006,7 +5006,7 @@ dependencies = [ [[package]] name = "perry-doc-tests" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "anyhow", "clap", @@ -5021,7 +5021,7 @@ dependencies = [ [[package]] name = "perry-ext-ads" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "block2", "objc2", @@ -5031,7 +5031,7 @@ dependencies = [ [[package]] name = "perry-ext-argon2" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "argon2", "perry-ffi", @@ -5040,7 +5040,7 @@ dependencies = [ [[package]] name = "perry-ext-bcrypt" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "bcrypt", "perry-ffi", @@ -5048,7 +5048,7 @@ dependencies = [ [[package]] name = "perry-ext-better-sqlite3" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "perry-ffi", "rusqlite", @@ -5056,7 +5056,7 @@ dependencies = [ [[package]] name = "perry-ext-cheerio" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "perry-ffi", "scraper", @@ -5064,7 +5064,7 @@ dependencies = [ [[package]] name = "perry-ext-ethers" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "perry-ffi", "rand 0.10.2", @@ -5072,7 +5072,7 @@ dependencies = [ [[package]] name = "perry-ext-events" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "perry-ffi", "perry-runtime", @@ -5080,7 +5080,7 @@ dependencies = [ [[package]] name = "perry-ext-http" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "bytes", "http", @@ -5106,7 +5106,7 @@ dependencies = [ [[package]] name = "perry-ext-net" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "bytes", "perry-ffi", @@ -5120,7 +5120,7 @@ dependencies = [ [[package]] name = "perry-ext-nodemailer" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "perry-ffi", "perry-uuid", @@ -5129,7 +5129,7 @@ dependencies = [ [[package]] name = "perry-ext-parcel-watcher" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "notify", "perry-ffi", @@ -5141,7 +5141,7 @@ dependencies = [ [[package]] name = "perry-ext-pdf" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "perry-ffi", "printpdf", @@ -5149,7 +5149,7 @@ dependencies = [ [[package]] name = "perry-ext-sharp" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "fast_image_resize", "image", @@ -5160,7 +5160,7 @@ dependencies = [ [[package]] name = "perry-ext-streams" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "perry-ffi", "perry-runtime", @@ -5168,7 +5168,7 @@ dependencies = [ [[package]] name = "perry-ext-typescript" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "anyhow", "perry-ffi", @@ -5188,7 +5188,7 @@ dependencies = [ [[package]] name = "perry-ext-undici" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "perry-ffi", "perry-runtime", @@ -5197,7 +5197,7 @@ dependencies = [ [[package]] name = "perry-ext-ws" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "perry-ffi", "perry-http-server", @@ -5211,7 +5211,7 @@ dependencies = [ [[package]] name = "perry-ext-zlib" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "brotli", "flate2", @@ -5221,7 +5221,7 @@ dependencies = [ [[package]] name = "perry-ffi" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "dashmap 6.2.1", "perry-native-registration", @@ -5230,11 +5230,11 @@ dependencies = [ [[package]] name = "perry-hex" -version = "0.5.1655" +version = "0.5.1654" [[package]] name = "perry-hir" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "anyhow", "perry-api-manifest", @@ -5254,7 +5254,7 @@ dependencies = [ [[package]] name = "perry-http-client" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "perry-base64", "perry-tls-session", @@ -5267,7 +5267,7 @@ dependencies = [ [[package]] name = "perry-http-server" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "http", "httpdate", @@ -5277,11 +5277,11 @@ dependencies = [ [[package]] name = "perry-native-registration" -version = "0.5.1655" +version = "0.5.1654" [[package]] name = "perry-parser" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "anyhow", "perry-diagnostics", @@ -5294,7 +5294,7 @@ dependencies = [ [[package]] name = "perry-perex" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "perex", "regex", @@ -5302,7 +5302,7 @@ dependencies = [ [[package]] name = "perry-runtime" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "ahash", "cc", @@ -5359,14 +5359,14 @@ dependencies = [ [[package]] name = "perry-runtime-static" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "perry-runtime", ] [[package]] name = "perry-stdlib" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "aes 0.8.4", "aes 0.9.1", @@ -5440,21 +5440,21 @@ dependencies = [ [[package]] name = "perry-stdlib-static" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "perry-stdlib", ] [[package]] name = "perry-tls-session" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "turnloop-tls", ] [[package]] name = "perry-tls-turnloop" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "perry-ffi", "perry-tls-session", @@ -5463,14 +5463,14 @@ dependencies = [ [[package]] name = "perry-transform" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "perry-hir", ] [[package]] name = "perry-ui" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "dirs", "perry-ffi", @@ -5480,7 +5480,7 @@ dependencies = [ [[package]] name = "perry-ui-android" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "jni", "libc", @@ -5495,7 +5495,7 @@ dependencies = [ [[package]] name = "perry-ui-geisterhand" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "rand 0.10.2", "serde", @@ -5505,7 +5505,7 @@ dependencies = [ [[package]] name = "perry-ui-gtk4" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "async-channel", "async-executor", @@ -5530,7 +5530,7 @@ dependencies = [ [[package]] name = "perry-ui-ios" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "block2", "libc", @@ -5547,7 +5547,7 @@ dependencies = [ [[package]] name = "perry-ui-macos" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "block2", "libc", @@ -5564,7 +5564,7 @@ dependencies = [ [[package]] name = "perry-ui-model" -version = "0.5.1655" +version = "0.5.1654" [[package]] name = "perry-ui-test" @@ -5575,11 +5575,11 @@ dependencies = [ [[package]] name = "perry-ui-testkit" -version = "0.5.1655" +version = "0.5.1654" [[package]] name = "perry-ui-tvos" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "block2", "libc", @@ -5596,7 +5596,7 @@ dependencies = [ [[package]] name = "perry-ui-visionos" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "block2", "libc", @@ -5613,7 +5613,7 @@ dependencies = [ [[package]] name = "perry-ui-watchos" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "block2", "libc", @@ -5627,7 +5627,7 @@ dependencies = [ [[package]] name = "perry-ui-windows" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "libc", "perry-audio-miniaudio", @@ -5646,7 +5646,7 @@ dependencies = [ [[package]] name = "perry-ui-windows-winui" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "libc", "perry-base64", @@ -5659,7 +5659,7 @@ dependencies = [ [[package]] name = "perry-updater" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "anyhow", "ed25519-dalek", @@ -5674,14 +5674,14 @@ dependencies = [ [[package]] name = "perry-uuid" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "getrandom 0.4.3", ] [[package]] name = "perry-wasm-host" -version = "0.5.1655" +version = "0.5.1654" dependencies = [ "wasmi", ] diff --git a/Cargo.toml b/Cargo.toml index 5e12d2832da..390678183e7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -317,7 +317,7 @@ codegen-units = 1 codegen-units = 1 [workspace.package] -version = "0.5.1655" +version = "0.5.1654" edition = "2021" license = "MIT" repository = "https://github.com/PerryTS/perry"