Skip to content

Commit 5945121

Browse files
author
Armin Biere
committed
released sr2019
1 parent 58331fd commit 5945121

File tree

366 files changed

+31319
-5486
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

366 files changed

+31319
-5486
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ os:
66
- linux
77
- osx
88
branches:
9+
#- development
910
- master

BUILD.md

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# CaDiCaL Build
2+
3+
Use `./configure && make` to configure and build `cadical` in the default
4+
`build` sub-directory.
5+
6+
This will also build the library `libcadical.a` as well as the model based
7+
tester `mobical`:
8+
9+
build/cadical
10+
build/mobical
11+
build/libcadical.a
12+
13+
The header file of the library is in
14+
15+
src/cadical.hpp
16+
17+
The build process requires GNU make. Using the generated `makefile` with
18+
GNU make compiles separate object files, which can be cached (for instance
19+
with `ccache`). The `makefile` uses parallel compilation by default (`-j`).
20+
21+
You might want to check out options of `./configure -h`, such as
22+
23+
./configure -c # include assertion checking code
24+
25+
./configure -l # include code to really see what the solver is doing
26+
27+
./configure -a # both above and in addition `-g` for debugging.
28+
29+
You can easily use multiple build directories, e.g.,
30+
31+
mkdir debug; cd debug; ../configure -g; make
32+
33+
which compiles and builds a debugging version in the sub-directory `debug`,
34+
since `-g` was specified as parameter to `configure`. The object files,
35+
the library and the binaries are all independent of those in the default
36+
build directory `build`.
37+
38+
All source files reside in the `src` directory. The library `libcadical.a`
39+
is compiled from all the `.cpp` files except `cadical.cpp` and
40+
`mobical.cpp`, which provide the applications, i.e., the stand alone solver
41+
`cadical` and the model based tester `mobical`.
42+
43+
If you can not or do not want to rely on our `configure` script nor on our
44+
build system based on GNU `make`, then this is easily doable as follows.
45+
46+
mkdir build
47+
cd build
48+
for f in ../src/*.cpp; do g++ -O3 -DNDEBUG -DNBUILD -c $f; done
49+
ar rc libcadical.a `ls *.o | grep -v ical.o`
50+
g++ -O3 -DNDEBUG -DNBUILD -o cadical cadical.o -L. -lcadical
51+
g++ -O3 -DNDEBUG -DNBUILD -o mobical mobical.o -L. -lcadical
52+
53+
Note that application object files are excluded from the library.
54+
Of course you can use different compilation options as well.
55+
56+
Since `build.hpp` is not generated in this flow the `-DNBUILD` flag is
57+
necessary though, which avoids dependency of `version.cpp` on `build.hpp`.
58+
Consequently you will only get very basic version information compiled into
59+
the library and binaries (guaranteed is in essence just the version number
60+
of the library).
61+
62+
Further note that the `configure` script provides some feature checks and
63+
might generate additional compiler flags necessary for compilation. You
64+
might need to set those yourself or just use a modern C++11 compiler.
65+
66+
This manual build process using object files is fast enough in combination
67+
with caching solutions such as `ccache`. But it lacks the ability of our
68+
GNU make solution to run compilation in parallel without additional parallel
69+
process scheduling solutions.

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2016-2018 Armin Biere, Johannes Kepler University Linz, Austria
3+
Copyright (c) 2016-2019 Armin Biere, Johannes Kepler University Linz, Austria
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

Lines changed: 17 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# CaDiCaL
1+
# CaDiCaL Overview
22

33
CaDiCaL Simplified Satisfiability Solver
44

@@ -7,50 +7,25 @@ which is easy to understand and change, while at the same time not being
77
much slower than other state-of-the-art CDCL solvers. Originally we wanted
88
to also radically simplify the design and internal data structures, but that
99
goal was only achieved partially, at least for instance compared to
10-
Lingeling. On the other hand CaDiCaL actually became in general faster than
11-
Lingeling even though it is missing some preprocessors (mostly parity and
12-
cardinality constraint reasoning), which would be crucial to solve certain
13-
instances. The incremental API is incomplete.
10+
Lingeling.
1411

15-
Use './configure && make' to configure and build 'cadical' in the default
16-
'build' sub-directory. This will also build the library 'libcadical.a'.
17-
18-
- ./build/libcadical.a
19-
20-
- ./build/cadical
21-
22-
The build process requires GNU make. Using the generated 'makefile' with
23-
GNU make compiles separate object files, which can be cached (for instance
24-
with 'ccache'). The 'makefile' uses parallel compilation by default ('-j').
25-
26-
The header file of the library is in 'src/cadical.hpp'.
27-
28-
You might want to check out options of './configure -h', such as
29-
30-
- ./configure -c # include assertion checking code
31-
32-
- ./configure -l # include code to really see what the solver is doing
12+
However, the code is much better documented and on the other hand CaDiCaL
13+
actually became in general faster than Lingeling even though it is missing
14+
some preprocessors (mostly parity and cardinality constraint reasoning),
15+
which would be crucial to solve certain instances.
3316

34-
- ./configure -a # both above and in addition '-g' for debugging.
35-
36-
You can easily use multiple build directories, e.g.,
37-
38-
- mkdir debug; cd debug; ../configure -g; make
39-
40-
which compiles and builds a debugging version in the sub-directory 'debug',
41-
since '-g' was specified as parameter to 'configure'. The object files,
42-
the library and the binary are all independent of those in the default
43-
build directory 'build'.
44-
45-
The latest version of CaDiCaL can be found on 'github'
46-
47-
- http://github.com/arminbiere/cadical
48-
49-
which also contains a test suite. Use 'make test' to run it.
17+
Use `./configure && make` to configure and build `cadical` and the library
18+
`libcadical.a` in the default `build` sub-directory. The header file of
19+
the library is [`src/cadical.hpp`](src/cadical.hpp) and includes an example
20+
for API usage.
21+
22+
See [`BUILD.md`](BUILD.md) for options and more details related to the build
23+
process and [`test/README.md`](test/README.md) for testing the library and
24+
the solver.
5025

51-
A plain stable source release can also be found at
26+
The solver has the following usage `cadical [ dimacs [ proof ] ]`.
27+
See `cadical -h` for more options.
5228

53-
- http://fmv.jku.at/cadical
29+
The latest version can be found at <http://fmv.jku.at/cadical>.
5430

5531
Armin Biere
56-
Sat Mar 24 11:52:12 CET 2018

TODO.md

Lines changed: 0 additions & 28 deletions
This file was deleted.

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
sc18
1+
sr2019

0 commit comments

Comments
 (0)