Commit 46e4408a authored by Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz
Browse files

gspn: remove the interface with GreatSPN

It hasn't been tested for several year, may not even compile, has
to be linked with source code that isn't even publicly available,
and its presence was the only reason to keep some inefficient
code in gtec.cc and friends.

* iface/gspn/: Delete this directory.
* iface/Makefile.am, configure.ac, README: Adjust.
* m4/gspnlib.m4: Delete.
* src/sanity/Makefile.am: Do not use LIBGSPN_CPPFLAGS.
parent 83ed4f8c
......@@ -61,16 +61,6 @@ should read the file INSTALL for generic instructions.
In addition to its usual options, ./configure will accept some
flags specific to Spot:
--with-gspn=DIR
Turns on GreatSPN support. DIR should designate the root of
GreatSPN source tree. (./configure will then run
DIR/SOURCES/contrib/version.sh to find the GreatSPN build tree.)
GreatSPN had to be modified in order to be used as a library
(thanks Soheib Baarir and Yann Thierry-Mieg for this work), and
presently these modifications are only available on the GreatSPN
CVS repository hosted by the Università di Torino.
--with-included-buddy
After you have installed Spot the first time, a modified version
of BuDDy will be installed. The next time you reconfigure Spot,
......@@ -201,8 +191,6 @@ wrap/ Wrappers for other languages.
ajax/ LTL-to-TGBA translator with web interface, using Ajax.
iface/ Interfaces to other libraries.
dve2/ Interface with DiVinE2.
gspn/ GreatSPN interface.
examples/ Supporting models used by the test cases.
Third party software
--------------------
......
......@@ -107,7 +107,6 @@ if ! "${stdpass-false}"; then
fi
AX_CHECK_BUDDY
AX_CHECK_GSPNLIB
AC_CHECK_HEADERS([sys/times.h])
AC_CHECK_FUNCS([times kill alarm])
......@@ -173,8 +172,6 @@ AC_CONFIG_FILES([
doc/org/init.el
iface/dve2/defs
iface/dve2/Makefile
iface/gspn/defs
iface/gspn/Makefile
iface/Makefile
lib/Makefile
src/bin/Makefile
......
## Copyright (C) 2008, 2011 Laboratoire de Recherche et Dveloppement
## -*- coding: utf-8 -*-
## Copyright (C) 2011, 2014 Laboratoire de Recherche et Développement
## de l'Epita (LRDE).
## Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
## dpartement Systmes Rpartis Coopratifs (SRC), Universit Pierre
## et Marie Curie.
##
## This file is part of Spot, a model checking library.
##
......@@ -20,7 +18,3 @@
## along with this program. If not, see <http://www.gnu.org/licenses/>.
SUBDIRS = dve2
if WITH_GSPN
SUBDIRS += gspn
endif
Makefile.in
Makefile
*.lo
*.o
*.la
.deps
.libs
defs
Makefile.in
Makefile
*.lo
*.o
*.la
.deps
.libs
defs
dottygspn-rg
dottygspn-srg
dottygspn-ssp
ltlgspn-rg
ltlgspn-srg
ltlgspn-ssp
testSubDir
## Copyright (C) 2008 Laboratoire de Recherche et Dveloppement
## de l'Epita (LRDE).
## Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
## dpartement Systmes Rpartis Coopratifs (SRC), Universit Pierre
## et Marie Curie.
##
## This file is part of Spot, a model checking library.
##
## Spot is free software; you can redistribute it and/or modify it
## under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 3 of the License, or
## (at your option) any later version.
##
## Spot is distributed in the hope that it will be useful, but WITHOUT
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
## License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
AM_CPPFLAGS = -I$(top_srcdir)/src $(BUDDY_CPPFLAGS) $(LIBGSPN_CPPFLAGS)
AM_CXXFLAGS = $(WARNING_CXXFLAGS)
gspndir = $(pkgincludedir)/iface/gspn
gspn_HEADERS = \
common.hh \
gspn.hh
lib_LTLIBRARIES = libspotgspn.la libspotgspnssp.la
libspotgspn_la_LIBADD = $(top_builddir)/src/libspot.la
libspotgspn_la_SOURCES = \
common.cc \
gspn.cc
noinst_PROGRAMS = \
dottygspn-rg \
dottygspn-srg \
ltlgspn-rg \
ltlgspn-srg
if WITH_GSPN_SSP
gspn_HEADERS += ssp.hh
noinst_PROGRAMS += \
dottygspn-ssp \
ltlgspn-ssp
libspotgspnssp_la_LIBADD = $(top_builddir)/src/libspot.la
libspotgspnssp_la_CPPFLAGS = -DESYMBOLIC $(AM_CPPFLAGS)
libspotgspnssp_la_SOURCES = \
common.cc \
ssp.cc
endif
dottygspn_rg_SOURCES = dottygspn.cc
dottygspn_rg_LDADD = libspotgspn.la $(LIBGSPNRG_LDFLAGS)
dottygspn_srg_SOURCES = dottygspn.cc
dottygspn_srg_LDADD = libspotgspn.la $(LIBGSPNSRG_LDFLAGS)
dottygspn_ssp_SOURCES = dottyssp.cc
dottygspn_ssp_LDADD = libspotgspnssp.la $(LIBGSPNSSP_LDFLAGS)
ltlgspn_rg_SOURCES = ltlgspn.cc
ltlgspn_rg_LDADD = libspotgspn.la $(LIBGSPNRG_LDFLAGS)
ltlgspn_srg_SOURCES = ltlgspn.cc
ltlgspn_srg_LDADD = libspotgspn.la $(LIBGSPNSRG_LDFLAGS)
ltlgspn_ssp_SOURCES = ltlgspn.cc
ltlgspn_ssp_LDADD = libspotgspnssp.la $(LIBGSPNSSP_LDFLAGS)
ltlgspn_ssp_CPPFLAGS = -DSSP=1 $(AM_CPPFLAGS)
EXTRA_DIST = \
examples/DCSwave/DCSWave.def \
examples/DCSwave/DCSWave.net \
examples/DCSwave/DCSWave.tobs \
examples/simple/simple.def \
examples/simple/simple.net \
examples/simple/simple.tobs \
examples/udcs/udcs.def \
examples/udcs/udcs.net \
examples/udcs/udcs.tobs \
$(TESTS)
TESTS = \
simple.test \
dcswave.test \
dcswaveltl.test \
dcswavefm.test \
dcswaveeltl.test \
udcsltl.test \
udcseltl.test \
udcsfm.test \
udcsefm.test
# Each test case depends on defs.
check_SCRIPTS = defs
distclean-local:
-rm -rf testSubDir
// Copyright (C) 2003, 2004, 2006 Laboratoire d'Informatique de Paris 6 (LIP6),
// dpartement Systmes Rpartis Coopratifs (SRC), Universit Pierre
// et Marie Curie.
//
// This file is part of Spot, a model checking library.
//
// Spot is free software; you can redistribute it and/or modify it
// under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or
// (at your option) any later version.
//
// Spot is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
// License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "common.hh"
#include <ostream>
namespace spot
{
std::ostream&
operator<<(std::ostream& os, const gspn_exception& e)
{
os << e.get_where() << " exited with " << e.get_err();
return os;
}
}
// Copyright (C) 2003, 2004, 2006 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie.
//
// This file is part of Spot, a model checking library.
//
// Spot is free software; you can redistribute it and/or modify it
// under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or
// (at your option) any later version.
//
// Spot is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
// License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef SPOT_IFACE_GSPN_COMMON_HH
# define SPOT_IFACE_GSPN_COMMON_HH
# include <string>
# include <iosfwd>
// Do not include gspnlib.h here, or it will polute the user's
// namespace with internal C symbols.
namespace spot
{
/// An exception used to forward GSPN errors.
class gspn_exception
{
public:
gspn_exception(const std::string& where, int err)
: err_(err), where_(where)
{
}
int
get_err() const
{
return err_;
}
std::string
get_where() const
{
return where_;
}
private:
int err_;
std::string where_;
};
std::ostream& operator<<(std::ostream& os, const gspn_exception& e);
}
#endif // SPOT_IFACE_GSPN_COMMON_HH
#! /bin/sh
# Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
# dpartement Systmes Rpartis Coopratifs (SRC), Universit Pierre
# et Marie Curie.
#
# This file is part of Spot, a model checking library.
#
# Spot is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# Spot is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
# License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
. ./defs || exit 1
set -e
cp -R $srcdir/examples/DCSwave .
chmod +w DCSwave
# Run this if you want, it builds approximately 3,600,000 states.
# ../dottygspn-rg DCSwave/DCSWave ATTiIDLj SCi SCj >output
# Only 5,579 states.
../dottygspn-srg DCSwave/DCSWave ATTiIDLj SCi SCj >output
#! /bin/sh
# Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
# dpartement Systmes Rpartis Coopratifs (SRC), Universit Pierre
# et Marie Curie.
#
# This file is part of Spot, a model checking library.
#
# Spot is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# Spot is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
# License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
. ./defs || exit 1
set -e
cp -R $srcdir/examples/DCSwave .
chmod +w DCSwave
# G(ATTiIDLj => F(!SCj U SCi)) is true
../ltlgspn-srg -c -l -e DCSwave/DCSWave \
'!G(ATTiIDLj => F(!SCj U SCi))' ATTiIDLj SCi SCj >output
../ltlgspn-srg -c -f -e2 DCSwave/DCSWave \
'!G(ATTiIDLj => F(!SCj U SCi))' ATTiIDLj SCi SCj >output
# G(F(!SCj U SCi)) is false
../ltlgspn-srg -c -l -e DCSwave/DCSWave \
'!G(F(!SCj U SCi))' ATTiIDLj SCi SCj >output && exit 1
../ltlgspn-srg -c -f -e2 DCSwave/DCSWave \
'!G(F(!SCj U SCi))' ATTiIDLj SCi SCj >output && exit 1
:
#! /bin/sh
# Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
# dpartement Systmes Rpartis Coopratifs (SRC), Universit Pierre
# et Marie Curie.
#
# This file is part of Spot, a model checking library.
#
# Spot is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# Spot is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
# License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
. ./defs || exit 1
set -e
cp -R $srcdir/examples/DCSwave .
chmod +w DCSwave
# G(ATTiIDLj => F(!SCj U SCi)) is true
../ltlgspn-srg -c -f -m DCSwave/DCSWave \
'!G(ATTiIDLj => F(!SCj U SCi))' ATTiIDLj SCi SCj >output
# G(F(!SCj U SCi)) is false
../ltlgspn-srg -c -f -m DCSwave/DCSWave \
'!G(F(!SCj U SCi))' ATTiIDLj SCi SCj >output && exit 1
:
#! /bin/sh
# Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
# dpartement Systmes Rpartis Coopratifs (SRC), Universit Pierre
# et Marie Curie.
#
# This file is part of Spot, a model checking library.
#
# Spot is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# Spot is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
# License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
. ./defs || exit 1
set -e
cp -R $srcdir/examples/DCSwave .
chmod +w DCSwave
# G(ATTiIDLj => F(!SCj U SCi)) is true
../ltlgspn-srg -c -l -m DCSwave/DCSWave \
'!G(ATTiIDLj => F(!SCj U SCi))' ATTiIDLj SCi SCj >output
# G(F(!SCj U SCi)) is false
../ltlgspn-srg -c -l -m DCSwave/DCSWave \
'!G(F(!SCj U SCi))' ATTiIDLj SCi SCj >output && exit 1
:
# -*- shell-script -*-
# Ensure we are running from the right directory.
test -f ./defs || {
echo "defs: not found in current directory" 1>&2
exit 1
}
# If srcdir is not set, then we are not running from `make check'.
if test -z "$srcdir"; then
# compute $srcdir.
srcdir=`echo "$0" | sed -e 's,/[^\\/]*$,,'`
test $srcdir = $0 && srcdir=.
fi
# Always use an absolute srcdir. Otherwise symlinks made in subdirs
# of the test dir just won't work.
case "$srcdir" in
[\\/]* | ?:[\\/]*)
;;
*)
srcdir=`CDPATH=: && cd "$srcdir" && pwd`
;;
esac
# Ensure $srcdir is set correctly.
test -f $srcdir/defs.in || {
echo "$srcdir/defs.in not found, check \$srcdir" 1>&2
exit 1
}
# User can set VERBOSE to see all output.
test -z "$VERBOSE" && exec >/dev/null 2>&1
DOT='@DOT@'
# Create a test subdirectory.
chmod -R a+rwx testSubDir > /dev/null 2>&1
rm -rf testSubDir > /dev/null 2>&1
mkdir testSubDir
cd testSubDir
echo "== Running test $0"
# Turn on shell traces when VERBOSE=x.
if test "x$VERBOSE" = xx; then
set -x
else
:
fi
// Copyright (C) 2003, 2004, 2006 Laboratoire d'Informatique de Paris 6 (LIP6),
// dpartement Systmes Rpartis Coopratifs (SRC), Universit Pierre
// et Marie Curie.
//
// This file is part of Spot, a model checking library.
//
// Spot is free software; you can redistribute it and/or modify it
// under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or
// (at your option) any later version.
//
// Spot is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
// License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "gspn.hh"
#include "tgbaalgos/dotty.hh"
int
main(int argc, char **argv)
try
{
spot::ltl::declarative_environment env;
if (argc <= 2)
{
std::cerr << "usage: " << argv[0] << " model props..." << std::endl;
exit(1);
}
while (argc > 2)
{
env.declare(argv[argc - 1]);
--argc;
}
spot::bdd_dict* dict = new spot::bdd_dict();
spot::gspn_interface gspn(2, argv, dict, env);
spot::tgba* a = gspn.automaton();
spot::dotty_reachable(std::cout, a);
delete a;
delete dict;
}
catch (spot::gspn_exception e)
{
std::cerr << e << std::endl;
throw;
}
// Copyright (C) 2003, 2004, 2006 Laboratoire d'Informatique de Paris 6 (LIP6),
// dpartement Systmes Rpartis Coopratifs (SRC), Universit Pierre
// et Marie Curie.
//
// This file is part of Spot, a model checking library.
//
// Spot is free software; you can redistribute it and/or modify it
// under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or
// (at your option) any later version.
//
// Spot is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
// License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "ssp.hh"
#include "tgbaalgos/dotty.hh"
#include "tgba/tgbaexplicit.hh"
#include "tgbaparse/public.hh"
int
main(int argc, char **argv)
try
{
spot::ltl::declarative_environment env;
if (argc <= 3)
{
std::cerr << "usage: " << argv[0] << " model automata props..."
<< std::endl;
exit(1);
}
while (argc > 3)
env.declare(argv[--argc]);
spot::bdd_dict* dict = new spot::bdd_dict();
spot::gspn_ssp_interface gspn(2, argv, dict, env);
spot::tgba_parse_error_list pel1;
spot::tgba_explicit* control = spot::tgba_parse(argv[--argc], pel1,
dict, env);
if (spot::format_tgba_parse_errors(std::cerr, argv[argc], pel1))
return 2;
spot::tgba* a = gspn.automaton(control);
spot::dotty_reachable(std::cout, a);
delete a;
delete control;
delete dict;
}
catch (spot::gspn_exception e)
{
std::cerr << e << std::endl;
throw;
}
|256
%
|
(proc c 1.0 1.0 (@c
u proc_0,proc_1,proc_2
))
(proc_0 c 1.0 1.0 (@c
proc{1-1}
))
(proc_1 c 1.0 1.0 (@c
proc{2-2}
))
(proc_2 c 1.0 1.0 (@c
proc{3-10}
))
(M_Idle m 1.0 1.0 (@m
<S proc_0> + <S proc_1> + <S proc_2>
))
(F5 f 1.0 1.0 (@f
<p>
))
(F6 f 1.0 1.0 (@f
<p>
))
(F7 f 1.0 1.0 (@f
<p>
))
(F8 f 1.0 1.0 (@f
<p>