Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
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.1601
**Current Version:** 0.5.1602


## TypeScript Parity Status
Expand Down
Loading
Loading