Index: doc/theses/andrew_beach_MMath/exception-layout.fig
===================================================================
--- doc/theses/andrew_beach_MMath/exception-layout.fig	(revision 9b0bb792bd70586c431f8c723443af01cbc51a9d)
+++ doc/theses/andrew_beach_MMath/exception-layout.fig	(revision 9b0bb792bd70586c431f8c723443af01cbc51a9d)
@@ -0,0 +1,35 @@
+#FIG 3.2  Produced by xfig version 3.2.7b
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 1
+	 1305 2250
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 1
+	 1305 2250
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 225 405 495 405
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 225 765 495 765
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 225 1305 495 1305
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 2610 405 2340 405
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 2610 1305 2340 1305
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 240.00 240.00
+	 2475 405 2475 2070
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 240.00 240.00
+	 360 405 360 2070
+4 0 0 50 -1 0 12 0.0000 4 135 1080 2700 585 Fixed Header\001
+4 0 0 50 -1 0 12 0.0000 4 135 1710 540 990 Cforall Information\001
+4 0 0 50 -1 0 12 0.0000 4 165 1530 540 585 _Unwind_Exception\001
+4 0 0 50 -1 0 12 0.0000 4 165 1260 540 1530 User Exception\001
+4 0 0 50 -1 0 12 0.0000 4 165 1170 2655 1530 Variable Body\001
+4 0 0 50 -1 0 12 0.0000 4 165 1260 2655 1215 (Fixed Offset)\001
Index: doc/theses/andrew_beach_MMath/existing.tex
===================================================================
--- doc/theses/andrew_beach_MMath/existing.tex	(revision c21f5a90db9704db1b7a16d7af9d651f609df64b)
+++ doc/theses/andrew_beach_MMath/existing.tex	(revision 9b0bb792bd70586c431f8c723443af01cbc51a9d)
@@ -199,5 +199,5 @@
 forall(dtype T)
 struct node {
-	node(T) * next;  // generic linked node
+	node(T) * next;
 	T * data;
 }
@@ -238,5 +238,5 @@
 \begin{cfa}
 coroutine CountUp {
-	unsigned int next; // communication variable
+	unsigned int next;
 }
 CountUp countup;
@@ -308,5 +308,5 @@
 {
 	StringWorker stringworker; // fork thread running in "main"
-} // implicitly join with thread $\(\Rightarrow\)$ wait for completion
+} // <- implicitly join with thread / wait for completion
 \end{cfa}
 The thread main is where a new thread starts execution after a fork operation
Index: doc/theses/andrew_beach_MMath/implement.tex
===================================================================
--- doc/theses/andrew_beach_MMath/implement.tex	(revision c21f5a90db9704db1b7a16d7af9d651f609df64b)
+++ doc/theses/andrew_beach_MMath/implement.tex	(revision 9b0bb792bd70586c431f8c723443af01cbc51a9d)
@@ -124,13 +124,5 @@
 
 \begin{figure}
-\begin{cfa}
-type_id
-parent_field0
-...
-parent_fieldN
-child_field0
-...
-child_fieldN
-\end{cfa}
+\input{vtable-layout}
 \caption{Virtual Table Layout}
 \label{f:VirtualTableLayout}
@@ -171,5 +163,5 @@
 coroutine Example {
 	// fields
-}
+};
 \end{cfa}
 
@@ -337,11 +329,10 @@
 A personality function can preform different actions depending on how it is
 called.
-\begin{lstlisting}[language=C,{moredelim=**[is][\color{red}]{@}{@}}]
-typedef _Unwind_Reason_Code (*@_Unwind_Personality_Fn@) (
-	_Unwind_Action @action@,
-	_Unwind_Exception_Class @exception_class@,
-	_Unwind_Exception * @exception@,
-	struct _Unwind_Context * @context@
-);
+\begin{lstlisting}
+typedef _Unwind_Reason_Code (*_Unwind_Personality_Fn) (
+	_Unwind_Action action,
+	_Unwind_Exception_Class exception_class,
+	_Unwind_Exception * exception,
+	struct _Unwind_Context * context);
 \end{lstlisting}
 The @action@ argument is a bitmask of possible actions:
