Commit graph

6176 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
eeccd5804d * spot/graph/graph.hh (chain_edges_): Typo in doc. 2021-08-10 13:24:55 +02:00
Alexandre Duret-Lutz
c58e6f22ac mealy: work around spurious nullptr warning
* spot/twaalgos/mealy_machine.cc (mm_sat_prob_t<true>::get_sol): Call
SPOT_ASSUME to hint that res.data() is not null.
2021-08-02 09:28:14 +02:00
Alexandre Duret-Lutz
3614cf34a8 use bdd_have_common_assignment in more places
* spot/twaalgos/gfguarantee.cc, spot/twaalgos/isdet.cc: Use it.
2021-07-30 12:06:23 +02:00
Alexandre Duret-Lutz
a6aa799a17 adjust for BuDDy change
* spot/twaalgos/mealy_machine.cc, python/buddy.i: Rename
bdd_has_common_assignement to bdd_have_common_assignment.
2021-07-30 12:01:19 +02:00
Alexandre Duret-Lutz
dfd168b048 [buddy] fix bdd_has_common_assignement
* src/bddop.c, src/bddx.h (bdd_has_common_assignement): Rename as...
(bdd_have_common_assignment): ... this, and fix level comparisons.
Also add a cache.
2021-07-30 11:35:10 +02:00
Alexandre Duret-Lutz
af511707c0 introduce a zielonka_tree class
* spot/twaalgos/zlktree.cc, spot/twaalgos/zlktree.hh: New files.
* spot/twaalgos/Makefile.am: Add them.
* tests/python/_zlktree.ipynb: New file.
* tests/Makefile.am: Add it.
* python/spot/__init__.py, python/spot/impl.i: Add bindings for it.
* doc/spot.bib (casares.21.icalp): New entry.
* NEWS: Mention this.
2021-07-30 11:00:25 +02:00
Alexandre Duret-Lutz
803f647dde acc: make the to_bdd() method public
* spot/twa/acc.cc, spot/twa/acc.hh (acc_code::to_bdd): New method
that calls the private to_bdd_rec() function.
2021-07-30 11:00:25 +02:00
philipp
31d6dc33e7 Improving efficiency of unsplit_2step
* spot/twaalgos/synthesis.cc: Here
2021-07-29 09:50:26 +02:00
Florian Renkin
9669806cd0 Adding signature based minimization of mealy machines
* spot/twaalgos/mealy_machine.cc: Here
* tests/python/mealy.py: Adding tests
2021-07-29 09:50:26 +02:00
philipp
3da41aa9a1 Improving hash performance for pairs of integral types
* spot/misc/hash.hh: Here
2021-07-29 09:50:26 +02:00
philipp
f4776efb63 Adding sat-based minimization for mealy machines
* spot/twaalgos/mealy_machine.hh,
spot/twaalgos/mealy_machine.cc: Here
* spot/twaalgos/Makefile.am: Here
* tests/python/mealy.py: Added tests
* tests/Makefile.am: Adding mealy.py
* python/spot/impl.i: Here
2021-07-29 09:49:45 +02:00
philipp
e8f5865fb8 Add setter and getter for synthesis-outputs
* spot/twaalgos/game.cc, spot/twaalgos/game.hh: Here
2021-07-27 16:45:44 +02:00
philipp
08113e0e04 Adding bdd_has_common_assignement
* python/buddy.i: Here
2021-07-27 16:45:44 +02:00
philipp
92239d8242 [buddy] Adding bdd_has_common_assignement
bdd_has_common_assignement determines if two bdds a and b
have (at least) one common assignement.
That is it will return true iff bdd_and(a, b) != bddfalse.

* src/bddx.h: Here
* src/bddop.c: Here
2021-07-27 16:45:44 +02:00
Alexandre Duret-Lutz
31e87aac11 mc: add missing <atomic> includes
* spot/mc/lpar13.hh, spot/mc/mc_instanciator.hh: Here.
2021-07-26 11:43:17 +02:00
Alexandre Duret-Lutz
4570c735f3 merge_states: don't call defrag_states if unnecessary
* spot/twa/twagraph.cc (merge_states): Return the number
of removed states, and use that to decide if defrag_states
is needed.
* spot/twa/twagraph.hh, NEWS: Document that.
* tests/core/tgbagraph.test, tests/core/twagraph.cc: Adjust test case.
2021-07-26 11:43:17 +02:00
Alexandre Duret-Lutz
d019ea61fe python: make sere twa::acc() survives its automaton
Fixes #468.

