Thu May 11 06:43:43 2023 UTC ()
z3 py-z3: updated to 4.12.1

Version 4.12.1
==============
- change macos build to use explicit reference to Macos version 11. Hosted builds are migrating to macos-12 and it broke a user

Version 4.12.0
==============
- add clause logging API.
  - The purpose of logging API and self-checking is to enable an array of use cases.
    - proof mining (what instantiations did Z3 use)?
      - A refresh of the AxiomProfiler could use the logging API.
        The (brittle) trace feature should be deprecated.
    - debugging
      - a built-in self certifier implements a custom proof checker for
        the format used by the new solver (sat.euf=true).
    - other potential options:
      - integration into certified tool chains
      - interpolation
  - Z3_register_on_clause (also exposed over C++, Python and .Net)
  - it applies to z3's main CDCL(T) core and a new CDCL(T) core (sat.euf=true).
  - The added API function allows to register a callback for when clauses
    are inferred. More precisely, when clauses are assumed (as part of input),
    deleted, or deduced.
    Clauses that are deduced by the CDCL SAT engine using standard
    inferences are marked as 'rup'.
    Clauses that are deduced by theories are marked by default
    by 'smt', and when more detailed information
    is available with proof hints or proof objects.
    Instantations are considered useful to track so they
    are logged using terms of the form

         (inst (not (forall (x) body)) body[t/x] (bind t)), where

    'inst' is a name of a function that produces a proof term representing
    the instantiation.
- add options for proof logging, trimming, and checking for the new core.
  - sat.smt.proof (symbol) add SMT proof to file (default: )
  - sat.smt.proof.check (bool) check SMT proof while it is created (default: false)
    - it applies a custom self-validator. The self-validator comprises of
      several small checkers and represent a best-effort validation mechanism.
      If there are no custom validators associated with inferences, or the custom
      validators fail to certify inferences, the self-validator falls back to
      invoking z3 (SMT) solving on the lemma.
      - euf - propagations and conflicts from congruence closure
              (theory of equality and uninterpreted functions) are checked
              based on a proof format that tracks uses of congruence closure and
              equalities. It only performs union find operations.
      - tseitin - clausification steps are checked for Boolean operators.
      - farkas, bound, implies_eq - arithmetic inferences that can be justified using
              a combination of Farkas lemma and cuts are checked.
              Note: the arithmetic solver may produce proof hints that the proof
              checker cannot check. It is mainly a limitation
              of the arithmetic solver not pulling relevant information.
              Ensuring a tight coupling with proof hints and the validator
              capabilites is open ended future work and good material for theses.
      - bit-vector inferences - are treated as trusted
        (there is no validation, it always blindly succeeds)
      - arrays, datatypes - there is no custom validation for
        other theories at present. Lemmas are validated using SMT.
  - sat.smt.proof.check_rup (bool) apply forward RUP proof checking (default: true)
    - this option can incur significant runtime overhead.
      Effective proof checking relies on first trimming proofs into a
      format where dependencies are tracked and then checking relevant inferences.
      Turn this option off if you just want to check theory inferences.
- add options to validate proofs offline. It applies to proofs
  saved when sat.smt.proof is set to a valid file name.
  - solver.proof.check (bool) check proof logs (default: true)
    - the option sat.smt.proof_check_rup can be used to control what is checked
  - solver.proof.save (bool) save proof log into a proof object
      that can be extracted using (get-proof) (default: false)
    - experimental: saves a proof log into a term
  - solver.proof.trim (bool) trim the offline proof and print the trimmed proof to the console
    - experimental: performs DRUP trimming to reduce the set of hypotheses
      and inferences relevant to derive the empty clause.
- JS support for Arrays, thanks to Walden Yan
- More portable memory allocation, thanks to Nuno Lopes
  (avoid custom handling to calculate memory usage)

- clause logging and proofs: many open-ended directions.
  Many directions and functionality features remain in an open-ended state,
  subject to fixes, improvements, and contributions.
  We list a few of them here:
  - comprehensive efficient self-validators for arithmetic, and other theories
  - an efficient proof checker when several theory solvers cooperate in a propagation or
    conflict. The theory combination case is currently delegated to the smt solver.
    The proper setup for integrating theory lemmas is in principle not complicated,
    but the implementation requires some changes.
  - external efficient proof validators (based on certified tool chains)
    can be integrated over the API.
  - dampening repeated clauses: A side-effect of conflict resolution is to
    log theory lemmas. It often happens that the theory lemma becomes
    the conflict clause, that is then logged as rup. Thus, two clauses are
    logged.
  - support for online trim so that proofs generated using clause logging can be used for SPACER
    - SPACER also would benefit from more robust proof hints for arithmetic
      lemmas (bounds and implied equalities are sometimes not logged correctly)
  - integration into axiom profiling through online and/or offline interfaces.
    - an online interface attaches a callback with a running solver. This is available.
    - an offline interface saves a clause proof to a file (currently just
      supported for sat.euf) and then reads the file in a separate process
      The separate process attaches a callback on inferred clauses.
      This is currently not available but a relatively small feature.
  - more detailed proof hints for the legacy solver clause logger.
    Other than quantifier instantiations, no detailed information is retained for
    theory clauses.
  - integration of pre-processing proofs with logging proofs. There is
    currently no supported bridge to create a end-to-end proof objects.
- experimental API for accessing E-graphs. Exposed over Python. This API should be considered temporary
and subject to be changed depending on use cases or removed. The functions are `Z3_solver_congruence_root`, `Z3_solver_congruence_next`.

Version 4.11.2
==============
- add error handling to fromString method in JavaScript
- fix regression in default parameters for CDCL, thanks to Nuno Lopes
- fix model evaluation bugs for as-array nested under functions (data-type constructors)
- add rewrite simplifications for datatypes with a single constructor
- add "Global Guidance" capability to SPACER, thanks to Arie Gurfinkel and Hari Gorvind.
  The commit logs related to Global Guidance contain detailed information.
- change proof logging format for the new core to use SMTLIB commands.
  The format was so far an extension of DRAT used by SAT solvers, but not well compatible
  with SMT format that is extensible. The resulting format is a mild extension of SMTLIB with
  three extra commands assume, learn, del. They track input clauses, generated clauses and deleted clauses.
  They are optionally augmented by proof hints. Two proof hints are used in the current version: "rup" and "farkas".
  "rup" is used whent the generated clause can be justified by reverse unit propagation. "farkas" is used when
  the clause can be justified by a combination of Farkas cutting planes. There is a built-in proof checker for the
  format. Quantifier instantiations are also tracked as proof hints.
  Other proof hints are to be added as the feature set is tested and developed. The fallback, buit-in,
  self-checker uses z3 to check that the generated clause is a consequence. Note that this is generally
  insufficient as generated clauses are in principle required to only be satisfiability preserving.
  Proof checking and tranformation operations is overall open ended.
  The log for the first commit introducing this change contains further information on the format.
- fix to re-entrancy bug in user propagator (thanks to Clemens Eisenhofer).
- handle _toExpr for quantified formulas in JS bindings


(adam)
diff -r1.4 -r1.5 pkgsrc/math/py-z3/Makefile
diff -r1.1 -r1.2 pkgsrc/math/py-z3/PLIST
diff -r1.17 -r1.18 pkgsrc/math/z3/Makefile
diff -r1.4 -r1.5 pkgsrc/math/z3/Makefile.common
diff -r1.4 -r1.5 pkgsrc/math/z3/PLIST
diff -r1.13 -r1.14 pkgsrc/math/z3/distinfo
diff -r1.4 -r0 pkgsrc/math/z3/options.mk
diff -r1.2 -r0 pkgsrc/math/z3/patches/patch-scripts_mk__genfile__common.py
diff -r1.7 -r1.8 pkgsrc/math/z3/patches/patch-scripts_mk__util.py
diff -r0 -r1.1 pkgsrc/math/z3/patches/patch-src_api_python_setup.py
diff -r1.1 -r0 pkgsrc/math/z3/patches/patch-src_parsers_util_scanner.cpp
diff -r1.1 -r0 pkgsrc/math/z3/patches/patch-src_parsers_util_scanner.h
diff -r1.1 -r0 pkgsrc/math/z3/patches/patch-src_sat_ba__solver.cpp
diff -r1.1 -r0 pkgsrc/math/z3/patches/patch-src_solver_parallel__tactic.cpp
diff -r1.1 -r1.2 pkgsrc/math/z3/patches/patch-src_sat_sat__solver.cpp
diff -r1.3 -r0 pkgsrc/math/z3/patches/patch-src_util_mpz.cpp

cvs diff -r1.4 -r1.5 pkgsrc/math/py-z3/Makefile (expand / switch to unified diff)

--- pkgsrc/math/py-z3/Makefile 2020/05/31 20:47:23 1.4
+++ pkgsrc/math/py-z3/Makefile 2023/05/11 06:43:43 1.5
@@ -1,25 +1,26 @@ @@ -1,25 +1,26 @@
1# $NetBSD: Makefile,v 1.4 2020/05/31 20:47:23 joerg Exp $ 1# $NetBSD: Makefile,v 1.5 2023/05/11 06:43:43 adam Exp $
2 2
3.include "../../math/z3/Makefile.common" 3.include "../../math/z3/Makefile.common"
4 4
5PKGNAME= ${PYPKGPREFIX}-${DISTNAME} 5PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
6GITHUB_PROJECT= z3 6COMMENT= Efficient SMT solver library
7 7
8COMMENT= Python bindings for the Z3 theorem prover / SMT solver 8USE_TOOLS+= cmake ninja
 9PYSETUPSUBDIR= src/api/python
 10EGG_NAME= ${DISTNAME:S/z3/z3_solver/}.0
 11
 12.include "../../mk/bsd.prefs.mk"
 13
 14post-install:
 15 # same binary as in math/z3
 16 ${RM} ${DESTDIR}${PREFIX}/bin/z3
 17.if ${OPSYS} == "Darwin"
 18 install_name_tool -id ${PREFIX}/${PYSITELIB}/z3/lib/libz3.${PKGVERSION_NOREV:R}.dylib \
 19 ${DESTDIR}${PREFIX}/${PYSITELIB}/z3/lib/libz3.${PKGVERSION_NOREV:R}.dylib
 20 install_name_tool -id ${PREFIX}/${PYSITELIB}/z3/lib/libz3.dylib \
 21 ${DESTDIR}${PREFIX}/${PYSITELIB}/z3/lib/libz3.dylib
 22.endif
