Skip to content

0.1.1 Memory & Reference Representation #8

Description

@Mathnerd314

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready for workUnblocked issue, ready for active coding

    Projects

    Status
    Ready

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions