* bench/ltl2tgba/README: More instructions.

* bench/Makefile.am (SUBDIRS): Add ltl2tgba.
* README: Mention bench/ltl2tgba.
This commit is contained in:
Alexandre Duret-Lutz 2005-04-19 09:04:22 +00:00
parent a7cf769a24
commit 7ef117e3dc
4 changed files with 84 additions and 10 deletions

View file

@ -1,3 +1,9 @@
2005-04-19 Alexandre Duret-Lutz <adl@src.lip6.fr>
* bench/ltl2tgba/README: More instructions.
* bench/Makefile.am (SUBDIRS): Add ltl2tgba.
* README: Mention bench/ltl2tgba.
2005-04-15 Alexandre Duret-Lutz <adl@src.lip6.fr> 2005-04-15 Alexandre Duret-Lutz <adl@src.lip6.fr>
* bench/ltl2tgba/Makefile.am, bench/ltl2tgba/README, * bench/ltl2tgba/Makefile.am, bench/ltl2tgba/README,

3
README
View file

@ -110,7 +110,8 @@ doc/ Documentation for libspot.
spot.latex/ Sources for the PDF manual. (Not distributed, can be rebuilt.) spot.latex/ Sources for the PDF manual. (Not distributed, can be rebuilt.)
spotref.pdf PDF reference manual. spotref.pdf PDF reference manual.
bench/ Benchmarks... bench/ Benchmarks...
emptchk/ ... for emptiness-check algorithms. emptchk/ ... for emptiness-check algorithms,
ltl2tgba/ ... for LTL-to-Büchi translation algorithms.
wrap/ Wrappers for other languages. wrap/ Wrappers for other languages.
python/ Python bindings for Spot and BuDDy python/ Python bindings for Spot and BuDDy
tests/ Tests for these bindings tests/ Tests for these bindings

View file

@ -19,4 +19,4 @@
## Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ## Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
## 02111-1307, USA. ## 02111-1307, USA.
SUBDIRS = emptchk SUBDIRS = emptchk ltl2tgba

View file

@ -21,7 +21,7 @@ They are all based on lbtt.
Each script generates 3 files: Each script generates 3 files:
xxxx.cfg: the configuration file for lbtt xxxx.cfg: the configuration file for lbtt
xxxx.log: the log of lbtt's execution (also output when the script runs) xxxx.log: the log of lbtt's execution (also output when the script runs)
xxxx.txt: the sumary of the test (also output at the end of the script) xxxx.txt: the summary of the test (also output at the end of the script)
* ltl2baw.in * ltl2baw.in
* ltl2baw.pl * ltl2baw.pl
@ -52,6 +52,72 @@ benchmark, and the script in this directory should omit the tools
that are not available. that are not available.
=====================
Running the scripts
=====================
1) Install all the third-party translators that you want to check.
They must all be in $PATH and work from there.
Two difficulties comes from Modella and wring2lbtt:
* Modella 1.5.7 produces automata that are not readable by lbtt 1.1.2.
You have to fix the former as follows:
--- modella1.5.7/modella_automa.c 2004-08-30 17:19:47.000000000 +0200
+++ modella1.5.7.fixed/modella_automa.c 2005-04-14 15:07:46.632785000 +0200
@@ -618,6 +618,7 @@ void print_LBA(LBA* b,FILE* output){
if(b->R[j]->source==i){
fprintf(output,"%d ",b->R[j]->dest);
print_form_prefix(b->R[j]->label,output);
+ fputc('\n',output);
}
fprintf(output,"-1 ");
* The automata produced by Wring are translated to the syntax
understood by lbtt using `wring2lbtt' (by the same author of
Modella). wring2lbtt suffers from the same "lbtt syntax"
problem described above, you have to fix this too before it
can be used.
Also wring2lbtt requires a Wring directory in the directory
where it is run; that makes it harder to use as a normal tool
from $PATH. I use the following wrapper in my $PATH to work
around this.
#!/bin/sh
cd ~/src/wring2lbtt && ./wring2lbtt "$@"
This is OK because the filenames supplied by lbtt are absolute.
2) ./configure Spot, and build it.
During the configure process you should see lines such as
checking for lbt... lbt
checking for ltl2ba... ltl2ba
checking for modella... modella
checking for script4lbtt.py... script4lbtt.py
checking for spin... spin
checking for wring2lbtt... wring2lbtt
If some tool is not found, the corresponding tests will be disabled.
You can also use variables such as LBT, LTL2BA, MODELLA, LTL2NBA,
SPIN, and WRING2LBTT to specify the location of any of these scripts
if it is not in $PATH. For instance
./configure LTL2NBA=/home/adl/src/ltlnba/script4lbtt.py
3) Run `make' to build Spot.
4) cd into bench/ltl2tgba/ and execute any of
./small
./big
or ./known
5) Wait...
======================= =======================
Reading the summaries Reading the summaries
======================= =======================
@ -79,13 +145,14 @@ The second line display 7 values:
Notes: Notes:
* Small translation times are not accurate because most of the translators * Small translation times are not accurate because most of the
are run through scripts that translate their input from and their ouput to translators are run through scripts that translate their input
the format understood by lbtt. For fast translators, most of the time from and their output to the format understood by lbtt. For fast
is spent through these wrappers. (For instance Spot's ltl2tgba is translators, most of the time is spent through these wrappers.
run through lbtt-translate, and depending on how Spot has been configured (For instance Spot's ltl2tgba is run through lbtt-translate, and
w.r.t. to dynamic libraries, ltl2tgba itself is often a shell script that depending on how Spot has been configured w.r.t. to dynamic
run the real binary with the locally built libraries.) libraries, ltl2tgba itself is often a shell script that run the
real binary with the locally built libraries.)
* Some tools will appear to have translated fewer automata than the * Some tools will appear to have translated fewer automata than the
others. This normally indicates bugs in the translator. In that others. This normally indicates bugs in the translator. In that