Commit graph

664 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
4e1c8dfd74 add test-case for bdd_noderesize
* tests/core/ltl2tgba.test: Add new test-case,
reported by Tomáš Babiak.
* NEWS: Mention the bug fixed by previous patch.
2016-11-19 16:46:14 +01:00
Alexandre Duret-Lutz
88a8a3efbe * NEWS: Typo. 2016-11-14 20:39:35 +01:00
Alexandre Duret-Lutz
5376466f43 * configure.ac, NEWS: Bump version number. 2016-11-14 10:15:38 +01:00
Alexandre Duret-Lutz
dd960dc71c Release Spot 2.2
* configure.ac, doc/org/setup.org, NEWS: Set version number.
2016-11-14 06:02:13 +01:00
Alexandre Duret-Lutz
e91073a9f1 org: document %r and %R
* doc/org/oaut.org (Timing): New section.
* NEWS: Link to it.
2016-11-13 14:30:12 +01:00
Alexandre Duret-Lutz
c225747749 twa: introduce intersects() and friends
* spot/twa/twa.hh, spot/twa/twa.cc (intersects, intersecting_run,
intersecting_word): New functions.
* NEWS: Mention them.
* doc/org/tut51.org, tests/python/bugdet.py: Use them.
2016-11-13 11:23:12 +01:00
Alexandre Duret-Lutz
937011692c * NEWS: Update for upcoming release. 2016-11-12 10:10:50 +01:00
Alexandre Duret-Lutz
85f6e0e158 scc_filter: preserve state names and highlighted states
Suggested by Juraj Major.

* spot/twaalgos/sccfilter.cc: Here.
* tests/python/sccfilter.py: New file.
* tests/Makefile.am: Add it.
* NEWS: Mention the news.
2016-11-11 15:21:17 +01:00
Alexandre Duret-Lutz
dd706d7847 twa: do not set prop_state_acc in set_acceptance
Reported by Juraj Major.

* spot/twa/twa.hh: check num_sets() in prop_state_acc() so we do not
have to set it in set_acceptance(), causing trouble if set_acceptance()
is called multiple times.
* tests/python/setacc.py: New test case.
* tests/Makefile.am: Add it.
* THANKS: Add Juraj.
* NEWS: Mention the bug.
2016-11-11 15:20:56 +01:00
Alexandre Duret-Lutz
a70589fe13 remfin: fix handling of weak automata
* spot/twaalgos/remfin.cc: Do not add a sink states to deterministic
weak automata, and actually apply the "weak" Fin-removal to any weak
automaton.
* tests/core/explprod.test: Add a test case for the previous patch,
but that used to fail because of this bug.
* NEWS: Mention the bug.
2016-11-11 14:10:24 +01:00
Alexandre Duret-Lutz
49266dee7f parseaut: do not close fd or stdin
* spot/parseaut/public.hh, spot/parseaut/scanaut.ll: When parsing
automata read from some given FD, do not close the file descriptor, as
the caller is likely to already close it, and closing FDs twice is very
bad.  This seems to have be the root of some issue we had with recent
jupyter versions, were 0MQ would crash with "Bad file descriptor"
messages.  Also do not close stdin while we are at it.
* NEWS: Mention the bug.
2016-11-11 14:10:03 +01:00
Alexandre Duret-Lutz
278b41f4bb ltldo: rename %R as %#
Fixes #189.

* bin/ltldo.cc: Here.
* tests/core/ltldo.test: Adjust and add test-case for %R.
* NEWS: Mention the change.
2016-11-08 18:58:04 +01:00
Alexandre GBAGUIDI AISSE
6ed380709d spot: Add %R, %[..]R common option.
For #189.

* NEWS: Update.
* bin/autfilt.cc: Replace stopwatch with process_timer.
* bin/dstar2tgba.cc: Replace stopwatch with process_timer.
* bin/ltl2tgba.cc: Replace stopwatch with process_timer.
* bin/ltlcross.cc: Replace stopwatch with process_timer.
* bin/ltldo.cc: Replace stopwatch with process_timer.
* bin/randaut.cc: Replace stopwatch with process_timer.
* bin/common_aoutput.hh: Implement process_timer, integrate it.
* bin/common_aoutput.cc: Integrate process_timer and implement new
print method.
* spot/misc/timer.hh: Modify timer class and timeinfo struct
i.e. add cutime (children_utime) and cstime (children_stime).
* spot/misc/timer.cc: Help code to behave as before all this.
* spot/twaalgos/dtbasat.cc: Help print_log to behave as before
all this.
* spot/twaalgos/dtwasat.cc: Help print_log to behave as before
all this.
* spot/misc/formater.hh: Add operator<< for spot::timer.
2016-11-08 18:57:50 +01:00
Alexandre Duret-Lutz
2e69e04583 from_ltlf: new LTL transformation.
Fixes #187.

