Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
126 commits
Select commit Hold shift + click to select a range
8df83f8
fix(test): set constructor_has_synthetic_arguments in two ImportedCla…
Sep 19, 2026
5750647
fix(runtime): root event/listener dispatch copies across moving GC
Sep 18, 2026
c571dd6
style: cargo fmt
Sep 18, 2026
fe1cb04
test: add gap test for event/listener dispatch GC rooting (#10600)
Sep 18, 2026
c5ba939
docs: add changelog fragment for #10606
Sep 18, 2026
11bf732
style: cargo fmt the reconciled emit_warning this-rooting
Sep 18, 2026
08bf655
perf(size): outline the CJS factory body, not just hir.init (#10575)
Sep 18, 2026
d4d0585
fix(runtime): timeout.refresh() preserves ref state; Immediate has no…
Sep 18, 2026
18f93a8
fix(runtime): route AsyncResource super() through the bound-export va…
Sep 18, 2026
7b240fe
docs(changelog): record the AsyncResource heritage-shape fix (#10621)
Sep 18, 2026
e821e10
fix(transform): give an exported dynamic-heritage class factory real …
Sep 18, 2026
9abd91e
docs(changelog): record the exported class-factory identity fix (#10622)
Sep 18, 2026
8f1ad83
fix(hir): exclude inherited method names from ctor-body field detection
Sep 18, 2026
324b8ad
changelog: fragment for #10626
Sep 18, 2026
0ed8065
fix(codegen): refresh local_types on var redeclaration
Sep 18, 2026
ae216fc
changelog: fragment for #10627
Sep 18, 2026
8cbf5be
fix(hir): forward inherited captures through a locally-shadowed class…
Sep 18, 2026
be51d0c
changelog: fragment for #10628
Sep 18, 2026
9c24b21
fix(hir): keep the reified receiver for a computed dynamic key on a b…
Sep 18, 2026
ad0be3b
docs(changelog): add fragment for #10629
Sep 18, 2026
8844271
fix(transform): stop cross-module inlining bundling a separately expo…
Sep 18, 2026
26eb268
docs(changelog): add fragment for #10630
Sep 18, 2026
7c45dc9
fix(runtime): add Symbol.toStringTag to Web/runtime built-ins
Sep 18, 2026
33a5ef0
docs(changelog): add fragment for #10632
Sep 18, 2026
4f73a76
fix(runtime): resolve instanceof against a ClassExprFresh parent per …
Sep 18, 2026
083d350
changelog: add fragment for #10640
Sep 18, 2026
588b872
refactor(runtime): split instanceof.rs for the file-size cap
perry-bot Sep 18, 2026
6465e59
chore: update addr-class gates for the instanceof.rs split
perry-bot Sep 18, 2026
81d5ba9
docs(changelog): add fragment for #10603 (CJS factory entry outlining)
Sep 18, 2026
5b5efc9
changelog: add fragment for #10620
Sep 18, 2026
b0af11e
chore: release merge train 219 as v0.5.1597
Sep 19, 2026
79db9e5
fix(http): rebuild client-pump stdlib for node:http under PERRY_NO_AU…
perry-bot Sep 18, 2026
0ec7b1e
fix(http): rebuild perry-ext-http alongside the http-client-pump stdl…
perry-bot Sep 18, 2026
5ea4e3e
changelog: #10667
perry-bot Sep 18, 2026
0b1d61a
fix(test): update no-auto well-known test for the http-client-pump re…
perry-bot Sep 18, 2026
3c157e4
perf(gc): don't enumerate child slots for objects that have none (#10…
Sep 18, 2026
72ef1b1
changelog: fragment for #10669
Sep 19, 2026
a812fe0
perf(runtime): stop double-scanning ASCII-ness and buffering the conc…
Sep 18, 2026
f1f23b2
changelog: key fragment to #10672
Sep 18, 2026
e52aae9
fix(cjs): defer conditional CommonJS require() init instead of hoisti…
Sep 18, 2026
1ff135d
changelog: #10674
perry-bot Sep 18, 2026
02a3b6a
wip(runtime): support class expressions in dyn_eval interpreter (#10661)
perry-bot Sep 18, 2026
a5583cf
test(runtime): unit tests for dyn_eval class expression support (#10661)
perry-bot Sep 18, 2026
084050f
test(gap): class-expression dyn_eval gap test for #10661 (mysql2 row-…
perry-bot Sep 18, 2026
6c3770d
style: cargo fmt for #10661 class-expression changes
perry-bot Sep 18, 2026
0a88b1f
docs(changelog): #10675 dyn_eval class expression support
perry-bot Sep 18, 2026
cee9883
fix(codegen): an inherited property read no longer folds to undefined…
perry-bot Sep 19, 2026
fbac2de
refactor(stdlib): remove jsonwebtoken native binding
Sep 19, 2026
6e3ce3c
changelog: add fragment for #10687 (jsonwebtoken native binding removal)
Sep 19, 2026
4715bc2
chore: release merge train 220 as v0.5.1598
Sep 19, 2026
507273c
fix(codegen): forward implicit-ctor args to a native base super() rea…
Sep 18, 2026
9c57c0b
docs: changelog fragment for #10636
Sep 18, 2026
65ccbcd
refactor(hir): split tests.rs and class_decl.rs for the 2000-line cap
perry-bot Sep 19, 2026
64ca0eb
wip: net.Socket surface cluster (#10441 #10442 #10444 #10465)
perry-bot Sep 18, 2026
950d152
fix: net.Socket pending/destroyed timing (mark_closed too-early flip)
perry-bot Sep 18, 2026
a48920f
style: cargo fmt
perry-bot Sep 18, 2026
5272146
docs: changelog fragment for #10658
perry-bot Sep 18, 2026
8f86156
fix(string): make codePointAt linear on non-ASCII strings (#10656)
Sep 18, 2026
518aa27
fix(string): resolve slice start offsets through the UTF-16 index (#1…
Sep 19, 2026
3696117
perf(array): gate registry probes on the GC header in the indexing pa…
Sep 19, 2026
445f4a9
perf(string): give the UTF-16 index no capacity, so it cannot thrash …
Sep 19, 2026
bd7e8b9
perf(regex): stride the replace collection loop's safepoint poll
Sep 18, 2026
946cfa2
docs(changelog): fragment for #10666
Sep 18, 2026
b36554a
fix(http): client rawHeaders/httpVersion*/complete, 'upgrade' event, …
perry-bot Sep 18, 2026
086b6c4
fix(http): root createConnection closure before allocating connect-op…
perry-bot Sep 18, 2026
709a177
fix(http): restore server IncomingMessage fallback for httpVersion*/c…
perry-bot Sep 18, 2026
2aa2ef0
fix(http): upgrade head is always a Buffer (never undefined for zero-…
perry-bot Sep 18, 2026
0011dc4
changelog: #10668
perry-bot Sep 18, 2026
3983b7a
fix(http): root response_headers.rs array pointers across allocating …
perry-bot Sep 19, 2026
8e59526
wip: fix #10439 native-binding import provenance
perry-bot Sep 19, 2026
0900ce4
changelog: add fragment for #10699 (native-binding import provenance)
proggeramlug Sep 19, 2026
73f8b97
fix(test): remove stale ambient-dispatch assertion in fluent_chain_lo…
perry-bot Sep 19, 2026
dbbdf84
style: cargo fmt the #10664 utf16-index changes
Sep 19, 2026
91c6a05
chore: release merge train 221 as v0.5.1599
Sep 19, 2026
3c2185d
ci: register the two unclassified perry-codegen suites
Sep 19, 2026
e95b686
docs(changelog): fragment for #10723
Sep 19, 2026
e119466
chore: release v0.5.1600
Sep 19, 2026
d046790
fix(runtime): cache Web Crypto method closures instead of reallocatin…
Sep 18, 2026
886abdb
docs(changelog): fragment for the Web Crypto method identity fix (#10…
Sep 18, 2026
dec1208
fix(runtime): fix Buffer.prototype's own-property shape
Sep 18, 2026
fdb2817
docs(changelog): fragment for the Buffer.prototype shape fix (#10644)
Sep 18, 2026
bf27bc1
fix(runtime): materialize Object.prototype.__proto__ as a real accessor
Sep 18, 2026
2caceb5
test(gap): cover Object.prototype.__proto__ reflection and behavioral…
Sep 18, 2026
67ec434
docs(changelog): fragment for #10647 Object.prototype.__proto__ accessor
Sep 18, 2026
b8663a8
fix(hir): replace this inside GetIterator/GetAsyncIterator/MapEntries…
Sep 18, 2026
5098b53
test(gap): cover Symbol.iterator generator this-binding through for-o…
Sep 18, 2026
3b2e2d9
changelog: fragment for #10650
Sep 18, 2026
a03cc6b
perf(runtime): stop hoisting cold-path thread-locals into o[k]'s fast…
Sep 18, 2026
7b8e523
changelog: fragment for #10651
Sep 18, 2026
ea545b7
fix(transform): do not beta-reduce a local arrow whose param is captu…
Sep 18, 2026
d1b774c
test(gap): cover arrow-parameter capture by a nested closure across m…
Sep 18, 2026
6e4955b
changelog: fragment for #10653
Sep 18, 2026
36a68f5
perf(regex): poll the safepoint on units read, not on pieces
Sep 19, 2026
a20d424
docs(changelog): fragment for #10657
Sep 19, 2026
71a77c1
refactor(stdlib): remove validator native binding
Sep 19, 2026
886d933
fix(release-fixture): drop validation feature from next-app-route std…
Sep 19, 2026
3e9aab0
changelog: add fragment for #10690 (validator native binding removal)
Sep 19, 2026
975f770
docs: regenerate API reference + .d.ts after rebase onto main
perry-bot Sep 19, 2026
420d965
test(gc): ignore two debug-only GC twins under a release profile
Sep 19, 2026
7c5d04d
chore: release merge train 222 as v0.5.1601
Sep 19, 2026
ab82a22
fix(runtime): route AsyncLocalStorage super() through any bound-expor…
Sep 18, 2026
eafa3b4
docs(changelog): add fragment for #10634 (AsyncLocalStorage heritage …
Sep 18, 2026
dd4a32f
perf(codegen,runtime): retire the per-access class-field latch
Sep 18, 2026
5b44d32
tooling: gate the compiler's copy of the GC header layout
Sep 18, 2026
e948933
docs(changelog): fragment for #10646
Sep 18, 2026
acab915
fix(runtime): gate the guard-shape test restore on cfg(test)
Sep 18, 2026
13615eb
fix(compile): fall back to compiled JS emit for TS namespace/export= …
perry-bot Sep 18, 2026
d327759
docs: changelog fragment for #10673
perry-bot Sep 18, 2026
023dc0b
chore: release merge train 223 as v0.5.1602
Sep 19, 2026
2a52b0a
fix(tooling): close two blind spots in unrooted_local_shape.py
Sep 19, 2026
cf3bb02
tooling: re-pin unrooted-local baseline at 581 (schema 2 -> 3)
Sep 19, 2026
2945fed
changelog: key the unrooted-local fragment on PR #10719
Sep 19, 2026
3b6166d
tooling: let the raw-handle ledger declare a relocation (#10583)
Sep 19, 2026
0af473d
changelog: key the fragment on PR #10721
Sep 19, 2026
50020e6
test: make test_gap_cron_cronjob wait on a barrier, not a deadline (#…
Sep 19, 2026
1bc2569
changelog: key the fragment on PR #10722
Sep 19, 2026
b2dce52
test(gap): lock commander's outputError/writeErr indirection (#10711)
Sep 19, 2026
62200a7
changelog: fragment for #10728 (property-fn param callback lock)
Sep 19, 2026
d4ef732
chore: release merge train 224 as v0.5.1603
Sep 19, 2026
87c75bc
fix(tooling): classify four net.Socket providers and unmask the ledge…
Sep 19, 2026
2191084
docs: changelog fragment for #10740
Sep 19, 2026
b3f98a7
refactor(stdlib): remove uuid native binding
Sep 19, 2026
b34e07c
changelog: add fragment for #10701 (uuid native binding removal)
Sep 19, 2026
053b9cc
chore: release merge train 225 as v0.5.1604
Sep 19, 2026
ab6b210
chore(bindings): remove axios native binding, compile real axios from…
perry-bot Sep 18, 2026
041b7ed
chore: rename changelog fragment to PR #10679, fix cross-reference
perry-bot Sep 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
18 changes: 18 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -586,6 +586,24 @@ jobs:
python3 scripts/check_node_version_consistency.py --self-test
python3 scripts/check_node_version_consistency.py

# perry-codegen does NOT depend on perry-runtime, yet it bakes the
# collector's header layout into emitted code: the inline `new` path
# stores a packed GcHeader word as a compile-time constant (#8122) and
# every class-field / element-shape guard masks that word against a
# literal. Both sides carried their own copy of GC_TYPE_OBJECT,
# GC_FLAG_FORWARDED, GC_OBJ_TYPED_LAYOUT_INTACT and friends, held together
# only by a comment -- the `debug_assert_eq!` that looks like it checks
# them compares codegen's constant to a string literal (a tautology) and
# is compiled out of release and perry-dev anyway. A renumbering in the
# runtime therefore compiled clean, passed every suite, and shipped a
# binary whose objects the collector misreads. Build-free, so it belongs
# in `lint`, which IS a required context.
- name: GC header constant consistency
if: ${{ !cancelled() }}
run: |
python3 scripts/check_gc_header_constants.py --self-test
python3 scripts/check_gc_header_constants.py

# #7341 layer 3. A RuntimeHandleScope gives an object liveness; it does
# nothing for a raw pointer already read out of the slot. Every rooting bug
# in the quarantine sweep had rooting ALREADY -- what was missing was
Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.1596
**Current Version:** 0.5.1604


## TypeScript Parity Status
Expand Down
Loading
Loading