Comments (5)
We have always supported Python 3, but we test it very rarely. We already have far too many combinations of systems and configurations to test every night and for some reason we all ended up using Python 2. I just committed a couple fixes that should make it work with 3 again.
I fixed the --onlymakefiles problem (it's now --makefiles as advertised). I didn't see any errors when running it. Could it be that you or me had some stale files around?
No reason for not using argparse as far as I know.
We haven't discussed anything that we would want and don't have in the build system. One of the important reasons behind many design decisions was that the primary target up until now was Windows, 32 bit. Python scripts seemed like the best solution to get some sort of unified cross-platform system. Previously, configure scripts and Makefiles would never be in sync with the Visual Studio solution files, so now we generate both from the same Python scripts.
from z3.
Thanks for the explanations. Regarding your idea about stale files, I re-checked the issue:
With a freshly cleaned repository, unstable branch as of b7bb534:
./configure --githash=$(git rev-parse HEAD) --makefiles --staticlib
Writing build/Makefile
Traceback (most recent call last):
File "scripts/mk_make.py", line 20, in <module>
mk_makefile()
File "/tmp/z3-buildsystem/scripts/mk_util.py", line 1974, in mk_makefile
c.mk_makefile(out)
File "/tmp/z3-buildsystem/scripts/mk_util.py", line 916, in mk_makefile
Component.mk_makefile(self, out)
File "/tmp/z3-buildsystem/scripts/mk_util.py", line 868, in mk_makefile
self.add_cpp_rules(out, include_defs, cppfile)
File "/tmp/z3-buildsystem/scripts/mk_util.py", line 826, in add_cpp_rules
self.add_rule_for_each_include(out, cppfile)
File "/tmp/z3-buildsystem/scripts/mk_util.py", line 805, in add_rule_for_each_include
owner = self.find_file(include, fullname)
File "/tmp/z3-buildsystem/scripts/mk_util.py", line 789, in find_file
raise MKException("Failed to find include file '%s' for '%s' when processing '%s'." % (fname, ownerfile, self.name))
mk_exception.MKException: "Failed to find include file 'algebraic_params.hpp' for 'src/math/polynomial/algebraic_numbers.cpp' when processing 'polynomial'."
from z3.
That's right, algebraic_params.hpp is one of many automatically generated files. mk_make.py with the --makefiles option will generate only the Makefile, it will not produce any other files. They are necessary to build Z3 though, so they have to be generated by some other means, for instance by running without --makefiles once. I didn't write the code for that, but it seems to me that this is the intended behavior for --makefiles.
from z3.
You are right; I was under the impression "--makefiles" would still generate dependencies the build relies on.
from z3.
Closing as resolved, pull request will be handled later.
from z3.
Related Issues (20)
- Z3 prover: this Smtlib shoud not be SAT because last assert, why? HOT 1
- [api bug?] Error("invalid argument") whenever no expr update
- ASSERT and python crashes HOT 3
- Performance regression on QF_NIA HOT 1
- Nested construction terms problem HOT 5
- z3 solver check call hangs when solver is created with smt tactic HOT 1
- Select one bit in BitVec
- C++23 compatibility HOT 1
- Undetermined value in Z3?
- Linux arm64 build is actually an x86_64 build HOT 3
- Last package available for Ubuntu via apt is 4.8.12 HOT 1
- Missing universes for uninterpreted sorts HOT 2
- 4.8.5 and 4.13.0 hang on example that works in 4.6.0 (linear constraints with int variables)
- ASSERTION VIOLATION, File: ../src/qe/qsat.cpp Line: 655
- Huge performance issue solved by tiny inlining
- unable to use z3-solver (typescript/javascript) due to import issues HOT 1
- SAT solver runtime changes depending on Z3 version HOT 1
- Incorrect results yet no errors reported (with Datatypes and contexts)
- 4.13.0 hangs on an example that works in 4.8.7 HOT 2
- Solving with regular constraints doesn't finish in unsat case
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from z3.