* python/spot/__init__.py: Add wrapper around twa::acc() and
twa::get_acceptance() to store the automaton into the acceptance
proxy, therefore ensuring that the automaton survives that proxy.
* tests/python/setacc.py: Test it.
2021-07-12 15:27:07 +02:00
Alexandre Duret-Lutz
b767411a82 twa_graph: work around swig-3 calling the wrong make_twa_graph copy
* spot/twa/twagraph.cc (copy): Redirect to the faster make_twa_graph
when possible.
2021-07-08 17:38:40 +02:00
Alexandre Duret-Lutz
31a681c285 twa: implement a copy_named_properties_of() method
It was noted in #470 that make_twa_graph did not copy named
properties.  Let's fix that.

* spot/twa/twa.hh, spot/twa/twa.cc (copy_named_properties_of): New
method.
* spot/twa/twagraph.hh (make_twa_graph): Add an extra argument to
call copy_named_properties_of() optionally.
* python/spot/__init__.py (twa_graph.__copy__): Use it.
* tests/python/twagraph.py: Test that.
* tests/sanity/namedprop.test: Ensure copy_named_properties_of copies
all known named properties.
2021-07-08 10:33:15 +02:00
Alexandre Duret-Lutz
0cf2d285b6 python: implement twa_graph.__copy__
Fixes #470, suggested by Cambridge Yang.

* python/spot/__init__.py (twa_graph.__copy__): Call make_twa_graph.
* tests/python/twagraph.py: Test it.
* NEWS: Mention it.
2021-07-08 09:33:57 +02:00
Alexandre Duret-Lutz
0509263f82 twa: fix intersecting_run on weak automata
Fixes #471, reported by Cambridge Yang.

* spot/twa/twa.cc (intersecting_run): Disable the product
optimization for weak automata.
* tests/python/471.py: New file.
* tests/Makefile.am: Add it.
* NEWS: Mention the bug.
2021-07-08 09:00:29 +02:00
Alexandre Duret-Lutz
09e4ab74a1 twa_run: reduce now diagnoses rejecting runs
Part of #471.

* spot/twaalgos/emptiness.cc: Throw an exception if
the cycle is rejecting.
* spot/twaalgos/emptiness.hh: Document this behavior.
* tests/python/except.py: Test it.
2021-07-07 17:25:29 +02:00
Alexandre Duret-Lutz
f493f72015 * spot.spec.in: Adjust names of Python libs. 2021-07-07 17:15:50 +02:00
Alexandre Duret-Lutz
1679d05bcd fix a gcc-snapshot -Wnoexcept diagnostic
* spot/misc/hash.hh (ptr_hash): Add noexcept on constructor to please
gcc-snapshot.
2021-07-05 22:43:56 +02:00
Alexandre Duret-Lutz
c5424e1c84 have a CI build with PyPy
This fixes #467.

* .gitlab-ci.yml (debian-unstable-gcc-pypy): New Build.
2021-07-05 22:43:56 +02:00
Alexandre Duret-Lutz
058fdf1dc6 * spot/misc/bitset.hh (operator-=): Simplify sightly. 2021-07-05 14:50:19 +02:00
Alexandre Duret-Lutz
b01bc62f52 bitset: fix implementation of operator-()
This fixes #469.

* spot/misc/bitset.hh (bitset::operator-): Rewrite.
I cannot follow the logic of the old implementation.
* tests/python/setacc.py: Add a test case, inspired from #469.
2021-07-05 14:50:19 +02:00
Alexandre Duret-Lutz
3d79022abb adjust some python tests to work with PyPy
Part of #467.

* tests/python/bdddict.py, tests/python/ltl2tgba.py,
tests/python/ltlparse.py, tests/python/ltlsimple.py,
tests/python/sccinfo.py, tests/python/simstate.py,
tests/python/split.py, tests/python/tra2tba.py: Adjust to
deal with a non-refcounted Python implementation.
2021-06-29 23:16:40 +02:00
Alexandre Duret-Lutz
47348a9755 improve PyPy support by following PEP 3149
This implement the suggestion is issue #467 but the test suite is
still not completely passing with pypy3.

* m4/pypath.m4: Detect the suffix for extensions.
* python/Makefile.am: Use it.
* tests/run.in: Recognize pypy3 as a Python version.
2021-06-29 21:15:04 +02:00
Alexandre Duret-Lutz
d43f23b423 org: we have a conda-forge package.
* doc/org/install.org: Add conda instructions.
2021-06-29 12:36:57 +02:00
Alexandre Duret-Lutz
7c5f81e3bb work around a null pointer dereference error
This fixes #462.

