Commit graph

3522 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
3b115f0105 * HACKING: Minor updates to a few sections. 2016-01-06 14:25:37 +01:00
Alexandre Duret-Lutz
f470edc6c4 Do not run the Python tests when --disable-python.
* tests/Makefile.am (TESTS_python): Define conditionally.
2016-01-06 14:24:51 +01:00
Alexandre Duret-Lutz
bf7df62032 * tools/test-driver-teamcity: Do not add tests/ in the output. 2016-01-05 17:20:51 +01:00
Alexandre Duret-Lutz
f08dbe7000 * NEWS: Mention recent directory moves. 2016-01-05 17:20:51 +01:00
Alexandre Duret-Lutz
82a718a0f2 * bin/common_setup.cc: Bump copyright year. 2016-01-05 17:20:51 +01:00
Alexandre Duret-Lutz
d68db6ad44 use find to clean to test suite temporary directories
* tests/Makefile.am (distclean-local): Here.
2016-01-05 17:20:51 +01:00
Alexandre Duret-Lutz
6e854b6d83 move the sanity tests in tests/sanity/
* spot/sanity/: Move ...
* tests/sanity/: ... here.
* spot/sanity/Makefile.am: Merge with...
* tests/Makefile.am: ... this.
* tests/run.in: Learn to run perl tests.
* README, configure.ac, spot/Makefile.am: Adjust.
* spot/tl/mark.hh: Add missing SPOT_API detected by
fixed private.test.

