1. 09 Sep, 2020 1 commit
    • Alexandre Duret-Lutz's avatar
      python: add some parity-game bindings · 760bde09
      Alexandre Duret-Lutz authored
      * 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.
      760bde09
  2. 08 Sep, 2020 2 commits
    • Alexandre Duret-Lutz's avatar
      game: make a propagate_players() function public · 9e8a8429
      Alexandre Duret-Lutz authored
      * 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.
      9e8a8429
    • Alexandre Duret-Lutz's avatar
      game: git rid of the parity_game class · 25c75c55
      Alexandre Duret-Lutz authored
      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.
      25c75c55
  3. 03 Aug, 2020 2 commits
  4. 28 Jul, 2020 1 commit
  5. 16 Jul, 2020 1 commit
    • Alexandre Duret-Lutz's avatar
      build in C++17 mode by default · 4f230976
      Alexandre Duret-Lutz authored
      * configure.ac: Activate C++17, and replace --enable-c++17 by
      --enable-c++20.
      * NEWS: Mention the news.
      * .gitlab-ci.yml: Use C++20 for the former C++17 builds.
      * HACKING, README, doc/org/compile.org, doc/org/concepts.org,
      doc/org/index.org, doc/org/install.org, doc/org/tut.org,
      doc/org/upgrade2.org, spot/misc/escape.hh: Adjust mentions
      of C++14.
      4f230976
  6. 13 Jul, 2020 1 commit
    • Alexandre Duret-Lutz's avatar
      fixpool: allocate a new chunk on creation · ce695e67
      Alexandre Duret-Lutz authored
      Allocate the first chunk when the fixpool is created.  This avoid a
      undefined behavior reported in issue #413 without requiring an extra
      comparison in allocate().
      
      * spot/misc/fixpool.hh, spot/misc/fixpool.cc (new_chunk_): New method
      extracted from allocate().  Use it in the constructor as well.
      * NEWS: Mention the bug.
      ce695e67
  7. 03 Jun, 2020 5 commits
    • Etienne Renault's avatar
      misc: add clz wrapper for builtin · 69457e95
      Etienne Renault authored
      * spot/bricks/brick-bitlevel, spot/misc/Makefile.am,
      spot/misc/bitset.hh, spot/misc/clz.cc,
      spot/misc/clz.hh, spot/misc/fixpool.hh: here.
      69457e95
    • Etienne Renault's avatar
      fixpool: remove useless clz encapsulation · b115d2f9
      Etienne Renault authored
      * spot/misc/fixpool.hh: Here.
      b115d2f9
    • Etienne Renault's avatar
      fixpool: propose alternative policy · 23edf52d
      Etienne Renault authored
      In 3fe74f1c, fixed_size_pool was changed in order to
      help memcheck to detect "potential" memory leaks. In a
      multithreaded context, this could raise false alarm. To
      solve this, we proprose 2 policies for the pool, one with
      the check and one without.
      
      * spot/misc/fixpool.cc: deleted ...
      * spot/ltsmin/ltsmin.cc, spot/ltsmin/spins_kripke.hh,
      spot/mc/deadlock.hh, spot/misc/Makefile.am,
      spot/misc/fixpool.cc, spot/misc/fixpool.hh,
      spot/priv/allocator.hh, spot/ta/tgtaproduct.cc,
      spot/ta/tgtaproduct.hh, spot/twa/twaproduct.cc,
      spot/twa/twaproduct.hh, tests/core/mempool.cc: Here.
      23edf52d
    • Etienne Renault's avatar
      swarming: add support everywhere · 72948661
      Etienne Renault authored
      Swarming implies that a single instance of the kripke
      structure (or product) will be explored by diffrent threads
      with their own exploration order. Most of the modification
      aims to have a thread safe kripke structure.
      
      * spot/kripke/kripke.hh, spot/ltsmin/ltsmin.cc,
      spot/ltsmin/ltsmin.hh, spot/mc/ec.hh,
      spot/mc/intersect.hh, spot/mc/reachability.hh,
      spot/misc/hash.hh, spot/twacube/twacube.hh,
      tests/core/twacube.test, tests/ltsmin/modelcheck.cc: here.
      72948661
    • Etienne Renault's avatar
      timer: support for walltime · 9a9a2372
      Etienne Renault authored
      * spot/misc/timer.hh: here.
      9a9a2372
  8. 22 May, 2020 1 commit
    • Alexandre Duret-Lutz's avatar
      fixpool: allocate a new chunk on creation · 645935f7
      Alexandre Duret-Lutz authored
      Allocate the first chunk when the fixpool is created.  This avoid a
      undefined behavior reported in issue #413 without requiring an extra
      comparison in allocate().
      
      * spot/misc/fixpool.hh, spot/misc/fixpool.cc (new_chunk_): New method
      extracted from allocate().  Use it in the constructor as well.
      * NEWS: Mention the bug.
      645935f7
  9. 31 Dec, 2019 1 commit
    • Alexandre Duret-Lutz's avatar
      tmpfile: improve error message · 67b9bfda
      Alexandre Duret-Lutz authored
      * spot/misc/tmpfile.cc: Display strerror(errno) plus some suggestions
      that depend on the error.  Based on a report from Shengping Shaw.
      * THANKS: Add reporter.
      * tests/core/ltlcross5.test: New file.
      * tests/Makefile.am: Add it.
      67b9bfda
  10. 15 Dec, 2019 1 commit
    • Alexandre Duret-Lutz's avatar
      tmpfile: improve error message · d2ba5545
      Alexandre Duret-Lutz authored
      * spot/misc/tmpfile.cc: Display strerror(errno) plus some suggestions
      that depend on the error.  Based on a report from Shengping Shaw.
      * THANKS: Add reporter.
      * tests/core/ltlcross5.test: New file.
      * tests/Makefile.am: Add it.
      d2ba5545
  11. 26 Sep, 2019 2 commits
    • Alexandre Duret-Lutz's avatar
      fix ARM builds · 74ceea89
      Alexandre Duret-Lutz authored
      * spot/misc/bitvect.hh (bitvect_array::at): Fix pointer cast.
      * spot/twa/bddprint.cc: Adjust to use signed char* explicitly.
      * spot/twaalgos/gtec/gtec.hh: Work around GCC bug #90309.
      * .gitlab-ci.yml: Add raspbian build.
      74ceea89
    • Alexandre Duret-Lutz's avatar
      fix ARM builds · 0da5f44c
      Alexandre Duret-Lutz authored
      * spot/misc/bitvect.hh (bitvect_array::at): Fix pointer cast.
      * spot/twa/bddprint.cc: Adjust to use signed char* explicitly.
      * spot/twaalgos/gtec/gtec.hh: Work around GCC bug #90309.
      * .gitlab-ci.yml: Add raspbian build.
      0da5f44c
  12. 26 Aug, 2019 1 commit
    • Alexandre Duret-Lutz's avatar
      Upgrade parsers to Bison >= 3.0 · b9808144
      Alexandre Duret-Lutz authored
      Bison 3.0 was released in 2013, and the current Debian stable (buster)
      has version 3.3.2.
      
      * m4/bison.m4: Remove -Wno-precedence and -Wno-empty-rule, keep
      -Wno-deprecated just to protect from future deprecation warnings that
      would be interpreted as errors.
      * spot/parseaut/parseaut.yy, spot/parsetl/parsetl.yy: Use %empty
      rules, prefer %precedence over %nonassoc, update %error-versbose and
      %name-prefix to their more modern equivalent.
      * spot/misc/trival.hh (maybe): Mark this function as noexcept to
      please the compiler while compiling the parsers.
      b9808144
  13. 14 Jun, 2019 1 commit
    • Alexandre Duret-Lutz's avatar
      use a bibtex file to collect all references in Doxygen · df326e03
      Alexandre Duret-Lutz authored
      * doc/tl/tl.bib: Move ...
      * doc/spot.bib: ... here, and augment it with all references that
      appeared verbatim in Doxygen comments.
      * doc/Makefile.am, doc/tl/Makefile.am
      doc/tl/tl.tex: Adjust for the move.
      * doc/Doxyfile.in: Point to spot.bib.
      * spot/gen/automata.hh, spot/gen/formulas.hh, spot/misc/game.hh,
      spot/misc/minato.hh spot/taalgos/emptinessta.hh,
      spot/taalgos/minimize.hh, spot/taalgos/tgba2ta.hh, spot/tl/formula.hh,
      spot/tl/remove_x.hh, spot/tl/simplify.hh, spot/tl/snf.hh,
      spot/twaalgos/cobuchi.hh, spot/twaalgos/cycles.hh,
      spot/twaalgos/dualize.hh, spot/twaalgos/gtec/gtec.hh,
      spot/twaalgos/gv04.hh, spot/twaalgos/ltl2taa.hh,
      spot/twaalgos/ltl2tgba_fm.hh, spot/twaalgos/magic.hh,
      spot/twaalgos/minimize.hh, spot/twaalgos/parity.hh,
      spot/twaalgos/powerset.hh, spot/twaalgos/randomgraph.hh,
      spot/twaalgos/se05.hh, spot/twaalgos/simulation.hh,
      spot/twaalgos/strength.hh, spot/twaalgos/stutter.hh,
      spot/twaalgos/tau03.hh, spot/twaalgos/totgba.hh,
      spot/twaalgos/toweak.hh: Use \cite instead of a verbatim bibtex entry.
      df326e03
  14. 14 Feb, 2019 1 commit
    • Clément Gillard's avatar
      Several typos · 4ecd066c
      Clément Gillard authored and Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz committed
      * HACKING: Missing "to", extraneous 's'.
      * spot/misc/timer.hh: Extraneous space.
      * spot/twa/acc.hh: Extraneous 's', typos.
      * spot/twaalgos/genem.hh: Typo.
      * spot/twaalgos/sccinfo.cc: Fix indentation.
      * spot/twaalgos/sccinfo.hh: Missing 's'.
      * tests/python/acc_cond.ipynb: Extraneous 'e', missing comma.
      * tests/python/decompose.ipynb: Extraneous 't'.
      * tests/python/ltsmin-dve.ipynb: Extraneous verb.
      4ecd066c
  15. 13 Feb, 2019 1 commit
    • Alexandre Duret-Lutz's avatar
      work around gcc 8.2.1+ bug #89303 · a86925e2
      Alexandre Duret-Lutz authored
      Do not call std::make_shared on classes inheriting from
      std::enable_shared_from_this when compiling with g++ 8.2.
      
      * NEWS: Mention the bug.
      * spot/misc/common.hh (SPOT_make_shared_enabled__): New macro.
      * spot/twa/twagraph.cc, spot/twa/twagraph.hh, spot/twa/twaproduct.hh,
      spot/twa/taatgba.hh, spot/twaalgos/couvreurnew.cc,
      spot/twaalgos/magic.cc, spot/twaalgos/se05.cc, spot/twaalgos/tau03.cc,
      spot/twaalgos/tau03opt.cc, spot/twaalgos/gv04.cc,
      spot/ltsmin/ltsmin.cc, spot/twaalgos/gtec/gtec.cc: Use it.
      a86925e2
  16. 29 Nov, 2018 1 commit
    • Etienne Renault's avatar
      noexcept: please gcc snapshot · c2c8d215
      Etienne Renault authored
      * bin/common_finput.hh,
      bin/common_trans.cc,
      bin/common_trans.hh,
      spot/misc/minato.hh,
      spot/ta/ta.cc,
      spot/ta/ta.hh,
      spot/twa/acc.hh,
      spot/twaalgos/cycles.hh,
      spot/twaalgos/emptiness.hh,
      spot/twaalgos/gtec/gtec.hh,
      spot/twaalgos/ndfs_result.hxx,
      spot/twaalgos/sccinfo.hh,
      spot/twaalgos/word.cc,
      spot/twaalgos/word.hh: Here.
      c2c8d215
  17. 10 Nov, 2018 1 commit
    • Alexandre Duret-Lutz's avatar
      Fix Alpine Linux builds · 6cfdf02c
      Alexandre Duret-Lutz authored
      Reported by Maxime Bouton.
      
      * spot/misc/tmpfile.cc: Include stdlib.h, not cstdlib, so
      that our replacement secure_getenv() is found.
      * THANKS: Add Maxime.
      6cfdf02c
  18. 27 Sep, 2018 1 commit
  19. 02 Aug, 2018 1 commit
  20. 27 Jul, 2018 1 commit
    • Maximilien Colange's avatar
      ltlsynt: rework synthesis algorithms · bd75ab5b
      Maximilien Colange authored
      ltlsynt now offers two algorithms: one where splitting occurs before
      determinization (the historical one) and one where determinization
      occurs before splitting.
      
      * bin/ltlsynt.cc: here
      * tests/core/ltlsynt.test: test it and refactor test file
      * NEWS: document it
      * spot/misc/game.hh, spot/misc/game.cc: remove Calude's algorithm
      bd75ab5b
  21. 19 Jul, 2018 1 commit
    • Alexandre Duret-Lutz's avatar
      modernize std::string("foo") into "foo"s · d0819350
      Alexandre Duret-Lutz authored
      * spot/ltsmin/ltsmin.cc, spot/misc/tmpfile.cc,
      spot/parseaut/parseaut.yy, spot/taalgos/dot.cc, spot/tl/hierarchy.cc,
      spot/tl/unabbrev.cc, spot/twa/acc.cc, spot/twa/twagraph.cc,
      spot/twaalgos/dot.cc, spot/twaalgos/hoa.cc, spot/twaalgos/lbtt.cc,
      spot/twaalgos/neverclaim.cc, spot/twaalgos/strength.cc,
      spot/twaalgos/word.cc: Replace std::string("foo") by "foo"s, and
      include namespace std::string_literals.
      d0819350
  22. 18 Jul, 2018 1 commit
  23. 04 Jul, 2018 1 commit
    • Alexandre Duret-Lutz's avatar
      trival: prefer a global operator== relying on implicit conversion · 04110995
      Alexandre Duret-Lutz authored
      Hopefully fixes #359.
      
      * spot/misc/trival.hh: Declare a global operator==(trival,trival) that
      replace the specialized operator==(bool,trival), and the in class
      trival::operator(trival), thanks to the implicit construction from
      bool to trival.  Make the repr_t/value_t constructor explicit, are
      those are mostly internal to the library and may cause conflicts.
      * spot/twa/twa.hh: Adjust to construct trival explicitly.
      * python/spot/impl.i: Since Swig/Python does not support global
      comparison operators, implement a member version, supporting
      only __eq__(trival,bool) as before.
      * tests/python/setacc.py: Adjust erroneous code.
      * tests/python/trival.py: Add test cases.
      04110995
  24. 20 Jun, 2018 2 commits
    • Maximilien Colange's avatar
      add a pool allocator for STL containers · c9131aee
      Maximilien Colange authored
      * spot/priv/allocator.hh, spot/priv/Makefile.am: add a STL-compliant
        allocator based on spot::fixed_size_pool
      * spot/misc/fixpool.hh, spot/misc/fixpool.cc, spot/misc/Makefile.am:
        refactor the existing spot::fixed_size_pool
      * spot/ltsmin/ltsmin.cc, spot/twa/twaproduct.cc: reflect changes in the
        interface of spot::fixed_size_pool
      * tests/core/mempool.cc: test the new allocator
      c9131aee
    • Maximilien Colange's avatar
      make valgrind understand our memory pools · 3fe74f1c
      Maximilien Colange authored
      Annotate pools with valgrind macros so that it detects errors in pool
      usage. Typically, we wish valgrind to detect a leak when the user fails
      to call proper deallocation function.
      
      * spot/misc/fixpool.hh, spot/misc/mspool.hh: here
      * configure.ac: ensure that valgrind header exists
      * tests/Makefile.am, tests/core/mempool.cc, tests/core/mempool.test,
        tests/core/.gitignore: add tests to ensure valgrind accurately detects
        leaks
      3fe74f1c
  25. 15 Jun, 2018 1 commit
    • Maximilien Colange's avatar
      ltlsynt: more deterministic behavior · 9489a65b
      Maximilien Colange authored
      Zielonka algorithm used to iterate over an std::unordered_set, thus
      producing different strategies depending on compiler...
      
      * spot/misc/game.cc: replace std::unordered_set with std::set
      9489a65b
  26. 26 May, 2018 1 commit
    • Alexandre Duret-Lutz's avatar
      acc: turn some assertions into exceptions · 6d9d35c9
      Alexandre Duret-Lutz authored
      * spot/misc/bitset.cc, spot/misc/bitset.hh (set, clear):
      Turn asserts into exceptions.
      * spot/twa/acc.hh (mark_t): As a consequence, the
      constructor is not noexcept anymore.
      * tests/core/acc.cc, tests/python/except.py: More tests.
      6d9d35c9
  27. 25 May, 2018 2 commits
    • Alexandre Duret-Lutz's avatar
      fix and check shifting issue · b12eb050
      Alexandre Duret-Lutz authored
      The exception raised by << and >> when shifting mark_t by too many
      bits are only enabled in SPOT_DEBUG, as those operations are quite
      low-level.  However we were always testing them, and although we
      wanted them to be active in Python, it was not always the case.
      
      * spot/twa/acc.hh: introduce max_accsets() as
      a static constexpr method, so we can see it in Python.
      * spot/misc/bitset.hh: Fix preprocessing directive
      so the check is actually enabled when compiling the Python
      bindings.
      * bin/autcross.cc, bin/autfilt.cc, bin/ltlcross.cc: Use max_accsets().
      * tests/core/acc.cc: Comment out the shifting exception when
      SPOT_DEBUG is unset.
      * tests/python/except.py: Make sure the exception is always raised in
      Python.
      b12eb050
    • Maximilien Colange's avatar
      a few improvements to mark_t · 5b908800
      Maximilien Colange authored
      * spot/misc/bitset.hh: add methods set() and clear()
      * spot/twa/acc.hh: deprecate comparison of mark_t with unsigned, and
        rely more on biset for efficiency
      5b908800
  28. 24 May, 2018 2 commits
  29. 23 May, 2018 1 commit
  30. 22 May, 2018 1 commit
    • Alexandre Duret-Lutz's avatar
      optionmap: fix set() · 74651c81
      Alexandre Duret-Lutz authored
      This longstanding issue caused some emptiness checks options to be
      ignored in the test suite, reducing coverage.
      
      * spot/misc/optionmap.cc (set): Insert the other keys without
      erasing the existing ones.
      74651c81