Function: Implement heap allocators and reference types (opaque pointers, arenas, worlds) with higher-level semantics that support transparent Hudak aggregate update optimization.
-
Input
- Allocation/deallocation requests tagged with memory type (private/shared/TLS/enclave).
- Safety policies (stack smashing protection, hardened heaps).
- Program IR marking aggregates (arrays, records) and update patterns.
-
Processing
- Use appropriate allocator strategy per memory type/kind.
- Track concrete metadata for GC and debuggers
- Track abstract metadata for abstract interpretation/verification (ownership, region, lifetime).
- Analyze patterns of functional updates to aggregates. Hudak aggregate update optimization/compiler analysis (hereafter called "automatic destructive update"). Prove when updates can be implemented in-place without changing semantics. isp.uni-luebeck aggregate-update analysis affects what can safely be transformed into destructive updates. dl.acm
- Integrate with “worlds”/arena abstractions for memory virtualization and C FFI.
-
Output
- Stable references to objects and aggregates (pointers/references).
- Region/world descriptors supporting snapshot/restore and world merging.
- Transformation decisions for aggregates (persistent vs. in-place).
Key references
Function: Implement heap allocators and reference types (opaque pointers, arenas, worlds) with higher-level semantics that support transparent Hudak aggregate update optimization.
Input
Processing
Output
Key references