Type-Safe Memory Management
in Cyclone
The Legacy of C
Buffers are Not the Only
Problem
C Is Also Very Useful:
The Cyclone Project
Key Technologies
Cyclone in Practice
Rest of the Talk
Hello World
Extended Qualifiers
Using Qualifiers Effectively
Explicit Checks
Flow Analysis
Thus Far...
Dangling Pointers in Cyclone
Points: what you think you wrote
Points: what you really
wrote
Points Continued
Points Inferred
Region Subtyping
Region Subtyping, contd.
Dangling Pointers Revisited
Ensuring Soundness
Live Region Sets
Beyond Stack Allocation
Lexical Arena Allocation
Lexical Arena Allocation
Lexical Arena Allocation
Lexical Arena Allocation
Lexical Arena Allocation
Lexical Arena Allocation
Lexical Arena Allocation
Lexical Arena Allocation
Runtime Organization
Lexical Region Drawbacks
To Address these Issues
Prelim. Results for MediaNET
Dynamic Arenas
Notes on Dynamic Arenas
Unique Pointers
Copying Kills
Flow Analysis
Joins
Sharing Unique Pointers
Swap to the Rescue
Example: Imperative Reversal
Unifying U and r
Alias Declarations
From the List Library
Compiler Can Often Infer
Alias:
Notes on Alias Declarations
Reference Counting:
Summary:
What Next?
For more info: