Commit graph

2109 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
a3b49f1108 acccompl: Speed up.
* src/misc/acccompl.cc: Simplify both directions of the conversion.
* src/misc/acccompl.hh: Pass bdds by reference.
2012-12-24 13:14:33 +01:00
Alexandre Duret-Lutz
ce21af6323 * .dir-locals.el: Fix whitespace-mode configuration. 2012-12-24 13:14:33 +01:00
Alexandre Duret-Lutz
15c9b72f13 [buddy]
* src/bdd.h: Make all inplace operators return a reference.
2012-12-24 13:14:23 +01:00
Alexandre Duret-Lutz
13c41ee773 ltlast: use the return of insert() to avoid a double lookup
* src/ltlast/atomic_prop.cc, src/ltlast/automatop.cc,
src/ltlast/binop.cc, src/ltlast/bunop.cc,
src/ltlast/multop.cc, src/ltlast/unop.cc: Do not look for a key
and then insert the (key,value) on failure.  Simply insert
(key,0), and replace 0 by value on failure.  This replaces two map
lookups by one.
2012-12-19 22:30:49 +01:00
Alexandre Duret-Lutz
2776de87da More documentation.
* README: Introduce Spot, and point to the documentation.
* wrap/python/ajax/README: Mention ltl3ba 1.0.2.
2012-12-19 15:36:56 +01:00
Alexandre Duret-Lutz
aa2374c5a2 Cosmetics.
* src/sanity/style.test: Catch extra space around operator declarations.
* src/ltlast/automatop.hh, src/ltlast/multop.hh,
src/tgba/tgbabddcoredata.cc, src/tgba/tgbabddcoredata.hh,
src/tgbaalgos/simulation.cc: Fix them.
2012-12-19 15:23:29 +01:00
Alexandre Duret-Lutz
cffbb7b498 Remove useless variable.
* src/tgba/tgbaexplicit.hh (add_state): Remove useless variable.
Reported by Étienne Renault.
2012-12-14 11:22:18 +01:00
Alexandre Duret-Lutz
b3d8b0198f x-to-1: Honor $PERL
* tools/x-to-1.in: Run $HELP2MAN via $PERL so that the user gets a
chance to use his preferred version of Perl.  This is typically
required by Darwin users whose default /usr/bin/perl do not have all
the libraries required by help2man, and who need to use their MacPorts
installation of Perl instead.
2012-12-14 11:22:08 +01:00
Alexandre Duret-Lutz
41265cd94f * NEWS: Document recent bug fixes. 2012-11-28 17:53:43 +01:00
Alexandre Duret-Lutz
64484e7816 Print F"proc.st" as Fproc.st.
* src/ltlvisit/tostring.cc: Allow '.' in bare words while
printing atomic propositions.
* src/ltltest/bare.test: New file.
* src/ltltest/Makefile.am: Add it.
2012-11-28 17:34:39 +01:00
Alexandre Duret-Lutz
af639e58c7 more files to ignore 2012-11-28 16:45:04 +01:00
Alexandre Duret-Lutz
5efb66cb25 Add a .dir-locals.el file.
* .dir-locals.el: New file.
* Makefile.am (EXTRA_DIST): Distribute it.
2012-11-27 15:19:20 +01:00
Thomas Badie
d10e772d35 Fix non determinism in the simulation.
* src/tgbaalgos/simulation.cc: Fix non determinism.
* src/tgbatest/simdet.test: Test that the behavior is now correct.
* src/tgbatest/Makefile.am (TESTS): Add the new test to the
test-suite.
2012-11-14 18:22:11 +01:00
Alexandre Duret-Lutz
49d384b1eb ltlcross: diagnose failure to write into temporary files
The removes a warning about the return code from write() being
ignored.  Reported by Thomas Badie.

* src/bin/ltlcross.cc (string_to_tmp): Call error() on error.
2012-11-14 15:12:43 +01:00
Alexandre Duret-Lutz
973c5bc050 * NEWS, configure.ac: Bump version to 1.0a 2012-10-27 12:11:59 +02:00
Alexandre Duret-Lutz
213b67e84b Release Spot 1.0.
* NEWS, configure.ac: Bump version to 1.0.
2012-10-27 11:58:55 +02:00
Alexandre Duret-Lutz
f9373e4a9f * m4/ax_prefix_config_h.m4: Update to more recent version. 2012-10-26 09:47:51 +02:00
Alexandre Duret-Lutz
e2ed5f6b98 * NEWS: rephrase some items 2012-10-26 07:56:47 +02:00
Alexandre Duret-Lutz
301ad1ebf0 Speed-up translation of persistence formulas.
* src/tgbaalgos/ltl2tgba_fm.cc: Use a single acceptance for syntactic
persistence formulas.
2012-10-26 07:46:04 +02:00
Alexandre Duret-Lutz
7c464246f2 * src/tgbaalgos/ltl2tgba_fm.cc: Typo in comment. 2012-10-24 10:16:19 +02:00
Alexandre Duret-Lutz
d552be308b ltlcross: Add a --stop-on-error option.
* src/bin/ltlcross.cc: Add the option.
* src/bin/common_finput.hh, src/bin/common_finput.cc: Make it possible
to abort run().
2012-10-23 23:21:14 +02:00
Alexandre Duret-Lutz
1f12ad8765 unabbreviate_wm: fix a segfault.
* src/ltlvisit/wmunabbrev.cc: Fix clone() order.
* src/ltltest/equals.cc: Add a mode for unabbreviate_wm().
* src/ltltest/unabbrevwm.test: New file.
* src/ltltest/Makefile.am: Add it.
2012-10-23 22:36:18 +02:00
Alexandre Duret-Lutz
aede62d123 * src/bin/man/genltl.x: Missing dot. 2012-10-22 20:29:14 +02:00
Alexandre Duret-Lutz
f3ef9de0be rename ltlcheck as ltlcross
* src/bin/ltlcheck.cc, src/bin/man/ltlcheck.x,
src/tgbatest/ltlcheck.test, src/tgbatest/ltlcheck2.test: Rename as ...
* src/bin/ltlcross.cc, src/bin/man/ltlcross.x,
src/tgbatest/ltlcross.test, src/tgbatest/ltlcross2.test: ... these.
* NEWS, src/bin/Makefile.am, src/bin/man/Makefile.am,
src/tgbatest/Makefile.am: Adjust.
2012-10-21 13:23:02 +02:00
Alexandre Duret-Lutz
fa4e6effa6 tgbaexplicit: fix state_is_accepting()
* src/tgba/tgbaexplicit.hh (state_is_accepting): Use
all_acceptance_conditions(), not all_acceptance_conditions_, so that
it works even when all_acceptance_conditions_ is not ready.
* src/tgbatest/explicit2.cc, src/tgbatest/explicit2.test: Adjust
test case.
2012-10-21 00:02:07 +02:00
Alexandre Duret-Lutz
76787b23c0 postproc: add the possibility to output a monitor
* src/tgbaalgos/stripacc.cc, src/tgbaalgos/stripacc.hh: New files.
* src/tgbaalgos/Makefile.am: Add them.
* src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh: Add a Monitor
output option.
* src/bin/ltl2tgba.cc: Add a --monitor/-M option.
* NEWS: Mention monitors.
* src/tgba/tgbaexplicit.hh (is_accepting_state): Fix for the
case where the automaton has no acceptance set.
2012-10-21 00:02:06 +02:00
Alexandre Duret-Lutz
5f6c262ae5 * NEWS: Document to_wring_string(). 2012-10-20 19:20:28 +02:00
Alexandre Duret-Lutz
877082bfb0 Add a parse_boolean() function to use in parsers for Automata.
* src/ltlparse/public.hh, src/ltlparse/ltlparse.yy (parse_boolean):
New function.
* src/neverparse/neverclaimparse.yy, src/tgbaparse/tgbaparse.yy:
Use it.
2012-10-20 19:18:54 +02:00
Alexandre Duret-Lutz
da5f7ac3aa to_string: remove extra parentheses
* src/ltlvisit/tostring.cc: Fix duplicate parentheses around
argument of unary operators when full_parent=true.
2012-10-20 13:52:44 +02:00
Alexandre Duret-Lutz
0fc3c6bcff Add support for printing LTL formulas using Wring's syntax.
* src/ltlvisit/tostring.hh, src/ltlvisit/tostring.cc
(to_wring_string): New option.
* src/bin/common_output.hh, src/bin/common_output.cc:
Add support for a --wring option.
* src/bin/ltlcheck.cc: Add %w and %W format specifiers.
2012-10-20 13:40:33 +02:00
Alexandre Duret-Lutz
bf765480b1 * src/tgba/tgbaexplicit.hh: Fix hash_map definition to please old g++. 2012-10-20 12:18:06 +02:00
Alexandre Duret-Lutz
b8ed85a30d bin: Adjust version display and help options.
In particular, this get rid of the ugly -? option that argp adds by
default, and we also remove -V so that we can use it for something
else later.

* src/bin/common_setup.cc, src/bin/common_setup.hh (misc_argp):
Provide support for --help/--version/--usage output, replacing argp's
default builting version.
* src/bin/genltl.cc, src/bin/ltl2tgba.cc, src/bin/ltl2tgta.cc,
src/bin/ltlcheck.cc, src/bin/ltlfilt.cc, src/bin/randltl.cc:
Call argp_parse() with ARGP_NO_HELP, and use misc_argp instead.
2012-10-19 22:58:38 +02:00
Alexandre Duret-Lutz
c6030df936 accconv: speed up acceptance_convertor::as_positive_product()
* src/misc/accconv.cc (as_positive_product): Use a small loop instead
of calling bdd_satone().
2012-10-19 20:50:35 +02:00
Alexandre Duret-Lutz
31fb3d9d15 tgbaexplicit: speed up merge_transitions()
* src/tgba/tgbaexplicit.hh (merge_transitions): Use a hash table
to merge compatible transitions.
* src/tgbatest/readsave.test: Add a test case.
2012-10-19 17:53:08 +02:00
Alexandre Duret-Lutz
0bdfd9c72c * src/bin/ltlcheck.cc: Cleanup temporary files on ^C. 2012-10-19 16:17:53 +02:00
Alexandre Duret-Lutz
e426c63550 lbttparse: allow acceptance sets that are not consecutive integers.
* src/tgbaalgos/lbtt.cc: Renumber acceptance sets as they are read.
* src/tgbatest/lbttparse.test: Add a test cases.
2012-10-19 15:56:42 +02:00
Alexandre Duret-Lutz
89b9cc5fd5 lbttparse: make sure we parse wring2lbtt's output
* src/tgbaalgos/lbtt.cc: Do not expect a new line after the number of
acceptance conditions.
* src/tgbatest/lbttparse.test: Add a test case.
2012-10-18 14:48:10 +02:00
Alexandre Duret-Lutz
676ab41f6f ltlparse: diagnose empty (...) block in lenient mode.
* src/ltlparse/ltlparse.yy (try_recursive_parse): Diagnose
empty strings.
* src/ltltest/lenient.test: Add tests.
2012-10-18 00:23:34 +02:00
Alexandre Duret-Lutz
ff0eada81d * NEWS: Mention lenient parsing. 2012-10-17 18:46:04 +02:00
Alexandre Duret-Lutz
86dac4aadf ltlparse: add a lenient parsing mode
Spin 6 supports formulas such as []<>(a < b) so that atomic properties
need not be specified using #define.  Of course we don't want to
implement all the syntax of Spin in our LTL parser because other tools
may have different syntaxes for their atomic propositions.  The
lenient mode tells the scanner to return any (...), {...}, or {...}!
block as a single token.  The parser will try to recursively parse
this block as a LTL/SERE formula, and if this fails, it will consider
the block to be an atomic proposition.  The drawback is that most
syntax errors will no be considered to be atomic propositions.  For
instance (a U b U) is a single atomic proposition in lenient mode, and
a syntax error in default mode.

* src/ltlparse/ltlparse.yy, src/ltlparse/ltlscan.ll,
src/ltlparse/parsedecl.hh, src/ltlparse/public.hh: Add a
lenient parsing mode.  Simplify the lexer using yy_scan_string.
* src/bin/common_finput.cc: Add a --lenient option.
* src/ltltest/lenient.test: New file.
* src/ltltest/Makefile.am: Add it.
* src/neverparse/neverclaimparse.yy: Parse the guards in lenient mode.
* src/tgbatest/neverclaimread.test: Adjust.
* src/ltlvisit/tostring.cc: When outputing a formula in Spin's syntax,
output (a < b) instead of "a < b".
* src/misc/escape.cc, src/misc/escape.hh (trim): New helper function.
2012-10-17 18:26:42 +02:00
Alexandre Duret-Lutz
d9ceb4adc4 bin: plug several memory leaks
* src/bin/ltl2tgba.cc, src/bin/ltl2tgta.cc: Destroy the translated
formulas.
* src/bin/ltlcheck.cc, src/bin/ltlfilt.cc: Free the unicity table on
exit.
2012-10-15 20:54:28 +02:00
Alexandre Duret-Lutz
9f1d369563 * src/bin/ltlcheck.cc: Add a --no-checks option. 2012-10-15 20:41:44 +02:00
Alexandre Duret-Lutz
2977635ae5 ltlcheck: do not check duplicate formulas
* src/bin/ltlcheck.cc: filter duplicate formulas, unless the
new --allow-dups option is used.
2012-10-15 18:21:38 +02:00
Alexandre Duret-Lutz
35fc975d1e * NEWS: mention ltlcheck 2012-10-15 17:48:01 +02:00
Alexandre Duret-Lutz
f03ba4b56f man page cosmetics
* src/bin/man/genltl.x, src/bin/man/ltlcheck.x, src/bin/man/ltlfilt.x,
src/bin/man/randltl.x: Use .BR in the SEE ALSO section.
2012-10-15 17:37:47 +02:00
Alexandre Duret-Lutz
b2a5d5aa62 ltlcheck: add options --json and --csv
* src/bin/ltlcheck.cc: Add option --json and --csv.
* src/bin/man/ltlcheck.x: Adjust examples.
* src/tgbatest/ltlcheck.test: Do not output any statistic.
* src/tgbatest/ltlcheck2.test: Output both JSON and CSV stats.
2012-10-15 17:31:43 +02:00
Alexandre Duret-Lutz
fc374c0790 * src/tgbatest/spotlbtt.test: Remove superfluous options. 2012-10-15 15:14:51 +02:00
Alexandre Duret-Lutz
2fe8f025e3 ltlcheck: add a "Sanity check..." message
* src/bin/ltlcheck.cc: Here.
2012-10-14 19:08:03 +02:00
Alexandre Duret-Lutz
7d6fc328ab Add new tests for LTL and PSL translation, based on ltlcheck.
* src/tgbatest/ltlcheck.test, src/tgbatest/ltlcheck2.test: New files.
* src/tgbatest/Makefile.am: Add them.
2012-10-14 19:06:59 +02:00
Alexandre Duret-Lutz
d1871d87dc * src/bin/ltlcheck.cc: Diagnose missing output format. 2012-10-14 18:29:34 +02:00