@@ -427,11 +418,11 @@
 function and the stop parameter. The stop function has a similar interface as a
 personality function, except it is also passed the stop parameter.
-\begin{lstlisting}[language=C,{moredelim=**[is][\color{red}]{@}{@}}]
-typedef _Unwind_Reason_Code (*@_Unwind_Stop_Fn@)(
-	_Unwind_Action @action@,
-	_Unwind_Exception_Class @exception_class@,
-	_Unwind_Exception * @exception@,
-	struct _Unwind_Context * @context@,
-	void * @stop_parameter@);
+\begin{lstlisting}
+typedef _Unwind_Reason_Code (*_Unwind_Stop_Fn)(
+	_Unwind_Action action,
+	_Unwind_Exception_Class exception_class,
+	_Unwind_Exception * exception,
+	struct _Unwind_Context * context,
+	void * stop_parameter);
 \end{lstlisting}
 
@@ -493,12 +484,5 @@
 
 \begin{figure}
-\begin{verbatim}
-Fixed Header  | _Unwind_Exception   <- pointer target
-              |
-              | Cforall storage
-              |
-Variable Body | the exception       <- fixed offset
-              V ...
-\end{verbatim}
+\input{exception-layout}
 \caption{Exception Layout}
 \label{f:ExceptionLayout}
@@ -525,8 +509,7 @@
 \begin{figure}
 \centering
-% Andrew: Figure out what these do and give them better names.
-\newsavebox{\myboxA}
-\newsavebox{\myboxB}
-\begin{lrbox}{\myboxA}
+\newsavebox{\codeBox}
+\newsavebox{\stackBox}
+\begin{lrbox}{\codeBox}
 \begin{lstlisting}[language=CFA,{moredelim=**[is][\color{red}]{@}{@}}]
 unsigned num_exceptions = 0;
@@ -551,12 +534,22 @@
 \end{lrbox}
 
-\begin{lrbox}{\myboxB}
+\begin{lrbox}{\stackBox}
 \begin{lstlisting}
+| try-finally
+| try-catch (Example)
+throws()
+| try-finally
+| try-catch (Example)
+throws()
+| try-finally
+| try-catch (Example)
+throws()
+main()
 \end{lstlisting}
 \end{lrbox}
 
-{\usebox\myboxA}
+{\usebox\codeBox}
 \hspace{25pt}
-{\usebox\myboxB}
+{\usebox\stackBox}
 
 \caption{Multiple Exceptions}
@@ -775,60 +768,5 @@
 
 \begin{figure}
-\begin{minipage}[l][][b]{0,2\textwidth}
-\begin{verbatim}
-
-
-  X <-
-  |
-  V
-  X
-  |
-  V
-  X
-\end{verbatim}
-Initial State
-\end{minipage}
-\begin{minipage}[l][][b]{0,2\textwidth}
-\begin{verbatim}
-
-
-  X
-  |
-  V
-  X <-
-  |
-  V
-  X
-\end{verbatim}
-Handler Found
-\end{minipage}
-\begin{minipage}[l][][b]{0,2\textwidth}
-\begin{verbatim}
-  X <-
- /
-/ X
-| |
-\ V
-  X
-  |
-  V
-  X
-\end{verbatim}
-Try Block Added
-\end{minipage}
-\begin{minipage}[l][][b]{0,2\textwidth}
-\begin{verbatim}
-
-
-  X <-
-  |
-  V
-  X
-  |
-  V
-  X
-\end{verbatim}
-Handler Done
-\end{minipage}
+\input{resumption-marking}
 \caption{Resumption Marking}
 \label{f:ResumptionMarking}
