From 61be1e6730e95ae2c3e8b5c83252cfd999ec10a1 Mon Sep 17 00:00:00 2001
From: Erwan Jahier <jahier@imag.fr>
Date: Fri, 27 May 2016 16:06:34 +0200
Subject: [PATCH] lus2lic -lv4: fix a bug (reported by PR) where invalid v4
 idents where generated ('::' vs '__')

soc2c -2cw7: use mkff+fixffx+arm.looploc to fix extern lib calls.
---
 README.txt             |  9 ++++-----
 _oasis                 |  7 +++----
 src/evalConst.ml       |  8 ++++----
 src/l2lExpandArrays.ml |  4 ++--
 src/lic.ml             |  4 ++--
 src/licDump.ml         |  4 ++--
 src/licTab.ml          | 24 ++++++++++++------------
 src/lv6Id.ml           | 18 +++++++-----------
 src/lv6Id.mli          |  7 ++++---
 src/lv6version.ml      |  4 ++--
 src/soc2c.ml           | 23 ++++++++++++++++++-----
 src/socPredef.ml       |  4 ++--
 src/socUtils.ml        |  4 ++--
 src/sortActions.ml     |  4 ++--
 src/unifyType.ml       |  4 ++--
 test/lus2lic.sum       | 26 ++++++++++++++------------
 16 files changed, 82 insertions(+), 72 deletions(-)

diff --git a/README.txt b/README.txt
index 9601a141..50acdeb5 100644
--- a/README.txt
+++ b/README.txt
@@ -1,13 +1,12 @@
 (* OASIS_START *)
-(* DO NOT EDIT (digest: 7ab3176d34ae05ec7be56f340d54ead0) *)
+(* DO NOT EDIT (digest: 7018be8ddc148ce8fff24df3fef8d341) *)
 
 lustre-v6 - The Lustre V6 Verimag compiler
 ==========================================
 
-This package contains: - lus2lic: the (current) name of the compiler (and
-interpreter via -exec). - lustre-v6 ocaml lib: allows to call the Lustre v6
-interpreter
-  from rdbg (and ocaml as a side effect)
+This package contains: (1) lus2lic: the (current) name of the compiler (and
+interpreter via -exec). (2) the lustre-v6 ocaml lib: allows to call the
+Lustre v6 interpreter ocaml
 
 See the file [INSTALL.txt](INSTALL.txt) for building and installation
 instructions.
diff --git a/_oasis b/_oasis
index c7b4bb69..8d5e4650 100644
--- a/_oasis
+++ b/_oasis
@@ -1,11 +1,10 @@
 OASISFormat: 0.4
 Name:        lustre-v6
-Version:     1.648
+Version:     1.649
 Synopsis:    The Lustre V6 Verimag compiler
 Description: This package contains:
-             - lus2lic: the (current) name of the compiler (and interpreter via -exec).
-             - lustre-v6 ocaml lib: allows to call the Lustre v6 interpreter 
-               from rdbg (and ocaml as a side effect) 
+   (1) lus2lic: the (current) name of the compiler (and interpreter via -exec).
+   (2) the lustre-v6 ocaml lib: allows to call the Lustre v6 interpreter ocaml
 Authors:     Erwan Jahier and Pascal Raymond
 Maintainers: erwan.jahier@imag.fr
 License:     PROP
diff --git a/src/evalConst.ml b/src/evalConst.ml
index 7e6b08e1..af1d0f9b 100644
--- a/src/evalConst.ml
+++ b/src/evalConst.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 26/02/2015 (at 11:21) by Erwan Jahier> *)
+(* Time-stamp: <modified the 27/05/2016 (at 16:01) by Erwan Jahier> *)
 
 
 open Printf 
@@ -110,7 +110,7 @@ let make_struct_const (teff : Lic.type_) (id_opt : Lv6Id.idref option)
             else raise (Compile_error(
               lxm , 
               sprintf "\n*** type error in struct %s, %s instead of %s"
-                (Lv6Id.string_of_long2 tnm)
+                (Lv6Id.string_of_long tnm)
                 (Lic.string_of_type vt)
                 (Lic.string_of_type ft)  )) 
           with Not_found ->
@@ -427,10 +427,10 @@ and eval_array_index
         | [Int_const_eff i] 
         | [Abstract_const_eff(_,_, (Int_const_eff i), true)] -> int_of_string i 
         | [Abstract_const_eff(id,_,_,false)] ->
