Commit graph

6651 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
925ac6bbe4 * .gitlab-ci.yml: Use gcovr and produce an XML report for gitlab. 2022-09-01 10:40:40 +02:00
Alexandre Duret-Lutz
cd21521bfe * spot/twa/twagraph.cc (merge_states): Some cleanup and simplifications. 2022-08-14 23:09:56 +02:00
Alexandre Duret-Lutz
d1b8495510 do not use a global variable to define the number of available threads
* python/spot/impl.i: Make parallel_policy implicitly contractible.
* spot/graph/graph.hh (sort_edges_srcfirst_): Pass a parallel_policy
explicitly.
* spot/twa/twagraph.hh, spot/twa/twagraph.cc (merge_states): Likewise.
* spot/misc/common.cc: Remove file.
* spot/misc/common.hh (set_nthreads, get_nthreads): Remove, and
replace with...
(parallel_policy): ... this.
* spot/misc/Makefile.am, tests/python/mergedge.py, NEWS: Adjust.
2022-08-14 23:09:56 +02:00
Alexandre Duret-Lutz
2848951965 * doc/spot.bib: Add entries for last two tool papers. 2022-08-10 10:28:44 +02:00
Alexandre Duret-Lutz
a7e87a1fc7 Mention the CAV'22 paper
* doc/org/citing.org: Here.
* doc/org/spot.css: Add support for "begin_note...end_note".
2022-08-10 10:28:41 +02:00
Alexandre Duret-Lutz
faa8fe8873 mealy: cleanup the doxygen documentation
* spot/twaalgos/mealy_machine.hh: Create a new "Mealy" section for
all these function, and fix some doc strings.
2022-08-06 15:08:11 +02:00
Alexandre Duret-Lutz
de9041bb31 mealy: make output_assignment the default for reduce_mealy
* spot/twaalgos/mealy_machine.hh: Here. Also cite the FORTE paper.
* doc/spot.bib (renkin.22.forte): New entry.
2022-08-06 14:08:23 +02:00
Alexandre Duret-Lutz
b0165cf39c * doc/org/tut10.org: Use the same formula in C++ as in Python and sh. 2022-08-05 18:55:44 +02:00
Alexandre Duret-Lutz
8b93b6967d rename pg_print() as print_pg() and add it to to_str()
* NEWS: Mention those change.
* spot/twaalgos/game.hh (print_pg): New function.
(pg_print): Mark as deprecated.
* spot/twaalgos/game.cc (pg_print): Redirect to print_pg().
(print_pg): Update to output state names.
* python/spot/__init__.py: Teach to_str() about print_pg().
* bin/ltlsynt.cc: Adjust to call print_pg().
* tests/python/games.ipynb: Add an example.
* tests/core/ltlsynt.test: Adjust to remove the "INIT" note.
2022-07-23 21:38:23 +02:00
Alexandre Duret-Lutz
b3e994c249 * spot/twaalgos/hoa.cc: Typo in error message. 2022-07-22 10:54:15 +02:00
Alexandre Duret-Lutz
444e2b5b89 parseaut: Add support for PGSolver's format
* spot/parseaut/parseaut.yy, spot/parseaut/scanaut.ll: Add rules for
PGSolver's format.
* spot/parseaut/public.hh: PGAME is a new type of output.
* tests/core/pgsolver.test: New file.
* tests/Makefile.am: Add it.
* tests/python/games.ipynb: More exemples.
* NEWS: Mention the new feature.
2022-07-22 10:54:08 +02:00
Alexandre Duret-Lutz
d6b3c757d0 test: ignore OpenBSD's "Terminated" messages
For #501.

* tests/core/autcross4.test: Here.
2022-07-12 15:43:39 +02:00
Alexandre Duret-Lutz
3e2201bd80 tests: add figures from CAV'22 paper
* tests/python/cav22-figs.ipynb: New file.
* doc/org/tut.org, tests/Makefile.am: Add it.
2022-07-12 15:05:09 +02:00
12920c44e3 Trigger archival services on new release
* .gitlab-ci.yml: curl Software Heritage and Internet Archive endpoints
to trigger archival on push to stable
2022-07-07 23:23:41 +02:00
Florian Renkin
6dd99e049b to_parity: Rewrite the function and add new transformations
* spot/twaalgos/synthesis.cc: Now needs to call reduce_parity.
* spot/twaalgos/toparity.cc, spot/twaalgos/toparity.hh: here.
* spot/twaalgos/zlktree.hh: make zielonka_node public
* tests/core/ltlsynt.test, tests/python/games.ipynb,
  tests/python/synthesis.ipynb, tests/python/toparity.py:
  update tests
