Commit graph

5792 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
7b2e32e291 tests: do not override DYLD_LIBRARY_PATH
* tests/run.in: Here.
2020-09-23 13:32:20 +02:00
Alexandre Duret-Lutz
2a7bbb1cdc tests: fix import of libspotgen on Darwin
Fixes #426, reported by Étienne Renault.

* tests/run.in: Augment modpath.
2020-09-23 13:13:28 +02:00
Alexandre Duret-Lutz
3d2cac7275 Update HACKING
Fixes #427 and #429.

* HACKING: Mention dot2tex and update Flex.
2020-09-23 11:36:53 +02:00
Alexandre Duret-Lutz
b43f378db5 tests: fix non-portable use of sed
Fixes #428, reported by Etienne Renault.

* tests/core/genltl.test: Do use \? with sed.
2020-09-23 11:33:18 +02:00
Alexandre Duret-Lutz
b0730852bf tests: use $PERL instead of perl
* tests/core/ltl2tgba2.test, tests/core/ltldo.test,
tests/core/ltlfilt.test, tests/core/neverclaimread.test,
tests/core/parseaut.test, tests/sanity/bin.test: Here.
2020-09-23 11:33:15 +02:00
Alexandre Duret-Lutz
3a6d967872 tests: replace non-portable use of sed by $PERL
This fixes one failure reported in #428 by Étienne Renault.

* tests/core/lbt.test: Here.
* tests/run.in: Export PERL.
2020-09-23 11:33:11 +02:00
philipp
133896d584 game: reimplement parity game solving
* spot/misc/game.cc, spot/misc/game.hh: More efficient implementation
of Zielonka's algorithm to solve parity games.  Now supports SCC
decomposition and efficient handling of certain special cases.
* doc/org/concepts.org: Document "strategy" and "state-winner"
properties.
* bin/ltlsynt.cc, tests/python/paritygame.ipynb: Adjust.
* tests/core/ltlsynt.test: Add more tests.
2020-09-22 23:15:30 +02:00
Alexandre Duret-Lutz
f6ac69d0d2 * spot/misc/common.hh: Require C++17 and simplify some macros. 2020-09-22 20:47:37 +02:00
Alexandre Duret-Lutz
ea3e396427 * AUTHORS: Add Philipp. 2020-09-19 18:41:52 +02:00
philipp
0d43bedacb game: reimplement print_aiger
* spot/twaalgos/aiger.cc, spot/twaalgos/aiger.hh: Reimplement
print_aiger for speed gain, also heuristics to minimize the number
of gates as well as different encoding types have been added.
* bin/ltlsynt.cc: Make the new options for print-aiger available.
* tests/core/ltlsynt.test: Adjust tests.
2020-09-19 18:41:52 +02:00
Alexandre Duret-Lutz
f5965966e9 translator: add tls-max-states option
This restricts the time spent in translating sub-formulas for
implication tests by limiting the associated automata to 64 states by
default.  Doing so this does worsen any test case, and actually remove
all calls the BuDDy's GC in bdd.test.

* spot/twaalgos/translate.cc, spot/twaalgos/translate.hh,
spot/tl/simplify.cc, spot/tl/simplify.hh, spot/tl/contain.hh,
spot/tl/contain.cc, spot/twaalgos/ltl2tgba_fm.cc,
spot/twaalgos/ltl2tgba_fm.hh: Add support for the option or
its constraint via an output_aborter.
* bin/spot-x.cc, NEWS: Document it.
* tests/core/bdd.test: Adjust and augment test case.
2020-09-18 09:41:29 +02:00
Alexandre Duret-Lutz
9d7e6386e4 python: reduce automata width to prevent overflows with Jupyter
* python/spot/__init__.py (setup): Reduce the default maximal width of
automata so that Jupyter output does not add an horizontal scroll bar
for a few pixels.
* tests/python/automata-io.ipynb: Adjust.
2020-09-17 11:21:06 +02:00
Alexandre Duret-Lutz
69c821154c postproc: add simul-max and wdba-det-max options
* NEWS, bin/spot-x.cc: Document them.
* spot/twaalgos/postproc.cc, spot/twaalgos/postproc.hh: Implement
them.
* tests/python/stutter-inv.ipynb: Adjust result.
* tests/core/minusx.test: Add test case.
2020-09-16 20:40:16 +02:00
Alexandre Duret-Lutz
a814334342 minimize_wdba: avoid memory leak
* spot/twaalgos/minimize.cc: Do not look the final/non_final hash
table when determinization is aborted.
2020-09-16 17:34:13 +02:00
Jerome Dubois
5fc026ed13 * AUTHORS: Add myself. 2020-09-16 10:23:54 +02:00
Jerome Dubois
229be9a5db python: add check for panda
* tests/python/ipnbdoctest.py: Skip test if panda is not installed.
2020-09-16 10:22:39 +02:00
Jerome Dubois
ae7d4504cd game: Add set_state_player() and get_state_player()
Fixes #424.

