From a082a93bb53f138b106f8a704cf0ccabfb3ca94d Mon Sep 17 00:00:00 2001
From: Erwan Jahier <jahier@imag.fr>
Date: Fri, 11 Jul 2014 14:15:54 +0200
Subject: [PATCH] soc2c: do not generate empty _ext.c/h.

---
 release-lv6/Makefile           |  11 +-
 src/soc2cExtern.ml             |  29 ++-
 src/soc2cIdent.ml              |   4 +-
 test/lus2lic.sum               | 418 +++++++++++++++++----------------
 test/lus2lic.tests/non-reg.exp |   4 +
 test/lus2lic.time              |   2 -
 test/site.exp                  |   1 +
 todo.org                       |  79 ++++++-
 8 files changed, 317 insertions(+), 231 deletions(-)

diff --git a/release-lv6/Makefile b/release-lv6/Makefile
index 69ee488c..943f19db 100644
--- a/release-lv6/Makefile
+++ b/release-lv6/Makefile
@@ -59,6 +59,7 @@ test_files:
 	cp -rf $(LUS2LICDIR)/test/myec2c $(RELNAME)/test/
 	cp -rf $(shell which lurettetop) $(RELNAME)/test/
 	cp -rf $(LUS2LICDIR)/utils/test_lus2lic_no_node $(RELNAME)/utils
+	rm -f $(RELNAME)/test/*/*.lus~
 	rm -f $(RELNAME)/test/*/normal.lus
 	rm -f $(RELNAME)/test/*/*/normal.lus
 	rm -f $(RELNAME)/test/*/ELMU.lus
@@ -89,11 +90,13 @@ www:  $(RELNAME).tgz
 	cp $(LUS2LICDIR)/lv6-ref-man/lv6-ref-man.pdf  $(WWW_DIR)/doc/
 
 
+LAB_INSTALL_DIR=/usr/local/tools/lustre/v6
+LAB_INSTALL_DIR=/import/linux/x86_64/tools/lustre/v6
 verimag: 
-	cp $(RELNAME).tgz /usr/local/tools/lustre-v6
-	cd /usr/local/tools/lustre-v6  ; tar xvfz $(RELNAME).tgz
-	rm /usr/local/tools/lustre-v6/current
-	ln -s /usr/local/tools/lustre-v6/$(RELNAME)  /usr/local/tools/lustre-v6/current
+	cp $(RELNAME).tgz $(LAB_INSTALL_DIR)
+	cd $(LAB_INSTALL_DIR)  ; tar xvfz $(RELNAME).tgz
+	rm -f $(LAB_INSTALL_DIR)/current
+	ln -s $(LAB_INSTALL_DIR)/$(RELNAME)  $(LAB_INSTALL_DIR)/current
 
 
 clean:
diff --git a/src/soc2cExtern.ml b/src/soc2cExtern.ml
index 5265b29d..5e0c34b0 100644
--- a/src/soc2cExtern.ml
+++ b/src/soc2cExtern.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 09/07/2014 (at 12:17) by Erwan Jahier> *)
+(* Time-stamp: <modified the 11/07/2014 (at 14:02) by Erwan Jahier> *)
 
 open Soc2cIdent
 
@@ -20,9 +20,10 @@ let (type_decl : LicPrg.t -> string) =
       else acc
     in
     let preambule = "\n/* XXX FIXME: The following types must be defined/fixed */" ^
-      "\n#define FAKE_TYPE_DEF_2FIX int" 
+      "\n#define FAKE_TYPE_DEF_2FIX int\n" 
     in
-    (LicPrg.fold_types type_to_string prg preambule)^"\n"
+    let str = LicPrg.fold_types type_to_string prg "" in
+    if str = "" then "" else (preambule^""^str^"\n")
 
 let (cpy_def : LicPrg.t -> string) =
   fun prg -> 
@@ -33,7 +34,8 @@ let (cpy_def : LicPrg.t -> string) =
         | _  -> acc
     in
     let preambule = "\n/* XXX FIXME: The following copy functions must be defined/fixed */" in
-    (LicPrg.fold_types type_to_string prg preambule)^"\n"
+    let str = LicPrg.fold_types type_to_string prg "" in
+    if str = "" then "" else (preambule^str^"\n")
 
 (* exported *)
 let (cpy_declaration : LicPrg.t -> string) =
@@ -45,7 +47,8 @@ let (cpy_declaration : LicPrg.t -> string) =
         | _  -> acc
     in
     let preambule = "/*  */\n" in
-    (LicPrg.fold_types type_to_string prg preambule)^"\n"
+    let str = LicPrg.fold_types type_to_string prg "" in
+    if str = "" then "" else (preambule^str^"\n")
 
 let (cpy_decl : LicPrg.t -> string) =
   fun prg -> 
@@ -56,7 +59,8 @@ let (cpy_decl : LicPrg.t -> string) =
         | _  -> acc
     in
     let preambule = "/*  */\n" in
-    (LicPrg.fold_types type_to_string prg preambule)^"\n"
+    let str = LicPrg.fold_types type_to_string prg "" in
+    if str = "" then "" else (preambule^str^"\n")
 
 
 let (const_def : LicPrg.t -> string) =
@@ -70,7 +74,8 @@ let (const_def : LicPrg.t -> string) =
     in
     let preambule = "\n/* XXX FIXME: The following const def must be defined/fixed */" ^
       "\n#define FAKE_CONST_DEF_2FIX 1" in
-    (LicPrg.fold_consts const_to_string prg preambule)^"\n"
+    let str = LicPrg.fold_consts const_to_string prg "" in
+    if str = "" then "" else (preambule^str^"\n")
 
 (* exported *)
 let (const_declaration : LicPrg.t -> string) =
@@ -83,7 +88,8 @@ let (const_declaration : LicPrg.t -> string) =
         | _ -> acc
     in
     let preambule = "/* */\n" in
-    (LicPrg.fold_consts const_to_string prg preambule)^"\n"
+    let str = LicPrg.fold_consts const_to_string prg "" in
+    if str = "" then "" else (preambule^str^"\n")
 
 open Soc
 