2022-07-07 20:43:21 +02:00
Florian Renkin
3f333792ff Add a procedure that detects if an automaton is parity-type
* spot/twaalgos/genem.cc, spot/twaalgos/genem.hh: add detection
  of edges that are in at least one accepting cycle.
* spot/twaalgos/toparity.cc,
  spot/twaalgos/toparity.hh: add parity_type_to_parity and
  buchi_type_to_buchi.
2022-07-07 20:43:21 +02:00
Alexandre Duret-Lutz
5b8350bc9b rpm: omit *.la files
* spot.spec.in: It seems RedHat does not distribute *.la files anymore.
2022-07-07 15:51:11 +02:00
Alexandre Duret-Lutz
1cfb4a14ec bloemen: simplify style
Fixes #510.

* spot/mc/bloemen_ec.hh: Here.
2022-07-06 17:11:55 +02:00
Alexandre Duret-Lutz
69eba6fd9a bloemen: fix a unused variable warning
As discussed in #510.

* spot/mc/bloemen_ec.hh: Here.
2022-07-06 16:34:01 +02:00
Alexandre Duret-Lutz
ee55dabfaa * spot/mc/cndfs.hh: Fix a unused variable warning in NDEBUG. 2022-07-05 23:56:36 +02:00
Alexandre Duret-Lutz
a66c305609 gen: work around a warning on red hat
When n is an int, doing "new formula[n];" gives us "warning: argument 1
value '18446744073709551615' exceeds maximum object size
9223372036854775807" on Red Hat.

* spot/gen/formulas.cc (pps_arbiter): Pass n as unsigned.  Also
fix some determinism in the strict variant.
2022-07-05 11:10:43 +02:00
Alexandre Duret-Lutz
ff89601306 utf8: Update to match current version
* utf8/LICENSE, utf8/utf8/cpp11.h, utf8/utf8/cpp17.h: New files.
* Makefile.am: Distribute them.
* utf8/README.md, utf8/utf8/checked.h, utf8/utf8/core.h,
utf8/utf8/unchecked.h: Update to the current version of utfcpp.
* README: Add a link to the upstream github.
2022-07-05 10:56:57 +02:00
Alexandre Duret-Lutz
efee1c4130 * spot/twaalgos/mealy_machine.cc (is_complete_): Define in debug only. 2022-07-05 10:41:24 +02:00
Alexandre Duret-Lutz
833fcdebc1 work around GCC bug 106159
* m4/gccwarn.m4: Add an example of multiple inheritance of virtual
classes to trigger to new -Woverloaded-virtual warning on the
destructor.
2022-07-05 10:38:51 +02:00
Alexandre Duret-Lutz
1fc94ee6f2 gnulib: install the environ module
This should fix compilation on OSX, as reported by Yann Thierry-Mieg.

* m4/environ.m4: New file.
* m4/gnulib-cache.m4, m4/gnulib-comp.m4: Update.
* bin/common_trans.cc [HAVE_SPAWN_H]: Do not define environ.
2022-06-30 09:50:13 +02:00
Alexandre Duret-Lutz
db725ffaf8 * spot/twaalgos/degen.cc (propagate_marks_here): Cleanup previous patch. 2022-06-30 09:18:03 +02:00
Philipp Schlehuber-Caissier
99bf152673 propagate_marks_here can break state-acc prop
* spot/twaalgos/degen.cc: Fix
* tests/python/pdegen.py: Test
2022-06-29 14:02:36 +02:00
Philipp Schlehuber-Caissier
ddbdcd39cb Adept ltlsynt pgame to new solver
* bin/ltlsynt.cc: Remove change/colorize_parity, check alternating
2022-06-29 13:19:57 +02:00
Philipp Schlehuber-Caissier
6bc1dd0467 Use new zielonka for synthesis
Remove all now unnecessary colorize_parity and
change_parity calls.

