Commit graph

5915 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
30b165d821 twagraph: fix merge_edges() ignoring the first edge
This fixes #441, reported by Jérôme Dubois.

* tests/python/mergedge.py: New file.
* tests/Makefile.am: Add it.
* spot/twa/twagraph.cc (merge_edges): Fix initialization of second
loop.
* NEWS: Mention the bug.
2021-01-18 09:12:38 +01:00
Alexandre Duret-Lutz
013eef7499 * .gitlab-ci.yml (alpine-gcc): Do not run both check and distcheck. 2021-01-17 21:45:51 +01:00
Alexandre Duret-Lutz
7a9f0a3fd9 gfguarantee: fix automaton modification during iteration
Fixes #449.

* spot/twaalgos/gfguarantee.cc (do_g_f_terminal_inplace): Save
edge additions to perform them after the loop.  Otherwise,
reallocating the edge buffer might break the iteration.
2021-01-17 21:45:51 +01:00
Alexandre Duret-Lutz
44c074bbad python: fix incorrect assertions on temporary objects
* tests/python/stutter.py: Do not call acc() on a temporary
object, and fix the last two asserts.
2021-01-17 20:48:56 +01:00
Alexandre Duret-Lutz
8e8f77756d gen, bitset: use clz() to simplify
Fixes #448.

* spot/gen/automata.cc (ulog2): Here.
* spot/misc/bitset.hh: And there.
2021-01-17 18:03:09 +01:00
Alexandre Duret-Lutz
d1cc45f223 clz: inline the implementation
__builtin_clz() can be implemented with two x86 instructions, so we
don't want to hide it behind a function call.

* spot/misc/clz.cc: Delete the implementation.
* spot/misc/Makefile.am: Delete clz.cc.
* spot/misc/clz.hh: Make the implementation public.
2021-01-17 18:02:53 +01:00
Alexandre Duret-Lutz
a8ee291abe * tests/python/ipnbdoctest.py: Work around failures on Fedora. 2021-01-16 16:33:30 +01:00
Alexandre Duret-Lutz
99bc0f998f * .gitlab-ci.yml (before_script): Debug parallelization settings. 2021-01-16 16:33:30 +01:00
Alexandre Duret-Lutz
094a6fa57e patch gnulib to accomodate autoconf 2.70
Upgrading gnulib turned to be too difficult, so this only includes
updates to m4 files necessary to please Autoconf 2.70.

For issue #447.

* m4/extensions.m4, m4/malloc.m4, m4/std-gnu11.m4: Cherry-pick
from today's gnulib version.
2021-01-14 15:29:48 +01:00
Alexandre Duret-Lutz
06b5a82950 [buddy] update obsolete autoconf constructs
Part of #447.

* configure.ac, m4/bdebug.m4: Replace AC_ERROR and AC_HELP_STRING by
by AC_MSG_ERROR and AS_HELP_STRING.
2021-01-14 15:15:39 +01:00
Alexandre Duret-Lutz
e076645382 update obsolete autoconf constructs
Part of #447.

* configure.ac, m4/debug.m4, m4/devel.m4, m4/gccoptim.m4,
m4/ndebug.m4: Replace AC_ERROR and AC_HELP_STRING by
by AC_MSG_ERROR and AS_HELP_STRING.
2021-01-14 15:15:39 +01:00
Alexandre Duret-Lutz
e497ee26dd require Autoconf 2.69 for building from git
Part of issue #447.

Autoconf 2.69 was released in 2012, so it now widely available.  The
recent release of 2.70 is obsoleting some constructs, so it will be
easier on us if we do not have too many versions to support.

* HACKING, configure.ac: Require Autoconf 2.69.
2021-01-12 09:28:36 +01:00
Alexandre Duret-Lutz
da869b7ddf * debian/copyright: Add missing licenses for m4/ files. 2021-01-11 20:46:36 +01:00
Alexandre Duret-Lutz
92ce384c80 fix compilation of core/bricks with clang++10
* configure.ac: Call CHECK_ATOMIC after setting the C++ options.
This is probably not necessary, but it makes more sense.
* m4/l_atomic.m4: Augment the test body with a scenario
that actually requires -latomic.
2021-01-11 20:46:36 +01:00
Alexandre Duret-Lutz
170a4ac164 * doc/org/oaut.org: Fix two broken displays of results. 2021-01-07 10:05:00 +01:00
Alexandre Duret-Lutz
449c1a582a bump copyright year
* bin/common_setup.cc, debian/copyright: Here.
2021-01-05 12:54:48 +01:00
Alexandre Duret-Lutz
1d8b00cf4c * lib/.gitignore: More files to ignore. 2021-01-05 12:54:47 +01:00
Alexandre Duret-Lutz
4a626c34e7 * doc/org/install.org: apt-key is deprecated in Bullseye. 2021-01-05 12:54:28 +01:00
Alexandre Duret-Lutz
8785f5a74b bin: add support for -b/--buchi
* bin/common_post.cc, bin/randaut.cc: Implement -b/--buchi.
Also add --sba as alias for -B, and --gba as alias for --tgba.
* NEWS: Document those changes.
* doc/org/ltl2tgba.org, doc/org/oaut.org: Adjust documentation.
* tests/core/ltl2tgba2.test, tests/core/ltlcross2.test,
tests/core/randaut.test: Add more tests.
* tests/core/sbacc.test: --sbacc cannot be abbreviated as --sba
anymore.
2020-12-18 12:24:08 +01:00
Florian Renkin
7c6b35313a translate: Correct the choice of the automaton with the fewest colors
* spot/twaalgos/translate.cc: here
2020-12-16 12:51:40 +01:00
Alexandre Duret-Lutz
7e2f091839 determinize: do not copy the "incomplete" property
Mentioned in issue #298.

