Skip to content

Commit c609b77

Browse files
author
Ralph Küpper
committed
fix(ci): repair split-induced feature-gating + audit-path regressions
Three consequences of the file splits, each invisible under default features (which is why local `cargo check` missed them): - perry-stdlib common/dispatch.rs: the `dispatch_sqlite_{db,stmt}` re-export was unconditional, but those fns are `#[cfg(feature="database-sqlite")]`. Under an auto-optimize build that strips database-sqlite (compiler-output- regression), the re-export referenced configured-out items (E0432). Gated the re-export to match. Verified via a real auto-opt compile (features=crypto). - perry-stdlib container/mod.rs: the `js_container_*`/`js_compose_*` FFI fns were defined directly in the trunk before the split; moving them into siblings dropped them from the `container::` path, breaking by-path consumers (container_ffi_tests: 20×E0425). Re-export the sibling FFI surface. Verified by compiling the test with --features container. - scripts/addr_class_allowlist.txt: the grandfathered gcheader-cast / band-literal probes moved to new sibling paths; added directory-prefix allowlist entries for the split dirs so the Address-classification audit (lint) passes again. Fixes lint, compiler-output-regression, Hermetic (A+B) and the Container Tests Gate (which gates on Hermetic).
1 parent d2f752d commit c609b77

3 files changed

Lines changed: 30 additions & 0 deletions

File tree

crates/perry-stdlib/src/common/dispatch.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ pub(crate) use emitter_als::{
3131
};
3232
#[cfg(any(feature = "bundled-events", feature = "external-events-construct"))]
3333
pub(crate) use emitter_als::{dispatch_event_emitter_method, dispatch_event_emitter_property};
34+
#[cfg(feature = "database-sqlite")]
3435
pub(crate) use sqlite::{dispatch_sqlite_db, dispatch_sqlite_stmt};
3536

3637
#[cfg(all(

crates/perry-stdlib/src/container/mod.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,18 @@ mod lifecycle;
1616
mod logs_exec;
1717
mod workload;
1818

19+
// Re-export the `#[no_mangle]` FFI surface (js_container_* / js_compose_* /
20+
// js_workload_*) at the `container::` path. These fns were defined directly in
21+
// this module before the split, so by-path consumers (e.g. the
22+
// `container_ffi_tests` integration test referencing
23+
// `perry_stdlib::container::js_container_run`) keep resolving.
24+
pub use backend_ctl::*;
25+
pub use compose_ffi::*;
26+
pub use images::*;
27+
pub use lifecycle::*;
28+
pub use logs_exec::*;
29+
pub use workload::*;
30+
1931
mod mod_private {
2032
use super::get_global_backend;
2133
use crate::container::backend::ContainerBackend;

scripts/addr_class_allowlist.txt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,3 +124,20 @@ crates/perry-runtime/src/value/dynamic_object.rs | * | pre-existing GcHeader pro
124124
crates/perry-runtime/src/value/to_string.rs | * | pre-existing GcHeader probe predating addr_class; address validated by call-site guards (magnitude/registry/is_valid_obj_ptr) -- migrate to addr_class::try_read_gc_header in a follow-up
125125
crates/perry-runtime/src/wasi.rs | * | pre-existing GcHeader probe predating addr_class; address validated by call-site guards (magnitude/registry/is_valid_obj_ptr) -- migrate to addr_class::try_read_gc_header in a follow-up
126126
crates/perry-runtime/src/weakref.rs | * | pre-existing GcHeader probe predating addr_class; address validated by call-site guards (magnitude/registry/is_valid_obj_ptr) -- migrate to addr_class::try_read_gc_header in a follow-up
127+
#
128+
# Split-file siblings (chore: split large files off the size-gate allowlist, #1435).
129+
# These directories hold code moved verbatim out of the grandfathered trunks
130+
# above when those files were split into sub-modules; same probes, new paths.
131+
crates/perry-runtime/src/object/field_get_set/ | * | pre-existing GcHeader probe predating addr_class; address validated by call-site guards (magnitude/registry/is_valid_obj_ptr) -- migrate to addr_class::try_read_gc_header in a follow-up (split of field_get_set.rs)
132+
crates/perry-runtime/src/object/native_call_method/ | * | pre-existing GcHeader probe predating addr_class; address validated by call-site guards (magnitude/registry/is_valid_obj_ptr) -- migrate to addr_class::try_read_gc_header in a follow-up (split of native_call_method.rs)
133+
crates/perry-runtime/src/object/object_ops/ | * | pre-existing GcHeader probe predating addr_class; address validated by call-site guards (magnitude/registry/is_valid_obj_ptr) -- migrate to addr_class::try_read_gc_header in a follow-up (split of object_ops.rs)
134+
crates/perry-runtime/src/object/global_this/ | * | pre-existing GcHeader probe predating addr_class; address validated by call-site guards (magnitude/registry/is_valid_obj_ptr) -- migrate to addr_class::try_read_gc_header in a follow-up (split of global_this.rs)
135+
crates/perry-runtime/src/object/class_registry/ | * | pre-existing GcHeader probe predating addr_class; address validated by call-site guards (magnitude/registry/is_valid_obj_ptr) -- migrate to addr_class::try_read_gc_header in a follow-up (split of class_registry.rs)
136+
crates/perry-runtime/src/object/descriptor_state.rs | * | pre-existing GcHeader probe predating addr_class; address validated by call-site guards (magnitude/registry/is_valid_obj_ptr) -- migrate to addr_class::try_read_gc_header in a follow-up (split of object/mod.rs)
137+
crates/perry-runtime/src/object/to_string_tag.rs | * | pre-existing GcHeader probe predating addr_class; address validated by call-site guards (magnitude/registry/is_valid_obj_ptr) -- migrate to addr_class::try_read_gc_header in a follow-up (split of object/mod.rs)
138+
crates/perry-runtime/src/symbol/ | * | pre-existing GcHeader probe predating addr_class; address validated by call-site guards (magnitude/registry/is_valid_obj_ptr) -- migrate to addr_class::try_read_gc_header in a follow-up (split of symbol.rs)
139+
crates/perry-runtime/src/typedarray/ | * | pre-existing GcHeader probe predating addr_class; address validated by call-site guards (magnitude/registry/is_valid_obj_ptr) -- migrate to addr_class::try_read_gc_header in a follow-up (split of typedarray/mod.rs)
140+
crates/perry-runtime/src/process/ | * | pre-existing GcHeader probe predating addr_class; address validated by call-site guards (magnitude/registry/is_valid_obj_ptr) -- migrate to addr_class::try_read_gc_header in a follow-up (split of process.rs)
141+
crates/perry-runtime/src/object/native_module/constants.rs | "O_SYMLINK" => Some(0x200000), | fs.constants O_SYMLINK flag value; unrelated to the handle bands (split of native_module.rs)
142+
crates/perry-runtime/src/child_process/value_util.rs | * | pre-existing GcHeader probe predating addr_class; address validated by call-site guards (magnitude/registry/is_valid_obj_ptr) -- migrate to addr_class::try_read_gc_header in a follow-up (split of child_process/mod.rs)
143+
crates/perry-runtime/src/closure/dispatch/ | * | pre-existing GcHeader probe predating addr_class; address validated by call-site guards (magnitude/registry/is_valid_obj_ptr) -- migrate to addr_class::try_read_gc_header in a follow-up (split of closure/dispatch.rs)

0 commit comments

Comments
 (0)