Index: doc/theses/andrew_beach_MMath/resumption-marking.fig
===================================================================
--- doc/theses/andrew_beach_MMath/resumption-marking.fig	(revision 9b0bb792bd70586c431f8c723443af01cbc51a9d)
+++ doc/theses/andrew_beach_MMath/resumption-marking.fig	(revision 9b0bb792bd70586c431f8c723443af01cbc51a9d)
@@ -0,0 +1,72 @@
+#FIG 3.2  Produced by xfig version 3.2.7b
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+6 5985 1530 6165 3105
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6075 1620 90 90 6075 1620 6075 1710
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6075 2340 90 90 6075 2340 6075 2430
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6075 3015 90 90 6075 3015 6075 3105
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 6075 1755 6075 2205
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 6075 2475 6075 2925
+-6
+6 3465 1530 3645 3105
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3555 1620 90 90 3555 1620 3555 1710
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3555 2340 90 90 3555 2340 3555 2430
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3555 3015 90 90 3555 3015 3555 3105
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 3555 1755 3555 2205
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 3555 2475 3555 2925
+-6
+6 2115 1530 2295 3105
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2205 1620 90 90 2205 1620 2205 1710
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2205 2340 90 90 2205 2340 2205 2430
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2205 3015 90 90 2205 3015 2205 3105
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 2205 1755 2205 2205
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 2205 2475 2205 2925
+-6
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4905 1620 90 90 4905 1620 4905 1710
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4905 3015 90 90 4905 3015 4905 3105
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4905 945 90 90 4905 945 4905 1035
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4905 2340 90 90 4905 2340 4905 2430
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 2790 1620 2430 1620
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 4095 2340 3735 2340
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 6660 1620 6300 1620
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 5490 945 5130 945
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 4905 1755 4905 2205
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 4905 2475 4905 2925
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 4
+	1 1 1.00 60.00 120.00
+	 4770 1080 4590 1260 4590 2070 4770 2250
+4 0 0 50 -1 0 12 0.0000 4 135 1170 1980 3375 Initial State\001
+4 0 0 50 -1 0 12 0.0000 4 135 1170 3420 3375 Found Handler\001
+4 0 0 50 -1 0 12 0.0000 4 165 810 4770 3375 Try block\001
+4 0 0 50 -1 0 12 0.0000 4 135 900 4770 3555 in Handler\001
+4 0 0 50 -1 0 12 0.0000 4 165 1530 5940 3375 Handling Complete\001
Index: doc/theses/andrew_beach_MMath/vtable-layout.fig
===================================================================
--- doc/theses/andrew_beach_MMath/vtable-layout.fig	(revision 9b0bb792bd70586c431f8c723443af01cbc51a9d)
+++ doc/theses/andrew_beach_MMath/vtable-layout.fig	(revision 9b0bb792bd70586c431f8c723443af01cbc51a9d)
@@ -0,0 +1,25 @@
+#FIG 3.2  Produced by xfig version 3.2.7b
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 1
+	 1620 1665
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3510 1890 3645 1755
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3510 1170 3645 1305
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3645 1305 3645 1755
+4 0 0 50 -1 0 12 0.0000 4 165 630 2295 1305 type_id\001
+4 0 0 50 -1 0 12 0.0000 4 165 1170 2295 1500 parent_field0\001
+4 0 0 50 -1 0 12 0.0000 4 45 270 2295 1695 ...\001
+4 0 0 50 -1 0 12 0.0000 4 165 1170 2295 1890 parent_fieldN\001
+4 0 0 50 -1 0 12 0.0000 4 150 1080 2295 2085 child_field0\001
+4 0 0 50 -1 0 12 0.0000 4 45 270 2295 2280 ...\001
+4 0 0 50 -1 0 12 0.0000 4 150 1080 2295 2475 child_fieldN\001
+4 0 0 50 -1 0 12 0.0000 4 135 1170 3780 1395 Parent Prefix\001