* spot/tl/ltlf.cc, spot/tl/ltlf.hh: New files.
* spot/tl/Makefile.am: Add them.
* bin/ltlfilt.cc: Add a new option.
* bin/man/ltlfilt.x: Add bibliographic reference.
* tests/core/ltlfilt.test: Add more tests.
* tests/python/ltlf.py: New file.
* tests/Makefile.am: Add it.
* python/spot/impl.i: Python bindings.
* NEWS: Mention it.
2016-11-05 22:59:02 +01:00
Alexandre Duret-Lutz
d919b78c89 simulation: do not purge unreachable states when recording implications
This fixes the incorrect output of tgba_determinize() reported yesterday
by Reuben Rowe.

* spot/twaalgos/simulation.cc: Do not purge unreachable states when
recording implications.
* tests/python/bugdet.py: New test case.
* tests/Makefile.am: Add it.
* THANKS: Add Reuben.
* NEWS: Mention the bug.
2016-11-01 09:29:55 +01:00
Alexandre Duret-Lutz
40ed12050b parsetl: fix crash in debug-mode
Fixes #193, reported by Etienne Renault.

* spot/parsetl/parsetl.yy: Clone printed formulas.
* tests/core/parse.test: Add test case.
* NEWS: Mention the issue.
2016-10-29 13:13:09 +02:00
Alexandre Duret-Lutz
a5fb5784f6 print: fix str_sere() and str_utf8_sere(), as found by PVS-Studio
These were not actually printing in "SERE" mode due to a copy/paste
error.  PVS-Studio seems really good at finding those.  For #192.

* spot/tl/print.cc: Fix it.
* NEWS: Mention the bug.
2016-10-29 12:37:35 +02:00
Etienne Renault
f9991288f7 compression: fix bad encoding
Fixes #190.

* NEWS, spot/misc/intvcomp.cc: here.
2016-10-25 14:55:27 +02:00
Alexandre Duret-Lutz
ce63c30c0b translate: reset the LTL simplifier on set_level().
Fix an issue reported by Tomáš Babiak, who noticed that he could not
manage to have ltl2tgba process `genltl --go-theta=N` efficiently for
larger values of N.

