Index: doc/theses/fangren_yu_MMath/glossary.tex
===================================================================
--- doc/theses/fangren_yu_MMath/glossary.tex	(revision d9878815c295edc9ce535193cb04fcb36ab3c8b3)
+++ doc/theses/fangren_yu_MMath/glossary.tex	(revision d9878815c295edc9ce535193cb04fcb36ab3c8b3)
@@ -0,0 +1,80 @@
+% % Main glossary entries -- definitions of relevant terminology
+% \newglossaryentry{computer}
+% {
+% name=computer,
+% description={A programmable machine that receives input data,
+%                stores and manipulates the data, and provides
+%                formatted output}
+% }
+
+% % Nomenclature glossary entries -- New definitions, or unusual terminology
+% \newglossary*{nomenclature}{Nomenclature}
+% \newglossaryentry{dingledorf}
+% {
+% type=nomenclature,
+% name=dingledorf,
+% description={A person of supposed average intelligence who makes incredibly brainless misjudgments}
+% }
+
+% % List of Abbreviations (abbreviations type is built in to the glossaries-extra package)
+% \newabbreviation{aaaaz}{AAAAZ}{American Association of Amateur Astronomers and Zoologists}
+
+% % List of Symbols
+% \newglossary*{symbols}{List of Symbols}
+% \newglossaryentry{rvec}
+% {
+% name={$\mathbf{v}$},
+% sort={label},
+% type=symbols,
+% description={Random vector: a location in n-dimensional Cartesian space, where each dimensional component is determined by a random process}
+% }
+
+% Examples from template above
+
+\newabbreviation{raii}{RAII}{\Newterm{resource acquisition is initialization}}
+\newabbreviation{rtti}{RTTI}{\Newterm{run-time type information}}
+\newabbreviation{fcfs}{FCFS}{\Newterm{first-come first-served}}
+\newabbreviation{lifo}{LIFO}{\Newterm{last-in first-out}}
+\newabbreviation{fifo}{FIFO}{\Newterm{first-in first-out}}
+\newabbreviation{toctou}{TOCTOU}{\Newterm{time-of-check to time-of-use}}
+\newabbreviation{cas}{CAS}{\Newterm{compare-and-set (swap)}}
+\newabbreviation{dwcas}{DWCAS}{\Newterm{double-wide (width) compare-and-set (swap)}}
+\newabbreviation{dcas}{DCAS}{\Newterm{double compare-and-set (swap)}}
+\newabbreviation{qpcas}{QPCAS}{\Newterm{queue pointer compare-and-set (swap)}}
+\newabbreviation{ll}{LL}{\Newterm{load linked}}
+\newabbreviation{sc}{SC}{\Newterm{store conditional}}
+
+\newglossaryentry{actor}{
+name=actor,
+description={A basic unit of an actor system that can store local state and send messages to other actors.}
+}
+
+\newglossaryentry{gulp}{
+name={gulp},
+first={\Newterm{gulp}},
+description={Move the contents of message queue to a local queue of the executor thread using a single atomic instruction.}
+}
+
+\newglossaryentry{impl_concurrency}{
+name=implicit concurrency,
+first={\Newterm{implicit concurrency}},
+description={A class of concurrency features that abstract away explicit thread synchronization and mutual exclusion.}
+}
+
+\newglossaryentry{actor_model}{
+name=actor model,
+first={\Newterm{actor model}},
+description={A concurrent computation model, where tasks are broken into units of work that are distributed to actors in the form of messages.}
+}
+
+\newglossaryentry{actor_system}{
+name=actor system,
+first={\Newterm{actor system}},
+description={An implementation of the actor model.}
+}
+
+\newglossaryentry{synch_multiplex}{
+name=synchronous multiplexing,
+first={\Newterm{synchronous multiplexing}},
+description={synchronization waiting for some subset of a set of resources.}
+}
Index: doc/theses/fangren_yu_MMath/performance.tex
===================================================================
--- doc/theses/fangren_yu_MMath/performance.tex	(revision 2e94f3e75e25dd60ad53b8509b83a5cad21e5631)
+++ doc/theses/fangren_yu_MMath/performance.tex	(revision d9878815c295edc9ce535193cb04fcb36ab3c8b3)
@@ -1,3 +1,3 @@
 \chapter{Performance}
 
