Attention une mise à jour du service Gitlab va être effectuée le mardi 18 janvier (et non lundi 17 comme annoncé précédemment) entre 18h00 et 18h30. Cette mise à jour va générer une interruption du service dont nous ne maîtrisons pas complètement la durée mais qui ne devrait pas excéder quelques minutes.

Commit 99029791 authored by Ludovic Courtès's avatar Ludovic Courtès
Browse files

article: Add dependency graph.

* article/guix.scm (libchop-graph.dot, libchop-graph.pdf): New variables.
(article.pdf): Use it.
* article/content.tex (Choosing a Revision): Add figure and reference it.
parent aa4af56a
......@@ -86,6 +86,12 @@ would \emph{also} require building versions of Autoconf, Automake, and
Libtool that were current back then since today's versions are
incompatible. Fortunately, the ``downgrade cascade'' stops here.
\begin{figure}[ht!]
\label{fig:dependencies}
\caption{Dependency graph for the 2006 revision of libchop.}
\includegraphics[width=.7\paperwidth]{libchop-graph}
\end{figure}
The Guix-Past channel for GNU~Guix was developed to provide
reproducible, unambiguous definitions for all these software
packages: \url{https://gitlab.inria.fr/guix-hpc/guix-past}. It provides
......@@ -96,6 +102,11 @@ was chosen as dating to right before the submission of the paper for
the European Dependable Computing Conference (EDCC), where it was
eventually presented.
The resulting dependency graph---packages needed to be build this
libchop revision---is of course more complex. It is shown in
Figure~\ref{fig:dependencies} for reference.
Section~\ref{sec:reproducing} will get back to this graph.
\section{Running the Benchmarks}
\begin{figure}[ht!]
......@@ -111,3 +122,4 @@ eventually presented.
\end{figure}
\section{Reproducing this Article}
\label{sec:reproducing}
......@@ -18,6 +18,8 @@
;; guix build -f guix.scm
(use-modules (guix) (gnu)
(guix graph)
((guix scripts graph) #:select (%package-node-type))
(guix git-download))
(define locales
......@@ -80,6 +82,25 @@
(string-suffix? ".bib" file)
(string-suffix? ".cls" file)))))
(define libchop-graph.dot
;; Package dependency graph of libchop.
(plain-file "libchop-graph.dot"
(call-with-output-string
(lambda (port)
(run-with-store #f
(export-graph (list (specification->package "libchop@0.0"))
port
#:node-type %package-node-type))))))
(define libchop-graph.pdf
;; PDF of the dependency graph.
(computed-file "libchop-graph.pdf"
#~(system* #$(file-append (specification->package "graphviz")
"/bin/dot")
"-Tpdf" "-Gratio=.78"
#$libchop-graph.dot "-o" #$output)))
;; Include the top-level file, which provides charts.
(include "../guix.scm")
......@@ -108,6 +129,9 @@
;; Provide the charts (PDF files) in the chart/ sub-directory.
(symlink #$benchmark-charts "charts")
;; Likewise for the dependency graph.
(symlink #$libchop-graph.pdf "libchop-graph.pdf")
(invoke "latexmk" "-pdf"
"-pdflatex=xelatex -interaction=nonstopmode"
"-use-make" "article.tex")
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment