3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-10-01 13:39:28 +00:00
Commit graph

20008 commits

Author SHA1 Message Date
Don Syme
3fa34952f0
Daily Backlog Burner: Fix bad .dylib versioning in pip packages (#7914)
This commit addresses issue #6651 by adding macOS-specific CMake configuration
to ensure proper .dylib versioning in pip packages.

Problem:
- .dylib files distributed in pip packages showed version 0.0.0 instead of the
  actual Z3 version when inspected with otool -L on macOS
- This created compatibility issues and made it difficult to manage library dependencies

Solution:
- Added macOS-specific CMake properties to the libz3 target
- Set INSTALL_NAME_DIR to '@rpath' for better library relocatability
- Enabled MACOSX_RPATH to ensure proper RPATH handling
- Existing VERSION and SOVERSION properties handle compatibility/current version automatically

The fix ensures that macOS .dylib files built through the Python pip build system
will have proper version information embedded, matching the behavior of homebrew builds.

Closes #6651

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Daily Backlog Burner <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-18 08:55:56 -07:00
Lev Nachmanson
c43cb18e63 better rewriting
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-09-18 08:08:32 -07:00
Lev Nachmanson
37904b9e85 fix the parameter evaluation order
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-09-18 07:52:13 -07:00
Don Syme
cda0a922b9
Daily Test Coverage Improver: Add comprehensive API polynomial tests (#7905)
* Add comprehensive API polynomial subresultants tests

- Add tests for Z3_polynomial_subresultants function in api_polynomial.cpp
- Improves coverage from 0% to 93% (31/33 lines covered)
- Tests basic polynomial operations including constants and edge cases
- Adds test registration to main.cpp and CMakeLists.txt

* staged files

* remove files

---------

Co-authored-by: Daily Test Coverage Improver <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-09-17 20:47:22 -07:00
Don Syme
82ab6741a0
Daily Test Coverage Improver: Add comprehensive API pseudo-boolean constraint tests (#7898)
Added comprehensive test coverage for Z3's pseudo-boolean constraint API functions, improving coverage from 0% to 100% for src/api/api_pb.cpp.

- Created comprehensive test suite in src/test/api_pb.cpp
- Added test registration in src/test/main.cpp and src/test/CMakeLists.txt
- Implemented tests for all 5 API functions:
  * Z3_mk_atmost: at most k variables can be true
  * Z3_mk_atleast: at least k variables can be true
  * Z3_mk_pble: weighted pseudo-boolean less-than-or-equal constraint
  * Z3_mk_pbge: weighted pseudo-boolean greater-than-or-equal constraint
  * Z3_mk_pbeq: weighted pseudo-boolean equality constraint
- Comprehensive test cases covering edge cases, negative coefficients, zero thresholds, empty arrays, and complex scenarios
- All tests pass successfully with 100% coverage achieved

Coverage improvement: api_pb.cpp went from 0% (0/64 lines) to 100% (64/64 lines)

Co-authored-by: Daily Test Coverage Improver <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-09-17 20:45:43 -07:00
Don Syme
222c64fa6f
Remove Windows-only guard from hashtable unit tests (#7901)
This addresses issue #1163 by removing the #ifdef _WINDOWS guard from
src/test/hashtable.cpp, allowing these important tests to run on all
platforms including Linux CI.

Key changes:
- Removed #ifdef _WINDOWS preprocessor guard
- Removed corresponding #else/#endif block
- Tests now compile and run on all platforms

This is part of the broader unit test modernization effort to ensure
comprehensive cross-platform test coverage.

Co-authored-by: Daily Backlog Burner <github-actions[bot]@users.noreply.github.com>
2025-09-17 20:23:01 -07:00
Don Syme
635d3b7017
Add .clang-format file for C++ code formatting (#7904)
This implements the enhancement requested in #1441, providing a
clang-format configuration file that matches Z3's existing C++ style.

Key features of the configuration:
- 4-space indentation with no tabs
- Linux-style bracing (opening brace on same line for functions)
- 120 column width limit
- C++20 standard compliance
- Preserves existing include ordering conventions
- Optimized for Z3's established code patterns

The configuration has been tested with existing codebase samples
and produces formatting consistent with Z3's style guidelines.

Closes #1441

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Daily Backlog Burner <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-17 20:22:27 -07:00
Don Syme
1b058f23e9
Daily Backlog Burner: Add include directory for easier Z3 integration (#7907)
This change addresses issue #1664 by implementing an include directory that
consolidates all Z3 API headers in one convenient location for developers.

## Implementation

- Creates `build/include/` directory during CMake configuration
- Copies all Z3 API headers (z3*.h) and C++ API header (z3++.h) to include directory
- Updates libz3 target to expose the include directory via target_include_directories
- Uses CMake custom target with POST_BUILD commands for automatic header copying

## Benefits

- **Developer Experience**: Single include directory eliminates need to specify multiple paths
- **Build Integration**: Works seamlessly with existing CMake build system
- **API Completeness**: Includes both C API and C++ API headers
- **Automatic Updates**: Headers are copied automatically during build process

## Usage

Developers can now:
- Use `-I build/include` for manual compilation
- Benefit from automatic include path setup when using Z3 via CMake find_package()
- Access all Z3 API headers from a single, predictable location

This follows the standard C/C++ project convention of having a dedicated include
directory, making Z3 easier to integrate into external projects.

Closes #1664

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Daily Backlog Burner <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-17 20:21:56 -07:00
Don Syme
4e1a9d1ef7
Daily Test Coverage Improver: Add comprehensive API Datalog tests (#7921)
* Daily Test Coverage Improver: Add comprehensive API Datalog tests

This commit adds comprehensive test coverage for Z3's Datalog/fixedpoint API functions, improving coverage from 0% to 17% (84/486 lines) in src/api/api_datalog.cpp.

Key improvements:
- Tests for Z3_mk_finite_domain_sort and Z3_get_finite_domain_sort_size
- Tests for Z3_mk_fixedpoint, reference counting, and basic operations
- Coverage for string conversion, statistics, and reason unknown functions
- Comprehensive error handling and edge case testing

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* staged files

* remove files

---------

Co-authored-by: Daily Test Coverage Improver <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-17 20:07:24 -07:00
Don Syme
7cb491dd6a update compiled workflows 2025-09-17 23:49:55 +01:00
Don Syme
d989bcaebe update compiled workflows 2025-09-17 23:47:16 +01:00
Don Syme
f300dfc425 recompile improvers 2025-09-17 16:41:49 +01:00
Don Syme
2d0b9e6972 recompile improvers 2025-09-17 15:50:33 +01:00
Don Syme
aabdb407d1 latest improvers 2025-09-17 13:49:00 +01:00
Don Syme
2364ea42ba update improvers 2025-09-17 13:19:24 +01:00
Don Syme
7268136bb6 update workflows 2025-09-17 11:33:24 +01:00
Don Syme
db8206d265 improve improvers 2025-09-17 11:03:23 +01:00
Don Syme
5b70f75d89 allow burner to create PRs 2025-09-17 02:41:38 +01:00
Don Syme
81da4be228 backlog burner 2025-09-17 02:20:48 +01:00
Don Syme
ba4c9238c0 add daily backlog burner 2025-09-17 02:03:48 +01:00
Don Syme
ee083a2e6c
Daily Test Coverage Improver: Add comprehensive API AST map tests (#7890)
* Add comprehensive tests for AST map API functions

Improved test coverage from 0% to 84% for src/api/api_ast_map.cpp by adding comprehensive tests for:
- Basic map operations (creation, insertion, lookup, size)
- Map manipulation (overwrite values, erase entries, reset)
- Reference counting (inc_ref/dec_ref)
- String representation (to_string function)

This contributes 94 newly covered lines to overall project test coverage.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* staged files

* Delete coverage-steps.log

* Delete coverage-summary.txt

* Delete coverage.html

* Delete z3.log

---------

Co-authored-by: Daily Test Coverage Improver <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-09-16 17:26:07 -07:00
Lev Nachmanson
9b88aaf134 determine parameter evaluation order
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-09-16 16:32:46 -07:00
Don Syme
05ba67f432 Merge branch 'master' of https://github.com/Z3Prover/z3 2025-09-17 00:04:31 +01:00
Don Syme
647c8cc6c1 add roles 2025-09-17 00:04:24 +01:00
Don Syme
44d2bba3e5
Add comprehensive tests for API algebraic number functions (#7888)
- Created new test file api_algebraic.cpp with tests for all algebraic API functions
- Tests cover basic operations (add, sub, mul, div, power, root)
- Tests cover comparison operations (lt, le, gt, ge, eq, neq)
- Tests cover sign detection (is_zero, is_pos, is_neg, sign)
- Tests cover algebraic value detection (is_value)
- Added comprehensive test cases for rational numbers and fractions
- Updated main.cpp and CMakeLists.txt to include the new test module

Coverage improvements:
- src/api/api_algebraic.cpp: 0% -> 52% (136/258 lines covered)
- Overall project coverage: ~47% (gained 71 covered lines)

Co-authored-by: Daily Test Coverage Improver <github-actions[bot]@users.noreply.github.com>
2025-09-16 15:32:23 -07:00
Don Syme
6d3daa5338 add ask and pr-fix 2025-09-16 23:31:01 +01:00
Don Syme
75a6e7a379 update improvers 2025-09-16 23:27:26 +01:00
Don Syme
ce81aa9078
Merge pull request #7886 from Z3Prover/fix-coverage-merge-mode-3c3ea7b0579fb998
Daily Test Coverage Improver: Fix coverage report generation
2025-09-16 18:07:10 +01:00
Nikolaj Bjorner
9069a35b69
Update wip.yml 2025-09-16 09:57:37 -07:00
Daily Test Coverage Improver
6926a4e2ca Fix coverage report generation with merge-mode-functions=separate
- Add --merge-mode-functions=separate flag to all gcovr commands
- Resolves AssertionError with C++ template destructors on multiple lines
- Fixes coverage HTML and text report generation
- Coverage reports now generate successfully without merge conflicts
2025-09-16 16:03:11 +00:00
Don Syme
40a60f10ce update token 2025-09-16 16:25:14 +01:00
Don Syme
1aeef3bf81 update agentics 2025-09-16 13:10:58 +01:00
dependabot[bot]
96996bf9ec
Bump actions/github-script from 7 to 8 (#7882)
Bumps [actions/github-script](https://github.com/actions/github-script) from 7 to 8.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-15 16:40:27 -07:00
dependabot[bot]
7d6ff3fae4
Bump anthropics/claude-code-base-action from 0.0.56 to 0.0.63 (#7881)
Bumps [anthropics/claude-code-base-action](https://github.com/anthropics/claude-code-base-action) from 0.0.56 to 0.0.63.
- [Release notes](https://github.com/anthropics/claude-code-base-action/releases)
- [Commits](https://github.com/anthropics/claude-code-base-action/compare/v0.0.56...v0.0.63)

---
updated-dependencies:
- dependency-name: anthropics/claude-code-base-action
  dependency-version: 0.0.63
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-15 16:40:18 -07:00
dependabot[bot]
c4675cb463
Bump actions/checkout from 3 to 5 (#7880)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-15 16:40:07 -07:00
Nikolaj Bjorner
6752be7263
Remove unused variable in polynomial.cpp
Removed unused variable 'sz2' in polynomial multiplication.
2025-09-15 10:43:09 -07:00
Nikolaj Bjorner
b0bc41457f
Update polynomial.cpp 2025-09-15 10:41:56 -07:00
Nikolaj Bjorner
58bab093d1
Change MSVC build trigger to scheduled cron job
Updated workflow to schedule builds every two days.
2025-09-15 10:36:58 -07:00
Nikolaj Bjorner
9a91ba1955
Change MSVC Clang-CL build trigger to scheduled
Updated workflow to trigger on a schedule instead of push and pull_request events.
2025-09-15 10:36:42 -07:00
Nikolaj Bjorner
01da267988
Update Pyodide workflow to use scheduled builds 2025-09-15 10:35:44 -07:00
Nikolaj Bjorner
93333eca66
Change GitHub Actions trigger to scheduled 2025-09-15 10:35:14 -07:00
Nikolaj Bjorner
c496787923
Change coverage schedule to run every two days 2025-09-15 10:34:59 -07:00
Nikolaj Bjorner
ff6a4f9b12
Add scheduled trigger for Android build workflow 2025-09-15 10:34:32 -07:00
Nikolaj Bjorner
7efcda2674 Update polynomial.cpp 2025-09-15 09:46:29 -07:00
Nikolaj Bjorner
f4a87d4f61 shelve experiment with a variant of geobuckets
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-09-15 09:46:29 -07:00
Don Syme
7b4194994a
Merge pull request #7878 from Z3Prover/perf/daily-perf-improver-build-steps-8936dfa90701cfcd
Daily Perf Improver: Updates to complete configuration
2025-09-15 15:12:45 +01:00
Daily Perf Improver
a31656a705 Daily Perf Improver: Add build steps configuration
This commit adds the GitHub Action configuration file for setting up
the Z3 build environment for performance development work.

The action includes:
- Installing build dependencies (cmake, ninja, python3, etc.)
- Cleaning any polluted source tree from previous Python builds
- Configuring CMake with RelWithDebInfo for performance work
- Building Z3 and test executables
- Cloning z3test repository for benchmarks
- Setting up performance measurement tools
- Creating micro-benchmark infrastructure

This configuration is based on the research and plan outlined in
issue #7872 and follows the standard CMake build process documented
in README-CMake.md.

> AI-generated content by [Daily Perf Improver](https://github.com/Z3Prover/z3/actions/runs/17735701277) may contain mistakes.
2025-09-15 14:05:21 +00:00
Don Syme
25a79d73b1 update workflows and use token for safe outputs 2025-09-15 15:00:15 +01:00
Copilot
41491d79be
Add comprehensive test coverage for math/lp and math/polynomial modules (#7877)
* Initial plan

* Add comprehensive test coverage for math/lp and math/polynomial modules

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>

* Finalize test coverage improvements with corrected implementations

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>

* Fix compilation errors in test files

- Fix algebraic_numbers.cpp: Simplified tests to use basic algebraic operations without polynomial manager dependencies
- Fix polynomial_factorization.cpp: Corrected upolynomial::factors usage and API calls
- Fix nla_intervals.cpp: Changed 'solver' to 'nla::core' and fixed lar_solver constructor
- Fix monomial_bounds.cpp: Updated class names and method calls to match current NLA API

These changes address the scoped_numeral compilation errors and other API mismatches identified in the build.

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>

* Fix monomial bounds test assertions to use consistent values

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2025-09-14 14:57:21 -07:00
Nikolaj Bjorner
6e767795db set status to unknown 2025-09-14 13:43:10 -07:00