* spot/twaalgos/determinize.cc: Do not copy prop_complete of
the input if it is false.
* tests/python/298.py: Test it.
* NEWS: Mention the bug.
2020-12-15 10:47:25 +01:00
Alexandre Duret-Lutz
f6be083050 determinize: don't emit colors for temporary braces
Related to issue #298.

* spot/twaalgos/determinize.cc: Recognize braces that are temporary
to avoid emitting colors when they become empty.
* tests/python/298.py: New file, showing a reduction of colors.
* tests/Makefile.am: Add it.
* tests/core/ltlsynt.test: Adjust expected output (now smaller).
* tests/core/genltl.test: Adjust one expected output (now larger).
* NEWS: Mention the issue.
2020-12-15 07:58:42 +01:00
Alexandre Duret-Lutz
142460628c translate: add support for -x exprop
This helped confirming a behavior observed in #298.

* spot/twaalgos/translate.cc, spot/twaalgos/translate.hh: Add support
for -x exprop.
* bin/spot-x.cc, NEWS: Document it.
* tests/core/ltl2tgba2.test: Test it.
2020-12-14 17:46:03 +01:00
Alexandre Duret-Lutz
71f1928052 propagate: fix constness of scc_info argument
* spot/twaalgos/degen.cc,
spot/twaalgos/degen.hh (propagate_marks_vector, propagate_marks_here):
Take the scc_info* argument as const.
2020-12-14 13:11:59 +01:00
Alexandre Duret-Lutz
9a17f5676c game: rewrite, document, and rename solve_reachability_game
* spot/twaalgos/game.hh, spot/twaalgos/game.cc: Rename
solve_reachability_game() as solve_safety_game(), rewrite it (the old
implementation incorrectly marked dead states as winning for their
owner).
* tests/python/paritygame.ipynb: Rename as...
* tests/python/games.ipynb: ... this, and illustrate
solve_safety_game().
* tests/Makefile.am, NEWS, doc/org/tut.org: Adjust.
* tests/python/except.py: Add more tests.
2020-12-10 15:04:07 +01:00
Alexandre Duret-Lutz
05449a42d3 move game.cc from misc/ to twaalgos/
* spot/misc/game.cc, spot/misc/game.hh: Move...
* spot/twaalgos/game.cc, spot/twaalgos/game.hh: ... here.
* bin/ltlsynt.cc, python/spot/impl.i, spot/misc/Makefile.am,
spot/twaalgos/Makefile.am: Adjust.
2020-12-09 16:47:18 +01:00
Jerome Dubois
459088b887 game: add solve_reachability_game
* spot/misc/game.cc, spot/misc/game.hh: Add solve_reachability_game.
2020-12-09 16:32:29 +01:00
Alexandre Duret-Lutz
2d6c7ac045 minimize_wdba: improve handling of terminal automata
Part of #444.

* spot/twaalgos/minimize.cc (minimize_wdba): Terminal automata do not
need a product to decide which states are accepting in the DBA.  This
is faster, and also determinize more formulas of #443.
* tests/core/ltl2tgba2.test: Adjust the expected iteration where
determinization will be aborted.
2020-12-08 22:36:51 +01:00
Alexandre Duret-Lutz
48edfd80c2 powerset: deal with accepting sinks more effectively
Part of #444.

* spot/twaalgos/powerset.cc, spot/twaalgos/powerset.hh: Implement
accepting sink handling.
* spot/twaalgos/minimize.cc (minimize_wdba): Pass sinks to
tgba_powerset.
* spot/misc/bitvect.hh: Add an interesects method.
* tests/core/ltl2tgba2.test: More tests.
* NEWS: Mention this new feature.
2020-12-08 17:55:50 +01:00
Alexandre Duret-Lutz
eeaed5592f fix ignored aborter in WDBA-minimization
Fixes #443, reported by Roei Nahum.  (However the fix
only works for the development version, where wdba-det-max
was introduced to work around that kind of problem.)