-          raise(EvalArray_error("The const " ^ (Lv6Id.string_of_long2 id) ^ 
+          raise(EvalArray_error("The const " ^ (Lv6Id.string_of_long id) ^ 
                                    " is abstract"))
         | [Extern_const_eff(id,_)]  ->
-          raise(EvalArray_error("The const " ^ (Lv6Id.string_of_long2 id) ^ 
+          raise(EvalArray_error("The const " ^ (Lv6Id.string_of_long id) ^ 
                                    " is extern"))
         | [x] -> raise(EvalArray_error(sprintf 
                                          "bad array index, int expected but get %s"
diff --git a/src/l2lExpandArrays.ml b/src/l2lExpandArrays.ml
index d82b7c0f..ee249e93 100644
--- a/src/l2lExpandArrays.ml
+++ b/src/l2lExpandArrays.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 14/01/2016 (at 10:40) by Erwan Jahier> *)
+(** Time-stamp: <modified the 27/05/2016 (at 16:01) by Erwan Jahier> *)
 
 (* Replace structures and arrays by as many variables as necessary.
    Since structures can be nested, it migth be a lot of new variables...
@@ -320,7 +320,7 @@ and (var_trees_of_val_exp :
               do_const acc lctx lxm const
             with _ ->  
               let msg = 
-                "\n*** during Array expansion: '"^ (Lv6Id.string_of_long2 idl)^
+                "\n*** during Array expansion: '"^ (Lv6Id.string_of_long idl)^
                   "': Unknown constant.\n*** Current constants are: "^
 		            (LicPrg.fold_consts
                      (fun k c acc -> acc^(Printf.sprintf "\n\t%s" (Lic.string_of_const c)))
diff --git a/src/lic.ml b/src/lic.ml
index a7a92a41..8f9a225f 100644
--- a/src/lic.ml
+++ b/src/lic.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 14/01/2016 (at 10:41) by Erwan Jahier> *)
+(* Time-stamp: <modified the 27/05/2016 (at 16:01) by Erwan Jahier> *)
 
 (** Define the Data Structure representing Compiled programs. By
     compiled we mean that constant are propagated, packages are
@@ -603,7 +603,7 @@ let (clock_of_left: left -> clock) =
     snd (var_info_of_left left).var_clock_eff
 
 
-let string_of_ident = Lv6Id.string_of_long2
+let string_of_ident = Lv6Id.string_of_long
 
 let rec string_of_type = function
   | Bool_type_eff -> "bool"
diff --git a/src/licDump.ml b/src/licDump.ml
index 8b148904..af22d41e 100644
--- a/src/licDump.ml
+++ b/src/licDump.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 23/06/2015 (at 17:03) by Erwan Jahier> *)
+(* Time-stamp: <modified the 27/05/2016 (at 16:01) by Erwan Jahier> *)
 
 open Lv6errors
 open Printf
@@ -57,7 +57,7 @@ let string_of_ident x =
  else
   if global_opt.no_prefix
    then Lv6Id.no_pack_string_of_long x
-  else Lv6Id.string_of_long2 x
+  else Lv6Id.string_of_long x
 
 
 
diff --git a/src/licTab.ml b/src/licTab.ml
index d19e4e1b..d2a22a01 100644
--- a/src/licTab.ml
+++ b/src/licTab.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 03/02/2016 (at 15:10) by Erwan Jahier> *)
+(* Time-stamp: <modified the 27/05/2016 (at 16:02) by Erwan Jahier> *)
 
 
 open Lxm
@@ -193,7 +193,7 @@ let x_check
         let x_def = match find_x x_pack_symbols xn lxm with
           | AstTabSymbol.Local x_def -> x_def
           | AstTabSymbol.Imported (lid,_) -> 
-            print_string ("*** " ^ (Lv6Id.string_of_long2 lid) ^ "???\n" ^ 
+            print_string ("*** " ^ (Lv6Id.string_of_long lid) ^ "???\n" ^ 
                              (Lxm.details lxm));
             assert false (* should not occur *)
         in
@@ -399,7 +399,7 @@ let rec type_check
     (lxm: Lxm.t)
     : Lic.type_ =
   Lv6Verbose.exe ~flag:dbg (fun () -> 
-    Printf.printf "#DBG: licTab.type_check '%s'\n" (Lv6Id.string_of_long2 key));
+    Printf.printf "#DBG: licTab.type_check '%s'\n" (Lv6Id.string_of_long key));
   x_check this.types AstTabSymbol.find_type type_check_do type_builtin lookup_type_eff 
     Lv6Id.pack_of_long Lv6Id.of_long this
     key lxm
@@ -411,7 +411,7 @@ and const_check
     (lxm: Lxm.t)
     : Lic.const =
   Lv6Verbose.exe ~flag:dbg (fun() -> Printf.printf 
-    "#DBG: licTab.const_check '%s'\n" (Lv6Id.string_of_long2 key));
+    "#DBG: licTab.const_check '%s'\n" (Lv6Id.string_of_long key));
   x_check this.consts AstTabSymbol.find_const const_check_do const_builtin
           lookup_const_eff 
     Lv6Id.pack_of_long Lv6Id.of_long this
@@ -424,7 +424,7 @@ and type_check_interface
     (lxm: Lxm.t)
     : Lic.type_ =
   Lv6Verbose.exe ~flag:dbg (fun() -> Printf.printf
-    "#DBG: licTab.type_check_interface '%s'\n" (Lv6Id.string_of_long2 key));
+    "#DBG: licTab.type_check_interface '%s'\n" (Lv6Id.string_of_long key));
   x_check_interface 
     this.prov_types AstTabSymbol.find_type type_check type_check_interface_do 
     type_builtin lookup_type_eff Lv6Id.pack_of_long Lv6Id.of_long this
@@ -437,7 +437,7 @@ and const_check_interface
     (lxm: Lxm.t)
     : Lic.const =
   Lv6Verbose.exe ~flag:dbg (fun () -> Printf.printf
-    "#DBG: licTab.const_check_interface '%s'\n" (Lv6Id.string_of_long2 key));
+    "#DBG: licTab.const_check_interface '%s'\n" (Lv6Id.string_of_long key));
   x_check_interface 
     this.prov_consts AstTabSymbol.find_const const_check const_check_interface_do
     const_builtin lookup_const_eff Lv6Id.pack_of_long Lv6Id.of_long this
@@ -720,7 +720,7 @@ and (node_check_interface_do: t -> Lic.node_key -> Lxm.t ->
         if t1 = t2 or t1 is abstract and and t2.
     *)
     let msg_prefix = 
-      ("provided node for " ^ (Lv6Id.string_of_long2 (fst nk)) ^ 
+      ("provided node for " ^ (Lv6Id.string_of_long (fst nk)) ^ 
           " is not compatible with its implementation: ")
     in
     let str_of_var = Lic.string_of_var_info in
@@ -1270,8 +1270,8 @@ and (node_check_interface_do: t -> Lic.node_key -> Lxm.t ->
       ) with
           Recursion_error (n, stack) -> 
             let msg = "Recursion loop detected in node " ^ 
-                        (Lv6Id.string_of_long2 (fst nk)) in
-            let msg = msg ^ "\n*** "^ (Lv6Id.string_of_long2 n) ^ " depends on itself\n " 
+                        (Lv6Id.string_of_long (fst nk)) in
+            let msg = msg ^ "\n*** "^ (Lv6Id.string_of_long n) ^ " depends on itself\n " 
               ^ (String.concat "\n*****" stack) in
             raise (Compile_error (lxm, msg))
 
@@ -1305,11 +1305,11 @@ let compile_all_item this label  x_check_interface string_of_x_key
 
     | AstTabSymbol.Imported(item_def,_) -> ()
 (*      Printf.printf "\t\t%s %s = %s (imported)\n" *)
-(*        label (string_of_x_key (to_key id)) (Lv6Id.string_of_long2 item_def) *)
+(*        label (string_of_x_key (to_key id)) (Lv6Id.string_of_long item_def) *)
    
 
 let compile_all_types pack_name this =
-  compile_all_item this "type" type_check_interface Lv6Id.string_of_long2 
+  compile_all_item this "type" type_check_interface Lv6Id.string_of_long 
     Lic.string_of_type (fun id -> Lv6Id.make_long pack_name id)
 
 let compile_all_constants pack_name this = 
@@ -1390,7 +1390,7 @@ let compile_all (this:t) : t =
     this
   with
       Recursion_error (n, stack) -> 
-        let msg = "Recursion loop detected in node " ^ (Lv6Id.string_of_long2 n) in
+        let msg = "Recursion loop detected in node " ^ (Lv6Id.string_of_long n) in
         let msg = msg ^ "\n*****" ^ (String.concat "\n*****" stack) in
         raise (Compile_error (Lxm.dummy "", msg))
 
diff --git a/src/lv6Id.ml b/src/lv6Id.ml
index 26c192c6..de3edeb7 100644
--- a/src/lv6Id.ml
+++ b/src/lv6Id.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 26/05/2014 (at 10:44) by Erwan Jahier> *)
+(* Time-stamp: <modified the 27/05/2016 (at 16:02) by Erwan Jahier> *)
 
 (* J'ai appele ca symbol (mais ca remplace le ident) :
 c'est juste une couche qui garantit l'unicite en memoire
@@ -69,24 +69,20 @@ let (string_of_long : long -> string) =
       if Lv6MainArgs.global_opt.Lv6MainArgs.ec || Lv6MainArgs.global_opt.Lv6MainArgs.lv4 
       then "__" else "::"
     in
-    match pn with
-      | "" -> id
-      | _ -> 
+    match pn,id with
+      | "",id -> id
+      | "Lustre","true" -> "true"
+      | "Lustre","false" -> "false"
+      | _,_ -> 
 (*         if Lv6MainArgs.global_opt.Lv6MainArgs.no_prefix then id else  *)
           Printf.sprintf "%s%s%s" pn sep id
 
-let (string_of_long2 : long -> string) =
-  function
-    | "Lustre","true" -> "true"
-    | "Lustre","false" -> "false"
-    | (pn, id) ->  pn ^"::"^ id
-
 let (no_pack_string_of_long : long -> string) =
   fun (pn, id) -> 
     id
 
 let (long_to_string : long -> string) = 
-  string_of_long2
+  string_of_long
 
 let (make_long : pack_name -> t -> long) =
   fun pn id -> (pn,id)
diff --git a/src/lv6Id.mli b/src/lv6Id.mli
index 2712b9fe..dcf43699 100644
--- a/src/lv6Id.mli
+++ b/src/lv6Id.mli
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 26/02/2015 (at 13:45) by Erwan Jahier> *)
+(* Time-stamp: <modified the 27/05/2016 (at 16:01) by Erwan Jahier> *)
 
 (**  *)
 
@@ -14,12 +14,13 @@ val pack_name_of_string : string -> pack_name
 val pack_name_to_string : pack_name -> string
 val pack_of_long : long -> pack_name
 
+(* both are the same*)
 val string_of_long : long -> string
-val string_of_long2 : long -> string
+val long_of_string : string -> long
+
 (** To ignore pack name (meaningful when generating ec code for exemple *)
 val no_pack_string_of_long : long -> string
 val long_to_string : long -> string
-val long_of_string : string -> long
 
 val make_long : pack_name -> t -> long
 
diff --git a/src/lv6version.ml b/src/lv6version.ml
index 29f93db1..dba38544 100644
--- a/src/lv6version.ml
+++ b/src/lv6version.ml
@@ -1,7 +1,7 @@
 (** Automatically generated from Makefile *) 
 let tool = "lus2lic"
 let branch = "master"
-let commit = "648"
-let sha_1 = "7a1821319f3451f3e7c4d3bfbe96dd3ba15fd8d5"
+let commit = "649"
+let sha_1 = "c803b44e75834ebd66d7bef1f4979f11be3f661c"
 let str = (branch ^ "." ^ commit ^ " (" ^ sha_1 ^ ")")
 let maintainer = "jahier@imag.fr"
diff --git a/src/soc2c.ml b/src/soc2c.ml
index 4fb82c27..3639e7d7 100644
--- a/src/soc2c.ml
+++ b/src/soc2c.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 18/03/2016 (at 10:41) by Erwan Jahier> *)
+(* Time-stamp: <modified the 13/05/2016 (at 16:11) by Erwan Jahier> *)
 
 
 (* let put (os: out_channel) (fmt:('a, unit, string, unit) format4) : 'a = *)
@@ -690,7 +690,7 @@ let (gen_loop_file4ogensim : Soc.t -> string -> out_channel -> Soc.tbl -> unit)
                               ");
   List.iteri define_define (inputs_io@ outputs_io);
   
-  putc ("\n/* int main(){\n" ^ gen_main_loop_body inputs outputs soc ctx);
+  putc ("\n int main(){\n" ^ gen_main_loop_body inputs outputs soc ctx);
 
 
   let to_rif_decl (n,t) = ("\\\""^n^"\\\":" ^(type_to_string t)) in
@@ -872,6 +872,11 @@ if [ $# -gt 0 ]
             ogensim=\"true\"
             xpdf=\"false\"
             ;;
+        \"both\")
+            otawa=\"true\"
+            ogensim=\"true\"
+            xpdf=\"false\"
+            ;;
     esac
 fi
 cfile="^cfile^ "
@@ -886,8 +891,16 @@ then
 # Let's compile the c files for otawa\n" ^
           gcc ^ " > \\\n\t$n_n.owcet.log 2>&1 &&\n\n"^
             "orange $cfile ${n_n}_step -o $n_n.ffx > $n_n.orange.log  2>&1 &&\n" ^
-            "# Let's  run otawa (owcet.arm)\n" ^
-            "owcet.arm $execfile $main_step -f $n_n.ffx  \\\n\t>"^
+
+"
+IDIR=`readlink -f fixffx`
+IDIR=`dirname \"$IDIR\"`
+ARM_LOOPLOC=\"$IDIR/arm.looploc\"
+
+mkff -x $execfile > $n_n.ff
+fixffx $ARM_LOOPLOC -i $n_n.ff >  $n_n.fixed.ffx
+# Let's  run otawa (owcet.arm)\n" ^
+            "owcet.arm $execfile $main_step  -f $n_n.fixed.ffx -f $n_n.ffx  \\\n\t>"^
               "$n_n.owcet.arm.log 2>&1 && \n"^
               "grep WCET $n_n.owcet.arm.log | cut -d \" \" -f 3 > "^
               "$n.wcet &&\n\n" ^ 
@@ -909,7 +922,7 @@ then
            "(lurettetop -l 1000 -go -ns2c -o ogensim.rif \\\n\t \
             -rp \"sut:socket:127.0.0.1:$freeport:\"  \\\n\t \
             -rp \"env:lutin:_${n}_env.lut:${n}_env\" || true)) &&\n\n"^
-             "getstat.r $n.cycles $WCET
+             "getstat.r $n.cycles $WCET > $n.stat
 fi
 if [ \"$xpdf\" = \"true\" ]
 then
diff --git a/src/socPredef.ml b/src/socPredef.ml
index ddd48c8c..26d6ccae 100644
--- a/src/socPredef.ml
+++ b/src/socPredef.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 18/03/2016 (at 10:14) by Erwan Jahier> *)
+(* Time-stamp: <modified the 27/05/2016 (at 16:02) by Erwan Jahier> *)
 
 (** Synchronous Object Code for Predefined operators. *)
 
@@ -193,7 +193,7 @@ let of_soc_key : Soc.key -> Soc.t =
                impl    = 
                  Gaol([], 
                       [Case((fst cv),[
-                        (Lv6Id.string_of_long2 cc, [Call([Var(mem)],
+                        (Lv6Id.string_of_long cc, [Call([Var(mem)],
                                                          Assign, [Var(vin)])])]);
                        Call([Var(vout)], Assign, [Var(mem)])]) 
              }; 
diff --git a/src/socUtils.ml b/src/socUtils.ml
index 91e6ba0c..a009800a 100644
--- a/src/socUtils.ml
+++ b/src/socUtils.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 18/06/2015 (at 15:08) by Erwan Jahier> *)
+(** Time-stamp: <modified the 27/05/2016 (at 16:02) by Erwan Jahier> *)
 
 
 open Soc
@@ -81,7 +81,7 @@ let string_of_soc_key_ff: (Soc.key -> Format.formatter -> unit) =
           (String.concat " -> " (List.map string_of_type_ref types)));
     (match si_opt with
        | Nomore -> ()
-       | Curr(cc) -> fprintf ff "%s" (Lv6Id.string_of_long2 cc)
+       | Curr(cc) -> fprintf ff "%s" (Lv6Id.string_of_long cc)
        | Slic(f,l,step) -> fprintf ff "[%d .. %d step %d]"  f l step
        | MemInit ve -> string_of_filter_ff ve ff
     )
diff --git a/src/sortActions.ml b/src/sortActions.ml
index e8ff65d0..95278cba 100644
--- a/src/sortActions.ml
+++ b/src/sortActions.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 03/02/2016 (at 15:09) by Erwan Jahier> *)
+(** Time-stamp: <modified the 27/05/2016 (at 16:02) by Erwan Jahier> *)
 
 (** topological sort of actions (that may optimize test openning) *)
 
@@ -34,7 +34,7 @@ let rec (gao_of_action: Action.t -> Soc.gao) =
       | Lic.BaseLic -> acc
       | Lic.ClockVar i -> acc (* should not occur? *)
       | Lic.On((value, cvar, _ctyp), outter_clock) ->
-        let cc = Lv6Id.string_of_long2 value in        
+        let cc = Lv6Id.string_of_long value in        
         let acc = Soc.Case (cvar, [cc, [acc]]) in
         unpack_clock acc outter_clock
     in 
diff --git a/src/unifyType.ml b/src/unifyType.ml
index ff9d2d79..5065c1d9 100644
--- a/src/unifyType.ml
+++ b/src/unifyType.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 14/01/2016 (at 10:51) by Erwan Jahier> *)
+(* Time-stamp: <modified the 27/05/2016 (at 16:02) by Erwan Jahier> *)
 
 (*
 12/07. Premier pas vers une méthode un peu plus standard :
@@ -269,7 +269,7 @@ let (profile_is_compatible: node_key -> Lxm.t -> Lic.type_ list * Lic.type_ list
       | Abstract_type_eff(name, _) -> (TypeVar Any)
       | t -> t
     in
-    let msg_prefix = ("provided node for " ^ (Lv6Id.string_of_long2 (fst nk)) ^ 
+    let msg_prefix = ("provided node for " ^ (Lv6Id.string_of_long (fst nk)) ^ 
                         " is not compatible with its implementation: ")
     in
     let apply_subst s t = try List.assoc t s with Not_found -> t in
diff --git a/test/lus2lic.sum b/test/lus2lic.sum
index 4b34c447..09a41cf3 100644
--- a/test/lus2lic.sum
+++ b/test/lus2lic.sum
@@ -1,5 +1,5 @@
 ==> lus2lic0.sum <==
-Test Run By jahier on Fri Mar 18 10:52:09 
+Test Run By jahier on Fri May 27 15:58:52 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic0 tests ===
@@ -64,7 +64,7 @@ XFAIL: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/lecte
 XFAIL: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/s.lus
 
 ==> lus2lic1.sum <==
-Test Run By jahier on Fri Mar 18 10:52:13 
+Test Run By jahier on Fri May 27 15:58:53 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic1 tests ===
@@ -396,7 +396,7 @@ PASS: gcc -o multipar.exec multipar_multipar.c multipar_multipar_loop.c
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c multipar.lus  {}
 
 ==> lus2lic2.sum <==
-Test Run By jahier on Fri Mar 18 10:52:11 
+Test Run By jahier on Fri May 27 15:59:08 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic2 tests ===
@@ -741,7 +741,7 @@ PASS: gcc -o zzz2.exec zzz2_zzz2.c zzz2_zzz2_loop.c
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c zzz2.lus  {}
 
 ==> lus2lic3.sum <==
-Test Run By jahier on Fri Mar 18 10:52:15 
+Test Run By jahier on Fri May 27 15:59:46 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic3 tests ===
@@ -1243,7 +1243,7 @@ PASS: ./myec2c {-o multipar.c multipar.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node multipar.lus {}
 
 ==> lus2lic4.sum <==
-Test Run By jahier on Fri Mar 18 10:52:09 
+Test Run By jahier on Fri May 27 15:59:59 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic4 tests ===
@@ -1764,12 +1764,14 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node zzz2.lus {}
 # of unexpected failures	4
 ===============================
 # Total number of failures: 23
-lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 0 seconds
-lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 21 seconds
-lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 42 seconds
-lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 15 seconds
-lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 44 seconds
+lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 1 seconds
+lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 15 seconds
+lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 38 seconds
+lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 13 seconds
+lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 40 seconds
 * Ref time: 
+0.02user 0.05system 1:46.74elapsed 0%CPU (0avgtext+0avgdata 5120maxresident)k
+32inputs+0outputs (0major+5584minor)pagefaults 0swaps
 * Quick time (-j 4):
-0.03user 0.02system 0:44.16elapsed 0%CPU (0avgtext+0avgdata 5228maxresident)k
-64inputs+0outputs (0major+5617minor)pagefaults 0swaps
+0.02user 0.03system 0:44.48elapsed 0%CPU (0avgtext+0avgdata 5260maxresident)k
+32inputs+0outputs (0major+5615minor)pagefaults 0swaps
-- 
GitLab