Skip to content

Commit ea9017b

Browse files
feat: add minimal dockerfile (#1352)
This PR adds a minimal dockerfile for the artifact evaluation. #898 had a rather large diff with main and included a few changes non strictly docker-related. However, for the time being, I'd like to start adding this minimal docker, which I will then update step-by-step as we finalize the structure of our evaluation.
1 parent b0253c5 commit ea9017b

File tree

8 files changed

+1885
-0
lines changed

8 files changed

+1885
-0
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
results/
2+
raw-data/
3+
plots/
4+
for-paper/raw-data/
5+
Dockerfile
6+
Makefile
Lines changed: 331 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,331 @@
1+
opencompl-ssa.tar
2+
*.tar # tarball
3+
4+
## Core latex/pdflatex auxiliary files:
5+
*.aux
6+
*.lof
7+
*.log
8+
*.lot
9+
*.fls
10+
*.out
11+
*.toc
12+
*.fmt
13+
*.fot
14+
*.cb
15+
*.cb2
16+
.*.lb
17+
18+
## Intermediate documents:
19+
*.dvi
20+
*.xdv
21+
*-converted-to.*
22+
# these rules might exclude image files for figures etc.
23+
# *.ps
24+
# *.eps
25+
# *.pdf
26+
27+
## Generated if empty string is given at "Please type another file name for output:"
28+
.pdf
29+
30+
## Bibliography auxiliary files (bibtex/biblatex/biber):
31+
*.bbl
32+
*.bcf
33+
*.blg
34+
*-blx.aux
35+
*-blx.bib
36+
*.run.xml
37+
38+
## Build tool auxiliary files:
39+
*.fdb_latexmk
40+
*.synctex
41+
*.synctex(busy)
42+
*.synctex.gz
43+
*.synctex.gz(busy)
44+
*.pdfsync
45+
46+
## Build tool directories for auxiliary files
47+
# latexrun
48+
latex.out/
49+
50+
## Auxiliary and intermediate files from other packages:
51+
# algorithms
52+
*.alg
53+
*.loa
54+
55+
# achemso
56+
acs-*.bib
57+
58+
# amsthm
59+
*.thm
60+
61+
# beamer
62+
*.nav
63+
*.pre
64+
*.snm
65+
*.vrb
66+
67+
# changes
68+
*.soc
69+
70+
# comment
71+
*.cut
72+
73+
# cprotect
74+
*.cpt
75+
76+
# elsarticle (documentclass of Elsevier journals)
77+
*.spl
78+
79+
# endnotes
80+
*.ent
81+
82+
# fixme
83+
*.lox
84+
85+
# feynmf/feynmp
86+
*.mf
87+
*.mp
88+
*.t[1-9]
89+
*.t[1-9][0-9]
90+
*.tfm
91+
92+
#(r)(e)ledmac/(r)(e)ledpar
93+
*.end
94+
*.?end
95+
*.[1-9]
96+
*.[1-9][0-9]
97+
*.[1-9][0-9][0-9]
98+
*.[1-9]R
99+
*.[1-9][0-9]R
100+
*.[1-9][0-9][0-9]R
101+
*.eledsec[1-9]
102+
*.eledsec[1-9]R
103+
*.eledsec[1-9][0-9]
104+
*.eledsec[1-9][0-9]R
105+
*.eledsec[1-9][0-9][0-9]
106+
*.eledsec[1-9][0-9][0-9]R
107+
108+
# glossaries
109+
*.acn
110+
*.acr
111+
*.glg
112+
*.glo
113+
*.gls
114+
*.glsdefs
115+
*.lzo
116+
*.lzs
117+
*.slg
118+
*.slo
119+
*.sls
120+
121+
# uncomment this for glossaries-extra (will ignore makeindex's style files!)
122+
# *.ist
123+
124+
# gnuplot
125+
*.gnuplot
126+
*.table
127+
128+
# gnuplottex
129+
*-gnuplottex-*
130+
131+
# gregoriotex
132+
*.gaux
133+
*.glog
134+
*.gtex
135+
136+
# htlatex
137+
*.4ct
138+
*.4tc
139+
*.idv
140+
*.lg
141+
*.trc
142+
*.xref
143+
144+
# hyperref
145+
*.brf
146+
147+
# knitr
148+
*-concordance.tex
149+
# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files
150+
# *.tikz
151+
*-tikzDictionary
152+
153+
# listings
154+
*.lol
155+
156+
# luatexja-ruby
157+
*.ltjruby
158+
159+
# makeidx
160+
*.idx
161+
*.ilg
162+
*.ind
163+
164+
# minitoc
165+
*.maf
166+
*.mlf
167+
*.mlt
168+
*.mtc[0-9]*
169+
*.slf[0-9]*
170+
*.slt[0-9]*
171+
*.stc[0-9]*
172+
173+
# minted
174+
_minted*
175+
*.pyg
176+
177+
# morewrites
178+
*.mw
179+
180+
# newpax
181+
*.newpax
182+
183+
# nomencl
184+
*.nlg
185+
*.nlo
186+
*.nls
187+
188+
# pax
189+
*.pax
190+
191+
# pdfpcnotes
192+
*.pdfpc
193+
194+
# sagetex
195+
*.sagetex.sage
196+
*.sagetex.py
197+
*.sagetex.scmd
198+
199+
# scrwfile
200+
*.wrt
201+
202+
# svg
203+
svg-inkscape/
204+
205+
# sympy
206+
*.sout
207+
*.sympy
208+
sympy-plots-for-*.tex/
209+
210+
# pdfcomment
211+
*.upa
212+
*.upb
213+
214+
# pythontex
215+
*.pytxcode
216+
pythontex-files-*/
217+
218+
# tcolorbox
219+
*.listing
220+
221+
# thmtools
222+
*.loe
223+
224+
# TikZ & PGF
225+
*.dpth
226+
*.md5
227+
*.auxlock
228+
229+
# titletoc
230+
*.ptc
231+
232+
# todonotes
233+
*.tdo
234+
235+
# vhistory
236+
*.hst
237+
*.ver
238+
239+
# easy-todo
240+
*.lod
241+
242+
# xcolor
243+
*.xcp
244+
245+
# xmpincl
246+
*.xmpi
247+
248+
# xindy
249+
*.xdy
250+
251+
# xypic precompiled matrices and outlines
252+
*.xyc
253+
*.xyd
254+
255+
# endfloat
256+
*.ttt
257+
*.fff
258+
259+
# Latexian
260+
TSWLatexianTemp*
261+
262+
## Editors:
263+
# WinEdt
264+
*.bak
265+
*.sav
266+
267+
# Texpad
268+
.texpadtmp
269+
270+
# LyX
271+
*.lyx~
272+
273+
# Kile
274+
*.backup
275+
276+
# gummi
277+
.*.swp
278+
279+
# KBibTeX
280+
*~[0-9]*
281+
282+
# TeXnicCenter
283+
*.tps
284+
285+
# auto folder when using emacs and auctex
286+
./auto/*
287+
*.el
288+
289+
# expex forward references with \gathertags
290+
*-tags.tex
291+
292+
# standalone packages
293+
*.sta
294+
295+
# Makeindex log files
296+
*.lpz
297+
298+
# xwatermark package
299+
*.xwm
300+
301+
# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib
302+
# option is specified. Footnotes are the stored in a file with suffix Notes.bib.
303+
# Uncomment the next line to have this generated file ignored.
304+
#*Notes.bib
305+
306+
307+
# Docker project generated files to ignore
308+
# if you want to ignore files created by your editor/tools,
309+
# please consider a global .gitignore https://help.github.com/articles/ignoring-files
310+
.vagrant*
311+
bin
312+
docker/docker
313+
.*.swp
314+
a.out
315+
*.orig
316+
build_src
317+
.flymake*
318+
.idea
319+
.DS_Store
320+
docs/_build
321+
docs/_static
322+
docs/_templates
323+
.gopath/
324+
.dotcloud
325+
*.test
326+
bundles/
327+
.hg/
328+
.git/
329+
vendor/pkg/
330+
pyenv
331+
Vagrantfile
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
FROM ubuntu:24.04
2+
WORKDIR /code
3+
4+
# install dependencies
5+
RUN apt-get update -y \
6+
&& DEBIAN_FRONTEND="noninteractive" apt-get install --yes \
7+
tzdata \
8+
pip \
9+
python3-venv \
10+
build-essential \
11+
cmake \
12+
git \
13+
ninja-build \
14+
gdb curl wget \
15+
# dependencies for experiment scripts
16+
python3-matplotlib python3-pandas python3-num2words \
17+
# bitwuzla dependencies
18+
meson libgmp-dev libcadical-dev libsymfpu-dev pkg-config
19+
20+
# install Lean
21+
RUN curl https://raw.githubusercontent.com/leanprover/elan/master/elan-init.sh -sSf > /code/elan.sh \
22+
&& sh /code/elan.sh -y # elan
23+
ENV PATH /root/.elan/bin:$PATH
24+
ENV LIBRARY_PATH /root/.elan/lib:$LIBRARY_PATH
25+
26+
# install Bitwuzla (commit: 22.6.25)
27+
RUN git clone https://github.com/bitwuzla/bitwuzla && cd bitwuzla && git checkout 0dca38d0f62fa9002ad6278ca6374838a69ade19
28+
WORKDIR /code/bitwuzla
29+
RUN ./configure.py && cd build && ninja install
30+
31+
# install Lean-MLIR (commit: 22.06.25)
32+
RUN git clone https://github.com/opencompl/lean-mlir && cd lean-mlir && git checkout b0253c5f5dbc6cc507b559d76fd659da38a8e565
33+
WORKDIR /code/lean-mlir
34+
35+
# install plotting script dependencies
36+
37+
# WORKDIR /code/lean-mlir/bv-evaluation/
38+
# RUN bash -c "\
39+
# python3 -m venv venv \
40+
# && source venv/bin/activate \
41+
# && python3 -m pip install -r /code/lean-mlir/bv-evaluation/requirements.txt "
42+
43+
# get cached dependencies
44+
WORKDIR /code/lean-mlir
45+
COPY . .
46+
47+
# build lean-mlir
48+
RUN lake exe cache get
49+
RUN lake build
50+
51+
# Set the evaluation script directory as working dir
52+
WORKDIR /code/lean-mlir/bv-evaluation/
53+
RUN python3 compare-leansat-vs-bitwuzla-hdel.py
54+
55+
USER root

0 commit comments

Comments
 (0)