3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-15 05:18:44 +00:00
Commit graph

151 commits

Author SHA1 Message Date
Dan Liew 4b517b96df [CMake] Move CMake files into their intended location so the
`contrib/cmake/bootstrap.py` script no longer needs to be executed.

The previous location of the CMake files was a compromise proposed
by @agurfinkel in #461. While this has served us well (allowing progress
to be made) over time limitations of this approach have appeared.

The main problem is that doing many git operations (e.g. pull, rebase)
means the CMake files don't get updated unless the user remembers to
run the script. This can lead to broken and confusing build system
behaviour.

This commit only does the file moving and necessary changes to
`.gitignore`. Other changes will be done in subsequent commits.
2017-06-12 11:59:00 +01:00
Ken McMillan bf7c6292bd removing FOCI2 interface from interp 2017-05-19 16:21:57 -07:00
Nikolaj Bjorner 34acaa8f56 update license for space/quotes per #982
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-04-24 13:34:10 -07:00
Nikolaj Bjorner f96cfeae9e fix build failures under linux
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-07-09 13:28:39 -07:00
Nikolaj Bjorner 53b3edc8cc add cases for recognizing ALL. Issue #674
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-07-09 05:18:26 -07:00
Nikolaj Bjorner e9e10f1d5c checking cancel flag to refine the behavior around issue #595
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-07-03 10:38:54 -07:00
Nikolaj Bjorner 654780bb4b check that model is availble before evaluation, issue #595
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-07-01 09:26:01 -07:00
Nikolaj Bjorner 3a6e6df4f5 fix unused-but-set-variable warnings reported in #579
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-05-18 11:02:10 -07:00
Dan Liew a3e0eae9ec Move CMakeLists.txt files (other than the one in the repository root)
and the cmake directory into a new directory ``contrib/cmake`` that
mirrors the directory structure of the root. This is a comprimise
between me and Christoph Wintersteiger that was suggested by Arie
Gurfinkel that allows the CMake build system to live in the Z3
repository but not impact the Z3 developers that want to avoid the CMake
build system. The build system will not work in its new location
and a bootstrap script will soon be provided that allows a developer
to copy the files back to their correct location.
2016-03-04 15:26:09 +00:00
Dan Liew 251527603d Implement a CMake build system.
This is a large rework of my first attempt at this (#459).

This implementation calls into the recently implemented python scripts
to generate the necessary generated ``.h`` and ``.cpp`` files but is
independent from Python building system otherwise.  Unlike the Python
build system, the generated files are emitted into the build tree to
avoid polluting the source tree. The build system is setup to refuse to
configure if it detects generated files in the source tree. If your
source tree is dirty you can run ``git clean -fx`` to clean your working
directory.

Currently the build succeeds on Linux using CMake 3.4.3 using
the "Unix Makefiles" generator with gcc or clang.

The following notable features are implemented:

* Building of the C and C++ examples and the ``test-z3`` executable.
  These are included from the ``all`` target so you have to tell the
  build system (e.g. make) to build them manually.

* Install (``make install``) and uninstall (``make uninstall``) of libz3
  and its header files. This supports ``DESTDIR`` out of the box because
  CMake supports it.

* An option (``BUILD_LIBZ3_SHARED``) to build libz3 as a static or dynamic library.

* Support for using/not using OpenMP (``USE_OPENMP``)

* Support for using/not using libgmp (``USE_LIB_GMP``)

* Setting the SOVERSION for libz3. I'm not sure if I'm setting the
* number correctly though. This is required by Linux distrubtions that
  wills ship libz3. This needs discussion.

The following notable features are currently not implemented
and are left for future work.

* Support for ARM.
* Support for the foci2 library.
* Support for creating/installing/uninstalling the dotnet, java, python and ml
  bindings.
* Full support for MSVC. Although I've tried to write the CMake code
  with MSVC in mind not all the correct flags are passed to it.
* Support for using the git hash.

This new build system has several advantages other the old build system.

* It is easier for outside contributors to contribute to Z3 when the
  build system is something more standard.
* Incremental builds work properly. With the old build system when
  new code is pulled down the old build directory would need to thrown
  out and a new fresh build had to be performed because the build system
  didn't know how to correctly rebuild the project (e.g. couldn't handle
  new sources being added/removed, compiler flags changing, generated
  files changing, etc...). This is a MASSIVE boost to productivity!
* We now have access rich array of features that CMake provides for
  building C/C++ projects. This means less time spent implementing
  custom build system logic in Python that is already supported by
  CMake.
* CMake supports many IDEs out of the box so it should be fairly
  straight forward to build Z3 with Visual Studio (once support for MSVC
  is added), Xcode, Eclipse CDT, CLion, ..etc.