* spot/twaalgos/minimize.cc: Avoid aborter being implicitly
converted to Boolean.
* tests/core/ltl2tgba2.test: Add test case.
* THANKS: Add Roei Nahum.
2020-12-08 12:03:30 +01:00
Alexandre Duret-Lutz
9da0b3a1c4 * NEWS: Typo. 2020-12-08 10:42:45 +01:00
Alexandre Duret-Lutz
8ac9684a69 debian: do not install README in both spot and spot-doc
* debian/spot-doc.docs: Delete this file.
* Makefile.am: Adjust.
2020-11-27 09:33:29 +01:00
Alexandre Duret-Lutz
83e8886d60 * .gitlab-ci.yml: Remove reference to registry.lrde.epita.fr. 2020-11-26 16:13:24 +01:00
Alexandre Duret-Lutz
c8a32f62c7 debian: use -flto=jobserver.
* debian/rules: Adjust to use the jobserver, don't pass 'u' to ar,
and fix typo introduced by fe694e2ba.
2020-11-26 16:13:04 +01:00
Alexandre Duret-Lutz
8d2155d632 debian: upgrade dh-compat and standards versions
* debian/compat, debian/control: Upgrade dh compat from 9 to 12.
* debian/rules: Upgrade standards from 3.9.6 to to 4.5.1.
2020-11-25 13:25:13 +01:00
Jerome Dubois
b2d88d7153 * spot/twa/twagraph: Fix undefined behavior. 2020-11-24 16:39:55 +01:00
Alexandre Duret-Lutz
97eedd7c5c simulation: remove unnecessary iteration
This fixes #442.

* spot/twaalgos/simulation.cc (iterated_simulations_): Initialize next
so that we can exit after the first iteration if no change was made.
* NEWS: Mention the bug.
2020-11-24 16:38:00 +01:00
Alexandre Duret-Lutz
fb224d3f63 twagraph: fix merge_edges() ignoring the first edge
This fixes #441, reported by Jérôme Dubois.

* tests/python/mergedge.py: New file.
* tests/Makefile.am: Add it.
* spot/twa/twagraph.cc (merge_edges): Fix initialization of second
loop.
* NEWS: Mention the bug.
2020-11-24 16:08:21 +01:00
71060db9dd timer: use monotonic clock and accumulate walltime
Fixes #439

* spot/misc/timer.hh: here
2020-11-23 10:01:41 +01:00
Alexandre Duret-Lutz
d7871e549e Merge branch 'master' into next 2020-11-19 10:47:02 +01:00
Alexandre Duret-Lutz
c5c8e8c516 * NEWS, configure.ac: Bump version. 2020-11-19 10:42:46 +01:00
Alexandre Duret-Lutz
a5385bb886 Release Spot 2.9.5
* configure.ac, NEWS, doc/org/setup.org: Update version.
2020-11-19 10:41:35 +01:00
Alexandre Duret-Lutz
aecdab7ba7 * NEWS: Update for recent fixes. 2020-11-08 14:20:17 +01:00
Alexandre Duret-Lutz
bcd88df0fe python: rename aux.py to aux_.py
Fixes #437, reporeted by Yann Thierry-Mieg.

* python/spot/aux.py: Rename as...
* python/spot/aux_.py: ... this.
* python/spot/__init__.py, python/Makefile.am: Adjust.
* NEWS: Mention the change.
2020-11-08 14:11:37 +01:00
Alexandre Duret-Lutz
ffc0138ed6 python: rename aux.py to aux_.py
Fixes #437, reporeted by Yann Thierry-Mieg.

* python/spot/aux.py: Rename as...
* python/spot/aux_.py: ... this.
* python/spot/__init__.py, python/Makefile.am: Adjust.
* NEWS: Mention the change.
2020-11-08 14:08:13 +01:00
Alexandre Duret-Lutz
5ea20db6b4 ltlsmin: fix incorrect check for dlsym error
Fix #435 reported by Yann Thierry-Mieg.

* spot/ltsmin/ltsmin.cc (sym): Fix incorrect check introduced
by dc4a477172.
2020-11-08 13:45:01 +01:00
Alexandre Duret-Lutz
7697adf645 org: work around ESS issue 1052
This was causing all our build to fail.

* doc/org/init.el.in: Here.
2020-11-08 13:42:09 +01:00
Alexandre Duret-Lutz
53a68f99f4 org: various improvements
* doc/org/spot.css: Improve style and responsiveness.
* doc/org/oaut.org, doc/org/ioltl.org: Fix some ugly outputs.
2020-11-08 13:41:57 +01:00
Alexandre Duret-Lutz
4ca2f394e4 org: fix local export
* doc/org/.dir-locals.el.in: Remove incorrect quote.
2020-11-08 13:41:41 +01:00
Alexandre Duret-Lutz
ef41b6af56 tests: do not override DYLD_LIBRARY_PATH
* tests/run.in: Here.
2020-11-08 13:41:32 +01:00