* spot/twaalgos/gfguarantee.cc (do_g_f_terminal_inplace): Replace the
redirect_src vector by a unique_ptr<unsigned[]>.  Not only does this
remove the false positive diagnostic, but it also removes the unneeded
default initialization of the elements of that vector.
2021-06-23 10:11:23 +02:00
Alexandre Duret-Lutz
ba0c8e8a29 use <cassert> and not <assert.h> in C++
* spot/mc/unionfind.cc, spot/twacube/cube.cc,
spot/twacube_algos/convert.cc: Includes code.
* tests/sanity/style.test: Add a test for this.
2021-06-15 12:34:15 +02:00
Alexandre Duret-Lutz
826577c81e * spot/twacube_algos/convert.cc: Avoid unnecessary std::function. 2021-06-15 12:27:15 +02:00
Alexandre Duret-Lutz
12cdf0d33d * README: Update documentation for --enable-c++20. 2021-06-15 12:21:53 +02:00
Alexandre Duret-Lutz
b8c7eb7f2b fix some typos in the spot-x man page
* bin/spot-x.cc: Here.
2021-06-15 09:58:15 +02:00
Alexandre Duret-Lutz
08c2424e2e ltlfilt: fix a typo in the --help text
* bin/ltlfilt.cc: Here.
2021-06-11 11:50:26 +02:00
Alexandre Duret-Lutz
99241d0bea typos: coma -> comma
* ChangeLog.1, tests/core/autcross3.test, tests/core/ltl3ba.test,
tests/core/ltl3dra.test, tests/core/ltlcross3.test,
tests/core/ltlsynt.test, tests/sanity/style.test: Here.
2021-06-11 11:47:34 +02:00
Alexandre Duret-Lutz
e6055c57a7 [buddy] typo coma -> comma
* ChangeLog.1: Here.
2021-06-11 11:47:34 +02:00
Alexandre Duret-Lutz
4965aad0c2 * spot/misc/bddlt.hh: Use bdd_stable_cmp, just added to BuDDy. 2021-06-11 11:47:34 +02:00
Alexandre Duret-Lutz
9ed2682f67 [buddy] introduce bdd_stable_cmp
* src/bddx.h, misc/bddlt.hh (bdd_stable_cmp): Define this
new function, based on some code that was implemented in Spot, but was
unnecessarily doing reference counting.
2021-06-11 11:47:29 +02:00
Alexandre Duret-Lutz
edfcd5b0d8 merge_states: fix segfault reported by Philipp
* spot/twa/twagraph.cc: Here.
* tests/python/mergedge.py: Add test case.
2021-05-31 20:46:41 +02:00
Alexandre Duret-Lutz
634dd28379 merge_states: include sorting and detection of identical self-loops
* spot/twa/twagraph.cc: Implement it.
* spot/twa/twagraph.hh, NEWS: Document it.
* tests/python/mergedge.py: Test it.
* tests/core/ltlsynt.test, tests/python/games.ipynb: Adjust expectations.
2021-05-18 10:50:12 +02:00
Alexandre Duret-Lutz
e12f22f82a * spot/graph/graph.hh (chain_edges_): Typo in doc. 2021-05-17 18:14:32 +02:00
Alexandre Duret-Lutz
e53265dd44 Merge branch 'master' into next 2021-05-12 16:42:06 +02:00
Alexandre Duret-Lutz
30e82e7b1f Bump version to 2.9.7.dev
* NEWS, configure.ac: Here.
2021-05-12 15:56:02 +02:00
Alexandre Duret-Lutz
bc768a7157 Release Spot 2.9.7
* NEWS, configure.ac, doc/org/setup.org: Update for 2.9.7.
2021-05-12 15:54:55 +02:00
Alexandre Duret-Lutz
d3df766e56 org: add missing :exports results :results silent
* doc/org/ltlfilt.org, doc/org/tut30.org, doc/org/tut31.org: Hide rm
invocations used for cleanup.
2021-05-12 10:27:46 +02:00
Alexandre Duret-Lutz
6253885af7 improve documentation for -x sat-minimize
* bin/man/spot-x.x, bin/spot-x.cc: Improve documentation of SAT-based
minimization.  It was still referring to TGBA although it works for
TwA.
* spot/twaalgos/postproc.cc: Typo.
2021-05-12 10:26:54 +02:00
Alexandre Duret-Lutz
caca8728fe * spot/twa/twagraph.cc (remove_unused_ap): Remove unused variable. 2021-05-12 10:24:50 +02:00
Alexandre Duret-Lutz
7ef69fa15b * doc/tl/tl.tex: Typo reported by Florian. 2021-05-12 10:24:29 +02:00