From e6e07a7cef3baaf2751438efa0b70828ef1b1da5 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Fri, 27 Apr 2012 12:51:59 +0100 Subject: [PATCH] strategy: wip --- article.tex | 18 ++++++++++++++---- strategy.tex | 28 ++++++++++++++++++++++++++-- 2 files changed, 40 insertions(+), 6 deletions(-) diff --git a/article.tex b/article.tex index b37edd5..8ecdbc3 100644 --- a/article.tex +++ b/article.tex @@ -99,10 +99,20 @@ \newcommand{\hasdep}{\succ} \newcommand{\isdep}{\prec} -\newcommand{\grefzc}{ T^0_{\pc} } -\newcommand{\grefcc}{ T_{\pc} } -\newcommand{\grefuc}{ T'_{\pc} } -\newcommand{\greffc}{ T^*_{\pc} } +\newcommand{\grefz}{ T^0 } +\newcommand{\grefc}{ T } +\newcommand{\grefu}{ T' } +\newcommand{\greff}{ T^* } + +\newcommand{\grefza}[1]{ \grefz_{#1} } +\newcommand{\grefca}[1]{ \grefc_{#1} } +\newcommand{\grefua}[1]{ \grefu_{#1} } +\newcommand{\greffa}[1]{ \greff_{#1} } + +\newcommand{\grefzc}{ \grefza \pc } +\newcommand{\grefcc}{ \grefca \pc } +\newcommand{\grefuc}{ \grefua \pc } +\newcommand{\greffc}{ \greffa \pc } %\newcommand{\bigforall}{\mathop{\hbox{\huge$\forall$}}} \newcommand{\bigforall}{% diff --git a/strategy.tex b/strategy.tex index a718aec..532b24e 100644 --- a/strategy.tex +++ b/strategy.tex @@ -98,8 +98,32 @@ for $\pc' = \p$. \section{Execution phase} - - +We process commit sets from the bottom up according to the relation +$\hasdep$. For each commit set $\pc$ we construct $\greffc$ from +$\grefzc$, as planned. By construction, $\hasdep$ has $\patchof{L}$ +as its maximum, so this operation will finish by updating +$\greffa{\patchof{L}}$. + +After we are done, the result has the following properties: +\[ \eqn{Best Tip}{ + \bigforall_{E_i \in \set E_{\pc}} \greffc \ge E_i +}\] +\[ \eqn{Perfect Contents}{ + \greffc \haspatch \p \equiv \pc \hasdep \py +}\] + +For brevity we will write $\grefu$ for $\grefuc$, etc. We will start +out with $\grefc = \grefz$, and at each step of the way construct some +$\grefu$ from $\grefc$. The final $\grefu$ becomes $\greff$. + +\subsection{Preparation} + +Firstly, we will check each $E_i$ for being $\ge \grefc$. If +it is, are we fast forward to $E_i$ +--- formally, $\grefu = \text{max}(\grefc, E_i)$ --- +and drop $E_i$ from the planned ordering. + +\subsection{Merge Contributors for UP TO HERE} with $M=M_j, L=T_{\pc,j-1}, R=E_j$, and calculate what the resulting desired direct dependencies file -- 2.30.2