@@ -107,7 +113,7 @@ let (gen_files : Soc.t -> Soc.tbl -> LicPrg.t -> string -> string-> string -> bo
     let needs_cfile = extern_steps <> [] in
     let needs_hfile = needs_cfile || extern_types<>[] || extern_consts<>[] in
 
-      if not (Sys.file_exists ext_hfile) then (
+      if not (Sys.file_exists ext_hfile) && needs_hfile then (
         let ext_och = open_out ext_hfile in
         output_string ext_och (type_decl licprg);
         output_string ext_och (cpy_decl licprg);
@@ -123,9 +129,10 @@ let (gen_files : Soc.t -> Soc.tbl -> LicPrg.t -> string -> string-> string -> bo
         print_string (Printf.sprintf "%s has been generated.\n" ext_hfile);
         
       );
-      if not (Sys.file_exists ext_cfile) then (
+      if not (Sys.file_exists ext_cfile)  && needs_cfile then (
         let ext_occ = open_out ext_cfile in
-        output_string ext_occ (Printf.sprintf "#include \"%s\"\n" hfile);
+        if needs_hfile then 
+          output_string ext_occ (Printf.sprintf "#include \"%s\"\n" hfile);
         output_string ext_occ (cpy_def licprg);
         output_string ext_occ (const_def licprg);
         List.iter (fun (sm,soc) -> 
diff --git a/src/soc2cIdent.ml b/src/soc2cIdent.ml
index 6a36d318..a2d642ae 100644
--- a/src/soc2cIdent.ml
+++ b/src/soc2cIdent.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 01/07/2014 (at 17:58) by Erwan Jahier> *)
+(* Time-stamp: <modified the 10/07/2014 (at 11:54) by Erwan Jahier> *)
 
 let colcol = Str.regexp "::"
 let id2s id = (* XXX Refuser les noms de module à la con plutot *)
@@ -45,7 +45,7 @@ let (key_op2str : Soc.key_opt -> string) = function
   | Nomore -> ""
   | Slic(b,e,s) -> Printf.sprintf "_slice_%d_%d_%d" b e s
   | MemInit(var_expr) ->  "_" ^
-    (* XXX This is wrong !!! *)
+    (* XXX This is wrong because hash is not an injection !!! *)
     (string_of_int (Hashtbl.hash var_expr))
 
 
diff --git a/test/lus2lic.sum b/test/lus2lic.sum
index 79a38a68..868fc9bc 100644
--- a/test/lus2lic.sum
+++ b/test/lus2lic.sum
@@ -1,4 +1,4 @@
-Test Run By jahier on Thu Jul 10 10:09:35 2014
+Test Run By jahier on Fri Jul 11 14:08:40 2014
 Native configuration is i686-pc-linux-gnu
 
 		=== lus2lic tests ===
@@ -14,37 +14,37 @@ PASS: ./lus2lic {-ec -o /tmp/nc6.ec should_work/nc6.lus}
 PASS: ./myec2c {-o /tmp/nc6.c /tmp/nc6.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/nc6.lus
 PASS: ./lus2lic {-2c should_work/nc6.lus -n nc6}
-PASS: gcc nc6_nc6.c nc6_nc6_ext.c nc6_nc6_loop.c 
+PASS: gcc nc6_nc6.c nc6_nc6_loop.c 
 PASS: ./lus2lic {-o /tmp/argos.lic should_work/argos.lus}
 PASS: ./lus2lic {-ec -o /tmp/argos.ec should_work/argos.lus}
 PASS: ./myec2c {-o /tmp/argos.c /tmp/argos.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/argos.lus
 PASS: ./lus2lic {-2c should_work/argos.lus -n argos}
-PASS: gcc argos_argos.c argos_argos_ext.c argos_argos_loop.c 
+PASS: gcc argos_argos.c argos_argos_loop.c 
 PASS: ./lus2lic {-o /tmp/ck5.lic should_work/ck5.lus}
 PASS: ./lus2lic {-ec -o /tmp/ck5.ec should_work/ck5.lus}
 PASS: ./myec2c {-o /tmp/ck5.c /tmp/ck5.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/ck5.lus
 PASS: ./lus2lic {-2c should_work/ck5.lus -n ck5}
-PASS: gcc ck5_ck5.c ck5_ck5_ext.c ck5_ck5_loop.c 
+PASS: gcc ck5_ck5.c ck5_ck5_loop.c 
 PASS: ./lus2lic {-o /tmp/normal.lic should_work/normal.lus}
 PASS: ./lus2lic {-ec -o /tmp/normal.ec should_work/normal.lus}
 PASS: ./myec2c {-o /tmp/normal.c /tmp/normal.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/normal.lus
 PASS: ./lus2lic {-2c should_work/normal.lus -n normal}
-PASS: gcc normal_normal.c normal_normal_ext.c normal_normal_loop.c 
+PASS: gcc normal_normal.c normal_normal_loop.c 
 PASS: ./lus2lic {-o /tmp/nodeparam.lic should_work/nodeparam.lus}
 PASS: ./lus2lic {-ec -o /tmp/nodeparam.ec should_work/nodeparam.lus}
 PASS: ./myec2c {-o /tmp/nodeparam.c /tmp/nodeparam.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/nodeparam.lus
 PASS: ./lus2lic {-2c should_work/nodeparam.lus -n nodeparam}
-PASS: gcc nodeparam_nodeparam.c nodeparam_nodeparam_ext.c nodeparam_nodeparam_loop.c 
+PASS: gcc nodeparam_nodeparam.c nodeparam_nodeparam_loop.c 
 PASS: ./lus2lic {-o /tmp/enum0.lic should_work/enum0.lus}
 PASS: ./lus2lic {-ec -o /tmp/enum0.ec should_work/enum0.lus}
 PASS: ./myec2c {-o /tmp/enum0.c /tmp/enum0.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/enum0.lus
 PASS: ./lus2lic {-2c should_work/enum0.lus -n enum0}
-PASS: gcc enum0_enum0.c enum0_enum0_ext.c enum0_enum0_loop.c 
+PASS: gcc enum0_enum0.c enum0_enum0_loop.c 
 PASS: ./lus2lic {-o /tmp/ck6.lic should_work/ck6.lus}
 PASS: ./lus2lic {-ec -o /tmp/ck6.ec should_work/ck6.lus}
 PASS: ./myec2c {-o /tmp/ck6.c /tmp/ck6.ec}
@@ -56,97 +56,97 @@ PASS: ./lus2lic {-ec -o /tmp/Gyroscope2.ec should_work/Gyroscope2.lus}
 PASS: ./myec2c {-o /tmp/Gyroscope2.c /tmp/Gyroscope2.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/Gyroscope2.lus
 PASS: ./lus2lic {-2c should_work/Gyroscope2.lus -n Gyroscope2}
-PASS: gcc Gyroscope2_Gyroscope2.c Gyroscope2_Gyroscope2_ext.c Gyroscope2_Gyroscope2_loop.c 
+PASS: gcc Gyroscope2_Gyroscope2.c Gyroscope2_Gyroscope2_loop.c 
 PASS: ./lus2lic {-o /tmp/mouse2.lic should_work/mouse2.lus}
 PASS: ./lus2lic {-ec -o /tmp/mouse2.ec should_work/mouse2.lus}
 PASS: ./myec2c {-o /tmp/mouse2.c /tmp/mouse2.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/mouse2.lus
 PASS: ./lus2lic {-2c should_work/mouse2.lus -n mouse2}
-PASS: gcc mouse2_mouse2.c mouse2_mouse2_ext.c mouse2_mouse2_loop.c 
+PASS: gcc mouse2_mouse2.c mouse2_mouse2_loop.c 
 PASS: ./lus2lic {-o /tmp/dep.lic should_work/dep.lus}
 PASS: ./lus2lic {-ec -o /tmp/dep.ec should_work/dep.lus}
 PASS: ./myec2c {-o /tmp/dep.c /tmp/dep.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/dep.lus
 PASS: ./lus2lic {-2c should_work/dep.lus -n dep}
-PASS: gcc dep_dep.c dep_dep_ext.c dep_dep_loop.c 
+PASS: gcc dep_dep.c dep_dep_loop.c 
 PASS: ./lus2lic {-o /tmp/ELMU.lic should_work/ELMU.lus}
 PASS: ./lus2lic {-ec -o /tmp/ELMU.ec should_work/ELMU.lus}
 PASS: ./myec2c {-o /tmp/ELMU.c /tmp/ELMU.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/ELMU.lus
 PASS: ./lus2lic {-2c should_work/ELMU.lus -n ELMU}
-PASS: gcc ELMU_ELMU.c ELMU_ELMU_ext.c ELMU_ELMU_loop.c 
+PASS: gcc ELMU_ELMU.c ELMU_ELMU_loop.c 
 PASS: ./lus2lic {-o /tmp/testPilote.lic should_work/testPilote.lus}
 PASS: ./lus2lic {-ec -o /tmp/testPilote.ec should_work/testPilote.lus}
 PASS: ./myec2c {-o /tmp/testPilote.c /tmp/testPilote.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/testPilote.lus
 PASS: ./lus2lic {-2c should_work/testPilote.lus -n testPilote}
-PASS: gcc testPilote_testPilote.c testPilote_testPilote_ext.c testPilote_testPilote_loop.c 
+PASS: gcc testPilote_testPilote.c testPilote_testPilote_loop.c 
 PASS: ./lus2lic {-o /tmp/redIf.lic should_work/redIf.lus}
 PASS: ./lus2lic {-ec -o /tmp/redIf.ec should_work/redIf.lus}
 PASS: ./myec2c {-o /tmp/redIf.c /tmp/redIf.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/redIf.lus
 PASS: ./lus2lic {-2c should_work/redIf.lus -n redIf}
-PASS: gcc redIf_redIf.c redIf_redIf_ext.c redIf_redIf_loop.c 
+PASS: gcc redIf_redIf.c redIf_redIf_loop.c 
 PASS: ./lus2lic {-o /tmp/t0.lic should_work/t0.lus}
 PASS: ./lus2lic {-ec -o /tmp/t0.ec should_work/t0.lus}
 PASS: ./myec2c {-o /tmp/t0.c /tmp/t0.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/t0.lus
 PASS: ./lus2lic {-2c should_work/t0.lus -n t0}
-PASS: gcc t0_t0.c t0_t0_ext.c t0_t0_loop.c 
+PASS: gcc t0_t0.c t0_t0_loop.c 
 PASS: ./lus2lic {-o /tmp/lucky.lic should_work/lucky.lus}
 PASS: ./lus2lic {-ec -o /tmp/lucky.ec should_work/lucky.lus}
 PASS: ./myec2c {-o /tmp/lucky.c /tmp/lucky.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/lucky.lus
 PASS: ./lus2lic {-2c should_work/lucky.lus -n lucky}
-PASS: gcc lucky_lucky.c lucky_lucky_ext.c lucky_lucky_loop.c 
+PASS: gcc lucky_lucky.c lucky_lucky_loop.c 
 PASS: ./lus2lic {-o /tmp/heater_control.lic should_work/heater_control.lus}
 PASS: ./lus2lic {-ec -o /tmp/heater_control.ec should_work/heater_control.lus}
 PASS: ./myec2c {-o /tmp/heater_control.c /tmp/heater_control.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/heater_control.lus
 PASS: ./lus2lic {-2c should_work/heater_control.lus -n heater_control}
-PASS: gcc heater_control_heater_control.c heater_control_heater_control_ext.c heater_control_heater_control_loop.c 
+PASS: gcc heater_control_heater_control.c heater_control_heater_control_loop.c 
 PASS: ./lus2lic {-o /tmp/titi.lic should_work/titi.lus}
 PASS: ./lus2lic {-ec -o /tmp/titi.ec should_work/titi.lus}
 PASS: ./myec2c {-o /tmp/titi.c /tmp/titi.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/titi.lus
 PASS: ./lus2lic {-2c should_work/titi.lus -n titi}
-PASS: gcc titi_titi.c titi_titi_ext.c titi_titi_loop.c 
+PASS: gcc titi_titi.c titi_titi_loop.c 
 PASS: ./lus2lic {-o /tmp/cminus.lic should_work/cminus.lus}
 PASS: ./lus2lic {-ec -o /tmp/cminus.ec should_work/cminus.lus}
 PASS: ./myec2c {-o /tmp/cminus.c /tmp/cminus.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/cminus.lus
 PASS: ./lus2lic {-2c should_work/cminus.lus -n cminus}
-PASS: gcc cminus_cminus.c cminus_cminus_ext.c cminus_cminus_loop.c 
+PASS: gcc cminus_cminus.c cminus_cminus_loop.c 
 PASS: ./lus2lic {-o /tmp/rs.lic should_work/rs.lus}
 PASS: ./lus2lic {-ec -o /tmp/rs.ec should_work/rs.lus}
 PASS: ./myec2c {-o /tmp/rs.c /tmp/rs.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/rs.lus
 PASS: ./lus2lic {-2c should_work/rs.lus -n rs}
-PASS: gcc rs_rs.c rs_rs_ext.c rs_rs_loop.c 
+PASS: gcc rs_rs.c rs_rs_loop.c 
 PASS: ./lus2lic {-o /tmp/access.lic should_work/access.lus}
 PASS: ./lus2lic {-ec -o /tmp/access.ec should_work/access.lus}
 PASS: ./myec2c {-o /tmp/access.c /tmp/access.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/access.lus
 PASS: ./lus2lic {-2c should_work/access.lus -n access}
-PASS: gcc access_access.c access_access_ext.c access_access_loop.c 
+PASS: gcc access_access.c access_access_loop.c 
 PASS: ./lus2lic {-o /tmp/consensus2.lic should_work/consensus2.lus}
 PASS: ./lus2lic {-ec -o /tmp/consensus2.ec should_work/consensus2.lus}
 PASS: ./myec2c {-o /tmp/consensus2.c /tmp/consensus2.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/consensus2.lus
 PASS: ./lus2lic {-2c should_work/consensus2.lus -n consensus2}
-PASS: gcc consensus2_consensus2.c consensus2_consensus2_ext.c consensus2_consensus2_loop.c 
+PASS: gcc consensus2_consensus2.c consensus2_consensus2_loop.c 
 PASS: ./lus2lic {-o /tmp/dependeur.lic should_work/dependeur.lus}
 PASS: ./lus2lic {-ec -o /tmp/dependeur.ec should_work/dependeur.lus}
 PASS: ./myec2c {-o /tmp/dependeur.c /tmp/dependeur.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/dependeur.lus
 PASS: ./lus2lic {-2c should_work/dependeur.lus -n dependeur}
-PASS: gcc dependeur_dependeur.c dependeur_dependeur_ext.c dependeur_dependeur_loop.c 
+PASS: gcc dependeur_dependeur.c dependeur_dependeur_loop.c 
 PASS: ./lus2lic {-o /tmp/mappredef.lic should_work/mappredef.lus}
 PASS: ./lus2lic {-ec -o /tmp/mappredef.ec should_work/mappredef.lus}
 PASS: ./myec2c {-o /tmp/mappredef.c /tmp/mappredef.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/mappredef.lus
 PASS: ./lus2lic {-2c should_work/mappredef.lus -n mappredef}
-PASS: gcc mappredef_mappredef.c mappredef_mappredef_ext.c mappredef_mappredef_loop.c 
+PASS: gcc mappredef_mappredef.c mappredef_mappredef_loop.c 
 PASS: ./lus2lic {-o /tmp/call06.lic should_work/call06.lus}
 PASS: ./lus2lic {-ec -o /tmp/call06.ec should_work/call06.lus}
 PASS: ./myec2c {-o /tmp/call06.c /tmp/call06.ec}
@@ -158,61 +158,61 @@ PASS: ./lus2lic {-ec -o /tmp/deSimone.ec should_work/deSimone.lus}
 PASS: ./myec2c {-o /tmp/deSimone.c /tmp/deSimone.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/deSimone.lus
 PASS: ./lus2lic {-2c should_work/deSimone.lus -n deSimone}
-PASS: gcc deSimone_deSimone.c deSimone_deSimone_ext.c deSimone_deSimone_loop.c 
+PASS: gcc deSimone_deSimone.c deSimone_deSimone_loop.c 
 PASS: ./lus2lic {-o /tmp/bug2.lic should_work/bug2.lus}
 PASS: ./lus2lic {-ec -o /tmp/bug2.ec should_work/bug2.lus}
 PASS: ./myec2c {-o /tmp/bug2.c /tmp/bug2.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/bug2.lus
 PASS: ./lus2lic {-2c should_work/bug2.lus -n bug2}
-PASS: gcc bug2_bug2.c bug2_bug2_ext.c bug2_bug2_loop.c 
+PASS: gcc bug2_bug2.c bug2_bug2_loop.c 
 PASS: ./lus2lic {-o /tmp/mm.lic should_work/mm.lus}
 PASS: ./lus2lic {-ec -o /tmp/mm.ec should_work/mm.lus}
 PASS: ./myec2c {-o /tmp/mm.c /tmp/mm.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/mm.lus
 PASS: ./lus2lic {-2c should_work/mm.lus -n mm}
-PASS: gcc mm_mm.c mm_mm_ext.c mm_mm_loop.c 
+PASS: gcc mm_mm.c mm_mm_loop.c 
 PASS: ./lus2lic {-o /tmp/yyy.lic should_work/yyy.lus}
 PASS: ./lus2lic {-ec -o /tmp/yyy.ec should_work/yyy.lus}
 PASS: ./myec2c {-o /tmp/yyy.c /tmp/yyy.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/yyy.lus
 PASS: ./lus2lic {-2c should_work/yyy.lus -n yyy}
-PASS: gcc yyy_yyy.c yyy_yyy_ext.c yyy_yyy_loop.c 
+PASS: gcc yyy_yyy.c yyy_yyy_loop.c 
 PASS: ./lus2lic {-o /tmp/toolate.lic should_work/toolate.lus}
 PASS: ./lus2lic {-ec -o /tmp/toolate.ec should_work/toolate.lus}
 PASS: ./myec2c {-o /tmp/toolate.c /tmp/toolate.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/toolate.lus
 PASS: ./lus2lic {-2c should_work/toolate.lus -n toolate}
-PASS: gcc toolate_toolate.c toolate_toolate_ext.c toolate_toolate_loop.c 
+PASS: gcc toolate_toolate.c toolate_toolate_loop.c 
 PASS: ./lus2lic {-o /tmp/testCapt.lic should_work/testCapt.lus}
 PASS: ./lus2lic {-ec -o /tmp/testCapt.ec should_work/testCapt.lus}
 PASS: ./myec2c {-o /tmp/testCapt.c /tmp/testCapt.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/testCapt.lus
 PASS: ./lus2lic {-2c should_work/testCapt.lus -n testCapt}
-PASS: gcc testCapt_testCapt.c testCapt_testCapt_ext.c testCapt_testCapt_loop.c 
+PASS: gcc testCapt_testCapt.c testCapt_testCapt_loop.c 
 PASS: ./lus2lic {-o /tmp/nc7.lic should_work/nc7.lus}
 PASS: ./lus2lic {-ec -o /tmp/nc7.ec should_work/nc7.lus}
 PASS: ./myec2c {-o /tmp/nc7.c /tmp/nc7.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/nc7.lus
 PASS: ./lus2lic {-2c should_work/nc7.lus -n nc7}
-PASS: gcc nc7_nc7.c nc7_nc7_ext.c nc7_nc7_loop.c 
+PASS: gcc nc7_nc7.c nc7_nc7_loop.c 
 PASS: ./lus2lic {-o /tmp/predefOp.lic should_work/predefOp.lus}
 PASS: ./lus2lic {-ec -o /tmp/predefOp.ec should_work/predefOp.lus}
 PASS: ./myec2c {-o /tmp/predefOp.c /tmp/predefOp.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/predefOp.lus
 PASS: ./lus2lic {-2c should_work/predefOp.lus -n predefOp}
-PASS: gcc predefOp_predefOp.c predefOp_predefOp_ext.c predefOp_predefOp_loop.c 
+PASS: gcc predefOp_predefOp.c predefOp_predefOp_loop.c 
 PASS: ./lus2lic {-o /tmp/t1.lic should_work/t1.lus}
 PASS: ./lus2lic {-ec -o /tmp/t1.ec should_work/t1.lus}
 PASS: ./myec2c {-o /tmp/t1.c /tmp/t1.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/t1.lus
 PASS: ./lus2lic {-2c should_work/t1.lus -n t1}
-PASS: gcc t1_t1.c t1_t1_ext.c t1_t1_loop.c 
+PASS: gcc t1_t1.c t1_t1_loop.c 
 PASS: ./lus2lic {-o /tmp/nc9.lic should_work/nc9.lus}
 PASS: ./lus2lic {-ec -o /tmp/nc9.ec should_work/nc9.lus}
 PASS: ./myec2c {-o /tmp/nc9.c /tmp/nc9.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/nc9.lus
 PASS: ./lus2lic {-2c should_work/nc9.lus -n nc9}
-PASS: gcc nc9_nc9.c nc9_nc9_ext.c nc9_nc9_loop.c 
+PASS: gcc nc9_nc9.c nc9_nc9_loop.c 
 PASS: ./lus2lic {-o /tmp/packageTableau.lic should_work/packageTableau.lus}
 PASS: ./lus2lic {-ec -o /tmp/packageTableau.ec should_work/packageTableau.lus}
 PASS: ./myec2c {-o /tmp/packageTableau.c /tmp/packageTableau.ec}
@@ -223,13 +223,13 @@ PASS: ./lus2lic {-ec -o /tmp/test_poly.ec should_work/test_poly.lus}
 PASS: ./myec2c {-o /tmp/test_poly.c /tmp/test_poly.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/test_poly.lus
 PASS: ./lus2lic {-2c should_work/test_poly.lus -n test_poly}
-PASS: gcc test_poly_test_poly.c test_poly_test_poly_ext.c test_poly_test_poly_loop.c 
+PASS: gcc test_poly_test_poly.c test_poly_test_poly_loop.c 
 PASS: ./lus2lic {-o /tmp/nc8.lic should_work/nc8.lus}
 PASS: ./lus2lic {-ec -o /tmp/nc8.ec should_work/nc8.lus}
 PASS: ./myec2c {-o /tmp/nc8.c /tmp/nc8.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/nc8.lus
 PASS: ./lus2lic {-2c should_work/nc8.lus -n nc8}
-PASS: gcc nc8_nc8.c nc8_nc8_ext.c nc8_nc8_loop.c 
+PASS: gcc nc8_nc8.c nc8_nc8_loop.c 
 PASS: ./lus2lic {-o /tmp/minmax5.lic should_work/minmax5.lus}
 PASS: ./lus2lic {-ec -o /tmp/minmax5.ec should_work/minmax5.lus}
 PASS: ./myec2c {-o /tmp/minmax5.c /tmp/minmax5.ec}
@@ -241,19 +241,19 @@ PASS: ./lus2lic {-ec -o /tmp/mm1.ec should_work/mm1.lus}
 PASS: ./myec2c {-o /tmp/mm1.c /tmp/mm1.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/mm1.lus
 PASS: ./lus2lic {-2c should_work/mm1.lus -n mm1}
-PASS: gcc mm1_mm1.c mm1_mm1_ext.c mm1_mm1_loop.c 
+PASS: gcc mm1_mm1.c mm1_mm1_loop.c 
 PASS: ./lus2lic {-o /tmp/predef03.lic should_work/predef03.lus}
 PASS: ./lus2lic {-ec -o /tmp/predef03.ec should_work/predef03.lus}
 PASS: ./myec2c {-o /tmp/predef03.c /tmp/predef03.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/predef03.lus
 PASS: ./lus2lic {-2c should_work/predef03.lus -n predef03}
-PASS: gcc predef03_predef03.c predef03_predef03_ext.c predef03_predef03_loop.c 
+PASS: gcc predef03_predef03.c predef03_predef03_loop.c 
 PASS: ./lus2lic {-o /tmp/iter.lic should_work/iter.lus}
 PASS: ./lus2lic {-ec -o /tmp/iter.ec should_work/iter.lus}
 PASS: ./myec2c {-o /tmp/iter.c /tmp/iter.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/iter.lus
 PASS: ./lus2lic {-2c should_work/iter.lus -n iter}
-PASS: gcc iter_iter.c iter_iter_ext.c iter_iter_loop.c 
+PASS: gcc iter_iter.c iter_iter_loop.c 
 PASS: ./lus2lic {-o /tmp/call05.lic should_work/call05.lus}
 PASS: ./lus2lic {-ec -o /tmp/call05.ec should_work/call05.lus}
 PASS: ./myec2c {-o /tmp/call05.c /tmp/call05.ec}
@@ -276,43 +276,43 @@ PASS: ./lus2lic {-ec -o /tmp/node_caller1.ec should_work/node_caller1.lus}
 PASS: ./myec2c {-o /tmp/node_caller1.c /tmp/node_caller1.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/node_caller1.lus
 PASS: ./lus2lic {-2c should_work/node_caller1.lus -n node_caller1}
-PASS: gcc node_caller1_node_caller1.c node_caller1_node_caller1_ext.c node_caller1_node_caller1_loop.c 
+PASS: gcc node_caller1_node_caller1.c node_caller1_node_caller1_loop.c 
 PASS: ./lus2lic {-o /tmp/nc1.lic should_work/nc1.lus}
 PASS: ./lus2lic {-ec -o /tmp/nc1.ec should_work/nc1.lus}
 PASS: ./myec2c {-o /tmp/nc1.c /tmp/nc1.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/nc1.lus
 PASS: ./lus2lic {-2c should_work/nc1.lus -n nc1}
-PASS: gcc nc1_nc1.c nc1_nc1_ext.c nc1_nc1_loop.c 
+PASS: gcc nc1_nc1.c nc1_nc1_loop.c 
 PASS: ./lus2lic {-o /tmp/test_node_expand2.lic should_work/test_node_expand2.lus}
 PASS: ./lus2lic {-ec -o /tmp/test_node_expand2.ec should_work/test_node_expand2.lus}
 PASS: ./myec2c {-o /tmp/test_node_expand2.c /tmp/test_node_expand2.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/test_node_expand2.lus
 PASS: ./lus2lic {-2c should_work/test_node_expand2.lus -n test_node_expand2}
-PASS: gcc test_node_expand2_test_node_expand2.c test_node_expand2_test_node_expand2_ext.c test_node_expand2_test_node_expand2_loop.c 
+PASS: gcc test_node_expand2_test_node_expand2.c test_node_expand2_test_node_expand2_loop.c 
 PASS: ./lus2lic {-o /tmp/test.lic should_work/test.lus}
 PASS: ./lus2lic {-ec -o /tmp/test.ec should_work/test.lus}
 PASS: ./myec2c {-o /tmp/test.c /tmp/test.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/test.lus
 PASS: ./lus2lic {-2c should_work/test.lus -n test}
-PASS: gcc test_test.c test_test_ext.c test_test_loop.c 
+PASS: gcc test_test.c test_test_loop.c 
 PASS: ./lus2lic {-o /tmp/FALLING_EDGE.lic should_work/FALLING_EDGE.lus}
 PASS: ./lus2lic {-ec -o /tmp/FALLING_EDGE.ec should_work/FALLING_EDGE.lus}
 PASS: ./myec2c {-o /tmp/FALLING_EDGE.c /tmp/FALLING_EDGE.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/FALLING_EDGE.lus
 PASS: ./lus2lic {-2c should_work/FALLING_EDGE.lus -n FALLING_EDGE}
-PASS: gcc FALLING_EDGE_FALLING_EDGE.c FALLING_EDGE_FALLING_EDGE_ext.c FALLING_EDGE_FALLING_EDGE_loop.c 
+PASS: gcc FALLING_EDGE_FALLING_EDGE.c FALLING_EDGE_FALLING_EDGE_loop.c 
 PASS: ./lus2lic {-o /tmp/SWITCH.lic should_work/SWITCH.lus}
 PASS: ./lus2lic {-ec -o /tmp/SWITCH.ec should_work/SWITCH.lus}
 PASS: ./myec2c {-o /tmp/SWITCH.c /tmp/SWITCH.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/SWITCH.lus
 PASS: ./lus2lic {-2c should_work/SWITCH.lus -n SWITCH}
-PASS: gcc SWITCH_SWITCH.c SWITCH_SWITCH_ext.c SWITCH_SWITCH_loop.c 
+PASS: gcc SWITCH_SWITCH.c SWITCH_SWITCH_loop.c 
 PASS: ./lus2lic {-o /tmp/cst.lic should_work/cst.lus}
 PASS: ./lus2lic {-ec -o /tmp/cst.ec should_work/cst.lus}
 PASS: ./myec2c {-o /tmp/cst.c /tmp/cst.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/cst.lus
 PASS: ./lus2lic {-2c should_work/cst.lus -n cst}
-PASS: gcc cst_cst.c cst_cst_ext.c cst_cst_loop.c 
+PASS: gcc cst_cst.c cst_cst_loop.c 
 PASS: ./lus2lic {-o /tmp/minmax5_random.lic should_work/minmax5_random.lus}
 PASS: ./lus2lic {-ec -o /tmp/minmax5_random.ec should_work/minmax5_random.lus}
 PASS: ./myec2c {-o /tmp/minmax5_random.c /tmp/minmax5_random.ec}
@@ -324,49 +324,49 @@ PASS: ./lus2lic {-ec -o /tmp/matrice2.ec should_work/matrice2.lus}
 PASS: ./myec2c {-o /tmp/matrice2.c /tmp/matrice2.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/matrice2.lus
 PASS: ./lus2lic {-2c should_work/matrice2.lus -n matrice2}
-PASS: gcc matrice2_matrice2.c matrice2_matrice2_ext.c matrice2_matrice2_loop.c 
+PASS: gcc matrice2_matrice2.c matrice2_matrice2_loop.c 
 PASS: ./lus2lic {-o /tmp/v1.lic should_work/v1.lus}
 PASS: ./lus2lic {-ec -o /tmp/v1.ec should_work/v1.lus}
 PASS: ./myec2c {-o /tmp/v1.c /tmp/v1.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/v1.lus
 PASS: ./lus2lic {-2c should_work/v1.lus -n v1}
-PASS: gcc v1_v1.c v1_v1_ext.c v1_v1_loop.c 
+PASS: gcc v1_v1.c v1_v1_loop.c 
 PASS: ./lus2lic {-o /tmp/call04.lic should_work/call04.lus}
 PASS: ./lus2lic {-ec -o /tmp/call04.ec should_work/call04.lus}
 PASS: ./myec2c {-o /tmp/call04.c /tmp/call04.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/call04.lus
 PASS: ./lus2lic {-2c should_work/call04.lus -n call04}
-PASS: gcc call04_call04.c call04_call04_ext.c call04_call04_loop.c 
+PASS: gcc call04_call04.c call04_call04_loop.c 
 PASS: ./lus2lic {-o /tmp/bascule.lic should_work/bascule.lus}
 PASS: ./lus2lic {-ec -o /tmp/bascule.ec should_work/bascule.lus}
 PASS: ./myec2c {-o /tmp/bascule.c /tmp/bascule.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/bascule.lus
 PASS: ./lus2lic {-2c should_work/bascule.lus -n bascule}
-PASS: gcc bascule_bascule.c bascule_bascule_ext.c bascule_bascule_loop.c 
+PASS: gcc bascule_bascule.c bascule_bascule_loop.c 
 PASS: ./lus2lic {-o /tmp/double_delay.lic should_work/double_delay.lus}
 PASS: ./lus2lic {-ec -o /tmp/double_delay.ec should_work/double_delay.lus}
 PASS: ./myec2c {-o /tmp/double_delay.c /tmp/double_delay.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/double_delay.lus
 PASS: ./lus2lic {-2c should_work/double_delay.lus -n double_delay}
-PASS: gcc double_delay_double_delay.c double_delay_double_delay_ext.c double_delay_double_delay_loop.c 
+PASS: gcc double_delay_double_delay.c double_delay_double_delay_loop.c 
 PASS: ./lus2lic {-o /tmp/struct_with.lic should_work/struct_with.lus}
 PASS: ./lus2lic {-ec -o /tmp/struct_with.ec should_work/struct_with.lus}
 PASS: ./myec2c {-o /tmp/struct_with.c /tmp/struct_with.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/struct_with.lus
 PASS: ./lus2lic {-2c should_work/struct_with.lus -n struct_with}
-PASS: gcc struct_with_struct_with.c struct_with_struct_with_ext.c struct_with_struct_with_loop.c 
+PASS: gcc struct_with_struct_with.c struct_with_struct_with_loop.c 
 PASS: ./lus2lic {-o /tmp/test_node_expand.lic should_work/test_node_expand.lus}
 PASS: ./lus2lic {-ec -o /tmp/test_node_expand.ec should_work/test_node_expand.lus}
 PASS: ./myec2c {-o /tmp/test_node_expand.c /tmp/test_node_expand.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/test_node_expand.lus
 PASS: ./lus2lic {-2c should_work/test_node_expand.lus -n test_node_expand}
-PASS: gcc test_node_expand_test_node_expand.c test_node_expand_test_node_expand_ext.c test_node_expand_test_node_expand_loop.c 
+PASS: gcc test_node_expand_test_node_expand.c test_node_expand_test_node_expand_loop.c 
 PASS: ./lus2lic {-o /tmp/mm22.lic should_work/mm22.lus}
 PASS: ./lus2lic {-ec -o /tmp/mm22.ec should_work/mm22.lus}
 PASS: ./myec2c {-o /tmp/mm22.c /tmp/mm22.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/mm22.lus
 PASS: ./lus2lic {-2c should_work/mm22.lus -n mm22}
-PASS: gcc mm22_mm22.c mm22_mm22_ext.c mm22_mm22_loop.c 
+PASS: gcc mm22_mm22.c mm22_mm22_loop.c 
 PASS: ./lus2lic {-o /tmp/array_concat2.lic should_work/array_concat2.lus}
 PASS: ./lus2lic {-ec -o /tmp/array_concat2.ec should_work/array_concat2.lus}
 FAIL: Try ec2c on the result: ./myec2c {-o /tmp/array_concat2.c /tmp/array_concat2.ec}
@@ -375,7 +375,7 @@ PASS: ./lus2lic {-ec -o /tmp/is_stable.ec should_work/is_stable.lus}
 PASS: ./myec2c {-o /tmp/is_stable.c /tmp/is_stable.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/is_stable.lus
 PASS: ./lus2lic {-2c should_work/is_stable.lus -n is_stable}
-PASS: gcc is_stable_is_stable.c is_stable_is_stable_ext.c is_stable_is_stable_loop.c 
+PASS: gcc is_stable_is_stable.c is_stable_is_stable_loop.c 
 PASS: ./lus2lic {-o /tmp/test_clash.lic should_work/test_clash.lus}
 PASS: ./lus2lic {-ec -o /tmp/test_clash.ec should_work/test_clash.lus}
 PASS: ./myec2c {-o /tmp/test_clash.c /tmp/test_clash.ec}
@@ -391,25 +391,25 @@ PASS: ./lus2lic {-ec -o /tmp/onlyroll2.ec should_work/onlyroll2.lus}
 PASS: ./myec2c {-o /tmp/onlyroll2.c /tmp/onlyroll2.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/onlyroll2.lus
 PASS: ./lus2lic {-2c should_work/onlyroll2.lus -n onlyroll2}
-PASS: gcc onlyroll2_onlyroll2.c onlyroll2_onlyroll2_ext.c onlyroll2_onlyroll2_loop.c 
+PASS: gcc onlyroll2_onlyroll2.c onlyroll2_onlyroll2_loop.c 
 PASS: ./lus2lic {-o /tmp/modes3x2_v2.lic should_work/modes3x2_v2.lus}
 PASS: ./lus2lic {-ec -o /tmp/modes3x2_v2.ec should_work/modes3x2_v2.lus}
 PASS: ./myec2c {-o /tmp/modes3x2_v2.c /tmp/modes3x2_v2.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/modes3x2_v2.lus
 PASS: ./lus2lic {-2c should_work/modes3x2_v2.lus -n modes3x2_v2}
-PASS: gcc modes3x2_v2_modes3x2_v2.c modes3x2_v2_modes3x2_v2_ext.c modes3x2_v2_modes3x2_v2_loop.c 
+PASS: gcc modes3x2_v2_modes3x2_v2.c modes3x2_v2_modes3x2_v2_loop.c 
 PASS: ./lus2lic {-o /tmp/X6.lic should_work/X6.lus}
 PASS: ./lus2lic {-ec -o /tmp/X6.ec should_work/X6.lus}
 PASS: ./myec2c {-o /tmp/X6.c /tmp/X6.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/X6.lus
 PASS: ./lus2lic {-2c should_work/X6.lus -n X6}
-PASS: gcc X6_X6.c X6_X6_ext.c X6_X6_loop.c 
+PASS: gcc X6_X6.c X6_X6_loop.c 
 PASS: ./lus2lic {-o /tmp/zzz2.lic should_work/zzz2.lus}
 PASS: ./lus2lic {-ec -o /tmp/zzz2.ec should_work/zzz2.lus}
 PASS: ./myec2c {-o /tmp/zzz2.c /tmp/zzz2.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/zzz2.lus
 PASS: ./lus2lic {-2c should_work/zzz2.lus -n zzz2}
-PASS: gcc zzz2_zzz2.c zzz2_zzz2_ext.c zzz2_zzz2_loop.c 
+PASS: gcc zzz2_zzz2.c zzz2_zzz2_loop.c 
 PASS: ./lus2lic {-o /tmp/polymorphic_pack.lic should_work/polymorphic_pack.lus}
 PASS: ./lus2lic {-ec -o /tmp/polymorphic_pack.ec should_work/polymorphic_pack.lus}
 PASS: ./myec2c {-o /tmp/polymorphic_pack.c /tmp/polymorphic_pack.ec}
@@ -420,13 +420,13 @@ PASS: ./lus2lic {-ec -o /tmp/COUNTER.ec should_work/COUNTER.lus}
 PASS: ./myec2c {-o /tmp/COUNTER.c /tmp/COUNTER.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/COUNTER.lus
 PASS: ./lus2lic {-2c should_work/COUNTER.lus -n COUNTER}
-PASS: gcc COUNTER_COUNTER.c COUNTER_COUNTER_ext.c COUNTER_COUNTER_loop.c 
+PASS: gcc COUNTER_COUNTER.c COUNTER_COUNTER_loop.c 
 PASS: ./lus2lic {-o /tmp/minmax3.lic should_work/minmax3.lus}
 PASS: ./lus2lic {-ec -o /tmp/minmax3.ec should_work/minmax3.lus}
 PASS: ./myec2c {-o /tmp/minmax3.c /tmp/minmax3.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/minmax3.lus
 PASS: ./lus2lic {-2c should_work/minmax3.lus -n minmax3}
-PASS: gcc minmax3_minmax3.c minmax3_minmax3_ext.c minmax3_minmax3_loop.c 
+PASS: gcc minmax3_minmax3.c minmax3_minmax3_loop.c 
 PASS: ./lus2lic {-o /tmp/filter.lic should_work/filter.lus}
 PASS: ./lus2lic {-ec -o /tmp/filter.ec should_work/filter.lus}
 PASS: ./myec2c {-o /tmp/filter.c /tmp/filter.ec}
@@ -437,61 +437,61 @@ PASS: ./lus2lic {-ec -o /tmp/ec.ec should_work/ec.lus}
 PASS: ./myec2c {-o /tmp/ec.c /tmp/ec.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/ec.lus
 PASS: ./lus2lic {-2c should_work/ec.lus -n ec}
-PASS: gcc ec_ec.c ec_ec_ext.c ec_ec_loop.c 
+PASS: gcc ec_ec.c ec_ec_loop.c 
 PASS: ./lus2lic {-o /tmp/morel3.lic should_work/morel3.lus}
 PASS: ./lus2lic {-ec -o /tmp/morel3.ec should_work/morel3.lus}
 PASS: ./myec2c {-o /tmp/morel3.c /tmp/morel3.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/morel3.lus
 FAIL: Generate c code  : ./lus2lic {-2c should_work/morel3.lus -n morel3}
-FAIL: Check that the generated C code compiles  : gcc morel3_morel3.c morel3_morel3_ext.c morel3_morel3_loop.c 
+FAIL: Check that the generated C code compiles  : gcc morel3_morel3.c morel3_morel3_loop.c 
 PASS: ./lus2lic {-o /tmp/fresh_name.lic should_work/fresh_name.lus}
 PASS: ./lus2lic {-ec -o /tmp/fresh_name.ec should_work/fresh_name.lus}
 PASS: ./myec2c {-o /tmp/fresh_name.c /tmp/fresh_name.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/fresh_name.lus
 PASS: ./lus2lic {-2c should_work/fresh_name.lus -n fresh_name}
-PASS: gcc fresh_name_fresh_name.c fresh_name_fresh_name_ext.c fresh_name_fresh_name_loop.c 
+PASS: gcc fresh_name_fresh_name.c fresh_name_fresh_name_loop.c 
 PASS: ./lus2lic {-o /tmp/ply03.lic should_work/ply03.lus}
 PASS: ./lus2lic {-ec -o /tmp/ply03.ec should_work/ply03.lus}
 PASS: ./myec2c {-o /tmp/ply03.c /tmp/ply03.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/ply03.lus
 PASS: ./lus2lic {-2c should_work/ply03.lus -n ply03}
-PASS: gcc ply03_ply03.c ply03_ply03_ext.c ply03_ply03_loop.c 
+PASS: gcc ply03_ply03.c ply03_ply03_loop.c 
 PASS: ./lus2lic {-o /tmp/param_struct.lic should_work/param_struct.lus}
 PASS: ./lus2lic {-ec -o /tmp/param_struct.ec should_work/param_struct.lus}
 PASS: ./myec2c {-o /tmp/param_struct.c /tmp/param_struct.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/param_struct.lus
 PASS: ./lus2lic {-2c should_work/param_struct.lus -n param_struct}
-PASS: gcc param_struct_param_struct.c param_struct_param_struct_ext.c param_struct_param_struct_loop.c 
+PASS: gcc param_struct_param_struct.c param_struct_param_struct_loop.c 
 PASS: ./lus2lic {-o /tmp/minmax2.lic should_work/minmax2.lus}
 PASS: ./lus2lic {-ec -o /tmp/minmax2.ec should_work/minmax2.lus}
 PASS: ./myec2c {-o /tmp/minmax2.c /tmp/minmax2.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/minmax2.lus
 PASS: ./lus2lic {-2c should_work/minmax2.lus -n minmax2}
-PASS: gcc minmax2_minmax2.c minmax2_minmax2_ext.c minmax2_minmax2_loop.c 
+PASS: gcc minmax2_minmax2.c minmax2_minmax2_loop.c 
 PASS: ./lus2lic {-o /tmp/plus.lic should_work/plus.lus}
 PASS: ./lus2lic {-ec -o /tmp/plus.ec should_work/plus.lus}
 PASS: ./myec2c {-o /tmp/plus.c /tmp/plus.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/plus.lus
 PASS: ./lus2lic {-2c should_work/plus.lus -n plus}
-PASS: gcc plus_plus.c plus_plus_ext.c plus_plus_loop.c 
+PASS: gcc plus_plus.c plus_plus_loop.c 
 PASS: ./lus2lic {-o /tmp/xx.lic should_work/xx.lus}
 PASS: ./lus2lic {-ec -o /tmp/xx.ec should_work/xx.lus}
 PASS: ./myec2c {-o /tmp/xx.c /tmp/xx.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/xx.lus
 PASS: ./lus2lic {-2c should_work/xx.lus -n xx}
-PASS: gcc xx_xx.c xx_xx_ext.c xx_xx_loop.c 
+PASS: gcc xx_xx.c xx_xx_loop.c 
 PASS: ./lus2lic {-o /tmp/call07.lic should_work/call07.lus}
 PASS: ./lus2lic {-ec -o /tmp/call07.ec should_work/call07.lus}
 PASS: ./myec2c {-o /tmp/call07.c /tmp/call07.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/call07.lus
 PASS: ./lus2lic {-2c should_work/call07.lus -n call07}
-PASS: gcc call07_call07.c call07_call07_ext.c call07_call07_loop.c 
+PASS: gcc call07_call07.c call07_call07_loop.c 
 PASS: ./lus2lic {-o /tmp/shift_ludic.lic should_work/shift_ludic.lus}
 PASS: ./lus2lic {-ec -o /tmp/shift_ludic.ec should_work/shift_ludic.lus}
 PASS: ./myec2c {-o /tmp/shift_ludic.c /tmp/shift_ludic.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/shift_ludic.lus
 PASS: ./lus2lic {-2c should_work/shift_ludic.lus -n shift_ludic}
-PASS: gcc shift_ludic_shift_ludic.c shift_ludic_shift_ludic_ext.c shift_ludic_shift_ludic_loop.c 
+PASS: gcc shift_ludic_shift_ludic.c shift_ludic_shift_ludic_loop.c 
 PASS: ./lus2lic {-o /tmp/pilote-1.0.lic should_work/pilote-1.0.lus}
 PASS: ./lus2lic {-ec -o /tmp/pilote-1.0.ec should_work/pilote-1.0.lus}
 PASS: ./myec2c {-o /tmp/pilote-1.0.c /tmp/pilote-1.0.ec}
@@ -502,7 +502,7 @@ PASS: ./lus2lic {-ec -o /tmp/trivial.ec should_work/trivial.lus}
 PASS: ./myec2c {-o /tmp/trivial.c /tmp/trivial.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/trivial.lus
 PASS: ./lus2lic {-2c should_work/trivial.lus -n trivial}
-PASS: gcc trivial_trivial.c trivial_trivial_ext.c trivial_trivial_loop.c 
+PASS: gcc trivial_trivial.c trivial_trivial_loop.c 
 PASS: ./lus2lic {-o /tmp/packs.lic should_work/packs.lus}
 PASS: ./lus2lic {-ec -o /tmp/packs.ec should_work/packs.lus}
 PASS: ./myec2c {-o /tmp/packs.c /tmp/packs.ec}
@@ -513,7 +513,7 @@ PASS: ./lus2lic {-ec -o /tmp/sincos.ec should_work/sincos.lus}
 PASS: ./myec2c {-o /tmp/sincos.c /tmp/sincos.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/sincos.lus
 PASS: ./lus2lic {-2c should_work/sincos.lus -n sincos}
-PASS: gcc sincos_sincos.c sincos_sincos_ext.c sincos_sincos_loop.c 
+PASS: gcc sincos_sincos.c sincos_sincos_loop.c 
 PASS: ./lus2lic {-o /tmp/newpacks.lic should_work/newpacks.lus}
 PASS: ./lus2lic {-ec -o /tmp/newpacks.ec should_work/newpacks.lus}
 PASS: ./myec2c {-o /tmp/newpacks.c /tmp/newpacks.ec}
@@ -524,37 +524,37 @@ PASS: ./lus2lic {-ec -o /tmp/morel5.ec should_work/morel5.lus}
 PASS: ./myec2c {-o /tmp/morel5.c /tmp/morel5.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/morel5.lus
 PASS: ./lus2lic {-2c should_work/morel5.lus -n morel5}
-PASS: gcc morel5_morel5.c morel5_morel5_ext.c morel5_morel5_loop.c 
+PASS: gcc morel5_morel5.c morel5_morel5_loop.c 
 PASS: ./lus2lic {-o /tmp/bred.lic should_work/bred.lus}
 PASS: ./lus2lic {-ec -o /tmp/bred.ec should_work/bred.lus}
 PASS: ./myec2c {-o /tmp/bred.c /tmp/bred.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/bred.lus
 PASS: ./lus2lic {-2c should_work/bred.lus -n bred}
-PASS: gcc bred_bred.c bred_bred_ext.c bred_bred_loop.c 
+PASS: gcc bred_bred.c bred_bred_loop.c 
 PASS: ./lus2lic {-o /tmp/test_diese.lic should_work/test_diese.lus}
 PASS: ./lus2lic {-ec -o /tmp/test_diese.ec should_work/test_diese.lus}
 PASS: ./myec2c {-o /tmp/test_diese.c /tmp/test_diese.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/test_diese.lus
 PASS: ./lus2lic {-2c should_work/test_diese.lus -n test_diese}
-PASS: gcc test_diese_test_diese.c test_diese_test_diese_ext.c test_diese_test_diese_loop.c 
+PASS: gcc test_diese_test_diese.c test_diese_test_diese_loop.c 
 PASS: ./lus2lic {-o /tmp/tri.lic should_work/tri.lus}
 PASS: ./lus2lic {-ec -o /tmp/tri.ec should_work/tri.lus}
 PASS: ./myec2c {-o /tmp/tri.c /tmp/tri.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/tri.lus
 PASS: ./lus2lic {-2c should_work/tri.lus -n tri}
-PASS: gcc tri_tri.c tri_tri_ext.c tri_tri_loop.c 
+PASS: gcc tri_tri.c tri_tri_loop.c 
 PASS: ./lus2lic {-o /tmp/calculs_max.lic should_work/calculs_max.lus}
 PASS: ./lus2lic {-ec -o /tmp/calculs_max.ec should_work/calculs_max.lus}
 PASS: ./myec2c {-o /tmp/calculs_max.c /tmp/calculs_max.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/calculs_max.lus
 PASS: ./lus2lic {-2c should_work/calculs_max.lus -n calculs_max}
-PASS: gcc calculs_max_calculs_max.c calculs_max_calculs_max_ext.c calculs_max_calculs_max_loop.c 
+PASS: gcc calculs_max_calculs_max.c calculs_max_calculs_max_loop.c 
 PASS: ./lus2lic {-o /tmp/testCA.lic should_work/testCA.lus}
 PASS: ./lus2lic {-ec -o /tmp/testCA.ec should_work/testCA.lus}
 PASS: ./myec2c {-o /tmp/testCA.c /tmp/testCA.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/testCA.lus
 PASS: ./lus2lic {-2c should_work/testCA.lus -n testCA}
-PASS: gcc testCA_testCA.c testCA_testCA_ext.c testCA_testCA_loop.c 
+PASS: gcc testCA_testCA.c testCA_testCA_loop.c 
 PASS: ./lus2lic {-o /tmp/test_extern.lic should_work/test_extern.lus}
 PASS: ./lus2lic {-ec -o /tmp/test_extern.ec should_work/test_extern.lus}
 PASS: ./myec2c {-o /tmp/test_extern.c /tmp/test_extern.ec}
@@ -572,19 +572,19 @@ PASS: ./lus2lic {-ec -o /tmp/noAlarm.ec should_work/noAlarm.lus}
 PASS: ./myec2c {-o /tmp/noAlarm.c /tmp/noAlarm.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/noAlarm.lus
 PASS: ./lus2lic {-2c should_work/noAlarm.lus -n noAlarm}
-PASS: gcc noAlarm_noAlarm.c noAlarm_noAlarm_ext.c noAlarm_noAlarm_loop.c 
+PASS: gcc noAlarm_noAlarm.c noAlarm_noAlarm_loop.c 
 PASS: ./lus2lic {-o /tmp/clock_ite.lic should_work/clock_ite.lus}
 PASS: ./lus2lic {-ec -o /tmp/clock_ite.ec should_work/clock_ite.lus}
 PASS: ./myec2c {-o /tmp/clock_ite.c /tmp/clock_ite.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/clock_ite.lus
 PASS: ./lus2lic {-2c should_work/clock_ite.lus -n clock_ite}
-PASS: gcc clock_ite_clock_ite.c clock_ite_clock_ite_ext.c clock_ite_clock_ite_loop.c 
+PASS: gcc clock_ite_clock_ite.c clock_ite_clock_ite_loop.c 
 PASS: ./lus2lic {-o /tmp/morel4.lic should_work/morel4.lus}
 PASS: ./lus2lic {-ec -o /tmp/morel4.ec should_work/morel4.lus}
 PASS: ./myec2c {-o /tmp/morel4.c /tmp/morel4.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/morel4.lus
 FAIL: Generate c code  : ./lus2lic {-2c should_work/morel4.lus -n morel4}
-FAIL: Check that the generated C code compiles  : gcc morel4_morel4.c morel4_morel4_ext.c morel4_morel4_loop.c 
+FAIL: Check that the generated C code compiles  : gcc morel4_morel4.c morel4_morel4_loop.c 
 PASS: ./lus2lic {-o /tmp/trivial_array.lic should_work/trivial_array.lus}
 FAIL: Generate ec code  : ./lus2lic {-ec -o /tmp/trivial_array.ec should_work/trivial_array.lus}
 PASS: ./lus2lic {-o /tmp/param_node4.lic should_work/param_node4.lus}
@@ -592,121 +592,121 @@ PASS: ./lus2lic {-ec -o /tmp/param_node4.ec should_work/param_node4.lus}
 PASS: ./myec2c {-o /tmp/param_node4.c /tmp/param_node4.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/param_node4.lus
 PASS: ./lus2lic {-2c should_work/param_node4.lus -n param_node4}
-PASS: gcc param_node4_param_node4.c param_node4_param_node4_ext.c param_node4_param_node4_loop.c 
+PASS: gcc param_node4_param_node4.c param_node4_param_node4_loop.c 
 PASS: ./lus2lic {-o /tmp/bad_call03.lic should_work/bad_call03.lus}
 PASS: ./lus2lic {-ec -o /tmp/bad_call03.ec should_work/bad_call03.lus}
 PASS: ./myec2c {-o /tmp/bad_call03.c /tmp/bad_call03.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/bad_call03.lus
 PASS: ./lus2lic {-2c should_work/bad_call03.lus -n bad_call03}
-PASS: gcc bad_call03_bad_call03.c bad_call03_bad_call03_ext.c bad_call03_bad_call03_loop.c 
+PASS: gcc bad_call03_bad_call03.c bad_call03_bad_call03_loop.c 
 PASS: ./lus2lic {-o /tmp/onlyroll.lic should_work/onlyroll.lus}
 PASS: ./lus2lic {-ec -o /tmp/onlyroll.ec should_work/onlyroll.lus}
 PASS: ./myec2c {-o /tmp/onlyroll.c /tmp/onlyroll.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/onlyroll.lus
 PASS: ./lus2lic {-2c should_work/onlyroll.lus -n onlyroll}
-PASS: gcc onlyroll_onlyroll.c onlyroll_onlyroll_ext.c onlyroll_onlyroll_loop.c 
+PASS: gcc onlyroll_onlyroll.c onlyroll_onlyroll_loop.c 
 PASS: ./lus2lic {-o /tmp/produitBool.lic should_work/produitBool.lus}
 PASS: ./lus2lic {-ec -o /tmp/produitBool.ec should_work/produitBool.lus}
 PASS: ./myec2c {-o /tmp/produitBool.c /tmp/produitBool.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/produitBool.lus
 PASS: ./lus2lic {-2c should_work/produitBool.lus -n produitBool}
-PASS: gcc produitBool_produitBool.c produitBool_produitBool_ext.c produitBool_produitBool_loop.c 
+PASS: gcc produitBool_produitBool.c produitBool_produitBool_loop.c 
 PASS: ./lus2lic {-o /tmp/noeudsIndependants.lic should_work/noeudsIndependants.lus}
 PASS: ./lus2lic {-ec -o /tmp/noeudsIndependants.ec should_work/noeudsIndependants.lus}
 PASS: ./myec2c {-o /tmp/noeudsIndependants.c /tmp/noeudsIndependants.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/noeudsIndependants.lus
 PASS: ./lus2lic {-2c should_work/noeudsIndependants.lus -n noeudsIndependants}
-PASS: gcc noeudsIndependants_noeudsIndependants.c noeudsIndependants_noeudsIndependants_ext.c noeudsIndependants_noeudsIndependants_loop.c 
+PASS: gcc noeudsIndependants_noeudsIndependants.c noeudsIndependants_noeudsIndependants_loop.c 
 PASS: ./lus2lic {-o /tmp/mouse.lic should_work/mouse.lus}
 PASS: ./lus2lic {-ec -o /tmp/mouse.ec should_work/mouse.lus}
 PASS: ./myec2c {-o /tmp/mouse.c /tmp/mouse.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/mouse.lus
 PASS: ./lus2lic {-2c should_work/mouse.lus -n mouse}
-PASS: gcc mouse_mouse.c mouse_mouse_ext.c mouse_mouse_loop.c 
+PASS: gcc mouse_mouse.c mouse_mouse_loop.c 
 PASS: ./lus2lic {-o /tmp/param_node3.lic should_work/param_node3.lus}
 PASS: ./lus2lic {-ec -o /tmp/param_node3.ec should_work/param_node3.lus}
 PASS: ./myec2c {-o /tmp/param_node3.c /tmp/param_node3.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/param_node3.lus
 PASS: ./lus2lic {-2c should_work/param_node3.lus -n param_node3}
-PASS: gcc param_node3_param_node3.c param_node3_param_node3_ext.c param_node3_param_node3_loop.c 
+PASS: gcc param_node3_param_node3.c param_node3_param_node3_loop.c 
 PASS: ./lus2lic {-o /tmp/pipeline.lic should_work/pipeline.lus}
 PASS: ./lus2lic {-ec -o /tmp/pipeline.ec should_work/pipeline.lus}
 PASS: ./myec2c {-o /tmp/pipeline.c /tmp/pipeline.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/pipeline.lus
 PASS: ./lus2lic {-2c should_work/pipeline.lus -n pipeline}
-PASS: gcc pipeline_pipeline.c pipeline_pipeline_ext.c pipeline_pipeline_loop.c 
+PASS: gcc pipeline_pipeline.c pipeline_pipeline_loop.c 
 PASS: ./lus2lic {-o /tmp/mapinf.lic should_work/mapinf.lus}
 PASS: ./lus2lic {-ec -o /tmp/mapinf.ec should_work/mapinf.lus}
 PASS: ./myec2c {-o /tmp/mapinf.c /tmp/mapinf.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/mapinf.lus
 PASS: ./lus2lic {-2c should_work/mapinf.lus -n mapinf}
-PASS: gcc mapinf_mapinf.c mapinf_mapinf_ext.c mapinf_mapinf_loop.c 
+PASS: gcc mapinf_mapinf.c mapinf_mapinf_loop.c 
 PASS: ./lus2lic {-o /tmp/integrator.lic should_work/integrator.lus}
 PASS: ./lus2lic {-ec -o /tmp/integrator.ec should_work/integrator.lus}
 PASS: ./myec2c {-o /tmp/integrator.c /tmp/integrator.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/integrator.lus
 PASS: ./lus2lic {-2c should_work/integrator.lus -n integrator}
-PASS: gcc integrator_integrator.c integrator_integrator_ext.c integrator_integrator_loop.c 
+PASS: gcc integrator_integrator.c integrator_integrator_loop.c 
 PASS: ./lus2lic {-o /tmp/nc4.lic should_work/nc4.lus}
 PASS: ./lus2lic {-ec -o /tmp/nc4.ec should_work/nc4.lus}
 PASS: ./myec2c {-o /tmp/nc4.c /tmp/nc4.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/nc4.lus
 PASS: ./lus2lic {-2c should_work/nc4.lus -n nc4}
-PASS: gcc nc4_nc4.c nc4_nc4_ext.c nc4_nc4_loop.c 
+PASS: gcc nc4_nc4.c nc4_nc4_loop.c 
 PASS: ./lus2lic {-o /tmp/mm3.lic should_work/mm3.lus}
 PASS: ./lus2lic {-ec -o /tmp/mm3.ec should_work/mm3.lus}
 PASS: ./myec2c {-o /tmp/mm3.c /tmp/mm3.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/mm3.lus
 PASS: ./lus2lic {-2c should_work/mm3.lus -n mm3}
-PASS: gcc mm3_mm3.c mm3_mm3_ext.c mm3_mm3_loop.c 
+PASS: gcc mm3_mm3.c mm3_mm3_loop.c 
 PASS: ./lus2lic {-o /tmp/over2.lic should_work/over2.lus}
 PASS: ./lus2lic {-ec -o /tmp/over2.ec should_work/over2.lus}
 PASS: ./myec2c {-o /tmp/over2.c /tmp/over2.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/over2.lus
 PASS: ./lus2lic {-2c should_work/over2.lus -n over2}
-PASS: gcc over2_over2.c over2_over2_ext.c over2_over2_loop.c 
+PASS: gcc over2_over2.c over2_over2_loop.c 
 PASS: ./lus2lic {-o /tmp/over3.lic should_work/over3.lus}
 PASS: ./lus2lic {-ec -o /tmp/over3.ec should_work/over3.lus}
 PASS: ./myec2c {-o /tmp/over3.c /tmp/over3.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/over3.lus
 PASS: ./lus2lic {-2c should_work/over3.lus -n over3}
-PASS: gcc over3_over3.c over3_over3_ext.c over3_over3_loop.c 
+PASS: gcc over3_over3.c over3_over3_loop.c 
 PASS: ./lus2lic {-o /tmp/complex.lic should_work/complex.lus}
 PASS: ./lus2lic {-ec -o /tmp/complex.ec should_work/complex.lus}
 PASS: ./myec2c {-o /tmp/complex.c /tmp/complex.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/complex.lus
 PASS: ./lus2lic {-2c should_work/complex.lus -n complex}
-PASS: gcc complex_complex.c complex_complex_ext.c complex_complex_loop.c 
+PASS: gcc complex_complex.c complex_complex_loop.c 
 PASS: ./lus2lic {-o /tmp/initial.lic should_work/initial.lus}
 PASS: ./lus2lic {-ec -o /tmp/initial.ec should_work/initial.lus}
 PASS: ./myec2c {-o /tmp/initial.c /tmp/initial.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/initial.lus
 PASS: ./lus2lic {-2c should_work/initial.lus -n initial}
-PASS: gcc initial_initial.c initial_initial_ext.c initial_initial_loop.c 
+PASS: gcc initial_initial.c initial_initial_loop.c 
 PASS: ./lus2lic {-o /tmp/declaration.lic should_work/declaration.lus}
 PASS: ./lus2lic {-ec -o /tmp/declaration.ec should_work/declaration.lus}
 PASS: ./myec2c {-o /tmp/declaration.c /tmp/declaration.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/declaration.lus
 PASS: ./lus2lic {-2c should_work/declaration.lus -n declaration}
-PASS: gcc declaration_declaration.c declaration_declaration_ext.c declaration_declaration_loop.c 
+PASS: gcc declaration_declaration.c declaration_declaration_loop.c 
 PASS: ./lus2lic {-o /tmp/PCOND1.lic should_work/PCOND1.lus}
 PASS: ./lus2lic {-ec -o /tmp/PCOND1.ec should_work/PCOND1.lus}
 PASS: ./myec2c {-o /tmp/PCOND1.c /tmp/PCOND1.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/PCOND1.lus
 PASS: ./lus2lic {-2c should_work/PCOND1.lus -n PCOND1}
-PASS: gcc PCOND1_PCOND1.c PCOND1_PCOND1_ext.c PCOND1_PCOND1_loop.c 
+PASS: gcc PCOND1_PCOND1.c PCOND1_PCOND1_loop.c 
 PASS: ./lus2lic {-o /tmp/TIME_STABLE1.lic should_work/TIME_STABLE1.lus}
 PASS: ./lus2lic {-ec -o /tmp/TIME_STABLE1.ec should_work/TIME_STABLE1.lus}
 PASS: ./myec2c {-o /tmp/TIME_STABLE1.c /tmp/TIME_STABLE1.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/TIME_STABLE1.lus
 PASS: ./lus2lic {-2c should_work/TIME_STABLE1.lus -n TIME_STABLE1}
-PASS: gcc TIME_STABLE1_TIME_STABLE1.c TIME_STABLE1_TIME_STABLE1_ext.c TIME_STABLE1_TIME_STABLE1_loop.c 
+PASS: gcc TIME_STABLE1_TIME_STABLE1.c TIME_STABLE1_TIME_STABLE1_loop.c 
 PASS: ./lus2lic {-o /tmp/nc5.lic should_work/nc5.lus}
 PASS: ./lus2lic {-ec -o /tmp/nc5.ec should_work/nc5.lus}
 PASS: ./myec2c {-o /tmp/nc5.c /tmp/nc5.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/nc5.lus
 PASS: ./lus2lic {-2c should_work/nc5.lus -n nc5}
-PASS: gcc nc5_nc5.c nc5_nc5_ext.c nc5_nc5_loop.c 
+PASS: gcc nc5_nc5.c nc5_nc5_loop.c 
 PASS: ./lus2lic {-o /tmp/call.lic should_work/call.lus}
 PASS: ./lus2lic {-ec -o /tmp/call.ec should_work/call.lus}
 PASS: ./myec2c {-o /tmp/call.c /tmp/call.ec}
@@ -718,19 +718,19 @@ PASS: ./lus2lic {-ec -o /tmp/mouse1.ec should_work/mouse1.lus}
 PASS: ./myec2c {-o /tmp/mouse1.c /tmp/mouse1.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/mouse1.lus
 PASS: ./lus2lic {-2c should_work/mouse1.lus -n mouse1}
-PASS: gcc mouse1_mouse1.c mouse1_mouse1_ext.c mouse1_mouse1_loop.c 
+PASS: gcc mouse1_mouse1.c mouse1_mouse1_loop.c 
 PASS: ./lus2lic {-o /tmp/lustre_test1_ok.lic should_work/lustre_test1_ok.lus}
 PASS: ./lus2lic {-ec -o /tmp/lustre_test1_ok.ec should_work/lustre_test1_ok.lus}
 PASS: ./myec2c {-o /tmp/lustre_test1_ok.c /tmp/lustre_test1_ok.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/lustre_test1_ok.lus
 PASS: ./lus2lic {-2c should_work/lustre_test1_ok.lus -n lustre_test1_ok}
-PASS: gcc lustre_test1_ok_lustre_test1_ok.c lustre_test1_ok_lustre_test1_ok_ext.c lustre_test1_ok_lustre_test1_ok_loop.c 
+PASS: gcc lustre_test1_ok_lustre_test1_ok.c lustre_test1_ok_lustre_test1_ok_loop.c 
 PASS: ./lus2lic {-o /tmp/compteur.lic should_work/compteur.lus}
 PASS: ./lus2lic {-ec -o /tmp/compteur.ec should_work/compteur.lus}
 PASS: ./myec2c {-o /tmp/compteur.c /tmp/compteur.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/compteur.lus
 PASS: ./lus2lic {-2c should_work/compteur.lus -n compteur}
-PASS: gcc compteur_compteur.c compteur_compteur_ext.c compteur_compteur_loop.c 
+PASS: gcc compteur_compteur.c compteur_compteur_loop.c 
 PASS: ./lus2lic {-o /tmp/Int.lic should_work/Int.lus}
 PASS: ./lus2lic {-ec -o /tmp/Int.ec should_work/Int.lus}
 PASS: ./myec2c {-o /tmp/Int.c /tmp/Int.ec}
@@ -743,7 +743,7 @@ PASS: ./lus2lic {-ec -o /tmp/t2.ec should_work/t2.lus}
 PASS: ./myec2c {-o /tmp/t2.c /tmp/t2.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/t2.lus
 PASS: ./lus2lic {-2c should_work/t2.lus -n t2}
-PASS: gcc t2_t2.c t2_t2_ext.c t2_t2_loop.c 
+PASS: gcc t2_t2.c t2_t2_loop.c 
 PASS: ./lus2lic {-o /tmp/arbitre.lic should_work/arbitre.lus}
 PASS: ./lus2lic {-ec -o /tmp/arbitre.ec should_work/arbitre.lus}
 PASS: ./myec2c {-o /tmp/arbitre.c /tmp/arbitre.ec}
@@ -755,7 +755,7 @@ PASS: ./lus2lic {-ec -o /tmp/test_const.ec should_work/test_const.lus}
 PASS: ./myec2c {-o /tmp/test_const.c /tmp/test_const.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/test_const.lus
 PASS: ./lus2lic {-2c should_work/test_const.lus -n test_const}
-PASS: gcc test_const_test_const.c test_const_test_const_ext.c test_const_test_const_loop.c 
+PASS: gcc test_const_test_const.c test_const_test_const_loop.c 
 PASS: ./lus2lic {-o /tmp/when_tuple.lic should_work/when_tuple.lus}
 PASS: ./lus2lic {-ec -o /tmp/when_tuple.ec should_work/when_tuple.lus}
 PASS: ./myec2c {-o /tmp/when_tuple.c /tmp/when_tuple.ec}
@@ -767,7 +767,7 @@ PASS: ./lus2lic {-ec -o /tmp/carV2.ec should_work/carV2.lus}
 PASS: ./myec2c {-o /tmp/carV2.c /tmp/carV2.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/carV2.lus
 PASS: ./lus2lic {-2c should_work/carV2.lus -n carV2}
-PASS: gcc carV2_carV2.c carV2_carV2_ext.c carV2_carV2_loop.c 
+PASS: gcc carV2_carV2.c carV2_carV2_loop.c 
 PASS: ./lus2lic {-o /tmp/test_merge.lic should_work/test_merge.lus}
 PASS: ./lus2lic {-ec -o /tmp/test_merge.ec should_work/test_merge.lus}
 FAIL: Try ec2c on the result: ./myec2c {-o /tmp/test_merge.c /tmp/test_merge.ec}
@@ -776,49 +776,49 @@ PASS: ./lus2lic {-ec -o /tmp/FillFollowedByRed.ec should_work/FillFollowedByRed.
 PASS: ./myec2c {-o /tmp/FillFollowedByRed.c /tmp/FillFollowedByRed.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/FillFollowedByRed.lus
 PASS: ./lus2lic {-2c should_work/FillFollowedByRed.lus -n FillFollowedByRed}
-PASS: gcc FillFollowedByRed_FillFollowedByRed.c FillFollowedByRed_FillFollowedByRed_ext.c FillFollowedByRed_FillFollowedByRed_loop.c 
+PASS: gcc FillFollowedByRed_FillFollowedByRed.c FillFollowedByRed_FillFollowedByRed_loop.c 
 PASS: ./lus2lic {-o /tmp/sample_time_change.lic should_work/sample_time_change.lus}
 PASS: ./lus2lic {-ec -o /tmp/sample_time_change.ec should_work/sample_time_change.lus}
 PASS: ./myec2c {-o /tmp/sample_time_change.c /tmp/sample_time_change.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/sample_time_change.lus
 PASS: ./lus2lic {-2c should_work/sample_time_change.lus -n sample_time_change}
-PASS: gcc sample_time_change_sample_time_change.c sample_time_change_sample_time_change_ext.c sample_time_change_sample_time_change_loop.c 
+PASS: gcc sample_time_change_sample_time_change.c sample_time_change_sample_time_change_loop.c 
 PASS: ./lus2lic {-o /tmp/test_enum.lic should_work/test_enum.lus}
 PASS: ./lus2lic {-ec -o /tmp/test_enum.ec should_work/test_enum.lus}
 PASS: ./myec2c {-o /tmp/test_enum.c /tmp/test_enum.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/test_enum.lus
 PASS: ./lus2lic {-2c should_work/test_enum.lus -n test_enum}
-PASS: gcc test_enum_test_enum.c test_enum_test_enum_ext.c test_enum_test_enum_loop.c 
+PASS: gcc test_enum_test_enum.c test_enum_test_enum_loop.c 
 PASS: ./lus2lic {-o /tmp/predef01.lic should_work/predef01.lus}
 PASS: ./lus2lic {-ec -o /tmp/predef01.ec should_work/predef01.lus}
 PASS: ./myec2c {-o /tmp/predef01.c /tmp/predef01.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/predef01.lus
 PASS: ./lus2lic {-2c should_work/predef01.lus -n predef01}
-PASS: gcc predef01_predef01.c predef01_predef01_ext.c predef01_predef01_loop.c 
+PASS: gcc predef01_predef01.c predef01_predef01_loop.c 
 PASS: ./lus2lic {-o /tmp/long_et_stupide_nom_de_noeud.lic should_work/long_et_stupide_nom_de_noeud.lus}
 PASS: ./lus2lic {-ec -o /tmp/long_et_stupide_nom_de_noeud.ec should_work/long_et_stupide_nom_de_noeud.lus}
 PASS: ./myec2c {-o /tmp/long_et_stupide_nom_de_noeud.c /tmp/long_et_stupide_nom_de_noeud.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/long_et_stupide_nom_de_noeud.lus
 PASS: ./lus2lic {-2c should_work/long_et_stupide_nom_de_noeud.lus -n long_et_stupide_nom_de_noeud}
-PASS: gcc long_et_stupide_nom_de_noeud_long_et_stupide_nom_de_noeud.c long_et_stupide_nom_de_noeud_long_et_stupide_nom_de_noeud_ext.c long_et_stupide_nom_de_noeud_long_et_stupide_nom_de_noeud_loop.c 
+PASS: gcc long_et_stupide_nom_de_noeud_long_et_stupide_nom_de_noeud.c long_et_stupide_nom_de_noeud_long_et_stupide_nom_de_noeud_loop.c 
 PASS: ./lus2lic {-o /tmp/CURRENT.lic should_work/CURRENT.lus}
 PASS: ./lus2lic {-ec -o /tmp/CURRENT.ec should_work/CURRENT.lus}
 PASS: ./myec2c {-o /tmp/CURRENT.c /tmp/CURRENT.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/CURRENT.lus
 PASS: ./lus2lic {-2c should_work/CURRENT.lus -n CURRENT}
-PASS: gcc CURRENT_CURRENT.c CURRENT_CURRENT_ext.c CURRENT_CURRENT_loop.c 
+PASS: gcc CURRENT_CURRENT.c CURRENT_CURRENT_loop.c 
 PASS: ./lus2lic {-o /tmp/left.lic should_work/left.lus}
 PASS: ./lus2lic {-ec -o /tmp/left.ec should_work/left.lus}
 PASS: ./myec2c {-o /tmp/left.c /tmp/left.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/left.lus
 FAIL: Generate c code  : ./lus2lic {-2c should_work/left.lus -n left}
-FAIL: Check that the generated C code compiles  : gcc left_left.c left_left_ext.c left_left_loop.c 
+FAIL: Check that the generated C code compiles  : gcc left_left.c left_left_loop.c 
 PASS: ./lus2lic {-o /tmp/ts04.lic should_work/ts04.lus}
 PASS: ./lus2lic {-ec -o /tmp/ts04.ec should_work/ts04.lus}
 PASS: ./myec2c {-o /tmp/ts04.c /tmp/ts04.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/ts04.lus
 PASS: ./lus2lic {-2c should_work/ts04.lus -n ts04}
-PASS: gcc ts04_ts04.c ts04_ts04_ext.c ts04_ts04_loop.c 
+PASS: gcc ts04_ts04.c ts04_ts04_loop.c 
 FAIL: without any option: ./lus2lic {-o /tmp/bug_map_fby.lic should_work/bug_map_fby.lus}
 FAIL: Generate ec code  : ./lus2lic {-ec -o /tmp/bug_map_fby.ec should_work/bug_map_fby.lus}
 PASS: ./lus2lic {-o /tmp/multiclock.lic should_work/multiclock.lus}
@@ -826,37 +826,43 @@ PASS: ./lus2lic {-ec -o /tmp/multiclock.ec should_work/multiclock.lus}
 PASS: ./myec2c {-o /tmp/multiclock.c /tmp/multiclock.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/multiclock.lus
 PASS: ./lus2lic {-2c should_work/multiclock.lus -n multiclock}
-PASS: gcc multiclock_multiclock.c multiclock_multiclock_ext.c multiclock_multiclock_loop.c 
+PASS: gcc multiclock_multiclock.c multiclock_multiclock_loop.c 
 PASS: ./lus2lic {-o /tmp/nc2.lic should_work/nc2.lus}
 PASS: ./lus2lic {-ec -o /tmp/nc2.ec should_work/nc2.lus}
 PASS: ./myec2c {-o /tmp/nc2.c /tmp/nc2.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/nc2.lus
 PASS: ./lus2lic {-2c should_work/nc2.lus -n nc2}
-PASS: gcc nc2_nc2.c nc2_nc2_ext.c nc2_nc2_loop.c 
+PASS: gcc nc2_nc2.c nc2_nc2_loop.c 
+PASS: ./lus2lic {-o /tmp/test_arrow.lic should_work/test_arrow.lus}
+PASS: ./lus2lic {-ec -o /tmp/test_arrow.ec should_work/test_arrow.lus}
+PASS: ./myec2c {-o /tmp/test_arrow.c /tmp/test_arrow.ec}
+PASS: ../utils/test_lus2lic_no_node should_work/test_arrow.lus
+PASS: ./lus2lic {-2c should_work/test_arrow.lus -n test_arrow}
+PASS: gcc test_arrow_test_arrow.c test_arrow_test_arrow_loop.c 
 PASS: ./lus2lic {-o /tmp/morel.lic should_work/morel.lus}
 PASS: ./lus2lic {-ec -o /tmp/morel.ec should_work/morel.lus}
 PASS: ./myec2c {-o /tmp/morel.c /tmp/morel.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/morel.lus
 FAIL: Generate c code  : ./lus2lic {-2c should_work/morel.lus -n morel}
-FAIL: Check that the generated C code compiles  : gcc morel_morel.c morel_morel_ext.c morel_morel_loop.c 
+FAIL: Check that the generated C code compiles  : gcc morel_morel.c morel_morel_loop.c 
 PASS: ./lus2lic {-o /tmp/SOURIS.lic should_work/SOURIS.lus}
 PASS: ./lus2lic {-ec -o /tmp/SOURIS.ec should_work/SOURIS.lus}
 PASS: ./myec2c {-o /tmp/SOURIS.c /tmp/SOURIS.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/SOURIS.lus
 PASS: ./lus2lic {-2c should_work/SOURIS.lus -n SOURIS}
-PASS: gcc SOURIS_SOURIS.c SOURIS_SOURIS_ext.c SOURIS_SOURIS_loop.c 
+PASS: gcc SOURIS_SOURIS.c SOURIS_SOURIS_loop.c 
 PASS: ./lus2lic {-o /tmp/param_node2.lic should_work/param_node2.lus}
 PASS: ./lus2lic {-ec -o /tmp/param_node2.ec should_work/param_node2.lus}
 PASS: ./myec2c {-o /tmp/param_node2.c /tmp/param_node2.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/param_node2.lus
 PASS: ./lus2lic {-2c should_work/param_node2.lus -n param_node2}
-PASS: gcc param_node2_param_node2.c param_node2_param_node2_ext.c param_node2_param_node2_loop.c 
+PASS: gcc param_node2_param_node2.c param_node2_param_node2_loop.c 
 PASS: ./lus2lic {-o /tmp/o2l_feux_compl.lic should_work/o2l_feux_compl.lus}
 PASS: ./lus2lic {-ec -o /tmp/o2l_feux_compl.ec should_work/o2l_feux_compl.lus}
 PASS: ./myec2c {-o /tmp/o2l_feux_compl.c /tmp/o2l_feux_compl.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/o2l_feux_compl.lus
 PASS: ./lus2lic {-2c should_work/o2l_feux_compl.lus -n o2l_feux_compl}
-PASS: gcc o2l_feux_compl_o2l_feux_compl.c o2l_feux_compl_o2l_feux_compl_ext.c o2l_feux_compl_o2l_feux_compl_loop.c 
+PASS: gcc o2l_feux_compl_o2l_feux_compl.c o2l_feux_compl_o2l_feux_compl_loop.c 
 PASS: ./lus2lic {-o /tmp/model.lic should_work/model.lus}
 PASS: ./lus2lic {-ec -o /tmp/model.ec should_work/model.lus}
 PASS: ./myec2c {-o /tmp/model.c /tmp/model.ec}
@@ -867,55 +873,55 @@ PASS: ./lus2lic {-ec -o /tmp/matrice.ec should_work/matrice.lus}
 PASS: ./myec2c {-o /tmp/matrice.c /tmp/matrice.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/matrice.lus
 PASS: ./lus2lic {-2c should_work/matrice.lus -n matrice}
-PASS: gcc matrice_matrice.c matrice_matrice_ext.c matrice_matrice_loop.c 
+PASS: gcc matrice_matrice.c matrice_matrice_loop.c 
 PASS: ./lus2lic {-o /tmp/TIME_STABLE.lic should_work/TIME_STABLE.lus}
 PASS: ./lus2lic {-ec -o /tmp/TIME_STABLE.ec should_work/TIME_STABLE.lus}
 PASS: ./myec2c {-o /tmp/TIME_STABLE.c /tmp/TIME_STABLE.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/TIME_STABLE.lus
 PASS: ./lus2lic {-2c should_work/TIME_STABLE.lus -n TIME_STABLE}
-PASS: gcc TIME_STABLE_TIME_STABLE.c TIME_STABLE_TIME_STABLE_ext.c TIME_STABLE_TIME_STABLE_loop.c 
+PASS: gcc TIME_STABLE_TIME_STABLE.c TIME_STABLE_TIME_STABLE_loop.c 
 PASS: ./lus2lic {-o /tmp/cpt.lic should_work/cpt.lus}
 PASS: ./lus2lic {-ec -o /tmp/cpt.ec should_work/cpt.lus}
 PASS: ./myec2c {-o /tmp/cpt.c /tmp/cpt.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/cpt.lus
 PASS: ./lus2lic {-2c should_work/cpt.lus -n cpt}
-PASS: gcc cpt_cpt.c cpt_cpt_ext.c cpt_cpt_loop.c 
+PASS: gcc cpt_cpt.c cpt_cpt_loop.c 
 PASS: ./lus2lic {-o /tmp/multipar.lic should_work/multipar.lus}
 PASS: ./lus2lic {-ec -o /tmp/multipar.ec should_work/multipar.lus}
 PASS: ./myec2c {-o /tmp/multipar.c /tmp/multipar.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/multipar.lus
 PASS: ./lus2lic {-2c should_work/multipar.lus -n multipar}
-PASS: gcc multipar_multipar.c multipar_multipar_ext.c multipar_multipar_loop.c 
+PASS: gcc multipar_multipar.c multipar_multipar_loop.c 
 PASS: ./lus2lic {-o /tmp/activation_ec.lic should_work/activation_ec.lus}
 PASS: ./lus2lic {-ec -o /tmp/activation_ec.ec should_work/activation_ec.lus}
 PASS: ./myec2c {-o /tmp/activation_ec.c /tmp/activation_ec.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/activation_ec.lus
 PASS: ./lus2lic {-2c should_work/activation_ec.lus -n activation_ec}
-PASS: gcc activation_ec_activation_ec.c activation_ec_activation_ec_ext.c activation_ec_activation_ec_loop.c 
+PASS: gcc activation_ec_activation_ec.c activation_ec_activation_ec_loop.c 
 PASS: ./lus2lic {-o /tmp/impl_priority.lic should_work/impl_priority.lus}
 PASS: ./lus2lic {-ec -o /tmp/impl_priority.ec should_work/impl_priority.lus}
 PASS: ./myec2c {-o /tmp/impl_priority.c /tmp/impl_priority.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/impl_priority.lus
 PASS: ./lus2lic {-2c should_work/impl_priority.lus -n impl_priority}
-PASS: gcc impl_priority_impl_priority.c impl_priority_impl_priority_ext.c impl_priority_impl_priority_loop.c 
+PASS: gcc impl_priority_impl_priority.c impl_priority_impl_priority_loop.c 
 PASS: ./lus2lic {-o /tmp/exclusion.lic should_work/exclusion.lus}
 PASS: ./lus2lic {-ec -o /tmp/exclusion.ec should_work/exclusion.lus}
 PASS: ./myec2c {-o /tmp/exclusion.c /tmp/exclusion.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/exclusion.lus
 PASS: ./lus2lic {-2c should_work/exclusion.lus -n exclusion}
-PASS: gcc exclusion_exclusion.c exclusion_exclusion_ext.c exclusion_exclusion_loop.c 
+PASS: gcc exclusion_exclusion.c exclusion_exclusion_loop.c 
 PASS: ./lus2lic {-o /tmp/ply01.lic should_work/ply01.lus}
 PASS: ./lus2lic {-ec -o /tmp/ply01.ec should_work/ply01.lus}
 PASS: ./myec2c {-o /tmp/ply01.c /tmp/ply01.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/ply01.lus
 PASS: ./lus2lic {-2c should_work/ply01.lus -n ply01}
-PASS: gcc ply01_ply01.c ply01_ply01_ext.c ply01_ply01_loop.c 
+PASS: gcc ply01_ply01.c ply01_ply01_loop.c 
 PASS: ./lus2lic {-o /tmp/consensus.lic should_work/consensus.lus}
 PASS: ./lus2lic {-ec -o /tmp/consensus.ec should_work/consensus.lus}
 PASS: ./myec2c {-o /tmp/consensus.c /tmp/consensus.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/consensus.lus
 PASS: ./lus2lic {-2c should_work/consensus.lus -n consensus}
-PASS: gcc consensus_consensus.c consensus_consensus_ext.c consensus_consensus_loop.c 
+PASS: gcc consensus_consensus.c consensus_consensus_loop.c 
 PASS: ./lus2lic {-o /tmp/activation2.lic should_work/activation2.lus}
 PASS: ./lus2lic {-ec -o /tmp/activation2.ec should_work/activation2.lus}
 PASS: ./myec2c {-o /tmp/activation2.c /tmp/activation2.ec}
@@ -926,7 +932,7 @@ PASS: ./lus2lic {-ec -o /tmp/type_decl.ec should_work/type_decl.lus}
 PASS: ./myec2c {-o /tmp/type_decl.c /tmp/type_decl.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/type_decl.lus
 PASS: ./lus2lic {-2c should_work/type_decl.lus -n type_decl}
-PASS: gcc type_decl_type_decl.c type_decl_type_decl_ext.c type_decl_type_decl_loop.c 
+PASS: gcc type_decl_type_decl.c type_decl_type_decl_loop.c 
 PASS: ./lus2lic {-o /tmp/import1.lic should_work/import1.lus}
 PASS: ./lus2lic {-ec -o /tmp/import1.ec should_work/import1.lus}
 PASS: ./myec2c {-o /tmp/import1.c /tmp/import1.ec}
@@ -938,67 +944,67 @@ PASS: ./lus2lic {-ec -o /tmp/pack1.ec should_work/pack1.lus}
 PASS: ./myec2c {-o /tmp/pack1.c /tmp/pack1.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/pack1.lus
 PASS: ./lus2lic {-2c should_work/pack1.lus -n pack1}
-PASS: gcc pack1_pack1.c pack1_pack1_ext.c pack1_pack1_loop.c 
+PASS: gcc pack1_pack1.c pack1_pack1_loop.c 
 PASS: ./lus2lic {-o /tmp/bob.lic should_work/bob.lus}
 PASS: ./lus2lic {-ec -o /tmp/bob.ec should_work/bob.lus}
 PASS: ./myec2c {-o /tmp/bob.c /tmp/bob.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/bob.lus
 PASS: ./lus2lic {-2c should_work/bob.lus -n bob}
-PASS: gcc bob_bob.c bob_bob_ext.c bob_bob_loop.c 
+PASS: gcc bob_bob.c bob_bob_loop.c 
 PASS: ./lus2lic {-o /tmp/notTwo.lic should_work/notTwo.lus}
 PASS: ./lus2lic {-ec -o /tmp/notTwo.ec should_work/notTwo.lus}
 PASS: ./myec2c {-o /tmp/notTwo.c /tmp/notTwo.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/notTwo.lus
 PASS: ./lus2lic {-2c should_work/notTwo.lus -n notTwo}
-PASS: gcc notTwo_notTwo.c notTwo_notTwo_ext.c notTwo_notTwo_loop.c 
+PASS: gcc notTwo_notTwo.c notTwo_notTwo_loop.c 
 PASS: ./lus2lic {-o /tmp/stopwatch.lic should_work/stopwatch.lus}
 PASS: ./lus2lic {-ec -o /tmp/stopwatch.ec should_work/stopwatch.lus}
 PASS: ./myec2c {-o /tmp/stopwatch.c /tmp/stopwatch.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/stopwatch.lus
 PASS: ./lus2lic {-2c should_work/stopwatch.lus -n stopwatch}
-PASS: gcc stopwatch_stopwatch.c stopwatch_stopwatch_ext.c stopwatch_stopwatch_loop.c 
+PASS: gcc stopwatch_stopwatch.c stopwatch_stopwatch_loop.c 
 PASS: ./lus2lic {-o /tmp/test_condact.lic should_work/test_condact.lus}
 PASS: ./lus2lic {-ec -o /tmp/test_condact.ec should_work/test_condact.lus}
 PASS: ./myec2c {-o /tmp/test_condact.c /tmp/test_condact.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/test_condact.lus
 PASS: ./lus2lic {-2c should_work/test_condact.lus -n test_condact}
-PASS: gcc test_condact_test_condact.c test_condact_test_condact_ext.c test_condact_test_condact_loop.c 
+PASS: gcc test_condact_test_condact.c test_condact_test_condact_loop.c 
 PASS: ./lus2lic {-o /tmp/contractForElementSelectionInArray.lic should_work/contractForElementSelectionInArray.lus}
 PASS: ./lus2lic {-ec -o /tmp/contractForElementSelectionInArray.ec should_work/contractForElementSelectionInArray.lus}
 PASS: ./myec2c {-o /tmp/contractForElementSelectionInArray.c /tmp/contractForElementSelectionInArray.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/contractForElementSelectionInArray.lus
 PASS: ./lus2lic {-2c should_work/contractForElementSelectionInArray.lus -n contractForElementSelectionInArray}
-PASS: gcc contractForElementSelectionInArray_contractForElementSelectionInArray.c contractForElementSelectionInArray_contractForElementSelectionInArray_ext.c contractForElementSelectionInArray_contractForElementSelectionInArray_loop.c 
+PASS: gcc contractForElementSelectionInArray_contractForElementSelectionInArray.c contractForElementSelectionInArray_contractForElementSelectionInArray_loop.c 
 PASS: ./lus2lic {-o /tmp/iterFibo.lic should_work/iterFibo.lus}
 PASS: ./lus2lic {-ec -o /tmp/iterFibo.ec should_work/iterFibo.lus}
 PASS: ./myec2c {-o /tmp/iterFibo.c /tmp/iterFibo.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/iterFibo.lus
 PASS: ./lus2lic {-2c should_work/iterFibo.lus -n iterFibo}
-PASS: gcc iterFibo_iterFibo.c iterFibo_iterFibo_ext.c iterFibo_iterFibo_loop.c 
+PASS: gcc iterFibo_iterFibo.c iterFibo_iterFibo_loop.c 
 PASS: ./lus2lic {-o /tmp/morel2.lic should_work/morel2.lus}
 PASS: ./lus2lic {-ec -o /tmp/morel2.ec should_work/morel2.lus}
 PASS: ./myec2c {-o /tmp/morel2.c /tmp/morel2.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/morel2.lus
 FAIL: Generate c code  : ./lus2lic {-2c should_work/morel2.lus -n morel2}
-FAIL: Check that the generated C code compiles  : gcc morel2_morel2.c morel2_morel2_ext.c morel2_morel2_loop.c 
+FAIL: Check that the generated C code compiles  : gcc morel2_morel2.c morel2_morel2_loop.c 
 PASS: ./lus2lic {-o /tmp/minmax1.lic should_work/minmax1.lus}
 PASS: ./lus2lic {-ec -o /tmp/minmax1.ec should_work/minmax1.lus}
 PASS: ./myec2c {-o /tmp/minmax1.c /tmp/minmax1.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/minmax1.lus
 PASS: ./lus2lic {-2c should_work/minmax1.lus -n minmax1}
-PASS: gcc minmax1_minmax1.c minmax1_minmax1_ext.c minmax1_minmax1_loop.c 
+PASS: gcc minmax1_minmax1.c minmax1_minmax1_loop.c 
 PASS: ./lus2lic {-o /tmp/aa.lic should_work/aa.lus}
 PASS: ./lus2lic {-ec -o /tmp/aa.ec should_work/aa.lus}
 PASS: ./myec2c {-o /tmp/aa.c /tmp/aa.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/aa.lus
 PASS: ./lus2lic {-2c should_work/aa.lus -n aa}
-PASS: gcc aa_aa.c aa_aa_ext.c aa_aa_loop.c 
+PASS: gcc aa_aa.c aa_aa_loop.c 
 PASS: ./lus2lic {-o /tmp/mouse3.lic should_work/mouse3.lus}
 PASS: ./lus2lic {-ec -o /tmp/mouse3.ec should_work/mouse3.lus}
 PASS: ./myec2c {-o /tmp/mouse3.c /tmp/mouse3.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/mouse3.lus
 PASS: ./lus2lic {-2c should_work/mouse3.lus -n mouse3}
-PASS: gcc mouse3_mouse3.c mouse3_mouse3_ext.c mouse3_mouse3_loop.c 
+PASS: gcc mouse3_mouse3.c mouse3_mouse3_loop.c 
 PASS: ./lus2lic {-o /tmp/array_concat.lic should_work/array_concat.lus}
 PASS: ./lus2lic {-ec -o /tmp/array_concat.ec should_work/array_concat.lus}
 FAIL: Try ec2c on the result: ./myec2c {-o /tmp/array_concat.c /tmp/array_concat.ec}
@@ -1007,19 +1013,19 @@ PASS: ./lus2lic {-ec -o /tmp/ex.ec should_work/ex.lus}
 PASS: ./myec2c {-o /tmp/ex.c /tmp/ex.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/ex.lus
 PASS: ./lus2lic {-2c should_work/ex.lus -n ex}
-PASS: gcc ex_ex.c ex_ex_ext.c ex_ex_loop.c 
+PASS: gcc ex_ex.c ex_ex_loop.c 
 PASS: ./lus2lic {-o /tmp/xxx.lic should_work/xxx.lus}
 PASS: ./lus2lic {-ec -o /tmp/xxx.ec should_work/xxx.lus}
 PASS: ./myec2c {-o /tmp/xxx.c /tmp/xxx.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/xxx.lus
 PASS: ./lus2lic {-2c should_work/xxx.lus -n xxx}
-PASS: gcc xxx_xxx.c xxx_xxx_ext.c xxx_xxx_loop.c 
+PASS: gcc xxx_xxx.c xxx_xxx_loop.c 
 PASS: ./lus2lic {-o /tmp/moyenne.lic should_work/moyenne.lus}
 PASS: ./lus2lic {-ec -o /tmp/moyenne.ec should_work/moyenne.lus}
 PASS: ./myec2c {-o /tmp/moyenne.c /tmp/moyenne.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/moyenne.lus
 PASS: ./lus2lic {-2c should_work/moyenne.lus -n moyenne}
-PASS: gcc moyenne_moyenne.c moyenne_moyenne_ext.c moyenne_moyenne_loop.c 
+PASS: gcc moyenne_moyenne.c moyenne_moyenne_loop.c 
 PASS: ./lus2lic {-o /tmp/activation1.lic should_work/activation1.lus}
 PASS: ./lus2lic {-ec -o /tmp/activation1.ec should_work/activation1.lus}
 PASS: ./myec2c {-o /tmp/activation1.c /tmp/activation1.ec}
@@ -1030,25 +1036,25 @@ PASS: ./lus2lic {-ec -o /tmp/call01.ec should_work/call01.lus}
 PASS: ./myec2c {-o /tmp/call01.c /tmp/call01.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/call01.lus
 PASS: ./lus2lic {-2c should_work/call01.lus -n call01}
-PASS: gcc call01_call01.c call01_call01_ext.c call01_call01_loop.c 
+PASS: gcc call01_call01.c call01_call01_loop.c 
 PASS: ./lus2lic {-o /tmp/bug.lic should_work/bug.lus}
 PASS: ./lus2lic {-ec -o /tmp/bug.ec should_work/bug.lus}
 PASS: ./myec2c {-o /tmp/bug.c /tmp/bug.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/bug.lus
 PASS: ./lus2lic {-2c should_work/bug.lus -n bug}
-PASS: gcc bug_bug.c bug_bug_ext.c bug_bug_loop.c 
+PASS: gcc bug_bug.c bug_bug_loop.c 
 PASS: ./lus2lic {-o /tmp/ck4.lic should_work/ck4.lus}
 PASS: ./lus2lic {-ec -o /tmp/ck4.ec should_work/ck4.lus}
 PASS: ./myec2c {-o /tmp/ck4.c /tmp/ck4.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/ck4.lus
 PASS: ./lus2lic {-2c should_work/ck4.lus -n ck4}
-PASS: gcc ck4_ck4.c ck4_ck4_ext.c ck4_ck4_loop.c 
+PASS: gcc ck4_ck4.c ck4_ck4_loop.c 
 PASS: ./lus2lic {-o /tmp/map_red_iter.lic should_work/map_red_iter.lus}
 PASS: ./lus2lic {-ec -o /tmp/map_red_iter.ec should_work/map_red_iter.lus}
 PASS: ./myec2c {-o /tmp/map_red_iter.c /tmp/map_red_iter.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/map_red_iter.lus
 PASS: ./lus2lic {-2c should_work/map_red_iter.lus -n map_red_iter}
-PASS: gcc map_red_iter_map_red_iter.c map_red_iter_map_red_iter_ext.c map_red_iter_map_red_iter_loop.c 
+PASS: gcc map_red_iter_map_red_iter.c map_red_iter_map_red_iter_loop.c 
 PASS: ./lus2lic {-o /tmp/p.lic should_work/p.lus}
 PASS: ./lus2lic {-ec -o /tmp/p.ec should_work/p.lus}
 PASS: ./myec2c {-o /tmp/p.c /tmp/p.ec}
@@ -1059,43 +1065,43 @@ PASS: ./lus2lic {-ec -o /tmp/struct0.ec should_work/struct0.lus}
 PASS: ./myec2c {-o /tmp/struct0.c /tmp/struct0.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/struct0.lus
 PASS: ./lus2lic {-2c should_work/struct0.lus -n struct0}
-PASS: gcc struct0_struct0.c struct0_struct0_ext.c struct0_struct0_loop.c 
+PASS: gcc struct0_struct0.c struct0_struct0_loop.c 
 PASS: ./lus2lic {-o /tmp/filliter.lic should_work/filliter.lus}
 PASS: ./lus2lic {-ec -o /tmp/filliter.ec should_work/filliter.lus}
 PASS: ./myec2c {-o /tmp/filliter.c /tmp/filliter.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/filliter.lus
 PASS: ./lus2lic {-2c should_work/filliter.lus -n filliter}
-PASS: gcc filliter_filliter.c filliter_filliter_ext.c filliter_filliter_loop.c 
+PASS: gcc filliter_filliter.c filliter_filliter_loop.c 
 PASS: ./lus2lic {-o /tmp/minmax4.lic should_work/minmax4.lus}
 PASS: ./lus2lic {-ec -o /tmp/minmax4.ec should_work/minmax4.lus}
 PASS: ./myec2c {-o /tmp/minmax4.c /tmp/minmax4.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/minmax4.lus
 PASS: ./lus2lic {-2c should_work/minmax4.lus -n minmax4}
-PASS: gcc minmax4_minmax4.c minmax4_minmax4_ext.c minmax4_minmax4_loop.c 
+PASS: gcc minmax4_minmax4.c minmax4_minmax4_loop.c 
 PASS: ./lus2lic {-o /tmp/nested.lic should_work/nested.lus}
 PASS: ./lus2lic {-ec -o /tmp/nested.ec should_work/nested.lus}
 PASS: ./myec2c {-o /tmp/nested.c /tmp/nested.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/nested.lus
 PASS: ./lus2lic {-2c should_work/nested.lus -n nested}
-PASS: gcc nested_nested.c nested_nested_ext.c nested_nested_loop.c 
+PASS: gcc nested_nested.c nested_nested_loop.c 
 PASS: ./lus2lic {-o /tmp/Gyroscope.lic should_work/Gyroscope.lus}
 PASS: ./lus2lic {-ec -o /tmp/Gyroscope.ec should_work/Gyroscope.lus}
 PASS: ./myec2c {-o /tmp/Gyroscope.c /tmp/Gyroscope.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/Gyroscope.lus
 PASS: ./lus2lic {-2c should_work/Gyroscope.lus -n Gyroscope}
-PASS: gcc Gyroscope_Gyroscope.c Gyroscope_Gyroscope_ext.c Gyroscope_Gyroscope_loop.c 
+PASS: gcc Gyroscope_Gyroscope.c Gyroscope_Gyroscope_loop.c 
 PASS: ./lus2lic {-o /tmp/test_map.lic should_work/test_map.lus}
 PASS: ./lus2lic {-ec -o /tmp/test_map.ec should_work/test_map.lus}
 PASS: ./myec2c {-o /tmp/test_map.c /tmp/test_map.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/test_map.lus
 PASS: ./lus2lic {-2c should_work/test_map.lus -n test_map}
-PASS: gcc test_map_test_map.c test_map_test_map_ext.c test_map_test_map_loop.c 
+PASS: gcc test_map_test_map.c test_map_test_map_loop.c 
 PASS: ./lus2lic {-o /tmp/followed_by.lic should_work/followed_by.lus}
 PASS: ./lus2lic {-ec -o /tmp/followed_by.ec should_work/followed_by.lus}
 PASS: ./myec2c {-o /tmp/followed_by.c /tmp/followed_by.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/followed_by.lus
 PASS: ./lus2lic {-2c should_work/followed_by.lus -n followed_by}
-PASS: gcc followed_by_followed_by.c followed_by_followed_by_ext.c followed_by_followed_by_loop.c 
+PASS: gcc followed_by_followed_by.c followed_by_followed_by_loop.c 
 PASS: ./lus2lic {-o /tmp/asservi.lic should_work/asservi.lus}
 PASS: ./lus2lic {-ec -o /tmp/asservi.ec should_work/asservi.lus}
 PASS: ./myec2c {-o /tmp/asservi.c /tmp/asservi.ec}
@@ -1106,13 +1112,13 @@ PASS: ./lus2lic {-ec -o /tmp/rediter.ec should_work/rediter.lus}
 PASS: ./myec2c {-o /tmp/rediter.c /tmp/rediter.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/rediter.lus
 PASS: ./lus2lic {-2c should_work/rediter.lus -n rediter}
-PASS: gcc rediter_rediter.c rediter_rediter_ext.c rediter_rediter_loop.c 
+PASS: gcc rediter_rediter.c rediter_rediter_loop.c 
 PASS: ./lus2lic {-o /tmp/mapdeRed.lic should_work/mapdeRed.lus}
 PASS: ./lus2lic {-ec -o /tmp/mapdeRed.ec should_work/mapdeRed.lus}
 PASS: ./myec2c {-o /tmp/mapdeRed.c /tmp/mapdeRed.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/mapdeRed.lus
 PASS: ./lus2lic {-2c should_work/mapdeRed.lus -n mapdeRed}
-PASS: gcc mapdeRed_mapdeRed.c mapdeRed_mapdeRed_ext.c mapdeRed_mapdeRed_loop.c 
+PASS: gcc mapdeRed_mapdeRed.c mapdeRed_mapdeRed_loop.c 
 PASS: ./lus2lic {-o /tmp/modelInst.lic should_work/modelInst.lus}
 PASS: ./lus2lic {-ec -o /tmp/modelInst.ec should_work/modelInst.lus}
 PASS: ./myec2c {-o /tmp/modelInst.c /tmp/modelInst.ec}
@@ -1123,19 +1129,19 @@ PASS: ./lus2lic {-ec -o /tmp/dependeur_struct.ec should_work/dependeur_struct.lu
 PASS: ./myec2c {-o /tmp/dependeur_struct.c /tmp/dependeur_struct.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/dependeur_struct.lus
 PASS: ./lus2lic {-2c should_work/dependeur_struct.lus -n dependeur_struct}
-PASS: gcc dependeur_struct_dependeur_struct.c dependeur_struct_dependeur_struct_ext.c dependeur_struct_dependeur_struct_loop.c 
+PASS: gcc dependeur_struct_dependeur_struct.c dependeur_struct_dependeur_struct_loop.c 
 PASS: ./lus2lic {-o /tmp/minmax4_bis.lic should_work/minmax4_bis.lus}
 PASS: ./lus2lic {-ec -o /tmp/minmax4_bis.ec should_work/minmax4_bis.lus}
 PASS: ./myec2c {-o /tmp/minmax4_bis.c /tmp/minmax4_bis.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/minmax4_bis.lus
 PASS: ./lus2lic {-2c should_work/minmax4_bis.lus -n minmax4_bis}
-PASS: gcc minmax4_bis_minmax4_bis.c minmax4_bis_minmax4_bis_ext.c minmax4_bis_minmax4_bis_loop.c 
+PASS: gcc minmax4_bis_minmax4_bis.c minmax4_bis_minmax4_bis_loop.c 
 PASS: ./lus2lic {-o /tmp/test_struct.lic should_work/test_struct.lus}
 PASS: ./lus2lic {-ec -o /tmp/test_struct.ec should_work/test_struct.lus}
 PASS: ./myec2c {-o /tmp/test_struct.c /tmp/test_struct.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/test_struct.lus
 PASS: ./lus2lic {-2c should_work/test_struct.lus -n test_struct}
-PASS: gcc test_struct_test_struct.c test_struct_test_struct_ext.c test_struct_test_struct_loop.c 
+PASS: gcc test_struct_test_struct.c test_struct_test_struct_loop.c 
 PASS: ./lus2lic {-o /tmp/modes3x2_v4.lic should_work/modes3x2_v4.lus}
 PASS: ./lus2lic {-ec -o /tmp/modes3x2_v4.ec should_work/modes3x2_v4.lus}
 FAIL: Try ec2c on the result: ./myec2c {-o /tmp/modes3x2_v4.c /tmp/modes3x2_v4.ec}
@@ -1144,13 +1150,13 @@ PASS: ./lus2lic {-ec -o /tmp/uu.ec should_work/uu.lus}
 PASS: ./myec2c {-o /tmp/uu.c /tmp/uu.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/uu.lus
 PASS: ./lus2lic {-2c should_work/uu.lus -n uu}
-PASS: gcc uu_uu.c uu_uu_ext.c uu_uu_loop.c 
+PASS: gcc uu_uu.c uu_uu_loop.c 
 PASS: ./lus2lic {-o /tmp/simpleRed.lic should_work/simpleRed.lus}
 PASS: ./lus2lic {-ec -o /tmp/simpleRed.ec should_work/simpleRed.lus}
 PASS: ./myec2c {-o /tmp/simpleRed.c /tmp/simpleRed.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/simpleRed.lus
 PASS: ./lus2lic {-2c should_work/simpleRed.lus -n simpleRed}
-PASS: gcc simpleRed_simpleRed.c simpleRed_simpleRed_ext.c simpleRed_simpleRed_loop.c 
+PASS: gcc simpleRed_simpleRed.c simpleRed_simpleRed_loop.c 
 PASS: ./lus2lic {-o /tmp/modes3x2_v3.lic should_work/modes3x2_v3.lus}
 PASS: ./lus2lic {-ec -o /tmp/modes3x2_v3.ec should_work/modes3x2_v3.lus}
 FAIL: Try ec2c on the result: ./myec2c {-o /tmp/modes3x2_v3.c /tmp/modes3x2_v3.ec}
@@ -1159,37 +1165,37 @@ PASS: ./lus2lic {-ec -o /tmp/pre_x.ec should_work/pre_x.lus}
 PASS: ./myec2c {-o /tmp/pre_x.c /tmp/pre_x.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/pre_x.lus
 PASS: ./lus2lic {-2c should_work/pre_x.lus -n pre_x}
-PASS: gcc pre_x_pre_x.c pre_x_pre_x_ext.c pre_x_pre_x_loop.c 
+PASS: gcc pre_x_pre_x.c pre_x_pre_x_loop.c 
 PASS: ./lus2lic {-o /tmp/ts01.lic should_work/ts01.lus}
 PASS: ./lus2lic {-ec -o /tmp/ts01.ec should_work/ts01.lus}
 PASS: ./myec2c {-o /tmp/ts01.c /tmp/ts01.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/ts01.lus
 PASS: ./lus2lic {-2c should_work/ts01.lus -n ts01}
-PASS: gcc ts01_ts01.c ts01_ts01_ext.c ts01_ts01_loop.c 
+PASS: gcc ts01_ts01.c ts01_ts01_loop.c 
 PASS: ./lus2lic {-o /tmp/_N_uu.lic should_work/_N_uu.lus}
 PASS: ./lus2lic {-ec -o /tmp/_N_uu.ec should_work/_N_uu.lus}
 PASS: ./myec2c {-o /tmp/_N_uu.c /tmp/_N_uu.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/_N_uu.lus
 PASS: ./lus2lic {-2c should_work/_N_uu.lus -n _N_uu}
-PASS: gcc _N_uu__N_uu.c _N_uu__N_uu_ext.c _N_uu__N_uu_loop.c 
+PASS: gcc _N_uu__N_uu.c _N_uu__N_uu_loop.c 
 PASS: ./lus2lic {-o /tmp/X2.lic should_work/X2.lus}
 PASS: ./lus2lic {-ec -o /tmp/X2.ec should_work/X2.lus}
 PASS: ./myec2c {-o /tmp/X2.c /tmp/X2.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/X2.lus
 PASS: ./lus2lic {-2c should_work/X2.lus -n X2}
-PASS: gcc X2_X2.c X2_X2_ext.c X2_X2_loop.c 
+PASS: gcc X2_X2.c X2_X2_loop.c 
 PASS: ./lus2lic {-o /tmp/alias.lic should_work/alias.lus}
 PASS: ./lus2lic {-ec -o /tmp/alias.ec should_work/alias.lus}
 PASS: ./myec2c {-o /tmp/alias.c /tmp/alias.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/alias.lus
 PASS: ./lus2lic {-2c should_work/alias.lus -n alias}
-PASS: gcc alias_alias.c alias_alias_ext.c alias_alias_loop.c 
+PASS: gcc alias_alias.c alias_alias_loop.c 
 PASS: ./lus2lic {-o /tmp/hanane.lic should_work/hanane.lus}
 PASS: ./lus2lic {-ec -o /tmp/hanane.ec should_work/hanane.lus}
 PASS: ./myec2c {-o /tmp/hanane.c /tmp/hanane.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/hanane.lus
 PASS: ./lus2lic {-2c should_work/hanane.lus -n hanane}
-PASS: gcc hanane_hanane.c hanane_hanane_ext.c hanane_hanane_loop.c 
+PASS: gcc hanane_hanane.c hanane_hanane_loop.c 
 PASS: ./lus2lic {-o /tmp/lustre.lic should_work/lustre.lus}
 PASS: ./lus2lic {-ec -o /tmp/lustre.ec should_work/lustre.lus}
 PASS: ./myec2c {-o /tmp/lustre.c /tmp/lustre.ec}
@@ -1205,85 +1211,85 @@ PASS: ./lus2lic {-ec -o /tmp/predef02.ec should_work/predef02.lus}
 PASS: ./myec2c {-o /tmp/predef02.c /tmp/predef02.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/predef02.lus
 PASS: ./lus2lic {-2c should_work/predef02.lus -n predef02}
-PASS: gcc predef02_predef02.c predef02_predef02_ext.c predef02_predef02_loop.c 
+PASS: gcc predef02_predef02.c predef02_predef02_loop.c 
 PASS: ./lus2lic {-o /tmp/toto.lic should_work/toto.lus}
 PASS: ./lus2lic {-ec -o /tmp/toto.ec should_work/toto.lus}
 PASS: ./myec2c {-o /tmp/toto.c /tmp/toto.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/toto.lus
 PASS: ./lus2lic {-2c should_work/toto.lus -n toto}
-PASS: gcc toto_toto.c toto_toto_ext.c toto_toto_loop.c 
+PASS: gcc toto_toto.c toto_toto_loop.c 
 PASS: ./lus2lic {-o /tmp/minmax6.lic should_work/minmax6.lus}
 PASS: ./lus2lic {-ec -o /tmp/minmax6.ec should_work/minmax6.lus}
 PASS: ./myec2c {-o /tmp/minmax6.c /tmp/minmax6.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/minmax6.lus
 PASS: ./lus2lic {-2c should_work/minmax6.lus -n minmax6}
-PASS: gcc minmax6_minmax6.c minmax6_minmax6_ext.c minmax6_minmax6_loop.c 
+PASS: gcc minmax6_minmax6.c minmax6_minmax6_loop.c 
 PASS: ./lus2lic {-o /tmp/ck3.lic should_work/ck3.lus}
 PASS: ./lus2lic {-ec -o /tmp/ck3.ec should_work/ck3.lus}
 PASS: ./myec2c {-o /tmp/ck3.c /tmp/ck3.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/ck3.lus
 PASS: ./lus2lic {-2c should_work/ck3.lus -n ck3}
-PASS: gcc ck3_ck3.c ck3_ck3_ext.c ck3_ck3_loop.c 
+PASS: gcc ck3_ck3.c ck3_ck3_loop.c 
 PASS: ./lus2lic {-o /tmp/zzz.lic should_work/zzz.lus}
 PASS: ./lus2lic {-ec -o /tmp/zzz.ec should_work/zzz.lus}
 PASS: ./myec2c {-o /tmp/zzz.c /tmp/zzz.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/zzz.lus
 PASS: ./lus2lic {-2c should_work/zzz.lus -n zzz}
-PASS: gcc zzz_zzz.c zzz_zzz_ext.c zzz_zzz_loop.c 
+PASS: gcc zzz_zzz.c zzz_zzz_loop.c 
 PASS: ./lus2lic {-o /tmp/STABLE.lic should_work/STABLE.lus}
 PASS: ./lus2lic {-ec -o /tmp/STABLE.ec should_work/STABLE.lus}
 PASS: ./myec2c {-o /tmp/STABLE.c /tmp/STABLE.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/STABLE.lus
 PASS: ./lus2lic {-2c should_work/STABLE.lus -n STABLE}
-PASS: gcc STABLE_STABLE.c STABLE_STABLE_ext.c STABLE_STABLE_loop.c 
+PASS: gcc STABLE_STABLE.c STABLE_STABLE_loop.c 
 PASS: ./lus2lic {-o /tmp/mapiter.lic should_work/mapiter.lus}
 PASS: ./lus2lic {-ec -o /tmp/mapiter.ec should_work/mapiter.lus}
 PASS: ./myec2c {-o /tmp/mapiter.c /tmp/mapiter.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/mapiter.lus
 PASS: ./lus2lic {-2c should_work/mapiter.lus -n mapiter}
-PASS: gcc mapiter_mapiter.c mapiter_mapiter_ext.c mapiter_mapiter_loop.c 
+PASS: gcc mapiter_mapiter.c mapiter_mapiter_loop.c 
 PASS: ./lus2lic {-o /tmp/tuple.lic should_work/tuple.lus}
 PASS: ./lus2lic {-ec -o /tmp/tuple.ec should_work/tuple.lus}
 PASS: ./myec2c {-o /tmp/tuple.c /tmp/tuple.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/tuple.lus
 PASS: ./lus2lic {-2c should_work/tuple.lus -n tuple}
-PASS: gcc tuple_tuple.c tuple_tuple_ext.c tuple_tuple_loop.c 
+PASS: gcc tuple_tuple.c tuple_tuple_loop.c 
 PASS: ./lus2lic {-o /tmp/call02.lic should_work/call02.lus}
 PASS: ./lus2lic {-ec -o /tmp/call02.ec should_work/call02.lus}
 PASS: ./myec2c {-o /tmp/call02.c /tmp/call02.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/call02.lus
 PASS: ./lus2lic {-2c should_work/call02.lus -n call02}
-PASS: gcc call02_call02.c call02_call02_ext.c call02_call02_loop.c 
+PASS: gcc call02_call02.c call02_call02_loop.c 
 PASS: ./lus2lic {-o /tmp/ck7.lic should_work/ck7.lus}
 PASS: ./lus2lic {-ec -o /tmp/ck7.ec should_work/ck7.lus}
 PASS: ./myec2c {-o /tmp/ck7.c /tmp/ck7.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/ck7.lus
 PASS: ./lus2lic {-2c should_work/ck7.lus -n ck7}
-PASS: gcc ck7_ck7.c ck7_ck7_ext.c ck7_ck7_loop.c 
+PASS: gcc ck7_ck7.c ck7_ck7_loop.c 
 PASS: ./lus2lic {-o /tmp/nc10.lic should_work/nc10.lus}
 PASS: ./lus2lic {-ec -o /tmp/nc10.ec should_work/nc10.lus}
 PASS: ./myec2c {-o /tmp/nc10.c /tmp/nc10.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/nc10.lus
 PASS: ./lus2lic {-2c should_work/nc10.lus -n nc10}
-PASS: gcc nc10_nc10.c nc10_nc10_ext.c nc10_nc10_loop.c 
+PASS: gcc nc10_nc10.c nc10_nc10_loop.c 
 PASS: ./lus2lic {-o /tmp/triSel.lic should_work/triSel.lus}
 PASS: ./lus2lic {-ec -o /tmp/triSel.ec should_work/triSel.lus}
 PASS: ./myec2c {-o /tmp/triSel.c /tmp/triSel.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/triSel.lus
 PASS: ./lus2lic {-2c should_work/triSel.lus -n triSel}
-PASS: gcc triSel_triSel.c triSel_triSel_ext.c triSel_triSel_loop.c 
+PASS: gcc triSel_triSel.c triSel_triSel_loop.c 
 PASS: ./lus2lic {-o /tmp/redoptest.lic should_work/redoptest.lus}
 PASS: ./lus2lic {-ec -o /tmp/redoptest.ec should_work/redoptest.lus}
 PASS: ./myec2c {-o /tmp/redoptest.c /tmp/redoptest.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/redoptest.lus
 PASS: ./lus2lic {-2c should_work/redoptest.lus -n redoptest}
-PASS: gcc redoptest_redoptest.c redoptest_redoptest_ext.c redoptest_redoptest_loop.c 
+PASS: gcc redoptest_redoptest.c redoptest_redoptest_loop.c 
 PASS: ./lus2lic {-o /tmp/flo.lic should_work/flo.lus}
 PASS: ./lus2lic {-ec -o /tmp/flo.ec should_work/flo.lus}
 PASS: ./myec2c {-o /tmp/flo.c /tmp/flo.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/flo.lus
 PASS: ./lus2lic {-2c should_work/flo.lus -n flo}
-PASS: gcc flo_flo.c flo_flo_ext.c flo_flo_loop.c 
+PASS: gcc flo_flo.c flo_flo_loop.c 
 PASS: ./lus2lic {-o /tmp/cond01.lic should_work/cond01.lus}
 PASS: ./lus2lic {-ec -o /tmp/cond01.ec should_work/cond01.lus}
 PASS: ./myec2c {-o /tmp/cond01.c /tmp/cond01.ec}
@@ -1294,31 +1300,31 @@ PASS: ./lus2lic {-ec -o /tmp/test_boolred.ec should_work/test_boolred.lus}
 PASS: ./myec2c {-o /tmp/test_boolred.c /tmp/test_boolred.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/test_boolred.lus
 PASS: ./lus2lic {-2c should_work/test_boolred.lus -n test_boolred}
-PASS: gcc test_boolred_test_boolred.c test_boolred_test_boolred_ext.c test_boolred_test_boolred_loop.c 
+PASS: gcc test_boolred_test_boolred.c test_boolred_test_boolred_loop.c 
 PASS: ./lus2lic {-o /tmp/shiftFill_ludic.lic should_work/shiftFill_ludic.lus}
 PASS: ./lus2lic {-ec -o /tmp/shiftFill_ludic.ec should_work/shiftFill_ludic.lus}
 PASS: ./myec2c {-o /tmp/shiftFill_ludic.c /tmp/shiftFill_ludic.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/shiftFill_ludic.lus
 PASS: ./lus2lic {-2c should_work/shiftFill_ludic.lus -n shiftFill_ludic}
-PASS: gcc shiftFill_ludic_shiftFill_ludic.c shiftFill_ludic_shiftFill_ludic_ext.c shiftFill_ludic_shiftFill_ludic_loop.c 
+PASS: gcc shiftFill_ludic_shiftFill_ludic.c shiftFill_ludic_shiftFill_ludic_loop.c 
 PASS: ./lus2lic {-o /tmp/after.lic should_work/after.lus}
 PASS: ./lus2lic {-ec -o /tmp/after.ec should_work/after.lus}
 PASS: ./myec2c {-o /tmp/after.c /tmp/after.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/after.lus
 PASS: ./lus2lic {-2c should_work/after.lus -n after}
-PASS: gcc after_after.c after_after_ext.c after_after_loop.c 
+PASS: gcc after_after.c after_after_loop.c 
 PASS: ./lus2lic {-o /tmp/arrays.lic should_work/arrays.lus}
 PASS: ./lus2lic {-ec -o /tmp/arrays.ec should_work/arrays.lus}
 PASS: ./myec2c {-o /tmp/arrays.c /tmp/arrays.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/arrays.lus
 PASS: ./lus2lic {-2c should_work/arrays.lus -n arrays}
-PASS: gcc arrays_arrays.c arrays_arrays_ext.c arrays_arrays_loop.c 
+PASS: gcc arrays_arrays.c arrays_arrays_loop.c 
 PASS: ./lus2lic {-o /tmp/nc3.lic should_work/nc3.lus}
 PASS: ./lus2lic {-ec -o /tmp/nc3.ec should_work/nc3.lus}
 PASS: ./myec2c {-o /tmp/nc3.c /tmp/nc3.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/nc3.lus
 PASS: ./lus2lic {-2c should_work/nc3.lus -n nc3}
-PASS: gcc nc3_nc3.c nc3_nc3_ext.c nc3_nc3_loop.c 
+PASS: gcc nc3_nc3.c nc3_nc3_loop.c 
 PASS: ./lus2lic {-o /tmp/speedcontrol.lic should_work/speedcontrol.lus}
 PASS: ./lus2lic {-ec -o /tmp/speedcontrol.ec should_work/speedcontrol.lus}
 PASS: ./myec2c {-o /tmp/speedcontrol.c /tmp/speedcontrol.ec}
@@ -1329,25 +1335,25 @@ PASS: ./lus2lic {-ec -o /tmp/iterate.ec should_work/iterate.lus}
 PASS: ./myec2c {-o /tmp/iterate.c /tmp/iterate.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/iterate.lus
 PASS: ./lus2lic {-2c should_work/iterate.lus -n iterate}
-PASS: gcc iterate_iterate.c iterate_iterate_ext.c iterate_iterate_loop.c 
+PASS: gcc iterate_iterate.c iterate_iterate_loop.c 
 PASS: ./lus2lic {-o /tmp/PCOND.lic should_work/PCOND.lus}
 PASS: ./lus2lic {-ec -o /tmp/PCOND.ec should_work/PCOND.lus}
 PASS: ./myec2c {-o /tmp/PCOND.c /tmp/PCOND.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/PCOND.lus
 PASS: ./lus2lic {-2c should_work/PCOND.lus -n PCOND}
-PASS: gcc PCOND_PCOND.c PCOND_PCOND_ext.c PCOND_PCOND_loop.c 
+PASS: gcc PCOND_PCOND.c PCOND_PCOND_loop.c 
 PASS: ./lus2lic {-o /tmp/EDGE.lic should_work/EDGE.lus}
 PASS: ./lus2lic {-ec -o /tmp/EDGE.ec should_work/EDGE.lus}
 PASS: ./myec2c {-o /tmp/EDGE.c /tmp/EDGE.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/EDGE.lus
 PASS: ./lus2lic {-2c should_work/EDGE.lus -n EDGE}
-PASS: gcc EDGE_EDGE.c EDGE_EDGE_ext.c EDGE_EDGE_loop.c 
+PASS: gcc EDGE_EDGE.c EDGE_EDGE_loop.c 
 PASS: ./lus2lic {-o /tmp/call03.lic should_work/call03.lus}
 PASS: ./lus2lic {-ec -o /tmp/call03.ec should_work/call03.lus}
 PASS: ./myec2c {-o /tmp/call03.c /tmp/call03.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/call03.lus
 PASS: ./lus2lic {-2c should_work/call03.lus -n call03}
-PASS: gcc call03_call03.c call03_call03_ext.c call03_call03_loop.c 
+PASS: gcc call03_call03.c call03_call03_loop.c 
 PASS: ./lus2lic {-o /tmp/modes3x2-simu.lic should_work/modes3x2-simu.lus}
 PASS: ./lus2lic {-ec -o /tmp/modes3x2-simu.ec should_work/modes3x2-simu.lus}
 FAIL: Try ec2c on the result: ./myec2c {-o /tmp/modes3x2-simu.c /tmp/modes3x2-simu.ec}
@@ -1356,19 +1362,19 @@ PASS: ./lus2lic {-ec -o /tmp/count.ec should_work/count.lus}
 PASS: ./myec2c {-o /tmp/count.c /tmp/count.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/count.lus
 PASS: ./lus2lic {-2c should_work/count.lus -n count}
-PASS: gcc count_count.c count_count_ext.c count_count_loop.c 
+PASS: gcc count_count.c count_count_loop.c 
 PASS: ./lus2lic {-o /tmp/ck2.lic should_work/ck2.lus}
 PASS: ./lus2lic {-ec -o /tmp/ck2.ec should_work/ck2.lus}
 PASS: ./myec2c {-o /tmp/ck2.c /tmp/ck2.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/ck2.lus
 PASS: ./lus2lic {-2c should_work/ck2.lus -n ck2}
-PASS: gcc ck2_ck2.c ck2_ck2_ext.c ck2_ck2_loop.c 
+PASS: gcc ck2_ck2.c ck2_ck2_loop.c 
 PASS: ./lus2lic {-o /tmp/X.lic should_work/X.lus}
 PASS: ./lus2lic {-ec -o /tmp/X.ec should_work/X.lus}
 PASS: ./myec2c {-o /tmp/X.c /tmp/X.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/X.lus
 PASS: ./lus2lic {-2c should_work/X.lus -n X}
-PASS: gcc X_X.c X_X_ext.c X_X_loop.c 
+PASS: gcc X_X.c X_X_loop.c 
 PASS: ./lus2lic {-o /tmp/Condact.lic should_work/Condact.lus}
 PASS: ./lus2lic {-ec -o /tmp/Condact.ec should_work/Condact.lus}
 PASS: ./myec2c {-o /tmp/Condact.c /tmp/Condact.ec}
@@ -1379,19 +1385,19 @@ PASS: ./lus2lic {-ec -o /tmp/poussoir.ec should_work/poussoir.lus}
 PASS: ./myec2c {-o /tmp/poussoir.c /tmp/poussoir.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/poussoir.lus
 PASS: ./lus2lic {-2c should_work/poussoir.lus -n poussoir}
-PASS: gcc poussoir_poussoir.c poussoir_poussoir_ext.c poussoir_poussoir_loop.c 
+PASS: gcc poussoir_poussoir.c poussoir_poussoir_loop.c 
 PASS: ./lus2lic {-o /tmp/SWITCH1.lic should_work/SWITCH1.lus}
 PASS: ./lus2lic {-ec -o /tmp/SWITCH1.ec should_work/SWITCH1.lus}
 PASS: ./myec2c {-o /tmp/SWITCH1.c /tmp/SWITCH1.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/SWITCH1.lus
 PASS: ./lus2lic {-2c should_work/SWITCH1.lus -n SWITCH1}
-PASS: gcc SWITCH1_SWITCH1.c SWITCH1_SWITCH1_ext.c SWITCH1_SWITCH1_loop.c 
+PASS: gcc SWITCH1_SWITCH1.c SWITCH1_SWITCH1_loop.c 
 PASS: ./lus2lic {-o /tmp/clock1_2ms.lic should_work/clock1_2ms.lus}
 PASS: ./lus2lic {-ec -o /tmp/clock1_2ms.ec should_work/clock1_2ms.lus}
 PASS: ./myec2c {-o /tmp/clock1_2ms.c /tmp/clock1_2ms.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/clock1_2ms.lus
 PASS: ./lus2lic {-2c should_work/clock1_2ms.lus -n clock1_2ms}
-PASS: gcc clock1_2ms_clock1_2ms.c clock1_2ms_clock1_2ms_ext.c clock1_2ms_clock1_2ms_loop.c 
+PASS: gcc clock1_2ms_clock1_2ms.c clock1_2ms_clock1_2ms_loop.c 
 PASS: ./lus2lic {-o /tmp/decl.lic should_work/decl.lus}
 PASS: ./lus2lic {-ec -o /tmp/decl.ec should_work/decl.lus}
 PASS: ./myec2c {-o /tmp/decl.c /tmp/decl.ec}
@@ -1403,37 +1409,37 @@ PASS: ./lus2lic {-ec -o /tmp/bred_lv4.ec should_work/bred_lv4.lus}
 PASS: ./myec2c {-o /tmp/bred_lv4.c /tmp/bred_lv4.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/bred_lv4.lus
 PASS: ./lus2lic {-2c should_work/bred_lv4.lus -n bred_lv4}
-PASS: gcc bred_lv4_bred_lv4.c bred_lv4_bred_lv4_ext.c bred_lv4_bred_lv4_loop.c 
+PASS: gcc bred_lv4_bred_lv4.c bred_lv4_bred_lv4_loop.c 
 PASS: ./lus2lic {-o /tmp/trivial2.lic should_work/trivial2.lus}
 PASS: ./lus2lic {-ec -o /tmp/trivial2.ec should_work/trivial2.lus}
 PASS: ./myec2c {-o /tmp/trivial2.c /tmp/trivial2.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/trivial2.lus
 PASS: ./lus2lic {-2c should_work/trivial2.lus -n trivial2}
-PASS: gcc trivial2_trivial2.c trivial2_trivial2_ext.c trivial2_trivial2_loop.c 
+PASS: gcc trivial2_trivial2.c trivial2_trivial2_loop.c 
 PASS: ./lus2lic {-o /tmp/param_node.lic should_work/param_node.lus}
 PASS: ./lus2lic {-ec -o /tmp/param_node.ec should_work/param_node.lus}
 PASS: ./myec2c {-o /tmp/param_node.c /tmp/param_node.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/param_node.lus
 PASS: ./lus2lic {-2c should_work/param_node.lus -n param_node}
-PASS: gcc param_node_param_node.c param_node_param_node_ext.c param_node_param_node_loop.c 
+PASS: gcc param_node_param_node.c param_node_param_node_loop.c 
 PASS: ./lus2lic {-o /tmp/simple.lic should_work/simple.lus}
 PASS: ./lus2lic {-ec -o /tmp/simple.ec should_work/simple.lus}
 PASS: ./myec2c {-o /tmp/simple.c /tmp/simple.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/simple.lus
 PASS: ./lus2lic {-2c should_work/simple.lus -n simple}
-FAIL: Check that the generated C code compiles  : gcc simple_simple.c simple_simple_ext.c simple_simple_loop.c 
+FAIL: Check that the generated C code compiles  : gcc simple_simple.c simple_simple_loop.c 
 PASS: ./lus2lic {-o /tmp/func_with_body.lic should_work/func_with_body.lus}
 PASS: ./lus2lic {-ec -o /tmp/func_with_body.ec should_work/func_with_body.lus}
 PASS: ./myec2c {-o /tmp/func_with_body.c /tmp/func_with_body.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/func_with_body.lus
 PASS: ./lus2lic {-2c should_work/func_with_body.lus -n func_with_body}
-PASS: gcc func_with_body_func_with_body.c func_with_body_func_with_body_ext.c func_with_body_func_with_body_loop.c 
+PASS: gcc func_with_body_func_with_body.c func_with_body_func_with_body_loop.c 
 PASS: ./lus2lic {-o /tmp/minus.lic should_work/minus.lus}
 PASS: ./lus2lic {-ec -o /tmp/minus.ec should_work/minus.lus}
 PASS: ./myec2c {-o /tmp/minus.c /tmp/minus.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/minus.lus
 PASS: ./lus2lic {-2c should_work/minus.lus -n minus}
-PASS: gcc minus_minus.c minus_minus_ext.c minus_minus_loop.c 
+PASS: gcc minus_minus.c minus_minus_loop.c 
 PASS: ./lus2lic {-o /tmp/remplissage-1.0.lic should_work/remplissage-1.0.lus}
 PASS: ./lus2lic {-ec -o /tmp/remplissage-1.0.ec should_work/remplissage-1.0.lus}
 PASS: ./myec2c {-o /tmp/remplissage-1.0.c /tmp/remplissage-1.0.ec}
@@ -1509,9 +1515,7 @@ XPASS: Test bad programs (semantics): lus2lic {-o /tmp/bug.lic should_fail/seman
 
 		=== lus2lic Summary ===
 
-# of expected passes		1339
+# of expected passes		1345
 # of unexpected failures	100
 # of unexpected successes	21
 # of expected failures		37
-testcase ./lus2lic.tests/non-reg.exp completed in 140 seconds
-testcase ./lus2lic.tests/progression.exp completed in 0 seconds
diff --git a/test/lus2lic.tests/non-reg.exp b/test/lus2lic.tests/non-reg.exp
index 50f03ca3..4faa6118 100644
--- a/test/lus2lic.tests/non-reg.exp
+++ b/test/lus2lic.tests/non-reg.exp
@@ -32,6 +32,7 @@ foreach f $ok_files {
         wait -i $id5
 
         if { [emptyfile "${basef}_${basef}.c"] } {
+            eval spawn "rm -f a.out"
             if { [emptyfile "${basef}_${basef}_ext.c"] } {
                 set id6 [should_work "Check that the generated C code compiles  " "gcc ${basef}_${basef}.c ${basef}_${basef}_ext.c ${basef}_${basef}_loop.c"]
             } else {
@@ -40,6 +41,9 @@ foreach f $ok_files {
             wait -i $id6
             catch { exp_close -i $id6 }
             catch { exp_wait  -i $id6 } output
+                            
+        
+
         }
         catch { exp_close -i $id5 }
         catch { exp_wait  -i $id5 } output
diff --git a/test/lus2lic.time b/test/lus2lic.time
index 60e57f01..e69de29b 100644
--- a/test/lus2lic.time
+++ b/test/lus2lic.time
@@ -1,2 +0,0 @@
-testcase ./lus2lic.tests/non-reg.exp completed in 140 seconds
-testcase ./lus2lic.tests/progression.exp completed in 0 seconds
diff --git a/test/site.exp b/test/site.exp
index e87e8c4e..9eabca93 100644
--- a/test/site.exp
+++ b/test/site.exp
@@ -2,6 +2,7 @@ set lus2lic "./lus2lic"
 set ec2c "./ec2c"
 set ec2c "./myec2c"
 set test_lus2lic_no_node "../utils/test_lus2lic_no_node"
+set compare_exec_and_2c "../utils/compare_exec_and_2c"
 
 set timeout 10
 
diff --git a/todo.org b/todo.org
index 3b812813..08836fb3 100644
--- a/todo.org
+++ b/todo.org
@@ -57,7 +57,7 @@ http://www.di.ens.fr/~pouzet/bib/lctes12.pdf
 
 faire comme pour _assign_EXT_TYPE en s'inspirant de ce que fait ec2c
 
-** TODO lic2c :  slice en partie gauche pas traitée
+** TODO lic2c : slice en partie gauche pas traitée
 
 1. file:test/should_work/morel.lus lus2lic -2c should_work/morel.lus -n morel
 2. file:test/should_work/morel2.lus lus2lic -2c should_work/morel2.lus -n morel2
@@ -65,7 +65,7 @@ faire comme pour _assign_EXT_TYPE en s'inspirant de ce que fait ec2c
 4. file:test/should_work/morel4.lus lus2lic -2c should_work/morel4.lus -n morel4
 5. file:test/should_work/left.lus lus2lic -2c should_work/left.lus -n left
 
-** TODO polymorphisme
+** TODO lic2c : polymorphisme
    - State "TODO"       from ""           [2014-07-09 Wed 17:13]
  lus2lic -2c should_work/cond01.lus -n cond01
 
@@ -83,10 +83,78 @@ par ailleur,  l2lSplit ne devrait pas  splitter les ites, si  on veut
 pouvoir faire l'optimisation  qui consiste à n'executer  qu'une des 2
 branches si les noeuds ne font pas d'effet de bord. 
 
-** TODO pb en utilisant -2c et -esa en meme temps
-   - State "TODO"       from ""           [2014-07-04 Fri 16:16]
+** TODO nommage des soc à mémoires avec valeurs initiales
+
+Pour distinguer les  différentes instances de soc  à memoire (arrow
+et fby), j'utilise le hash de  leur valeur initiale, ce qui est faux,
+car hash n'est pas une injection.
+
+Est-ce la bonne approche ?   Une alternative serait de n'avoir qu'une
+seule soc  et de faire la  bonne initialisation en passant  la valeur
+initiale en argument de la fonction reset.
+
+Une autre solution serait d'utiliser un générateur de nom unique, par
+exemple basé sur un compteur.
+
+[...] sauf qu'en fait, a fonstion de hash renvoie toujours la meme valeur (bug)
+et que ca marche tres bien. Ce qui prouve bien que ca ne sert a rien cette affaire...
+
+** TODO divergence -exec et -2c
+   - State "TODO"       from ""           [2014-07-11 Fri 12:02]
+
+../utils/compare_exec_and_2c should_work/ck5.lus
+../utils/compare_exec_and_2c should_work/ck6.lus
+../utils/compare_exec_and_2c should_work/testPilote.lus
+../utils/compare_exec_and_2c should_work/call06.lus
+../utils/compare_exec_and_2c should_work/testCapt.lus
+../utils/compare_exec_and_2c should_work/minmax5.lus
+../utils/compare_exec_and_2c should_work/call05.lus
+../utils/compare_exec_and_2c should_work/test_node_expand2.lus
+../utils/compare_exec_and_2c should_work/minmax5_random.lus
+../utils/compare_exec_and_2c should_work/test_node_expand.lus
+../utils/compare_exec_and_2c should_work/X6.lus
+../utils/compare_exec_and_2c should_work/sincos.lus
+../utils/compare_exec_and_2c should_work/test_extern.lus
+../utils/compare_exec_and_2c should_work/clock_ite.lus
+../utils/compare_exec_and_2c should_work/integrator.lus
+../utils/compare_exec_and_2c should_work/complex.lus
+../utils/compare_exec_and_2c should_work/PCOND1.lus
+../utils/compare_exec_and_2c should_work/call.lus
+../utils/compare_exec_and_2c should_work/lustre_test1_ok.lus
+../utils/compare_exec_and_2c should_work/sample_time_change.lus
+../utils/compare_exec_and_2c should_work/CURRENT.lus
+../utils/compare_exec_and_2c should_work/multiclock.lus
+../utils/compare_exec_and_2c should_work/TIME_STABLE.lus
+../utils/compare_exec_and_2c should_work/multipar.lus
+../utils/compare_exec_and_2c should_work/pack1.lus
+../utils/compare_exec_and_2c should_work/bob.lus
+../utils/compare_exec_and_2c should_work/test_condact.lus
+../utils/compare_exec_and_2c should_work/ck4.lus
+../utils/compare_exec_and_2c should_work/filliter.lus
+../utils/compare_exec_and_2c should_work/X2.lus
+../utils/compare_exec_and_2c should_work/hanane.lus
+../utils/compare_exec_and_2c should_work/ck3.lus
+../utils/compare_exec_and_2c should_work/ck7.lus
+../utils/compare_exec_and_2c should_work/PCOND.lus
+../utils/compare_exec_and_2c should_work/ck2.lus
+../utils/compare_exec_and_2c should_work/X.lus
+../utils/compare_exec_and_2c should_work/clock1_2ms.lus
+
+l 45
+            eval spawn "grep extern $f || { echo xxx > do_test$f.tmp } "
+            # do_test is used to avoid to perforn a comparison on files that contains extern nodes
+            if { [emptyfile a.out] && [emptyfile do_testt$f.tmp] } {
+                set id7 [should_work "Try to compare lus2lic -exec and -2c" "$compare_exec_and_2c" "$f"]
+                catch { exp_close -i $id7 }
+                catch { exp_wait  -i $id7 } output
+
+non-reg tests: compare lus2lic -exec and -2c.
+ 
+# of expected passe s		1339 -> 1511
+# of unexpected failures	100 -> 139
+
+
 
- lus2lic should_work/modes3x2_v4.lus  -n modes3x2_v4 -esa -o xxx -2c
 
 * Packages, modeles, etc.
 ** STARTED Il ne detecte plus les erreurs de type lors d'instanciation de noeuds
@@ -428,3 +496,4 @@ infos Lic.type_, donc autant attendre un peu avant de s'en passer.
    - State "TODO"       from ""           [2013-05-31 Fri 16:42]
  ../utils/test_lus2lic_no_node should_work/sincos.lus
 
+ 
-- 
GitLab