1. 17 Mar, 2010 19 commits
    • Erwan Jahier's avatar
      lurette 0.123 Tue, 18 Feb 2003 09:49:47 +0100 by jahier · a13cc8e1
      Erwan Jahier authored
      Parent-Version:      0.122
      Version-Log:
      
      source/rnumsolver.mli:
      source/rnumsolver.ml:
      source/store.mli:
      source/store.ml:
         Rename rnumsolver into store.
      
      source/solver.ml:
      source/parse_env.ml:
         Do not explicitely handle dis-equalities but transform it using
         not and = instead. The rational for this change is to avoid code duplication
         (which was buggy !!!), but also to allow handle dis-equalities with
         the optimized algorithm I had for eqalities (for free) !
      
      Project-Description: Lurette
      a13cc8e1
    • Erwan Jahier's avatar
      lurette 0.122 Mon, 17 Feb 2003 14:50:50 +0100 by jahier · 78f40b65
      Erwan Jahier authored
      Parent-Version:      0.121
      Version-Log:
      
      When delayed constraints are remaining at bdd leaves, we were
      printing a message saying that one shoud use a polyhedron solver
      based instead.  Now, I really call such a polyhedron solver in order
      to solve those constraints.
      
      This means that I use to different solvers to handle interval and
      polyhedron of dimension > 1.
      
      It also means that the satisfiability of constraints over polyhedra
      is only checked at bdd leaves, which, in some circumstances, migth be
      inefficient. The point is that, if we chose to check the formula
      satisfiability during the bdd traversal, we take the risk that a very
      polyhedron is created whereas it was not necessary (because of
      forthcoming equalities). And creating polyhedron with big (>15)
      dimension simply runs forever, which is really bad.
      
      nb : drawing in poyhedron not yet plugged.
      
      source/polyhedron.ml:
      source/polyhedron.mli: (new files)
          misc functions over polyhedra. The rational for creating that file
          is that rnumsolver is already much too big (and should be splitted
          some more btw).
      
      source/solver.ml:
         One of the main change is that now, draw_in_bdd returns 2 stores.
         One is Range based, the other one is polyhedron-based.
      
      source/rnumsolver.mli:
      source/rnumsolver.ml:
         Add the function switch_to_polyhedron_representation which
         handle delayed constraint if necessary. It is meant to be called
         at bdd leaves.
      
      source/solver.ml:
      source/rnumsolver.ml:
         Also do not use split_store anymore but add_constraint. This allows
         a much more elegant and efficient implementation of draw_in_bdd and
         draw_in_bdd_eq (Now the store is buid when and only when a new branch
         should be tried because of backtracking). It is also more efficient.
      
      source/constraint.mli
      source/constraint.ml
      source/ne.mli
      source/ne.ml
         Implement get_vars that retreive the variables occuring in a contraint
         or an expression.
      
      Project-Description: Lurette
      78f40b65
    • Erwan Jahier's avatar
      lurette 0.121 Tue, 11 Feb 2003 11:20:37 +0100 by jahier · 34cdff0c
      Erwan Jahier authored
      Parent-Version:      0.120
      Version-Log:
      
      source/pnumsolver.ml:
      source/pnumsolver.mli: [new files]
         Implements a numeric solver based on Polka.
         (not plugged yet).
      
      source/rnumsolver.ml:
         Reimplement split_store so that it uses 2 calls of add_constraint
         instead of doing the work twice inside split_store (in order to avoid code
         duplication).
      
         Also, whenever delayed constraints becomes of dimension 1, when a
      add_constraint
         binds a value, add them to the store.
      
         Enhance error msgs whenever int and float are mixed in the same lucky
         expressions.
      
      source/rnumsolver.ml:
      source/ne.ml:
         rename Ne.resolve_triangular_system into get_subst_from_solved_system
         and move it into rnumsolver. The rational is that is was not
         really solving any triangular system: the system ougth to be already solved.
      
      source/parce_env.ml:
         Set the max_float to max_int, otherwise, the conversion into polka rational
         fails...
      
      Project-Description: Lurette
      34cdff0c
    • Erwan Jahier's avatar
      lurette 0.117 Mon, 18 Nov 2002 14:26:30 +0100 by jahier · fa2dfd3a
      Erwan Jahier authored
      Parent-Version:      0.116
      Version-Log:
      
      Various minor fixes in the documentation
      
      + Use a version of ocaml-3.06 that has been configured with -no-curses,
      which make things sligthly slower, but that avoid the need to find
      the curses lib...
      
      source/ne.ml:
      source/*.ml:
         Ne.find now returns an option value instead of raising a Not_found
         exp, which was not trap in some circumstances...
      
      source/ne.ml:
         Also, fix a couple of bugs where the code was supposing (falsely)
         that the constant (empty string) was always in the Map.
      
      Project-Description: Lurette
      fa2dfd3a
    • Erwan Jahier's avatar
      lurette 0.116 Wed, 13 Nov 2002 13:56:29 +0100 by jahier · aef52d9c
      Erwan Jahier authored
      Parent-Version:      0.115
      Version-Log:
      
      source/solver.ml:
         Give a better error message when users do not initialize pre vars.
      
      source/parse_env.ml:
      source/formula.ml:
      source/prevar.ml/mli: (new files)
         Put here everything that handles the internal representation of pre var
      names.
      
         Pretty print internal pre var names.
      
      Project-Description: Lurette
      aef52d9c
    • Erwan Jahier's avatar
      lurette 0.106 Fri, 25 Oct 2002 09:36:48 +0200 by jahier · 75100e28
      Erwan Jahier authored
      Parent-Version:      0.105
      Version-Log:
      
      source/lurettetop.ml:
         Add a --prefix <string> option that is added before the call
         to lurette (usefull, eg, for timing purpuses).
      
      source/lurettetop.ml:
      source/lurette.ml:
      source/command_line.ml:
      ihm/xlurette/*
        Add a ---show-step options that let one control whether or not
        the step number is printed.
      
      Project-Description: Lurette
      75100e28
    • Erwan Jahier's avatar
      lurette 0.104 Fri, 18 Oct 2002 16:23:42 +0200 by jahier · 15c3bf1d
      Erwan Jahier authored
      Parent-Version:      0.103
      Version-Log:
      
      source/lurettetop.ml:
      source/util.ml:
         use explicit file name so that, e.g., show_luc, is always able to find
         the file it is supposed to show.
      
         Allow users to put extension or not for the sut or oracle files,
         being at the prompt or at the invocation.
      
         cp lurette.ml and lurette.mli in the temp dir and compile it there
         to avoid that everyone is writing on the source dir which
         prevent the next user to use lurette...
      
      Makefile.common.in:
         INCDIRS Ocamlmakeke file var is not supposed to contains path to .h C files
         to include but .mli ocml ones !!!
      
      Project-Description: Lurette
      15c3bf1d
    • Erwan Jahier's avatar
      lurette 0.103 Fri, 11 Oct 2002 17:50:55 +0200 by jahier · 70fca1e8
      Erwan Jahier authored
      Parent-Version:      0.102
      Version-Log:
      
      Add autoconf aupport.
      
      Project-Description: Lurette
      70fca1e8
    • Erwan Jahier's avatar
      lurette 0.102 Mon, 07 Oct 2002 17:53:39 +0200 by jahier · 9f892d0a
      Erwan Jahier authored
      Parent-Version:      0.101
      Version-Log:
      
      Add cuddaux and mlcuddidl to the project.
      
      Also clean-up Makefiles etc in order to make the installation
      process as automatic as possible.
      
      Project-Description: Lurette
      9f892d0a
    • Erwan Jahier's avatar
      lurette 0.96 Mon, 30 Sep 2002 16:58:31 +0200 by jahier · 42c10bc1
      Erwan Jahier authored
      Parent-Version:      0.95
      Version-Log:
      
      source/ne.ml,mli:
      source/value.ml,mli:
         (new files) put everything that is related to normal expressions
         and values in thoses 2 new modules.
      
      source/ne.ml,mli:
      source/gne.ml,mli:
         Make the normal expressions and the guarded normal expression abstract.
      
      source/solver.ml:
         also fix a bug in the previous change (forgot to try make test ...)
      
      Project-Description: Lurette
      42c10bc1
    • Erwan Jahier's avatar
      lurette 0.94 Fri, 27 Sep 2002 13:20:05 +0200 by jahier · f8219704
      Erwan Jahier authored
      Parent-Version:      0.93
      Version-Log:
      
      Prepare things for the next change (which will try to handle equalities
      smartly).
      
      source/solver.ml:
      source/rnumsolver.ml:
         atomic_formula do not need both < and > (ditto for <= and >=).
         Indeed, I just need to take the opposite, and everything is fine.
         One advantage is that there are less cases to handle. But the key
         advantage is that it make the representation of constraint normal,
         which is important at least when I will try to detect equalities.
      
         Also add a subst list and constraint list fields to the store
         that will ebe used in the forthcoming change. They will resp.
         be used for removeing a dimension when an equality is encountered
         and to delay constraint with more than one variable.
      
      source/constraint.ml,mli: (new files)
         Move there from formula.ml everything that is related to the internal
         representation of constraints.
      
         Also change the name of atomic_formula to linear_constraint, which is
         more informative.
      
      Project-Description: Lurette
      f8219704
    • Erwan Jahier's avatar
      lurette 0.84 Wed, 11 Sep 2002 10:19:52 +0200 by jahier · 86a22707
      Erwan Jahier authored
      Parent-Version:      0.83
      Version-Log:         empty
      Project-Description: Lurette
      86a22707
    • Erwan Jahier's avatar
      lurette 0.75 Wed, 28 Aug 2002 11:13:06 +0200 by jahier · e84a1e8e
      Erwan Jahier authored
      Parent-Version:      0.74
      Version-Log:
      
      makefile.lurette:
      bin/makefile.lurette_lib:
          put all files that do not depend on lurette_stubs into a lib.
      
      source/lurettetop.ml:
          Add a few new options (show, step, ...)
      
      Project-Description: Lurette
      e84a1e8e
    • Erwan Jahier's avatar
      lurette 0.74 Fri, 02 Aug 2002 16:15:33 +0200 by jahier · 105a7f85
      Erwan Jahier authored
      Parent-Version:      0.73
      Version-Log:
      
      source/lurettetop.ml: [new file]
         A top level loop for using lurette.
      
      also remame all .env files using .ima instead of .env as extension.
      
      Project-Description: Lurette
      105a7f85
    • Erwan Jahier's avatar
      lurette 0.73 Mon, 29 Jul 2002 13:49:35 +0200 by jahier · 3764e8b8
      Erwan Jahier authored
      Parent-Version:      0.72
      Version-Log:
      
      gen_stubs.ml:
      sim2chro.ml:
         Do not sort varialble lexicographically but according to
         sut order.
      
      gen_stubs.ml:
         When converting subst list to tuple, do not put fake values
         if the list is empty, but raise a failure (assert false).
      
         Do not parse idl output to guess the conversion between ml
         and C type but hard code it instead. The rational is that
         I was manually calling camlidl here which was confusing
         make sometimes.
      
      make_lurette:
         exit properly before running lurette whenever something bad
         happen during the make.
      
      Project-Description: Lurette
      3764e8b8
    • Erwan Jahier's avatar
      lurette 0.69 Fri, 19 Jul 2002 10:19:59 +0200 by jahier · 135fe2d5
      Erwan Jahier authored
      Parent-Version:      0.68
      Version-Log:
      
      wtree.ml,mli:   (deleted)
      automa.ml,mli:  (new files)
      control.ml,mli: (new files)
      
         Replace the [wtree] module by an [automata] module, that basically
         does the same job, but in a different way. Namely, it no more uses
         the [wtree] DS to use [graph]s instead.  Indeed, the product of
         wtrees introduces some problems, in particular to ensure its
         correctness wrt to the automata run concurrently. Now, everything a
         dead-simple wrt product: we simply perform a quasi-classical automata
         product (well, at least, much closer from a classical product, cf
         paper).
      
         The way loop counters are handled has also changed. Now, counters are
         handled via expressions of a simple arithmetic language that
         basically lets one initialise a variable to an exact or a random
         value (uniform or normal draw) and decrement it. Arcs are now
         labelled by a formula plus 2 expressions of that mini-language (no
         more weigth nor cpt_init stuff). The 1st expression is evaluated
         during the draw, basically performs any operations on counters, and
         returns a positive int that is used as the formula weigth. The second
         expression (a kind of post-condition) is evaluated if its arc is the
         one that has been elected to perform the step.
      
      At several locations long lines (< 80) are reindented.
      
      parse_env.ml:
         In the ima format, IfThenElseExpr becomes IfThenElseNum.
         Also, parse list more cleanly.
      
      graph.ml,mli:
          Add a function that test whether a transition is in the graph.
      
          Do not sort list of transitions anymore (what was the point?).
          Also do not sort nodes in any way.
      
      show_env_env.ml,mli:
         Abstract away nodes and arcs data types (so that I can display
         Automata graphs). rename generate_env_graph into ima_to_dot.
      
      lurette.ml:
      ima_exe.ml:
         Fix a bug where bbd table were filled by asserted non regression expr.
      
      lurette.ml:
         Fix a bug where incorrect data was sent to sim2chro (ie, the output of the
         previous step instead of the ones of the current step.
      
      env_state.ml:
      solver.ml:
      gne.ml:
         Fix a performance bug where I was storing formula indexes even if
         they were depending on inputs or pre, which is stupid as they generally
         won't be used again. In order to fix that, I introduced  new
         atomic_formula <-> indexes table to stote the ones that do not depend
         on inputs apart. It was also necassery to propogate the <<depend on pre>>
         flag inside Gne.gn_expr (which i renamed Gne.t BTW).
      
      Project-Description: Lurette
      135fe2d5
    • Erwan Jahier's avatar
      lurette 0.61 Fri, 03 May 2002 12:08:34 +0200 by jahier · 6b362e07
      Erwan Jahier authored
      Parent-Version:      0.60
      Version-Log:
      
      Add support for handling loops. This is based on the use of dynamic
      weigths. The idea is to compute the dynamic weigths before the trees
      are constructed.
      
      Add a --show-aut option for ima_exe.
      
      Also, Add the command lise args hashed to the end of the name of the dot file
      that is used to visualize the ima file.
      
      Project-Description: Lurette
      6b362e07
    • Erwan Jahier's avatar
      lurette 0.60 Mon, 29 Apr 2002 10:16:48 +0200 by jahier · b425173e
      Erwan Jahier authored
      Parent-Version:      0.59
      Version-Log:
      
      Add an make release rule to package a lurette.tgz ready to distribute.
      
      Create a bin dir where all the biniries (except lurette) will live.
      
      Create a show_ima executable that lets one (Yvan actually) display
      .env (or .ima) files off-line.
      
      Move read_env_state from env.ml to env_state.ml.
      
      Add support for lutin loops in the parser (not yet handled tough).
      
      In gen_stubs.ml, try to automatically call lustre whenever no C poc
      file exists for the invoked program.
      
      Project-Description: Lurette
      b425173e
    • Erwan Jahier's avatar
      lurette 0.58 Fri, 19 Apr 2002 11:15:07 +0200 by jahier · 03ffa20e
      Erwan Jahier authored
      Parent-Version:      0.57
      Version-Log:
      
      Clean up Makefiles for lurette and ima_exe.
      
      Make sure that gen_stubs does not recompile the fake oracle
      (always_true.lus) if it is not necessary.
      
      Project-Description: Lurette
      03ffa20e