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
Automatically intercepts comparison bytecodes in reaction classes without explicit constraint calls:
97
+
1. A second-pass `ClassFileTransformer` observes `IF_ICMP*` and `IFEQ/IFLT/IFGE/IFGT/IFLE/IFNE` bytecodes
98
+
2. Uses a **DUP + void-record** strategy: duplicates comparison operands, records them via `InterceptionPathUtils.recordIcmp()`, then executes the original comparison unchanged
99
+
3. Constraints are bridged to Green expressions via `GalettePathConstraintBridge`
100
+
4.`PathUtils.getCurPCWithNativeConstraints()` merges native constraints with any explicit constraints
83
101
84
-
This approach prioritizes framework compatibility and reliability over full automation, avoiding bytecode verification issues while maintaining systematic path exploration capabilities.
102
+
This approach preserves the original bytecode stack layout (no frame invalidation) and avoids classloader deadlocks by using `ClassWriter(cr, 0)` without frame recomputation.
-**Native Interception Filtering**: The `--interception` mode currently captures all comparisons in `mir/` classes (including framework bookkeeping), producing more constraints than needed. Constraint filtering needs refinement to only retain comparisons involving symbolic variables.
440
+
-**Domain Constraints**: Must be manually specified based on domain knowledge
411
441
-**Third-party Libraries**: Cannot track decisions in external code
-**Domain Constraints**: Must be manually specified based on domain knowledge
443
+
-**jlink Compatibility**: The `galette-instrument` module must be built from a clean `galette-agent` (without interception modifications). The runtime agent adds interception support separately.
414
444
415
445
## Future Work
416
446
417
-
-Bytecode-level constraint extraction for full automation
447
+
-Improve native interception constraint filtering to match explicit registration accuracy (10 vs 5 paths currently)
418
448
- Support for additional transformation frameworks beyond Vitruvius
0 commit comments