-If there are any perforamnce experiments.
+If there are any performance experiments.
Index: doc/theses/fangren_yu_MMath/uw-ethesis-frontpgs.tex
===================================================================
--- doc/theses/fangren_yu_MMath/uw-ethesis-frontpgs.tex	(revision 2e94f3e75e25dd60ad53b8509b83a5cad21e5631)
+++ doc/theses/fangren_yu_MMath/uw-ethesis-frontpgs.tex	(revision d9878815c295edc9ce535193cb04fcb36ab3c8b3)
@@ -1,5 +1,5 @@
 % T I T L E   P A G E
 % -------------------
-% Last updated October 23, 2020, by Stephen Carr, IST-Client Services
+% Last updated August 16, 2022, by IST-Client Services
 % The title page is counted as page `i' but we need to suppress the
 % page number. Also, we don't want any headers or footers.
@@ -13,18 +13,22 @@
         \vspace*{1.0cm}
 
-        {\Huge\bf Type Resolution in \CFA}
+        \Huge
+        {\bf Type Resolution in \CFA}
 
         \vspace*{1.0cm}
 
+        \normalsize
         by \\
 
         \vspace*{1.0cm}
 
-        {\Large Fangren Yu} \\
+        \Large
+        Fangren Yu \\
 
         \vspace*{3.0cm}
 
+        \normalsize
         A thesis \\
-        presented to the University of Waterloo \\
+        presented to the University of Waterloo \\ 
         in fulfillment of the \\
         thesis requirement for the degree of \\
@@ -43,31 +47,29 @@
 \end{titlepage}
 
-% The rest of the front pages should contain no headers and be numbered using
-% Roman numerals starting with `ii'.
+% The rest of the front pages should contain no headers and be numbered using Roman numerals starting with `ii'
 \pagestyle{plain}
 \setcounter{page}{2}
 
-\cleardoublepage % Ends the current page and causes all figures and tables
-% that have so far appeared in the input to be printed. In a two-sided
-% printing style, it also makes the next page a right-hand (odd-numbered)
-% page, producing a blank page if necessary.
+\cleardoublepage % Ends the current page and causes all figures and tables that have so far appeared in the input to be printed.
+% In a two-sided printing style, it also makes the next page a right-hand (odd-numbered) page, producing a blank page if necessary.
+\phantomsection    % allows hyperref to link to the correct page
 
 \begin{comment}
 % E X A M I N I N G   C O M M I T T E E (Required for Ph.D. theses only)
 % Remove or comment out the lines below to remove this page
+\addcontentsline{toc}{chapter}{Examining Committee}
 \begin{center}\textbf{Examining Committee Membership}\end{center}
   \noindent
-The following served on the Examining Committee for this thesis.
-The decision of the Examining Committee is by majority vote.
+The following served on the Examining Committee for this thesis. The decision of the Examining Committee is by majority vote.
   \bigskip
-
+  
   \noindent
 \begin{tabbing}
 Internal-External Member: \=  \kill % using longest text to define tab length
-External Examiner: \>  Bruce Bruce \\
+External Examiner: \>  Bruce Bruce \\ 
 \> Professor, Dept. of Philosophy of Zoology, University of Wallamaloo \\
-\end{tabbing}
+\end{tabbing} 
   \bigskip
-
+  
   \noindent
 \begin{tabbing}
@@ -79,5 +81,5 @@
 \end{tabbing}
   \bigskip
-
+  
   \noindent
   \begin{tabbing}
@@ -87,5 +89,5 @@
 \end{tabbing}
   \bigskip
-
+  
   \noindent
 \begin{tabbing}
@@ -95,5 +97,5 @@
 \end{tabbing}
   \bigskip
-
+  
   \noindent
 \begin{tabbing}
@@ -110,21 +112,21 @@
   % The following is a sample Declaration Page as provided by the GSO
   % December 13th, 2006.  It is designed for an electronic thesis.
+ \addcontentsline{toc}{chapter}{Author's Declaration}
  \begin{center}\textbf{Author's Declaration}\end{center}
-
+  
  \noindent
-I hereby declare that I am the sole author of this thesis. This is a true copy
-of the thesis, including any required final revisions, as accepted by my
-examiners.
+I hereby declare that I am the sole author of this thesis. This is a true copy of the thesis, including any required final revisions, as accepted by my examiners.
 
   \bigskip
-
+  
   \noindent
 I understand that my thesis may be made electronically available to the public.
 
 \cleardoublepage
+\phantomsection    % allows hyperref to link to the correct page
 
 % A B S T R A C T
 % ---------------
-
+\addcontentsline{toc}{chapter}{Abstract}
 \begin{center}\textbf{Abstract}\end{center}
 
@@ -132,21 +134,22 @@
 
 \cleardoublepage
+\phantomsection    % allows hyperref to link to the correct page
 
 % A C K N O W L E D G E M E N T S
 % -------------------------------
+\addcontentsline{toc}{chapter}{Acknowledgements}
+\begin{center}\textbf{Acknowledgements}\end{center}
 
-\begin{center}
-\textbf{Acknowledgements}
-
-I would like to thank ...
+I would like to thank all the little people who made this thesis possible.
 
 Finally, a special thank you to Huawei Canada for funding this work.
-\end{center}
+
 \cleardoublepage
+\phantomsection    % allows hyperref to link to the correct page
 
 \begin{comment}
 % D E D I C A T I O N
 % -------------------
-
+\addcontentsline{toc}{chapter}{Dedication}
 \begin{center}\textbf{Dedication}\end{center}
 
@@ -171,8 +174,23 @@
 % L I S T   O F   T A B L E S
 % ---------------------------
-% \addcontentsline{toc}{chapter}{List of Tables}
-% \listoftables
-% \cleardoublepage
-% \phantomsection		% allows hyperref to link to the correct page
+\addcontentsline{toc}{chapter}{List of Tables}
+\listoftables
+\cleardoublepage
+\phantomsection		% allows hyperref to link to the correct page
+
+% L I S T   O F   A B B R E V I A T I O N S
+% ---------------------------
+\renewcommand*{\abbreviationsname}{List of Abbreviations}
+\printglossary[type=abbreviations]
+\cleardoublepage
+\phantomsection		% allows hyperref to link to the correct page
+
+\begin{comment}
+% L I S T   O F   S Y M B O L S
+% ---------------------------
+\printglossary[type=symbols]
+\cleardoublepage
+\phantomsection		% allows hyperref to link to the correct page
+\end{comment}
 
 % Change page numbering back to Arabic numerals
Index: doc/theses/fangren_yu_MMath/uw-ethesis.tex
===================================================================
--- doc/theses/fangren_yu_MMath/uw-ethesis.tex	(revision 2e94f3e75e25dd60ad53b8509b83a5cad21e5631)
+++ doc/theses/fangren_yu_MMath/uw-ethesis.tex	(revision d9878815c295edc9ce535193cb04fcb36ab3c8b3)
@@ -1,8 +1,8 @@
 %======================================================================
-% University of Waterloo Thesis Template for LaTeX
-% Last Updated November, 2020
-% by Stephen Carr, IST Client Services,
+% University of Waterloo Thesis Template for LaTeX 
+% Last Updated August 2022
+% by IST Client Services, 
 % University of Waterloo, 200 University Ave. W., Waterloo, Ontario, Canada
-% FOR ASSISTANCE, please send mail to request@uwaterloo.ca
+% FOR ASSISTANCE, please send mail to helpdesk@uwaterloo.ca
 
 % DISCLAIMER
@@ -21,9 +21,10 @@
 
 % DON'T FORGET TO ADD YOUR OWN NAME AND TITLE in the "hyperref" package configuration below. 
-% THIS INFORMATION GETS EMBEDDED IN THE PDF FINAL PDF DOCUMENT.
+% Search for: PDFTITLE, PDFAUTHOR, PDFSUBJECT, and PDFKEYWORDS.
+% THIS INFORMATION GETS EMBEDDED IN THE FINAL PDF DOCUMENT.
 % You can view the information if you view properties of the PDF document.
 
-% Many faculties/departments also require one or more printed copies.
-% This template attempts to satisfy both types of output.
+% Many faculties/departments also require one or more printed copies. 
+% This template attempts to satisfy both types of output. 
 % See additional notes below.
 % It is based on the standard "book" document class which provides all necessary sectioning structures and allows multi-part theses.
@@ -32,5 +33,5 @@
 
 % For people who prefer to install their own LaTeX distributions on their own computers, and process the source files manually, the following notes provide the sequence of tasks:
-
+ 
 % E.g. to process a thesis called "mythesis.tex" based on this template, run:
 
@@ -51,5 +52,5 @@
 % Tip: Photographs should be cropped and compressed so as not to be too large.
 
-% To create a PDF output that is optimized for double-sided printing:
+% To create a PDF output that is optimized for double-sided printing: 
 % 1) comment-out the \documentclass statement in the preamble below, and un-comment the second \documentclass line.
 % 2) change the value assigned below to the boolean variable "PrintVersion" from " false" to "true".
@@ -61,5 +62,5 @@
 \documentclass[letterpaper,12pt,titlepage,oneside,final]{book}
 \usepackage[T1]{fontenc}	% Latin-1 => 256-bit characters, => | not dash, <> not Spanish question marks
-
+ 
 % For PDF, suitable for double-sided printing, change the PrintVersion variable below to "true" and use this \documentclass line instead of the one above:
 %\documentclass[letterpaper,12pt,titlepage,openright,twoside,final]{book}
@@ -68,5 +69,5 @@
 % If you have to, it's easier to make changes to nomenclature once here than in a million places throughout your thesis!
 \newcommand{\package}[1]{\textbf{#1}} % package names in bold text
-\newcommand{\cmmd}[1]{\textbackslash\texttt{#1}} % command name in tt font
+\newcommand{\cmmd}[1]{\textbackslash\texttt{#1}} % command name in tt font 
 \newcommand{\href}[1]{#1} % does nothing, but defines the command so the print-optimized version will ignore \href tags (redefined by hyperref pkg).
 %\newcommand{\texorpdfstring}[2]{#1} % does nothing, but defines the command
@@ -81,19 +82,31 @@
 %\usepackage{nomencl} % For a nomenclature (optional; available from ctan.org)
 \usepackage{amsmath,amssymb,amstext} % Lots of math symbols and environments
+\usepackage{fullpage,times,comment}
 \usepackage{xcolor}
 \usepackage{epic,eepic}
 \usepackage{graphicx}
-\usepackage{comment} % Removes large sections of the document.
 \usepackage{tabularx}
-\usepackage{subfigure}
+\usepackage[labelformat=simple,aboveskip=0pt,farskip=0pt,font=normalsize]{subfig}
+\renewcommand\thesubfigure{(\alph{subfigure})}
+% cfa macros used in the document
+\input{common}
+%\usepackageinput{common}
+\CFAStyle						% CFA code-style
+\lstset{language=CFA}					% default language
+\lstset{basicstyle=\linespread{0.9}\sf}			% CFA typewriter font
+\newcommand{\newtermFont}{\emph}
+\newcommand{\Newterm}[1]{\newtermFont{#1}}
+%\renewcommand{\newterm}[1]{\newtermFont{#1}}
+\newcommand{\uC}{$\mu$\CC}
+\newcommand{\PAB}[1]{{\color{red}PAB: #1}}
 
 % Hyperlinks make it very easy to navigate an electronic document.
 % In addition, this is where you should specify the thesis title and author as they appear in the properties of the PDF document.
-% Use the "hyperref" package
+% Use the "hyperref" package 
 % N.B. HYPERREF MUST BE THE LAST PACKAGE LOADED; ADD ADDITIONAL PKGS ABOVE
 \usepackage{url}
 \usepackage[dvips,pagebackref=true]{hyperref} % with basic options
 %\usepackage[pdftex,pagebackref=true]{hyperref}
-% N.B. pagebackref=true provides links back from the References to the body text. This can cause trouble for printing.
+		% N.B. pagebackref=true provides links back from the References to the body text. This can cause trouble for printing.
 \hypersetup{
     plainpages=false,       % needed if Roman numbers in frontpages
@@ -103,38 +116,40 @@
     pdffitwindow=false,     % window fit to page when opened
     pdfstartview={FitH},    % fits the width of the page to the window
-    pdftitle={High-Performance Concurrent Memory Allocation}, % title: CHANGE THIS TEXT!
-    pdfauthor={Mubeen Zulfiqar},    % author: CHANGE THIS TEXT! and uncomment this line
+    pdftitle={Type Resolution in \CFA}, % title: CHANGE THIS TEXT!
+    pdfauthor={Fangren Yu},    % author: CHANGE THIS TEXT! and uncomment this line
     pdfsubject={Cforall},  % subject: CHANGE THIS TEXT! and uncomment this line
-    pdfkeywords={Cforall} {storage allocation} {C language}, % optional list of keywords
+    pdfkeywords={Cforall} {type resolution} {C language}, % optional list of keywords
     pdfnewwindow=true,      % links in new window
     colorlinks=true,        % false: boxed links; true: colored links
     linkcolor=blue,         % color of internal links
-    citecolor=blue,        % color of links to bibliography
+    citecolor=blue,         % color of links to bibliography
     filecolor=magenta,      % color of file links
-    urlcolor=blue,           % color of external links
+    urlcolor=blue,          % color of external links
     breaklinks=true
 }
 \ifthenelse{\boolean{PrintVersion}}{   % for improved print quality, change some hyperref options
 \hypersetup{	% override some previously defined hyperref options
+%    colorlinks,%
     citecolor=black,%
     filecolor=black,%
     linkcolor=black,%
-    urlcolor=black
-}}{} % end of ifthenelse (no else)
-%\usepackage[dvips,plainpages=false,pdfpagelabels,pdfpagemode=UseNone,pagebackref=true,breaklinks=true,colorlinks=true,linkcolor=blue,citecolor=blue,urlcolor=blue]{hyperref}
+    urlcolor=black}
+}{} % end of ifthenelse (no else)
+
 \usepackage{breakurl}
 \urlstyle{sf}
 
-%\usepackage[automake,toc,abbreviations]{glossaries-extra} % Exception to the rule of hyperref being the last add-on package
-% If glossaries-extra is not in your LaTeX distribution, get it from CTAN (http://ctan.org/pkg/glossaries-extra),
-% although it's supposed to be in both the TeX Live and MikTeX distributions. There are also documentation and
+\usepackage[automake,toc,abbreviations]{glossaries-extra} % Exception to the rule of hyperref being the last add-on package
+\renewcommand*{\glstextformat}[1]{\textcolor{black}{#1}}
+% If glossaries-extra is not in your LaTeX distribution, get it from CTAN (http://ctan.org/pkg/glossaries-extra), 
+% although it's supposed to be in both the TeX Live and MikTeX distributions. There are also documentation and 
 % installation instructions there.
 
 % Setting up the page margins...
-\setlength{\textheight}{9in}
-\setlength{\topmargin}{-0.45in}
-\setlength{\headsep}{0.25in}
+%\setlength{\textheight}{9in}
+%\setlength{\topmargin}{-0.45in}
+%\setlength{\headsep}{0.25in}
 % uWaterloo thesis requirements specify a minimum of 1 inch (72pt) margin at the
-% top, bottom, and outside page edges and a 1.125 in. (81pt) gutter margin (on binding side).
+% top, bottom, and outside page edges and a 1.125 in. (81pt) gutter margin (on binding side). 
 % While this is not an issue for electronic viewing, a PDF may be printed, and so we have the same page layout for both printed and electronic versions, we leave the gutter margin in.
 % Set margins to minimum permitted by uWaterloo thesis regulations:
@@ -144,5 +159,5 @@
 % edge is less than 15 mm (0.6 in.)
 \setlength{\marginparsep}{0pt} % width of space between body text and margin notes
-\setlength{\evensidemargin}{0.125in} % Adds 1/8 in. to binding side of all
+\setlength{\evensidemargin}{0.125in} % Adds 1/8 in. to binding side of all 
 % even-numbered pages when the "twoside" printing option is selected
 \setlength{\oddsidemargin}{0.125in} % Adds 1/8 in. to the left of all pages when "oneside" printing is selected, and to the left of all odd-numbered pages when "twoside" printing is selected
@@ -153,5 +168,5 @@
 \setlength{\parskip}{\medskipamount}
 
-% The following statement controls the line spacing.
+% The following statement controls the line spacing.  
 % The default spacing corresponds to good typographic conventions and only slight changes (e.g., perhaps "1.2"), if any, should be made.
 \renewcommand{\baselinestretch}{1} % this is the default line space setting
@@ -166,17 +181,7 @@
 \let\cleardoublepage\clearemptydoublepage
 
-% Define Glossary terms (This is properly done here, in the preamble and
-% could also be \input{} from a separate file...)
-%\input{glossaries}
-%\makeglossaries
-
-% cfa macros used in the document
-\input{common}
-%\usepackageinput{common}
-\CFAStyle						% CFA code-style
-\lstset{language=CFA}					% default language
-\lstset{basicstyle=\linespread{0.9}\sf}			% CFA typewriter font
-\newcommand{\uC}{$\mu$\CC}
-\newcommand{\PAB}[1]{{\color{red}PAB: #1}}
+% Define Glossary terms (This is properly done here, in the preamble and could also be \input{} from a separate file...)
+\input{glossary}
+\makeglossaries
 
 %======================================================================
@@ -192,5 +197,5 @@
 % dedication, table of contents, list of tables, list of figures, nomenclature, etc.
 %----------------------------------------------------------------------
-\input{uw-ethesis-frontpgs}
+\input{uw-ethesis-frontpgs} 
 
 %----------------------------------------------------------------------
@@ -201,5 +206,4 @@
 % Tip: Putting each sentence on a new line is a way to simplify later editing.
 %----------------------------------------------------------------------
-\begin{sloppypar}
 
 \input{intro}
@@ -210,6 +214,4 @@
 \input{conclusion}
 
-\end{sloppypar}
-
 %----------------------------------------------------------------------
 % END MATERIAL
@@ -219,12 +221,12 @@
 % Bibliography
 
-% The following statement selects the style to use for references.
+% The following statement selects the style to use for references.  
 % It controls the sort order of the entries in the bibliography and also the formatting for the in-text labels.
 \bibliographystyle{plain}
-% This specifies the location of the file containing the bibliographic information.
+% This specifies the location of the file containing the bibliographic information.  
 % It assumes you're using BibTeX to manage your references (if not, why not?).
 \cleardoublepage % This is needed if the "book" document class is used, to place the anchor in the correct page, because the bibliography will start on its own page.
 % Use \clearpage instead if the document class uses the "oneside" argument
-\phantomsection  % With hyperref package, enables hyperlinking from the table of contents to bibliography
+\phantomsection  % With hyperref package, enables hyperlinking from the table of contents to bibliography             
 % The following statement causes the title "References" to be used for the bibliography section:
 \renewcommand*{\bibname}{References}
@@ -234,8 +236,8 @@
 
 \bibliography{pl,uw-ethesis}
-% Tip: You can create multiple .bib files to organize your references.
+% Tip: You can create multiple .bib files to organize your references. 
 % Just list them all in the \bibliogaphy command, separated by commas (no spaces).
 
-% The following statement causes the specified references to be added to the bibliography even if they were not cited in the text.
+% The following statement causes the specified references to be added to the bibliography even if they were not cited in the text. 
 % The asterisk is a wildcard that causes all entries in the bibliographic database to be included (optional).
 % \nocite{*}
@@ -245,5 +247,5 @@
 
 % The \appendix statement indicates the beginning of the appendices.
-\appendix
+% \appendix
 % Add an un-numbered title page before the appendices and a line in the Table of Contents
 % \chapter*{APPENDICES}
@@ -252,10 +254,9 @@
 % \input{appendix-matlab_plots.tex}
 
-% GLOSSARIES (Lists of definitions, abbreviations, symbols, etc.
-% provided by the glossaries-extra package)
+% GLOSSARIES (Lists of definitions, abbreviations, symbols, etc. provided by the glossaries-extra package)
 % -----------------------------
-%\printglossaries
-%\cleardoublepage
-%\phantomsection		% allows hyperref to link to the correct page
+\printglossary
+\cleardoublepage
+\phantomsection		% allows hyperref to link to the correct page
 
 %----------------------------------------------------------------------
