You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ci: land workflow code for v0.5.289 disk-space fix (v0.5.291)
The v0.5.290 commit folded my v0.5.289 CLAUDE.md changelog entry into
its tree alongside the unrelated test_gap_console_methods parity
cleanup, but the actual `.github/workflows/test.yml` change described
in that entry was sitting in the working tree and didn't make it into
the commit — same shape as v0.5.259's catch-up for v0.5.257's
decimal.js work.
This commit lands the workflow file diff:
- 5 `Free up disk space (macOS)` step insertions (one per build-doing
job: build, cargo-test, parity, compile-smoke, doc-tests matrix).
Each step is gated `if: runner.os == 'macOS'` so the same insertion
is safe in the doc-tests matrix (Ubuntu/Windows legs no-op). Wipes
/Library/Developer/CoreSimulator/Profiles/Runtimes/*Simulator* +
~/Library/Developer/CoreSimulator/Caches/* — reclaims ~15-25 GB
without affecting cross-compilation to aarch64-apple-ios-sim (only
needs the SDK, which lives inside the active Xcode app).
- `target/` removed from all 5 `actions/cache@v4` path blocks. The
accumulated release-mode target/ was the load-bearing source of
disk pressure; restoring it before the build started had pushed
usage past the macos-14 runner's ~14 GB free-disk floor.
`~/.cargo/registry` + `~/.cargo/git` retained.
Cargo.lock catches up to the `[workspace.package] version` bump that's
been live since v0.5.290's Cargo.toml edit. YAML-validated via
`python3 -c "import yaml; yaml.safe_load(...)"`. Pure CI change; no
code, no test, no rebuild required.
`release-packages.yml` deliberately untouched — its macos-14/macos-15
matrix legs don't cache target/ and last release run (v0.5.178)
succeeded; will revisit if it starts failing.
Copy file name to clipboardExpand all lines: CLAUDE.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
8
8
9
9
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.
10
10
11
-
**Current Version:** 0.5.290
11
+
**Current Version:** 0.5.291
12
12
13
13
## TypeScript Parity Status
14
14
@@ -149,6 +149,7 @@ First-resolved directory cached in `compile_package_dirs`; subsequent imports re
149
149
150
150
Keep entries to 1-2 lines max. Full details in CHANGELOG.md.
151
151
152
+
-**v0.5.291** — Land the actual workflow code for v0.5.289's CI disk-space fix. The v0.5.290 commit folded my v0.5.289 CLAUDE.md changelog entry into its tree alongside the unrelated `test_gap_console_methods` parity cleanup, but the actual `.github/workflows/test.yml` change described in that entry was sitting in the working tree and didn't make it into the commit — same shape as v0.5.259's catch-up commit for v0.5.257's decimal.js work. This commit lands the workflow file diff: 5 `Free up disk space (macOS)` step insertions (one per build-doing job, gated `if: runner.os == 'macOS'` for the doc-tests matrix), and `target/` removed from all 5 `actions/cache@v4` path blocks. Cargo.lock catches up to the `[workspace.package] version` bump that's been live since v0.5.290's Cargo.toml edit. v0.5.289's full description is the truthful one — see that entry below.
152
153
-**v0.5.290** — Stub audit: `test_gap_console_methods` removed from `known_failures.json` — passes through the parity-runner's `normalize_output` despite the raw diff showing different timer values. The test's only divergence is `console.time` measurements (Perry's compiled native code is faster than Node's interpreter, so e.g. `timer1: 3.888ms` (Node) vs `timer1: 0.002ms` (Perry)). The parity runner has had a `s/^([^:]+): [0-9]+(\.[0-9]+)?(ms|s)$/\1: <timer>/g` substitution since v0.5.181 (issue #155 fix) for exactly this case; the entry was just stale documentation post that. Verified empty diff under parity-runner-style normalization across both stdout and stderr. Net `known_failures.json` reduction: 16 → 15. No code change.
153
154
- **v0.5.289** — CI hygiene: stop the `Tests` workflow's macos-14 jobs from OOM'ing on disk space. Recent runs (24938059592, 24936703670, 24935828472, ...) failed at the cache-restore step with `System.IO.IOException: No space left on device` from the GitHub Runner's own diagnostic writer — the worker died before cargo started, no useful logs. Two coordinated changes in `.github/workflows/test.yml`: (1) **dropped `target/` from the cargo cache paths** in all 5 cache blocks (`build`, `cargo-test`, `parity`, `compile-smoke`, `doc-tests` matrix) — kept `~/.cargo/registry` + `~/.cargo/git` (small, gives ~80% of the warm-build win). The accumulated release-mode `target/` was the load-bearing source of disk pressure; restoring it before the build started had pushed usage past the macos-14 runner's ~14 GB free-disk floor. Inline note in each `path:` block explains why `target/` is intentionally excluded so a future cleanup doesn't add it back. (2) **added a "Free up disk space (macOS)" step** right after `actions/checkout@v4` in each of the 5 jobs, gated on `if: runner.os == 'macOS'` so the same insertion is safe in the doc-tests matrix (Ubuntu/Windows legs no-op). Wipes `/Library/Developer/CoreSimulator/Profiles/Runtimes/*Simulator*` (the iOS/tvOS/watchOS simulator runtime IMAGES — not the SDKs) and `~/Library/Developer/CoreSimulator/Caches/*`. Reclaims ~15-25 GB without affecting cross-compilation to `aarch64-apple-ios-sim` (the `-ios` doc-tests pre-build only needs the SDK, which lives inside the active Xcode app). Step prints `Disk free: BEFORE -> AFTER` for visibility. `release-packages.yml` deliberately untouched — its macos-14/macos-15 matrix legs don't cache `target/` and last release run (v0.5.178) succeeded; will revisit if it starts failing. YAML-validated via `python3 -c "import yaml; yaml.safe_load(...)"`. Pure CI change; no code, no test, no rebuild required.
154
155
-**v0.5.288** — Stub audit: `test_json` removed from `known_failures.json`, incidentally fixed by v0.5.286's `JSON.stringify(<plain f64>)` segfault fix. The test exercises `JSON.stringify(42)` / `JSON.stringify(3.14)` etc. directly, so the same too-loose raw-pointer check in `try_stringify_lazy_array` was crashing it on the first `console.log(JSON.stringify(<num>))`; with that branch tightened to `top16 == 0`, the test now matches Node byte-for-byte (verified across 2 isolated runs). Same one-line fix; no new code change needed. Net `known_failures.json` reduction: 16 → 15. perry-runtime tests 168/168.
0 commit comments