Skip to content

Commit

Permalink
how it works
Browse files Browse the repository at this point in the history
  • Loading branch information
pshirshov committed Mar 11, 2019
1 parent df218d9 commit 9a0367a
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 9 deletions.
17 changes: 8 additions & 9 deletions 05-distage-scalaua/distage-scalaua.tex
Original file line number Diff line number Diff line change
Expand Up @@ -415,16 +415,15 @@ \section{\distage{} features}
\section{\distage{} internals}
\begin{frame}
\frametitle{How it works: Plans}
\distage
\distage takes your bindings and then:
\begin{enumerate}
\item represents each binding as an operation of simple Turing-incomplete DSL,
\item then uses dependency information to build turn the operations list into Directed Acyclic Graph,
\begin{itemize}
\item and breaks circular dependencies using \code{make\_proxy} operation,
\end{itemize}
\item then performs garbage collection,
\item then applies other transformations,
\item then uses topological sort to represent the DAG as a sequence of operations --- a Plan,
\item represents each binding as an operation of simple Turing-incomplete DSL (like \code{make}, \code{reference}, etc.),
\item uses dependency information to build turn the operations list into Directed Acyclic Graph, breaking circular dependencies if any,
\item resolves conflicts --- when one DAG node has several associated operations,
\item performs garbage collection,
\item applies other transformations (like resolves config usages),
\item applies topological sorting to represent the DAG as a sequence of operations --- a Plan,
\item the Plan may be introspected, printed, executed during compile-time by code generator or executed in run-time.
\end{enumerate}
\end{frame}

Expand Down
Binary file modified 05-distage-scalaua/target/distage-scalaua.pdf
Binary file not shown.

0 comments on commit 9a0367a

Please sign in to comment.