Skip to content

Commit 2695221

Browse files
authored
[Julia bindings] Changes for libcxxwrap 0.7 (#4184)
* First steps toward adding Julia bindings * Simplifications * Streamlining * Friends of tactic and probe * Add missing functions * Update azure-pipelines.yml for Azure Pipelines * Update azure-pipelines.yml for Azure Pipelines * Update azure-pipelines.yml for Azure Pipelines * Update azure-pipelines.yml for Azure Pipelines * Changes for CxxWrap v0.9.0 * Wrap enumeration and tuple sort * Wrap z3::fixedpoint * Wrap z3::optimize * Wrap missing functions * Fix aux types * Add some missing functions * Revert "Update azure-pipelines.yml for Azure Pipelines" This reverts commit 5aab9f9. * Revert "Update azure-pipelines.yml for Azure Pipelines" This reverts commit cfccd7c. * Revert "Update azure-pipelines.yml for Azure Pipelines" This reverts commit f24740c. * Revert "Update azure-pipelines.yml for Azure Pipelines" This reverts commit 592499e. * Checkout current version of pipeline * Build Julia bindings on macOS * Extract components of algebraic number * Add type to C API function name * Remove blank line * Typo in doc * Return Z3_ast_vector containing coefficients * Update Julia bindings
1 parent 6088da5 commit 2695221

File tree

2 files changed

+24
-24
lines changed

2 files changed

+24
-24
lines changed

azure-pipelines.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ jobs:
182182
- script: brew install ninja
183183
- script: brew cask install julia
184184
- script: |
185-
julia -e "using Pkg; Pkg.add(PackageSpec(name=\"libcxxwrap_julia_jll\", version=\"0.6.6\"))"
185+
julia -e "using Pkg; Pkg.add(PackageSpec(name=\"libcxxwrap_julia_jll\", version=\"0.7.0\"))"
186186
JlCxxDir=$(julia -e "using libcxxwrap_julia_jll; println(joinpath(dirname(libcxxwrap_julia_jll.libcxxwrap_julia_path), \"cmake\", \"JlCxx\"))")
187187
set -e
188188
mkdir build

src/api/julia/z3jl.cpp

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,8 @@ JLCXX_MODULE define_julia_module(jlcxx::Module &m)
9797

9898
TYPE_OBJ(config)
9999
.method("set", static_cast<void (config::*)(char const *, char const *)>(&config::set))
100-
.method("set", [](config &a, char const *b, const jlcxx::StrictlyTypedNumber<bool> &c) { return a.set(b, c.value); })
101-
.method("set", [](config &a, char const *b, const jlcxx::StrictlyTypedNumber<int> &c) { return a.set(b, c.value); });
100+
.method("set", static_cast<void (config::*)(char const *, bool)>(&config::set))
101+
.method("set", static_cast<void (config::*)(char const *, int)>(&config::set));
102102

103103
// -------------------------------------------------------------------------
104104

@@ -377,8 +377,8 @@ JLCXX_MODULE define_julia_module(jlcxx::Module &m)
377377
.method("set", static_cast<void (solver::*)(char const *, double)>(&solver::set))
378378
.method("set", static_cast<void (solver::*)(char const *, symbol const &)>(&solver::set))
379379
.method("set", static_cast<void (solver::*)(char const *, char const *)>(&solver::set))
380-
.method("set", [](solver &a, char const *b, const jlcxx::StrictlyTypedNumber<bool> &c) { return a.set(b, c.value); })
381-
.method("set", [](solver &a, char const *b, const jlcxx::StrictlyTypedNumber<unsigned> &c) { return a.set(b, c.value); })
380+
.method("set", static_cast<void (solver::*)(char const *, bool)>(&solver::set))
381+
.method("set", static_cast<void (solver::*)(char const *, unsigned)>(&solver::set))
382382
.MM(solver, push)
383383
.MM(solver, pop)
384384
.MM(solver, reset)
@@ -475,8 +475,8 @@ JLCXX_MODULE define_julia_module(jlcxx::Module &m)
475475

476476
TYPE_OBJ(params)
477477
.constructor<context &>()
478-
.method("set", [](params &a, char const *b, const jlcxx::StrictlyTypedNumber<bool> &c) { return a.set(b, c.value); })
479-
.method("set", [](params &a, char const *b, const jlcxx::StrictlyTypedNumber<unsigned> &c) { return a.set(b, c.value); })
478+
.method("set", static_cast<void (params::*)(char const *, bool)>(&params::set))
479+
.method("set", static_cast<void (params::*)(char const *, unsigned)>(&params::set))
480480
.method("set", static_cast<void (params::*)(char const *, double)>(&params::set))
481481
.method("set", static_cast<void (params::*)(char const *, symbol const &)>(&params::set))
482482
.method("set", static_cast<void (params::*)(char const *, char const *)>(&params::set))
@@ -591,18 +591,18 @@ JLCXX_MODULE define_julia_module(jlcxx::Module &m)
591591

592592
// -------------------------------------------------------------------------
593593

594-
m.method("set_param", [](char const *a, const jlcxx::StrictlyTypedNumber<bool> &b) { return set_param(a, b.value); });
595-
m.method("set_param", [](char const *a, const jlcxx::StrictlyTypedNumber<int> &b) { return set_param(a, b.value); });
596-
m.method("set_param", static_cast<void (*)(char const * param, char const * value)>(&set_param));
594+
m.method("set_param", static_cast<void (*)(char const *, bool)>(&set_param));
595+
m.method("set_param", static_cast<void (*)(char const *, int)>(&set_param));
596+
m.method("set_param", static_cast<void (*)(char const *, char const *)>(&set_param));
597597
m.method("reset_params", &reset_params);
598598

599599
// -------------------------------------------------------------------------
600600

601601
TYPE_OBJ(context)
602602
.constructor<config &>()
603603
.method("set", static_cast<void (context::*)(char const *, char const *)>(&context::set))
604-
.method("set", [](context &a, char const *b, const jlcxx::StrictlyTypedNumber<bool> &c) { return a.set(b, c.value); })
605-
.method("set", [](context &a, char const *b, const jlcxx::StrictlyTypedNumber<int> &c) { return a.set(b, c.value); })
604+
.method("set", static_cast<void (context::*)(char const *, bool)>(&context::set))
605+
.method("set", static_cast<void (context::*)(char const *, int)>(&context::set))
606606
//
607607
.MM(context, interrupt)
608608
//
@@ -681,23 +681,23 @@ JLCXX_MODULE define_julia_module(jlcxx::Module &m)
681681
//
682682
.MM(context, bool_val)
683683
//
684-
.method("int_val", [](context &a, const jlcxx::StrictlyTypedNumber<int> &b) { return a.int_val(b.value); })
685-
.method("int_val", [](context &a, const jlcxx::StrictlyTypedNumber<unsigned> &b) { return a.int_val(b.value); })
686-
.method("int_val", [](context &a, const jlcxx::StrictlyTypedNumber<int64_t> &b) { return a.int_val(b.value); })
687-
.method("int_val", [](context &a, const jlcxx::StrictlyTypedNumber<uint64_t> &b) { return a.int_val(b.value); })
684+
.method("int_val", [](context &a, const jlcxx::StrictlyTypedNumber<int> b) { return a.int_val(b.value); })
685+
.method("int_val", [](context &a, const jlcxx::StrictlyTypedNumber<unsigned> b) { return a.int_val(b.value); })
686+
.method("int_val", [](context &a, const jlcxx::StrictlyTypedNumber<int64_t> b) { return a.int_val(b.value); })
687+
.method("int_val", [](context &a, const jlcxx::StrictlyTypedNumber<uint64_t> b) { return a.int_val(b.value); })
688688
.method("int_val", static_cast<expr (context::*)(char const *)>(&context::int_val))
689689
//
690-
.method("real_val", [](context &a, const jlcxx::StrictlyTypedNumber<int> &b) { return a.real_val(b.value); })
691-
.method("real_val", [](context &a, const jlcxx::StrictlyTypedNumber<unsigned> &b) { return a.real_val(b.value); })
692-
.method("real_val", [](context &a, const jlcxx::StrictlyTypedNumber<int64_t> &b) { return a.real_val(b.value); })
693-
.method("real_val", [](context &a, const jlcxx::StrictlyTypedNumber<uint64_t> &b) { return a.real_val(b.value); })
690+
.method("real_val", [](context &a, const jlcxx::StrictlyTypedNumber<int> b) { return a.real_val(b.value); })
691+
.method("real_val", [](context &a, const jlcxx::StrictlyTypedNumber<unsigned> b) { return a.real_val(b.value); })
692+
.method("real_val", [](context &a, const jlcxx::StrictlyTypedNumber<int64_t> b) { return a.real_val(b.value); })
693+
.method("real_val", [](context &a, const jlcxx::StrictlyTypedNumber<uint64_t> b) { return a.real_val(b.value); })
694694
.method("real_val", static_cast<expr (context::*)(int, int)>(&context::real_val))
695695
.method("real_val", static_cast<expr (context::*)(char const *)>(&context::real_val))
696696
//
697-
.method("bv_val", [](context &a, const jlcxx::StrictlyTypedNumber<int> &b, const jlcxx::StrictlyTypedNumber<unsigned> &c) { return a.bv_val(b.value, c.value); })
698-
.method("bv_val", [](context &a, const jlcxx::StrictlyTypedNumber<unsigned> &b, const jlcxx::StrictlyTypedNumber<unsigned> &c) { return a.bv_val(b.value, c.value); })
699-
.method("bv_val", [](context &a, const jlcxx::StrictlyTypedNumber<int64_t> &b, const jlcxx::StrictlyTypedNumber<unsigned> &c) { return a.bv_val(b.value, c.value); })
700-
.method("bv_val", [](context &a, const jlcxx::StrictlyTypedNumber<uint64_t> &b, const jlcxx::StrictlyTypedNumber<unsigned> &c) { return a.bv_val(b.value, c.value); })
697+
.method("bv_val", [](context &a, const jlcxx::StrictlyTypedNumber<int> b, unsigned c) { return a.bv_val(b.value, c); })
698+
.method("bv_val", [](context &a, const jlcxx::StrictlyTypedNumber<unsigned> b, unsigned c) { return a.bv_val(b.value, c); })
699+
.method("bv_val", [](context &a, const jlcxx::StrictlyTypedNumber<int64_t> b, unsigned c) { return a.bv_val(b.value, c); })
700+
.method("bv_val", [](context &a, const jlcxx::StrictlyTypedNumber<uint64_t> b, unsigned c) { return a.bv_val(b.value, c); })
701701
.method("bv_val", static_cast<expr (context::*)(char const *, unsigned)>(&context::bv_val))
702702
.method("bv_val", static_cast<expr (context::*)(unsigned, bool const *)>(&context::bv_val))
703703
//

0 commit comments

Comments
 (0)