Main »

Ivy

Wiki Help

Login

edit SideBar

Ivy is a compiler and runtime library for an extended dialect of C that checks type, memory and concurrency safety. Ivy relies on a small number of lightweight annotations in the source code to keep time and space overheads reasonable. Ivy is implemented as a C-to-C compiler using gcc as its backend. The Ivy compiler driver, ivycc, is a direct drop-in replacement for gcc.

Ivy is available

Ivy is effectively three tools in one (from most mature to more experimental):

  • Deputy checks type and memory safety (array bounds, unions, use of void *, etc)
  • HeapSafe checks memory deallocations
  • SharC checks that memory is shared correctly in parallel programs

Currently, HeapSafe and SharC support only 32-bit targets (we need to upgrade the reference-counting support to handle 64-bit pointers).

These tools can be used independently or in any combination by passing the --deputy, --heapsafe and --sharc options to ivycc (if none of these options is used, ivycc essentially behaves like a normal C compiler). Please see the ivycc man page for a full description of ivycc's options.

The following documentation is available:

Finally, ivy-examples-1.0.tar.gz includes a number of single- and multi-threaded C programs converted to use Deputy, HeapSafe and SharC.

A mailing list for Ivy is available (this list also covers the earlier, standalone version of Deputy).

Earlier versions of Deputy and HeapSafe were available as standalone tools from http://deputy.cs.berkeley.edu and http://ivy.cs.berkeley.edu/heapsafe/ respectively.

Page last modified on October 20, 2008, at 12:43 PM

Edit - History - Print - Recent Changes (All) - Search

Warning: fopen(wiki.d/.flock): failed to open stream: Permission denied in /var/www/local/ivy.cs.berkeley.edu/ivywiki/pmwiki.php on line 417

PmWiki can't process your request

Cannot acquire lockfile

We are sorry for any inconvenience.

Warning: fopen(wiki.d/.flock): failed to open stream: Permission denied in /var/www/local/ivy.cs.berkeley.edu/ivywiki/pmwiki.php on line 417

PmWiki can't process your request

Cannot acquire lockfile

We are sorry for any inconvenience.