Research on Ivy has been conducted in a number of independent projects, each addressing a different issue:
- Autolocker?: lock-based atomic statements
- Jekyll: bi-directional translation between two languages allows C to be extended with an improved syntax and an advanced type system, while still allowing code to be edited as "raw C"
- Deputy: type safety (array bounds, unions, etc)
- HeapSafe: memory safety (checking frees)
- SafeDrive: using Deputy for driver safety in a Linux kernel
- SharC: checking data sharing strategies in concurrent programs
We are now at the point where we're specifying an actual Ivy language, and building a compiler. Our initial, 0.1 version of Ivy is a combination of the Deputy and HeapSafe projects, making Ivy 0.1 a type and memory safe (but still sequential) version of C. We are currently working on incorporating SharC into Ivy.