* spot/twaalgos/synthesis.cc: Change here
* spot/twaalgos/game.cc: Adjust pg-print
* tests/core/ltlsynt.test,
  tests/python/_mealy.ipynb,
  tests/python/games.ipynb,
  tests/python/synthesis.ipynb,
  tests/python/synthesis.py: Adjust tests
2022-06-27 09:29:46 +02:00
philipp
9124484719 Modifying Zielonka
* spot/twaalgos/game.cc: solve_parity_game now works for any of
the four parity types and partially colored graphs.
 Also removing unnescessary steps from Zielonka.
h: Update
* tests/python/game.py: Update and additional tests
* tests/python/except.py: Remove outdated exception
2022-06-27 09:29:36 +02:00
Alexandre Duret-Lutz
9222e9713b parseaut: fix handling of [ outside HOA
Fixes #509.

* spot/parseaut/scanaut.ll: Reset ->str whenever a [ is read,
so that we do not attempt to clear ->str while reading garbage.
* NEWS: Mention the bug.
* tests/core/parseaut.test: Test it.
2022-06-23 17:19:09 +02:00
Alexandre Duret-Lutz
b4279d3a12 dot: quote identifiers containing a minus
* spot/twaalgos/dot.cc: Quote identifiers containing a minus.
* tests/core/alternating.test: Add test case.
* NEWS: Mention the bug.
2022-06-23 16:19:50 +02:00
Alexandre Duret-Lutz
166a26417c graph: fix creation of universal edge
* spot/graph/graph.hh: Use a temporary array to store the destination
vector if the passed range belong to the dests_ vector.  Otherwise the
passed begin/end risk being invalidated when dests_ is reallocated.
* NEWS: Mention the bug.
2022-06-23 15:52:24 +02:00
Alexandre Duret-Lutz
288b1c7958 contains: generalize second argument to a twa
This was triggered by a question from Pierre Ganty on the mailing
list.

* spot/twaalgos/contains.hh, spot/twaalgos/contains.cc (contains):
Generalize second argument to const_twa_ptr instead of
const_twa_graph_ptr.
* NEWS: Mention this.
* tests/python/ltsmin-pml.ipynb: Show that it work.
* THANKS: Mention Pierre.
2022-06-22 23:43:07 +02:00
Alexandre Duret-Lutz
be28365db4 ltlsynt: add --from-pgame option to read parity games
* bin/common_file.cc, bin/common_file.hh (output_file): Add a
force_append option.
* bin/ltlsynt.cc: Implement the --from-pgame option, and
fix suppot for --csv when multiple inputs are processed.
* NEWS: Mention the new option.
* tests/core/syfco.test: Add a test case.
* tests/core/ltlsynt-pgame.test: New file.
* tests/Makefile.am: Add it.
2022-06-22 23:20:20 +02:00
Alexandre Duret-Lutz
04d718ab9c ltlsynt: support multiple --tlsf options
* bin/common_finput.cc, bin/common_finput.hh: Add support for
process_tlsf_file.
* bin/ltlsynt.cc: Implement it.
* tests/core/syfco.test: Adjust test case.
2022-06-22 19:37:41 +02:00
Alexandre Duret-Lutz
df685433f4 bin: separate process_file() for aut and ltl
* bin/common_finput.cc, bin/common_finput.hh,
bin/common_hoaread.hh (process_file): Split into...
(process_ltl_file, process_aut_filt): ... these, as we will need both
in ltlsynt.
2022-06-22 19:37:41 +02:00
Alexandre Duret-Lutz
8161a8c531 tests: workaround test not failing if the Spot support more colors
* configure.ac (MAX_ACCSETS): Add AC_SUBST.
* tests/run.in: Define MAX_ACCSETS.
* tests/core/prodchain.test: Test MAX_ACCSETS.
2022-06-21 14:24:08 +02:00
Alexandre Duret-Lutz
23908f3d2f Add a --enable-pthread option to activate experimental threading code
* NEWS, README, doc/org/compile.org: Mention the option and
its effect on compilation requirements.
* configure.ac: Add the --enable-pthread option, and ENABLE_PTHREAD
macro.
* doc/org/g++wrap.in, spot/Makefile.am, spot/libspot.pc.in: Compile
with -pthread conditionally.
* spot/graph/graph.hh, spot/twa/twagraph.cc: Adjust the code to not
use thread-local variables, and let the pthread code be optional.
* .gitlab-ci.yml: Activate --enable-pthread in two configurations.
2022-06-21 09:56:13 +02:00
Alexandre Duret-Lutz
721d5695ec add a newer version of the generic emptiness check
As discussed with Jan Strejček.

* spot/twa/acc.cc, spot/twa/acc.hh (fin_unit_one_split): New function.
(fin_one_extract): Return the simplified acceptance condition as an
optimization.
* python/spot/impl.i: Bind this new function.
* tests/python/acc.py: New file, to test it.
* tests/Makefile.am: Add acc.py.
* spot/twaalgos/genem.cc, spot/twaalgos/genem.hh: Implement the
spot211 variant of the emptiness check.
* tests/python/genem.py: Test it.
* tests/python/acc_cond.ipynb: Adjust test for fin_one_extract.
2022-06-17 09:54:42 +02:00
Florian Renkin
aca6bd9042 synthesis: Deletion of an incorrect case in the bypass
With a formula like G(b1) & (GFi <-> GF(b1)), a direct strategy was
created while it is unrealizable.

* spot/twaalgos/synthesis.cc: here.
* tests/core/ltlsynt.test: add tests
2022-05-31 13:56:20 +02:00
Philipp Schlehuber-Caissier
d8cc0c5acb Introduce a faster merge_states
merge_states is now hash-based, uses the new edge-sorting with
src first and can be executed in parallel.

* spot/twa/twagraph.cc: Here
* tests/python/mergedge.py: Test
2022-05-24 16:58:07 +02:00
Philipp Schlehuber-Caissier
71c2a7b1a6 Add a new function to sort edges
sort_edge_srcfirst_ will sort the edge with respect
to the src state, then sort each sub list with respect
to the given predicate, possibly in parallel.

* spot/graph/graph.hh: Here
2022-05-24 16:58:07 +02:00
Philipp Schlehuber-Caissier
e064726b64 Introducing a global variable to define the number of threads
* NEWS: Announce
* spot/Makefile.am: Add pthread to use threads
* spot/misc/common.cc,
  spot/misc/common.hh: Add variable + getter/setter
* spot/misc/Makefile.am: Add common.cc
2022-05-24 16:58:07 +02:00
Alexandre Duret-Lutz
b11208440b zlktree: use a cache in the construction of zielonka_tree
This largely speeds up the computation for conditions
like "Rabin n" sharing a lot of subtrees.

Also implement options to stop the construction if the shape is wrong.

* spot/twaalgos/zlktree.cc, spot/twaalgos/zlktree.hh: Implement the
cache and the options.
* tests/python/zlktree.ipynb, tests/python/zlktree.py: New tests.
2022-05-20 17:07:26 +02:00
Alexandre Duret-Lutz
f784e40548 complete: do not force Büchi on universal automata
* spot/twaalgos/complete.hh: Adjust documentation.
* spot/twaalgos/complete.cc: If the acceptance condition is a
tautology, delay the forcing of Büchi acceptance until we are sure it
is needed.
* NEWS: Mention the change.
2022-05-20 14:51:48 +02:00
Alexandre Duret-Lutz
3b8e11322b Merge branch 'master' into next 2022-05-18 09:03:40 +02:00
Alexandre Duret-Lutz
457839df36 * NEWS, configure.ac: Bump version to 2.10.6. 2022-05-18 08:52:33 +02:00
Alexandre Duret-Lutz
e0de77d8a4 Release Spot 2.10.6
* NEWS, configure.ac, doc/org/setup.org: Set version to 2.10.6.
2022-05-18 08:52:33 +02:00
Alexandre Duret-Lutz
a6639e56cb more noexcept to pleace GCC
* spot/bricks/brick-hashset (Row): Add noexcept.
* bin/autcross.cc (out_statistics): Likewise.
* bin/ltlcross.cc (statistics): Likewise.
2022-05-18 08:52:33 +02:00