1. 25 Feb, 2012 1 commit
    • Alexandre Duret-Lutz's avatar
      Make all python code compatible with Python 2.x and Python 3.x. · 61127a3f
      Alexandre Duret-Lutz authored
      * wrap/python/buddy.i (__le__, __lt__, __eq__, __ne__, __ge__
      __gt__): New operators for bdd.
      * wrap/python/spot.i (__le__, __lt__, __eq__, __ne__, __ge__
      __gt__, __hash__): New operators for formula.
      (nl_cout, nl_cerr): New functions.
      * wrap/python/tests/bddnqueen.py,
      wrap/python/tests/interdep.py, wrap/python/tests/ltl2tgba.py,
      wrap/python/tests/ltlparse.py, wrap/python/tests/ltlsimple.py,
      wrap/python/tests/minato.py, wrap/python/tests/modgray.py: Adjust
      to the new print syntax by using sys.output.write() or nl_cout()
      * wrap/python/tests/optionmap.py: Remove all print calls.
      * wrap/python/ajax/spot.in: Massive adjustments in order to work
      with both Python 2 and 3.  In python 3, reopening stdout as
      unbuffered requires it to be open as binary, which in turns
      requires any string output to be encoded manually.  BaseHTTPServer
      and CGIHTTPServer have been merged into http.server, so we have
      to try two different import syntaxes.  execfile no longer exists,
      so it has to be emulated.
      This also fixes two bugs where the script would segfault on
      empty input, or when calling Tau03 on automata with less then
      one acceptance conditions.
  2. 15 Feb, 2012 1 commit
    • Alexandre Duret-Lutz's avatar
      Fix a race condition on the CGI script. · 62914059
      Alexandre Duret-Lutz authored
      * wrap/python/ajax/spot.in: Create all cache files in a temporary
      directory, and only rename this directory at the end.  This way if
      two processes are processing the same request, they won't attempt
      to populate the same directory (and only one of the first of two
      renames will succeed, but that is OK).
  3. 17 Jan, 2012 2 commits
  4. 18 Dec, 2011 1 commit
    • Alexandre Duret-Lutz's avatar
      Fix VPATH builds, now that hash.hh include _config.h · 28b7c085
      Alexandre Duret-Lutz authored
      * iface/dve2/Makefile.am, src/eltlparse/Makefile.am
      src/eltltest/Makefile.am, src/evtgba/Makefile.am,
      src/evtgbaalgos/Makefile.am, src/evtgbaparse/Makefile.am,
      src/evtgbatest/Makefile.am, src/kripke/Makefile.am,
      src/kripketest/Makefile.am, src/ltlast/Makefile.am,
      src/ltlparse/Makefile.am, src/ltltest/Makefile.am,
      src/ltlvisit/Makefile.am, src/misc/Makefile.am,
      src/neverparse/Makefile.am, src/saba/Makefile.am,
      src/sabaalgos/Makefile.am, src/sanity/Makefile.am,
      src/tgba/Makefile.am, src/tgbaalgos/Makefile.am,
      src/tgbaalgos/gtec/Makefile.am, src/tgbaparse/Makefile.am,
      src/tgbatest/Makefile.am, wrap/python/Makefile.am (AM_CPPFLAGS):
      Make sure $(top_builddir)/src is included.
  5. 01 Dec, 2011 1 commit
  6. 28 Nov, 2011 2 commits
  7. 26 Jun, 2011 1 commit
  8. 10 Jun, 2011 1 commit
  9. 09 Jun, 2011 1 commit
  10. 08 Jun, 2011 4 commits
    • Alexandre Duret-Lutz's avatar
      Implement cache pruning in the CGI script. · 3216494c
      Alexandre Duret-Lutz authored
      * wrap/python/ajax/spot.in (finish): Prune the cache once in a
      while.  We rely on hardlinks for garbage collecting the pictures
      and dot sources that may be shared by different requests.
    • Alexandre Duret-Lutz's avatar
      Cache dot sources in the CGI script. · 155ba42c
      Alexandre Duret-Lutz authored
      * wrap/python/ajax/spot.in (render_dot, render_dot_maybe)
      (render_automaton, render_formula): Cache the dot source, so that
      we do not have to regenerate two pictures from the same contents.
      * wrap/python/spot.i: Typo in the ostringstream declaration.
    • Alexandre Duret-Lutz's avatar
      Output a "Cache-Control:" header in the CGI script. · 0d2ac81a
      Alexandre Duret-Lutz authored
      * wrap/python/ajax/spot.in: Output a cache-control header, so that
      browsers do no even send two identical requests.
    • Alexandre Duret-Lutz's avatar
      Cache results of the spot.py CGI script. · b8f84411
      Alexandre Duret-Lutz authored
      * wrap/python/ajax/spot.in: Use the QUERY_STRING as a hash key to
      cache the result of the script.  Open stdout without buffering and
      redirect it to a file that we can dump later on cache hits.  Parts
      of this change are extracted from code from Pierre Parutto
      * AUTHORS: Add him.
  11. 03 Jun, 2011 1 commit
  12. 02 Jun, 2011 1 commit
    • Alexandre Duret-Lutz's avatar
      Update jQuery and jQuery-UI. · f3bae53e
      Alexandre Duret-Lutz authored
      * wrap/python/ajax/ltl2tgba.html: Adjust to use
      jQuery 1.6.1 and jQuery-UI 1.8.13.  Remove a useless check
      of $("#autoupdate").attr("checked") since this checkbox no longer
      * wrap/python/ajax/css/ui-lightness/jquery-ui-1.8.8.custom.css:
      Replace by ...
      * wrap/python/ajax/css/ui-lightness/jquery-ui-1.8.13.custom.css: This.
      * wrap/python/ajax/Makefile.am (EXTRA_DIST): Adjust.
  13. 09 Apr, 2011 1 commit
    • Alexandre Duret-Lutz's avatar
      Fix two spurious segfaults in test cases for the Python interface. · 9ad062b2
      Alexandre Duret-Lutz authored
      * wrap/python/tests/setxor.py, wrap/python/tests/bddnqueen.py:
      Clean all used bdd variables before calling bdd_done(), so that
      bdd_delref() is never called after bdd_done().  In NDEBUG builds,
      bdd_delref() does not check whether the BuDDy is running or not,
      and calling it after bdd_done() will crash.
  14. 29 Mar, 2011 1 commit
    • Alexandre Duret-Lutz's avatar
      Include <cstddef> in python modules to workaround Swig bug. · 35a01937
      Alexandre Duret-Lutz authored
      * wrap/python/spot.i, wrap/python/buddy.i: Include <cstddef>
      because Swig 2.0.2 uses ptrdiff_t and does not do the include
      itself.  In g++ most libstdc++ standard headers have been changed
      to no longer include <cstddef> as an implementation detail, so
      the difference shows.
  15. 05 Mar, 2011 1 commit
    • Alexandre Duret-Lutz's avatar
      Using double borders for acceptance states in SBAs. · e1ef47d9
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/dotty.hh (dotty_reachable): Take a new
      assume_sba argument.
      * src/tgbaalgos/dotty.cc (dotty_bfs): Take a new
      mark_accepting_states arguments.
      (dotty_bfs::process_state): Check if a state is accepting using
      the state_is_accepting() method for tgba_sba_proxies, or by
      looking at the first outgoing transition of the state.  Pass
      the result to the dectorator.
      (dotty_reachable): Adjust function.
      * src/tgbaalgos/dottydec.hh, src/tgbaalgos/dottydec.cc,
      src/tgbaalgos/rundotdec.hh, src/tgbaalgos/rundotdec.cc
      (state_decl): Add an "accepting" argument, and use it to
      decorate accepting states with a double border.
      * src/tgbatest/ltl2tgba.cc: Keep track of whether the output
      is an SBA or not, so that we can tell it to dotty().
      * wrap/python/ajax/spot.in: Likewise.
      * wrap/python/cgi-bin/ltl2tgba.in: Likewise.
  16. 04 Mar, 2011 1 commit
  17. 10 Feb, 2011 1 commit
  18. 06 Feb, 2011 1 commit
  19. 05 Feb, 2011 1 commit
  20. 04 Feb, 2011 1 commit
  21. 03 Feb, 2011 1 commit
  22. 27 Jan, 2011 1 commit
  23. 26 Jan, 2011 3 commits
  24. 19 Jan, 2011 1 commit
  25. 18 Jan, 2011 1 commit
    • Alexandre Duret-Lutz's avatar
      Preliminary implementation of an ajax-based ltl2tgba translator. · 34f49a86
      Alexandre Duret-Lutz authored
      * configure.ac: Output wrap/python/ajax/Makefile.
      * wrap/python/Makefile.am (SUBDIRS): Add ajax.
      * wrap/python/ajax/Makefile.am, wrap/python/ajax/README,
      wrap/python/ajax/ltl2tgba.html, wrap/python/ajax/spot.in: New files.
      * wrap/python/ajax/css/, wrap/python/ajax/js,
      wrap/python/ajax/logos: New directories.
      * README: Document wrap/python/ajax/.
  26. 17 Jan, 2011 1 commit
  27. 07 Jan, 2011 1 commit
    • Alexandre Duret-Lutz's avatar
      Fix usage of minimize_obligation in the CGI script. · 74f14567
      Alexandre Duret-Lutz authored
      * wrap/python/cgi-bin/ltl2tgba.py (reduce_wdba): Use
      minimize_obligation_new a pass the formula.
      * wrap/python/spot.i (minimize_obligation_new): New function, to
      cope with the strange specification of spot::minimize_obligation()
      not always creating a new automaton.
  28. 05 Jan, 2011 2 commits
    • Alexandre Duret-Lutz's avatar
      Cleanup the minimize.hh interface. · 8c972ad3
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/minimize.hh, src/tgbaalgos/minimize.cc
      (minimize): Split into ...
      (minimize_wdba, minimize_monitor): ... these two functions.
      * src/tgbatest/ltl2tgba.cc (main): Adjust the call to
      * wrap/python/cgi-bin/ltl2tgba.in: Adjust the calls to
      minimize_monitor and minimize_obligation.
      * wrap/python/spot.i: Declare minimize_monitor, minimize_wdba,
      * src/tgba/tgbaexplicit.hh (tgba_explicit_string)
      (tgba_explicit_formula, tgba_explicit_number): Add fake
      declarations so that SWIG can see they inherits from tgba.
    • Alexandre Duret-Lutz's avatar
      Make minimization of obligation properties and deterministic · 241ba112
      Alexandre Duret-Lutz authored
      monitor available in the CGI script.
      * wrap/python/spot.i: Declare the minimize() interface.
      * wrap/python/cgi-bin/ltl2tgba.in: Add reduce_dmonitor and
      reduce_wdba options.
  29. 26 Dec, 2010 1 commit
  30. 24 Dec, 2010 3 commits
    • Alexandre Duret-Lutz's avatar
      Define SWIG_TYPE_TABLE as suggested by the SWIG documentation. · f1d3e999
      Alexandre Duret-Lutz authored
      * wrap/python/Makefile.am: Add -DSWIG_TYPE_TABLE=spot.
    • Alexandre Duret-Lutz's avatar
      Use swig2.0 if available. · 8419cb6f
      Alexandre Duret-Lutz authored
      * configure.ac: Search for swig2.0 and swig.
      * wrap/python/Makefile.am: Use $(SWIG).
    • Alexandre Duret-Lutz's avatar
      Get rid of ltihooks.py. · 3d61b3a3
      Alexandre Duret-Lutz authored
      ltihooks.py apparently breaks the import mechanisms of Python 2.6,
      causes SWIG's runtime to fail to share a global type table, and
      yields various failures in our tests.
      * wrap/python/ltihooks.py: Delete.
      * wrap/python/Makefile.am (EXTRA_DIST): remove ltihooks.py.
      * wrap/python/tests/bddnqueen.py, wrap/python/tests/interdep.py,
      wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltlparse.py,
      wrap/python/tests/ltlsimple.py, wrap/python/tests/minato.py,
      wrap/python/tests/modgray.py, wrap/python/tests/optionmap.py,
      wrap/python/tests/setxor.py: Do not use ltihooks.
      * wrap/python/tests/run.in (pypath): Include the .libs/ directory
      in the search path so that Python can find the *.so libraries.