-
Notifications
You must be signed in to change notification settings - Fork 273
ipasir modification without CI integration #884
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
8aa89be
14419d2
12a6917
751208d
900a0fc
c3d527c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -93,4 +93,17 @@ cprover-jar-build: | |
cd target; jar cf org.cprover.jar `find . -name "*.class"`; \ | ||
mv org.cprover.jar ../../../) | ||
|
||
.PHONY: minisat2-download glucose-download cprover-jar-build | ||
ipasir-download: | ||
# get the 2016 version of the ipasir package, which contains a few solvers | ||
@echo "Download ipasir 2016 package" | ||
@(lwp-download http://baldur.iti.kit.edu/sat-competition-2016/downloads/ipasir.zip ../ipasir.zip) | ||
@(cd ..; unzip -u ipasir.zip) | ||
|
||
ipasir-build: ipasir-download | ||
# build libpicosat, and create a libipasir.a in ipasir directory | ||
# make sure that the ipasir.h file is located there as well (ships with 2016 package) | ||
@echo "Build Picosat 961 from ipasir 2016 package" | ||
$(MAKE) -C ../ipasir/sat/picosat961 libipasirpicosat961.a | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. How can a solver be easily selected for use with ipasir? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This requires a rebuild of CBMC. Solvers that implement the ipasir interface should be able to produce a library, which can be used during link time. The compilation of CBMC has to know about that file. Furthermore, each such rebuild has to make sure that the solver.a file is properly updated. Build instructions can be found in the top commit of this series. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Could the build instructions be added to the "COMPILING" file, please? |
||
@(cd ../ipasir; ln -sf sat/picosat961/libipasirpicosat961.a libipasir.a) | ||
|
||
.PHONY: ipasir-build minisat2-download glucose-download cprover-jar-build |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -22,10 +22,15 @@ endif | |
#CHAFF = ../../zChaff | ||
#BOOLEFORCE = ../../booleforce-0.4 | ||
#MINISAT = ../../MiniSat-p_v1.14 | ||
MINISAT2 = ../../minisat-2.2.1 | ||
#MINISAT2 = ../../minisat-2.2.1 | ||
#IPASIR = ../../ipasir | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I am happy to document LIBSOLVER in that file, however, I would not force people to use a solver by default (yet), as all CI will fall apart. I'd make this a followup commit. |
||
#GLUCOSE = ../../glucose-syrup | ||
#SMVSAT = | ||
|
||
# Extra library for SAT solver. This should link to the archive file to be used | ||
# when linking against an IPASIR solver. | ||
LIBSOLVER = | ||
|
||
ifneq ($(PRECOSAT),) | ||
CP_CXXFLAGS += -DSATCHECK_PRECOSAT | ||
endif | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We've got the names for the libraries of the other solvers in the config; why not for IPASIR as well?
Then it would be enough to say
make -C src IPASIR=../../ipasir
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because typically (except you always want to use picosat) you want to push people to select their most favourite IPASIR solver explicitly at compile time.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok!