aboutsummaryrefslogtreecommitdiff
path: root/cloogle.tex
diff options
context:
space:
mode:
Diffstat (limited to 'cloogle.tex')
-rw-r--r--cloogle.tex81
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}