diff options
Diffstat (limited to 'cloogle.tex')
-rw-r--r-- | cloogle.tex | 81 |
1 files changed, 20 insertions, 61 deletions
diff --git a/cloogle.tex b/cloogle.tex index 9cc29ac..fac9f80 100644 --- a/cloogle.tex +++ b/cloogle.tex @@ -77,7 +77,6 @@ \end{frame} \section{Functionality} -\subsection{Overview} \begin{frame}{Functionality} \centering \begin{tabular}{l l} @@ -88,48 +87,6 @@ \end{tabular} \end{frame} -\subsection{Efficient unification search} -\begin{frame}{Efficient unification search} - \begin{itemize}[<+->] - \item With $\pm15,000$ functions, brute force unification search takes too long - \item Grouping types together still gives $\pm7,500$ unique types - \item If type $t$ generalises $u$, any $v$ that unifies with $u$ will also unify with $t$ - \begin{itemize} - \item Conversely, if $v$ does not unify with $t$ it will not unify with $u$ - \end{itemize} - \item This gives a partial order on types: - - \begin{center} - \begin{tikzpicture}[level distance=2em] - \tikzstyle{level 1}=[sibling distance=14em] - \tikzstyle{level 2}=[sibling distance=7em] - \tikzstyle{level 3}=[sibling distance=2em] - \node {$a$} - child {node {$a \rightarrow b$} - child {node {$Int \rightarrow m~a$} child {node {\vdots}}} - child {node {$a~a \rightarrow a$} child {node {\vdots}} child {node {\vdots}}}} - child {node {$f~Real$} - child {node {$Maybe~Real$}} - child {node {$Either~a~Real$} child {node {\vdots}}}}; - \end{tikzpicture} - \end{center} - - \item Early pruning speeds up unification search with a factor of $2-3$! - \end{itemize} -\end{frame} - -\begin{frame}[shrink]{Efficient unification search} - \begin{itemize}[<+->] - \item I would show the full tree, but didn't find a viewer that wouldn't crash - \item Here is a detail of the tree for 5,000 functions: - - \medskip - \begin{center} - \includegraphics[width=\textwidth]{typetree-detail} - \end{center} - \end{itemize} -\end{frame} - \section{Architecture} \subsection{Overview} \begin{frame}{Architecture} @@ -164,6 +121,8 @@ fopen StdFile.dcl 27 ... \end{minted} + \pause + \item How to use Cloogle to generate tagfiles? \end{itemize} \end{frame} \begin{frame}{Running locally: old architecture} @@ -238,8 +197,8 @@ \section*{The end} -\subsection*{Discussion} -\begin{frame}[fragile]{Discussion} +\subsection*{Evaluation} +\begin{frame}[fragile]{Evaluation} \begin{itemize}[<+->] \item The first generation of students was very enthusiastic \begin{itemize} @@ -340,15 +299,15 @@ \begin{description}[Syntax constructs] \small - \item[Modules] 750 - \item[Functions] 15,299 - \item[Unique types] 7,639 + \item[Modules] 765 + \item[Functions] 15,439 + \item[Unique types] 7,610 \item[Type tree depth] 8 - \item[Type definitions] 2,195 - \item[Classes] 262 - \item[Instances] 1958 - \item[Derivations] 1,182 - \item[Syntax constructs] 35 + \item[Type definitions] 2,218 + \item[Classes] 274 + \item[Instances] 1986 + \item[Derivations] 1,175 + \item[Syntax constructs] 37 \end{description} \end{itemize} \end{column} @@ -359,13 +318,13 @@ \begin{description}[Bourne Shell] \small - \item[Clean] 4,739 - \item[JavaScript] 1,657 - \item[PHP] 831 - \item[HTML] 569 - \item[CSS] 406 - \item[Python] 110 - \item[Bourne Shell] 71 + \item[Clean] 4,811 + \item[JavaScript] 1,717 + \item[PHP] 857 + \item[HTML] 580 + \item[CSS] 440 + \item[Python] 182 + \item[Bourne Shell] 104 \end{description} \end{itemize} \end{column} @@ -377,7 +336,7 @@ \end{itemize} \setcounter{footnote}{1} - \footnotetext{2017-10-28} + \footnotetext{2018-01-01} \setcounter{footnote}{2} \footnotetext{On the web frontend and submodules, excluding the Clean compiler} \end{frame} |