* python/spot/impl.i: Add implicit convertion for vector<bool>.
* spot/misc/game.cc, spot/misc/game.hh: Add set_state_player()
  and get_state_player().
* tests/python/parity.py: Test them.
2020-09-16 10:22:09 +02:00
Alexandre Duret-Lutz
0339e1fec8 * .gitlab-ci.yml: Fix images names. 2020-09-13 10:59:26 +02:00
Alexandre Duret-Lutz
64b82d25f3 i386 Debian builds need x86 builders
* .gitlab-ci.yml: split the amd64/i386 debian builds so we can tag the
latter with x86.
2020-09-12 08:10:07 +02:00
Alexandre Duret-Lutz
ef1c49dafd org: greatly reduce the size of satmin.svg
* doc/org/satmin.tex: Use a plain background color instead of some
hashed lines pattern.  This reduces the size of the resulting SVG
file from 1.9MB to 50kB after minification.
* doc/org/satmin.org: Adjust to mention autfilt.
2020-09-10 15:28:55 +02:00
Alexandre Duret-Lutz
5f253d1665 minify SVG images if possible
Fixes #422.

* HACKING: mention svgo
* doc/Makefile.am (dist-hook, stamp): Run svgo on produced SVGs.
2020-09-10 15:28:55 +02:00
Alexandre Duret-Lutz
760bde093b python: add some parity-game bindings
* python/spot/impl.i: Process game.hh.
* spot/misc/game.cc, spot/misc/game.hh: Make the output of
parity_game_solve() a solved_game object for easier manipulation in
Python.
* bin/ltlsynt.cc: Adjust usage.
* tests/python/paritygame.ipynb: New file.
* tests/Makefile.am, doc/org/tut.org: Add it.
* NEWS: Mention these bindings.
2020-09-09 15:32:44 +02:00
Alexandre Duret-Lutz
9e8a842975 game: make a propagate_players() function public
* bin/ltlsynt.cc (complete_env): Replace this function by...
* spot/misc/game.hh, spot/misc/game.cc (propagate_players): ... this
new one, hiding the "state-player" business from ltlsynt.  Also do not
create a sink states unless necessary.
* tests/core/ltlsynt.test: Adjust expected number of states.
2020-09-08 22:30:40 +02:00
Alexandre Duret-Lutz
41d088ea95 dot: add support for two-player games
* spot/twaalgos/dot.cc: Honor the "state-player" property and draw
player 1 states using diamonds.
* doc/org/hoa.org: Show an example.
* tests/core/gamehoa.test: Make sure diamond is output.
* NEWS: Mention this.
2020-09-08 20:20:48 +02:00
Alexandre Duret-Lutz
ea9384dd4b extend HOA I/O to preserve the state-player property
* spot/parseaut/parseaut.yy, spot/parseaut/scanaut.ll,
spot/twaalgos/hoa.cc: Add input and output support.
* doc/org/hoa.org: Document the HOA extension.
* bin/ltlsynt.cc: Add a --print-game-hoa option to
produce such format.
* tests/core/gamehoa.test: New file to test this.
* tests/Makefile.am: Add it.
* NEWS: Mention this new feature.
2020-09-08 20:20:48 +02:00
Alexandre Duret-Lutz
25c75c55b1 game: git rid of the parity_game class
This class was a simple wrapper on top of twa_graph_ptr, but it's
easier to simply use a twa_graph_ptr with a "state-player" property
instead, this way we will be able to modify the automata I/O routines
to support games directly.

* spot/misc/game.cc, spot/misc/game.hh: Rewrite the solver and
pg_printer interface.
* bin/ltlsynt.cc: Adjust.
* NEWS: Mention this change.
* doc/org/concepts.org: Mention the state-player property.
2020-09-08 20:20:48 +02:00
Alexandre Duret-Lutz
6379d9889f * doc/org/spot.css: Remove margin-bottom from pre.example. 2020-09-07 16:06:47 +02:00
Alexandre Duret-Lutz
2879c1d8e2 Merge branch 'master' into next 2020-09-07 10:56:53 +02:00
Alexandre Duret-Lutz
9a3c809f10 * NEWS, configure.ac: Bump version to 2.9.4.dev. 2020-09-07 10:56:01 +02:00
Alexandre Duret-Lutz
b956bfe90f Release Spot 2.9.4
* NEWS, configure.ac, doc/org/setup.org: Bump to version 2.9.4.
2020-09-07 10:52:51 +02:00
Alexandre Duret-Lutz
46b11baf05 * .gitlab-ci.yml: Update docker images, for buildenv#1. 2020-09-03 16:24:10 +02:00
Alexandre Duret-Lutz
b0f8170055 * .gitlab-ci.yml: Update docker images, for buildenv#1. 2020-09-03 14:45:07 +02:00
Florian Renkin
33a79a34d3 Fix typo
* NEWS, spot/graph/graph.hh: here.
2020-09-02 14:13:00 +02:00
Florian Renkin
149fbb73bf configure.ac: Correct warning message
configure.ac used unintialized variable when he printed message
for enable-max-accsets

