1. 17 Mar, 2010 40 commits
    • Erwan Jahier's avatar
      lurette 1.13 Fri, 12 Dec 2003 14:21:26 +0100 by jahier · 21390374
      Erwan Jahier authored
      Parent-Version:      1.12
      Version-Log:
      
      aesthetic changes in mli files so that
      the automatically generated doc looks ok.
      
      Project-Description: Lurette
      21390374
    • Erwan Jahier's avatar
      lurette 1.12 Tue, 09 Dec 2003 15:44:28 +0100 by jahier · c3ab83b6
      Erwan Jahier authored
      Parent-Version:      1.11
      Version-Log:
      
      Various fixes in the C scade parsing.
      
      Project-Description: Lurette
      c3ab83b6
    • Erwan Jahier's avatar
      lurette 1.11 Wed, 26 Nov 2003 08:52:30 +0100 by jahier · b3c5c602
      Erwan Jahier authored
      Parent-Version:      1.10
      Version-Log:
      
      No more side effects are done via the Env_state module.
      
      Project-Description: Lurette
      b3c5c602
    • Erwan Jahier's avatar
      lurette 1.10 Thu, 20 Nov 2003 10:09:54 +0100 by jahier · 540ee1f9
      Erwan Jahier authored
      Parent-Version:      1.9
      Version-Log:
      
      removing of Env_state module -- part 1
      
      Now env_step and env_try are fully functionnal (no side-effects).
      
      Project-Description: Lurette
      540ee1f9
    • Erwan Jahier's avatar
      lurette 1.9 Tue, 18 Nov 2003 11:17:12 +0100 by jahier · 67c17ef7
      Erwan Jahier authored
      Parent-Version:      1.8
      Version-Log:
      
      A lot (too much...) of changes, mainly renaming files, and types, and
      functions,
      change the interface, move from one module to another, etc.
      
      Bref, a lot of cleanning.
      
      Project-Description: Lurette
      67c17ef7
    • Erwan Jahier's avatar
      lurette 1.8 Wed, 22 Oct 2003 18:30:52 +0200 by jahier · a3e8a67b
      Erwan Jahier authored
      Parent-Version:      1.7
      Version-Log:
      
      Implement a new drawing policy in polyhedron.
      
      The idea is to base the base (which is not so expensive), and to draw
      in othogonal hypercube that is as small as possible until a point in
      the polyhedron is found.  However, it may happens in high dimension (>4)
      that the volume of the cube is much bigger. In that case, after a few tries,
      i call the old (unfair) method.
      
      polyDram.ml/mli:
         new module containing all the thing related to the drawing inside
         a convex polyhedron.
      
         Give up the idea of random walk (not clear what should be the default
         step and length in big dimension).
      
      Project-Description: Lurette
      a3e8a67b
    • Erwan Jahier's avatar
      lurette 1.7 Fri, 10 Oct 2003 14:01:43 +0200 by jahier · 79b18f3b
      Erwan Jahier authored
      Parent-Version:      1.6
      Version-Log:
      
      source/fair_bddd.ml: [new]
      source/fair_bddd.mli: [new]
         The same as bddd, but taking polyhedron volume into account.
      
      source/bddd.ml:
         It is useless to store both bdd and not bdd, because it is just
         so easy to recompute the sol nb of not bdd (by switchinf the
         pair of sol numbers!).
      
      source/lurettetop.ml:
      source/lurette.ml:
      source/luc_exe.ml:
         add a --compute-poly-volume option that makes lurette use
         fair_bddd instead of bddd.
      
      Project-Description: Lurette
      79b18f3b
    • Erwan Jahier's avatar
      lurette 1.6 Thu, 25 Sep 2003 17:49:07 +0200 by jahier · 7189e37a
      Erwan Jahier authored
      Parent-Version:      1.5
      Version-Log:
      
      source/solver.ml:
      source/bddd.ml:
      source/env_state.ml:
         Deal with the solution number table global var at the bddd module level,
         not at the env_state level. The rationale is that it makes it possible
         to have a abstract snt type that can be easily change after.
      
      Project-Description: Lurette
      7189e37a
    • Erwan Jahier's avatar
      lurette 1.5 Wed, 24 Sep 2003 16:54:55 +0200 by jahier · fcdb446e
      Erwan Jahier authored
      Parent-Version:      1.4
      Version-Log:
      
      Split up solver.ml into 3: solver.ml, formula_to_bdd.ml, and bddd.ml.
      
      Project-Description: Lurette
      fcdb446e
    • Erwan Jahier's avatar
      lurette 1.4 Wed, 24 Sep 2003 15:48:02 +0200 by jahier · 5bf375a5
      Erwan Jahier authored
      Parent-Version:      1.3
      Version-Log:
      
      source/store.ml:
      source/solver.ml:
         use map instead as hashtbl for the range base store.
         It is much less error-prone (evil side effect!),
         leads to clearer code (no need to copy the store, which was particularly
         bad when done outside that module...), and is as efficient.
      
      Project-Description: Lurette
      5bf375a5
    • Erwan Jahier's avatar
      lurette 1.3 Tue, 23 Sep 2003 16:56:51 +0200 by jahier · d66521bd
      Erwan Jahier authored
      Parent-Version:      1.2
      Version-Log:
      
      source/store.ml:
      source/store.ml:
      source/solver.ml:
         Add a numeric thickness at the numeric level.
      
      Project-Description: Lurette
      d66521bd
    • Erwan Jahier's avatar
      lurette 1.2 Wed, 17 Sep 2003 10:09:24 +0200 by jahier · 36ab3ebb
      Erwan Jahier authored
      Parent-Version:      1.1
      Version-Log:
      
      share/
         Do not use the lucky_init.sh to set up env var anymore but wrap executables
         by scripts that set them.
      
      test/
         Add more test cases.
      
      source/lurettetop.ml:
         lauch gnuplot via an xterm to turn around a buggy behavior of gnuplot
         (this fix is far from ideal however, because the xterm window have to
         be killed manually, which is boring).
      
      Project-Description: Lurette
      36ab3ebb
    • Erwan Jahier's avatar
      lurette 1.1 Mon, 08 Sep 2003 16:02:09 +0200 by jahier · 4aed6dc3
      Erwan Jahier authored
      Parent-Version:      0.143
      Version-Log:
      
      Major change in the lucky syntax.
      
      Also add structured types (in lucky only, for the time being).
      
      Project-Description: Lurette
      4aed6dc3
    • Erwan Jahier's avatar
      lurette 0.143 Thu, 26 Jun 2003 16:50:35 +0200 by jahier · 2b40538c
      Erwan Jahier authored
      Parent-Version:      0.142
      Version-Log:
      
      share/*.sh.in:
         use set instead of export for sh scripts (export is a bashism
         that does not work for sun).
      
      Project-Description: Lurette
      2b40538c
    • Erwan Jahier's avatar
      lurette 0.142 Thu, 26 Jun 2003 11:17:53 +0200 by jahier · 8d11bd37
      Erwan Jahier authored
      Parent-Version:      0.141
      Version-Log:
      
      source/show_luc.ml:
      source/show_env.ml:
        Add a command line option to set the max nb of char before
        truncate formula.
      
      Project-Description: Lurette
      8d11bd37
    • Erwan Jahier's avatar
      lurette 0.141 Thu, 26 Jun 2003 10:38:20 +0200 by jahier · ed63acb4
      Erwan Jahier authored
      Parent-Version:      0.140
      Version-Log:
      
      source/lurette.ml
      source/luc_exe.ml
      source/env_state.ml:
         Infer that environments share controllable vars instead of asking it to
      users.
      
         Also allow any string to be a valid node name.
      
         Also fix a bug where, when several env were provided, the
      Env_state.file_name
         was not returning the rigth file name. Actually it was not really a bug
      since
         it could not be triggered before this change ... It just happen to work
         correctly by chance.
      
      Project-Description: Lurette
      ed63acb4
    • Erwan Jahier's avatar
      lurette 0.140 Mon, 23 Jun 2003 15:19:23 +0200 by jahier · 45dee352
      Erwan Jahier authored
      Parent-Version:      0.139
      Version-Log:
      
      ihm/xlurette/xlurette_main.ml:
         Change the current dir when the sut changes so that the current dir is the
         dir of the sut.
      
      source/lurettetop.ml:
         Add a change_dir command.
      
         Make user_dir and tmp_lurette global vars.
      
      share/configure.in:
         create .bat and sh scripts take set env vars and run tools
         (xlurette and lurettetop) so that sourcing lucky_init.cs is
         no longer necessary.
      
      Project-Description: Lurette
      45dee352
    • Erwan Jahier's avatar
      lurette 0.139 Wed, 18 Jun 2003 10:59:43 +0200 by jahier · 445b2ff0
      Erwan Jahier authored
      Parent-Version:      0.138
      Version-Log:
      
      Make it work under cygwin.
      
      Add the possibility of setting extra env var to link external libs or c files.
      
      Project-Description: Lurette
      445b2ff0
    • Erwan Jahier's avatar
      lurette 0.138 Fri, 13 Jun 2003 09:05:17 +0200 by jahier · 30692c60
      Erwan Jahier authored
      Parent-Version:      0.137
      Version-Log:
      
      AND NOW IT WORKS WITH SCADE !!!
      (no array neither struct though)
      
      source/gen_stubs.ml:
      source/gen_stubs_common.ml [new file]:
      source/gen_stubs_common.mli [new file]:
      source/parse_c_scade.ml [new file]:
      source/parse_c_scade.mli [new file]:
      source/*.ml:
          Add a scade port to lurette.
      
      Project-Description: Lurette
      30692c60
    • Erwan Jahier's avatar
      lurette 0.137 Tue, 03 Jun 2003 15:32:29 +0200 by jahier · 5a9bb52c
      Erwan Jahier authored
      Parent-Version:      0.136
      Version-Log:
      
      source/gen_stubs:
         Fix a bug where the var name ok was clashing with user vars
         in the generated always true oracle. now i use the name
         weird_name_to_avoid_clash__ok
      
      source/lurettetop.ml:
         Make sure that the .lus files is less recent than the .c file
         before running.
      
      source/lurettetop.ml:
      source/gen_stubs.ml:
      ihm/xlurette/*.ml:
         Add support for future handling of the scade compiler.
         Currently, returns a msg saying it that the scade port is not implemented.
      
      Project-Description: Lurette
      5a9bb52c
    • Erwan Jahier's avatar
      lurette 0.136 Mon, 19 May 2003 11:40:43 +0200 by jahier · fe6d609c
      Erwan Jahier authored
      Parent-Version:      0.135
      Version-Log:
      
      source/parse_env.ml:
      source/formula.ml:
      source/formula.mli:
      source/env_state.ml:
      source/env_state.mli:
      source/automata.ml:
         Change the format of pragma to stick with how they are defined
         in the DC ref man.
      
         Also take into account programs that were added by yvan that
         let one know which control point in the source lutin program
         each lucky node correspond to.
      
      source/lurette.ml:
         Display a better error msg when the sut and env vars do not match.
      
      source/sim2chro.ml:
         Variables were not display in the same order as in their declaration
         (bug introduced in the previous change).
      
      source/lurettetop.ml:
         The clean command does not remove everything in the tmp dir but only
         the generated files.
      
      ihm/xlurette/xlurette_*.ml:
         The naming of rif files was not working properly.
      
         Add a clean-up button.
      
      user-rules:
      <various other makefiles>:
         Abstract away a few hard-code env var so that its works on cygwin
      
      Project-Description: Lurette
      fe6d609c
    • Erwan Jahier's avatar
      lurette 0.135 Tue, 06 May 2003 15:51:08 +0200 by jahier · 124c55f1
      Erwan Jahier authored
      Parent-Version:      0.134
      Version-Log:
      
      Implement a check_assertion rule that checks every programs assertions.
      
      source/*.ml:
         Consistently display the help msg on stderr if something bad happened,
         and on stdout if --help is provided at the command line.
      
      source/lurette.ml:
      source/sim2chro.ml:
         Fix a bug (found by Nicolas Dervaux) where the sut output var were
         not in the same order than in their declaration.
      
         Also, interchange input by output in the produced rif file, since
         it is more sensible this way from the tester point of view.
      
      Project-Description: Lurette
      124c55f1
    • Erwan Jahier's avatar
      lurette 0.134 Tue, 22 Apr 2003 17:18:57 +0200 by jahier · 4bc90dac
      Erwan Jahier authored
      Parent-Version:      0.133
      Version-Log:
      
      Various changes related to the packaging of lurette.
      
      Project-Description: Lurette
      4bc90dac
    • Erwan Jahier's avatar
      lurette 0.133 Thu, 17 Apr 2003 13:22:44 +0200 by jahier · dbc00f74
      Erwan Jahier authored
      Parent-Version:      0.132
      Version-Log:
      
      source/gen_stubs.ml:
      source/ocaml2C.idl:
         use double instead of floats at the C level.
      
      Project-Description: Lurette
      dbc00f74
    • Erwan Jahier's avatar
      lurette 0.132 Tue, 15 Apr 2003 17:38:13 +0200 by jahier · 557de1e9
      Erwan Jahier authored
      Parent-Version:      0.131
      Version-Log:
      
      Fix 3 bugs discovered by Pascal.
      
      one was due to a confusion with variable starting with _pre
      during formula_to_string.
      
      another one was in store.ml: i was not reinjecting the solutions
      when retriving values from store.substl
      
      a third one was due to the fact that I was not applying substitution
      rigth-to-left whereas I should.
      
      source/luc_exe.ml:
         Add 2 options --help and --step-number that let one set a bound
         on the number of steps to perform.
      
      source/env.ml:
      source/parse_env.ml:
         Provide a mean to give default values to pre variables.
      
      ihm/xlurette/xlurette_glade_main.ml
      ihm/xlurette/xlurette.glade:
        Add Combo boxes to browse lustre file nodes.
      
      source/
      Add the possibility to give default vales to pre variables.
      
      Project-Description: Lurette
      557de1e9
    • Erwan Jahier's avatar
      lurette 0.131 Thu, 10 Apr 2003 10:03:51 +0200 by jahier · c6d9a1c3
      Erwan Jahier authored
      Parent-Version:      0.130
      Version-Log:
      
      Remove the need of the ocaml compilers to be able to use lurette.
      The idea is to link the final executable withh the C compiler instead
      of using ocamlopt.
      
      source/lurette.ml:
      source/gen_stubs.ml:
        The stubs files that are generated are ow completely different.
        The process is much more simple BTW. Now, idl files are no more
        generated dynamically. The only files that are generated are C files
        that interfaces the sut and the oracle with lurette.
      
      /source/lurettetop.ml:
         Add the USER_TESTING_DIR env variable.
      
      Project-Description: Lurette
      c6d9a1c3
    • Erwan Jahier's avatar
      lurette 0.130 Fri, 07 Mar 2003 10:37:48 +0100 by jahier · b18b39ec
      Erwan Jahier authored
      Parent-Version:      0.129
      Version-Log:         empty
      Project-Description: Lurette
      b18b39ec
    • Erwan Jahier's avatar
      lurette 0.129 Tue, 04 Mar 2003 10:01:27 +0100 by jahier · 53770edf
      Erwan Jahier authored
      Parent-Version:      0.128
      Version-Log:
      
      source/parse_env.ml:
         Enhance parsing error messages.
      
      source/util.ml:
      source/lurettetop.ml:
         check for LURETTE_PATH only in lurettetop because it is
         the only one that really needs it. Also moves show_luc, gen_stubs,
         and co there for the same reason.
      
      Project-Description: Lurette
      53770edf
    • Erwan Jahier's avatar
      lurette 0.128 Mon, 03 Mar 2003 10:01:09 +0100 by jahier · 8d595778
      Erwan Jahier authored
      Parent-Version:      0.127
      Version-Log:
      
      source/parse_env.ml:
      source/env_state.ml:
      source/env_state.mli:
         Add support for transient /recurrent nodes (not plugged yet).
      
      source/parse_env.ml:
      source/solver.ml:
      source/formula.ml
      source/formula.mli:
      test/*.luc:
        Add the possibity to define formula and num expr aliases
        (a request from Bertrand).
      
      test/losange.luc: [new file]
      test/losange-3d.luc: [new file]
      test/test_losange.lus: [new file]
      user-rules:
         Add the losange in the non-regression test
      
      source/luc_exe.ml:
      source/command_line_luc_exe.ml:
         Add an option that lets one see local vars in lucky output.
      
      Project-Description: Lurette
      8d595778
    • Erwan Jahier's avatar
      lurette 0.127 Mon, 24 Feb 2003 09:14:09 +0100 by jahier · 09d218f2
      Erwan Jahier authored
      Parent-Version:      0.126
      Version-Log:
      
      source/command_line_luc_exe.ml:
      source/command_line_luc_exe.mli:
      source/luc_exe.ml:
      source/store.ml:
      source/lurette.ml:
      source/lurettetop.ml:
         Put back the verteces draw. It was not such a great idea to remove
         after all...
      
         Also change verteces into vertices (oops...).
      
      Project-Description: Lurette
      09d218f2
    • Erwan Jahier's avatar
      lurette 0.126 Fri, 21 Feb 2003 18:49:20 +0100 by jahier · 5a165497
      Erwan Jahier authored
      Parent-Version:      0.125
      Version-Log:
      
      source/command_line_luc_exe.ml:
      source/command_line_luc_exe.mli:
      source/command_line.ml:
      source/command_line.mli:
      source/luc_exe.ml:
      source/lurette.ml:
      source/lurettetop.ml:
         Add the possibility to set the precision from lucky and lurette command
      lines.
      
         Remove the draw-vertices stuff.
      
      source/command_line_luc_exe.ml:
      source/command_line_luc_exe.mli:
      source/luc_exe.ml:
         Also add the --edges and the inside options for lucky.
      
      source/parse_env.ml:
        Allow to forget empty fields in the automata format.
      
      source/store.ml:
         Plug the new drawing heuristic
      
      Project-Description: Lurette
      5a165497
    • Erwan Jahier's avatar
      lurette 0.125 Fri, 21 Feb 2003 16:30:11 +0100 by jahier · 27272998
      Erwan Jahier authored
      Parent-Version:      0.124
      Version-Log:
      
      source/parse_env.ml:
         Make most fields of the automata syntax optional so that
         people are not obliged to refer to empty list of, eg,
         formula.
      
         Also add a field formula that let one defines global formula.
         This field is currently unplugged (ie, it parses, but the information
         contained in that fied in ignored).
      
      Project-Description: Lurette
      27272998
    • Erwan Jahier's avatar
      lurette 0.124 Fri, 21 Feb 2003 14:29:21 +0100 by jahier · 3ea22e95
      Erwan Jahier authored
      Parent-Version:      0.123
      Version-Log:
      
      Implement the polyhedron drawing primitives.
      
      source/util.ml.in:
         Change my_string_of_float so that it truncates floats 4 digits after the
      dot.
         The rational is that, for testing, we do not care the extra precision and
         too much precision may kill Polka. This precison ougth to be a parameter
         though.
      
      source/solver.ml:
      source/polyhedron.ml:
      source/store.ml:
          Implement the polyhedron drawing primitives.
      
      source/store.ml:
         Apply the substitutions in store.subtsl to the cstr to add.
      
      Project-Description: Lurette
      3ea22e95
    • 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.120 Thu, 19 Dec 2002 11:15:29 +0100 by jahier · d6a175bd
      Erwan Jahier authored
      Parent-Version:      0.119
      Version-Log:
      
      source/solver.ml:
      source/rnumsolver.ml:
         replace split_store_eq by add_eq_to_store as split_store_eq
         was simply calling split store and appendind its result,
         it is simplier to just call slipt_store from solver.ml ...
      
      Project-Description: Lurette
      d6a175bd
    • Erwan Jahier's avatar
      lurette 0.119 Thu, 19 Dec 2002 10:29:35 +0100 by jahier · 566a6b90
      Erwan Jahier authored
      Parent-Version:      0.118
      Version-Log:
      
      user-rules:
          Add the name of the host in the timing result files.
      
          Also runs the timing tests on ecrins.
      
      Project-Description: Lurette
      566a6b90
    • Erwan Jahier's avatar
      lurette 0.118 Wed, 18 Dec 2002 16:40:23 +0100 by jahier · 3b134c21
      Erwan Jahier authored
      Parent-Version:      0.117
      Version-Log:
      
      source/command_line_luc_exe.ml:
         Various minor fixes in printed messages.
      
      remark. The increasing of minor page faults is due to the fact that
      ossau kernel has been upgraded ...
      
      Project-Description: Lurette
      3b134c21
    • 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