* spot/twaalgos/weight.cc, spot/twaalgos/weight.hh: Move...
* spot/priv/weight.cc, spot/priv/weight.hh: ... here, as
suggested by fixed private.test.
* spot/twaalgos/tau03opt.cc, spot/twaalgos/Makefile.am,
spot/priv/Makefile.am: Adjust.
2016-01-05 17:20:51 +01:00
Alexandre Duret-Lutz
6b881a2e38 * tests/python/ipnbdoctest.py: 80 columns. 2016-01-05 11:53:03 +01:00
Alexandre Duret-Lutz
ddc424f5a3 move ltsmin tests to tests/ltsmin/
* spot/ltsmin/defs.in: Delete.
* spot/ltsmin/README, spot/ltsmin/beem-peterson.4.dve,
spot/ltsmin/check.test, spot/ltsmin/elevator2.1.pm,
spot/ltsmin/finite.dve, spot/ltsmin/finite.pm, spot/ltsmin/finite.test,
spot/ltsmin/finite2.test, spot/ltsmin/kripke.test,
spot/ltsmin/modelcheck.cc: Move...
* tests/ltsmin/: ... here.
* spot/ltsmin/README: Point to tests/ltsmin/README.
* README, configure.ac, spot/ltsmin/Makefile.am, tests/.gitignore,
tests/Makefile.am, tests/core/defs.in: Adjust.
2016-01-05 11:52:24 +01:00
Alexandre Duret-Lutz
7e6bfd0e8f * debian/rules: Fix html conversion of notebooks. 2016-01-05 09:08:06 +01:00
Alexandre Duret-Lutz
5cb94a1a3f Merge the core and python tests in the tests/ directory
* tests/: Rename as...
* tests/core/: ... this.
* python/tests/: Rename as...
* tests/python/: ... this.
* python/tests/run.in: Move as...
* tests/run.in: This, and adjust.
* tests/Makefile.am: Adjust to run both core and python tests.
* configure.ac, README, debian/python3-spot.examples, debian/rules,
doc/org/tut.org, python/Makefile.am, spot/ltsmin/Makefile.am,
spot/ltsmin/kripke.test, spot/sanity/ipynb.test: Adjust.
2016-01-04 16:02:30 +01:00
Alexandre Duret-Lutz
18572db39f * spot/sanity/ipynb.test: Fix notebook detection. 2015-12-28 18:04:08 +01:00
Alexandre Duret-Lutz
8483f7fc50 * doc/org/tut.org: Minor fixes. 2015-12-27 20:20:42 +01:00
Alexandre Duret-Lutz
134dfc73de move spot/bin/ and spot/tests/ up by one level
* spot/bin/: Move...
* bin/: ... here.
* spot/tests/: Move...
* tests/: ... here.
* Makefile.am, README, bench/stutter/Makefile.am,
bench/stutter/stutter_invariance_formulas.cc, doc/Makefile.am,
configure.ac, debian/rules, spot/Makefile.am, spot/ltsmin/Makefile.am,
spot/ltsmin/kripke.test, spot/sanity/style.test, python/tests/run.in:
Adjust.
2015-12-27 20:10:59 +01:00
Alexandre Duret-Lutz
ff4837f4f2 python: more robust handling of %timeit in notebooks
* python/tests/ipnbdoctest.py: Simply ignore %timeit blocks.
2015-12-26 20:16:53 +01:00
Alexandre Duret-Lutz
6fb4df4359 Move spot-if/ltsmin/ to spot/ltsmin/
* spot-if/ltsmin/: Rename as...
* spot/ltsmin/: ... this.
* spot-if/: Delete.
* Makefile.am, NEWS, README, configure.ac, debian/libspot-dev.install,
doc/Doxyfile.in, spot/Makefile.am, spot/sanity/80columns.test,
spot/sanity/style.test: Adjust.
2015-12-25 13:45:42 +01:00
Alexandre Duret-Lutz
34c3c1cedc rename wrap/python/ to python/
* wrap/python/: Rename to...
* python/: ... this.
* wrap/: Delete.
* Makefile.am, README, configure.ac, debian/python3-spot.examples,
debian/rules, doc/org/.dir-locals.el.in, doc/org/init.el.in,
spot/sanity/ipynb.test: Adjust.
2015-12-25 12:38:25 +01:00
Alexandre Duret-Lutz
74ec9c54c4 show how to implement product in Python
* wrap/python/tests/product.ipynb: New file.
* wrap/python/tests/Makefile.am, doc/org/tut.org: Add it.
* wrap/python/tests/ipnbdoctest.py: Ignore %timeit results.
* wrap/python/spot_impl.i: Add bindings for
set_state_names()/get_state_names().
* spot/twaalgos/product.cc: Fix computation of properties.
* doc/org/hoa.org: Name.
* NEWS: Update.
2015-12-24 19:47:15 +01:00
Alexandre Duret-Lutz
ad37cacbc0 twa: fix duplicate propositions in ap()
Calling register_ap() with same atomic proposition several time, for
instance via copy_ap() in a product, would create duplicate atomic
propositions.  This fix will be exercised by the next patch.

* spot/twa/twa.hh: Here.
* spot/twaalgos/compsusp.cc, spot/twaalgos/ltl2taa.cc: Fix
to correctly register atomic propositions.
* NEWS: Mention it.
2015-12-24 19:46:43 +01:00
Alexandre Duret-Lutz
fbf5ac0ea7 acc_cond: get rid of generalized_buchi()
It is already in acc_cond::acc_code::generalized_buchi() along with all
other acceptance condition constructors.