* spot/twaalgos/translate.hh (set_level): Reset any owned LTL simplifier
whenever the optimization level is changed.
* NEWS: Mention the bug.
2016-10-25 13:53:28 +02:00
Alexandre Duret-Lutz
4be7065b81 simulation: speedup on deterministic automata
* spot/twaalgos/simulation.cc: Detect deterministic automata, and skip
the partial-order update.
* NEWS: Mention the speedup.
2016-10-23 19:55:48 +02:00
Alexandre Duret-Lutz
56f768f5a6 remove_fin: improve behavior on unclean acceptance
Related to #188.  This is a third fix that independently
makes `'utfilt --is-unambiguous -q smaller.hoa' instantaneous.

* spot/twaalgos/remfin.cc: Clean the received automaton if
necessary.
* bin/autfilt.cc: No need to call cleanup_acceptance_here() before
remove_fin() anymore.
* tests/core/remfin.test: Add an additional test.
* NEWS: Mention the change.
2016-10-19 11:00:15 +02:00
Alexandre Duret-Lutz
ad478bd31a sccinfo: improve detection of rejecting 1-self-loop SCCs
As observed in #188, the smaller.hoa automaton is made only of
1-state/1-self-loop SCCs, for which calling remove_fin is a complete
waste of time.  This patch alone (i.e., without the other changes
suggested by #188) improves the run time of

% autofilt -q --is-unambiguous smaller.hoa

from 38s to 0.05s.

* spot/twaalgos/sccinfo.cc: If a single-state SCC has undeterminate SCC
and only one self-loop, then it is necessarily rejecting.
* NEWS: Mention the change.
2016-10-19 10:51:38 +02:00
Alexandre Duret-Lutz
5384a3b89a is_unambiguous: rewrite more efficiently
Avoid calling scc_info::determine_unknown_acceptance on the product, as
suggested in #188.

* spot/twaalgos/isunamb.cc (is_unambiguous): Rewrite.
* tests/core/unambig.test: Add the automaton from #188.
* NEWS: Mention the improved function.
* spot/twaalgos/mask.cc,
spot/twaalgos/mask.hh (mask_keep_accessible_states): New function.
2016-10-19 10:51:38 +02:00
Alexandre Duret-Lutz
9b3451c52e * NEWS: Typo, reported by Alexandre Gbaguidi Aïsse. 2016-10-17 11:43:19 +02:00
Alexandre Duret-Lutz
de665ce28f * configure.ac, NEWS: Bump version to 2.1.2.dev. 2016-10-14 17:30:07 +02:00
Alexandre Duret-Lutz
b0c60e799a Release Spot 2.1.2
* NEWS, configure.ac, doc/org/setup.org: Bump version.
2016-10-14 17:18:23 +02:00
Alexandre Duret-Lutz
48655c6875 complete Alexandre's patch
* bench/dtgbasat/formulas: Typo.
* NEWS: Mention the fix.
* AUTHORS: Add Alexandre.
2016-10-13 15:55:25 +02:00
Alexandre Duret-Lutz
3b5fa22a3b ltlcross: add option --strength and --ambiguous
Suggested by František Blahoudek.

* bin/ltlcross.cc: Implement the two options.
* doc/org/ltlcross.org, NEWS: Document them.
* tests/core/complementation.test: Adjust test case.
* tests/core/ltlcross3.test, tests/core/unambig.test: More tests.
2016-10-13 15:41:49 +02:00
Alexandre Duret-Lutz
cc1191cd66 ltlcross: fix --verbose --no-check crash
Report from František Blahoudek.

* bin/ltlcross.cc: Do not display stats for automata
that do not exist.
* tests/core/ltlcross3.test: Test it.
* NEWS: Mention the fix.
2016-10-13 13:53:42 +02:00
Etienne Renault
8a8fcf2ac1 spot.ltsmin: fix errors on Darwin
* NEWS, python/spot/ltsmin.i: here.
2016-10-10 20:11:40 +02:00
Alexandre Duret-Lutz
a5d6aa2533 introduce SPOT_FALLTHROUGH to cope with -Wimplicit-fallthrough
* NEWS: Mention the fix.
* HACKING: Mention the new macro.
* spot/misc/common.hh (SPOT_FALLTHROUGH): Add the macro.
* bin/randltl.cc, spot/misc/escape.cc, spot/tl/mutation.cc,
spot/tl/print.cc, spot/tl/simplify.hh, spot/tl/snf.cc, spot/twa/acc.cc,
spot/twaalgos/ltl2taa.cc, spot/twaalgos/ltl2tgba_fm.cc,
spot/twaalgos/sepsets.cc, spot/twaalgos/translate.cc: Use it.
2016-10-07 21:29:34 +02:00
Alexandre Duret-Lutz
9ccdd8c618 genltl: add some formulas from Tabakov & Vardi (RV'10)
* bin/genltl.cc: Implement the families.
* NEWS, bin/man/genltl.x: Document them.
* tests/core/genltl.test: Add a test.
2016-10-03 17:41:14 +02:00
Alexandre Duret-Lutz
0c9c4be4ae bin: workaround flushing issues
* bin/common_cout.cc (check_cout): Force a flush of cout if more than
20ms has elapsed since the last explicit flush.
* bin/common_setup.cc (setup): Untie cin and cout if the input
is not a TTY, so that cout is flush less often.
* NEWS: Mention the change.
2016-10-03 15:27:06 +02:00
Alexandre Duret-Lutz
0678d1a662 change the version from 2.1.1a to 2.1.1.dev for Debian
Fixes #186.

* configure.ac, NEWS: Update version.
2016-09-23 15:04:41 +02:00
Alexandre Duret-Lutz
6528d75339 simplify: rewrite GF(a & GFb) as G(Fa & Fb)
Fixes #185.

* spot/tl/simplify.cc: Implement the new rule.
* NEWS, doc/tl/tl.tex: Document it.
* tests/core/reduccmp.test: Test it.
2016-09-22 17:37:55 +02:00
Alexandre Duret-Lutz
01d84c4d52 formula: fix valgrind error in is_Kleene_star() with clang++
* spot/tl/formula.hh, spot/tl/formula.cc: Rework the
initialization of fnode.
* NEWS: Mention the bug.
2016-09-22 17:36:43 +02:00
Alexandre Duret-Lutz
5558bcf05a * NEWS, configure.ac: bump version number 2016-09-20 11:52:35 +02:00
Alexandre Duret-Lutz
fd6614181b Release Spot 2.1.1
* NEWS, configure.ac, doc/org/setup.org: Bump version number.
2016-09-20 08:54:56 +02:00
Alexandre Duret-Lutz
90214d7c39 genltl: fix typo in --help
Reported by František Blahoudek.

* bin/genltl.cc: Here.
* NEWS: Mention it, and the typos previously fixed in spot-x.7.
2016-09-15 15:36:53 +02:00
Alexandre Duret-Lutz
3bb881218f * NEWS: Typoa. 2016-09-14 16:47:40 +02:00
Alexandre Duret-Lutz
571f0112ab bin: add options for --stats=%c
* spot/twaalgos/stats.cc: Implement options.
* bin/common_aoutput.cc, NEWS: Document them.
* tests/core/format.test: Add some quick tests.
2016-08-17 16:35:00 +02:00
Alexandre Duret-Lutz
825332029c autfilt: implement %D, %N, %P, %W
* bin/common_aoutput.cc, bin/common_aoutput.hh: Implement.
* tests/core/format.test: Test.
* NEWS: Mention.
2016-08-16 19:20:12 +02:00
Alexandre Duret-Lutz
926ffbf965 bin: %a,%b,%s format specs for LTL output
* NEWS: Mention those.
* bin/common_output.cc, bin/common_output.hh: Implement them.
* bin/genltl.cc, bin/ltlfilt.cc, bin/ltlgrind.cc, bin/randltl.cc: Update
--help.
* tests/core/format.test: New file.
* tests/Makefile.am: Add it.
* doc/org/ioltl.org, doc/org/ltlfilt.org: Update documentation.
2016-08-15 16:09:53 +02:00
Alexandre Duret-Lutz
e97ea5fa74 bin: diagnose more write errors
* tests/core/full.test: New file.
* tests/Makefile.am: Add it.
* bin/autfilt.cc, bin/common_aoutput.cc, bin/common_aoutput.hh,
bin/common_file.cc, bin/common_file.hh, bin/genltl.cc, bin/ltlcross.cc,
bin/ltlfilt.cc, bin/ltlgrind.cc, bin/randltl.cc: Add diagnostics.
* NEWS: Mention the fix.
2016-08-14 18:18:20 +02:00
Alexandre Duret-Lutz
53e6640034 Bump version to 2.1.0a
* configure.ac, NEWS: Here.
2016-08-08 16:30:56 +02:00
Alexandre Duret-Lutz
78232df3bf Release Spot 2.1
* configure.ac, NEWS, doc/org/setup.org: Update version.
2016-08-08 13:23:18 +02:00
Alexandre Duret-Lutz
ca0d81b5d7 autfilt, dstar2tgba: add CSV input
Fixes #91.

* bin/autfilt.cc, bin/dstar2tgba.cc: Implement reading CSV files.
* bin/common_finput.cc: Fix comments.
* bin/common_aoutput.cc: Show %<, %> in help text.
* NEWS, doc/org/csv.org: Document it.
* tests/core/readsave.test: Add a short test case.
2016-08-08 13:18:50 +02:00
Alexandre Duret-Lutz
f423c424eb bin: --stats=%H --stats=%h
Part of #91.

* bin/common_aoutput.cc, bin/common_aoutput.hh: implement %H and %h.
* tests/core/readsave.test: Test them.
* NEWS: Mention it.
2016-08-08 12:41:36 +02:00
Alexandre Duret-Lutz
0d753048ce formater: add support for double-quoted fields
Part of #91.

* spot/misc/formater.cc, spot/misc/formater.hh: Here.
* bin/common_output.cc: Adjust automatic output format.
* doc/org/csv.org: Adjust.
* tests/core/lbt.test, tests/core/ltlfilt.test: More tests.
* NEWS: Mention the changes.
2016-08-08 10:53:33 +02:00
Alexandre Duret-Lutz
14bee1ae7f implement conversion to GRA and GSA
Fixes #174.

* spot/twaalgos/totgba.hh, spot/twaalgos/totgba.cc
(to_generalized_streett, to_generalized_rabin): New functions.
* spot/twa/acc.hh: Declare more methods as static.
* bin/autfilt.cc: Implement --generalized-rabin and
--generalized-streett options.
* NEWS: Mention these.
* tests/core/gragsa.test: New file.
* tests/Makefile.am: Add it.
2016-08-04 22:24:30 +02:00