2016-03-04 15:26:09 +00:00
Ken McMillan e6e6a6c5b3 issue #393 -- removed debugging assert 2016-01-04 12:53:46 -08:00
Nikolaj Bjorner e63724a22d replace assert by SASSERT in case of unsupported proof rule
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2015-12-29 15:30:42 -08:00
Nikolaj Bjorner 4f7fdb5c14 fix merge conflicts
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2015-10-28 16:09:46 -07:00
Ken McMillan 8550de41a6 issue #204 -- throw better exception for non-linear arithmetic 2015-10-28 14:41:27 -07:00
Nikolaj Bjorner 418b6d4738 Merge pull request #267 from kenmcmil/duality_interp_error_handling
issue #200
2015-10-27 18:49:46 -07:00
Ken McMillan 589053fc10 interp: fix gomory cut rule with non-local conclusion (issue #200) 2015-10-27 18:27:25 -07:00
Christoph M. Wintersteiger d14a471cfd Merge branch 'ag-iz3_exception' of https://github.com/agriggio/z3 into agriggio-ag-iz3_exception 2015-10-19 15:20:50 +01:00
Ken McMillan b343dcb341 better recovery from incompleteness and interp failure in duality 2015-10-09 14:21:05 -07:00
Nikolaj Bjorner 2912c355e2 remove reinterpret_cast. Issue #229, issue #24
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2015-10-04 10:54:19 -07:00
Nikolaj Bjorner a8b47b4fb2 enable coercions when interpolation creates MILP constraints. Issue #217
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2015-09-12 14:47:35 +02:00
Ken McMillan 5aa74644fc fix for issue #171 (interpolation crash) 2015-07-27 11:15:33 -07:00
Ken McMillan e6516f549d fail gracefully on interpolation errors 2015-07-10 14:39:11 -07:00
Ken McMillan 1cf24f7cdc issue #48 disabled rounding for strict real inequalities 2015-07-10 11:00:13 -07:00
Ken McMillan 3d2ef8bb4a fix for issue #109 2015-05-27 16:05:40 -07:00
Ken McMillan e438143abc fix for github issue #105 2015-05-22 11:02:26 -07:00
Ken McMillan caa616f11b fix for github issue 83 2015-05-20 15:37:51 -07:00
Ken McMillan ccc1f02216 fix for github issue 54 2015-05-19 18:47:13 -07:00
Christoph M. Wintersteiger 32fb679066 tabs 2015-05-19 11:01:15 +01:00
Nikolaj Bjorner 9377779e58 merge with unstable
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2015-04-30 10:40:03 -07:00
Ken McMillan 5f37b1d32f fixed interp api bug (github issue #47) 2015-04-20 12:30:15 -07:00
Alberto Griggio 8e772b428b use a base iz3_exception class for exceptions raised during interpolation
Using a base exception class, derived from z3_exception, makes it possible to
recover gracefully if something goes wrong during the computation of
interpolants.
2015-04-16 19:14:34 +02:00
Ken McMillan af444beb2e re-indenting interp and duality 2015-04-15 12:22:50 -07:00
Nikolaj Bjorner 3ba2e712b2 merge with unstable branch
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2015-04-12 15:54:52 -07:00
Ken McMillan d42e3ce651 possible header problem for std::less 2015-04-02 13:10:23 -07:00
Nikolaj Bjorner 52619b9dbb pull unstable
Signed-off-by: Nikolaj Bjorner <nbjorner@hotmail.com>
2015-04-01 14:57:11 -07:00
Ken McMillan be709802cd merging interpolation fix (issue 182) 2015-03-20 17:46:01 -07:00
Ken McMillan 47d33452c6 interpolation fix (issue 182) 2015-03-20 17:39:45 -07:00
nikolajbjorner a96a9a076d Merge branch 'unstable' of https://git01.codeplex.com/z3 into unstable 2015-02-19 19:10:21 -08:00
nikolajbjorner aa40316268 rewrite terminology for policheck
Signed-off-by: nikolajbjorner <nbjorner@microsoft.com>
2015-02-19 19:09:12 -08:00
Ken McMillan 185f9325a6 fixed interpolation bug 2015-02-19 12:25:06 -08:00
Nikolaj Bjorner c61e9f27db local changes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2014-12-22 09:27:33 -08:00
Nikolaj Bjorner 08cb8b8de8 address divergence in the case of shared theory symbols. Codeplex issue 147, thanks to George Karpenkov
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2014-12-09 16:04:25 +01:00
Ken McMillan 882dbfc706 merge 2014-12-08 16:16:52 -08:00
Ken McMillan 8181b15a1b attempted interp fixes 2014-12-08 15:46:55 -08:00
Christoph M. Wintersteiger 005bb82a17 eliminated unused variables 2014-11-07 16:04:02 +00:00
Ken McMillan a6f58bdd17 fixes and performance improvements for interp and duality 2014-10-30 17:22:34 -07:00
Ken McMillan 61905a10db merge interp change 2014-10-24 11:54:00 -07:00
Ken McMillan da71d5ee01 unlimit stack on linux/mac 2014-10-24 11:53:03 -07:00
Christoph M. Wintersteiger a6bee82ef8 Interpolation API: fixed some memory leaks
Signed-off-by: Christoph M. Wintersteiger <cwinter@microsoft.com>
2014-10-23 17:10:31 +01:00
Ken McMillan 5454e38935 replaced check_interpolants option with interp.check 2014-10-22 10:43:04 -07:00