* spot/twa/acc.hh (acc_cond::generalized_buchi): Remove.
* spot/tests/ikwiad.cc, spot/twaalgos/postproc.cc: Adjust.
2015-12-18 18:18:47 +01:00
Alexandre Duret-Lutz
df1ef302e8 acc_code: parse from the constructor
* spot/twa/acc.hh, spot/twa/acc.cc (parse_acc_code): Rename as...
(acc_cond::acc_code): ... this, making it a lot easier to build
acceptance conditions from strings.
* NEWS: Mention the change.
* spot/twaalgos/dtwasat.cc, spot/bin/randaut.cc, spot/tests/acc.cc:
Adjust.
* wrap/python/tests/acc_cond.ipynb, wrap/python/tests/accparse.ipynb,
wrap/python/tests/accparse2.py: Simplify, but not completely to exercise
all variants.
* wrap/python/spot_impl.i: Make acc_code's constructor implicit.
2015-12-18 18:18:28 +01:00
Alexandre Duret-Lutz
d0b29051b2 acc_cond: allow ctor from acc_code only + bind unsat_mark()
* spot/twa/acc.hh: Here.
* wrap/python/spot_impl.i: Adjust for the strange return type of
unsat_mark().
* wrap/python/tests/acc_cond.ipynb: Augment.
2015-12-18 17:04:03 +01:00
Alexandre Duret-Lutz
b893b55973 python: better swig options
* wrap/python/Makefile.am: Use more modern swig flags.
2015-12-18 16:03:50 +01:00
Alexandre Duret-Lutz
15131e74f2 python: better binding for is_parity()
* wrap/python/spot_impl.i: Here.
* wrap/python/tests/acc_cond.ipynb: Document it.
* spot/twa/acc.cc (is_parity): Always initialize max.
2015-12-18 15:54:35 +01:00
Alexandre Duret-Lutz
fd6ad9913f acc: get rid of join()
* spot/twa/acc.hh: Here.  Also make sure << takes an unsigned
argument.
* spot/twa/twaproduct.cc, spot/twaalgos/compsusp.cc,
spot/twaalgos/product.cc, spot/twaalgos/remfin.cc,
spot/twaalgos/totgba.cc, spot/tests/acc.cc: Adjust.
2015-12-17 14:39:03 +01:00
Alexandre Duret-Lutz
94cca9de3d acc_cond: rename is_tt/is_ff as is_t/is_f and add printer
* spot/twa/acc.cc, spot/twa/acc.hh: Here.
* spot/parseaut/parseaut.yy, spot/twa/acc.hh,
spot/twaalgos/gtec/gtec.cc, spot/twaalgos/hoa.cc,
spot/twaalgos/neverclaim.cc, spot/twaalgos/product.cc,
spot/twaalgos/remfin.cc, spot/twaalgos/strength.cc: Adjust.
* NEWS: Mention the changes.
* wrap/python/spot_impl.i: Bind acc_cond the printer.
* wrap/python/tests/acc_cond.ipynb: Add more examples.
2015-12-17 08:42:34 +01:00
Alexandre Duret-Lutz
2927cf38ac python: add some doc & tests for the acceptance bindings
* wrap/python/tests/acc_cond.ipynb: New file.
* wrap/python/tests/Makefile.am, doc/org/tut.org: Add it.
* wrap/python/spot_impl.i: Add printer for acc_cond::mark_t.
2015-12-16 19:06:20 +01:00
Alexandre Duret-Lutz
4993e80706 acc: simplify interface using operators
* spot/twa/acc.hh, spot/twa/acc.cc: Here.  Also remove
some redundant functions.
* spot/parseaut/parseaut.yy, spot/priv/accmap.hh, spot/tests/acc.cc,
spot/tests/twagraph.cc, spot/twa/taatgba.hh, spot/twa/twaproduct.cc,
spot/twaalgos/dtwasat.cc, spot/twaalgos/hoa.cc, spot/twaalgos/lbtt.cc,
spot/twaalgos/ltl2tgba_fm.cc, spot/twaalgos/product.cc,
spot/twaalgos/remfin.cc, spot/twaalgos/simulation.cc,
spot/twaalgos/tau03opt.cc, spot/twaalgos/weight.cc,
spot/twaalgos/weight.hh: Adjust.
* NEWS: Mention the changes.
2015-12-16 19:06:20 +01:00
Alexandre Duret-Lutz
c39d35d068 python: port the tut22.org example to Python
* wrap/python/spot_impl.i: Extend acc_cond::mark_t to with a constructor
that takes a vector.
* doc/org/tut22.org: Add a Python version.
* doc/org/tut.org: Adjust the list, we don't have any C++-specific
example.
* NEWS: Mention it.
2015-12-15 19:01:33 +01:00
Alexandre Duret-Lutz
9313222e95 python: allow iterating over the successors of a state
Fixes #118.

* spot/twa/twagraph.hh: Avoid using graph_t::state to help Swig.
* wrap/python/spot_impl.i: Add a __str__ function for acc_cond::mark_t.
* doc/org/tut21.org: Add the Python version.
* doc/org/tut.org: Move tut21.org to the Python/C++ section.
* NEWS: Update.
2015-12-14 11:51:57 +01:00
Alexandre Duret-Lutz
4b853865b9 python: initial work on wrapping twa_graph::out(n)
* spot/twa/twagraph.hh (out): Do not hide from SWIG.
* spot/graph/graph.hh: Hide stuff that SWIG do not understand.
* wrap/python/spot_impl.i: Add some typemaps and fragment to
iterate over the result of twa_graph::out().
2015-12-11 19:32:52 +01:00
Alexandre Duret-Lutz
4e040fd9f7 * wrap/python/spot_impl.i: We do not use False/True anymore in Spot. 2015-12-11 10:14:48 +01:00
Alexandre Duret-Lutz
3467a719bb python: kill some Swig warnings
* wrap/python/spot_impl.i: Get rid of some warnings about missing
typecheck for spot::formula.
2015-12-10 18:25:35 +01:00
Alexandre Duret-Lutz
679be1d727 speed up equivalence check for LTL formulas
With this patch reduc.test goes from 4:57 down to 4:06 on my laptop.

* spot/tl/contain.cc (equal): Use are_isomorphic() before testing
for containment.
* spot/twaalgos/are_isomorphic.hh, spot/twaalgos/are_isomorphic.cc:
(are_isomorphic): New static method.
2015-12-09 18:13:21 +01:00
Alexandre Duret-Lutz
2e15ed959d decompose_strength: work with inherently weak SCCs
* wrap/python/tests/decompose.ipynb: Adjust text.
* spot/twaalgos/strength.hh, spot/twaalgos/strength.cc:
Adjust to extract inherently weak SCCs instead of weak SCCs.  This gets
rids of the special handling for the "corner cases".
* spot/tests/strength.test: Adjust.
* NEWS: Mention it.
2015-12-09 15:53:51 +01:00
Alexandre Duret-Lutz
9bbcf85b3a acc: move unsat_mark in acc_cond
so that we can optimize it when no Fin are used

* spot/twa/acc.cc, spot/twa/acc.hh: Do it.
* spot/twaalgos/complete.cc, spot/twaalgos/strength.cc: Adjust.
2015-12-09 11:21:41 +01:00
Alexandre Duret-Lutz
2d3e7cecf5 org: update Spot description on index page
* doc/org/index.org: Here.
2015-12-08 22:43:42 +01:00
Alexandre Duret-Lutz
1f2260f971 introduce is_inherently_weak_automaton()
* spot/twaalgos/strength.cc, spot/twaalgos/strength.hh
(is_inherently_weak_automaton): New function.
(is_type_automaton): Adjust to implement the above and
set prop_inherently_weak().
* spot/twaalgos/isweakscc.cc, spot/twaalgos/isweakscc.hh:
Rewrite is_inherently_weak_scc() to not enumerate cycles.
* spot/bin/autfilt.cc: Add a --is-inherently-weak option.
* spot/tests/readsave.test: More tests.
* spot/tests/strength.test: Adjust expected output.
* doc/org/hoa.org: Adjust documentation of --check.
* NEWS: Mention those changes.
2015-12-08 18:13:19 +01:00
Alexandre Duret-Lutz
0edb2ad066 man: more bibliographic references
* spot/bin/man/autfilt.x, spot/bin/man/dstar2tgba.x,
spot/bin/man/ltlfilt.x: Add more bibliography.
2015-12-07 22:29:50 +01:00
Alexandre Duret-Lutz
b519c7d3dc rename iface/ as spot-if/
So that instead of having to do
  #incluce <spot/iface/ltsmin/ltsmin.hh>
for using installed the installed header, and
  #incluce <iface/ltsmin/ltsmin.hh>
for using the non-installed version, we now do
  #incluce <spot-if/ltsmin/ltsmin.hh>
in both cases.

* iface/: Rename as...
* spot-if/: ... this.
* doc/Doxyfile.in, README, configure.ac, Makefile.am,
spot/sanity/80columns.test, spot/sanity/style.test: Adjust.
* NEWS: Mention the change.
* spot-if/ltsmin/Makefile.am: Install headers in $includedir/spot-if.
* debian/libspot-dev.install: Distribute that directory as well.
2015-12-07 22:29:18 +01:00
Alexandre Duret-Lutz
690b8f51c7 org: some documentation about compiling C++
* doc/org/compile.org: New file.
* doc/Makefile.am: Add it.
* NEWS: Mention it.
* doc/org/tut.org, doc/org/tut01.org: Link to it.
2015-12-05 11:29:02 +01:00
Alexandre Duret-Lutz
f120dd3206 rename src/ as spot/ and use include <spot/...>
* NEWS: Mention the change.
* src/: Rename as ...
* spot/: ... this, adjust all headers to include <spot/...> instead of
"...", and adjust all Makefile.am to search headers from the top-level
directory.
* HACKING: Add conventions about #include.
* spot/sanity/style.test: Add a few more grep to catch cases
that do not follow these conventions.
* .gitignore, Makefile.am, README, bench/stutter/Makefile.am,
bench/stutter/stutter_invariance_formulas.cc,
bench/stutter/stutter_invariance_randomgraph.cc, configure.ac,
debian/rules, doc/Doxyfile.in, doc/Makefile.am,
doc/org/.dir-locals.el.in, doc/org/g++wrap.in, doc/org/init.el.in,
doc/org/tut01.org, doc/org/tut02.org, doc/org/tut03.org,
doc/org/tut10.org, doc/org/tut20.org, doc/org/tut21.org,
doc/org/tut22.org, doc/org/tut30.org, iface/ltsmin/Makefile.am,
iface/ltsmin/kripke.test, iface/ltsmin/ltsmin.cc,
iface/ltsmin/ltsmin.hh, iface/ltsmin/modelcheck.cc,
wrap/python/Makefile.am, wrap/python/ajax/spotcgi.in,
wrap/python/spot_impl.i, wrap/python/tests/ltl2tgba.py,
wrap/python/tests/randgen.py, wrap/python/tests/run.in: Adjust.
2015-12-04 20:13:59 +01:00
Alexandre Duret-Lutz
1fddfe60ec * NEWS: Typo. 2015-12-04 16:39:07 +01:00
Alexandre Duret-Lutz
47da953c74 * NEWS, configure.ac: Bump version number. 2015-12-04 11:13:41 +01:00
Alexandre Duret-Lutz
af96afac82 Release Spot 1.99.6
* NEWS, configure.ac, doc/org/setup.org: Update version and date.
2015-12-04 08:12:34 +01:00
Alexandre Duret-Lutz
871965c7fb * wrap/python/ajax/spotcgi.in: Adjust for recent renamings. 2015-12-04 08:09:10 +01:00
Alexandre Duret-Lutz
5f45642a24 * NEWS: Cleanup. 2015-12-03 18:06:07 +01:00
Alexandre Duret-Lutz
9d8fd50821 * elisp/hoa-mode.el: Update from its master. 2015-12-03 17:59:01 +01:00
Alexandre Duret-Lutz
6a64b0804c * debian/control: Fix some dependencdies. 2015-12-02 19:48:20 +01:00
Alexandre Duret-Lutz
e357c0c5bc hoa: allow dots in identifiers
As discussed at https://github.com/adl/hoaf/issues/56

* src/parseaut/scanaut.ll: Allow dots.
* src/tests/parseaut.test: Test it.
* NEWS: Mention it.
2015-12-02 15:31:03 +01:00