Cyclone User's Manual
Version 0.7, February 3, 2004
The latest version of this manual should be available at
http://www.cs.cornell.edu/projects/cyclone/
and
http://www.research.att.com/projects/cyclone/
.
Introduction
Acknowledgements
Cyclone for C Programmers
Getting Started
Pointers
Regions
Tagged Unions and Datatypes
Exceptions
Additional Features of Cyclone
GCC and C99 Additions
Tuples
Creating Arrays
Subtyping
Let Declarations
Polymorphic Functions
Polymorphic Data Structures
Abstract and Existential Types
Restrictions
Pointers
Pointer Subtyping
Pointer Coercions
Default Region Qualifiers
Static Expression Bounds
Tagged Unions and Datatypes
Tagged Unions
Datatypes
Extensible Datatypes
Pattern Matching
Let Declarations
Pattern Forms
Switch Statements
Type Inference
Polymorphism
Memory Management Via Regions
Introduction
Allocation
Common Uses
Unique Pointers
Reference-counted Pointers
Dynamic Regions
Type-Checking Regions
Namespaces
Varargs
Definite Assignment
Advanced Features
Existential Types
The Truth About Effects, Capabilities, and Region Bounds
Interprocedural Memory Initialization
Porting C code to Cyclone
Semi-Automatic Porting
Manually Translating C to Cyclone
Interfacing to C
Frequently Asked Questions
Libraries
C Libraries
<array.h>
<bitvec.h>
<buffer.h>
<core.h>
<dict.h>
<filename.h>
<fn.h>
<hashtable.h>
<iter.h>
<list.h>
<pp.h>
<queue.h>
<rope.h>
<set.h>
<slowdict.h>
<xarray.h>
Grammar
Installing Cyclone
Tools
The compiler
The lexer generator
The parser generator
The allocation profiler,
aprof
The C interface tool,
buildlib
This document was translated from L
A
T
E
X by
H
E
V
E
A and H
A
C
H
A
.