* configure.ac: here.
2020-09-02 14:12:55 +02:00
Florian Renkin
af81266877 Fix typo
* NEWS, spot/graph/graph.hh: here.
2020-09-01 17:25:31 +02:00
Florian Renkin
d2e7cdb377 configure.ac: Correct warning message
configure.ac used unintialized variable when he printed message
for enable-max-accsets

* configure.ac: here.
2020-09-01 17:19:44 +02:00
Alexandre Duret-Lutz
6f76121b89 [buddy] get rid of many recursive algorithms
This patch addresses the BuDDy part of #396,
reported by Florian Renkin and Reed Oei.

* src/kernel.c, src/kernel.h: Declare a bddrecstack and
associated macros.  Resize it when new variable are declared.
* src/cache.h: Add a BddCache_index macro.
* src/bddop.c (not_rec, apply_rec, quant_rec, appquant_rec,
support_rec, ite_rec, compose_rec, restrict_rec, satone_rec,
satoneset_rec): Rewrite using this stack to get rid of the recursion.
2020-08-05 23:25:28 +02:00
Alexandre Duret-Lutz
d7b3d05e57 minato: use bdd_ite()
* spot/misc/minato.cc: Use bdd_ite() to exercise one of the function
rewritten in the next patch, and also because that is supposedly
faster.
2020-08-03 10:39:02 +02:00
Alexandre Duret-Lutz
af108d0556 * doc/org/ioltl.org: Document prefix operators. 2020-08-03 09:27:16 +02:00
Alexandre Duret-Lutz
fd437d62f8 help2man: allow line breaks in long lists of options
* tools/help2man: Add \: after | when listing optional arguments.
This should fix a lintian warning about unbreakable long line.
2020-08-03 09:27:11 +02:00
Alexandre Duret-Lutz
ceced82c5c * debian/rules (fix-js): Adjust to newer MathJax URL. 2020-08-03 09:27:08 +02:00
Alexandre Duret-Lutz
fde9a303c4 to_parity: minor fixes
* spot/twaalgos/toparity.cc: Do not call prpagate_marks_here twice if
the automaton was not degeneralized.
* spot/twaalgos/toparity.hh: Typo in comment.
2020-08-03 09:27:04 +02:00
Alexandre Duret-Lutz
9e6a99dcac * spot/misc/satsolver.hh: Typo in comment. 2020-08-03 09:26:33 +02:00
Alexandre Duret-Lutz
d308728b41 argp: fix handling of very long options in --help
* lib/argp-help.c (hol_entry_help): Handle cases with option
description is larger than RMARGIN.
2020-08-03 09:26:19 +02:00
Alexandre Duret-Lutz
c49506eea7 * debian/copyright: Replace MIT by Expat. 2020-08-03 09:25:56 +02:00
Alexandre Duret-Lutz
b013077af3 doc: improve css
* doc/org/spot.css: Display input and output closer and separate them
with dash.
2020-08-03 09:25:09 +02:00
Alexandre Duret-Lutz
1a7f471a02 * tests/python/ipnbdoctest.py: Ignore matplotlib font cache messages. 2020-08-03 09:25:03 +02:00
Alexandre Duret-Lutz
94eca2ca7d * spot/twaalgos/toparity.hh: Improve documentation. 2020-08-03 09:24:25 +02:00
Alexandre Duret-Lutz
50a33cbc8c org: fix shadow of hierarchy figure
* doc/org/hierarchy.tex: Draw the shadow manually, so that it is part
of the bounding box when we extract the SVG.
2020-08-03 09:24:16 +02:00
Alexandre Duret-Lutz
2c267cac40 simplify: fix handling of keep_top_xor
Under that option, !(a ^ b) was converted
to (!a <=> !b) instead of simply (a <=> b).

* spot/tl/simplify.cc (equiv_or_xor): Improve
rewriting.
* tests/core/ltl2tgba2.test, tests/python/simstate.py: Adjust test
cases.
2020-08-03 09:23:48 +02:00