Commit graph

5954 commits

Author SHA1 Message Date
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
Alexandre Duret-Lutz
084964a9ff autfilt: fix incorrect diagnostic
* bin/autfilt.cc (OPT_KEEP_STATES): Mention the correct option.
* tests/core/maskkeep.test: Test for it.
* NEWS: Mention the bug.
2021-05-12 10:24:12 +02:00
Alexandre Duret-Lutz
cad3d7706c twagraph: improve doc
Based on report by Michaël Cadilhac.

* spot/graph/graph.hh, spot/twa/twagraph.hh (defrag_state): Clarify
that only unreachable states are meant to be removed.
* spot/twa/twagraph.hh (merge_edges): Typo in comment.  Fixes #457.
* THANKS: Add Michaël.
2021-05-12 10:22:42 +02:00
Alexandre Duret-Lutz
4d23b7b770 work around a GraphViz 2.60.0 bug
* spot/twa/twagraph.cc (dump_storage_as_dot): Prefer \n over a plain
new line to work around GraphViz issue 1931, which was causing
twagraph-internals.ipynb to fail in our test suite.
2021-05-12 10:13:56 +02:00
Alexandre Duret-Lutz
244e3a9731 fix eventual/universal properties for ->/<->/xor
* spot/tl/formula.cc: Correctly set eventual and universal properties
for ->, <->, and xor.  This wasn't really relevant before, but there
are now situation where those are not rewritten.
* tests/core/kind.test: Adjust expected output.
* tests/core/ltl2tgba2.test: New test case, reported by Florian
Renkin.
* NEWS: Mention the bug.
2021-05-12 10:13:38 +02:00
Alexandre Duret-Lutz
b6c4145599 merge_edge: clarify documentation
Reported by Florian Renkin.

* spot/graph/graph.hh, spot/twa/twagraph.hh (merge_edge): Document
that it is expected that state i can only be renamed as j if j≤i.
2021-05-12 10:11:35 +02:00
Alexandre Duret-Lutz
fe007b9de3 * doc/org/setup.org: Fix last release date. 2021-05-12 10:09:40 +02:00
Alexandre Duret-Lutz
9a5a2836a9 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-11 18:25:55 +02:00
Alexandre Duret-Lutz
23323b743f postproc: introduce dba-simul, and have simul=0 disable all *-simul
* spot/twaalgos/postproc.cc, spot/twaalgos/postproc.hh: Implement the
dba-simul option, and disable ba-simul, dba-simul, dpa-simul,
det-simul when simul=0.
* bin/ltlsynt.cc: Adjust.
* bin/spot-x.cc: Document dba-simul and adjust other variables.
* tests/core/minusx.test: Add some test.
2021-05-03 13:30:03 +02:00
Alexandre Duret-Lutz
0744052bc0 remove a useless test
We have enough outputs checked verbatim everywhere so that testing
that three execution of a single command return the same output is now
a waste of time.

* tests/core/simdet.test: Remove.
* tests/Makefile.am: Adjust.
2021-04-30 22:22:02 +02:00
Alexandre Duret-Lutz
d32f19f5d0 postproc: add support for -x dpa-simul and simul-trans-pruning
Also have simul-max default to 4096 instead of 512, because it's
really simul-trans-pruning that is very slow and need to be limited.

* spot/twaalgos/postproc.cc, spot/twaalgos/postproc.hh,
spot/twaalgos/simulation.cc, spot/twaalgos/simulation.hh,
spot/twaalgos/determinize.cc, spot/twaalgos/determinize.hh:
Implement the above options.
* bin/spot-x.cc, NEWS: Document them.
* tests/core/ltlsynt.test, tests/core/minusx.test,
tests/core/sim3.test: Add some test cases.
2021-04-30 22:22:02 +02:00
Alexandre Duret-Lutz
fca6513604 simulation: fix merging transiant SCCs
This fixes #452, and also fix a bug related to transiant SCCs
incorrectly merged in cosimulation: the source of the edges was
updated without fixing the chaining of the edges.

* spot/twaalgos/simulation.cc: Fix all the above.
* tests/python/simstate.py: Add test case from issue #452.
* tests/core/det.test, tests/core/ltlsynt.test,
tests/core/satmin.test: Lower expected sizes.
* tests/python/decompose.ipynb: Adjust for changed order.
2021-04-19 23:38:50 +02:00
Alexandre Duret-Lutz
cfa3417449 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-04-19 16:46:30 +02:00
Alexandre Duret-Lutz
803a61a03d parse_aut: add support for #line
Fixes issue #232.