9 23
10CONFIGURE_ARGS+= --python 24.include "../../lang/python/egg.mk"
11NO_BUILD= yes 
12PY_PATCHPLIST= yes 
13 
14PYZ3DIR= ${PREFIX}/${PYSITELIB}/z3 
15INSTALLATION_DIRS+= ${PYZ3DIR} 
16INSTALLATION_DIRS+= ${PYZ3DIR}/lib 
17 
18do-install: 
19 ${LN} -s ${LIBDIR}/libz3.so ${DESTDIR}${PYZ3DIR}/lib/libz3.so 
20 ${INSTALL_DATA} ${WRKSRC}/build/python/z3/*.py ${DESTDIR}${PYZ3DIR} 
21 ${PY_COMPILE_ALL} ${DESTDIR}${PYZ3DIR} 
22 
23.include "../../lang/python/extension.mk" 
24.include "../../math/z3/buildlink3.mk" 25.include "../../math/z3/buildlink3.mk"
25.include "../../mk/bsd.pkg.mk" 26.include "../../mk/bsd.pkg.mk"

cvs diff -r1.1 -r1.2 pkgsrc/math/py-z3/PLIST (expand / switch to unified diff)

--- pkgsrc/math/py-z3/PLIST 2018/03/13 00:36:05 1.1
+++ pkgsrc/math/py-z3/PLIST 2023/05/11 06:43:43 1.2
@@ -1,22 +1,64 @@ @@ -1,22 +1,64 @@
1@comment $NetBSD: PLIST,v 1.1 2018/03/13 00:36:05 khorben Exp $ 1@comment $NetBSD: PLIST,v 1.2 2023/05/11 06:43:43 adam Exp $
 2${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
 3${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
 4${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
 5${PYSITELIB}/${EGG_INFODIR}/top_level.txt
2${PYSITELIB}/z3/__init__.py 6${PYSITELIB}/z3/__init__.py
3${PYSITELIB}/z3/__init__.pyc 7${PYSITELIB}/z3/__init__.pyc
 8${PYSITELIB}/z3/__init__.pyo
 9${PYSITELIB}/z3/include/api_ast_map.h
 10${PYSITELIB}/z3/include/api_ast_vector.h
 11${PYSITELIB}/z3/include/api_context.h
 12${PYSITELIB}/z3/include/api_datalog.h
 13${PYSITELIB}/z3/include/api_goal.h
 14${PYSITELIB}/z3/include/api_model.h
 15${PYSITELIB}/z3/include/api_polynomial.h
 16${PYSITELIB}/z3/include/api_solver.h
 17${PYSITELIB}/z3/include/api_stats.h
 18${PYSITELIB}/z3/include/api_tactic.h
 19${PYSITELIB}/z3/include/api_util.h
 20${PYSITELIB}/z3/include/z3++.h
 21${PYSITELIB}/z3/include/z3.h
 22${PYSITELIB}/z3/include/z3_algebraic.h
 23${PYSITELIB}/z3/include/z3_api.h
 24${PYSITELIB}/z3/include/z3_ast_containers.h
 25${PYSITELIB}/z3/include/z3_fixedpoint.h
 26${PYSITELIB}/z3/include/z3_fpa.h
 27${PYSITELIB}/z3/include/z3_logger.h
 28${PYSITELIB}/z3/include/z3_macros.h
 29${PYSITELIB}/z3/include/z3_optimization.h
 30${PYSITELIB}/z3/include/z3_polynomial.h
 31${PYSITELIB}/z3/include/z3_private.h
 32${PYSITELIB}/z3/include/z3_rcf.h
 33${PYSITELIB}/z3/include/z3_replayer.h
 34${PYSITELIB}/z3/include/z3_spacer.h
 35${PYSITELIB}/z3/include/z3_v1.h
4${PYSITELIB}/z3/lib/libz3.so 36${PYSITELIB}/z3/lib/libz3.so
 37${PYSITELIB}/z3/lib/libz3.so.4.12
5${PYSITELIB}/z3/z3.py 38${PYSITELIB}/z3/z3.py
6${PYSITELIB}/z3/z3.pyc 39${PYSITELIB}/z3/z3.pyc
 40${PYSITELIB}/z3/z3.pyo
7${PYSITELIB}/z3/z3consts.py 41${PYSITELIB}/z3/z3consts.py
8${PYSITELIB}/z3/z3consts.pyc 42${PYSITELIB}/z3/z3consts.pyc
 43${PYSITELIB}/z3/z3consts.pyo
9${PYSITELIB}/z3/z3core.py 44${PYSITELIB}/z3/z3core.py
10${PYSITELIB}/z3/z3core.pyc 45${PYSITELIB}/z3/z3core.pyc
 46${PYSITELIB}/z3/z3core.pyo
11${PYSITELIB}/z3/z3num.py 47${PYSITELIB}/z3/z3num.py
12${PYSITELIB}/z3/z3num.pyc 48${PYSITELIB}/z3/z3num.pyc
 49${PYSITELIB}/z3/z3num.pyo
13${PYSITELIB}/z3/z3poly.py 50${PYSITELIB}/z3/z3poly.py
14${PYSITELIB}/z3/z3poly.pyc 51${PYSITELIB}/z3/z3poly.pyc
 52${PYSITELIB}/z3/z3poly.pyo
15${PYSITELIB}/z3/z3printer.py 53${PYSITELIB}/z3/z3printer.py
16${PYSITELIB}/z3/z3printer.pyc 54${PYSITELIB}/z3/z3printer.pyc
 55${PYSITELIB}/z3/z3printer.pyo
17${PYSITELIB}/z3/z3rcf.py 56${PYSITELIB}/z3/z3rcf.py
18${PYSITELIB}/z3/z3rcf.pyc 57${PYSITELIB}/z3/z3rcf.pyc
 58${PYSITELIB}/z3/z3rcf.pyo
19${PYSITELIB}/z3/z3types.py 59${PYSITELIB}/z3/z3types.py
20${PYSITELIB}/z3/z3types.pyc 60${PYSITELIB}/z3/z3types.pyc
 61${PYSITELIB}/z3/z3types.pyo
21${PYSITELIB}/z3/z3util.py 62${PYSITELIB}/z3/z3util.py
22${PYSITELIB}/z3/z3util.pyc 63${PYSITELIB}/z3/z3util.pyc
 64${PYSITELIB}/z3/z3util.pyo

cvs diff -r1.17 -r1.18 pkgsrc/math/z3/Makefile (expand / switch to unified diff)

--- pkgsrc/math/z3/Makefile 2022/09/25 11:01:34 1.17
+++ pkgsrc/math/z3/Makefile 2023/05/11 06:43:43 1.18
@@ -1,9 +1,8 @@ @@ -1,9 +1,8 @@
1# $NetBSD: Makefile,v 1.17 2022/09/25 11:01:34 he Exp $ 1# $NetBSD: Makefile,v 1.18 2023/05/11 06:43:43 adam Exp $
2 2
3.include "Makefile.common" 3.include "Makefile.common"
4PKGREVISION= 4 
5COMMENT= The Z3 theorem prover / SMT solver 
6 4
7.include "options.mk" 5COMMENT= The Z3 theorem prover / SMT solver
8 6
 7.include "../../devel/cmake/build.mk"
9.include "../../mk/bsd.pkg.mk" 8.include "../../mk/bsd.pkg.mk"

cvs diff -r1.4 -r1.5 pkgsrc/math/z3/Makefile.common (expand / switch to unified diff)

--- pkgsrc/math/z3/Makefile.common 2018/12/18 06:46:39 1.4
+++ pkgsrc/math/z3/Makefile.common 2023/05/11 06:43:43 1.5
@@ -1,24 +1,21 @@ @@ -1,24 +1,21 @@
1# $NetBSD: Makefile.common,v 1.4 2018/12/18 06:46:39 kamil Exp $ 1# $NetBSD: Makefile.common,v 1.5 2023/05/11 06:43:43 adam Exp $
2# 2#
3# used by math/py-z3/Makefile 3# used by math/py-z3/Makefile
4# used by math/z3/Makefile 4# used by math/z3/Makefile
5 5
6DISTNAME= z3-4.8.3 6DISTNAME= z3-4.12.1
7GITHUB_TAG= ${DISTNAME} 
8CATEGORIES= math 7CATEGORIES= math
9MASTER_SITES= ${MASTER_SITE_GITHUB:=Z3Prover/} 8MASTER_SITES= ${MASTER_SITE_GITHUB:=Z3Prover/}
 9GITHUB_PROJECT= z3
 10GITHUB_TAG= ${DISTNAME}
 11
10DISTINFO_FILE= ${.CURDIR}/../../math/z3/distinfo 12DISTINFO_FILE= ${.CURDIR}/../../math/z3/distinfo
11PATCHDIR?= ${.CURDIR}/../../math/z3/patches 13PATCHDIR?= ${.CURDIR}/../../math/z3/patches
12 14
13MAINTAINER= dholland@NetBSD.org 15MAINTAINER= dholland@NetBSD.org
14HOMEPAGE= https://github.com/Z3Prover/z3/ 16HOMEPAGE= https://github.com/Z3Prover/z3
15LICENSE= mit 17LICENSE= mit
16 18
17WRKSRC= ${WRKDIR}/z3-${DISTNAME} 
18HAS_CONFIGURE= yes 
19USE_LANGUAGES= c c++ 19USE_LANGUAGES= c c++
20BUILD_DIRS= build 
21 
22CONFIGURE_ENV+= PYTHON=${PYTHONBIN} 
23 20
24.include "../../lang/python/tool.mk" 21.include "../../lang/python/tool.mk"

cvs diff -r1.4 -r1.5 pkgsrc/math/z3/PLIST (expand / switch to unified diff)

--- pkgsrc/math/z3/PLIST 2022/05/13 10:41:38 1.4
+++ pkgsrc/math/z3/PLIST 2023/05/11 06:43:43 1.5
@@ -1,35 +1,24 @@ @@ -1,35 +1,24 @@
1@comment $NetBSD: PLIST,v 1.4 2022/05/13 10:41:38 jperkin Exp $ 1@comment $NetBSD: PLIST,v 1.5 2023/05/11 06:43:43 adam Exp $
2bin/z3 2bin/z3
3include/z3++.h 3include/z3++.h
4include/z3.h 4include/z3.h
5include/z3_algebraic.h 5include/z3_algebraic.h
6include/z3_api.h 6include/z3_api.h
7include/z3_ast_containers.h 7include/z3_ast_containers.h
8include/z3_fixedpoint.h 8include/z3_fixedpoint.h
9include/z3_fpa.h 9include/z3_fpa.h
10include/z3_macros.h 10include/z3_macros.h
11include/z3_optimization.h 11include/z3_optimization.h
12include/z3_polynomial.h 12include/z3_polynomial.h
13include/z3_rcf.h 13include/z3_rcf.h
14include/z3_spacer.h 14include/z3_spacer.h
15include/z3_v1.h 15include/z3_v1.h
16include/z3_version.h 16include/z3_version.h
17${PLIST.java}lib/com.microsoft.z3.jar 17lib/cmake/z3/Z3Config.cmake
 18lib/cmake/z3/Z3ConfigVersion.cmake
 19lib/cmake/z3/Z3Targets-relwithdebinfo.cmake
 20lib/cmake/z3/Z3Targets.cmake
18lib/libz3.so 21lib/libz3.so
19${PLIST.java}lib/libz3java.so 22lib/libz3.so.4.12
20${PLIST.ocaml}lib/ocaml/site-lib/Z3/META 23lib/libz3.so.${PKGVERSION}.0
21${PLIST.ocaml}lib/ocaml/site-lib/Z3/dllz3ml.so 24lib/pkgconfig/z3.pc
22${PLIST.ocaml}lib/ocaml/site-lib/Z3/libz3ml.a 
23${PLIST.ocaml}lib/ocaml/site-lib/Z3/z3.cmi 
24${PLIST.ocaml}lib/ocaml/site-lib/Z3/z3.cmx 
25${PLIST.ocaml}lib/ocaml/site-lib/Z3/z3.mli 
26${PLIST.ocaml}lib/ocaml/site-lib/Z3/z3enums.cmi 
27${PLIST.ocaml}lib/ocaml/site-lib/Z3/z3enums.cmx 
28${PLIST.ocaml}lib/ocaml/site-lib/Z3/z3enums.mli 
29${PLIST.ocaml}lib/ocaml/site-lib/Z3/z3ml.a 
30${PLIST.ocaml}lib/ocaml/site-lib/Z3/z3ml.cma 
31${PLIST.ocaml}lib/ocaml/site-lib/Z3/z3ml.cmxa 
32${PLIST.ocaml}lib/ocaml/site-lib/Z3/z3ml.cmxs 
33${PLIST.ocaml}lib/ocaml/site-lib/Z3/z3native.cmi 
34${PLIST.ocaml}lib/ocaml/site-lib/Z3/z3native.cmx 
35${PLIST.ocaml}lib/ocaml/site-lib/Z3/z3native.mli 

cvs diff -r1.13 -r1.14 pkgsrc/math/z3/distinfo (expand / switch to unified diff)

--- pkgsrc/math/z3/distinfo 2022/09/25 11:01:34 1.13
+++ pkgsrc/math/z3/distinfo 2023/05/11 06:43:43 1.14
@@ -1,14 +1,9 @@ @@ -1,14 +1,9 @@
1$NetBSD: distinfo,v 1.13 2022/09/25 11:01:34 he Exp $ 1$NetBSD: distinfo,v 1.14 2023/05/11 06:43:43 adam Exp $
2 2
3BLAKE2s (z3-4.8.3.tar.gz) = 18b9f2b708f35c57c4dfb425521106dd7f938296738087ff761f030bff7a3491 3BLAKE2s (z3-4.12.1.tar.gz) = 375c80eb90c2cf43b6d42006fcb6618a30a4ce6bb8a761dd8849565ed3ba1ca9
4SHA512 (z3-4.8.3.tar.gz) = 34a2dca0083ed469fdaf5ac062dda26248633245607ddd9ef90629c5f76ae30f87bfa4191c04ba9be7a617bf182a1bd00b59fd2274699e12ece69b86088c8044 4SHA512 (z3-4.12.1.tar.gz) = 031fba9cc000a8da0025f95fa3f1c7519071d1b7775b377ff3192c505bb4c7e3d267da246c9ae68c940224e055a3c30571d2c0d7fbb042ec9a3d5849543a385c
5Size (z3-4.8.3.tar.gz) = 4119116 bytes 5Size (z3-4.12.1.tar.gz) = 5470095 bytes
6SHA1 (patch-scripts_mk__genfile__common.py) = 442da5eb2dcdfa4e4a5d70dc377c29053f58be5a 6SHA1 (patch-scripts_mk__util.py) = f092c9aed3c81408a485e9c92d8dddf5db86d6fe
7SHA1 (patch-scripts_mk__util.py) = f7059330a8ea44a566448557fae3967051e237cb 7SHA1 (patch-src_api_python_setup.py) = cfc4a0a388d2a096ce86cbe3ca76b32502ec380e
8SHA1 (patch-src_parsers_util_scanner.cpp) = 284f9ef965c4d4f4954fcbb6437c143c57dde516 
9SHA1 (patch-src_parsers_util_scanner.h) = ad1b385672615501a9249b20829256052ce82dbd 
10SHA1 (patch-src_sat_ba__solver.cpp) = 1e80b79c76f8e3766a60be3065ff8bd932249178 
11SHA1 (patch-src_sat_sat__lookahead.cpp) = c091d8b267b5476e438888e82c9161599873264c 8SHA1 (patch-src_sat_sat__lookahead.cpp) = c091d8b267b5476e438888e82c9161599873264c
12SHA1 (patch-src_sat_sat__solver.cpp) = 3421afbf641c47cf3b44ece9168ff3f768168343 9SHA1 (patch-src_sat_sat__solver.cpp) = 0e279f291801901eabb11b7cb0268c137a3b41fe
13SHA1 (patch-src_solver_parallel__tactic.cpp) = 029a2625e19cfcfb18c4b69279dea257cfd5482f 
14SHA1 (patch-src_util_mpz.cpp) = 499062b5107572184adcb7353ccde7c9f7b28951 

File Deleted: pkgsrc/math/z3/Attic/options.mk

File Deleted: pkgsrc/math/z3/patches/Attic/patch-scripts_mk__genfile__common.py

cvs diff -r1.7 -r1.8 pkgsrc/math/z3/patches/patch-scripts_mk__util.py (expand / switch to unified diff)

--- pkgsrc/math/z3/patches/patch-scripts_mk__util.py 2022/05/13 10:41:38 1.7
+++ pkgsrc/math/z3/patches/patch-scripts_mk__util.py 2023/05/11 06:43:43 1.8
@@ -1,53 +1,43 @@ @@ -1,53 +1,43 @@
1$NetBSD: patch-scripts_mk__util.py,v 1.7 2022/05/13 10:41:38 jperkin Exp $ 1$NetBSD: patch-scripts_mk__util.py,v 1.8 2023/05/11 06:43:43 adam Exp $
2 2
3Try to at least be slightly more portable. 3Try to at least be slightly more portable.
4 4
5--- scripts/mk_util.py.orig 2018-11-19 20:21:17.000000000 +0000 5--- scripts/mk_util.py.orig 2023-01-18 03:10:26.000000000 +0000
6+++ scripts/mk_util.py 6+++ scripts/mk_util.py
7@@ -803,7 +803,8 @@ def extract_c_includes(fname): 7@@ -1858,7 +1858,7 @@ class JavaDLLComponent(Component):
8 # We should generate and error for any occurrence of #include that does not match the previous pattern. 8 out.write('\t$(SLINK) $(SLINK_OUT_FLAG)libz3java$(SO_EXT) $(SLINK_FLAGS) -arch arm64 %s$(OBJ_EXT) libz3$(SO_EXT)\n' %
9 non_std_inc_pat = re.compile(".*#include.*") 9 os.path.join('api', 'java', 'Native'))
10  
11- f = open(fname, 'r') 
12+ py3args = { 'encoding': 'UTF-8' } if sys.version_info.major >= 3 else {} 
13+ f = open(fname, 'r', **py3args) 
14 linenum = 1 
15 for line in f: 
16 m1 = std_inc_pat.match(line) 
17@@ -2001,7 +2002,7 @@ class JavaDLLComponent(Component): 
18 out.write('\t$(SLINK) $(SLINK_OUT_FLAG)libz3java$(SO_EXT) $(SLINK_FLAGS) %s$(OBJ_EXT) libz3$(LIB_EXT)\n' % 
19 os.path.join('api', 'java', 'Native')) 
20 else: 10 else:
21- out.write('\t$(SLINK) $(SLINK_OUT_FLAG)libz3java$(SO_EXT) $(SLINK_FLAGS) %s$(OBJ_EXT) libz3$(SO_EXT)\n' % 11- out.write('\t$(SLINK) $(SLINK_OUT_FLAG)libz3java$(SO_EXT) $(SLINK_FLAGS) %s$(OBJ_EXT) libz3$(SO_EXT)\n' %
22+ out.write('\t$(SLINK) $(SLINK_OUT_FLAG)libz3java$(SO_EXT) $(SLINK_FLAGS) $(JAVA_LINK_EXTRA_FLAGS) %s$(OBJ_EXT) libz3$(SO_EXT)\n' % 12+ out.write('\t$(SLINK) $(SLINK_OUT_FLAG)libz3java$(SO_EXT) $(SLINK_FLAGS) $(JAVA_LINK_EXTRA_FLAGS) %s$(OBJ_EXT) libz3$(SO_EXT)\n' %
23 os.path.join('api', 'java', 'Native')) 13 os.path.join('api', 'java', 'Native'))
24 out.write('%s.jar: libz3java$(SO_EXT) ' % self.package_name) 14 out.write('%s.jar: libz3java$(SO_EXT) ' % self.package_name)
25 deps = '' 15 deps = ''
26@@ -2694,7 +2695,8 @@ def mk_config(): 16@@ -2577,7 +2577,8 @@ def mk_config():
27 check_ar() 17 check_ar()
28 CXX = find_cxx_compiler() 18 CXX = find_cxx_compiler()
29 CC = find_c_compiler() 19 CC = find_c_compiler()
30- SLIBEXTRAFLAGS = '' 20- SLIBEXTRAFLAGS = ''
31+ SLIBEXTRAFLAGS = LDFLAGS 21+ SLIBEXTRAFLAGS = LDFLAGS
32+ JAVALIBEXTRAFLAGS = LDFLAGS 22+ JAVALIBEXTRAFLAGS = LDFLAGS
 23 # SLIBEXTRAFLAGS = '%s -Wl,-soname,libz3.so.0' % LDFLAGS
33 EXE_EXT = '' 24 EXE_EXT = ''
34 LIB_EXT = '.a' 25 LIB_EXT = '.a'
35 if GPROF: 26@@ -2647,7 +2648,8 @@ def mk_config():
36@@ -2778,7 +2780,8 @@ def mk_config(): 
37 EXE_EXT = '.exe' 27 EXE_EXT = '.exe'
38 LIB_EXT = '.lib' 28 LIB_EXT = '.lib'
39 else: 29 else:
40- raise MKException('Unsupported platform: %s' % sysname) 30- raise MKException('Unsupported platform: %s' % sysname)
41+ SO_EXT = '.so' 31+ SO_EXT = '.so'
42+ SLIBFLAGS = '-shared' 32+ SLIBFLAGS = '-shared'
43 if is64(): 33 if is64():
44 if not sysname.startswith('CYGWIN') and not sysname.startswith('MSYS') and not sysname.startswith('MINGW'): 34 if not sysname.startswith('CYGWIN') and not sysname.startswith('MSYS') and not sysname.startswith('MINGW'):
45 CXXFLAGS = '%s -fPIC' % CXXFLAGS 35 CXXFLAGS = '%s -fPIC' % CXXFLAGS
46@@ -2822,6 +2825,7 @@ def mk_config(): 36@@ -2696,6 +2698,7 @@ def mk_config():
47 config.write('SLINK_FLAGS=%s\n' % SLIBFLAGS) 37 config.write('SLINK_FLAGS=%s\n' % SLIBFLAGS)
48 config.write('SLINK_EXTRA_FLAGS=%s\n' % SLIBEXTRAFLAGS) 38 config.write('SLINK_EXTRA_FLAGS=-lpthread %s\n' % SLIBEXTRAFLAGS)
49 config.write('SLINK_OUT_FLAG=-o \n') 39 config.write('SLINK_OUT_FLAG=-o \n')
50+ config.write('JAVA_LINK_EXTRA_FLAGS=%s\n' % JAVALIBEXTRAFLAGS) 40+ config.write('JAVA_LINK_EXTRA_FLAGS=%s\n' % JAVALIBEXTRAFLAGS)
51 config.write('OS_DEFINES=%s\n' % OS_DEFINES) 41 config.write('OS_DEFINES=%s\n' % OS_DEFINES)
52 if is_verbose(): 42 if is_verbose():
53 print('Host platform: %s' % sysname) 43 print('Host platform: %s' % sysname)

File Added: pkgsrc/math/z3/patches/patch-src_api_python_setup.py
$NetBSD: patch-src_api_python_setup.py,v 1.1 2023/05/11 06:43:43 adam Exp $

Some platforms do not support LTO.

--- src/api/python/setup.py.orig	2023-05-10 16:39:33.324575995 +0000
+++ src/api/python/setup.py
@@ -110,7 +110,7 @@ def _configure_z3():
         'CMAKE_BUILD_TYPE' : 'Release',
         'Z3_BUILD_EXECUTABLE' : True,
         'Z3_BUILD_LIBZ3_SHARED' : True,
-        'Z3_LINK_TIME_OPTIMIZATION' : True,
+        'Z3_LINK_TIME_OPTIMIZATION' : False,
         'WARNINGS_AS_ERRORS' : 'SERIOUS_ONLY',
         # Disable Unwanted Options
         'Z3_USE_LIB_GMP' : False, # Is default false in python build

File Deleted: pkgsrc/math/z3/patches/Attic/patch-src_parsers_util_scanner.cpp

File Deleted: pkgsrc/math/z3/patches/Attic/patch-src_parsers_util_scanner.h

File Deleted: pkgsrc/math/z3/patches/Attic/patch-src_sat_ba__solver.cpp

File Deleted: pkgsrc/math/z3/patches/Attic/patch-src_solver_parallel__tactic.cpp

cvs diff -r1.1 -r1.2 pkgsrc/math/z3/patches/patch-src_sat_sat__solver.cpp (expand / switch to unified diff)

--- pkgsrc/math/z3/patches/patch-src_sat_sat__solver.cpp 2022/05/13 10:41:38 1.1
+++ pkgsrc/math/z3/patches/patch-src_sat_sat__solver.cpp 2023/05/11 06:43:43 1.2
@@ -1,15 +1,14 @@ @@ -1,15 +1,14 @@
1$NetBSD: patch-src_sat_sat__solver.cpp,v 1.1 2022/05/13 10:41:38 jperkin Exp $ 1$NetBSD: patch-src_sat_sat__solver.cpp,v 1.2 2023/05/11 06:43:43 adam Exp $
2 2
3Avoid ambiguous function call. 3Avoid ambiguous function call.
4 4
5--- src/sat/sat_solver.cpp.orig 2018-11-19 20:21:17.000000000 +0000 5--- src/sat/sat_solver.cpp.orig 2023-05-08 13:23:26.000000000 +0000
6+++ src/sat/sat_solver.cpp 6+++ src/sat/sat_solver.cpp
7@@ -31,6 +31,8 @@ Revision History: 7@@ -37,6 +37,7 @@ Revision History:
8 // define to update glue during propagation 8 # include <xmmintrin.h>
9 #define UPDATE_GLUE 9 #endif
10  10
11+using std::pow; 11+using std::pow;
12+ 12
13 namespace sat { 13 namespace sat {
14  14
15 solver::solver(params_ref const & p, reslimit& l): 

File Deleted: pkgsrc/math/z3/patches/Attic/patch-src_util_mpz.cpp