* spot/parseaut/parseaut.yy, spot/parseaut/public.hh,
spot/parseaut/scanaut.ll: Add support for #line.
* tests/core/parseaut.test: Test it.
* NEWS: Mention it.
2021-04-17 10:39:02 +02:00
Alexandre Duret-Lutz
093de290c1 python: add binding for spot::twa::prop_set
Fix #453.

* python/spot/impl.i: Here.
* NEWS: Mention them.
* tests/python/twagraph.py: Test them.
2021-04-17 10:38:58 +02:00
Alexandre Duret-Lutz
b4b4730ecb * .gitlab-ci.yml (before_script): Ignore a missing */cpuset.cpus. 2021-04-15 16:08:00 +02:00
Alexandre Duret-Lutz
85581d7c3a * spot/twa/twagraph.cc (remove_unused_ap): Remove unused variable. 2021-04-15 16:03:16 +02:00
Alexandre Duret-Lutz
2a38328a5c replace bdd_satoneset(x,y,bddtrue) loops by minterms_of(x,y)
Because the loops iterate in the opposite order, multiple
test cases need to be adjusted.

* spot/taalgos/tgba2ta.cc, spot/twaalgos/alternation.cc,
spot/twaalgos/dualize.cc, spot/twaalgos/ltl2tgba_fm.cc,
spot/twaalgos/simulation.cc, spot/twaalgos/stutter.cc,
spot/twaalgos/toweak.cc: Replace loops based on
bdd_satonest(x,y,bddtrue) by loops based on minterms_of(x,y).
* tests/core/degenscc.test, tests/core/dualize.test,
tests/core/genltl.test, tests/core/readsave.test,
tests/python/alternation.ipynb, tests/python/automata.ipynb,
tests/python/decompose.ipynb, tests/python/decompose_scc.py,
tests/python/dualize.py, tests/python/sccinfo.py,
tests/python/simstate.py, tests/python/testingaut.ipynb,
tests/python/word.ipynb: Adjust expected test cases.  The
only regression is in genltl.test, but the worsened case
should eventually be fixed as discussed in issue #425 anyway.
2021-04-14 17:31:45 +02:00
Alexandre Duret-Lutz
d54dca610e replace bdd_satoneset(x,y,bddfalse) loops by minterms_of(x,y)
This replaces loops of the form

   while (all != bddfalse) {
      bdd one = bdd_satoneset(all, sup, bddfalse);
      all -= one;
      // ... use one ...
   }

by the more efficient

   for (bdd one: minterms_of(all, sub))
      // ... use one ...

This patch only focues on loops where the third
argument of bdd_satoneset is bddfalse.

* spot/twaalgos/cobuchi.cc, spot/twaalgos/complement.cc,
spot/twaalgos/determinize.cc, spot/twaalgos/dtbasat.cc,
spot/twaalgos/dtwasat.cc, spot/twaalgos/hoa.cc,
spot/twaalgos/powerset.cc: Improve bdd_satoneset()-based loops.
*
2021-04-12 19:07:25 +02:00
Alexandre Duret-Lutz
f3c42596aa split_edges: actually use the cache, and minterms_of()
* spot/twaalgos/split.cc (split_edges): Fix some typos, reported by
Philipp, that were causing the cache not to be used.  Speed up using
minterms_of().
2021-04-12 18:53:24 +02:00
Alexandre Duret-Lutz
c58aa678ec test minterms_of enumerator
* tests/core/minterm.cc, tests/core/minterm.test: New files.
* tests/core/.gitignore, tests/Makefile.am: Add them.
2021-04-12 17:54:12 +02:00
Alexandre Duret-Lutz
d2fe46136a [buddy] introduce minterm enumeration support
* src/bddop.c, src/bddx.h (bdd_ibuildcube2, bdd_first_minterm,
bdd_next_minterm): New functions.
* src/bddx.h (minterms_of): New class.
2021-04-12 17:52:47 +02:00
Jerome Dubois
ec4deb3219 split: Improve performance of split_edges()
* spot/twaalgos/split.cc: Add cache to avoid
  computing multiple split on the same condition.
2021-03-29 11:30:05 +02:00