diff --git a/.gitignore b/.gitignore
index 1249110bf05ca97e73e0512e3c6b9dcfcc1b5b81..dc7e4db4061354fdd8c4fc129a1e7cd2a5666bce 100644
--- a/.gitignore
+++ b/.gitignore
@@ -54,4 +54,14 @@ ec.yacc.pdf
 lus2lic-types.pdf
 lus2lic.pdf
 *.tex
-ocamldoc
\ No newline at end of file
+ocamldoc
+test/*
+_build/
+main.native
+myocamlbuild.ml
+setup.data
+setup.ml
+configure
+linux
+src/lus4ocaml.mllib
+src/META
\ No newline at end of file
diff --git a/AUTHORS.txt b/AUTHORS.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a6673b9333db08d453e9f54c47f9cbc03a9c2e3b
--- /dev/null
+++ b/AUTHORS.txt
@@ -0,0 +1,5 @@
+(* OASIS_START *)
+(* DO NOT EDIT (digest: 15c1c574199bb18305867c0430ab2e6d) *)
+Authors of lus2lic
+Erwan Jahier and Pascal Raymond
+(* OASIS_STOP *)
diff --git a/INSTALL.txt b/INSTALL.txt
new file mode 100644
index 0000000000000000000000000000000000000000..71ce69aa774eee11c1488c7278a7a9be6042785d
--- /dev/null
+++ b/INSTALL.txt
@@ -0,0 +1,45 @@
+(* OASIS_START *)
+(* DO NOT EDIT (digest: 3faca0f954ecfa4d577df94e53d1878d) *)
+This is the INSTALL file for the lus2lic distribution.
+
+This package uses OASIS to generate its build system. See section OASIS for
+full information.
+
+Dependencies
+============
+
+In order to compile this package, you will need:
+* ocaml
+* findlib
+* rdbg-plugin
+
+Installing
+==========
+
+1. Uncompress the source archive and go to the root of the package
+2. Run 'ocaml setup.ml -configure'
+3. Run 'ocaml setup.ml -build'
+4. Run 'ocaml setup.ml -install'
+
+Uninstalling
+============
+
+1. Go to the root of the package
+2. Run 'ocaml setup.ml -uninstall'
+
+OASIS
+=====
+
+OASIS is a program that generates a setup.ml file using a simple '_oasis'
+configuration file. The generated setup only depends on the standard OCaml
+installation: no additional library is required.
+
+(* OASIS_STOP *)
+
+Installing alt
+==============
+
+As a shortcut for installing command above, one can also use good old:
+make configure
+make
+make install
diff --git a/Makefile b/Makefile
index 369f8e611239e9a793932796682303568cc22ad4..c6be285d2cf0eb789b9c86f07555f9f10627a7d3 100644
--- a/Makefile
+++ b/Makefile
@@ -1,266 +1,134 @@
 
-all: doit
-
-
-include ./Makefile.common
-
-
-COMON_SOURCES = \
-	$(OBJDIR)/data.mli \
-	$(OBJDIR)/data.ml \
-	$(OBJDIR)/expr.ml \
-	$(OBJDIR)/failure.ml \
-	$(OBJDIR)/event.ml \
-	$(OBJDIR)/genlex.mli \
-	$(OBJDIR)/genlex.ml \
-	$(OBJDIR)/rif_base.mli \
-	$(OBJDIR)/rif_base.ml \
-	$(OBJDIR)/verbose.ml \
-	$(OBJDIR)/verbose.mli \
-
-
-SOC_SOURCES = \
-	$(OBJDIR)/soc.ml \
-	$(OBJDIR)/socUtils.mli \
-	$(OBJDIR)/socUtils.ml \
-	$(OBJDIR)/socPredef.mli \
-	$(OBJDIR)/socPredef.ml \
-	$(OBJDIR)/toposort.mli \
-	$(OBJDIR)/toposort.ml \
-	$(OBJDIR)/actionsDeps.mli \
-	$(OBJDIR)/actionsDeps.ml \
-	$(OBJDIR)/lic2soc.mli \
-	$(OBJDIR)/lic2soc.ml \
-	$(OBJDIR)/socExecValue.mli \
-	$(OBJDIR)/socExecValue.ml \
-	$(OBJDIR)/socExecEvalPredef.mli \
-	$(OBJDIR)/socExecEvalPredef.ml \
-	$(OBJDIR)/socExec.mli \
-	$(OBJDIR)/socExec.ml
-
-
-COMPILER_SOURCES =  \
-	$(OBJDIR)/lv6util.ml \
-	$(OBJDIR)/filenameExtras.mli \
-	$(OBJDIR)/filenameExtras.ml \
-	$(OBJDIR)/lv6MainArgs.ml \
-	$(OBJDIR)/lv6MainArgs.mli \
-	$(OBJDIR)/ident.mli \
-	$(OBJDIR)/ident.ml \
-	$(OBJDIR)/lxm.mli \
-	$(OBJDIR)/lxm.ml \
-	$(OBJDIR)/lv6errors.ml \
-	$(OBJDIR)/astPredef.ml \
-	$(OBJDIR)/astCore.ml \
-	$(OBJDIR)/astV6.ml \
-	$(OBJDIR)/astV6Dump.mli \
-	$(OBJDIR)/astV6Dump.ml \
-	$(OBJDIR)/astRecognizePredef.mli \
-	$(OBJDIR)/astRecognizePredef.ml \
-	$(OBJDIR)/lv6parserUtils.ml \
-	$(OBJDIR)/lv6parser.mly \
-	$(OBJDIR)/lv6lexer.mll \
-	$(OBJDIR)/astInstanciateModel.mli \
-	$(OBJDIR)/astInstanciateModel.ml \
-	$(OBJDIR)/astTabSymbol.mli \
-	$(OBJDIR)/astTabSymbol.ml \
-	$(OBJDIR)/astTab.mli \
-	$(OBJDIR)/astTab.ml \
-	$(OBJDIR)/lic.ml \
-	$(OBJDIR)/idSolver.ml \
-	$(OBJDIR)/licName.mli \
-	$(OBJDIR)/licName.ml \
-	$(OBJDIR)/licDump.ml \
-	$(OBJDIR)/licPrg.mli \
-	$(OBJDIR)/licPrg.ml \
-	$(SOC_SOURCES) \
-	$(OBJDIR)/unifyType.mli \
-	$(OBJDIR)/unifyType.ml \
-	$(OBJDIR)/unifyClock.mli \
-	$(OBJDIR)/unifyClock.ml \
-	$(OBJDIR)/licEvalType.mli \
-	$(OBJDIR)/licEvalType.ml \
-	$(OBJDIR)/licEvalConst.mli \
-	$(OBJDIR)/licEvalConst.ml \
-	$(OBJDIR)/licEvalClock.mli \
-	$(OBJDIR)/licEvalClock.ml \
-	$(OBJDIR)/evalConst.mli \
-	$(OBJDIR)/evalConst.ml \
-	$(OBJDIR)/evalType.mli \
-	$(OBJDIR)/evalType.ml \
-	$(OBJDIR)/evalClock.mli \
-	$(OBJDIR)/evalClock.ml \
-	$(OBJDIR)/licMetaOp.mli \
-	$(OBJDIR)/licMetaOp.ml \
-	$(OBJDIR)/ast2lic.mli \
-	$(OBJDIR)/ast2lic.ml \
-	$(OBJDIR)/misc.ml \
-	$(OBJDIR)/l2lCheckLoops.mli \
-	$(OBJDIR)/l2lCheckLoops.ml \
-	$(OBJDIR)/l2lCheckOutputs.mli \
-	$(OBJDIR)/l2lCheckOutputs.ml \
-	$(OBJDIR)/l2lExpandArrays.mli \
-	$(OBJDIR)/l2lExpandArrays.ml \
-	$(OBJDIR)/l2lExpandNodes.mli \
-	$(OBJDIR)/l2lExpandNodes.ml \
-	$(OBJDIR)/l2lExpandMetaOp.ml \
-	$(OBJDIR)/l2lExpandMetaOp.mli \
-	$(OBJDIR)/l2lRmPoly.mli \
-	$(OBJDIR)/l2lRmPoly.ml \
-	$(OBJDIR)/l2lAliasType.mli \
-	$(OBJDIR)/l2lAliasType.ml \
-	$(OBJDIR)/l2lSplit.mli \
-	$(OBJDIR)/l2lSplit.ml \
-	$(OBJDIR)/licTab.ml \
-	$(OBJDIR)/licTab.mli \
-	$(OBJDIR)/compile.mli \
-	$(OBJDIR)/compile.ml \
-
-SOURCES =  \
-	$(OBJDIR)/lv6version.ml \
-	$(COMON_SOURCES) \
-	$(COMPILER_SOURCES) \
-	$(OBJDIR)/main.ml
-
-LDBG_SOURCES =  \
-	$(OBJDIR)/lv6version.ml \
-	$(COMPILER_SOURCES)
-
-#
-# Be sure to build those files before doing something else
-# since they are needed by $(RESULT)
-PRE_TARGETS=$(OBJDIR)/lv6version.ml
-
-NOMLI_SOURCES=$(filter %.ml %.mll %.mly, $(SOURCES))
-
-NOMLY_SOURCES=$(SOURCES:.mly=.ml)
-MLONLY_SOURCES=$(NOMLY_SOURCES:.mll=.ml)
+# oasis entry points
 
-dot:
-	ocamldoc -I  $(OBJDIR) $(MLONLY_SOURCES) -d ocamldoc -dot -dot-reduce
-	dot -Tpdf ocamldoc.out > lus2lic.pdf
-	ocamldoc -I  $(OBJDIR) $(MLONLY_SOURCES) -d ocamldoc -dot -dot-reduce -dot-types
-	dot -Tpdf ocamldoc.out > lus2lic-types.pdf
-	xpdf lus2lic.pdf
-	xpdf lus2lic-types.pdf
+build: setup.data setup.ml src/lv6version.ml
+	ocaml setup.ml -build          
 
-html:
-	ocamldoc -I  $(OBJDIR) $(MLONLY_SOURCES) -d ocamldoc -html -keep-code
 
-nomli:
-	rm $(OBJDIR)/*.mli
+setup.ml:_oasis
+	oasis setup
 
-debug: nomli dc
+PROF=--enable-profile
+PROF=--disable-profile
+setup.data:configure
+configure: setup.ml
+	ocaml setup.ml -configure $(PROF)  --prefix $(LUSTREV6_PATH) --exec-prefix $(LUSTREV6_PATH)/$(HOSTTYPE)
 
-ln: $(OBJDIR) $(SOURCES)
+test: build 
+	cd test; make test
 
-doit: ln nc
+install:
+	ocaml setup.ml -install
 
-include $(OCAMLMAKEFILE)
+uninstall:
+	ocaml setup.ml -uninstall
 
-# Specific rule (lv6version)
+reinstall:
+	ocaml setup.ml -reinstall
 
-.PRECIOUS: $(OBJDIR)/lv6version.ml
+clean:
+	ocaml setup.ml -clean
 
-$(OBJDIR)/lv6version.ml: Makefile
-	echo "(** Automatically gen	erated from Makefile *) " > $@
-	echo "let tool = \"lus2lic\"" >> $@
-	echo "let branch = \"$(shell utils/get_branch_name)\"" >> $@
-	echo "let commit = \"$(shell utils/get_commit_number)\"" >> $@
-	echo "let sha_1 = \"$(shell utils/get_sha_1)"\">> $@
-	echo "let str = (branch ^ \".\" ^ commit ^ \" (\" ^ sha_1 ^ \")\")">> $@
-	echo "let maintainer = \"jahier@imag.fr\"">> $@
+distclean:
+	ocaml setup.ml -distclean
+
+include ./Makefile.version
 
-all: nc
-lus2lic:
-	make all
-	make test
 
+#######################################################################################
 # TEST, NON REGR. ETC...
 TESTDIR=./test
 
 .PHONY: diff test log
-dif:
-	git --no-pager diff  --color-words
-
-diff:
-	rm -f diff_lv6.diff; git diff --ignore-all-space > diff_lv6.diff ; ls -l diff_lv6.diff
-
-OTAGS=$(HOME)/bin/otags
-tags:
-	$(OTAGS) -v $(shell $(OCAMLC) -where)/*.mli   src/*.ml
-
-log:
-	rm -f lv6.log; git log > lv6.log
 
 test_nc: 
 	cd $(TESTDIR) ; make test ; cd $(curdir)
 
-Clean:
-	rm -rf $(OBJDIR)
-
 test: 
-	cd $(TESTDIR)
-	make
+	cd $(TESTDIR) ; make ; make time
 	cd $(curdir)
 
+# XXX use rdbg -lurette !!!
+# Compile and copy lurrettop from here because
+# (1) lurettetop uses lus2lic source (it embeds the V6 interpreter)
+# (2) the tests performed here uses lurettetop...
+test/lurettetop: ltop
+	cp ~/lurette/bin/lurettetop test
 
-ci: $(OBJDIR)/lv6version.ml
-	make test && git commit -F log && rm -f $(OBJDIR)/lv6version.ml
-
-cia: $(OBJDIR)/lv6version.ml
-	git commit -a -F log && rm -f $(OBJDIR)/lv6version.ml
-
-
-amend:
-	git commit -a -F log --amend  && rm -f $(OBJDIR)/lv6version.ml
-
-push:
-	git push git+ssh://jahier@scm.forge.imag.fr/var/lib/gforge/chroot/scmrepos/git/lustre/lus2lic.git
-
-pull:
-	git pull git+ssh://jahier@scm.forge.imag.fr/var/lib/gforge/chroot/scmrepos/git/lustre/lus2lic.git
-
+ltop: 
+	cd ~/lurette/source/ ;	make ltop;	make cp
 
+# copy (lus2lic -> lurette) the shared source to the lurette directory
 scp:
 	chmod u+w ../lurette/source/lus2lic/*
 	cp $(LDBG_SOURCES) ../lurette/source/lus2lic/
 	chmod u-w ../lurette/source/lus2lic/*
 
-# Keep those files in sync as they are shared
+# Keep those files in sync as they are shared with lurette
 # and prevent their modification
+# cp lurette -> lus2lic
+LURETTEDIR=~/lurette
 cp_comon_file:
-	chmod u+w src/data.ml 
-	chmod u+w src/data.mli 
-	chmod u+w src/rif_base.ml 
-	chmod u+w src/rif_base.mli 
-	chmod u+w src/genlex.ml 
-	chmod u+w src/genlex.mli 
 	chmod u+w src/verbose.ml 
 	chmod u+w src/verbose.mli 
-	chmod u+w src/expr.ml 
-	chmod u+w src/event.ml 
-	chmod u+w src/failure.ml 
-	cp ~/lurette/source/common/data.ml src/
-	cp ~/lurette/source/common/data.mli src/
-	cp ~/lurette/source/common/rif_base.ml src/
-	cp ~/lurette/source/common/rif_base.mli src/
-	cp ~/lurette/source/common/genlex.ml src/
-	cp ~/lurette/source/common/genlex.mli src/
-	cp ~/lurette/source/Lutin/verbose.ml src/
-	cp ~/lurette/source/Lutin/verbose.mli src/
-	cp ~/lurette/source/Lurettetop/expr.ml src/
-	cp ~/lurette/source/Lurettetop/event.ml src/
-	cp ~/lurette/source/Lurettetop/failure.ml src/
-	chmod u-w src/data.ml 
-	chmod u-w src/data.mli 
-	chmod u-w src/rif_base.ml 
-	chmod u-w src/rif_base.mli 
-	chmod u-w src/genlex.ml 
-	chmod u-w src/genlex.mli 
+	cp $(LURETTEDIR)/source/Lutin/verbose.ml src/
+	cp $(LURETTEDIR)/source/Lutin/verbose.mli src/
 	chmod u-w src/verbose.ml 
 	chmod u-w src/verbose.mli 
-	chmod u-w src/expr.ml 
-	chmod u-w src/event.ml 
-	chmod u-w src/failure.ml 
+
+#######################################################################################
+# git entry points
+
+ci: 
+	git commit -F log && rm -f src/lv6version.ml
+
+cia: src/lv6version.ml
+	git commit -a -F log && rm -f src/lv6version.ml
+
+
+amend:
+	git commit -a -F log --amend  && rm -f src/lv6version.ml
+
+push:
+	git push git+ssh://$(USER)scm.forge.imag.fr/var/lib/gforge/chroot/scmrepos/git/lustre/lus2lic.git
+
+pull:
+	git pull git+ssh://$(USER)@scm.forge.imag.fr/var/lib/gforge/chroot/scmrepos/git/lustre/lus2lic.git
+
+#######################################################################################
+# misc
+
+show:
+	git  log --reverse --pretty=oneline  | nl  
+
+dot:
+	ocamldoc  src/*.ml -d ocamldoc -dot -dot-reduce
+	dot -Tpdf ocamldoc.out > lus2lic.pdf
+	ocamldoc  src/*.ml -d ocamldoc -dot -dot-reduce -dot-types
+	dot -Tpdf ocamldoc.out > lus2lic-types.pdf
+	xpdf lus2lic.pdf
+	xpdf lus2lic-types.pdf
+
+html:
+	ocamldoc -I src/*.ml -d ocamldoc -html -keep-code
+
+debug: nomli dc
+
+all: nc
+lus2lic:
+	make all
+	make test
+
+dif:
+	git --no-pager diff  --color-words
+
+diff:
+	rm -f diff_lv6.diff; git diff --ignore-all-space > diff_lv6.diff ; ls -l diff_lv6.diff
+
+OTAGS=otags
+tags:
+	$(OTAGS) -v $(shell ocamlc -where)/*.mli   src/*.ml
+
+log:
+	rm -f lv6.log; git log > lv6.log
 
diff --git a/Makefile.common b/Makefile.common
deleted file mode 100644
index 27680ef2a48f09ff8674c95c5c17be026a214487..0000000000000000000000000000000000000000
--- a/Makefile.common
+++ /dev/null
@@ -1,34 +0,0 @@
-
-curdir=$(shell pwd)
-
-
-OBJDIR=./obj$(HOSTTYPE)
-SRCDIR=./src
-
-LN=ln -s
-$(OBJDIR)/% : $(SRCDIR)/%
-	rm -f $@; cd $(OBJDIR) && $(LN) ../$(SRCDIR)/$* . && cd $(curdir)
-
-$(OBJDIR):
-	mkdir $(OBJDIR)
-
-OCAMLMAKEFILE = ./OCamlMakefile
-RESULT=$(OBJDIR)/lus2lic$(EXE)
-
-LIBS = str unix nums
-
-OCAMLC=ocamlc
-OCAMLOPT=ocamlopt
-
-ifeq ($(HOSTTYPE),win32)
-  OCAMLC=/usr/i586-mingw32msvc/bin/ocamlc
-  OCAMLOPT=/usr/i586-mingw32msvc/bin/ocamlopt
-  OCAMLDEP=/usr/i586-mingw32msvc/bin/ocamldep
-  OCAMLRUN=/usr/i586-mingw32msvc/bin/ocamlrun
-  OCAMLLIB = `/usr/i586-mingw32msvc/bin/ocamlc -where`
-endif
-
-ifeq ($(HOSTTYPE),cygwin)
-CFLAGS=-mno-cygwin
-endif
-
diff --git a/Makefile.version b/Makefile.version
new file mode 100644
index 0000000000000000000000000000000000000000..baeb0d92343a3b82c60dba5bfc38377a5ee428b6
--- /dev/null
+++ b/Makefile.version
@@ -0,0 +1,20 @@
+
+# can oasis do all this stuff?
+SHA:=`git log -1 --pretty=format:"%h"`
+COMMIT_NB:=`git log --pretty=oneline  | wc -l`
+
+VERSION:=1.0.$(COMMIT_NB)
+
+gen_version:
+	rm -f src/lv6version.ml
+
+
+src/lv6version.ml: Makefile
+	echo "(** Automatically generated from Makefile *) " > $@
+	echo "let tool = \"lus2lic\"" >> $@
+	echo "let branch = \"$(shell utils/get_branch_name)\"" >> $@
+	echo "let commit = \"$(shell utils/get_commit_number)\"" >> $@
+	echo "let sha_1 = \"$(shell utils/get_sha_1)"\">> $@
+	echo "let str = (branch ^ \".\" ^ commit ^ \" (\" ^ sha_1 ^ \")\")">> $@
+	echo "let maintainer = \"jahier@imag.fr\"">> $@
+
diff --git a/OCamlMakefile b/OCamlMakefile
deleted file mode 100644
index e9deb247da8176127583035f864c801fd5a47f4f..0000000000000000000000000000000000000000
--- a/OCamlMakefile
+++ /dev/null
@@ -1,1277 +0,0 @@
-###########################################################################
-#                              OCamlMakefile
-#                  Copyright (C) 1999-  Markus Mottl
-#
-#                             For updates see:
-#                http://www.ocaml.info/home/ocaml_sources.html
-#
-###########################################################################
-
-# Modified by damien for .glade.ml compilation
-
-# Set these variables to the names of the sources to be processed and
-# the result variable. Order matters during linkage!
-
-ifndef SOURCES
-  SOURCES := foo.ml
-endif
-export SOURCES
-
-ifndef RES_CLIB_SUF
-  RES_CLIB_SUF := _stubs
-endif
-export RES_CLIB_SUF
-
-ifndef RESULT
-  RESULT := foo
-endif
-export RESULT := $(strip $(RESULT))
-
-export LIB_PACK_NAME
-
-ifndef DOC_FILES
-  DOC_FILES := $(filter %.mli, $(SOURCES))
-endif
-export DOC_FILES
-FIRST_DOC_FILE := $(firstword $(DOC_FILES))
-
-export BCSUFFIX
-export NCSUFFIX
-
-ifndef TOPSUFFIX
-  TOPSUFFIX := .top
-endif
-export TOPSUFFIX
-
-# Eventually set include- and library-paths, libraries to link,
-# additional compilation-, link- and ocamlyacc-flags
-# Path- and library information needs not be written with "-I" and such...
-# Define THREADS if you need it, otherwise leave it unset (same for
-# USE_CAMLP4)!
-
-export THREADS
-export VMTHREADS
-export ANNOTATE
-export USE_CAMLP4
-
-export INCDIRS
-export LIBDIRS
-export EXTLIBDIRS
-export RESULTDEPS
-export OCAML_DEFAULT_DIRS
-
-export LIBS
-export CLIBS
-export CFRAMEWORKS
-
-export OCAMLFLAGS
-export OCAMLNCFLAGS
-export OCAMLBCFLAGS
-
-export OCAMLLDFLAGS
-export OCAMLNLDFLAGS
-export OCAMLBLDFLAGS
-
-export OCAMLMKLIB_FLAGS
-
-ifndef OCAMLCPFLAGS
-  OCAMLCPFLAGS := a
-endif
-export OCAMLCPFLAGS
-
-ifndef DOC_DIR
-  DOC_DIR := doc
-endif
-export DOC_DIR
-
-export PPFLAGS
-
-export LFLAGS
-export YFLAGS
-export IDLFLAGS
-
-export OCAMLDOCFLAGS
-
-export OCAMLFIND_INSTFLAGS
-
-export DVIPSFLAGS
-
-export STATIC
-
-# Add a list of optional trash files that should be deleted by "make clean"
-export TRASH
-
-ECHO := echo
-
-ifdef REALLY_QUIET
-  export REALLY_QUIET
-  ECHO := true
-  LFLAGS := $(LFLAGS) -q
-  YFLAGS := $(YFLAGS) -q
-endif
-
-####################  variables depending on your OCaml-installation
-
-SYSTEM := $(shell ocamlc -config 2>/dev/null | grep system | sed 's/system: //')
-    # This may be
-    # - mingw
-    # - win32
-    # - cygwin
-    # - some other string means Unix
-    # - empty means ocamlc does not support -config
-
-ifeq ($(SYSTEM),mingw)
-  MINGW=1
-endif
-ifeq ($(SYSTEM),win32)
-  MSVC=1
-endif
-
-ifdef MINGW
-  export MINGW
-  WIN32 := 1
-  # We are compiling with cygwin tools:
-  CFLAGS_WIN32 := -mno-cygwin
-  # The default value 'cc' makes 'ocamlc -cc "cc"' raises the error 'The
-  # NTVDM CPU has encountered an illegal instruction'.
-  CC := gcc
-  # The OCaml C header files use this flag:
-  CFLAGS += -D__MINGW32__
-endif
-ifdef MSVC
-  export MSVC
-  WIN32   := 1
-  ifndef STATIC
-    CPPFLAGS_WIN32 := -DCAML_DLL
-  endif
-  CFLAGS_WIN32 += -nologo
-  EXT_OBJ := obj
-  EXT_LIB := lib
-  ifeq ($(CC),gcc)
-    # work around GNU Make default value
-    ifdef THREADS
-      CC := cl -MT
-    else
-      CC := cl
-    endif
-  endif
-  ifeq ($(CXX),g++)
-    # work around GNU Make default value
-    CXX := $(CC)
-  endif
-  CFLAG_O := -Fo
-endif
-ifdef WIN32
-  EXT_CXX := cpp
-  EXE     := .exe
-endif
-
-ifndef EXT_OBJ
-  EXT_OBJ := o
-endif
-ifndef EXT_LIB
-  EXT_LIB := a
-endif
-ifndef EXT_CXX
-  EXT_CXX := cc
-endif
-ifndef EXE
-  EXE := # empty
-endif
-ifndef CFLAG_O
-  CFLAG_O := -o # do not delete this comment (preserves trailing whitespace)!
-endif
-
-export CC
-export CXX
-export CFLAGS
-export CXXFLAGS
-export LDFLAGS
-export CPPFLAGS
-
-ifndef RPATH_FLAG
-  ifdef ELF_RPATH_FLAG
-    RPATH_FLAG := $(ELF_RPATH_FLAG)
-  else
-    RPATH_FLAG := -R
-  endif
-endif
-export RPATH_FLAG
-
-ifndef MSVC
-ifndef PIC_CFLAGS
-  PIC_CFLAGS := -fPIC
-endif
-ifndef PIC_CPPFLAGS
-  PIC_CPPFLAGS := -DPIC
-endif
-endif
-
-export PIC_CFLAGS
-export PIC_CPPFLAGS
-
-BCRESULT  := $(addsuffix $(BCSUFFIX), $(RESULT))
-NCRESULT  := $(addsuffix $(NCSUFFIX), $(RESULT))
-TOPRESULT := $(addsuffix $(TOPSUFFIX), $(RESULT))
-
-ifndef OCAMLFIND
-  OCAMLFIND := ocamlfind
-endif
-export OCAMLFIND
-
-ifndef OCAMLC
-  OCAMLC := ocamlc
-endif
-export OCAMLC
-
-ifndef OCAMLOPT
-  OCAMLOPT := ocamlopt
-endif
-export OCAMLOPT
-
-ifndef OCAMLMKTOP
-  OCAMLMKTOP := ocamlmktop
-endif
-export OCAMLMKTOP
-
-ifndef OCAMLCP
-  OCAMLCP := ocamlcp
-endif
-export OCAMLCP
-
-ifndef OCAMLDEP
-  OCAMLDEP := ocamldep
-endif
-export OCAMLDEP
-
-ifndef OCAMLLEX
-  OCAMLLEX := ocamllex
-endif
-export OCAMLLEX
-
-ifndef OCAMLYACC
-  OCAMLYACC := ocamlyacc
-endif
-export OCAMLYACC
-
-ifndef OCAMLMKLIB
-  OCAMLMKLIB := ocamlmklib
-endif
-export OCAMLMKLIB
-
-ifndef OCAML_GLADECC
-  OCAML_GLADECC := lablgladecc2
-endif
-export OCAML_GLADECC
-
-ifndef OCAML_GLADECC_FLAGS
-  OCAML_GLADECC_FLAGS :=
-endif
-export OCAML_GLADECC_FLAGS
-
-ifndef CAMELEON_REPORT
-  CAMELEON_REPORT := report
-endif
-export CAMELEON_REPORT
-
-ifndef CAMELEON_REPORT_FLAGS
-  CAMELEON_REPORT_FLAGS :=
-endif
-export CAMELEON_REPORT_FLAGS
-
-ifndef CAMELEON_ZOGGY
-  CAMELEON_ZOGGY := camlp4o pa_zog.cma pr_o.cmo
-endif
-export CAMELEON_ZOGGY
-
-ifndef CAMELEON_ZOGGY_FLAGS
-  CAMELEON_ZOGGY_FLAGS :=
-endif
-export CAMELEON_ZOGGY_FLAGS
-
-ifndef OXRIDL
-  OXRIDL := oxridl
-endif
-export OXRIDL
-
-ifndef CAMLIDL
-  CAMLIDL := camlidl
-endif
-export CAMLIDL
-
-ifndef CAMLIDLDLL
-  CAMLIDLDLL := camlidldll
-endif
-export CAMLIDLDLL
-
-ifndef NOIDLHEADER
-  MAYBE_IDL_HEADER := -header
-endif
-export NOIDLHEADER
-
-export NO_CUSTOM
-
-ifndef CAMLP4
-  CAMLP4 := camlp4
-endif
-export CAMLP4
-
-ifndef REAL_OCAMLFIND
-  ifdef PACKS
-    ifndef CREATE_LIB
-      ifdef THREADS
-	PACKS += threads
-      endif
-    endif
-    empty :=
-    space := $(empty) $(empty)
-    comma := ,
-    ifdef PREDS
-      PRE_OCAML_FIND_PREDICATES := $(subst $(space),$(comma),$(PREDS))
-      PRE_OCAML_FIND_PACKAGES := $(subst $(space),$(comma),$(PACKS))
-      OCAML_FIND_PREDICATES := -predicates $(PRE_OCAML_FIND_PREDICATES)
-  #    OCAML_DEP_PREDICATES := -syntax $(PRE_OCAML_FIND_PREDICATES)
-      OCAML_FIND_PACKAGES := $(OCAML_FIND_PREDICATES) -package $(PRE_OCAML_FIND_PACKAGES)
-      OCAML_DEP_PACKAGES := $(OCAML_DEP_PREDICATES) -package $(PRE_OCAML_FIND_PACKAGES)
-    else
-      OCAML_FIND_PACKAGES := -package $(subst $(space),$(comma),$(PACKS))
-      OCAML_DEP_PACKAGES :=
-    endif
-    OCAML_FIND_LINKPKG := -linkpkg
-    REAL_OCAMLFIND := $(OCAMLFIND)
-  endif
-endif
-
-export OCAML_FIND_PACKAGES
-export OCAML_DEP_PACKAGES
-export OCAML_FIND_LINKPKG
-export REAL_OCAMLFIND
-
-ifndef OCAMLDOC
-  OCAMLDOC := ocamldoc
-endif
-export OCAMLDOC
-
-ifndef LATEX
-  LATEX := latex
-endif
-export LATEX
-
-ifndef DVIPS
-  DVIPS := dvips
-endif
-export DVIPS
-
-ifndef PS2PDF
-  PS2PDF := ps2pdf
-endif
-export PS2PDF
-
-ifndef OCAMLMAKEFILE
-  OCAMLMAKEFILE := OCamlMakefile
-endif
-export OCAMLMAKEFILE
-
-ifndef OCAMLLIBPATH
-  OCAMLLIBPATH := \
-    $(shell $(OCAMLC) 2>/dev/null -where || echo /usr/local/lib/ocaml)
-endif
-export OCAMLLIBPATH
-
-ifndef OCAML_LIB_INSTALL
-  OCAML_LIB_INSTALL := $(OCAMLLIBPATH)/contrib
-endif
-export OCAML_LIB_INSTALL
-
-###########################################################################
-
-####################  change following sections only if
-####################    you know what you are doing!
-
-# delete target files when a build command fails
-.PHONY: .DELETE_ON_ERROR
-.DELETE_ON_ERROR:
-
-# for pedants using "--warn-undefined-variables"
-export MAYBE_IDL
-export REAL_RESULT
-export CAMLIDLFLAGS
-export THREAD_FLAG
-export RES_CLIB
-export MAKEDLL
-export ANNOT_FLAG
-export C_OXRIDL
-export SUBPROJS
-export CFLAGS_WIN32
-export CPPFLAGS_WIN32
-
-INCFLAGS :=
-
-SHELL := /bin/sh
-
-MLDEPDIR := ._d
-BCDIDIR  := ._bcdi
-NCDIDIR  := ._ncdi
-
-FILTER_EXTNS := %.mli %.ml %.mll %.mly %.idl %.oxridl %.c %.m %.$(EXT_CXX) %.rep %.zog %.glade
-
-FILTERED     := $(filter $(FILTER_EXTNS), $(SOURCES))
-SOURCE_DIRS  := $(filter-out ./, $(sort $(dir $(FILTERED))))
-
-FILTERED_REP := $(filter %.rep, $(FILTERED))
-DEP_REP      := $(FILTERED_REP:%.rep=$(MLDEPDIR)/%.d)
-AUTO_REP     := $(FILTERED_REP:.rep=.ml)
-
-FILTERED_ZOG := $(filter %.zog, $(FILTERED))
-DEP_ZOG      := $(FILTERED_ZOG:%.zog=$(MLDEPDIR)/%.d)
-AUTO_ZOG     := $(FILTERED_ZOG:.zog=.ml)
-
-FILTERED_GLADE := $(filter %.glade, $(FILTERED))
-DEP_GLADE      := $(FILTERED_GLADE:%.glade=$(MLDEPDIR)/%.d)
-AUTO_GLADE     := $(FILTERED_GLADE:.glade=.ml)
-
-FILTERED_ML  := $(filter %.ml, $(FILTERED))
-DEP_ML       := $(FILTERED_ML:%.ml=$(MLDEPDIR)/%.d)
-
-FILTERED_MLI := $(filter %.mli, $(FILTERED))
-DEP_MLI      := $(FILTERED_MLI:.mli=.di)
-
-FILTERED_MLL := $(filter %.mll, $(FILTERED))
-DEP_MLL      := $(FILTERED_MLL:%.mll=$(MLDEPDIR)/%.d)
-AUTO_MLL     := $(FILTERED_MLL:.mll=.ml)
-
-FILTERED_MLY := $(filter %.mly, $(FILTERED))
-DEP_MLY      := $(FILTERED_MLY:%.mly=$(MLDEPDIR)/%.d) $(FILTERED_MLY:.mly=.di)
-AUTO_MLY     := $(FILTERED_MLY:.mly=.mli) $(FILTERED_MLY:.mly=.ml)
-
-FILTERED_IDL := $(filter %.idl, $(FILTERED))
-DEP_IDL      := $(FILTERED_IDL:%.idl=$(MLDEPDIR)/%.d) $(FILTERED_IDL:.idl=.di)
-C_IDL        := $(FILTERED_IDL:%.idl=%_stubs.c)
-ifndef NOIDLHEADER
- C_IDL += $(FILTERED_IDL:.idl=.h)
-endif
-OBJ_C_IDL    := $(FILTERED_IDL:%.idl=%_stubs.$(EXT_OBJ))
-AUTO_IDL     := $(FILTERED_IDL:.idl=.mli) $(FILTERED_IDL:.idl=.ml) $(C_IDL)
-
-FILTERED_OXRIDL := $(filter %.oxridl, $(FILTERED))
-DEP_OXRIDL      := $(FILTERED_OXRIDL:%.oxridl=$(MLDEPDIR)/%.d) $(FILTERED_OXRIDL:.oxridl=.di)
-AUTO_OXRIDL     := $(FILTERED_OXRIDL:.oxridl=.mli) $(FILTERED_OXRIDL:.oxridl=.ml) $(C_OXRIDL)
-
-FILTERED_C_CXX := $(filter %.c %.m %.$(EXT_CXX), $(FILTERED))
-OBJ_C_CXX      := $(FILTERED_C_CXX:.c=.$(EXT_OBJ))
-OBJ_C_CXX      := $(OBJ_C_CXX:.m=.$(EXT_OBJ))
-OBJ_C_CXX      := $(OBJ_C_CXX:.$(EXT_CXX)=.$(EXT_OBJ))
-
-PRE_TARGETS  += $(AUTO_MLL) $(AUTO_MLY) $(AUTO_IDL) $(AUTO_OXRIDL) $(AUTO_ZOG) $(AUTO_REP) $(AUTO_GLADE)
-
-ALL_DEPS     := $(DEP_ML) $(DEP_MLI) $(DEP_MLL) $(DEP_MLY) $(DEP_IDL) $(DEP_OXRIDL) $(DEP_ZOG) $(DEP_REP) $(DEP_GLADE)
-
-MLDEPS       := $(filter %.d, $(ALL_DEPS))
-MLIDEPS      := $(filter %.di, $(ALL_DEPS))
-BCDEPIS      := $(MLIDEPS:%.di=$(BCDIDIR)/%.di)
-NCDEPIS      := $(MLIDEPS:%.di=$(NCDIDIR)/%.di)
-
-ALLML        := $(filter %.mli %.ml %.mll %.mly %.idl %.oxridl %.rep %.zog %.glade, $(FILTERED))
-
-IMPLO_INTF   := $(ALLML:%.mli=%.mli.__)
-IMPLO_INTF   := $(foreach file, $(IMPLO_INTF), \
-                  $(basename $(file)).cmi $(basename $(file)).cmo)
-IMPLO_INTF   := $(filter-out %.mli.cmo, $(IMPLO_INTF))
-IMPLO_INTF   := $(IMPLO_INTF:%.mli.cmi=%.cmi)
-
-IMPLX_INTF   := $(IMPLO_INTF:.cmo=.cmx)
-
-INTF         := $(filter %.cmi, $(IMPLO_INTF))
-IMPL_CMO     := $(filter %.cmo, $(IMPLO_INTF))
-IMPL_CMX     := $(IMPL_CMO:.cmo=.cmx)
-IMPL_ASM     := $(IMPL_CMO:.cmo=.asm)
-IMPL_S       := $(IMPL_CMO:.cmo=.s)
-
-OBJ_LINK     := $(OBJ_C_IDL) $(OBJ_C_CXX)
-OBJ_FILES    := $(IMPL_CMO:.cmo=.$(EXT_OBJ)) $(OBJ_LINK)
-
-EXECS        := $(addsuffix $(EXE), \
-                            $(sort $(TOPRESULT) $(BCRESULT) $(NCRESULT)))
-ifdef WIN32
-  EXECS      += $(BCRESULT).dll $(NCRESULT).dll
-endif
-
-CLIB_BASE    := $(RESULT)$(RES_CLIB_SUF)
-ifneq ($(strip $(OBJ_LINK)),)
-  RES_CLIB     := lib$(CLIB_BASE).$(EXT_LIB)
-endif
-
-ifdef WIN32
-DLLSONAME := dll$(CLIB_BASE).dll
-else
-DLLSONAME := dll$(CLIB_BASE).so
-endif
-
-NONEXECS     := $(INTF) $(IMPL_CMO) $(IMPL_CMX) $(IMPL_ASM) $(IMPL_S) \
-		$(OBJ_FILES) $(PRE_TARGETS) $(BCRESULT).cma $(NCRESULT).cmxa \
-		$(NCRESULT).$(EXT_LIB) $(BCRESULT).cmi $(BCRESULT).cmo \
-		$(NCRESULT).cmi $(NCRESULT).cmx $(NCRESULT).$(EXT_OBJ) \
-		$(RES_CLIB) $(IMPL_CMO:.cmo=.annot) \
-		$(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmo $(LIB_PACK_NAME).cmx \
-		$(LIB_PACK_NAME).$(EXT_OBJ)
-
-ifndef STATIC
-  NONEXECS += $(DLLSONAME)
-endif
-
-ifndef LIBINSTALL_FILES
-  LIBINSTALL_FILES := $(RESULT).mli $(RESULT).cmi $(RESULT).cma \
-		      $(RESULT).cmxa $(RESULT).$(EXT_LIB) $(RES_CLIB)
-  ifndef STATIC
-    ifneq ($(strip $(OBJ_LINK)),)
-      LIBINSTALL_FILES += $(DLLSONAME)
-    endif
-  endif
-endif
-
-export LIBINSTALL_FILES
-
-ifdef WIN32
-  # some extra stuff is created while linking DLLs
-  NONEXECS   += $(BCRESULT).$(EXT_LIB) $(BCRESULT).exp $(NCRESULT).exp $(CLIB_BASE).exp $(CLIB_BASE).lib
-endif
-
-TARGETS      := $(EXECS) $(NONEXECS)
-
-# If there are IDL-files
-ifneq ($(strip $(FILTERED_IDL)),)
-  MAYBE_IDL := -cclib -lcamlidl
-endif
-
-ifdef USE_CAMLP4
-  CAMLP4PATH := \
-    $(shell $(CAMLP4) -where 2>/dev/null || echo /usr/local/lib/camlp4)
-  INCFLAGS := -I $(CAMLP4PATH)
-  CINCFLAGS := -I$(CAMLP4PATH)
-endif
-
-DINCFLAGS := $(INCFLAGS) $(SOURCE_DIRS:%=-I %) $(OCAML_DEFAULT_DIRS:%=-I %)
-INCFLAGS := $(DINCFLAGS) $(INCDIRS:%=-I %)
-CINCFLAGS += $(SOURCE_DIRS:%=-I%) $(INCDIRS:%=-I%) $(OCAML_DEFAULT_DIRS:%=-I%)
-
-ifndef MSVC
-  CLIBFLAGS += $(SOURCE_DIRS:%=-L%) $(LIBDIRS:%=-L%) \
-               $(EXTLIBDIRS:%=-L%) $(OCAML_DEFAULT_DIRS:%=-L%)
-
-  ifeq ($(ELF_RPATH), yes)
-    CLIBFLAGS += $(EXTLIBDIRS:%=-Wl,$(RPATH_FLAG)%)
-  endif
-endif
-
-ifndef PROFILING
-  INTF_OCAMLC := $(OCAMLC)
-else
-  ifndef THREADS
-    INTF_OCAMLC := $(OCAMLCP) -p $(OCAMLCPFLAGS)
-  else
-    # OCaml does not support profiling byte code
-    # with threads (yet), therefore we force an error.
-    ifndef REAL_OCAMLC
-      $(error Profiling of multithreaded byte code not yet supported by OCaml)
-    endif
-    INTF_OCAMLC := $(OCAMLC)
-  endif
-endif
-
-ifndef MSVC
-  COMMON_LDFLAGS := $(LDFLAGS:%=-ccopt %) $(SOURCE_DIRS:%=-ccopt -L%) \
-		    $(LIBDIRS:%=-ccopt -L%) $(EXTLIBDIRS:%=-ccopt -L%) \
-		    $(EXTLIBDIRS:%=-ccopt -Wl $(OCAML_DEFAULT_DIRS:%=-ccopt -L%))
-
-  ifeq ($(ELF_RPATH),yes)
-    COMMON_LDFLAGS += $(EXTLIBDIRS:%=-ccopt -Wl,$(RPATH_FLAG)%)
-  endif
-else
-  COMMON_LDFLAGS := -ccopt "/link -NODEFAULTLIB:LIBC $(LDFLAGS:%=%) $(SOURCE_DIRS:%=-LIBPATH:%) \
-		    $(LIBDIRS:%=-LIBPATH:%) $(EXTLIBDIRS:%=-LIBPATH:%) \
-		    $(OCAML_DEFAULT_DIRS:%=-LIBPATH:%) "
-endif
-
-CLIBS_OPTS := $(CLIBS:%=-cclib -l%) $(CFRAMEWORKS:%=-cclib '-framework %')
-ifdef MSVC
-  ifndef STATIC
-  # MSVC libraries do not have 'lib' prefix
-  CLIBS_OPTS := $(CLIBS:%=-cclib %.lib)
-  endif
-endif
-
-ifneq ($(strip $(OBJ_LINK)),)
-  ifdef CREATE_LIB
-    OBJS_LIBS := -cclib -l$(CLIB_BASE) $(CLIBS_OPTS) $(MAYBE_IDL)
-  else
-    OBJS_LIBS := $(OBJ_LINK) $(CLIBS_OPTS) $(MAYBE_IDL)
-  endif
-else
-  OBJS_LIBS := $(CLIBS_OPTS) $(MAYBE_IDL)
-endif
-
-ifdef LIB_PACK_NAME
-  FOR_PACK_NAME := $(shell echo $(LIB_PACK_NAME) | awk '{print toupper(substr($$0,1,1))substr($$0,2)}')
-endif
-
-# If we have to make byte-code
-ifndef REAL_OCAMLC
-  BYTE_OCAML := y
-
-  # EXTRADEPS is added dependencies we have to insert for all
-  # executable files we generate.  Ideally it should be all of the
-  # libraries we use, but it's hard to find the ones that get searched on
-  # the path since I don't know the paths built into the compiler, so
-  # just include the ones with slashes in their names.
-  EXTRADEPS := $(addsuffix .cma,$(foreach i,$(LIBS),$(if $(findstring /,$(i)),$(i))))
-
-
-  ifndef LIB_PACK_NAME
-    SPECIAL_OCAMLFLAGS := $(OCAMLBCFLAGS)
-  else	
-    SPECIAL_OCAMLFLAGS := -for-pack $(FOR_PACK_NAME) $(OCAMLBCFLAGS)
-  endif
-
-  REAL_OCAMLC := $(INTF_OCAMLC)
-
-  REAL_IMPL := $(IMPL_CMO)
-  REAL_IMPL_INTF := $(IMPLO_INTF)
-  IMPL_SUF := .cmo
-
-  DEPFLAGS  :=
-  MAKE_DEPS := $(MLDEPS) $(BCDEPIS)
-
-  ifdef CREATE_LIB
-    override CFLAGS := $(PIC_CFLAGS) $(CFLAGS)
-    override CPPFLAGS := $(PIC_CPPFLAGS) $(CPPFLAGS)
-    ifndef STATIC
-      ifneq ($(strip $(OBJ_LINK)),)
-	MAKEDLL := $(DLLSONAME)
-	ALL_LDFLAGS := -dllib $(DLLSONAME)
-      endif
-    endif
-  endif
-
-  ifndef NO_CUSTOM
-    ifneq "$(strip $(OBJ_LINK) $(THREADS) $(MAYBE_IDL) $(CLIBS) $(CFRAMEWORKS))" ""
-      ALL_LDFLAGS += -custom
-    endif
-  endif
-
-  ALL_LDFLAGS += $(INCFLAGS) $(OCAMLLDFLAGS) $(OCAMLBLDFLAGS) \
-                 $(COMMON_LDFLAGS) $(LIBS:%=%.cma)
-  CAMLIDLDLLFLAGS :=
-
-  ifdef THREADS
-    ifdef VMTHREADS
-      THREAD_FLAG := -vmthread
-    else
-      THREAD_FLAG := -thread
-    endif
-    ALL_LDFLAGS := $(THREAD_FLAG) $(ALL_LDFLAGS)
-    ifndef CREATE_LIB
-      ifndef REAL_OCAMLFIND
-        ALL_LDFLAGS := unix.cma threads.cma $(ALL_LDFLAGS)
-      endif
-    endif
-  endif
-
-# we have to make native-code
-else
-  EXTRADEPS := $(addsuffix .cmxa,$(foreach i,$(LIBS),$(if $(findstring /,$(i)),$(i))))
-  ifndef PROFILING
-    SPECIAL_OCAMLFLAGS := $(OCAMLNCFLAGS)
-    PLDFLAGS :=
-  else
-    SPECIAL_OCAMLFLAGS := -p $(OCAMLNCFLAGS)
-    PLDFLAGS := -p
-  endif
-
-  ifndef LIB_PACK_NAME
-    SPECIAL_OCAMLFLAGS := $(OCAMLNCFLAGS)
-  else	
-    SPECIAL_OCAMLFLAGS := -for-pack $(FOR_PACK_NAME) $(OCAMLNCFLAGS)
-  endif
-  REAL_IMPL := $(IMPL_CMX)
-  REAL_IMPL_INTF := $(IMPLX_INTF)
-  IMPL_SUF := .cmx
-
-  override CPPFLAGS := -DNATIVE_CODE $(CPPFLAGS)
-
-  DEPFLAGS  := -native
-  MAKE_DEPS := $(MLDEPS) $(NCDEPIS)
-
-  ALL_LDFLAGS := $(PLDFLAGS) $(INCFLAGS) $(OCAMLLDFLAGS) \
-                 $(OCAMLNLDFLAGS) $(COMMON_LDFLAGS)
-  CAMLIDLDLLFLAGS := -opt
-
-  ifndef CREATE_LIB
-    ALL_LDFLAGS += $(LIBS:%=%.cmxa)
-  else
-    override CFLAGS := $(PIC_CFLAGS) $(CFLAGS)
-    override CPPFLAGS := $(PIC_CPPFLAGS) $(CPPFLAGS)
-  endif
-
-  ifdef THREADS
-    THREAD_FLAG := -thread
-    ALL_LDFLAGS := $(THREAD_FLAG) $(ALL_LDFLAGS)
-    ifndef CREATE_LIB
-      ifndef REAL_OCAMLFIND
-        ALL_LDFLAGS := unix.cmxa threads.cmxa $(ALL_LDFLAGS)
-      endif
-    endif
-  endif
-endif
-
-export MAKE_DEPS
-
-ifdef ANNOTATE
-  ANNOT_FLAG := -dtypes
-else
-endif
-
-ALL_OCAMLCFLAGS := $(THREAD_FLAG) $(ANNOT_FLAG) $(OCAMLFLAGS) \
-                   $(INCFLAGS) $(SPECIAL_OCAMLFLAGS)
-
-ifdef make_deps
-  -include $(MAKE_DEPS)
-  PRE_TARGETS :=
-endif
-
-###########################################################################
-# USER RULES
-
-# Call "OCamlMakefile QUIET=" to get rid of all of the @'s.
-QUIET=@
-
-# generates byte-code (default)
-byte-code:		$(PRE_TARGETS)
-			$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(BCRESULT) \
-				REAL_RESULT="$(BCRESULT)" make_deps=yes
-bc:	byte-code
-
-byte-code-nolink:	$(PRE_TARGETS)
-			$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) nolink \
-				REAL_RESULT="$(BCRESULT)" make_deps=yes
-bcnl:	byte-code-nolink
-
-top:			$(PRE_TARGETS)
-			$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(TOPRESULT) \
-				REAL_RESULT="$(BCRESULT)" make_deps=yes
-
-# generates native-code
-
-native-code:		$(PRE_TARGETS)
-			$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(NCRESULT) \
-				REAL_RESULT="$(NCRESULT)" \
-				REAL_OCAMLC="$(OCAMLOPT)" \
-				make_deps=yes
-nc:	native-code
-
-native-code-nolink:	$(PRE_TARGETS)
-			$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) nolink \
-				REAL_RESULT="$(NCRESULT)" \
-				REAL_OCAMLC="$(OCAMLOPT)" \
-				make_deps=yes
-ncnl:	native-code-nolink
-
-# generates byte-code libraries
-byte-code-library:	$(PRE_TARGETS)
-			$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \
-				$(RES_CLIB) $(BCRESULT).cma \
-				REAL_RESULT="$(BCRESULT)" \
-				CREATE_LIB=yes \
-				make_deps=yes
-bcl:	byte-code-library
-
-# generates native-code libraries
-native-code-library:	$(PRE_TARGETS)
-			$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \
-				$(RES_CLIB) $(NCRESULT).cmxa \
-				REAL_RESULT="$(NCRESULT)" \
-				REAL_OCAMLC="$(OCAMLOPT)" \
-				CREATE_LIB=yes \
-				make_deps=yes
-ncl:	native-code-library
-
-ifdef WIN32
-# generates byte-code dll
-byte-code-dll:		$(PRE_TARGETS)
-			$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \
-				$(RES_CLIB) $(BCRESULT).dll \
-				REAL_RESULT="$(BCRESULT)" \
-				make_deps=yes
-bcd:	byte-code-dll
-
-# generates native-code dll
-native-code-dll:	$(PRE_TARGETS)
-			$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \
-				$(RES_CLIB) $(NCRESULT).dll \
-				REAL_RESULT="$(NCRESULT)" \
-				REAL_OCAMLC="$(OCAMLOPT)" \
-				make_deps=yes
-ncd:	native-code-dll
-endif
-
-# generates byte-code with debugging information
-debug-code:		$(PRE_TARGETS)
-			$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(BCRESULT) \
-				REAL_RESULT="$(BCRESULT)" make_deps=yes \
-				OCAMLFLAGS="-g $(OCAMLFLAGS)" \
-				OCAMLLDFLAGS="-g $(OCAMLLDFLAGS)"
-dc:	debug-code
-
-debug-code-nolink:	$(PRE_TARGETS)
-			$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) nolink \
-				REAL_RESULT="$(BCRESULT)" make_deps=yes \
-				OCAMLFLAGS="-g $(OCAMLFLAGS)" \
-				OCAMLLDFLAGS="-g $(OCAMLLDFLAGS)"
-dcnl:	debug-code-nolink
-
-# generates byte-code with debugging information (native code)
-debug-native-code:	$(PRE_TARGETS)
-			$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(NCRESULT) \
-				REAL_RESULT="$(NCRESULT)" make_deps=yes \
-				REAL_OCAMLC="$(OCAMLOPT)" \
-				OCAMLFLAGS="-g $(OCAMLFLAGS)" \
-				OCAMLLDFLAGS="-g $(OCAMLLDFLAGS)"
-dnc:	debug-native-code
-
-debug-native-code-nolink:	$(PRE_TARGETS)
-			$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) nolink \
-				REAL_RESULT="$(NCRESULT)" make_deps=yes \
-				REAL_OCAMLC="$(OCAMLOPT)" \
-				OCAMLFLAGS="-g $(OCAMLFLAGS)" \
-				OCAMLLDFLAGS="-g $(OCAMLLDFLAGS)"
-dncnl:	debug-native-code-nolink
-
-# generates byte-code libraries with debugging information
-debug-code-library:	$(PRE_TARGETS)
-			$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \
-				$(RES_CLIB) $(BCRESULT).cma \
-				REAL_RESULT="$(BCRESULT)" make_deps=yes \
-				CREATE_LIB=yes \
-				OCAMLFLAGS="-g $(OCAMLFLAGS)" \
-				OCAMLLDFLAGS="-g $(OCAMLLDFLAGS)"
-dcl:	debug-code-library
-
-# generates byte-code libraries with debugging information (native code)
-debug-native-code-library:	$(PRE_TARGETS)
-			$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \
-				$(RES_CLIB) $(NCRESULT).cma \
-				REAL_RESULT="$(NCRESULT)" make_deps=yes \
-				REAL_OCAMLC="$(OCAMLOPT)" \
-				CREATE_LIB=yes \
-				OCAMLFLAGS="-g $(OCAMLFLAGS)" \
-				OCAMLLDFLAGS="-g $(OCAMLLDFLAGS)"
-dncl:	debug-native-code-library
-
-# generates byte-code for profiling
-profiling-byte-code:		$(PRE_TARGETS)
-			$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(BCRESULT) \
-				REAL_RESULT="$(BCRESULT)" PROFILING="y" \
-				make_deps=yes
-pbc:	profiling-byte-code
-
-# generates native-code
-
-profiling-native-code:		$(PRE_TARGETS)
-			$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(NCRESULT) \
-				REAL_RESULT="$(NCRESULT)" \
-				REAL_OCAMLC="$(OCAMLOPT)" \
-				PROFILING="y" \
-				make_deps=yes
-pnc:	profiling-native-code
-
-# generates byte-code libraries
-profiling-byte-code-library:	$(PRE_TARGETS)
-			$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \
-				$(RES_CLIB) $(BCRESULT).cma \
-				REAL_RESULT="$(BCRESULT)" PROFILING="y" \
-				CREATE_LIB=yes \
-				make_deps=yes
-pbcl:	profiling-byte-code-library
-
-# generates native-code libraries
-profiling-native-code-library:	$(PRE_TARGETS)
-			$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \
-				$(RES_CLIB) $(NCRESULT).cmxa \
-				REAL_RESULT="$(NCRESULT)" PROFILING="y" \
-				REAL_OCAMLC="$(OCAMLOPT)" \
-				CREATE_LIB=yes \
-				make_deps=yes
-pncl:	profiling-native-code-library
-
-# packs byte-code objects
-pack-byte-code:			$(PRE_TARGETS)
-			$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(BCRESULT).cmo \
-				REAL_RESULT="$(BCRESULT)" \
-				PACK_LIB=yes make_deps=yes
-pabc:	pack-byte-code
-
-# packs native-code objects
-pack-native-code:		$(PRE_TARGETS)
-			$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \
-				$(NCRESULT).cmx $(NCRESULT).$(EXT_OBJ) \
-				REAL_RESULT="$(NCRESULT)" \
-				REAL_OCAMLC="$(OCAMLOPT)" \
-				PACK_LIB=yes make_deps=yes
-panc:	pack-native-code
-
-# generates HTML-documentation
-htdoc:	$(DOC_DIR)/$(RESULT)/html/index.html
-
-# generates Latex-documentation
-ladoc:	$(DOC_DIR)/$(RESULT)/latex/doc.tex
-
-# generates PostScript-documentation
-psdoc:	$(DOC_DIR)/$(RESULT)/latex/doc.ps
-
-# generates PDF-documentation
-pdfdoc:	$(DOC_DIR)/$(RESULT)/latex/doc.pdf
-
-# generates all supported forms of documentation
-doc: htdoc ladoc psdoc pdfdoc
-
-###########################################################################
-# LOW LEVEL RULES
-
-$(REAL_RESULT):		$(REAL_IMPL_INTF) $(OBJ_LINK) $(EXTRADEPS) $(RESULTDEPS)
-			$(REAL_OCAMLFIND) $(REAL_OCAMLC) \
-				$(OCAML_FIND_PACKAGES) $(OCAML_FIND_LINKPKG) \
-				$(ALL_LDFLAGS) $(OBJS_LIBS) -o $@$(EXE) \
-				$(REAL_IMPL)
-
-nolink:			$(REAL_IMPL_INTF) $(OBJ_LINK)
-
-ifdef WIN32
-$(REAL_RESULT).dll:	$(REAL_IMPL_INTF) $(OBJ_LINK)
-			$(CAMLIDLDLL) $(CAMLIDLDLLFLAGS) $(OBJ_LINK) $(CLIBS) \
-				-o $@ $(REAL_IMPL)
-endif
-
-%$(TOPSUFFIX):		$(REAL_IMPL_INTF) $(OBJ_LINK) $(EXTRADEPS)
-			$(REAL_OCAMLFIND) $(OCAMLMKTOP) \
-				$(OCAML_FIND_PACKAGES) $(OCAML_FIND_LINKPKG) \
-				$(ALL_LDFLAGS) $(OBJS_LIBS) -o $@$(EXE) \
-				$(REAL_IMPL)
-
-.SUFFIXES:		.mli .ml .cmi .cmo .cmx .cma .cmxa .$(EXT_OBJ) \
-                        .mly .di .d .$(EXT_LIB) .idl %.oxridl .c .m .$(EXT_CXX) .h .so \
-                        .rep .zog .glade
-
-ifndef STATIC
-ifdef MINGW
-# From OCaml 3.11.0, ocamlmklib is available on windows
-OCAMLMLIB_EXISTS = $(shell which $(OCAMLMKLIB))
-ifeq ($(strip $(OCAMLMLIB_EXISTS)),)
-$(DLLSONAME):		$(OBJ_LINK)
-			$(CC) $(CFLAGS) $(CFLAGS_WIN32) $(OBJ_LINK) -shared -o $@ \
-			$(wildcard $(foreach dir,$(LIBDIRS),$(CLIBS:%=$(dir)/lib%.a))) \
-			 '$(OCAMLLIBPATH)/ocamlrun.a' \
-			-Wl,--whole-archive \
-			-Wl,--export-all-symbols \
-			-Wl,--allow-multiple-definition \
-			-Wl,--enable-auto-import
-else
-$(DLLSONAME):		$(OBJ_LINK)
-			$(OCAMLMKLIB) $(INCFLAGS) $(CLIBFLAGS) \
-				-o $(CLIB_BASE) $(OBJ_LINK) $(CLIBS:%=-l%) \
-				$(CFRAMEWORKS:%=-framework %) \
-				$(OCAMLMKLIB_FLAGS)
-endif
-else
-ifdef MSVC
-$(DLLSONAME):		$(OBJ_LINK)
-			link /NOLOGO /DLL /OUT:$@ $(OBJ_LINK) \
-			 $(wildcard $(foreach dir,$(LIBDIRS),$(CLIBS:%=$(dir)/%.lib))) \
-			 '$(OCAMLLIBPATH)/ocamlrun.lib'
-
-else
-$(DLLSONAME):		$(OBJ_LINK)
-			$(OCAMLMKLIB) $(INCFLAGS) $(CLIBFLAGS) \
-				-o $(CLIB_BASE) $(OBJ_LINK) $(CLIBS:%=-l%) $(CFRAMEWORKS:%=-framework %) \
-				$(OCAMLMKLIB_FLAGS)
-endif
-endif
-endif
-
-ifndef LIB_PACK_NAME
-$(RESULT).cma:		$(REAL_IMPL_INTF) $(MAKEDLL) $(EXTRADEPS) $(RESULTDEPS)
-			$(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ $(REAL_IMPL)
-
-$(RESULT).cmxa $(RESULT).$(EXT_LIB):	$(REAL_IMPL_INTF) $(EXTRADEPS) $(RESULTDEPS)
-			$(REAL_OCAMLFIND) $(OCAMLOPT) -a $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ $(REAL_IMPL)
-else
-# Packing a bytecode library
-ifdef BYTE_OCAML
-$(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmo: $(REAL_IMPL_INTF)
-			$(REAL_OCAMLFIND) $(REAL_OCAMLC) -pack -o $(LIB_PACK_NAME).cmo $(OCAMLLDFLAGS) $(REAL_IMPL)
-# Packing into a unit which can be transformed into a library
-# Remember the .ml's must have been compiled with -for-pack $(LIB_PACK_NAME)
-else
-$(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmx: $(REAL_IMPL_INTF)
-			$(REAL_OCAMLFIND) $(OCAMLOPT) -pack -o $(LIB_PACK_NAME).cmx  $(OCAMLLDFLAGS) $(REAL_IMPL)
-endif
-
-$(RESULT).cma:		$(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmo $(MAKEDLL) $(EXTRADEPS) $(RESULTDEPS)
-			$(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ $(LIB_PACK_NAME).cmo
-
-$(RESULT).cmxa $(RESULT).$(EXT_LIB):	$(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmx $(EXTRADEPS) $(RESULTDEPS)
-			$(REAL_OCAMLFIND) $(OCAMLOPT) -a $(filter-out -custom, $(ALL_LDFLAGS)) $(OBJS_LIBS) -o $@ $(LIB_PACK_NAME).cmx
-endif
-
-$(RES_CLIB): 		$(OBJ_LINK)
-ifndef MSVC
-  ifneq ($(strip $(OBJ_LINK)),)
-		      $(AR) rcs $@ $(OBJ_LINK)
-  endif
-else
-  ifneq ($(strip $(OBJ_LINK)),)
-			lib -nologo -debugtype:cv -out:$(RES_CLIB) $(OBJ_LINK)
-  endif
-endif
-
-.mli.cmi: $(EXTRADEPS)
-			$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
-			if [ -z "$$pp" ]; then \
-			  $(ECHO) $(REAL_OCAMLFIND) $(INTF_OCAMLC) $(OCAML_FIND_PACKAGES) \
-				-c $(THREAD_FLAG) $(ANNOT_FLAG) \
-				$(OCAMLFLAGS) $(INCFLAGS) $<; \
-			  $(REAL_OCAMLFIND) $(INTF_OCAMLC) $(OCAML_FIND_PACKAGES) \
-				-c $(THREAD_FLAG) $(ANNOT_FLAG) \
-				$(OCAMLFLAGS) $(INCFLAGS) $<; \
-			else \
-			    $(ECHO) $(REAL_OCAMLFIND) $(INTF_OCAMLC) $(OCAML_FIND_PACKAGES) \
-				-c -pp \"$$pp $(PPFLAGS)\" $(THREAD_FLAG) $(ANNOT_FLAG) \
-				$(OCAMLFLAGS) $(INCFLAGS) $<; \
-			    $(REAL_OCAMLFIND) $(INTF_OCAMLC) $(OCAML_FIND_PACKAGES) \
-				-c -pp "$$pp $(PPFLAGS)" $(THREAD_FLAG) $(ANNOT_FLAG) \
-				$(OCAMLFLAGS) $(INCFLAGS) $<; \
-			fi
-
-.ml.cmi .ml.$(EXT_OBJ) .ml.cmx .ml.cmo: $(EXTRADEPS)
-			$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
-			if [ -z "$$pp" ]; then \
-			  $(ECHO) $(REAL_OCAMLFIND) $(REAL_OCAMLC) $(OCAML_FIND_PACKAGES) \
-				-c $(ALL_OCAMLCFLAGS) $<; \
-			  $(REAL_OCAMLFIND) $(REAL_OCAMLC) $(OCAML_FIND_PACKAGES) \
-				-c $(ALL_OCAMLCFLAGS) $<; \
-			else \
-			  $(ECHO) $(REAL_OCAMLFIND) $(REAL_OCAMLC) $(OCAML_FIND_PACKAGES) \
-				-c -pp \"$$pp $(PPFLAGS)\" $(ALL_OCAMLCFLAGS) $<; \
-			  $(REAL_OCAMLFIND) $(REAL_OCAMLC) $(OCAML_FIND_PACKAGES) \
-				-c -pp "$$pp $(PPFLAGS)" $(ALL_OCAMLCFLAGS) $<; \
-			fi
-
-.PRECIOUS:		%.ml
-%.ml:			%.mll
-			$(OCAMLLEX) $(LFLAGS) $<
-
-.PRECIOUS:              %.ml %.mli
-%.ml %.mli:             %.mly
-			$(OCAMLYACC) $(YFLAGS) $<
-			$(QUIET)pp=`sed -n -e 's/.*(\*pp \([^*]*\) \*).*/\1/p;q' $<`; \
-			if [ ! -z "$$pp" ]; then \
-			  mv $*.ml $*.ml.temporary; \
-			  echo "(*pp $$pp $(PPFLAGS)*)" > $*.ml; \
-			  cat $*.ml.temporary >> $*.ml; \
-			  rm $*.ml.temporary; \
-			  mv $*.mli $*.mli.temporary; \
-			  echo "(*pp $$pp $(PPFLAGS)*)" > $*.mli; \
-			  cat $*.mli.temporary >> $*.mli; \
-			  rm $*.mli.temporary; \
-			fi
-
-
-.PRECIOUS:		%.ml
-%.ml:			%.rep
-			$(CAMELEON_REPORT) $(CAMELEON_REPORT_FLAGS) -gen $<
-
-.PRECIOUS:		%.ml
-%.ml:			%.zog
-			$(CAMELEON_ZOGGY)  $(CAMELEON_ZOGGY_FLAGS) -impl $< > $@
-
-.PRECIOUS:		%.ml
-%.ml:			%.glade
-			$(OCAML_GLADECC)  $(OCAML_GLADECC_FLAGS) $< > $@
-
-.PRECIOUS:		%.ml %.mli
-%.ml %.mli:		%.oxridl
-			$(OXRIDL) $<
-
-.PRECIOUS:		%.ml %.mli %_stubs.c %.h
-%.ml %.mli %_stubs.c %.h:		%.idl
-			$(CAMLIDL) $(MAYBE_IDL_HEADER) $(IDLFLAGS) \
-				$(CAMLIDLFLAGS) $<
-			$(QUIET)if [ $(NOIDLHEADER) ]; then touch $*.h; fi
-
-.c.$(EXT_OBJ):
-			$(OCAMLC) -c -cc "$(CC)" -ccopt "$(CFLAGS) \
-				$(CPPFLAGS) $(CPPFLAGS_WIN32) \
-				$(CFLAGS_WIN32) $(CINCFLAGS) $(CFLAG_O)$@ " $<
-
-.m.$(EXT_OBJ):
-			$(CC) -c $(CFLAGS) $(CINCFLAGS) $(CPPFLAGS) \
-				-I'$(OCAMLLIBPATH)' \
-				$< $(CFLAG_O)$@
-
-.$(EXT_CXX).$(EXT_OBJ):
-			$(CXX) -c $(CXXFLAGS) $(CINCFLAGS) $(CPPFLAGS) \
-				-I'$(OCAMLLIBPATH)' \
-				$< $(CFLAG_O)$@
-
-$(MLDEPDIR)/%.d:	%.ml
-			$(QUIET)if [ ! -d $(@D) ]; then mkdir -p $(@D); fi
-			$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
-			if [ -z "$$pp" ]; then \
-			  $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
-				$(DINCFLAGS) $< \> $@; \
-			  $(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
-				$(DINCFLAGS) $< > $@; \
-			else \
-			  $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
-				-pp \"$$pp $(PPFLAGS)\" $(DINCFLAGS) $< \> $@; \
-			  $(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
-				-pp "$$pp $(PPFLAGS)" $(DINCFLAGS) $< > $@; \
-			fi
-
-$(BCDIDIR)/%.di $(NCDIDIR)/%.di:	%.mli
-			$(QUIET)if [ ! -d $(@D) ]; then mkdir -p $(@D); fi
-			$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
-			if [ -z "$$pp" ]; then \
-			  $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(DINCFLAGS) $< \> $@; \
-			  $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(DINCFLAGS) $< > $@; \
-			else \
-			  $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) \
-			    -pp \"$$pp $(PPFLAGS)\" $(DINCFLAGS) $< \> $@; \
-			  $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) \
-			    -pp "$$pp $(PPFLAGS)" $(DINCFLAGS) $< > $@; \
-			fi
-
-$(DOC_DIR)/$(RESULT)/html:
-	mkdir -p $@
-
-$(DOC_DIR)/$(RESULT)/html/index.html: $(DOC_DIR)/$(RESULT)/html $(DOC_FILES)
-	rm -rf $</*
-	$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $(FIRST_DOC_FILE)`; \
-	if [ -z "$$pp" ]; then \
-	  $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -html -d $< $(OCAMLDOCFLAGS) $(INCFLAGS) $(DOC_FILES); \
-	  $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -html -d $< $(OCAMLDOCFLAGS) $(INCFLAGS) $(DOC_FILES); \
-	else \
-	  $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -pp \"$$pp $(PPFLAGS)\" -html -d $< $(OCAMLDOCFLAGS) \
-	  	$(INCFLAGS) $(DOC_FILES); \
-	  $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -pp "$$pp $(PPFLAGS)" -html -d $< $(OCAMLDOCFLAGS) \
-	  	$(INCFLAGS) $(DOC_FILES); \
-	fi
-
-$(DOC_DIR)/$(RESULT)/latex:
-	mkdir -p $@
-
-$(DOC_DIR)/$(RESULT)/latex/doc.tex: $(DOC_DIR)/$(RESULT)/latex $(DOC_FILES)
-	rm -rf $</*
-	$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $(FIRST_DOC_FILE)`; \
-	if [ -z "$$pp" ]; then \
-	  $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -latex $(OCAMLDOCFLAGS) $(INCFLAGS) \
-	  	$(DOC_FILES) -o $@; \
-	  $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -latex $(OCAMLDOCFLAGS) $(INCFLAGS) $(DOC_FILES) \
-	  	-o $@; \
-	else \
-	  $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -pp \"$$pp $(PPFLAGS)\" -latex $(OCAMLDOCFLAGS) \
-	  	$(INCFLAGS) $(DOC_FILES) -o $@; \
-	  $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -pp "$$pp $(PPFLAGS)" -latex $(OCAMLDOCFLAGS) \
-	  	$(INCFLAGS) $(DOC_FILES) -o $@; \
-	fi
-
-$(DOC_DIR)/$(RESULT)/latex/doc.ps: $(DOC_DIR)/$(RESULT)/latex/doc.tex
-	cd $(DOC_DIR)/$(RESULT)/latex && \
-	  $(LATEX) doc.tex && \
-	  $(LATEX) doc.tex && \
-	  $(DVIPS) $(DVIPSFLAGS) doc.dvi -o $(@F)
-
-$(DOC_DIR)/$(RESULT)/latex/doc.pdf: $(DOC_DIR)/$(RESULT)/latex/doc.ps
-	cd $(DOC_DIR)/$(RESULT)/latex && $(PS2PDF) $(<F)
-
-define make_subproj
-.PHONY:
-subproj_$(1):
-	$$(eval $$(call PROJ_$(1)))
-	$(QUIET)if [ "$(SUBTARGET)" != "all" ]; then \
-	  $(MAKE) -f $(OCAMLMAKEFILE) $(SUBTARGET); \
-	fi
-endef
-
-$(foreach subproj,$(SUBPROJS),$(eval $(call make_subproj,$(subproj))))
-
-.PHONY:
-subprojs: $(SUBPROJS:%=subproj_%)
-
-###########################################################################
-# (UN)INSTALL RULES FOR LIBRARIES
-
-.PHONY: libinstall
-libinstall:	all
-	$(QUIET)printf "\nInstalling library with ocamlfind\n"
-	$(OCAMLFIND) install $(OCAMLFIND_INSTFLAGS) $(RESULT) META $(LIBINSTALL_FILES)
-	$(QUIET)printf "\nInstallation successful.\n"
-
-.PHONY: libinstall-byte-code
-libinstall-byte-code:	all
-	$(QUIET)printf "\nInstalling byte-code library with ocamlfind\n"
-	$(OCAMLFIND) install $(OCAMLFIND_INSTFLAGS) $(RESULT) META \
-	  $(filter-out $(RESULT).$(EXT_LIB) $(RESULT).cmxa, $(LIBINSTALL_FILES))
-	$(QUIET)printf "\nInstallation successful.\n"
-
-.PHONY: libinstall-native-code
-libinstall-native-code:	all
-	$(QUIET)printf "\nInstalling native-code library with ocamlfind\n"
-	$(OCAMLFIND) install $(OCAMLFIND_INSTFLAGS) $(RESULT) META \
-	  $(filter-out $(DLLSONAME) $(RESULT).cma, $(LIBINSTALL_FILES))
-	$(QUIET)printf "\nInstallation successful.\n"
-
-.PHONY: libuninstall
-libuninstall:
-	$(QUIET)printf "\nUninstalling library with ocamlfind\n"
-	$(OCAMLFIND) remove $(OCAMLFIND_INSTFLAGS) $(RESULT)
-	$(QUIET)printf "\nUninstallation successful.\n"
-
-.PHONY: rawinstall
-rawinstall:	all
-	$(QUIET)printf "\nInstalling library to: $(OCAML_LIB_INSTALL)\n"
-	-install -d $(OCAML_LIB_INSTALL)
-	for i in $(LIBINSTALL_FILES); do \
-	  if [ -f $$i ]; then \
-	    install -c -m 0644 $$i $(OCAML_LIB_INSTALL); \
-	  fi; \
-	done
-	$(QUIET)printf "\nInstallation successful.\n"
-
-.PHONY: rawuninstall
-rawuninstall:
-	$(QUIET)printf "\nUninstalling library from: $(OCAML_LIB_INSTALL)\n"
-	cd $(OCAML_LIB_INSTALL) && rm $(notdir $(LIBINSTALL_FILES))
-	$(QUIET)printf "\nUninstallation successful.\n"
-
-###########################################################################
-# MAINTENANCE RULES
-
-.PHONY:	clean
-clean::
-	rm -f $(TARGETS) $(TRASH)
-	rm -rf $(BCDIDIR) $(NCDIDIR) $(MLDEPDIR)
-
-.PHONY:	cleanup
-cleanup::
-	rm -f $(NONEXECS) $(TRASH)
-	rm -rf $(BCDIDIR) $(NCDIDIR) $(MLDEPDIR)
-
-.PHONY: clean-doc
-clean-doc::
-	rm -rf $(DOC_DIR)/$(RESULT)
-
-.PHONY: clean-all
-clean-all:: clean clean-doc
-
-.PHONY: nobackup
-nobackup:
-	rm -f *.bak *~ *.dup
diff --git a/README.org b/README.org
index 437b21326b276a30fe969f9cdbbec9b6eb6e561a..9ff8a94a9c7af9d94658382212c20c992e26c376 100644
--- a/README.org
+++ b/README.org
@@ -50,7 +50,7 @@ lus2lic compiler (in src)
 lxm.{ml|mli}
 lexer.mll
 parser.mly
-parserUtils.ml
+lv6parserUtils.ml
 astCore.ml
 astV6.ml
 astPredef.ml
@@ -101,7 +101,7 @@ l2lSplit.{ml|mli}
 ** All this controlled from a main program
 
 main.ml
-mainArgs.{ml|mli}
+lv6MainArgs.{ml|mli}
 global.ml
 compile.{ml|mli}
 
@@ -110,7 +110,8 @@ compile.{ml|mli}
 verbose.{ml|mli}
 filenameExtras.ml
 filenameExtras.mli
-errors.ml
+lv6errors.ml
+lv6util.ml
 
 ** crutch to remove
 uglyStuff.ml
diff --git a/README.txt b/README.txt
new file mode 100644
index 0000000000000000000000000000000000000000..51e9c03ba03eb2478e3559672ad48f8c79950e18
--- /dev/null
+++ b/README.txt
@@ -0,0 +1,12 @@
+(* OASIS_START *)
+(* DO NOT EDIT (digest: ad5c8edb7bf1ce8552ea81a7377dd519) *)
+This is the README file for the lus2lic distribution.
+
+The Lustre V6 Verimag compiler and interpreter
+
+See the files INSTALL.txt for building and installation instructions. 
+
+Home page: http://www-verimag.imag.fr/lustre-v6.html
+
+
+(* OASIS_STOP *)
diff --git a/_oasis b/_oasis
new file mode 100644
index 0000000000000000000000000000000000000000..f9083c7726c0064345bf20dc0767bd9f0047efab
--- /dev/null
+++ b/_oasis
@@ -0,0 +1,33 @@
+OASISFormat: 0.3
+Name:        lus2lic
+Version:     1
+Synopsis:    The Lustre V6 compiler
+Authors:     Erwan Jahier and Pascal Raymond
+License:     PROP
+Plugins:     DevFiles (0.3), META (0.3), StdFiles (0.3)
+Synopsis:    The Lustre V6 Verimag compiler and interpreter
+Homepage:    http://www-verimag.imag.fr/lustre-v6.html
+BuildTools: ocamlbuild
+
+
+Executable lus2lic
+  Install:true
+  Path:       src/
+  MainIs:     main.ml
+  BuildTools: ocamlbuild 
+  BuildDepends: str,unix,num,rdbg-plugin
+  Build:true
+  CompiledObject: native
+
+
+
+Library lus4ocaml
+  Modules:    Lus2licRun
+  Path:       src/
+  BuildTools: ocamlbuild 
+  BuildDepends: str,unix,num,rdbg-plugin
+  Install:true
+  XMETAEnable: true
+  XMETADescription: an API to call the Lustre v6 interpreter from ocaml
+  InternalModules: SocExecValue,SocUtils,Lv6util,Lv6version,Lv6errors,Lxm,Lv6MainArgs,Verbose,Soc,SocPredef,Ident,SocExec,SocExecEvalPredef,Compile,AstTab,AstTabSymbol,AstInstanciateModel,Lv6parserUtils,AstV6,FilenameExtras,LicTab,LicDump,AstPredef,Lic,AstCore,LicName,IdSolver,EvalConst,LicEvalConst,LicEvalType,UnifyType,Ast2lic,AstV6Dump,EvalClock,UnifyClock,LicEvalClock,EvalType,LicPrg,LicMetaOp,L2lCheckOutputs,Misc,L2lRmPoly,L2lExpandMetaOp,L2lSplit,L2lExpandNodes,L2lExpandArrays,L2lCheckLoops,Lv6lexer,Lv6parser,AstRecognizePredef,Lic2soc,ActionsDeps
+# Comment se passer de cette liste à la Prevert ?
diff --git a/_tags b/_tags
new file mode 100644
index 0000000000000000000000000000000000000000..cc4ff346bce5a5fc7475c7cc12483afdeec741f6
--- /dev/null
+++ b/_tags
@@ -0,0 +1,27 @@
+# OASIS_START
+# DO NOT EDIT (digest: fcfa6da02127697c0fe7a90d2584afbb)
+# Ignore VCS directories, you can use the same kind of rule outside
+# OASIS_START/STOP if you want to exclude directories that contains
+# useless stuff for the build process
+<**/.svn>: -traverse
+<**/.svn>: not_hygienic
+".bzr": -traverse
+".bzr": not_hygienic
+".hg": -traverse
+".hg": not_hygienic
+".git": -traverse
+".git": not_hygienic
+"_darcs": -traverse
+"_darcs": not_hygienic
+# Executable lus2lic
+"src/main.native": pkg_num
+"src/main.native": pkg_rdbg-plugin
+"src/main.native": pkg_str
+"src/main.native": pkg_unix
+# Library lus4ocaml
+"src/lus4ocaml.cmxs": use_lus4ocaml
+<src/*.ml{,i}>: pkg_num
+<src/*.ml{,i}>: pkg_rdbg-plugin
+<src/*.ml{,i}>: pkg_str
+<src/*.ml{,i}>: pkg_unix
+# OASIS_STOP
diff --git a/lv6-ref-man/Makefile b/lv6-ref-man/Makefile
index 6ab90006f9b7bd36cf80009797bc1d2ec9ad8d0f..f462507fb7ba75b9df0200d48e30214daef288b4 100644
--- a/lv6-ref-man/Makefile
+++ b/lv6-ref-man/Makefile
@@ -46,7 +46,7 @@ LUS2TEX= \
 	$(OBJPDF)/sincos-bad.lus.tex \
 	$(OBJPDF)/integrator.lus.tex \
 	$(OBJPDF)/type_decl.lus.tex \
-	$(OBJPDF)/merge.lus.tex \
+	$(OBJPDF)/test_merge.lus.tex \
 	$(OBJPDF)/enum0.lus.tex \
 	$(OBJPDF)/param_node.lus.tex \
 	$(OBJPDF)/param_node2.lus.tex \
@@ -91,10 +91,11 @@ $(OBJPDF)/%.tex : $(FIGDIR)/%.fig
 	cd $(OBJPDF); epstopdf $*.ps
 	cd $(OBJPDF); fig2dev -Lpstex_t  -p $*.pdf $*.fig > $*.tex
 
-$(OBJPDF)/version.tex: ../$(OBJDIR)/lus2lic  Makefile
+LUS2LIC=../main.native
+$(OBJPDF)/version.tex:  $(LUS2LIC)  Makefile
 	rm -f lv6-ref-man/version.tex ; \
 	date +VERSION_DATE=%d-%m-%y > lv6-ref-man/version.tex ; \
-	echo "\\\newcommand{\\\version}{`../$(OBJDIR)/lus2lic --version | cut -d " " -f1`}" >  $(OBJPDF)/version.tex ; \
+	echo "\\\newcommand{\\\version}{`$(LUS2LIC) --version | cut -d " " -f1`}" >  $(OBJPDF)/version.tex ; \
 	echo "\\\newcommand{\\\sha}{$(SHA)}" >>  $(OBJPDF)/version.tex ; \
 	echo "\\\newcommand{\\\versiondate}{`date +%d-%m-%y`}" >>  $(OBJPDF)/version.tex ;\
 
diff --git a/lv6-ref-man/lv6-ref-man.tex b/lv6-ref-man/lv6-ref-man.tex
index bb88f1438138f1a50bf6f448e2392be15a8989cc..07a8d006480515c887e7bd7fb7770f6b1a6fd382 100644
--- a/lv6-ref-man/lv6-ref-man.tex
+++ b/lv6-ref-man/lv6-ref-man.tex
@@ -1846,7 +1846,7 @@ a model can have as parameters a type, a constant, or a node.
 \label{merge}
 
 \begin{example}[The Merge operator]
-\input{merge.lus}
+\input{test_merge.lus}
 \end{example}
 
 
diff --git a/release-lv6/Makefile b/release-lv6/Makefile
index 48b35a335d82b9904bdc33abdb868d9fcdf1406f..69ee488c2bbe853352205297e3bd75b0e129ea59 100644
--- a/release-lv6/Makefile
+++ b/release-lv6/Makefile
@@ -1,10 +1,9 @@
 
 
-OBJDIR=./obj$(HOSTTYPE)
 
 LIC2CDIR=~/lic2loc
 LUS2LICDIR=~/lus2lic
-LUS2LIC=$(LUS2LICDIR)/$(OBJDIR)/lus2lic
+LUS2LIC=$(LUS2LICDIR)/$(HOSTTYPE)/bin/lus2lic
 WWW_DIR=/import/www/DIST-TOOLS/SYNCHRONE/lustre-v6
 
 ifeq ($(HOSTTYPE),cygwin)
@@ -39,7 +38,7 @@ doc:
 
 .PHONY:lus2lic
 lus2lic:
-	cd $(LUS2LICDIR)/ ; make nc
+	cd $(LUS2LICDIR)/ ; make 
 	cp $(LUS2LIC) $(RELNAME)/bin/
 
 lus2licbc:
diff --git a/src/actionsDeps.ml b/src/actionsDeps.ml
index dbbe99b459eb9030a7773390cc23117c38d45410..ba4f8e98cd6bd2daab92f5f65352c15ce462a086 100644
--- a/src/actionsDeps.ml
+++ b/src/actionsDeps.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 17/05/2013 (at 17:45) by Erwan Jahier> *)
+(** Time-stamp: <modified the 20/05/2014 (at 16:08) by Erwan Jahier> *)
   
 let dbg = (Verbose.get_flag "deps")
 
@@ -28,16 +28,20 @@ let string_of_action: (action -> string) =
         (string_of_params i)
         (Lic.string_of_clock c)
 
+
+
 let string_of_action_simple: (action -> string) = 
   fun (c, i, o, p,_) ->
   (* Version surchargée de SocUtils.string_of_operation : l'objectif est d'afficher,
-     en cas de cycle combinatoire, un message d'erreur que parle le plus possible
+     en cas de cycle combinatoire, un message d'erreur qui parle le plus possible
      à l'utilisateur qui a programmé en V6... Pour cela le mieux (je pense) est 
-     simplement de rendre la variable sur laquelle porte 
+     simplement de rendre la variable sur laquelle porte le cycle
 *)
   let string_of_operation = function
     | Soc.Assign -> ""
-    | op -> SocUtils.string_of_operation op
+    | Soc.Method((n, sk),sname) -> n
+    | Soc.Procedure(name,_,_)   -> name
+
   in
   let string_of_params p = String.concat ", " (List.map SocUtils.string_of_filter p) in
     if o = [] then
@@ -89,11 +93,11 @@ let (concat: t -> t -> t) =
    
 (*********************************************************************************)
 (* exported *)
-let (generate_deps_from_step_policy: 
+let (generate_deps_from_step_policy:
        Soc.precedence list -> (string * action) list -> t) =
   fun precedences actions ->
     let generate_deps_for_action:
-        (t -> string * string list -> t) = 
+        (t -> string * string list -> t) =
       fun ad (action_name, actions_needed) ->
         let main_action = snd (List.find (fun (n, _) -> n = action_name) actions) in
         let deps =
@@ -256,3 +260,63 @@ let build_data_deps_from_actions:  (Lic.type_ -> Data.t) -> t -> action list ->
     deps
 
 (*********************************************************************************)
+(* topological sort of actions *)
+
+type color = Grey | Black (* in process | done *)
+type color_table = color MapAction.t
+
+exception DependencyCycle of action * action list
+(* exception DependencyCycle of Soc.var_expr list *)
+
+let (grey_actions : color_table -> action list) =
+  fun ct -> 
+    MapAction.fold
+      (fun action color acc -> if color=Grey then action::acc else acc) ct []
+
+let rec (visit : t -> color_table -> action -> color_table) =
+  fun succ_t color_t n ->
+    if not (MapAction.mem n succ_t) then MapAction.add n Black color_t else
+      let color_t =
+	     Actions.fold 
+	       (fun nt color_t  -> 
+	         try
+	           match MapAction.find nt color_t with
+		          | Grey -> raise (DependencyCycle (n, grey_actions color_t))
+		          | Black -> color_t
+	         with 
+		 (* The node [nt] is white *)
+		          Not_found -> visit succ_t color_t nt
+	       ) 
+	       (MapAction.find n succ_t)
+	       (MapAction.add n Grey color_t)
+      in
+	   MapAction.add n Black color_t
+
+(* TEDLT *)
+let (check_there_is_no_cycle : action list -> t -> unit) =
+  fun actions t -> 
+    List.iter (fun action -> ignore(visit t MapAction.empty action)) actions
+
+
+let (topo_sort : action list -> t -> action list) =
+  fun actions succ_tbl -> 
+    let visited_init = 
+      List.fold_left (fun acc x -> MapAction.add x false acc) MapAction.empty actions 
+    in
+    let rec f (acc:action list) (l:action list) (stbl:t) (visited:bool MapAction.t) = 
+      (* The graph contains no cycle! *)
+      match l with
+	     | [] -> List.rev acc
+	     | x::tail -> 
+	       if (try MapAction.find x visited with Not_found -> assert false)
+	       then 
+	         f acc tail stbl visited 
+	       else if (MapAction.mem x stbl) then 
+            let x_succ = Actions.elements (MapAction.find x stbl) in
+	         f acc (x_succ @ l) (MapAction.remove x stbl) visited
+	       else
+	         f (x::acc) tail stbl (MapAction.add x true visited)
+    in
+    check_there_is_no_cycle actions succ_tbl;
+    f [] actions succ_tbl visited_init
+   
diff --git a/src/actionsDeps.mli b/src/actionsDeps.mli
index 6baf10ef02523300dfa8a11c89d6656c5ef97aa5..da90f5c91ec4c46fb32b3b73381478a830f7845a 100644
--- a/src/actionsDeps.mli
+++ b/src/actionsDeps.mli
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 08/04/2013 (at 14:11) by Erwan Jahier> *)
+(** Time-stamp: <modified the 11/12/2013 (at 17:49) by Erwan Jahier> *)
 
 (** Compute dependencies between actions  *)
 
@@ -50,3 +50,7 @@ val generate_deps_from_step_policy: Soc.precedence list -> (string * action) lis
 val find_deps: t -> action -> action list
 
 val to_string: t -> string
+
+exception DependencyCycle of action * action list
+(* Topological sort of actions. Raises DependencyCycle if there is one. *)
+val topo_sort : action list -> t -> action list
diff --git a/src/compile.ml b/src/compile.ml
index 0be76775b5156f5dedaef3dea7ef7703f67c802c..983992195dfa17f689f598d8349ea559a8e8c9e2 100644
--- a/src/compile.ml
+++ b/src/compile.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 24/05/2013 (at 17:44) by Erwan Jahier> *)
+(* Time-stamp: <modified the 13/12/2013 (at 14:16) by Erwan Jahier> *)
 
 open Lxm
 open Lv6errors
@@ -7,8 +7,14 @@ open AstCore
 
 (* get the first package in the package/model list *)
 
+let info msg =
+  let t = Sys.time() in
+  Verbose.exe ~level:1 (fun () -> Printf.eprintf "%4.4f: %s%!" t msg)
+
 let (doit : Lv6MainArgs.t -> AstV6.pack_or_model list -> Ident.idref option -> LicPrg.t) = 
   fun opt srclist main_node ->
+    let t0 = Sys.time() in
+    info "Start compiling to lic...\n";
     let syntax_tab = AstTab.create srclist in
     (* Pour chaque package, on a un solveur de références
        globales, pour les types, const et node :
@@ -20,9 +26,11 @@ let (doit : Lv6MainArgs.t -> AstV6.pack_or_model list -> Ident.idref option -> L
        . dans un des packs déclarés "uses", avec
        priorité dans l'ordre
     *)
+
     let lic_tab = LicTab.create syntax_tab in
     Verbose.exe ~level:2 (fun () -> AstTab.dump syntax_tab);
 
+    info "Compiling into lic...\n";
     let lic_tab = match main_node with
       | None -> LicTab.compile_all lic_tab
       | Some main_node -> 
@@ -31,48 +39,59 @@ let (doit : Lv6MainArgs.t -> AstV6.pack_or_model list -> Ident.idref option -> L
         else 
           LicTab.compile_node lic_tab main_node
     in
+    info "Converting to lic_prg...\n";
     let zelic = LicTab.to_lic_prg lic_tab in
     (* élimination polymorphisme  surcharge *)
+    info "Removing polymorphism...\n";
     let zelic = L2lRmPoly.doit zelic in
     (* alias des types array *)
     (*     let zelic = L2lAliasType.doit zelic in *)
-    let zelic = if not opt.Lv6MainArgs.inline_iterator then zelic else
+    let zelic = if not opt.Lv6MainArgs.inline_iterator then zelic else (
+      info "Inlining iterators...\n";
         (* to be done before array expansion otherwise they won't be expanded *)
-        L2lExpandMetaOp.doit zelic 
+      L2lExpandMetaOp.doit zelic
+    )
     in
     let zelic = 
       if 
         Lv6MainArgs.global_opt.Lv6MainArgs.one_op_per_equation 
         || opt.Lv6MainArgs.expand_nodes (* expand performs no fixpoint, so it will work
-                                   only if we have one op per equation...*)
-      then 
+                                           only if we have one op per equation...*)
+      then ( 
         (* Split des equations (1 eq = 1 op) *)
-        L2lSplit.doit zelic 
+        info "One op per equations...\n";
+        L2lSplit.doit zelic)
       else 
         zelic
     in
-    let zelic = if not opt.Lv6MainArgs.expand_nodes then zelic else 
-        L2lExpandNodes.doit opt.Lv6MainArgs.dont_expand_nodes zelic 
+    let zelic = if not opt.Lv6MainArgs.expand_nodes then zelic else (
+        info "Expanding nodes...\n";
+        L2lExpandNodes.doit opt.Lv6MainArgs.dont_expand_nodes zelic)
     in
     (* Array and struct expansion: to do after polymorphism elimination *)
-    let zelic = if not opt.Lv6MainArgs.expand_arrays then zelic else
-        L2lExpandArrays.doit zelic 
+    let zelic = if not opt.Lv6MainArgs.expand_arrays then zelic else (
+        info "Expanding arrays...\n";
+        L2lExpandArrays.doit zelic)
     in    
     (* Currently only works in this mode *)
-    if Lv6MainArgs.global_opt.Lv6MainArgs.ec then L2lCheckLoops.doit zelic;
+    if Lv6MainArgs.global_opt.Lv6MainArgs.ec then (
+      info "Check loops...\n";
+      L2lCheckLoops.doit zelic);
+    info "Check unique outputs...\n";
     L2lCheckOutputs.doit zelic;
-
+    info "Lic Compilation done!\n";
     zelic
+    
       
 let test_lex ( lexbuf ) = (
   let tk = ref (Lv6lexer.lexer lexbuf) in 
-    while !tk <> Lv6parser.TK_EOF do
-      match (Lv6lexer.token_code !tk) with 
-	  ( co , lxm ) ->
-	    Printf.printf "line %3d col %2d to %2d : %15s = \"%s\"\n"
-	      (line lxm) (cstart lxm) (cend lxm) co (str lxm) ;
-	    tk := (Lv6lexer.lexer lexbuf)
-    done
+  while !tk <> Lv6parser.TK_EOF do
+    match (Lv6lexer.token_code !tk) with 
+	     ( co , lxm ) ->
+	       Printf.printf "line %3d col %2d to %2d : %15s = \"%s\"\n"
+	         (line lxm) (cstart lxm) (cend lxm) co (str lxm) ;
+	       tk := (Lv6lexer.lexer lexbuf)
+  done
 )
 
 (* Retourne un AstV6.t *)
diff --git a/src/data.ml b/src/data.ml
deleted file mode 100644
index a9a22fe843781e52e33e8aebff843a7c78b8a2a1..0000000000000000000000000000000000000000
--- a/src/data.ml
+++ /dev/null
@@ -1,176 +0,0 @@
-
-type ident = string
-type v = I of int | F of float | B of bool 
-         | E of ident * int
-         | A of v array | S of (ident * v) list | U
-
-type t = 
-  | Bool | Int | Real
-  | Extern of ident
-  | Enum   of (ident * ident list)
-  | Struct of ident * (ident * t) list
-  | Array  of (t * int)
-  | Alpha of int
-
-
-let rec (val_to_string_type : v -> string) =
-  function
-    | I _ -> "int"
-    | F _  -> "real"
-    | B _ -> "bool"
-    | E (e,_) -> e
-    | S fl -> "struct"
-    | A a -> "array"
-    | U -> "nil"
-
-let rec (val_to_string : (float -> string) -> v -> string) =
-  fun s2f -> 
-  function
-    | I i  -> string_of_int i
-    | F f  -> s2f f
-    | B true -> "t"
-    | B false -> "f"
-    | E (e,_) -> e
-    | S fl -> "{"^(String.concat ";" 
-                     (List.map (fun (fn,fv) -> fn^"="^(val_to_string s2f fv)) fl))^"}"
-    | A a -> 
-      let str = ref "[" in
-      let f i a = str := !str ^ (if i = 0 then "" else ",") ^ (val_to_string s2f a) in
-      Array.iteri f a;
-      (!str^"]")
-    | U -> "nil"
-
- 
-let rec (type_to_string : t -> string) = 
-  fun v -> 
-    let str =
-      match v with
-        | Bool -> "bool"
-        | Int -> "int"
-        | Real-> "real"
-        | Extern s -> s ^ "(*extern*)"
-(*         | Enum  (s, sl) -> "enum " ^ s ^ " {" ^ (String.concat ", " sl) ^ "}" *)
-        | Enum  (s, sl) -> s 
-        | Struct (sid,_) -> sid ^ "(*struct*)"
-        | Array (ty, sz) -> Printf.sprintf "%s^%d" (type_to_string ty) sz 
-        | Alpha nb ->
-        (* On génère des "types" à la Caml : 'a, 'b, 'c, etc. *)
-          let a_value = Char.code('a') in
-          let z_value = Char.code('z') in
-          let str =
-            if (nb >= 0 && nb <= (z_value - a_value)) then
-              ("'" ^ (Char.escaped (Char.chr(a_value + nb))))
-            else
-              ("'a" ^ (string_of_int nb))
-          in
-          str
-    in
-    str
-
-let (type_of_string : string -> t) = 
-  function
-    | "bool"  ->  Bool
-    | "real"  -> Real
-    | "float" -> Real
-    | "int"   -> Int
-    | s -> failwith (s ^ ": unsupported type.\n")
-
-
-type vntl = (string * string) list
-type subst = (string * v) 
-
-type access = Idx of int | Fld of ident | Sle of int * int * int * int
-
-
-let get_array_elt a i = 
-  match a with
-    | A a -> a.(i)
-    | _ -> assert false
-
-(* exported *)
-let rec (update_val : v -> v -> access list -> v) =
-  fun pre_v v access -> 
-    match pre_v,access with
-      | _,[] -> v
-      | A a, (Sle(f,l,s,w))::access -> (
-        let a = Array.copy a in
-        let j = ref 0 in
-        let sub_array = Array.make w U in
-        for i = f to l do
-          if (i - f) mod s = 0 then (
-            sub_array.(!j) <- a.(i);
-            incr j
-          );
-        done;
-        let A sub_array = update_val (A sub_array) v access in
-        j := 0;
-        for i = f to l do
-          if (i - f) mod s = 0 then (
-            a.(i) <- sub_array.(!j);
-            incr j
-          );
-        done;
-        A a
-      )
-      | A a, (Idx i)::access ->
-        let a = Array.copy a 
-        (* necessary for arrays of arrays. It would probably more
-           clever to only copy a_i though. *)
-        in
-        let a_i = update_val a.(i) v access in
-        a.(i) <- a_i;
-        A a
-      | S(fl), (Fld fn)::access ->
-        S (List.map
-             (fun (fn2,v2) -> if fn=fn2 then fn,update_val v2 v access else (fn2,v2)) 
-             fl)
-      | U,_ -> assert false (* create_val v access *)
-      | _,_ -> assert false (* finish me *)
-
-
-(* exported *)
-let rec (create_u_val : t -> v) =
-  fun vt -> 
-    match vt with
-      | Array(vt,size) -> 
-        let a = Array.make size U in
-        for i=0 to size-1 do
-          a.(i) <- create_u_val vt
-        done;
-        A a
-      | Struct(sn,fl) -> S(List.map (fun (fn,ft) -> fn, create_u_val ft) fl)
-      | _ -> U
-
-(* seems slower (??) *)
-let rec (create_val : t -> v -> access list -> v) =
-  fun vt v access ->
-    let u_val = create_u_val vt in
-    update_val u_val v access
-
-let rec (create_val_alt : t -> v -> access list -> v) =
-  fun vt v access ->
-    match vt,access with
-      | _,[] -> v
-      | Array(vt,size), (Sle(f,l,s,w))::access -> (
-        let j = ref 0 in
-        let a = Array.make size U in
-        let vt = Array(vt,w) in
-        let A sub_array = create_val vt v access in
-        for i = f to l do
-          if (i - f) mod s = 0 then (
-            a.(i) <- sub_array.(!j);
-            incr j
-          );
-        done;
-        A a
-      )
-      | Array(vt,size), (Idx i)::access -> 
-        let a = Array.make size U in
-        let a_i = create_val vt v access in
-        a.(i) <- a_i;
-        A a
-      | Struct(sn,fl), (Fld fn)::access -> 
-        S(List.map (fun (fn2,vt2) -> if fn=fn2 then fn,create_val vt2 v access else fn2,U) fl)
-      | _,_ -> assert false
-
-
diff --git a/src/data.mli b/src/data.mli
deleted file mode 100644
index b91b8de395056b0529133c2ad007d449e9f8fe4a..0000000000000000000000000000000000000000
--- a/src/data.mli
+++ /dev/null
@@ -1,30 +0,0 @@
-type ident = string
-type v = I of int | F of float | B of bool 
-         | E of ident * int
-         | A of v array | S of (ident * v) list | U
-
-type t = 
-  | Bool | Int | Real
-  | Extern of ident
-  | Enum   of (ident * ident list)
-  | Struct of ident * (ident * t) list
-  | Array  of (t * int)
-  | Alpha of int
-
-
-val val_to_string : (float -> string) -> v -> string
-val val_to_string_type : v -> string
-val type_to_string : t -> string
-val type_of_string : string -> t
-
-
-type vntl = (string * string) list
-type subst = (string * v) 
-
-type access = Idx of int | Fld of ident | Sle of int * int * int * int
-
-(* Replace access(pre_v) by v in pre_v *)
-val update_val : v -> v -> access list -> v
-
-(* The same as update_val in the case where no previous value exists *)
-val create_val : t -> v -> access list -> v
diff --git a/src/evalClock.ml b/src/evalClock.ml
index 05bf0e84f5025383fede0e93057bfa780ee6bd51..4bff2f6e7795ffaa3b7d17feeaff126734a2f3a0 100644
--- a/src/evalClock.ml
+++ b/src/evalClock.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 23/05/2013 (at 15:23) by Erwan Jahier> *)
+(* Time-stamp: <modified the 25/09/2013 (at 10:58) by Erwan Jahier> *)
  
   
 open AstPredef
@@ -71,6 +71,11 @@ open UnifyClock
 
    In order to check that this call is correct, we check that both
    terms are unifiable.
+
+    It also modifies the substitution s (acculumated all along the
+    clock checking of the node) such that:
+     - the clock var in the callee parameters migth be be substituted
+     - ??? what else
 *)
 
 
@@ -79,8 +84,10 @@ let (check_args : Lxm.t -> subst -> Lic.id_clock list -> Lic.id_clock list -> su
     assert (List.length cil_par = List.length cil_arg);
     let idl_par,cil_par = List.split cil_par
     and idl_arg,cil_arg = List.split cil_arg in
-    let s = List.fold_left2 (UnifyClock.f lxm) s cil_arg cil_par in
-      s
+    let ns = List.fold_left2 (UnifyClock.f lxm) s cil_arg cil_par in
+    (* should UnifyClock.f modify the *)
+    (fst s,snd ns)
+(*     ns *)
 
 (** Checking expression result
     --------------------------
diff --git a/src/event.ml b/src/event.ml
deleted file mode 100644
index b1a8c26e7538a6b73dd9b58c942bc323787f631a..0000000000000000000000000000000000000000
--- a/src/event.ml
+++ /dev/null
@@ -1,79 +0,0 @@
-type ctx = (* inherited debug info *)
-    {
-      ctx_step :int;
-      ctx_name :string;
-      ctx_depth:int;
-      ctx_data: Data.subst list;
-      ctx_terminate: unit -> unit;
-      ctx_inputs  : string list;
-      ctx_outputs : string list;
-    }
-
-
-type src_info = { 
-  str : string ;
-  file : string ; 
-  line : int * int ;
-  char : int * int ;
-  stack : src_info option;
-}
-
-
-(* Source info related to the elected constraint *)
-type cstr_lazy_src_info = (unit -> src_info list)
-type port = 
-  | Call 
-  | Exit of string * Expr.t (* The elected contraint that produced the outputs *) * cstr_lazy_src_info
-  | Fail of string * Expr.t (* The elected contraint that failed *) * cstr_lazy_src_info * 
-      (unit -> Failure.info)
-
-
-type node_info = {
-  port : port;
-  name : string;
-  lang : string; 
-  inputs  : string list; (* static info *)
-  outputs : string list; (* static info *)
-}
-
-type kind = 
-  | Node of node_info
-  | Ltop
-
-(* when an elected constraint is unsatisfiable *)
-
-type t = { 
-  nb:int;
-  step  : int;
-  depth : int;
-  kind  : kind;
-  data  : Data.subst list;  
-  other : string;
-  next  : unit -> t;
-  terminate: unit -> unit;
-} 
-    (* ou bien un MapString ?
-       ou bien une structure avec tout un tas d'autre info ?
-       devra etre abrait en tout cas
-    *)
-
-
-exception End of int
-let (next : t -> t) = fun e -> e.next ()
-let (terminate : t -> unit) = fun e -> e.terminate ()
-let (data : t -> Data.subst list) = fun e -> e.data
-
-
-let seed = ref 42
-let set_seed s = seed := s
-
-let event_nb = ref 0
-let set_nb i = event_nb := i
-let get_nb () =  !event_nb
-let incr_nb() =
-  Random.init (!seed + !event_nb); (* make sure everything is reproductible *)
-  incr event_nb
-
-
-
-    
diff --git a/src/expr.ml b/src/expr.ml
deleted file mode 100644
index e347e1802b4865f00cd670de4d496c0f2f782c3d..0000000000000000000000000000000000000000
--- a/src/expr.ml
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
-(* Expressions *)
-type t = 
-  | Op of oper * t list
-  | True | False
-  | Ival of Num.num | Fval of float 
-  | Var of string
-and 
- oper = 
-  | And | Or | Xor | Impl | Not | Eq | Ite 
-  | Sup | SupEq | Inf | InfEq  
-  | Sum | Diff | Prod | Quot | Mod | Div | Uminus 
-  | Call of string
-
-let (to_string : t -> string) =
-  fun t ->
-    let rec aux b t =
-      let b = "  "^b in
-      (match t with
-        | Op(And,[e1;e2]) -> (aux b e1)^" and " ^(aux b e2)
-        | Op(Or,[e1;e2]) -> "("^(aux b e1)^" or " ^(aux b e2) ^ ")"
-        | Op(Xor,[e1;e2]) -> "("^(aux b e1)^" xor"  ^(aux b e2) ^ ")"
-        | Op(Impl,[e1;e2]) -> "("^(aux b e1)^" =>"  ^(aux b e2) ^ ")"
-        | Op(Not,[e]) ->  "not("  ^(aux b e) ^")"
-        | Op(Eq,[e1;e2]) -> (aux b e1)^ "="  ^(aux b e2)
-      (*      | Op(Ite,[c;e1;e2]) -> "("^(aux b e1)^"ite"  ^(aux b e2) *)
-        | Op(Sup,[e1;e2]) -> (aux b e1)^">"  ^(aux b e2) 
-        | Op(SupEq,[e1;e2]) -> (aux b e1)^">="  ^(aux b e2)
-        | Op(Inf,[e1;e2]) -> (aux b e1)^"<"  ^(aux b e2)
-        | Op(InfEq,[e1;e2]) -> (aux b e1)^"<="   ^(aux b e2)
-        | Op(Sum,[e1;e2]) -> "("^(aux b e1)^"+"  ^(aux b e2) ^ ")"
-        | Op(Diff,[e1;e2]) -> "("^(aux b e1)^"-"  ^(aux b e2) ^ ")"
-        | Op(Prod,[e1;e2]) -> (aux b e1)^"*" ^(aux b e2)
-        | Op(Quot,[e1;e2]) -> (aux b e1)^"/"  ^(aux b e2)
-        | Op(Mod,[e1;e2]) -> "("^(aux b e1)^"mod"  ^(aux b e2) ^ ")"
-        | Op(Div,[e1;e2]) -> (aux b e1)^"/"  ^(aux b e2)
-
-        | Op (op,l) -> (oper_aux b op) ^ "(\n"^b ^ 
-          ((String.concat (",\n"^b) (List.map (aux b) l))^"\n"^b^")")
-        | True -> "t"
-        | False -> "f"
-        | Ival(n) -> Num.string_of_num n
-        | Fval(f) -> string_of_float f
-        | Var(str) -> str
-      )        
-    and
-        oper_aux b = function  
-          | And -> "and"
-          | Or -> "or" 
-          | Xor -> "xor" 
-          | Impl -> "impl" 
-          | Not -> "not" 
-          | Eq -> "eq" 
-          | Ite -> "ite" 
-          | Sup -> "sup" 
-          | SupEq -> "supeq" 
-          | Inf -> "inf" 
-          | InfEq -> "infeq"  
-          | Sum -> "sum" 
-          | Diff -> "diff" 
-          | Prod -> "prod" 
-          | Quot -> "quot" 
-          | Mod -> "mod" 
-          | Div -> "div" 
-          | Uminus -> "uminus" 
-          | Call str ->  str
-    in
-    aux "" t
-
-let dump e = 
-  print_string ((to_string e)^ "\n")
-
-let rec (simplify : t -> t) =
-  fun t ->
-    match t with
-      | Op(And, (Op(And,l)::tail)) -> simplify (Op(And, (l@tail)))
-      | Op(Or, (Op(Or,l)::tail))   -> simplify (Op(Or,  (l@tail)))
-      | Op(Sum, (Op(Sum,l)::tail)) -> simplify (Op(Sum, (l@tail)))
-      | Op(Not,[Op(Not, [e])]) -> simplify e
-      | Op(Not,[Op(Sup, [e1;e2])]) -> Op(InfEq, [simplify e1;simplify e2])
-      | Op(Not,[Op(Inf, [e1;e2])]) -> Op(SupEq, [simplify e1;simplify e2])
-      | Op(Not,[Op(SupEq, [e1;e2])]) -> Op(Inf, [simplify e1;simplify e2])
-      | Op(Not,[Op(InfEq, [e1;e2])]) -> Op(Sup, [simplify e1;simplify e2])
-      | Op (op,l) -> Op (op, List.map simplify l)
-      | e -> e
diff --git a/src/failure.ml b/src/failure.ml
deleted file mode 100644
index 0a615036b68ecde57eef76b9e6171e3439d2a920..0000000000000000000000000000000000000000
--- a/src/failure.ml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-(* exported *)
-type info =
-  | Boolean of Expr.t
-  | Numeric of Expr.t
-
diff --git a/src/genOcamlGlue.ml b/src/genOcamlGlue.ml
new file mode 100644
index 0000000000000000000000000000000000000000..1ff584d73ebeca4aa3194d54b20ccf60b6de1686
--- /dev/null
+++ b/src/genOcamlGlue.ml
@@ -0,0 +1,30 @@
+(* Time-stamp: <modified the 26/03/2014 (at 16:17) by Erwan Jahier> *)
+
+(* generate ocaml glue code that makes it possible to call lus2lic
+   from ocaml with the current set of arguments (with Lus2licRun.make).
+*)
+let (f: string array -> Lv6MainArgs.t -> unit) =
+  fun argv opt -> 
+    let outfile = if opt.outfile <> "" then opt.outfile else
+        let file = List.hd opt.infiles in
+        try (Filename.chop_extension (Filename.basename file))^ ".ml"
+        with _ -> 
+		    print_string ("*** '"^file^"': bad file name.\n"); exit 2
+    in
+    let cma_file = (Filename.chop_extension outfile) ^".cma" in
+    let remove_me = ["-exec"; "-ocaml";"-o";opt.outfile] in
+    let args = 
+      Array.fold_right (fun x acc -> if List.mem x remove_me then acc else x::acc) argv []
+    in
+    let args_str = "\"" ^ (String.concat "\";\"" args) ^"\"" in
+    let oc = open_out (outfile)  in
+    Lv6util.dump_entete oc;
+    Printf.fprintf oc "
+let plugin = 
+  let args = Array.of_list [%s] in
+  Lus2licRun.make args
+
+let dyn_file = (Dynlink.adapt_filename \"%s\")
+let _ = 
+  OcamlRM.reg_plugin dyn_file plugin
+" args_str cma_file
diff --git a/src/l2lExpandMetaOp.ml b/src/l2lExpandMetaOp.ml
index 2ca80d60df62ea0b9a4d89dee4460c6d2a451e8b..1f4ee19160ab01173eeb8f8d3eb97d2c9daed081 100644
--- a/src/l2lExpandMetaOp.ml
+++ b/src/l2lExpandMetaOp.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 04/06/2013 (at 14:43) by Erwan Jahier> *)
+(** Time-stamp: <modified the 22/01/2014 (at 16:39) by Erwan Jahier> *)
 
 open Lxm
 open Lic
@@ -104,6 +104,14 @@ let (binop_to_val_exp : Ident.t -> val_exp -> val_exp -> val_exp) =
       ve_typ = ve1.ve_typ;
       ve_core = CallByPosLic(op, [ve1; ve2])
     }
+let (binop_to_val_exp_bool : Ident.t -> val_exp -> val_exp -> val_exp) =
+  fun op ve1 ve2 ->
+    let op = { it = PREDEF_CALL({src=lxm;it=("Lustre",op),[]}) ; src = lxm } in
+    {
+      ve_clk = ve1.ve_clk;
+      ve_typ = [Bool_type_eff];
+      ve_core = CallByPosLic(op, [ve1; ve2])
+    }
 let (fby_to_val_exp : val_exp -> val_exp -> val_exp) =
   fun ve1 ve2 ->
     let op = { it = FBY ; src = lxm } in
@@ -302,11 +310,11 @@ let (create_boolred_body: local_ctx -> int -> int -> int -> Lic.node_body * var_
        <=>
        node toto(tab:bool^n) returns (res:bool);
        var 
-       cpt:int;
-       let 
-       cpt = (if tab[0] then 1 else 0) + ... + (if tab[k-1] then 1 else 0);
-       res = i <= cpt && cpt <= j;
-       tel
+         cpt:int;
+         let 
+           cpt = (if tab[0] then 1 else 0) + ... + (if tab[k-1] then 1 else 0);
+           res = i <= cpt && cpt <= j;
+         tel
     *)
     assert(0 <= i && i <= j && j <= k && k>0);
     let (tab_vi : var_info) = match lctx.node.Lic.inlist_eff with
@@ -336,8 +344,8 @@ let (create_boolred_body: local_ctx -> int -> int -> int -> Lic.node_body * var_
       let i_eff   = val_exp_of_int (string_of_int i) in
       let j_eff   = val_exp_of_int (string_of_int j) in
       let cpt_eff = val_exp_of_var_info cpt_vi in
-      let i_inf_cpt = binop_to_val_exp "lte" i_eff cpt_eff in
-      let cpt_inf_j = binop_to_val_exp "lte" cpt_eff j_eff in
+      let i_inf_cpt = binop_to_val_exp_bool "lte" i_eff cpt_eff in
+      let cpt_inf_j = binop_to_val_exp_bool "lte" cpt_eff j_eff in
       binop_to_val_exp "and" i_inf_cpt cpt_inf_j
     in 
     let cpt_eq = { src = lxm ; it = ([cpt_left], cpt_rigth) } in
diff --git a/src/l2lExpandNodes.ml b/src/l2lExpandNodes.ml
index e6597dc5388cf2a66411c6f90ed02a93bc69826d..73dcd22444f052799c5894ceeb4816dc054ad988 100644
--- a/src/l2lExpandNodes.ml
+++ b/src/l2lExpandNodes.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 22/05/2013 (at 11:17) by Erwan Jahier> *)
+(* Time-stamp: <modified the 24/09/2013 (at 10:56) by Erwan Jahier> *)
 
 
 open Lxm
@@ -31,7 +31,9 @@ let new_var str lctx type_eff clock_eff =
       var_clock_eff  = clock_eff;
     }
   in
-    var
+(*   let clk_str = string_of_clock (snd clock_eff) in *)
+(*   print_string (" ===> creating "^id^ " from " ^ str^ " with clock " ^clk_str ^ "\n");flush stdout; *)
+  var
 
 (********************************************************************************)
 let get_locals node =
@@ -271,7 +273,6 @@ and (expand_eq_aux: local_ctx -> Lic.eq_info -> local_ctx * acc option)=
               in
               let clks = List.map (fun v -> substitute_clock (snd v.var_clock_eff)) node_locs in
               let fresh_locs = List.map2 (mk_fresh_loc lctx) node_locs clks in
-
               let ls = mk_loc_subst node_locs fresh_locs in
               let s = List.rev_append is (List.rev_append os ls) in
               let fresh_locs = (* substitute the new vars in clocks *)
@@ -320,7 +321,7 @@ and (expand_node : local_ctx -> Lic.node_exp -> local_ctx * Lic.node_exp) =
               let lctx,acc = List.fold_left expand_eq (lctx, ([],[],locs)) b.eqs_eff in
               let lctx,acc = List.fold_left expand_assert (lctx, acc) b.asserts_eff in
               let (asserts,neqs, nv) = acc in
-              let nb = { 
+              let nb = {
                 eqs_eff = neqs ; 
                 asserts_eff = asserts
               } 
diff --git a/src/l2lSplit.ml b/src/l2lSplit.ml
index a840593dd69dca45550df8cadcaf0abe8c8c673c..3525ec57270f01f971b25bb9afc28afdda1f6164 100644
--- a/src/l2lSplit.ml
+++ b/src/l2lSplit.ml
@@ -11,6 +11,9 @@ open Lxm
 open Lic
 
 let dbg = (Verbose.get_flag "split")
+let info msg =
+  let t = Sys.time() in
+  Verbose.exe ~flag:dbg (fun () -> Printf.eprintf "%4.4f: %s%!" t msg)
 
 (********************************************************************************)
 let new_var getid type_eff clock_eff = 
@@ -143,7 +146,7 @@ let (split_tuples:Lic.eq_info Lxm.srcflagged list -> Lic.eq_info Lxm.srcflagged
         else
           [eq]
     in
-    List.flatten (List.map split_one_eq eql)
+    List.fold_left (fun acc eq -> List.rev_append (split_one_eq eq) acc) [] eql 
 
 (********************************************************************************)
 (* The functions below accumulate 
@@ -157,12 +160,13 @@ let rec (eq : LicPrg.id_generator -> Lic.eq_info Lxm.srcflagged -> split_acc) =
     let n_rhs, (neqs, nlocs) = split_val_exp false true getid rhs in
     { src = lxm_eq ; it = (lhs, n_rhs) }::neqs, nlocs
 
-and (split_eq_acc : 
+and (split_eq_acc :
        LicPrg.id_generator -> split_acc -> Lic.eq_info srcflagged -> split_acc) =
-  fun getid (eqs, locs) equation -> 
+  fun getid (eqs, locs) equation ->
     let (neqs, nlocs) = eq getid equation in 
-    (split_tuples (eqs@neqs), locs@nlocs)
-      
+    let neqs = split_tuples neqs in
+    List.rev_append neqs eqs, List.rev_append nlocs locs
+
 and (split_val_exp : bool -> bool -> LicPrg.id_generator -> Lic.val_exp -> 
      Lic.val_exp * split_acc) =
   fun when_flag top_level getid ve -> 
@@ -308,8 +312,9 @@ and (split_val_exp_list : bool ->
 
 and split_node (getid: LicPrg.id_generator) (n: Lic.node_exp) : Lic.node_exp =
   Verbose.exe ~flag:dbg (fun () ->
-    Printf.printf "*** Splitting node  %s\n"
-      (LicDump.string_of_node_key_iter n.node_key_eff));
+    Printf.eprintf "*** Splitting node  %s\n"
+      (LicDump.string_of_node_key_iter n.node_key_eff);
+    flush stderr);
   let res = match n.def_eff with
     | ExternLic 
     | MetaOpLic
@@ -319,6 +324,9 @@ and split_node (getid: LicPrg.id_generator) (n: Lic.node_exp) : Lic.node_exp =
     | BodyLic b -> 
       let loc = match n.loclist_eff with None -> [] | Some l -> l in
       let (neqs, nv) = List.fold_left (split_eq_acc getid) ([], loc) b.eqs_eff in
+      info (Printf.sprintf "Split %i equations into %i ones\n"
+              (List.length b.eqs_eff)(List.length  neqs));
+
       let asserts = List.map (fun x -> x.it) b.asserts_eff in
       let lxm_asserts = List.map (fun x -> x.src) b.asserts_eff in
       let nasserts,(neqs_asserts,nv_asserts) =
@@ -353,8 +361,7 @@ let rec doit (inprg : LicPrg.t) : LicPrg.t =
    (** TRAITE LES NOEUDS : *)
    let rec do_node k (ne:Lic.node_exp) =
       (* On passe en parametre un constructeur de nouvelle variable locale *)
-     Verbose.exe ~flag:dbg (fun() -> Printf.printf  "#DBG: split equations of '%s'\n"
-       (Lic.string_of_node_key k));
+     info (Printf.sprintf  "#DBG: split equations of '%s'\n" (Lic.string_of_node_key k));
       let getid = LicPrg.fresh_var_id_generator inprg ne in
       let ne' = split_node getid ne in
       res := LicPrg.add_node k ne' !res
diff --git a/src/lic2soc.ml b/src/lic2soc.ml
index 6896b1f10e5f1c30e8bf5a334721c860cfd63ddc..f5707afa390d11b6d65b174a5c37fd4604f8d708 100644
--- a/src/lic2soc.ml
+++ b/src/lic2soc.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 06/06/2013 (at 10:13) by Erwan Jahier> *)
+(** Time-stamp: <modified the 21/05/2014 (at 10:51) by Erwan Jahier> *)
  
 open Lxm
 open Lic
@@ -646,6 +646,10 @@ let (actions_of_equation: Lxm.t -> Soc.tbl -> ctx -> Lic.eq_info ->
 (*********************************************************************************)
 open Soc
 
+let info msg =
+  let t = Sys.time() in
+  Verbose.exe ~level:1 (fun () -> Printf.eprintf "%4.4f: %s%!" t msg; flush stderr)
+
 let rec f: (LicPrg.t -> Lic.node_key -> Soc.key * Soc.tbl) = 
   fun prog mnk ->
     let rec (process_node : Lic.node_key -> Soc.tbl -> Soc.key * Soc.tbl) =
@@ -738,6 +742,7 @@ let rec f: (LicPrg.t -> Lic.node_key -> Soc.key * Soc.tbl) =
     (** Produit des soc de noeuds. *)
     and (soc_of_node: LicPrg.t -> Lic.node_exp -> Soc.tbl -> (ctx * Soc.t * Soc.tbl) option) =
       fun licprg node soc_tbl ->
+        info "Lic2soc.soc_of_node...\n";
         let io_list = node.Lic.inlist_eff @ node.Lic.outlist_eff in 
         let io_type = List.map (fun vi -> lic_to_data_type vi.var_type_eff) io_list in
         let soc_key = make_soc_key_of_node_exp node.Lic.node_key_eff None io_type in
@@ -756,23 +761,29 @@ let rec f: (LicPrg.t -> Lic.node_key -> Soc.key * Soc.tbl) =
                 b.eqs_eff
             in
             (* Construction des dépendances entre les expressions *)
-            let all_deps = ActionsDeps.build_data_deps_from_actions lic_to_data_type deps actions in
+            info "Lic2soc.soc_of_node: computing dependencies...\n";
+            let all_deps = 
+              ActionsDeps.build_data_deps_from_actions lic_to_data_type deps actions 
+            in
             Verbose.exe ~flag:dbg
               (fun () -> print_string (ActionsDeps.to_string all_deps); flush stdout);
             let actions = 
-              try Toposort.f 
-                    ActionsDeps.string_of_action_simple actions (ActionsDeps.find_deps all_deps)
-              with Toposort.DependencyCycle(x,l) ->
+              info "Lic2soc.soc_of_node: sorting actions...\n";
+              try ActionsDeps.topo_sort actions  all_deps
+              with ActionsDeps.DependencyCycle(x,l) ->
+                let l = List.map ActionsDeps.string_of_action_simple l in
                 let msg = "A combinational cycle been detected "^
-                  (Lxm.details lxm)^": \n  "^x^"\n  "^(String.concat "\n  " l)
+                  (Lxm.details lxm)^" on \n  "^(ActionsDeps.string_of_action_simple x)^
+                  "\n  "^(String.concat "\n  " l) ^ "\n\nHint: try to use --expand-nodes.\n"
                 in
                 raise (Lv6errors.Global_error msg)
-            in
+            in 
             let (locals: Soc.var list) = 
               match node.Lic.loclist_eff with
                 | None -> []
                 | Some l ->  List.map (lic_to_soc_var) l 
             in
+            info "Lic2soc.soc_of_node: actions sorted. \n";
             let step = build_step lxm "step" node (locals @ ctx.locals) actions in
             let soc = {
               Soc.key         = soc_key;
@@ -828,13 +839,13 @@ let rec f: (LicPrg.t -> Lic.node_key -> Soc.key * Soc.tbl) =
               )
               | ("condact"), [
                 ConstStaticArgLic("dflt",Tuple_const_eff vel);NodeStaticArgLic("oper",condact_node)
-               ] -> (
+              ] -> (
                 let soc_tbl,soc = make_condact_soc node condact_node soc_key soc_tbl ctx lxm vel in
                 Some(ctx, soc, soc_tbl)
               )
               | ("condact"), [
                 ConstStaticArgLic("dflt",const); NodeStaticArgLic ("oper",condact_node)
-                ] -> (
+              ] -> (
                 let soc_tbl,soc = make_condact_soc node condact_node soc_key soc_tbl ctx lxm [const] in
                 Some(ctx, soc, soc_tbl)
               )
diff --git a/src/licDump.mli b/src/licDump.mli
deleted file mode 100644
index 2eaf7291828bd3bab6f7a9c6f17ab21db77f4e79..0000000000000000000000000000000000000000
--- a/src/licDump.mli
+++ /dev/null
@@ -1,33 +0,0 @@
-(* Time-stamp: <modified the 24/04/2013 (at 17:41) by Erwan Jahier> *)
-
-
-val string_of_node_key_rec : bool -> Lic.node_key -> string
-val string_of_node_key_iter : Lic.node_key -> string
-val node_of_node_exp_eff: Lic.node_exp -> string
-
-val string_of_const_eff : Lic.const -> string
-val string_of_leff : Lic.left -> string
-
-val string_of_type_eff : Lic.type_ -> string
-val string_of_type_eff4msg : Lic.type_ -> string
-val string_of_type_eff_list : Lic.type_ list -> string
-val string_of_type_eff_list4msg : Lic.type_ list -> string
-val type_eff_list_to_string :Lic.type_ list -> string
-
-val type_decl: Ident.long -> Lic.type_ -> string
-val const_decl: Ident.long -> Lic.const -> string
-
-val string_of_var_info_eff: Lic.var_info -> string
-val string_of_var_info_eff4msg: Lic.var_info -> string
-val type_string_of_var_info_eff: Lic.var_info -> string
-val type_string_of_var_info_eff4msg: Lic.var_info -> string
-val string_of_slice_info_eff : Lic.slice_info -> string 
-
-(* used for error msgs *)
-val string_of_clock_exp : AstCore.clock_exp -> string
-val string_of_clock2  : Lic.clock -> string
-val string_of_val_exp_eff : Lic.val_exp -> string
-val string_of_val_exp_eff_core : Lic.val_exp_core -> string
-
-(* dump Lic.local_env *)
-val dump_local_env : Lic.local_env -> unit
diff --git a/src/licTab.ml b/src/licTab.ml
index 4756e527f1467fb1a83bcb66ffdb79773e14a842..3e5c9402dbde4d8fa338cd992f5727c575873873 100644
--- a/src/licTab.ml
+++ b/src/licTab.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 16/05/2013 (at 11:05) by Erwan Jahier> *)
+(* Time-stamp: <modified the 23/09/2013 (at 17:47) by Erwan Jahier> *)
 
 
 open Lxm
@@ -161,38 +161,38 @@ let (create : AstTab.t -> t) =
 
 *)
 let x_check 
-    (* tab find_x x_check_do lookup_x_eff pack_of_x_key name_of_x_key this x_key lxm = *)
-   (tab            : ('x_key, 'x_eff  Lic.check_flag) Hashtbl.t)
-   (find_x         : AstTabSymbol.t -> Ident.t -> Lxm.t -> ('x_info  Lxm.srcflagged) AstTabSymbol.elt)
-   (x_check_do     : t -> 'x_key -> Lxm.t -> AstTabSymbol.t -> bool -> Ident.pack_name -> 'x_info srcflagged -> 'x_eff)
-   (x_builtin      : t -> 'x_key -> Lxm.t -> 'x_eff)
-   (lookup_x_eff   : ('x_key, 'x_eff Lic.check_flag) Hashtbl.t -> 'x_key -> Lxm.t -> 'x_eff)
-   (pack_of_x_key  : 'x_key -> string )
-   (name_of_x_key  : 'x_key -> string)
-   (this           : t)
-   (x_key          : 'x_key)
-   (lxm            : Lxm.t)
-: 'x_eff =
-   Verbose.exe ~flag:dbg (fun () -> Printf.printf "#DBG: licTab.x_check '%s'\n" (Lxm.details lxm));
-   try lookup_x_eff tab x_key lxm 
-   with Not_found -> (
-      let res = try x_builtin this x_key lxm 
-         with Not_found -> 
-            Hashtbl.add tab x_key Lic.Checking;
-            let (x_pack,xn) = (pack_of_x_key x_key, name_of_x_key x_key) in
-            let x_pack_symbols = AstTab.pack_body_env this.src_tab x_pack in
-            let x_def = match find_x x_pack_symbols xn lxm with
-               | AstTabSymbol.Local x_def -> x_def
-               | AstTabSymbol.Imported (lid,_) -> 
-                  print_string ("*** " ^ (Ident.string_of_long2 lid) ^ "???\n" ^ 
-                                 (Lxm.details lxm));
-                  assert false (* should not occur *)
-            in
-            x_check_do this x_key lxm x_pack_symbols false x_pack x_def
-      in
-      Hashtbl.replace tab x_key (Lic.Checked res);
-      res
-   )
+   (* tab find_x x_check_do lookup_x_eff pack_of_x_key name_of_x_key this x_key lxm = *)
+    (tab            : ('x_key, 'x_eff  Lic.check_flag) Hashtbl.t)
+    (find_x         : AstTabSymbol.t -> Ident.t -> Lxm.t -> ('x_info  Lxm.srcflagged) AstTabSymbol.elt)
+    (x_check_do     : t -> 'x_key -> Lxm.t -> AstTabSymbol.t -> bool -> Ident.pack_name -> 'x_info srcflagged -> 'x_eff)
+    (x_builtin      : t -> 'x_key -> Lxm.t -> 'x_eff)
+    (lookup_x_eff   : ('x_key, 'x_eff Lic.check_flag) Hashtbl.t -> 'x_key -> Lxm.t -> 'x_eff)
+    (pack_of_x_key  : 'x_key -> string )
+    (name_of_x_key  : 'x_key -> string)
+    (this           : t)
+    (x_key          : 'x_key)
+    (lxm            : Lxm.t)
+    : 'x_eff =
+  Verbose.exe ~flag:dbg (fun () -> Printf.printf "#DBG: licTab.x_check '%s'\n" (Lxm.details lxm));
+  try lookup_x_eff tab x_key lxm 
+  with Not_found -> (
+    let res = try x_builtin this x_key lxm 
+      with Not_found -> 
+        Hashtbl.add tab x_key Lic.Checking;
+        let (x_pack,xn) = (pack_of_x_key x_key, name_of_x_key x_key) in
+        let x_pack_symbols = AstTab.pack_body_env this.src_tab x_pack in
+        let x_def = match find_x x_pack_symbols xn lxm with
+          | AstTabSymbol.Local x_def -> x_def
+          | AstTabSymbol.Imported (lid,_) -> 
+            print_string ("*** " ^ (Ident.string_of_long2 lid) ^ "???\n" ^ 
+                             (Lxm.details lxm));
+            assert false (* should not occur *)
+        in
+        x_check_do this x_key lxm x_pack_symbols false x_pack x_def
+    in
+    Hashtbl.replace tab x_key (Lic.Checked res);
+    res
+  )
 
 let x_check_interface 
     tab find_x x_check x_check_interface_do x_builtin lookup_x_eff 
diff --git a/src/lus2licRun.ml b/src/lus2licRun.ml
new file mode 100644
index 0000000000000000000000000000000000000000..3e6096372ba4769172527fbac923419c1278ba8d
--- /dev/null
+++ b/src/lus2licRun.ml
@@ -0,0 +1,101 @@
+(* Time-stamp: <modified the 26/03/2014 (at 16:12) by Erwan Jahier> *)
+(*-----------------------------------------------------------------------
+** Copyright (C) - Verimag.
+*)
+
+type vars = (string * Data.t) list
+
+open Lv6MainArgs
+open Soc
+open SocExecValue
+open RdbgPlugin
+
+let make argv =
+  let opt = Lv6MainArgs.parse argv in
+  let node = opt.main_node in
+  Verbose.exe ~level:3 (fun () ->
+    Gc.set { (Gc.get ()) with Gc.verbose = 0x01 }
+  );
+  if (opt.infiles = []) then (
+    Lv6MainArgs.usage stderr opt;
+    exit 1
+  );
+  let new_dft_pack = Filename.basename (Filename.chop_extension (List.hd opt.infiles)) in
+  Ident.set_dft_pack_name new_dft_pack;
+
+  let main_node = 
+    if opt.main_node = "" then None else 
+      Some (Ident.idref_of_string opt.main_node)
+  in
+  if opt.outfile <> "" then opt.oc <- open_out opt.outfile;
+  let nsl = Compile.get_source_list opt opt.infiles in
+  let lic_prg = Compile.doit opt nsl main_node in
+
+  let first_file = List.hd opt.infiles in
+  let nk = (Lic.node_key_of_idref (Ident.to_idref opt.main_node)) in
+  let sk, soc_tbl = 
+    if LicPrg.node_exists lic_prg nk then (
+      Lic2soc.f lic_prg nk 
+    ) else (
+      print_string ("Error: cannot find node "^opt.main_node^" in "^
+                       (String.concat "," opt.infiles)^".\n");
+      flush stdout;
+      exit 1
+    )
+  in
+  let soc = try Soc.SocMap.find sk soc_tbl with Not_found -> assert false in
+  let soc_inputs  = (SocExec.expand_profile false (fst soc.profile)) in
+  let soc_outputs = (SocExec.expand_profile true (snd soc.profile)) in
+  let (vntl_i:Data.vntl) = (fst soc.profile) in
+  let (vntl_o:Data.vntl) = (snd soc.profile) in
+  let oc = stdout in
+  (*    Lv6util.dump_entete oc;  *)
+  (*    RifIO.write_interface oc vntl_i vntl_o None None;  *)
+  (*    RifIO.flush oc;  *)
+
+  let (to_soc_subst : SocExecValue.ctx -> Soc.var list -> Data.subst list) =
+    fun ctx vl ->
+      (*       let sl = List.map (fun var -> fst var, SocExecValue.get_value ctx (Var var)) vl in *)
+      let sl = SocExecValue.filter_top_subst ctx.s in
+      let sl = List.flatten (List.map SocExec.expand_subst sl) in
+      (* If the order ever matters, I could try the following.  :
+         try List.map (fun v -> fst v,
+         List.assoc (fst v) sl) vl with Not_found -> assert false
+      *)
+      sl
+  in
+  let (add_subst : Data.subst list -> SocExecValue.substs -> SocExecValue.substs) = 
+    fun s ctx_s ->
+      let s = SocExec.unexpand_profile s (fst soc.profile) in
+      List.fold_left (fun acc (id,v) -> SocExecValue.sadd acc [id] v) ctx_s s
+  in
+  let ctx_ref = ref (SocExecValue.create_ctx soc_tbl soc) in
+  let step sl_in =
+    let ctx = { !ctx_ref with s = add_subst sl_in !ctx_ref.s } in
+    let ctx = SocExec.do_step soc_tbl soc ctx in
+    let sl_out = to_soc_subst ctx soc_outputs in
+    ctx_ref := ctx;
+    (*     RifIO.write_outputs oc Util.my_string_of_float  vntl_o sl_out; *)
+    (*     RifIO.flush oc; *)
+    sl_out
+  in
+  let step_dbg sl_in ectx cont =
+    let cont2 ctx =
+      let sl_out = to_soc_subst ctx soc_outputs in
+      ctx_ref := ctx;
+      cont sl_out ectx
+    in
+    ctx_ref := { !ctx_ref with s = add_subst sl_in !ctx_ref.s };
+    SocExec.do_step_dbg soc_tbl soc ectx !ctx_ref cont2
+  in 
+  let (mems_in  : Data.subst list) = [] in (* XXX todo *)
+  let (mems_out : Data.subst list) = [] in (* XXX todo *)
+  {
+    inputs = vntl_i;
+    outputs= vntl_o;
+    kill=(fun _ -> ());
+    init_inputs=mems_in;
+    init_outputs=mems_out;
+    step=step;     
+    step_dbg=step_dbg;
+  }
diff --git a/src/lus2licRun.mli b/src/lus2licRun.mli
new file mode 100644
index 0000000000000000000000000000000000000000..98c7986046b36455f04058c2ee4817993710df25
--- /dev/null
+++ b/src/lus2licRun.mli
@@ -0,0 +1,3 @@
+(* Time-stamp: <modified the 26/03/2014 (at 16:12) by Erwan Jahier> *)
+
+val make: string array -> RdbgPlugin.t
diff --git a/src/lv6MainArgs.ml b/src/lv6MainArgs.ml
index 3580ca4d04e4a043e076f0a352c88c7021f563d2..6da27780565b8a686167302532cb708994639154 100644
--- a/src/lv6MainArgs.ml
+++ b/src/lv6MainArgs.ml
@@ -1,3 +1,4 @@
+(* Time-stamp: <modified the 17/04/2014 (at 15:03) by Erwan Jahier> *)
 (*
 Le manager d'argument adapté de celui de lutin, plus joli
 N.B. solution un peu batarde : les options sont stockées, comme avant, dans Global,
@@ -22,6 +23,7 @@ type t = {
   mutable main_node :  string;
   mutable compile_all_items : bool;
   mutable run_unit_test :  bool;
+  mutable print_interface :  bool;
   mutable inline_iterator :  bool;
   mutable expand_nodes :  bool;
   mutable dont_expand_nodes :  string list;
@@ -30,6 +32,9 @@ type t = {
   mutable oc :  Pervasives.out_channel;
   mutable tlex :  bool;
   mutable exec :  bool;
+  mutable gen_c :  bool;
+  mutable rif  :  bool;
+  mutable gen_ocaml :  bool;
   mutable precision : int option;
 }
 
@@ -70,6 +75,7 @@ let (make_opt : unit -> t) =
       main_node =  "";
       compile_all_items =  true;
       run_unit_test =  false;
+      print_interface =  false;
       inline_iterator =  false;
       expand_nodes =  false;
       dont_expand_nodes =  [];
@@ -79,6 +85,9 @@ let (make_opt : unit -> t) =
       oc =  Pervasives.stdout;
       tlex =  false;
       exec =  false;
+      gen_c =  false;
+      rif  =  false;
+      gen_ocaml =  false;
       precision = None;
     }
 
@@ -187,30 +196,45 @@ let set_ec_options opt =
 (*** USER OPTIONS TAB **)
 let mkoptab (opt:t) : unit = (
     mkopt opt
-      ["-n";"-node"]
-      ~arg:" <string>"
+      ["-n";"-node"]  ~arg:" <string>"
       (Arg.String(function x -> 
          opt.main_node <- x;
          opt.compile_all_items <- false))
       ["Set the main node (all items are compiled if unset)"]
     ;
-    mkopt opt
-      ["-o";"--output-file"]
-      ~arg:" <string>"
-      (Arg.String(function x -> 
-         opt.outfile <- x))
+    mkopt opt  ["-o";"--output-file"]  ~arg:" <string>"
+      (Arg.String(function x -> opt.outfile <- x))
       ["Set the output file name"]
     ;
     mkopt opt
       ["-exec"]
-      (Arg.Unit (fun _ -> opt.exec <- true))
+      (Arg.Unit (fun _ ->
+        opt.exec <- true))
       ["interpret the program using RIF conventions for I/O (experimental)."]
     ;
+    mkopt opt
+      ["--to-c"; "-2c"]
+      (Arg.Unit (fun _ ->
+        opt.gen_c <- true))
+      ["generate C code (work in progress)."]
+    ;
+    mkopt opt
+      ["-rif"]
+      (Arg.Unit(function s -> opt.rif <- true))
+      ["behave as a rif input file (meaningless without -exec)"]
+    ;
+    mkopt opt
+      ["-ocaml"]
+      (Arg.Unit(function s -> opt.gen_ocaml <- true))
+      ["generate ocaml glue code that makes it possible to call the lus2lic interpreter ";
+       "from ocaml with the current set of arguments (with Lus2licRun.make)."]
+    ;
 
     mkopt opt
       ["-knc"; "--keep-nested-calls"]
       (Arg.Unit (fun _ -> global_opt.one_op_per_equation <- false))
-      ["Keep nested calls (inhibited by -en). By default, only one node per equation is generated."]
+      ["Keep nested calls (inhibited by -en). By default, only one node ";
+       "per equation is generated."]
     ;
     mkopt opt
       ["-ei"; "--expand-iterators"]
@@ -306,6 +330,11 @@ let mkoptab (opt:t) : unit = (
       ["Test the syntactic analysis"]
     ;
     *)
+    mkopt opt ~hide:true
+      ["-interface"]
+      (Arg.Unit (fun () -> opt.print_interface<-true))
+      ["Print the node interface"]
+    ;
     mkopt opt ~hide:true
       ["-unit"]
       (Arg.Unit (fun () -> opt.run_unit_test<-true))
diff --git a/src/lv6MainArgs.mli b/src/lv6MainArgs.mli
index c83301abec664ab53aa4d5c2320482c14f7bcc36..b7dbee86216310c70cd38d20d363d5680bb6de0e 100644
--- a/src/lv6MainArgs.mli
+++ b/src/lv6MainArgs.mli
@@ -19,6 +19,7 @@ type t = {
   mutable main_node :  string;
   mutable compile_all_items : bool;
   mutable run_unit_test :  bool;
+  mutable print_interface :  bool;
   mutable inline_iterator :  bool;
   mutable expand_nodes :  bool;
   mutable dont_expand_nodes :  string list;
@@ -27,6 +28,9 @@ type t = {
   mutable oc :  Pervasives.out_channel;
   mutable tlex :  bool;
   mutable exec :  bool;
+  mutable gen_c :  bool;
+  mutable rif :  bool;
+  mutable gen_ocaml :  bool;
   mutable precision : int option;
 }
 
diff --git a/src/lv6util.ml b/src/lv6util.ml
index 46fe5c0a59f9cc4eb6f51e4533a0d36ffe5c64e1..3ddca881c1184e109be1f7fea2ea7573375dabec 100644
--- a/src/lv6util.ml
+++ b/src/lv6util.ml
@@ -29,9 +29,9 @@ let (dump_entete : out_channel -> unit) =
       (* Printf.fprintf oc "-- lus2lic version %s\n" LustreVersion.str; *)
       (* Printf.fprintf oc "-- cmd: %s\n" sys_call; *)
       (* Printf.fprintf oc "-- host: %s date: %s time: %s\n" hostname date time_str  *)
-    Printf.fprintf oc "-- This file was generated by lus2lic version %s.\n" Lv6version.str;
-    Printf.fprintf oc "-- %s\n" sys_call;
-    Printf.fprintf oc "-- on %s the %s at %s\n" hostname date time_str 
+    Printf.fprintf oc "(* This file was generated by lus2lic version %s. *)\n" Lv6version.str;
+    Printf.fprintf oc "(* %s *)\n" sys_call;
+    Printf.fprintf oc "(* on %s the %s at %s *)\n" hostname date time_str 
 
 
 let rec pos_in_list i x l =
diff --git a/src/main.ml b/src/main.ml
index 2ba7e7995a8c5e31a106445e721985cd9fd0902c..d9c712944ffad1aa54ca128f4ef0ed675409818a 100644
--- a/src/main.ml
+++ b/src/main.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 27/05/2013 (at 16:53) by Erwan Jahier> *)
+(* Time-stamp: <modified the 17/04/2014 (at 15:20) by Erwan Jahier> *)
 
 open Verbose
 open AstV6
@@ -7,9 +7,10 @@ open Lxm
 open Lv6errors
 open Parsing
 open Format
-
 open Lv6MainArgs
+
 let my_exit opt i =
+  if opt.rif || opt.print_interface then (output_string opt.oc "\nq\n"; flush opt.oc);
   close_out opt.oc;
   if Sys.file_exists opt.outfile then Sys.remove opt.outfile;
   exit i
@@ -31,6 +32,46 @@ let find_a_node opt =
   name
 
 
+let (gen_rif_interface : LicPrg.t -> Ident.idref option -> Lv6MainArgs.t -> unit) =
+  fun lic_prg main_node opt -> 
+    let msk, zesoc, main_node = 
+      match main_node with
+        | None -> (
+          let name = find_a_node opt in
+          let main_node = Ident.to_idref name in
+          let nk = (Lic.node_key_of_idref main_node) in
+          if LicPrg.node_exists lic_prg nk then (
+            output_string stdout ("WARNING: No main node is specified. I'll try with " 
+                                  ^ name ^"\n");
+            flush stdout;
+            let msk, zesoc = Lic2soc.f lic_prg nk in
+            msk, zesoc, main_node
+          ) else (
+            print_string ("Error: no node is specified.\n");
+            flush stdout;
+            exit 1
+          )
+        )
+        | Some main_node -> 
+          let msk, zesoc = Lic2soc.f lic_prg (Lic.node_key_of_idref main_node) in
+          msk, zesoc, main_node
+    in
+    let my_type_to_string t =
+      let str = Data.type_to_string t in
+      let idref = Ident.idref_of_string str in
+      (idref.Ident.id_id)
+    in
+    let soc = try Soc.SocMap.find msk zesoc with Not_found -> assert false in
+    let invars,outvars=soc.Soc.profile in
+    let invars = SocExec.expand_profile false invars in
+    let outvars = SocExec.expand_profile true outvars in
+    let invars_str  = List.map (fun (n,t) -> n^":"^(my_type_to_string t)) invars in
+    let outvars_str = List.map (fun (n,t) -> n^":"^(my_type_to_string t)) outvars in
+    print_string ("#inputs "^ (String.concat " " invars_str) ^"\n");
+    print_string ("#outputs "^ (String.concat " " outvars_str) ^"\n");
+    flush stdout
+
+
 (* Generates a lutin env and a lustre oracle for the node *)
 let (gen_autotest_files : LicPrg.t -> Ident.idref option -> Lv6MainArgs.t -> unit) =
   fun lic_prg main_node opt -> 
@@ -130,6 +171,10 @@ let (gen_autotest_files : LicPrg.t -> Ident.idref option -> Lv6MainArgs.t -> uni
     output_string stdout (oracle_file_name ^" generated.\n"); 
     flush stdout
 
+let info msg =
+  let t = Sys.time() in
+  Verbose.exe ~level:1 (fun () -> Printf.eprintf "%4.4f: %s%!" t msg; flush stderr)
+
 
 let main () = (
   (* Compile.init_appli () ; *)
@@ -138,28 +183,28 @@ let main () = (
   Verbose.exe ~level:3 (fun () ->
     Gc.set { (Gc.get ()) with Gc.verbose = 0x01 }
   );
-  if opt.run_unit_test then (
-    UnifyType.unit_test ();
-    exit 0
-  );
-  if (opt.infiles = []) then (
-    Lv6MainArgs.usage stderr opt;
-    exit 1
-  );
+  if opt.run_unit_test  then (UnifyType.unit_test (); exit 0);
+  if (opt.infiles = []) then (Lv6MainArgs.usage stderr opt; exit 1);
   let new_dft_pack = Filename.basename (Filename.chop_extension (List.hd opt.infiles)) in
   Ident.set_dft_pack_name new_dft_pack;
 
   let main_node = 
-    if opt.main_node = "" then None else 
-      Some (Ident.idref_of_string opt.main_node)
+    if opt.main_node = "" then None else Some (Ident.idref_of_string opt.main_node)
   in
   if opt.outfile <> "" then opt.oc <- open_out opt.outfile;
   (try (
     let nsl = Compile.get_source_list opt opt.infiles in
     let lic_prg = Compile.doit opt nsl main_node in
+    if opt.print_interface then (
+      gen_rif_interface lic_prg main_node opt;
+      info "bye!";
+      exit 0
+    );
     if opt.Lv6MainArgs.gen_autotest then 
       gen_autotest_files lic_prg main_node opt
-    else if opt.exec then
+    else if opt.gen_ocaml then
+      GenOcamlGlue.f Sys.argv opt
+    else if (opt.exec || opt.gen_c) then
       (match main_node with
         | None -> (
           let name = find_a_node opt in
@@ -167,8 +212,15 @@ let main () = (
           if LicPrg.node_exists lic_prg nk then (
             print_string ("WARNING: No main node is specified. I'll try with " ^ name ^"\n");
             flush stdout;
-            let msk, zesoc = Lic2soc.f lic_prg nk in
-            SocExec.f opt zesoc msk
+            info "Start compiling to soc...\n";
+            let msk,zesoc  = Lic2soc.f lic_prg nk in
+            info "Soc Compilation done.\n";
+            if opt.gen_c then (
+              info "Start generating C code...\n";
+              Soc2c.f opt zesoc);
+            if opt.exec then (
+              info "Start interpreting soc...\n";
+              SocExec.f opt zesoc msk)          
           ) else (
             print_string ("Error: no node is specified, cannot exec.\n");
             flush stdout;
@@ -176,32 +228,33 @@ let main () = (
           )
         )
         | Some main_node -> 
+          info "Start compiling to soc...\n";
           let msk, zesoc = Lic2soc.f lic_prg (Lic.node_key_of_idref main_node) in
-          SocExec.f opt zesoc msk
-      ) else (   
+
+          info "Soc Compilation done. \n";
+          if opt.gen_c then (
+            info "Start generating C code...\n";
+            Soc2c.f opt zesoc);
+
+          if opt.exec then (
+            info "Start interpreting soc...\n";
+            SocExec.f opt zesoc msk)
+      ) else (
         LicPrg.to_file opt lic_prg main_node
        );
 
     Verbose.exe ~level:3 (fun () -> Gc.print_stat stdout);
    ) with 
-      Sys_error(s) ->
-        prerr_string (s^"\n");
-        my_exit opt 1
-    | Global_error s ->
-      print_global_error s ;
-      my_exit opt 1
-    | Parse_error ->
-      print_compile_error (Lxm.last_made ()) "syntax error";
-      my_exit opt 1
+      Sys_error(s) -> prerr_string (s^"\n");  my_exit opt 1
+    | Global_error s -> print_global_error s; my_exit opt 1
+    | Parse_error -> print_compile_error (Lxm.last_made ()) "syntax error"; my_exit opt 1
     | Unknown_var(lxm,id) -> 
       print_compile_error lxm ("unknown variable (" ^ (Ident.to_string id) ^")");
       my_exit opt 1
     | Unknown_constant(lxm,str) -> 
       print_compile_error lxm ("unknown constant (" ^ str ^")");
       my_exit opt 1
-    | Compile_error(lxm,msg) -> 
-      print_compile_error lxm msg;
-      my_exit opt 1
+    | Compile_error(lxm,msg) -> print_compile_error lxm msg;  my_exit opt 1
     | L2lCheckLoops.Error(lxm,msg,lic_prg) -> 
       (* Sometime it helps to see the current state of the faulty program *)
       LicPrg.to_file opt lic_prg main_node;
@@ -216,16 +269,17 @@ let main () = (
           (if List.length opt.infiles > 1 then "s " else " ") ^
           (String.concat ", " opt.infiles) ^ "\n"^
           "\n*** You migth want to sent a bug report to "^Lv6version.maintainer ^"\n") ; 
+      flush stderr;
       my_exit opt 2
   );
-       (* | Compile_node_error(nkey,lxm,msg) -> ( *)
-       (* print_compile_node_error nkey lxm msg ; *)
-       (* exit 1 *)
-       (* ) *)
-       (* | Global_node_error(nkey,msg) -> ( *)
-       (* print_global_node_error nkey msg ; *)
-       (* exit 1 *)
-       (* ) *)
+  (* | Compile_node_error(nkey,lxm,msg) -> ( *)
+  (* print_compile_node_error nkey lxm msg ; *)
+  (* exit 1 *)
+  (* ) *)
+  (* | Global_node_error(nkey,msg) -> ( *)
+  (* print_global_node_error nkey msg ; *)
+  (* exit 1 *)
+  (* ) *)
 
   close_out opt.oc
     
diff --git a/src/genlex.ml b/src/myGenlex.ml
similarity index 100%
rename from src/genlex.ml
rename to src/myGenlex.ml
diff --git a/src/genlex.mli b/src/myGenlex.mli
similarity index 100%
rename from src/genlex.mli
rename to src/myGenlex.mli
diff --git a/src/rif_base.ml b/src/rif_base.ml
deleted file mode 100644
index bfedc9dae539ad1723d3c5020ee5ca4b5a26c500..0000000000000000000000000000000000000000
--- a/src/rif_base.ml
+++ /dev/null
@@ -1,338 +0,0 @@
-(*-----------------------------------------------------------------------
-** Copyright (C) - Verimag.
-** This file may only be copied under the terms of the GNU Library General
-** Public License
-**-----------------------------------------------------------------------
-**
-** File: rif.ml
-** Author: jahier@imag.fr
-*)
-
-
-open List
-
-let lexer = Genlex.make_lexer ["q"; "nil"; "ERROR"; "#"; "x"; "load_luc"; "#@"; "@#"]
-
-(* xxx Which pragmas should be defined ? *)
-
-let rif_pragmas = ["inputs"]
-(* let rif_pragmas = ["outs";"outputs";"program";"inputs";"step";"reset"] *)
-
-
-type stream = Genlex.token Stream.t
-
-let rec (parse_string_list : stream -> string list -> string list) =
-  fun stream sl ->
-    try (
-      match (Stream.next stream) with
-          (Genlex.String(_, str)) -> parse_string_list stream (str::sl)
-        | _  -> failwith ("### rif parse error. A \"string\" (wrapped with double" ^
-                          "quotes) was expected. \n")
-    )
-    with Stream.Failure ->
-      sl
-
-open Data
-
-(*------------------------------------------------------------------------*)
-
-let debug = false
-let read_line label ic oc =
-  let str = input_line ic in
-  let _ = if debug then (print_string (label^ "read_line:"^str^"\n"); flush stdout) in
-  let str = Str.global_replace (Str.regexp "\013") "" str in
-    (match oc with
-      | Some oc -> output_string oc str; flush oc
-      | None -> ());
-    str
-
-let get_stream ic oc = 
-  try lexer (Stream.of_string (read_line "" ic oc))
-  with e  ->
-    print_string ("*** Error when parsing RIF: " ^ (Printexc.to_string e) ^ "\n");
-    flush stdout;
-    exit 2
-
-
-let (rm_blank : string -> string) =
-  fun s -> 
-    let buff = ref "" in
-      for i = 0 to String.length s - 1 do
-        match s.[i] with
-          | ' ' | '\t' | '\n' | '\"' -> ()
-          | c -> buff:=!buff^(String.make 1 c)
-      done;
-      !buff        
-
-let (to_pair : string -> string * string) =
-  fun s ->
-    match Str.split (Str.regexp ":") s with
-      | [n;t] -> rm_blank n, rm_blank t
-      | _ -> failwith ("Rif internal error: Cannot split '"^s^"'. It should contain exactly one ':'")
-
-
-let _ = assert (to_pair "T:bool" = ("T","bool"))
-
-
-let rec (read_until_pragma_end :  in_channel -> out_channel option -> string -> string) =
-  fun ic oc str -> 
-    let line = read_line "" ic oc in
-      try
-        let i = Str.search_forward (Str.regexp "#@") line 0 in
-          (
-            String.sub line 0 i) ^ str
-      with Not_found -> 
-        (*         let _ = print_string ("read_until_pragma_end done: '"^str^"'\n"); flush stdout   in *)
-        
-(*         let _ = print_string ("read_until_pragma_end adding: "^line^"\n"); flush stdout   in *)
-          read_until_pragma_end ic oc (str^" "^line)
-
-(* exported *)
-let rec (read_interface : string -> in_channel -> out_channel option -> 
-          (string * string) list * (string * string) list) =
-  fun label ic oc -> 
-(*     let _ = print_string ("read_interface\n"); flush stdout in *)
-    let rec loop ins outs =
-      if ins <> [] && outs <> [] then ins, outs else
-      let line = read_line label ic oc in
-        try
-          if Str.string_match (Str.regexp "#inputs") line 0 then
-            let str = String.sub line 7 (String.length line - 7) in
-            let l = Str.split (Str.regexp " ") str in
-            let l = List.filter (fun str -> str <> "") l in
-              loop (List.map to_pair l) outs
-                
-          else if Str.string_match (Str.regexp "@#inputs") line 0 then          
-            let str = String.sub line 8 (String.length line - 8) in
-            let str = read_until_pragma_end ic oc str in
-            let l = Str.split (Str.regexp " ") str in
-            let l = List.filter (fun str -> str <> "") l in
-              loop (List.map to_pair l) outs
-                
-          else if Str.string_match (Str.regexp "#outputs") line 0 then
-            let str = String.sub line 8 (String.length line - 8) in
-            let l = Str.split (Str.regexp " ") str in
-            let l = List.filter (fun str -> str <> "") l in
-              loop ins (List.map to_pair l)
-                
-          else if Str.string_match (Str.regexp "@#outputs") line 0 then          
-            let str = String.sub line 9 (String.length line - 9) in
-            let str = read_until_pragma_end ic oc str in
-            let l = Str.split (Str.regexp " ") str in
-            let l = List.filter (fun str -> str <> "") l in
-              loop ins (List.map to_pair l)
-          else
-            loop ins outs
-        with _ -> 
-          print_string "*** Error when parsing socket content: I was expecting #inputs/#outputs\n";
-          print_string ("*** And I've read '" ^ line ^"'\n");
-          flush stdout;
-          loop ins outs
-    in
-      loop [] []
-
-exception Bye
-
-(* exported *)
-let rec (read :  ?pragma:(string list) -> in_channel -> out_channel option -> vntl -> subst list) =
-  fun ?(pragma = []) ic oc vntl  ->
-    (**  Reads input values on ic. It should follow the rif format. *)
-    let tbl = [] in
-    if vntl = [] then tbl else 
-      let stream = get_stream ic oc in
-      parse_rif_stream ic oc vntl stream tbl pragma
-        
-and (parse_rif_stream :  in_channel -> out_channel option -> vntl -> stream -> 
-     subst list -> string list -> subst list) =
-  fun ic oc vntl stream tbl pragma ->
-    if vntl = [] then tbl else
-      let tok_list = Stream.npeek 2 stream in
-      match tok_list with
-	     | [Genlex.Kwd (_,"#"); Genlex.Ident (_,id)] ->
-	       if List.mem id pragma then (
-		      Stream.junk stream ;
-		      Stream.junk stream ;
-		      parse_rif_stream ic oc vntl stream tbl pragma
-	       ) else (
-      (* We skip everything that occurs after a [#], until the next eol. *)
-		      Stream.junk stream ;
-		      parse_rif_stream ic oc 
-              vntl (get_stream ic oc) tbl pragma
-	       )
- 	     | (Genlex.Kwd (_,"#"))::(Genlex.Kwd (_,"ERROR"))::_ -> 
-           print_string "#ERROR value read. bye!\n"; raise Bye 
-	     | (Genlex.Kwd (_,"#"))::_ ->
-          Stream.junk stream ;
-          parse_rif_stream ic oc vntl (get_stream ic oc)
-            tbl pragma 
-	     | (Genlex.Kwd (_,"nil"))::_ -> print_string "# nil value read. bye!\n"; raise Bye
-	     | (Genlex.Kwd (_,"ERROR"))::_ -> print_string "#ERROR value read. bye!\n"; raise Bye
-	     | (Genlex.Kwd (_,"q"))::_ -> print_string "# bye!\n"; raise Bye
-	     | (Genlex.Kwd (_,"#@"))::_ ->
-              (* Beginning of multi-line comment. Note that here,
-                 unlike the rif format, we ignore multi line pragmas;
-                 namely, we handle them as a multi-line comment. *)
-          (
-            Stream.junk stream ;
-            ignore_toks_until_end_of_pragmas ic oc vntl stream tbl pragma 
-          )
-	     | (Genlex.Float (_,f))::_ ->
-          (
-            Stream.junk stream ;
-           (* Hashtbl.add tbl (Var.name (hd vntl)) (N(F(f))) ; *)
-	         let v =
-              match snd (hd vntl) with
-                | "bool" -> B(f<>0.0)
-                | "real" -> F(f)
-                | "int"  -> 
-                  let i = int_of_float f in
-                  print_string "\n*** Warning: type error, ";
-		            print_string ((string_of_float f)
-				                    ^ " is an real, but an int is expected. I convert it to '"^
-                                  (string_of_int i)^"'\n");
-                  I(i)
-                | e -> 
-                  print_string ("\n*** Error: unknown type: "^ e ^ "\n");
-                  assert false
-	         in
-            let tbl = tbl@ [fst (hd vntl), v] in
-            parse_rif_stream ic oc (tl vntl) stream tbl pragma 
-          )
-	     | (Genlex.Int (_,i))::_ -> (
-	       Stream.junk stream ;
-	       let v =
-            match snd (hd vntl) with
-              | "bool" -> B(i<>0)
-              | "int"  -> I(i)
-              | "real" ->
-                let f = float_of_int i in
-                print_string "\n*** Warning: type error, ";
-		          print_string ((string_of_int i)
-				                  ^ " is an int, but a real is expected. I convert it to '"^
-                                (string_of_float f)^"'\n");
-                F(f)
-              | e -> 
-                print_string ("\n*** Error: unknown type: "^ e ^ "\n");
-                assert false
-	       in
-	       let tbl = tbl @[fst (hd vntl), v] in
-          parse_rif_stream ic oc (tl vntl) stream tbl pragma
-	     )
-	     | (Genlex.Ident (_,b))::_ -> (
-	       Stream.junk stream ;
-	       let v = if mem b ["f"; "F";"false"] then B(false)
-            else if  mem b ["t"; "T";"true"] then B(true)
-	         else failwith ("### rif parse error: `" ^ b ^ "' read, where a bool was expected.\n")
-	       in
-	       let tbl = tbl @ [fst (hd vntl), v] in
-          parse_rif_stream ic oc (tl vntl) stream tbl pragma
-	     )
-	     | [] ->
-              (* Eol is is reached; proceed with the next one *)
-          parse_rif_stream ic oc vntl (get_stream ic oc)
-            tbl pragma 
-	     | _ -> failwith ("### rif parse error: not in RIF format.\n")
-          
-and (ignore_toks_until_end_of_pragmas :   
-       in_channel -> out_channel option-> vntl -> stream -> subst list -> string list -> subst list) =
-  fun ic oc vntl stream tbl pragma ->
-    (* ignore all tokens until "@#" is reached *)
-    let tok_opt = Stream.peek stream in
-    match tok_opt  with
-      | Some(Genlex.Kwd (_,"@#")) ->
-        (
-          Stream.junk stream ;
-          parse_rif_stream ic oc vntl stream tbl pragma
-        )
-      | Some(_) ->
-        (
-          Stream.junk stream ;
-          ignore_toks_until_end_of_pragmas ic oc vntl stream tbl  pragma 
-        )
-      | None ->
-            (* Eol is is reached; proceed with the next one *)
-        (ignore_toks_until_end_of_pragmas ic oc vntl
-           (get_stream ic oc) tbl pragma)
-        
-
-
-
-(*------------------------------------------------------------------------*)
-(* exported *)
-let (write : out_channel -> string -> unit) =
-  fun oc str -> 
-    output_string oc str
-
-let (flush : out_channel -> unit) =
-  fun oc -> 
-    flush oc
-
-(*------------------------------------------------------------------------*)
-(* exported *)
-let (write_interface : out_channel -> vntl -> vntl -> vntl option -> vntl list option -> unit) =
-  fun oc in_vars out_vars loc_vars_opt oracle_vars_opt -> 
-    let str =  
-      (List.fold_left
-         (fun acc (vn,vt) ->
-           acc ^ "\"" ^ vn ^ "\":" ^ vt ^ " ")
-         "#inputs "
-         in_vars) ^
-
-        "\n#outputs " ^
-        
-        (List.fold_left 
-           (fun acc (vn,vt) ->
-             acc ^ "\"" ^ vn ^ "\":" ^ vt ^ " ")
-           ""
-           out_vars) ^
-        
-        (match loc_vars_opt with
-          | None -> "\n"
-          | Some loc_vars ->  
-            ((List.fold_left
-                (fun acc (vn,vt) -> 
-                  acc^"\"" ^ vn ^ "\":" ^ vt ^ " ")
-                "\n#locals "
-                loc_vars
-             ) ^ "\n")
-        )
-      ^
-        (match oracle_vars_opt with
-          | None -> ""
-          | Some vars_l ->  
-            (List.fold_left
-               (fun acc vars -> 
-                 ((List.fold_left
-                     (fun acc (vn,vt) -> 
-                       acc^"\"" ^ vn ^ "\":" ^ vt ^ " ")
-                     "#oracle_outputs "
-                     vars
-                  ) ^ "\n" ^ acc)
-               )
-               ""
-               vars_l
-            )
-        )
-    in
-    write oc str
-
-(*------------------------------------------------------------------------*)
-(* exported *)
-let (write_outputs : out_channel -> (float -> string) -> vntl -> subst list -> unit) =
-  fun oc s2f vntl sl ->
-    let str = 
-      List.fold_left
-        (fun acc (vn,vt) ->
-          acc^ (try Data.val_to_string s2f (List.assoc vn sl) 
-            with 
-              | Not_found -> 
-                print_string ("*** " ^ vn ^ " not found in ");
-                print_string (String.concat "," (List.map (fun (n,_) -> n) sl));
-                flush stdout;
-                assert false
-          ) ^ " "
-        )
-        ""
-        vntl
-    in
-    output_string oc str
diff --git a/src/rif_base.mli b/src/rif_base.mli
deleted file mode 100644
index 4afc24606c30c34e0d6d466f51e3f585540292cc..0000000000000000000000000000000000000000
--- a/src/rif_base.mli
+++ /dev/null
@@ -1,42 +0,0 @@
-(*-----------------------------------------------------------------------
-** Copyright (C) - Verimag.
-** This file may only be copied under the terms of the GNU Library General
-** Public License
-**-----------------------------------------------------------------------
-**
-** File: rif.ml
-** Author: jahier@imag.fr
-*)
-
-
-(** RIF (Reactive Input Format) utilities *)
-
-
-
-(** [read_interface label ic oc_opt] reads the IO names and types on ic. The string
-read on ic should looks like :
-  #inputs v1:t1 v2:t2 ...
-  #outputs x1:tx1 ...
-  #step
-    
-    [label] is a string used in debug mode to hint who is calling.
-
- *)
-val read_interface : string -> in_channel -> out_channel option -> (string * string) list *  (string * string) list
-
-exception Bye
-
-(** Reads the input values. raises Bye if a line equal to "q" is read. *)
-val read :  ?pragma:(string list) -> in_channel -> out_channel option -> Data.vntl -> Data.subst list
-
-val write : out_channel -> string -> unit
-
-(** [write_outputs oc float_to_string outputs ] writes the Lucky outputs *)
-val write_outputs : out_channel -> (float -> string) -> Data.vntl -> Data.subst list -> unit
-
-(** [write_interface oc in_vars_ out_vars loc_vars oracle_vars] writes the input
-    and output var names and types *)
-val write_interface : out_channel -> Data.vntl -> Data.vntl -> Data.vntl option -> 
-  Data.vntl list option -> unit
-
-val flush : out_channel -> unit
diff --git a/src/soc.ml b/src/soc.ml
index 58f2e00736486fa2713684d630727410433c2ee0..80307730c60396f74bfb39072a361a70d63b9702 100644
--- a/src/soc.ml
+++ b/src/soc.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 04/06/2013 (at 17:43) by Erwan Jahier> *)
+(* Time-stamp: <modified the 23/04/2014 (at 10:17) by Erwan Jahier> *)
 
 (** Synchronous Object Component *)
 
diff --git a/src/soc2c.ml b/src/soc2c.ml
new file mode 100644
index 0000000000000000000000000000000000000000..9b66b382fb62c3a8d6818c5ed634ee29d5abeb07
--- /dev/null
+++ b/src/soc2c.ml
@@ -0,0 +1,217 @@
+(* Time-stamp: <modified the 12/05/2014 (at 15:44) by Erwan Jahier> *)
+
+
+(* let put (os: out_channel) (fmt:('a, unit, string, unit) format4) : 'a = *)
+(* 	Printf.kprintf (fun t -> output_string os t) fmt *)
+
+open Printf
+
+let rec (type_to_string : Data.t -> string) = 
+  fun v -> 
+    let str =
+      match v with
+        | Bool -> "_boolean"
+        | Int -> "_integer"
+        | Real-> "_real"
+        | Extern s -> s ^ "(*extern*)"
+        | Enum  (s, sl) -> s 
+        | Struct (sid,_) -> sid ^ "(*struct*)"
+        | Array (ty, sz) -> Printf.sprintf "%s^%d" (type_to_string ty) sz 
+        | Alpha nb -> assert false
+    in
+    str
+
+let colcol = Str.regexp "::"
+let id2s id =
+	match Str.split colcol id with
+	| [s] -> s
+	| [m;s] -> if Lv6MainArgs.global_opt.Lv6MainArgs.no_prefix then s else m^"_"^s 
+	| _ -> assert false
+
+
+(* Soc printer *)
+type 'a soc_pp = {
+  hfmt:  ('a, unit, string, unit) format4 -> 'a;
+  cfmt:  ('a, unit, string, unit) format4 -> 'a;
+  cput : string -> unit;
+  hput : string -> unit;
+  soc: Soc.t
+}
+
+let rec (type_to_short_string : Data.t -> string) = 
+  fun v -> 
+    let str =
+      match v with
+        | Data.Bool -> "b"
+        | Data.Int -> "i"
+        | Data.Real-> "r"
+        | Data.Extern s -> s 
+        | Data.Enum  (s, sl) -> s 
+        | Data.Struct (sid,_) -> sid
+        | Data.Array (ty, sz) -> Printf.sprintf "%sp%d" (type_to_string ty) sz 
+        | Data.Alpha nb ->
+        (* On génère des "types" à la Caml : 'a, 'b, 'c, etc. *)
+          let a_value = Char.code('a') in
+          let z_value = Char.code('z') in
+          let str =
+            if (nb >= 0 && nb <= (z_value - a_value)) then
+              ("'" ^ (Char.escaped (Char.chr(a_value + nb))))
+            else
+              ("'a" ^ (string_of_int nb))
+          in
+          str
+    in
+    str
+
+let (ctx_name : Soc.key -> string) =
+  fun (name,tl,_) -> 
+    let l = List.map type_to_short_string tl in
+    Printf.sprintf "%s_%s_ctx" (id2s name) (String.concat "" l)
+
+let (step_name : Soc.key -> string -> string) =
+  fun (soc_name,tl,_) sm -> 
+    let l = List.map type_to_short_string tl in
+    sprintf "%s_%s_%s" (id2s soc_name)  (String.concat "" l) sm
+
+
+let (string_of_soc_key : Soc.key -> string) =
+  fun (name,_,_) ->  (id2s name)
+
+let string_of_flow_decl (id, t) = Printf.sprintf "   %s %s;\n" (type_to_string t) id 
+
+let (mem_interface : Soc.t -> string -> bool) =
+  fun soc id -> 
+    let ins,outs = soc.profile in
+    List.mem_assoc id ins || List.mem_assoc id outs
+
+let rec (string_of_var_expr: Soc.t -> Soc.var_expr -> string) = 
+  fun soc -> function
+    | Const(id, _) | Var (id,_) -> if not (mem_interface soc id) then id else
+        sprintf "ctx->%s" id
+    | Field(f, id,_) -> sprintf "%s.%s" (string_of_var_expr soc f) id
+    | Index(f, index,_) -> sprintf "%s[%i]" (string_of_var_expr soc f) index
+    | Slice(f,fi,la,st,wi,vt) -> sprintf "%s[%i..%i step %i]; // XXX fixme!\n" 
+      (string_of_var_expr soc f) fi la st
+
+let (gao2c : 'a soc_pp -> Soc.gao -> unit) =
+  fun sp gao -> 
+    let string_of_var_expr_list vel =
+      let vel = List.map (string_of_var_expr sp.soc) vel in
+      String.concat "," vel
+    in
+    match gao with
+      | Case(id, id_gao_l) ->  assert false
+      | Call(vel_out, Assign, vel_in) ->  
+        let vel_in_str  = string_of_var_expr_list vel_in in
+        let vel_out_str = string_of_var_expr_list vel_out in
+        let str = sprintf "   %s = %s;\n" vel_out_str vel_in_str in
+        sp.cput str
+        
+      | Call(vel_out, Method((inst_name,sk),sname), vel_in) ->  
+(*         let vel_in_str  = string_of_var_expr_list vel_in in *)
+(*         let vel_out_str = string_of_var_expr_list vel_out in *)
+        let vel_str = string_of_var_expr_list (vel_in@vel_out) in
+        let str = sprintf "   %s(ctx->%s,%s); //method call\n" (* XXX fixme ! *)
+          (step_name sk sname) (id2s inst_name) vel_str in
+        sp.cput str
+
+
+      | Call(vel_out, Procedure sk, vel_in) ->
+        let vel_in_str  = string_of_var_expr_list vel_in in
+        let vel_out_str = string_of_var_expr_list vel_out in
+        let sk = (string_of_soc_key sk) in
+        let str = sprintf "   %s = %s(%s); //procedure call\n" vel_out_str sk vel_in_str in
+        sp.cput str
+
+
+
+let (step2c : 'a soc_pp -> Soc.step_method -> unit) =
+  fun sp sm -> 
+    let cname = ctx_name sp.soc.key in
+    let sm_str = SocUtils.string_of_method sp.soc sm in
+    let sname = step_name sp.soc.key sm.name in
+(*     sp.put (sprintf "/* %s */\n" sm_str); *)
+    sp.cfmt "void %s(%s* ctx){\n"  sname cname;    
+
+    
+    (match sm.impl with
+      | Predef -> sp.cput "   //xxx predef_finish_me!"
+      | Gaol(vl, gaol) -> 
+        List.iter (fun v -> sp.cput (string_of_flow_decl v)) vl ; 
+         sp.cput "\n"; 
+        List.iter (gao2c sp) gaol
+(*         of var list * gao list  (* local vars + body *) *)
+      | Iterator(it,it_soc,s) -> assert false
+      | Boolred(i,j,k) -> assert false
+      | Condact(k,el) -> assert false
+    );
+    sp.cput (sprintf "\n} // End of %s\n\n" sname)
+    
+
+let (soc2c: out_channel -> out_channel -> Soc.t -> unit) = 
+  fun hfile cfile soc -> 
+	 let hfmt fmt = Printf.kprintf (fun t -> output_string hfile t) fmt in
+	 let cfmt fmt = Printf.kprintf (fun t -> output_string cfile t) fmt in
+    let hput str = output_string hfile str in
+    let cput str = output_string cfile str in
+    let put str = cput str; hput str in
+    let fmt f str = cfmt f str; hfmt f str in
+    let string_of_instance (id,sk) = 
+      let (sk_id,tl,init_opt) = sk in
+      let init = match init_opt with
+        | Soc.Nomore -> ""
+        | Soc.Slic(_,_,_) -> assert false (* fixme *)
+        | Soc.MemInit(ve) -> Printf.sprintf " = %s" (string_of_var_expr soc ve) 
+      in
+      Printf.sprintf "   %s %s%s;\n" (ctx_name sk) (id2s id) init
+    in
+    
+    let name, _,_ = soc.key in
+    let name = id2s name in
+    let il,ol = soc.profile in
+    let sp = { hfmt = hfmt; cfmt=cfmt; hput = hput; cput = cput; soc = soc } in
+    let ctx_name = ctx_name soc.key in
+    
+    fmt "/* %s */\ntypedef struct {\n   /*INPUTS*/\n" ctx_name;
+    List.iter (fun v -> put (string_of_flow_decl v)) il ;
+
+    put "   /*OUTPUTS*/\n";
+    List.iter (fun v -> put (string_of_flow_decl v)) ol ;
+
+    (match soc.have_mem with
+      | None -> ()
+      | Some t -> 
+        put "   /*Memory cell*/\n";
+        fmt "   %s mem_pre;\n" (Data.type_to_string t) ;
+    );
+
+    if soc.instances <> [] then put "   /*INSTANCES*/\n";
+    List.iter (fun inst -> put (string_of_instance inst)) soc.instances;
+    fmt "} %s;\n\n" ctx_name; 
+
+    cfmt "// Step function(s) for %s\n" ctx_name;
+    List.iter (step2c sp) soc.step;
+    ()
+
+
+
+(* The entry point for lus2lic --to-c *)
+let (f : Lv6MainArgs.t -> Soc.tbl -> unit) =
+  fun args soc -> 
+    let socs = Soc.SocMap.bindings soc in
+    let socs = snd (List.split socs) in 
+(* XXX que fait-on pour les soc predef ? *)
+(*     let _, socs = List.partition is_predef socs in *)
+    let hfile = "hfile.h" in
+    let cfile = "cfile.c" in
+    let occ = open_out cfile in
+    let och = open_out hfile in
+
+    Lv6util.dump_entete stdout ;
+    List.iter (soc2c och occ) socs;
+    flush occ; close_out occ;
+    flush och; close_out och;
+    Printf.printf "%s and %s have been generated.\n" hfile cfile;
+
+    (* XXX remove me: *) List.iter (soc2c stdout stdout) socs
+
diff --git a/src/soc2c.mli b/src/soc2c.mli
new file mode 100644
index 0000000000000000000000000000000000000000..621fc9a88cab2779d1bb49bc63d8bfcbadec2e5a
--- /dev/null
+++ b/src/soc2c.mli
@@ -0,0 +1,4 @@
+(* Time-stamp: <modified the 17/04/2014 (at 15:20) by Erwan Jahier> *)
+
+(* The entry point for lus2lic -toC *)
+val f : Lv6MainArgs.t -> Soc.tbl -> unit
diff --git a/src/soc2cPredef.ml b/src/soc2cPredef.ml
new file mode 100644
index 0000000000000000000000000000000000000000..a33e3079f973ff2140065a97ea203b747534df5c
--- /dev/null
+++ b/src/soc2cPredef.ml
@@ -0,0 +1,377 @@
+(* Time-stamp: <modified the 23/04/2014 (at 09:06) by Erwan Jahier> *)
+
+
+
+(*
+let (lustre_plus : ctx -> ctx) =
+  fun ctx -> 
+    let l = [get_val "x" ctx; get_val "y" ctx] in
+    let (vn,vv) =
+      match l with
+        | [I x1; I x2] -> "z"::ctx.cpath,I(x1+x2)
+        | [F i1; F i2] -> "z"::ctx.cpath,F(i1+.i2)
+        | [U; _] | [_;U] -> "z"::ctx.cpath,U
+        | [v1;v2]  ->  type_error v1 v2; "z"::ctx.cpath,U
+        | _ -> assert false
+    in
+    { ctx with s = sadd ctx.s vn vv }
+
+let lustre_times ctx =
+  let (vn,vv) = 
+    match ([get_val "x" ctx; get_val "y" ctx]) with
+      | [I x1; I x2] -> "z"::ctx.cpath,I(x1 * x2)
+      | [F x1; F x2] -> "z"::ctx.cpath,F(x1 *. x2)
+      | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [v1;v2]  ->  type_error v1 v2; "z"::ctx.cpath,U
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+
+
+let lustre_div ctx =
+  let (vn,vv) = 
+    match ([get_val "x" ctx; get_val "y" ctx]) with
+      | [I x1; I x2] -> "z"::ctx.cpath,I(x1 / x2)
+      | [F x1; F x2] -> "z"::ctx.cpath,F(x1 /. x2)
+      | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [v1;v2]  ->  type_error v1 v2;"z"::ctx.cpath,U
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+
+let lustre_slash ctx =
+  let (vn,vv) = 
+    match ([get_val "x" ctx; get_val "y" ctx]) with
+      | [I x1; I x2] -> "z"::ctx.cpath,I(x1 / x2)
+      | [F x1; F x2] -> "z"::ctx.cpath,F(x1 /. x2)
+      | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [v1;v2]  ->  type_error v1 v2;"z"::ctx.cpath,U
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+
+
+let lustre_minus ctx =
+  let (vn,vv) = 
+    match ([get_val "x" ctx; get_val "y" ctx]) with
+      | [I x1; I x2] -> "z"::ctx.cpath,I(x1 - x2)
+      | [F x1; F x2] -> "z"::ctx.cpath,F(x1 -. x2)
+      | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [v1;v2]  ->  type_error v1 v2; "z"::ctx.cpath,U
+      | [v1;v2]  ->  type_error v1 v2; "z"::ctx.cpath,U
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+
+let lustre_mod ctx =
+  let (vn,vv) = 
+    match ([get_val "x" ctx; get_val "y" ctx]) with
+      | [I x1; I x2] -> "z"::ctx.cpath,I(x1 mod x2)
+      | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [v1;v2]  ->  type_error v1 v2; "z"::ctx.cpath,U
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+
+
+let lustre_eq ctx =
+  let (vn,vv) = 
+    match ([get_val "x" ctx; get_val "y" ctx]) with
+      | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [x1; x2] -> "z"::ctx.cpath,B(x1 = x2)
+      | [v1;v2]  ->  type_error v1 v2; "z"::ctx.cpath,U
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+
+let lustre_uminus ctx =
+  let (vn,vv) = 
+    match ([get_val "x" ctx]) with
+      | [I x1] -> "z"::ctx.cpath,I(- x1)
+      | [F x1] -> "z"::ctx.cpath,F(-. x1)
+      | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [v1]  ->  type_error1 v1 "numeric";"z"::ctx.cpath,U
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+
+let lustre_real2int ctx =
+  let (vn,vv) = 
+    match ([get_val "x" ctx]) with
+      | [F x1] -> "z"::ctx.cpath,I(int_of_float x1)
+      | [U] -> "z"::ctx.cpath,U
+      | [v1]  ->  type_error1 v1 "real";"z"::ctx.cpath,U
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+
+
+let lustre_int2real ctx =
+  let (vn,vv) = 
+    match ([get_val "x" ctx]) with
+      | [I x1] -> "z"::ctx.cpath,F(float_of_int x1)
+      | [U] -> "z"::ctx.cpath,U
+      | [v1]  ->  type_error1 v1 "int";"z"::ctx.cpath,U
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+
+
+let lustre_not ctx =
+  let (vn,vv) = 
+    match ([get_val "x" ctx]) with
+      | [B x1] -> "z"::ctx.cpath,B(not x1)
+      | [U] -> "z"::ctx.cpath,U
+      | [v1]  ->  type_error1 v1 "bool";"z"::ctx.cpath,U
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+
+
+let lustre_lt ctx =
+  let (vn,vv) = 
+    match ([get_val "x" ctx; get_val "y" ctx]) with
+      | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [x1; x2] -> "z"::ctx.cpath,B(x1 < x2)
+      | [v1;v2]  ->  type_error v1 v2; "z"::ctx.cpath,U
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+ 
+let lustre_gt ctx =
+  let (vn,vv) = 
+    match ([get_val "x" ctx; get_val "y" ctx]) with
+      | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [x1; x2] -> "z"::ctx.cpath,B(x1 > x2)
+      | [v1;v2]  ->  type_error v1 v2; "z"::ctx.cpath,U
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+
+let lustre_lte ctx =
+  let (vn,vv) = 
+    match ([get_val "x" ctx; get_val "y" ctx]) with
+      | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [x1; x2] -> "z"::ctx.cpath,B(x1 <= x2)
+      | [v1;v2]  ->  type_error v1 v2; "z"::ctx.cpath,U
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+
+let lustre_gte ctx =
+  let (vn,vv) = 
+    match ([get_val "x" ctx; get_val "y" ctx]) with
+      | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [x1; x2] -> "z"::ctx.cpath,B(x1 >= x2)
+      | [v1;v2]  ->  type_error v1 v2; "z"::ctx.cpath,U 
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+
+let lustre_and ctx =
+  let (vn,vv) = 
+    match ([get_val "x" ctx; get_val "y" ctx]) with
+      | [B x1; B x2] -> "z"::ctx.cpath,B(x1 && x2)
+      | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [v1;v2]  ->  type_error2 v1 v2 "bool";"z"::ctx.cpath,U
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+
+let lustre_xor ctx =
+  let (vn,vv) = 
+    match ([get_val "x" ctx; get_val "y" ctx]) with
+      | [B x1; B x2] -> "z"::ctx.cpath,B(x1 <> x2)
+      | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [v1;v2]  ->  type_error2 v1 v2 "bool";"z"::ctx.cpath,U
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+
+
+let lustre_neq  ctx =
+  let (vn,vv) = 
+    match ([get_val "x" ctx; get_val "y" ctx]) with
+      | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [x1; x2] -> "z"::ctx.cpath,B(x1 <> x2)
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+
+
+let lustre_or  ctx =
+  let (vn,vv) = 
+    match ([get_val "x" ctx; get_val "y" ctx]) with
+      | [B x1; B x2] -> "z"::ctx.cpath,B(x1 || x2)
+      | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [v1;v2]  ->  type_error2 v1 v2 "bool";"z"::ctx.cpath,U
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+
+
+let lustre_impl ctx =
+  let (vn,vv) = 
+    match ([get_val "x" ctx; get_val "y" ctx]) with
+      | [B x1; B x2] -> "z"::ctx.cpath,B(not x1 or x2)
+      | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [v1;v2]  ->  type_error2 v1 v2 "bool";"z"::ctx.cpath,U
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+
+let lustre_if ctx =
+  let (vn,vv) = 
+    match ([get_val "c" ctx; get_val "xt" ctx; get_val "xe" ctx]) with
+      | [B c; v1; v2]  -> "z"::ctx.cpath, if c then v1 else v2
+      | [U;_; _] | [_;U;U] -> "z"::ctx.cpath,U
+      | [v1;v2]  ->  type_error v1 v2; "z"::ctx.cpath,U
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+ 
+
+let make_names str start stop = 
+  let res = ref [] in
+  for k=stop downto start do
+    res:= (str^(string_of_int k)) :: !res;
+  done;
+  !res
+
+
+let lustre_array tl ctx =
+  let t,size = match List.hd (List.rev tl) with
+    | Data.Array(t,i) -> t,i
+    | _ -> assert false
+  in
+  let inames = make_names "x" 1 size in
+  let l = List.map (fun name -> get_val name ctx) inames in
+  let a = Array.of_list l in
+  { ctx with s = sadd ctx.s ("z"::ctx.cpath) (A a) }
+
+let lustre_merge tl ctx =
+  let (vn,vv) = match get_val "clk" ctx with
+    | B(true)  -> "z"::ctx.cpath, get_val "x0" ctx
+    | B(false) -> "z"::ctx.cpath, get_val "x1" ctx
+    | E(_,i)   -> "z"::ctx.cpath, get_val ("x"^(string_of_int i)) ctx 
+    | _ -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+
+let lustre_slice tl si_opt ctx =
+  let _t,size = match List.hd (List.rev tl) with
+    | Data.Array(t,i) -> t,i
+    | _ -> assert false
+  in
+  let (vn,vv) = 
+    match ([get_val "x" ctx], si_opt) with
+      | [A a],Slic(b,e,step) -> 
+        let a_res = Array.make size a.(0) in
+        let j=ref 0 in
+        for i = b to e do
+          if (i-b) mod step = 0 then (
+            a_res.(!j) <- a.(i);
+            incr j
+          );
+        done;
+        "z"::ctx.cpath, A (a_res)
+      | [U],_ -> "z"::ctx.cpath, U
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+
+let lustre_concat ctx =
+  let (vn,vv) = 
+    match ([get_val "x" ctx; get_val "y" ctx]) with
+      | [A a1; A a2]  -> "z"::ctx.cpath, A (Array.append a1 a2)
+      | [U;_] | [_;U] -> "z"::ctx.cpath, U
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+
+let lustre_current ctx =
+  let (vn,vv) = 
+    match ([get_val "x" ctx]) with
+      | [v]  -> "z"::ctx.cpath, v
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+
+let lustre_arrow ctx =
+  let (vn,vv) = 
+    match ([get_val "x" ctx; get_val "y" ctx;
+            get_val "$first_step" { ctx with cpath=List.tl ctx.cpath}]) 
+    with
+      | [v1;v2; fs]  -> "z"::ctx.cpath, if fs=B false then v2 else v1
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+
+let lustre_hat tl ctx =
+  let i = match tl with
+    | [_;Data.Array(_,i)] -> i
+    | _ -> assert false
+  in
+  let (vn,vv) = 
+    match ([get_val "x" ctx]) with
+      | [U]  -> "z"::ctx.cpath,U
+      | [v]  -> "z"::ctx.cpath,A(Array.make i v)
+      | _  -> assert false
+  in
+  { ctx with s = sadd ctx.s vn vv }
+ 
+(* exported *)
+let (get: Soc.key -> (ctx -> ctx)) =
+  fun (n,tl,si_opt) -> 
+    match n with
+    | "Lustre::rplus" 
+    | "Lustre::iplus" 
+    | "Lustre::plus" -> lustre_plus
+    | "Lustre::itimes"
+    | "Lustre::rtimes"
+    | "Lustre::times"-> lustre_times 
+    | "Lustre::idiv"
+    | "Lustre::rdiv"
+    | "Lustre::div"  -> lustre_div 
+    | "Lustre::slash" | "Lustre::islash" | "Lustre::rslash" -> lustre_slash
+    | "Lustre::iminus"
+    | "Lustre::rminus"
+    | "Lustre::minus"-> lustre_minus
+
+    | "Lustre::mod" -> lustre_mod
+    | "Lustre::iuminus"
+    | "Lustre::ruminus"
+    | "Lustre::uminus" -> lustre_uminus
+    | "Lustre::not" -> lustre_not 
+    | "Lustre::real2int" -> lustre_real2int
+    | "Lustre::int2real" -> lustre_int2real
+
+    | "Lustre::lt"| "Lustre::rlt" | "Lustre::ilt"  -> lustre_lt
+    | "Lustre::gt"| "Lustre::rgt" | "Lustre::igt"  -> lustre_gt
+    | "Lustre::lte"| "Lustre::rlte" | "Lustre::ilte" -> lustre_lte
+    | "Lustre::gte"| "Lustre::rgte"| "Lustre::igte" -> lustre_gte
+
+    | "Lustre::xor" -> lustre_xor
+    | "Lustre::and" -> lustre_and 
+    | "Lustre::eq" -> lustre_eq 
+    | "Lustre::neq" -> lustre_neq 
+    | "Lustre::or"  -> lustre_or 
+
+    | "Lustre::impl" -> lustre_impl
+
+    | "Lustre::if"| "Lustre::rif"| "Lustre::iif" -> lustre_if
+
+    | "Lustre::hat" -> lustre_hat tl
+    | "Lustre::array" -> lustre_array tl
+    | "Lustre::concat" -> lustre_concat
+
+    | "Lustre::arrow" -> lustre_arrow
+    | "Lustre::current" -> lustre_current
+    | "Lustre::merge" -> lustre_merge tl
+
+    | "Lustre::array_slice" -> lustre_slice tl si_opt
+
+    | "Lustre::nor" -> assert false (* ougth to be translated into boolred *)
+    | "Lustre::diese" -> assert false (* ditto *)
+    | _ -> raise Not_found
+*)
diff --git a/src/socExec.ml b/src/socExec.ml
index a23257ab1dcf93313f676898a1281227408dea0f..ff9989a9b8c6b39e9050089715b80c2f0c65d160 100644
--- a/src/socExec.ml
+++ b/src/socExec.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 06/06/2013 (at 10:29) by Erwan Jahier> *)
+(* Time-stamp: <modified the 27/02/2014 (at 17:32) by Erwan Jahier> *)
 
 open Soc
 open Data
@@ -248,6 +248,7 @@ let (unexpand_profile : sl -> Soc.var list -> sl) =
         (* Returns the (accumulated) result and the unused subst
            (which should be empty at the top-level call) *)
         match sl_todo, vl with
+          | [],_::_ -> sl_done,[] 
           | _,[] -> sl_done, sl_todo
           | s::sl, (_, (Bool| Int | Real))::vl -> aux (s::sl_done) sl vl
           | (id,v)::sl, (_,Enum(n,el))::vl -> 
@@ -275,7 +276,6 @@ let (unexpand_profile : sl -> Soc.var list -> sl) =
 
           | _, (vn,Extern id)::_ -> assert false (* finish me! *)
           | _, (vn,Alpha _  )::_ -> assert false (* should not occur *)
-          | [],_::_ -> assert false  (* should not occur *)
 
     and (aux_field : sl * (ident * Data.v) list -> ident * Data.t -> sl * (ident * Data.v) list ) =
       fun (sl_todo, fl) (fn, t) ->
@@ -294,25 +294,28 @@ let (add_data_subst : var list -> Data.subst list -> SocExecValue.substs -> SocE
     let s = unexpand_profile s vntl_i in
     List.fold_left (fun acc (id,v) -> sadd acc [id] v) ctx_s s
 
-let (read_soc_input :  var list -> Data.vntl -> out_channel -> substs -> substs) =
-  fun vntl_i exp_vntl_i_str oc ctx_s -> 
-    let s:Data.subst list = Rif_base.read stdin (Some oc) exp_vntl_i_str in
+let (read_soc_input : Lv6MainArgs.t -> var list -> Data.vntl -> out_channel -> substs -> substs) =
+  fun opt vntl_i exp_vntl_i_str oc ctx_s -> 
+    let s:Data.subst list = 
+      RifIO.read ~debug:(Verbose.level()>0) stdin (if opt.rif then None else Some oc) exp_vntl_i_str 
+    in
     add_data_subst vntl_i s ctx_s
 
 let rec (loop_step : Lv6MainArgs.t -> Soc.tbl -> Soc.var list -> Data.vntl -> Data.vntl
          -> Soc.t -> SocExecValue.ctx -> int -> out_channel -> unit) =
   fun opt soc_tbl vntl_i exp_vntl_i_str exp_vntl_o_str soc ctx step_nb oc ->
-    Rif_base.write oc ("\n#step " ^ (string_of_int step_nb)^"\n");
-    let ctx = { ctx with s = read_soc_input vntl_i exp_vntl_i_str oc ctx.s } in
+    if not opt.rif then RifIO.write oc ("\n#step " ^ (string_of_int step_nb)^"\n");
+    let ctx = { ctx with s = read_soc_input opt vntl_i exp_vntl_i_str oc ctx.s } in
     let step = match soc.step with [step] -> step | _ ->  assert false in
     let ctx = soc_step step soc_tbl soc ctx in
     let ctx = { ctx with s = sadd ctx.s ("$first_step"::ctx.cpath) (B false)} in
     let s = SocExecValue.filter_top_subst ctx.s in
     let s = List.flatten(List.map expand_subst s) in
     let f2s = SocUtils.my_string_of_float_precision opt.Lv6MainArgs.precision in
-    Rif_base.write oc " #outs ";
-    Rif_base.write_outputs oc f2s exp_vntl_o_str s;
-    Rif_base.flush oc;
+    if not opt.rif then RifIO.write oc " #outs ";
+    RifIO.write_outputs oc f2s exp_vntl_o_str s;
+    RifIO.write oc "\n";
+    RifIO.flush oc;
     Verbose.exe ~flag:dbg (fun () -> dump_substs ctx.s; flush stdout);
     loop_step opt soc_tbl vntl_i exp_vntl_i_str exp_vntl_o_str soc ctx (step_nb+1) oc
 
@@ -320,11 +323,8 @@ let (f : Lv6MainArgs.t -> Soc.tbl -> Soc.key -> unit) =
   fun opt soc_tbl sk ->
     let soc = try SocMap.find sk soc_tbl with Not_found -> assert false in
     let ctx = SocExecValue.create_ctx soc_tbl soc in
-    let vntl_of_profile = List.map (fun (x,t) -> x,SocUtils.string_of_type_ref t) in
     let exp_vntl_i = expand_profile true (fst soc.profile) in
     let exp_vntl_o = expand_profile true (snd soc.profile) in
-    let exp_vntl_i_str = vntl_of_profile exp_vntl_i in
-    let exp_vntl_o_str = vntl_of_profile exp_vntl_o in
     let oc = 
       if  opt.Lv6MainArgs.outfile  = "" then stdout else
         let rif_file =
@@ -334,10 +334,10 @@ let (f : Lv6MainArgs.t -> Soc.tbl -> Soc.key -> unit) =
         open_out rif_file 
     in
     Lv6util.dump_entete oc;
-    Rif_base.write_interface oc exp_vntl_i_str exp_vntl_o_str None None;
-    Rif_base.flush oc;
-    try loop_step opt soc_tbl (fst soc.profile) exp_vntl_i_str exp_vntl_o_str soc ctx 1 oc
-    with Rif_base.Bye -> 
+    RifIO.write_interface oc exp_vntl_i exp_vntl_o None None;
+    RifIO.flush oc;
+    try loop_step opt soc_tbl (fst soc.profile) exp_vntl_i exp_vntl_o soc ctx 1 oc
+    with RifIO.Bye -> 
       close_out oc
 
 (**************************************************************************************)
@@ -362,8 +362,8 @@ let rec (do_step_dbg : Soc.tbl -> Soc.t -> Event.ctx -> SocExecValue.ctx ->
         Event.ctx_name = soc_name;
         Event.ctx_depth = ectx.Event.ctx_depth+1;
         Event.ctx_data = datal;
-        Event.ctx_inputs  = List.map fst (fst soc.profile);
-        Event.ctx_outputs = List.map fst (snd soc.profile);
+        Event.ctx_inputs  = fst soc.profile;
+        Event.ctx_outputs = snd soc.profile;
     } 
     in
     let cont2 ctx =
@@ -376,42 +376,36 @@ let rec (do_step_dbg : Soc.tbl -> Soc.t -> Event.ctx -> SocExecValue.ctx ->
           Event.line = Lxm.line lxm,Lxm.line lxm;
           Event.char = Lxm.cstart lxm, Lxm.cend lxm;
           (*           Event.stack = if tl=[] then None else Some (to_src_info tl); *)
-          Event.stack =  None; (* XXX stub *)
+          Event.stack = None; 
         }]) 
       in
-      let enb = Event.incr_nb (); Event.get_nb () in
+      let enb = Event.incr_nb () in
       { 
         Event.step = ectx.Event.ctx_step;
         Event.nb = enb;
         Event.depth = ectx.Event.ctx_depth;
-        Event.kind = 
-          Event.Node {
-            Event.lang = "lustre";
-            Event.name = soc_name;
-            Event.port = Event.Exit ("",Expr.True,lazy_si);
-            Event.inputs = ectx.Event.ctx_inputs;
-            Event.outputs = ectx.Event.ctx_outputs;
-          };
+        Event.kind = Event.Exit;
+        Event.lang = "lustre";
+        Event.name = soc_name;
+        Event.inputs = ectx.Event.ctx_inputs;
+        Event.outputs = ectx.Event.ctx_outputs;
+        Event.sinfo = None;
         Event.data = ectx.Event.ctx_data;
-        Event.other = "";
         Event.next = (fun () -> Event.event_nb := enb; cont ctx);
         Event.terminate = ectx.Event.ctx_terminate;
       } 
     in
     { 
       Event.step = ectx.Event.ctx_step;
-      Event.nb = (Event.incr_nb (); Event.get_nb ());
+      Event.nb = (Event.incr_nb ());
       Event.depth = ectx.Event.ctx_depth;
-      Event.kind = 
-        Event.Node {
-          Event.lang = "lustre";
-          Event.name = soc_name;
-          Event.port = Event.Call;
-          Event.inputs = ectx.Event.ctx_inputs;
-          Event.outputs = ectx.Event.ctx_outputs;
-        };
+      Event.kind = Event.Call;
+      Event.lang = "lustre";
+      Event.name = soc_name;
+      Event.inputs = ectx.Event.ctx_inputs;
+      Event.outputs = ectx.Event.ctx_outputs;
+      Event.sinfo = None;
       Event.data = ectx.Event.ctx_data;
-      Event.other = "";
       Event.next = (fun () -> 
         let step = match soc.step with [step] -> step | _ ->  assert false in
         let ctx = soc_step step soc_tbl soc ctx in
diff --git a/src/socExecEvalPredef.ml b/src/socExecEvalPredef.ml
index 5b5652eafecc12305f6028725e1efa81dfdf44eb..b38cb5dbd0b09e4e0a65492c7c693cc661163609 100644
--- a/src/socExecEvalPredef.ml
+++ b/src/socExecEvalPredef.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 05/06/2013 (at 11:07) by Erwan Jahier> *)
+(* Time-stamp: <modified the 26/03/2014 (at 09:45) by Erwan Jahier> *)
 
 open SocExecValue
 open Data
@@ -6,6 +6,21 @@ open Soc
 
 (* A boring but simple module... *)
 
+let type_error v1 v2 =
+  Printf.eprintf "Runtime error: '%s' and '%s' have different types.\n" 
+    (Data.val_to_string string_of_float v1)  (Data.val_to_string string_of_float v2);
+  flush stderr
+
+let type_error1 v1 str =
+  Printf.eprintf "Runtime error: '%s' is not a '%s'\n" 
+    (Data.val_to_string string_of_float v1) str;
+  flush stderr
+
+let type_error2 v1 v2 str =
+  Printf.eprintf "Runtime error: '%s' and/or '%s' are/is not a %s\n" 
+    (Data.val_to_string string_of_float v1)  (Data.val_to_string string_of_float v2) str;
+  flush stderr
+
 let (lustre_plus : ctx -> ctx) =
   fun ctx -> 
     let l = [get_val "x" ctx; get_val "y" ctx] in
@@ -14,7 +29,8 @@ let (lustre_plus : ctx -> ctx) =
         | [I x1; I x2] -> "z"::ctx.cpath,I(x1+x2)
         | [F i1; F i2] -> "z"::ctx.cpath,F(i1+.i2)
         | [U; _] | [_;U] -> "z"::ctx.cpath,U
-        |  e  -> assert false
+        | [v1;v2]  ->  type_error v1 v2; "z"::ctx.cpath,U
+        | _ -> assert false
     in
     { ctx with s = sadd ctx.s vn vv }
 
@@ -24,6 +40,7 @@ let lustre_times ctx =
       | [I x1; I x2] -> "z"::ctx.cpath,I(x1 * x2)
       | [F x1; F x2] -> "z"::ctx.cpath,F(x1 *. x2)
       | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [v1;v2]  ->  type_error v1 v2; "z"::ctx.cpath,U
       | _  -> assert false
   in
   { ctx with s = sadd ctx.s vn vv }
@@ -35,6 +52,7 @@ let lustre_div ctx =
       | [I x1; I x2] -> "z"::ctx.cpath,I(x1 / x2)
       | [F x1; F x2] -> "z"::ctx.cpath,F(x1 /. x2)
       | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [v1;v2]  ->  type_error v1 v2;"z"::ctx.cpath,U
       | _  -> assert false
   in
   { ctx with s = sadd ctx.s vn vv }
@@ -45,6 +63,7 @@ let lustre_slash ctx =
       | [I x1; I x2] -> "z"::ctx.cpath,I(x1 / x2)
       | [F x1; F x2] -> "z"::ctx.cpath,F(x1 /. x2)
       | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [v1;v2]  ->  type_error v1 v2;"z"::ctx.cpath,U
       | _  -> assert false
   in
   { ctx with s = sadd ctx.s vn vv }
@@ -56,6 +75,8 @@ let lustre_minus ctx =
       | [I x1; I x2] -> "z"::ctx.cpath,I(x1 - x2)
       | [F x1; F x2] -> "z"::ctx.cpath,F(x1 -. x2)
       | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [v1;v2]  ->  type_error v1 v2; "z"::ctx.cpath,U
+      | [v1;v2]  ->  type_error v1 v2; "z"::ctx.cpath,U
       | _  -> assert false
   in
   { ctx with s = sadd ctx.s vn vv }
@@ -65,6 +86,7 @@ let lustre_mod ctx =
     match ([get_val "x" ctx; get_val "y" ctx]) with
       | [I x1; I x2] -> "z"::ctx.cpath,I(x1 mod x2)
       | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [v1;v2]  ->  type_error v1 v2; "z"::ctx.cpath,U
       | _  -> assert false
   in
   { ctx with s = sadd ctx.s vn vv }
@@ -75,6 +97,7 @@ let lustre_eq ctx =
     match ([get_val "x" ctx; get_val "y" ctx]) with
       | [U; _] | [_;U] -> "z"::ctx.cpath,U
       | [x1; x2] -> "z"::ctx.cpath,B(x1 = x2)
+      | [v1;v2]  ->  type_error v1 v2; "z"::ctx.cpath,U
       | _  -> assert false
   in
   { ctx with s = sadd ctx.s vn vv }
@@ -85,6 +108,7 @@ let lustre_uminus ctx =
       | [I x1] -> "z"::ctx.cpath,I(- x1)
       | [F x1] -> "z"::ctx.cpath,F(-. x1)
       | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [v1]  ->  type_error1 v1 "numeric";"z"::ctx.cpath,U
       | _  -> assert false
   in
   { ctx with s = sadd ctx.s vn vv }
@@ -94,6 +118,7 @@ let lustre_real2int ctx =
     match ([get_val "x" ctx]) with
       | [F x1] -> "z"::ctx.cpath,I(int_of_float x1)
       | [U] -> "z"::ctx.cpath,U
+      | [v1]  ->  type_error1 v1 "real";"z"::ctx.cpath,U
       | _  -> assert false
   in
   { ctx with s = sadd ctx.s vn vv }
@@ -104,6 +129,7 @@ let lustre_int2real ctx =
     match ([get_val "x" ctx]) with
       | [I x1] -> "z"::ctx.cpath,F(float_of_int x1)
       | [U] -> "z"::ctx.cpath,U
+      | [v1]  ->  type_error1 v1 "int";"z"::ctx.cpath,U
       | _  -> assert false
   in
   { ctx with s = sadd ctx.s vn vv }
@@ -114,6 +140,7 @@ let lustre_not ctx =
     match ([get_val "x" ctx]) with
       | [B x1] -> "z"::ctx.cpath,B(not x1)
       | [U] -> "z"::ctx.cpath,U
+      | [v1]  ->  type_error1 v1 "bool";"z"::ctx.cpath,U
       | _  -> assert false
   in
   { ctx with s = sadd ctx.s vn vv }
@@ -124,6 +151,7 @@ let lustre_lt ctx =
     match ([get_val "x" ctx; get_val "y" ctx]) with
       | [U; _] | [_;U] -> "z"::ctx.cpath,U
       | [x1; x2] -> "z"::ctx.cpath,B(x1 < x2)
+      | [v1;v2]  ->  type_error v1 v2; "z"::ctx.cpath,U
       | _  -> assert false
   in
   { ctx with s = sadd ctx.s vn vv }
@@ -133,6 +161,7 @@ let lustre_gt ctx =
     match ([get_val "x" ctx; get_val "y" ctx]) with
       | [U; _] | [_;U] -> "z"::ctx.cpath,U
       | [x1; x2] -> "z"::ctx.cpath,B(x1 > x2)
+      | [v1;v2]  ->  type_error v1 v2; "z"::ctx.cpath,U
       | _  -> assert false
   in
   { ctx with s = sadd ctx.s vn vv }
@@ -142,6 +171,7 @@ let lustre_lte ctx =
     match ([get_val "x" ctx; get_val "y" ctx]) with
       | [U; _] | [_;U] -> "z"::ctx.cpath,U
       | [x1; x2] -> "z"::ctx.cpath,B(x1 <= x2)
+      | [v1;v2]  ->  type_error v1 v2; "z"::ctx.cpath,U
       | _  -> assert false
   in
   { ctx with s = sadd ctx.s vn vv }
@@ -151,6 +181,7 @@ let lustre_gte ctx =
     match ([get_val "x" ctx; get_val "y" ctx]) with
       | [U; _] | [_;U] -> "z"::ctx.cpath,U
       | [x1; x2] -> "z"::ctx.cpath,B(x1 >= x2)
+      | [v1;v2]  ->  type_error v1 v2; "z"::ctx.cpath,U 
       | _  -> assert false
   in
   { ctx with s = sadd ctx.s vn vv }
@@ -160,6 +191,7 @@ let lustre_and ctx =
     match ([get_val "x" ctx; get_val "y" ctx]) with
       | [B x1; B x2] -> "z"::ctx.cpath,B(x1 && x2)
       | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [v1;v2]  ->  type_error2 v1 v2 "bool";"z"::ctx.cpath,U
       | _  -> assert false
   in
   { ctx with s = sadd ctx.s vn vv }
@@ -169,6 +201,7 @@ let lustre_xor ctx =
     match ([get_val "x" ctx; get_val "y" ctx]) with
       | [B x1; B x2] -> "z"::ctx.cpath,B(x1 <> x2)
       | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [v1;v2]  ->  type_error2 v1 v2 "bool";"z"::ctx.cpath,U
       | _  -> assert false
   in
   { ctx with s = sadd ctx.s vn vv }
@@ -189,6 +222,7 @@ let lustre_or  ctx =
     match ([get_val "x" ctx; get_val "y" ctx]) with
       | [B x1; B x2] -> "z"::ctx.cpath,B(x1 || x2)
       | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [v1;v2]  ->  type_error2 v1 v2 "bool";"z"::ctx.cpath,U
       | _  -> assert false
   in
   { ctx with s = sadd ctx.s vn vv }
@@ -199,6 +233,7 @@ let lustre_impl ctx =
     match ([get_val "x" ctx; get_val "y" ctx]) with
       | [B x1; B x2] -> "z"::ctx.cpath,B(not x1 or x2)
       | [U; _] | [_;U] -> "z"::ctx.cpath,U
+      | [v1;v2]  ->  type_error2 v1 v2 "bool";"z"::ctx.cpath,U
       | _  -> assert false
   in
   { ctx with s = sadd ctx.s vn vv }
@@ -208,6 +243,7 @@ let lustre_if ctx =
     match ([get_val "c" ctx; get_val "xt" ctx; get_val "xe" ctx]) with
       | [B c; v1; v2]  -> "z"::ctx.cpath, if c then v1 else v2
       | [U;_; _] | [_;U;U] -> "z"::ctx.cpath,U
+      | [v1;v2]  ->  type_error v1 v2; "z"::ctx.cpath,U
       | _  -> assert false
   in
   { ctx with s = sadd ctx.s vn vv }
diff --git a/src/socPredef.ml b/src/socPredef.ml
index 03f988b7ac198b19457e2809f8bf0c50300cbdbe..279d28806753a142ea91f03f4d5db6a31b33aa28 100644
--- a/src/socPredef.ml
+++ b/src/socPredef.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 04/06/2013 (at 17:48) by Erwan Jahier> *)
+(* Time-stamp: <modified the 16/05/2014 (at 14:50) by Erwan Jahier> *)
 
 (** Synchronous Object Code for Predefined operators. *)
 
@@ -194,14 +194,18 @@ let of_soc_key : Soc.key -> Soc.t =
               lxm     = Lxm.dummy "predef soc";
               idx_ins  = [];
               idx_outs = [0];
-              impl    = Gaol([pre_mem],[Call([Var(vout)], Assign, [Var(pre_mem)])]);
+(*               impl    = Predef; *)
+               impl    = Gaol([pre_mem],[Call([Var(vout)], Assign, [Var(pre_mem)])]); 
+(*               impl    = Gaol([pre_mem],[Call([Var(vout)], Assign, [Var(pre_mem)])]); *)
             };
             {
               name    = "set";  
               lxm     = Lxm.dummy "predef soc";
               idx_ins  = [0];
               idx_outs = [];
-              impl    = Gaol([pre_mem],[Call([Var(pre_mem)], Assign, [Var(v1)])]);
+(*               impl    = Predef; *)
+               impl    = Gaol([pre_mem],[Call([Var(pre_mem)], Assign, [Var(v1)])]); 
+(*               impl    = Gaol([pre_mem],[Call([Var(pre_mem)], Assign, [Var(v1)])]); *)
             };
           ];
           precedences = ["set", ["get"]];
diff --git a/src/socUtils.ml b/src/socUtils.ml
index e68c457b0c7daf208c9f597ef74467fcf9ee4bf0..f7a0f3ecf04f825cd94e85da93253686f1adf23c 100644
--- a/src/socUtils.ml
+++ b/src/socUtils.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 04/06/2013 (at 17:47) by Erwan Jahier> *)
+(** Time-stamp: <modified the 16/05/2014 (at 11:21) by Erwan Jahier> *)
 
 
 open Soc
@@ -90,7 +90,8 @@ let string_of_soc_key: (Soc.key -> string) = fun v ->
   call_fun_ff (string_of_soc_key_ff v)
 
 (* Opération *)
-let string_of_operation_ff: (atomic_operation -> Format.formatter -> unit) = fun v ff -> match v with
+let string_of_operation_ff: (atomic_operation -> Format.formatter -> unit) = 
+  fun v ff -> match v with
   | Assign          -> () (* On suppose qu'il est déjà affiché dans string_of_gao *)
   | Method((n, sk),sname) -> fprintf ff "%s.%s" n sname
   | Procedure(proc)    -> fprintf ff "%s" (string_of_soc_key proc)
diff --git a/src/socUtils.mli b/src/socUtils.mli
index 7b81391c564773df3817a1210dbcb89431a07f59..71ab4b1ac84b680cb5544f6c8b4003e653e60e27 100644
--- a/src/socUtils.mli
+++ b/src/socUtils.mli
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 26/04/2013 (at 09:43) by Erwan Jahier> *)
+(** Time-stamp: <modified the 04/04/2014 (at 14:45) by Erwan Jahier> *)
 
 
 (** Donne toute les méthodes d'un composant. *)
@@ -20,18 +20,18 @@ val string_of_profile             : Soc.var list * Soc.var list -> string
 val string_interface_of_soc       : Soc.t -> string
 val string_of_soc                 : Soc.t -> string
 
-val string_of_type_ref_ff         : Data.t        -> Format.formatter -> unit
 val string_of_soc_key_ff          : Soc.key  -> Format.formatter -> unit
-val string_of_var_ff              : Soc.var            -> Format.formatter -> unit
+val string_of_type_ref_ff         : Data.t   -> Format.formatter -> unit
+val string_of_var_ff              : Soc.var  -> Format.formatter -> unit
 val string_of_operation_ff        : Soc.atomic_operation      -> Format.formatter -> unit
 val string_of_filter_ff           : Soc.var_expr         -> Format.formatter -> unit
-val string_of_gao_ff              : Soc.gao           -> Format.formatter -> unit
-val string_of_method_ff           : Soc.t      -> Soc.step_method -> Format.formatter -> unit
-val string_interface_of_method_ff : Soc.t      -> Soc.step_method -> Format.formatter -> unit
+val string_of_gao_ff              : Soc.gao  -> Format.formatter -> unit
+val string_of_method_ff           : Soc.t    -> Soc.step_method -> Format.formatter -> unit
+val string_interface_of_method_ff : Soc.t    -> Soc.step_method -> Format.formatter -> unit
 val string_of_precedence_ff       : string * string list   -> Format.formatter -> unit
 val string_of_profile_ff          : Soc.var list * Soc.var list    -> Format.formatter -> unit
-val string_interface_of_soc_ff    : Soc.t           -> Format.formatter -> unit
-val string_of_soc_ff              : Soc.t              -> Format.formatter -> unit
+val string_interface_of_soc_ff    : Soc.t -> Format.formatter -> unit
+val string_of_soc_ff              : Soc.t -> Format.formatter -> unit
 
 
 (** [output header_flag pack_name] dumps the soc list into a
diff --git a/src/toposort.ml b/src/toposort.ml
deleted file mode 100644
index d1a72796edbdc504943425af05010d6538c8b6e3..0000000000000000000000000000000000000000
--- a/src/toposort.ml
+++ /dev/null
@@ -1,39 +0,0 @@
-(** See documentation in the .mli *)
-
-
-exception DependencyCycle of string * string list
-
-(** Do the actual topological sort.
-
-    This function takes several parameters :
-    @param acc this is the accumulator, which contains already sorted values
-    @param in_process contains values which are currently being processed (to detect cyclic dependencies)
-    @param to_sort this is the list to sort
-    @param dep_fun gives dependencies for a specific value from to_sort list *)
-let rec topological_sort_acc: 
-    ('a -> string) -> 'a list -> 'a list -> 'a list -> ('a -> 'a list) -> 'a list = 
-  fun a2str acc in_process to_sort dep_fun -> match to_sort with
-    | [] -> acc
-    | x::tl ->
-        if List.mem x in_process then
-          (* If this element is already marked as being processed, it must be
-             a cyclic dependency *)
-          raise (DependencyCycle(a2str x, List.map a2str in_process))
-
-        else if List.mem x acc then
-          (* If the element is already in the accumulator, it means
-             we've already sorted it. *)
-          topological_sort_acc a2str acc in_process tl dep_fun
-
-        else
-          (* Else, we compute the dependencies for this value *)
-          let dependencies = dep_fun x in
-          let dependencies_sorted =
-            topological_sort_acc a2str acc (x :: in_process) dependencies dep_fun
-          in
-          let acc = dependencies_sorted @ [x] in
-            topological_sort_acc a2str acc in_process tl dep_fun
-                          
-
-let f: ('a -> string) -> 'a list -> ('a -> 'a list) -> 'a list =
-  fun a2str to_sort dep_fun -> topological_sort_acc a2str [] [] to_sort dep_fun
diff --git a/src/toposort.mli b/src/toposort.mli
deleted file mode 100644
index c517d2f03529b2928fd824f08b7b9fe750517e63..0000000000000000000000000000000000000000
--- a/src/toposort.mli
+++ /dev/null
@@ -1,14 +0,0 @@
-(** This module contains various tools used thorough the compiler. *)
-
-(** [topolocical_sort printer l dep_fun] does a topological sort on
-    the list [l], using the function [f] to find dependency in some
-    user-specific structure for each elements of [l], and recursively
-    for each dependencies found.
-    
-    The dependency structure is unknown to this function, since [dep_fun] is
-    the interface between each other.
-    
-    Throws a DependencyCycle exception a if cyclic dependency is found. *)
-val f : ('a -> string) -> 'a list -> ('a -> 'a list) -> 'a list
-
-exception DependencyCycle of string * string list
diff --git a/src/unifyClock.ml b/src/unifyClock.ml
index 300fb5a0063d7b4ed2641f010bfa57d9c383ef86..291cc04fb6a9c130131e38b03dca7f380e554646 100644
--- a/src/unifyClock.ml
+++ b/src/unifyClock.ml
@@ -1,6 +1,22 @@
-(* Time-stamp: <modified the 04/06/2013 (at 15:00) by Erwan Jahier> *)
+(* Time-stamp: <modified the 25/09/2013 (at 09:35) by Erwan Jahier> *)
 
+(* XXX a revoir et faire comme expliqué ici :
+http://www.cs.cornell.edu/courses/cs3110/2011sp/lectures/lec26-type-inference/type-inference.htm
 
+   C'est peu ou prou, ce que je fais, mais bon, j'ai plus trop confiance
+   dans ce module, et il mériterait un bon nettoyage.
+
+   Un truc louche, c'est que je pretend utiliser de l'unification
+   pour vérifier les appels de noeud, en cherchant à unifier les
+   parametres et les arguments. Mais, me semble-t'il, cette
+   vérification est orientée (ca ne marche que si on fait "f par arg"
+   (ou le contraire). Et cette dissymétrie n'apparait ni dans le mli,
+   ni dans le terme unify.
+
+   Par ailleur, subst devrait s'appeler env (en reminiscence des
+   environnements de types).
+
+*)
 open LicDump
 open Printf
 open Lxm
@@ -215,11 +231,20 @@ let rec (apply_subst_val_exp : subst -> Lic.val_exp -> Lic.val_exp) =
 let is_clock_var = function 
   | On(_) | BaseLic -> false | ClockVar _ -> true
   
-(* exported *)
+(* exported 
+
+It's not really an unification algo, but rather a « compatibility checking ».
+By compatibility, I mean that, 
+- c1 = c2
+- c1 or c2 are clock var
+- if c1=On(id1,cc1) and c2=On(id2,cc2) then
+   cc1 and cc1[id1/id2] are compatible
+*)
+
 let (f : Lxm.t -> subst -> Lic.clock -> Lic.clock -> subst) =
-  fun lxm (s1,s2) ci1 ci2 -> 
-    let ci1 = apply_subst (s1,s2) ci1 in
-    let ci2 = apply_subst (s1,s2) ci2 in
+  fun lxm (s1,s2) arg par -> 
+    let arg = apply_subst (s1,s2) arg in
+    let par = apply_subst (s1,s2) par in
     let rec aux (s1,s2) (c1,c2) = 
       match (c1,c2) with
 	     | On(v,clk), BaseLic
@@ -236,44 +261,48 @@ let (f : Lxm.t -> subst -> Lic.clock -> Lic.clock -> subst) =
 	     | ClockVar i, ci
 	     | ci, ClockVar i -> s1, add_subst2 i ci s2
     in
-    let s = aux (s1,s2) (ci1,ci2) in
-    let unifiable =
-      (* Two clocks are unifiable iff, once s have been applied, they are
+    let s = aux (s1,s2) (arg,par) in
+    let compatible =
+      (* Two clocks are compatible if, once s have been applied, they are
          equal, or one of them is a clock variable *)
-      let ci1 = apply_subst s ci1
-      and ci2 = apply_subst s ci2 
-      in
-      ci1 = ci2 || is_clock_var ci1 || is_clock_var ci2
+      let par = apply_subst s par
+      and arg = apply_subst s arg in
+      arg = par || is_clock_var arg || is_clock_var par
     in
-    if unifiable then (
+    if compatible then (
  	   if Verbose.level() > 2 then
 	   Verbose.print_string (
-	     "# clock checking: unifying '" ^ (ci2str ci1) ^
-	       "' and '" ^ (ci2str ci2) ^ "' ->  "^ (subst_to_string s) ^"\n");
+	     "# clock checking: unifying '" ^ (ci2str arg) ^
+	       "' and '" ^ (ci2str par) ^ "' ->  "^ (subst_to_string s) ^"\n");
 	   flush stdout;
 	   s
     ) 
     else
 	   let msg =  
-	     ("\n*** clock error: The two following clocks are not unifiable:\n***\t" ^ 
-	         (ci2str ci1) ^ "\n***\t" ^ 
-	         (ci2str ci2) ^ "\n")
+	     ("\n*** clock error: The two following clocks are not compatible:\n***\t" ^ 
+	         (ci2str arg) ^ "\n***\t" ^ 
+	         (ci2str par) ^ "\n")
 	   in
 	   raise(Compile_error(lxm, msg))
 
+
 (* exported *)
 let (list : Lxm.t -> Lic.clock list -> subst -> Lic.clock * subst) =
   fun lxm cl s -> 
     List.fold_left 
       (fun (clk,s) clk2 -> 
-	 let s = f lxm s clk clk2 in
-	 let clk = apply_subst s clk in (* necessary? *)
-	   (clk,s)
+	     let s = f lxm s clk clk2 in
+	     let clk = apply_subst s clk in (* necessary? *)
+	     (clk,s)
       )
       (List.hd cl, s)
       (List.tl cl)
+
+
+
 (******************************************************************************)
 (* exported *)
+(* This function is in this module to avoid to export new_clock_var. A good idea? *)
 let rec (const_to_val_eff: Lxm.t -> bool -> subst -> const -> subst * val_exp) = 
   fun lxm expand_const s const -> 
     let mk_by_pos_op_arg by_pos_op_eff arg =
@@ -284,6 +313,7 @@ let rec (const_to_val_eff: Lxm.t -> bool -> subst -> const -> subst * val_exp) =
             (s,clk::clks)
           in
           List.fold_left f (s,[]) cl
+            
 	     | c -> let s, clk = new_clock_var s in s, [clk]
       in
       { ve_core = CallByPosLic(flagit by_pos_op_eff lxm, arg) ; 
diff --git a/src/unifyClock.mli b/src/unifyClock.mli
index 44794cac3a37990ff418c2c9161b542304bcb6b9..64b44f03e5c7a53f00e421b4cef7dbf6c099c3e6 100644
--- a/src/unifyClock.mli
+++ b/src/unifyClock.mli
@@ -1,11 +1,12 @@
-(* Time-stamp: <modified the 07/02/2013 (at 09:41) by Erwan Jahier> *)
+(* Time-stamp: <modified the 25/09/2013 (at 08:35) by Erwan Jahier> *)
 
 (** Sub module of EvalClock that defines clock-checking utilities.
 
    We have Two kind of substitutions. 
 
-   - subst1 is used to deal with the clock name binding, to relate node
-   parameters and node arguments.
+    - subst1 is used to deal with the clock name binding, to relate
+    node parameters and node arguments (to check clock equality up to
+    alpha conversion).
 
     - subst2 is used to deal with polymorphic clock variables. Indeed,
     constant clock is intrinsically polymorphic. Hence, when clocking
@@ -18,7 +19,7 @@
     mean I need to invent a fake var_info_eff, but it would make the
     whole more homogeous.
 
-    XXX Make it abstract?
+    XXX Make subst abstract?
 *)
 
 type subst1 = (Ident.t * Ident.t) list
@@ -39,10 +40,32 @@ val add_link2 : int -> int -> subst2 -> subst2
 
 val apply_subst_val_exp : subst -> Lic.val_exp -> Lic.val_exp
 
-(** Raises a Compile_error is the 2 Lic.clock are not unifiable *)
+(** [f lxm s clk_arg clk_par] Raises a Compile_error is the 2
+    Lic.clock [clk_arg] and [clk_par] are not compatible. The
+    accumulated substitution s is augmented with eventual clock
+    variable instanciation.
+
+    For instance, when clock checking the expression 'toto(a,b)', if
+    toto has the clock profile "alpha x alpha -> alpha", and the args
+    'a' and 'b' are on clock 'clk', the expression 'toto(a,b)' should
+    be on clk too. We can check that later using the association
+    "alpha->clk" is added in the returned substitution.
+
+    XXX UnifyClock.f is not a good name actually. CheckClock.f would
+    better reflect the reality
+
+*)
 val f : Lxm.t -> subst -> Lic.clock -> Lic.clock -> subst
 val list : Lxm.t -> Lic.clock list -> subst -> Lic.clock * subst
 
 val new_clock_var : subst -> subst * Lic.clock
 
+(** Transform a const into a val_exp 
+    [const_to_val_eff lxm flag s const]
+    - flag tells if abstract const should be expanded 
+    - s is used to provide a clock to val_exp (actually, this is why
+    this function is in this module, but it's a weird reason).
+    
+    
+*)
 val const_to_val_eff: Lxm.t -> bool -> subst -> Lic.const -> subst * Lic.val_exp  
diff --git a/test/Makefile b/test/Makefile
index 4da70c5085ad5bb3076e865665d6ac7ae12799cc..15340e0bac12c9d60a31255045a9d442cd391797 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -1,26 +1,35 @@
 
-test: remote-runtest lus2lic.diff lus2lic.time
+test: remote-runtest lus2lic.time lus2lic.diff 
+xxx: lus2lic.time lus2lic.diff 
 
-# to perform the test on the local machine rather than on triglav
+TEST_MACHINE=grivola
+# This fixes sporadic memory errors I get when running tests
+OCAMLRUNPARAM=s=1M,i=32M,o=150
+# to perform the test on the local machine rather than on $(TEST_MACHINE)
 ltest: runtest lus2lic.diff lus2lic.time
 
+
 testdir=$(shell pwd)
 
 # XXX remote test should be done using --target_board, but i've failed to make it working ...
 remote-runtest: 
-#	runtest --all --tool lus2lic --target_board=$(testdir)/board_triglav.exp  || true
-	ssh triglav "cd  $(testdir) ; runtest --all --tool lus2lic"  || true
+#	runtest --all --tool lus2lic --target_board=$(testdir)/board_$(TEST_MACHINE).exp  || true
+	ssh $(TEST_MACHINE) "cd  $(testdir) ; export OCAMLRUNPARAM=o=200 ; runtest --all --tool lus2lic"  || true
 	cd $(testdir)
 
 runtest: 
-	~/bin/runtest --all --tool lus2lic  || true
+	runtest --all --tool lus2lic  || true
 
 
 .PHONY:lus2lic.diff lus2lic.time
 lus2lic.diff:
+	cat lus2lic.log | grep  -v "Process " | grep -v "Killing process " | \
+		grep -v "simec_trap " | grep -v " Version "  > lus2lic2.log
+	mv lus2lic2.log lus2lic.log
 	diff -U 1 -I "Test Run By" -I "testcase \./lus2lic" -I "runtest completed at" \
-	  lus2lic.log.ref lus2lic.log > lus2lic.diff || \
-	(ls -l lus2lic.diff; exit 1)
+	 -I "This is Lurette Version "  \
+	lus2lic.log.ref lus2lic.log  > lus2lic.diff || \
+	(cat lus2lic.diff; echo "make utest if it is fine"; exit 1)
 
 time:lus2lic.time
 lus2lic.time:
@@ -33,12 +42,13 @@ utest:
 	cp lus2lic.log lus2lic.log.ref
 
 nonreg:
-	ssh triglav "cd  $(testdir) ; runtest --all --tool lus2lic  --ignore progression.exp" || true
+	ssh $(TEST_MACHINE) "cd  $(testdir) ; runtest --all --tool lus2lic  --ignore progression.exp" || true
 
 prog:
-	ssh triglav "cd  $(testdir) ; runtest --all 	--tool lus2lic --ignore non-reg.exp" || true
+	ssh $(TEST_MACHINE) "cd  $(testdir) ; runtest --all 	--tool lus2lic --ignore non-reg.exp" || true
 
 clean:
-	rm -f *.ec *.lus *.lut *.cov *.gp *.rif *.out 
+	rm -f *.ec *.lus *.lut *.cov *.gp *.rif *.out *.cov
+
 
 
diff --git a/test/lus2lic b/test/lus2lic
index 793bff7b83c2116dafc27304f525ec5125d5b51d..55b000a54966b2a666f7679c6eeb4201f0abed8a 120000
--- a/test/lus2lic
+++ b/test/lus2lic
@@ -1 +1 @@
-../objlinux/lus2lic
\ No newline at end of file
+../main.native
\ No newline at end of file
diff --git a/test/lus2lic.log.ref b/test/lus2lic.log.ref
index ed6b3eae76ea73bd4413ba79bbfa7e35b30d1b7a..67366a051b010d0b2a4822d490fa93aac89e7e6e 100644
--- a/test/lus2lic.log.ref
+++ b/test/lus2lic.log.ref
@@ -1,4 +1,4 @@
-Test Run By jahier on Wed Apr  3 15:41:46 2013
+Test Run By jahier on Wed May 21 16:17:37 2014
 Native configuration is i686-pc-linux-gnu
 
 		=== lus2lic tests ===
@@ -17,824 +17,3972 @@ spawn ./lus2lic -o /tmp/nc6.lic should_work/nc6.lus
 PASS: ./lus2lic {-o /tmp/nc6.lic should_work/nc6.lus}
 spawn ./lus2lic -ec -o /tmp/nc6.ec should_work/nc6.lus
 PASS: ./lus2lic {-ec -o /tmp/nc6.ec should_work/nc6.lus}
-spawn ./ec2c -o /tmp/nc6.c /tmp/nc6.ec
-PASS: ./ec2c {-o /tmp/nc6.c /tmp/nc6.ec}
+spawn ./myec2c -o /tmp/nc6.c /tmp/nc6.ec
+PASS: ./myec2c {-o /tmp/nc6.c /tmp/nc6.ec}
+spawn ../utils/test_lus2lic_no_node should_work/nc6.lus
++ ./lus2lic should_work/nc6.lus -n nc6 --gen-autotest -np
+_nc6_env.lut generated.
+_nc6_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/nc6.lus
++ ./lus2lic should_work/nc6.lus -n nc6 -ec -o nc6.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nc6.ec:nc6 -rp env:lutin:_nc6_env.lut -rp oracle:v6:_nc6_oracle.lus:nc6_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/nc6.lus
 spawn ./lus2lic -o /tmp/argos.lic should_work/argos.lus
 PASS: ./lus2lic {-o /tmp/argos.lic should_work/argos.lus}
 spawn ./lus2lic -ec -o /tmp/argos.ec should_work/argos.lus
 PASS: ./lus2lic {-ec -o /tmp/argos.ec should_work/argos.lus}
-spawn ./ec2c -o /tmp/argos.c /tmp/argos.ec
-PASS: ./ec2c {-o /tmp/argos.c /tmp/argos.ec}
+spawn ./myec2c -o /tmp/argos.c /tmp/argos.ec
+PASS: ./myec2c {-o /tmp/argos.c /tmp/argos.ec}
+spawn ../utils/test_lus2lic_no_node should_work/argos.lus
++ ./lus2lic should_work/argos.lus -n argos --gen-autotest -np
+_argos_env.lut generated.
+_argos_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/argos.lus
++ ./lus2lic should_work/argos.lus -n argos -ec -o argos.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:argos.ec:argos -rp env:lutin:_argos_env.lut -rp oracle:v6:_argos_oracle.lus:argos_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/argos.lus
 spawn ./lus2lic -o /tmp/ck5.lic should_work/ck5.lus
 PASS: ./lus2lic {-o /tmp/ck5.lic should_work/ck5.lus}
 spawn ./lus2lic -ec -o /tmp/ck5.ec should_work/ck5.lus
 PASS: ./lus2lic {-ec -o /tmp/ck5.ec should_work/ck5.lus}
-spawn ./ec2c -o /tmp/ck5.c /tmp/ck5.ec
-PASS: ./ec2c {-o /tmp/ck5.c /tmp/ck5.ec}
-spawn ./lus2lic -o /tmp/fby.lic should_work/fby.lus
-PASS: ./lus2lic {-o /tmp/fby.lic should_work/fby.lus}
-spawn ./lus2lic -ec -o /tmp/fby.ec should_work/fby.lus
-PASS: ./lus2lic {-ec -o /tmp/fby.ec should_work/fby.lus}
-spawn ./ec2c -o /tmp/fby.c /tmp/fby.ec
-PASS: ./ec2c {-o /tmp/fby.c /tmp/fby.ec}
-spawn ./lus2lic -o /tmp/assertion.lic should_work/assertion.lus
-PASS: ./lus2lic {-o /tmp/assertion.lic should_work/assertion.lus}
-spawn ./lus2lic -ec -o /tmp/assertion.ec should_work/assertion.lus
-PASS: ./lus2lic {-ec -o /tmp/assertion.ec should_work/assertion.lus}
-spawn ./ec2c -o /tmp/assertion.c /tmp/assertion.ec
-PASS: ./ec2c {-o /tmp/assertion.c /tmp/assertion.ec}
+spawn ./myec2c -o /tmp/ck5.c /tmp/ck5.ec
+PASS: ./myec2c {-o /tmp/ck5.c /tmp/ck5.ec}
+spawn ../utils/test_lus2lic_no_node should_work/ck5.lus
++ ./lus2lic should_work/ck5.lus -n ck5 --gen-autotest -np
+_ck5_env.lut generated.
+_ck5_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/ck5.lus
++ ./lus2lic should_work/ck5.lus -n ck5 -ec -o ck5.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ck5.ec:ck5 -rp env:lutin:_ck5_env.lut -rp oracle:v6:_ck5_oracle.lus:ck5_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/ck5.lus
 spawn ./lus2lic -o /tmp/normal.lic should_work/normal.lus
 PASS: ./lus2lic {-o /tmp/normal.lic should_work/normal.lus}
 spawn ./lus2lic -ec -o /tmp/normal.ec should_work/normal.lus
 PASS: ./lus2lic {-ec -o /tmp/normal.ec should_work/normal.lus}
-spawn ./ec2c -o /tmp/normal.c /tmp/normal.ec
-PASS: ./ec2c {-o /tmp/normal.c /tmp/normal.ec}
+spawn ./myec2c -o /tmp/normal.c /tmp/normal.ec
+PASS: ./myec2c {-o /tmp/normal.c /tmp/normal.ec}
+spawn ../utils/test_lus2lic_no_node should_work/normal.lus
++ ./lus2lic should_work/normal.lus -n normal --gen-autotest -np
+_normal_env.lut generated.
+_normal_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/normal.lus
++ ./lus2lic should_work/normal.lus -n normal -ec -o normal.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:normal.ec:normal -rp env:lutin:_normal_env.lut -rp oracle:v6:_normal_oracle.lus:normal_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/normal.lus
 spawn ./lus2lic -o /tmp/nodeparam.lic should_work/nodeparam.lus
 PASS: ./lus2lic {-o /tmp/nodeparam.lic should_work/nodeparam.lus}
 spawn ./lus2lic -ec -o /tmp/nodeparam.ec should_work/nodeparam.lus
 PASS: ./lus2lic {-ec -o /tmp/nodeparam.ec should_work/nodeparam.lus}
-spawn ./ec2c -o /tmp/nodeparam.c /tmp/nodeparam.ec
-PASS: ./ec2c {-o /tmp/nodeparam.c /tmp/nodeparam.ec}
+spawn ./myec2c -o /tmp/nodeparam.c /tmp/nodeparam.ec
+PASS: ./myec2c {-o /tmp/nodeparam.c /tmp/nodeparam.ec}
+spawn ../utils/test_lus2lic_no_node should_work/nodeparam.lus
++ ./lus2lic should_work/nodeparam.lus -n nodeparam --gen-autotest -np
+_nodeparam_env.lut generated.
+_nodeparam_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/nodeparam.lus
++ ./lus2lic should_work/nodeparam.lus -n nodeparam -ec -o nodeparam.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nodeparam.ec:nodeparam -rp env:lutin:_nodeparam_env.lut -rp oracle:v6:_nodeparam_oracle.lus:nodeparam_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/nodeparam.lus
 spawn ./lus2lic -o /tmp/enum0.lic should_work/enum0.lus
 PASS: ./lus2lic {-o /tmp/enum0.lic should_work/enum0.lus}
 spawn ./lus2lic -ec -o /tmp/enum0.ec should_work/enum0.lus
 PASS: ./lus2lic {-ec -o /tmp/enum0.ec should_work/enum0.lus}
-spawn ./ec2c -o /tmp/enum0.c /tmp/enum0.ec
-PASS: ./ec2c {-o /tmp/enum0.c /tmp/enum0.ec}
+spawn ./myec2c -o /tmp/enum0.c /tmp/enum0.ec
+PASS: ./myec2c {-o /tmp/enum0.c /tmp/enum0.ec}
+spawn ../utils/test_lus2lic_no_node should_work/enum0.lus
++ ./lus2lic should_work/enum0.lus -n enum0 --gen-autotest -np
+_enum0_env.lut generated.
+_enum0_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/enum0.lus
++ ./lus2lic should_work/enum0.lus -n enum0 -ec -o enum0.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:enum0.ec:enum0 -rp env:lutin:_enum0_env.lut -rp oracle:v6:_enum0_oracle.lus:enum0_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Failure("color1: unsupported type.\n")
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/enum0.lus
 spawn ./lus2lic -o /tmp/ck6.lic should_work/ck6.lus
 PASS: ./lus2lic {-o /tmp/ck6.lic should_work/ck6.lus}
 spawn ./lus2lic -ec -o /tmp/ck6.ec should_work/ck6.lus
 PASS: ./lus2lic {-ec -o /tmp/ck6.ec should_work/ck6.lus}
-spawn ./ec2c -o /tmp/ck6.c /tmp/ck6.ec
-PASS: ./ec2c {-o /tmp/ck6.c /tmp/ck6.ec}
+spawn ./myec2c -o /tmp/ck6.c /tmp/ck6.ec
+PASS: ./myec2c {-o /tmp/ck6.c /tmp/ck6.ec}
+spawn ../utils/test_lus2lic_no_node should_work/ck6.lus
++ ./lus2lic should_work/ck6.lus -n ck6 --gen-autotest -np
+*** The soc of ck6::p is not defined. FINISH ME! 
+Extern node not yet supported, sorry
+
+*** oops: lus2lic internal error
+	File "src/lic2soc.ml", line 897, column 14
+*** when compiling lustre program should_work/ck6.lus
+
+*** You migth want to sent a bug report to jahier@imag.fr
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/ck6.lus
 spawn ./lus2lic -o /tmp/Gyroscope2.lic should_work/Gyroscope2.lus
 PASS: ./lus2lic {-o /tmp/Gyroscope2.lic should_work/Gyroscope2.lus}
 spawn ./lus2lic -ec -o /tmp/Gyroscope2.ec should_work/Gyroscope2.lus
 PASS: ./lus2lic {-ec -o /tmp/Gyroscope2.ec should_work/Gyroscope2.lus}
-spawn ./ec2c -o /tmp/Gyroscope2.c /tmp/Gyroscope2.ec
-PASS: ./ec2c {-o /tmp/Gyroscope2.c /tmp/Gyroscope2.ec}
+spawn ./myec2c -o /tmp/Gyroscope2.c /tmp/Gyroscope2.ec
+PASS: ./myec2c {-o /tmp/Gyroscope2.c /tmp/Gyroscope2.ec}
+spawn ../utils/test_lus2lic_no_node should_work/Gyroscope2.lus
++ ./lus2lic should_work/Gyroscope2.lus -n Gyroscope2 --gen-autotest -np
+_Gyroscope2_env.lut generated.
+_Gyroscope2_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/Gyroscope2.lus
++ ./lus2lic should_work/Gyroscope2.lus -n Gyroscope2 -ec -o Gyroscope2.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:Gyroscope2.ec:Gyroscope2 -rp env:lutin:_Gyroscope2_env.lut -rp oracle:v6:_Gyroscope2_oracle.lus:Gyroscope2_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+#ERROR: Output takes on nil
+RifIO.Bye
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/Gyroscope2.lus
 spawn ./lus2lic -o /tmp/mouse2.lic should_work/mouse2.lus
 PASS: ./lus2lic {-o /tmp/mouse2.lic should_work/mouse2.lus}
 spawn ./lus2lic -ec -o /tmp/mouse2.ec should_work/mouse2.lus
 PASS: ./lus2lic {-ec -o /tmp/mouse2.ec should_work/mouse2.lus}
-spawn ./ec2c -o /tmp/mouse2.c /tmp/mouse2.ec
-PASS: ./ec2c {-o /tmp/mouse2.c /tmp/mouse2.ec}
+spawn ./myec2c -o /tmp/mouse2.c /tmp/mouse2.ec
+PASS: ./myec2c {-o /tmp/mouse2.c /tmp/mouse2.ec}
+spawn ../utils/test_lus2lic_no_node should_work/mouse2.lus
++ ./lus2lic should_work/mouse2.lus -n mouse2 --gen-autotest -np
+_mouse2_env.lut generated.
+_mouse2_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/mouse2.lus
++ ./lus2lic should_work/mouse2.lus -n mouse2 -ec -o mouse2.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mouse2.ec:mouse2 -rp env:lutin:_mouse2_env.lut -rp oracle:v6:_mouse2_oracle.lus:mouse2_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/mouse2.lus
+spawn ./lus2lic -o /tmp/modes3x2-v3.lic should_work/modes3x2-v3.lus
+PASS: ./lus2lic {-o /tmp/modes3x2-v3.lic should_work/modes3x2-v3.lus}
+spawn ./lus2lic -ec -o /tmp/modes3x2-v3.ec should_work/modes3x2-v3.lus
+PASS: ./lus2lic {-ec -o /tmp/modes3x2-v3.ec should_work/modes3x2-v3.lus}
+spawn ./myec2c -o /tmp/modes3x2-v3.c /tmp/modes3x2-v3.ec
+syntax error     - at line 10
+syntax errors...
+FAIL: Try ec2c on the result: ./myec2c {-o /tmp/modes3x2-v3.c /tmp/modes3x2-v3.ec}
 spawn ./lus2lic -o /tmp/dep.lic should_work/dep.lus
 PASS: ./lus2lic {-o /tmp/dep.lic should_work/dep.lus}
 spawn ./lus2lic -ec -o /tmp/dep.ec should_work/dep.lus
 PASS: ./lus2lic {-ec -o /tmp/dep.ec should_work/dep.lus}
-spawn ./ec2c -o /tmp/dep.c /tmp/dep.ec
-PASS: ./ec2c {-o /tmp/dep.c /tmp/dep.ec}
+spawn ./myec2c -o /tmp/dep.c /tmp/dep.ec
+PASS: ./myec2c {-o /tmp/dep.c /tmp/dep.ec}
+spawn ../utils/test_lus2lic_no_node should_work/dep.lus
++ ./lus2lic should_work/dep.lus -n dep --gen-autotest -np
+_dep_env.lut generated.
+_dep_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/dep.lus
++ ./lus2lic should_work/dep.lus -n dep -ec -o dep.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:dep.ec:dep -rp env:lutin:_dep_env.lut -rp oracle:v6:_dep_oracle.lus:dep_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/dep.lus
 spawn ./lus2lic -o /tmp/ELMU.lic should_work/ELMU.lus
 PASS: ./lus2lic {-o /tmp/ELMU.lic should_work/ELMU.lus}
 spawn ./lus2lic -ec -o /tmp/ELMU.ec should_work/ELMU.lus
 PASS: ./lus2lic {-ec -o /tmp/ELMU.ec should_work/ELMU.lus}
-spawn ./ec2c -o /tmp/ELMU.c /tmp/ELMU.ec
-PASS: ./ec2c {-o /tmp/ELMU.c /tmp/ELMU.ec}
+spawn ./myec2c -o /tmp/ELMU.c /tmp/ELMU.ec
+PASS: ./myec2c {-o /tmp/ELMU.c /tmp/ELMU.ec}
+spawn ../utils/test_lus2lic_no_node should_work/ELMU.lus
++ ./lus2lic should_work/ELMU.lus -n ELMU --gen-autotest -np
+_ELMU_env.lut generated.
+_ELMU_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/ELMU.lus
++ ./lus2lic should_work/ELMU.lus -n ELMU -ec -o ELMU.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ELMU.ec:ELMU -rp env:lutin:_ELMU_env.lut -rp oracle:v6:_ELMU_oracle.lus:ELMU_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/ELMU.lus
 spawn ./lus2lic -o /tmp/testPilote.lic should_work/testPilote.lus
 PASS: ./lus2lic {-o /tmp/testPilote.lic should_work/testPilote.lus}
 spawn ./lus2lic -ec -o /tmp/testPilote.ec should_work/testPilote.lus
 PASS: ./lus2lic {-ec -o /tmp/testPilote.ec should_work/testPilote.lus}
-spawn ./ec2c -o /tmp/testPilote.c /tmp/testPilote.ec
-PASS: ./ec2c {-o /tmp/testPilote.c /tmp/testPilote.ec}
+spawn ./myec2c -o /tmp/testPilote.c /tmp/testPilote.ec
+PASS: ./myec2c {-o /tmp/testPilote.c /tmp/testPilote.ec}
+spawn ../utils/test_lus2lic_no_node should_work/testPilote.lus
++ ./lus2lic should_work/testPilote.lus -n testPilote --gen-autotest -np
+_testPilote_env.lut generated.
+_testPilote_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/testPilote.lus
++ ./lus2lic should_work/testPilote.lus -n testPilote -ec -o testPilote.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:testPilote.ec:testPilote -rp env:lutin:_testPilote_env.lut -rp oracle:v6:_testPilote_oracle.lus:testPilote_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Parsing.Parse_error
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/testPilote.lus
 spawn ./lus2lic -o /tmp/redIf.lic should_work/redIf.lus
 PASS: ./lus2lic {-o /tmp/redIf.lic should_work/redIf.lus}
 spawn ./lus2lic -ec -o /tmp/redIf.ec should_work/redIf.lus
 PASS: ./lus2lic {-ec -o /tmp/redIf.ec should_work/redIf.lus}
-spawn ./ec2c -o /tmp/redIf.c /tmp/redIf.ec
-PASS: ./ec2c {-o /tmp/redIf.c /tmp/redIf.ec}
+spawn ./myec2c -o /tmp/redIf.c /tmp/redIf.ec
+PASS: ./myec2c {-o /tmp/redIf.c /tmp/redIf.ec}
+spawn ../utils/test_lus2lic_no_node should_work/redIf.lus
++ ./lus2lic should_work/redIf.lus -n redIf --gen-autotest -np
+_redIf_env.lut generated.
+_redIf_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/redIf.lus
++ ./lus2lic should_work/redIf.lus -n redIf -ec -o redIf.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:redIf.ec:redIf -rp env:lutin:_redIf_env.lut -rp oracle:v6:_redIf_oracle.lus:redIf_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/redIf.lus
 spawn ./lus2lic -o /tmp/t0.lic should_work/t0.lus
 PASS: ./lus2lic {-o /tmp/t0.lic should_work/t0.lus}
 spawn ./lus2lic -ec -o /tmp/t0.ec should_work/t0.lus
 PASS: ./lus2lic {-ec -o /tmp/t0.ec should_work/t0.lus}
-spawn ./ec2c -o /tmp/t0.c /tmp/t0.ec
-PASS: ./ec2c {-o /tmp/t0.c /tmp/t0.ec}
+spawn ./myec2c -o /tmp/t0.c /tmp/t0.ec
+PASS: ./myec2c {-o /tmp/t0.c /tmp/t0.ec}
+spawn ../utils/test_lus2lic_no_node should_work/t0.lus
++ ./lus2lic should_work/t0.lus -n t0 --gen-autotest -np
+_t0_env.lut generated.
+_t0_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/t0.lus
++ ./lus2lic should_work/t0.lus -n t0 -ec -o t0.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:t0.ec:t0 -rp env:lutin:_t0_env.lut -rp oracle:v6:_t0_oracle.lus:t0_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/t0.lus
 spawn ./lus2lic -o /tmp/lucky.lic should_work/lucky.lus
 PASS: ./lus2lic {-o /tmp/lucky.lic should_work/lucky.lus}
 spawn ./lus2lic -ec -o /tmp/lucky.ec should_work/lucky.lus
 PASS: ./lus2lic {-ec -o /tmp/lucky.ec should_work/lucky.lus}
-spawn ./ec2c -o /tmp/lucky.c /tmp/lucky.ec
-PASS: ./ec2c {-o /tmp/lucky.c /tmp/lucky.ec}
+spawn ./myec2c -o /tmp/lucky.c /tmp/lucky.ec
+PASS: ./myec2c {-o /tmp/lucky.c /tmp/lucky.ec}
+spawn ../utils/test_lus2lic_no_node should_work/lucky.lus
++ ./lus2lic should_work/lucky.lus -n lucky --gen-autotest -np
+_lucky_env.lut generated.
+_lucky_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/lucky.lus
++ ./lus2lic should_work/lucky.lus -n lucky -ec -o lucky.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:lucky.ec:lucky -rp env:lutin:_lucky_env.lut -rp oracle:v6:_lucky_oracle.lus:lucky_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/lucky.lus
 spawn ./lus2lic -o /tmp/heater_control.lic should_work/heater_control.lus
 PASS: ./lus2lic {-o /tmp/heater_control.lic should_work/heater_control.lus}
 spawn ./lus2lic -ec -o /tmp/heater_control.ec should_work/heater_control.lus
 PASS: ./lus2lic {-ec -o /tmp/heater_control.ec should_work/heater_control.lus}
-spawn ./ec2c -o /tmp/heater_control.c /tmp/heater_control.ec
-PASS: ./ec2c {-o /tmp/heater_control.c /tmp/heater_control.ec}
+spawn ./myec2c -o /tmp/heater_control.c /tmp/heater_control.ec
+PASS: ./myec2c {-o /tmp/heater_control.c /tmp/heater_control.ec}
+spawn ../utils/test_lus2lic_no_node should_work/heater_control.lus
++ ./lus2lic should_work/heater_control.lus -n heater_control --gen-autotest -np
+_heater_control_env.lut generated.
+_heater_control_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/heater_control.lus
++ ./lus2lic should_work/heater_control.lus -n heater_control -ec -o heater_control.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:heater_control.ec:heater_control -rp env:lutin:_heater_control_env.lut -rp oracle:v6:_heater_control_oracle.lus:heater_control_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/heater_control.lus
 spawn ./lus2lic -o /tmp/titi.lic should_work/titi.lus
 PASS: ./lus2lic {-o /tmp/titi.lic should_work/titi.lus}
 spawn ./lus2lic -ec -o /tmp/titi.ec should_work/titi.lus
 PASS: ./lus2lic {-ec -o /tmp/titi.ec should_work/titi.lus}
-spawn ./ec2c -o /tmp/titi.c /tmp/titi.ec
-PASS: ./ec2c {-o /tmp/titi.c /tmp/titi.ec}
+spawn ./myec2c -o /tmp/titi.c /tmp/titi.ec
+PASS: ./myec2c {-o /tmp/titi.c /tmp/titi.ec}
+spawn ../utils/test_lus2lic_no_node should_work/titi.lus
++ ./lus2lic should_work/titi.lus -n titi --gen-autotest -np
+_titi_env.lut generated.
+_titi_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/titi.lus
++ ./lus2lic should_work/titi.lus -n titi -ec -o titi.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:titi.ec:titi -rp env:lutin:_titi_env.lut -rp oracle:v6:_titi_oracle.lus:titi_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/titi.lus
 spawn ./lus2lic -o /tmp/cminus.lic should_work/cminus.lus
 PASS: ./lus2lic {-o /tmp/cminus.lic should_work/cminus.lus}
 spawn ./lus2lic -ec -o /tmp/cminus.ec should_work/cminus.lus
 PASS: ./lus2lic {-ec -o /tmp/cminus.ec should_work/cminus.lus}
-spawn ./ec2c -o /tmp/cminus.c /tmp/cminus.ec
-PASS: ./ec2c {-o /tmp/cminus.c /tmp/cminus.ec}
+spawn ./myec2c -o /tmp/cminus.c /tmp/cminus.ec
+PASS: ./myec2c {-o /tmp/cminus.c /tmp/cminus.ec}
+spawn ../utils/test_lus2lic_no_node should_work/cminus.lus
++ ./lus2lic should_work/cminus.lus -n cminus --gen-autotest -np
+_cminus_env.lut generated.
+_cminus_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/cminus.lus
++ ./lus2lic should_work/cminus.lus -n cminus -ec -o cminus.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:cminus.ec:cminus -rp env:lutin:_cminus_env.lut -rp oracle:v6:_cminus_oracle.lus:cminus_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/cminus.lus
 spawn ./lus2lic -o /tmp/rs.lic should_work/rs.lus
 PASS: ./lus2lic {-o /tmp/rs.lic should_work/rs.lus}
 spawn ./lus2lic -ec -o /tmp/rs.ec should_work/rs.lus
 PASS: ./lus2lic {-ec -o /tmp/rs.ec should_work/rs.lus}
-spawn ./ec2c -o /tmp/rs.c /tmp/rs.ec
-PASS: ./ec2c {-o /tmp/rs.c /tmp/rs.ec}
+spawn ./myec2c -o /tmp/rs.c /tmp/rs.ec
+PASS: ./myec2c {-o /tmp/rs.c /tmp/rs.ec}
+spawn ../utils/test_lus2lic_no_node should_work/rs.lus
++ ./lus2lic should_work/rs.lus -n rs --gen-autotest -np
+_rs_env.lut generated.
+_rs_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/rs.lus
++ ./lus2lic should_work/rs.lus -n rs -ec -o rs.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:rs.ec:rs -rp env:lutin:_rs_env.lut -rp oracle:v6:_rs_oracle.lus:rs_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/rs.lus
 spawn ./lus2lic -o /tmp/access.lic should_work/access.lus
 PASS: ./lus2lic {-o /tmp/access.lic should_work/access.lus}
 spawn ./lus2lic -ec -o /tmp/access.ec should_work/access.lus
 PASS: ./lus2lic {-ec -o /tmp/access.ec should_work/access.lus}
-spawn ./ec2c -o /tmp/access.c /tmp/access.ec
-PASS: ./ec2c {-o /tmp/access.c /tmp/access.ec}
-spawn ./lus2lic -o /tmp/aux.lic should_work/aux.lus
-PASS: ./lus2lic {-o /tmp/aux.lic should_work/aux.lus}
-spawn ./lus2lic -ec -o /tmp/aux.ec should_work/aux.lus
-PASS: ./lus2lic {-ec -o /tmp/aux.ec should_work/aux.lus}
-spawn ./ec2c -o /tmp/aux.c /tmp/aux.ec
-PASS: ./ec2c {-o /tmp/aux.c /tmp/aux.ec}
+spawn ./myec2c -o /tmp/access.c /tmp/access.ec
+PASS: ./myec2c {-o /tmp/access.c /tmp/access.ec}
+spawn ../utils/test_lus2lic_no_node should_work/access.lus
++ ./lus2lic should_work/access.lus -n access --gen-autotest -np
+_access_env.lut generated.
+_access_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/access.lus
++ ./lus2lic should_work/access.lus -n access -ec -o access.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:access.ec:access -rp env:lutin:_access_env.lut -rp oracle:v6:_access_oracle.lus:access_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/access.lus
 spawn ./lus2lic -o /tmp/consensus2.lic should_work/consensus2.lus
 PASS: ./lus2lic {-o /tmp/consensus2.lic should_work/consensus2.lus}
 spawn ./lus2lic -ec -o /tmp/consensus2.ec should_work/consensus2.lus
 PASS: ./lus2lic {-ec -o /tmp/consensus2.ec should_work/consensus2.lus}
-spawn ./ec2c -o /tmp/consensus2.c /tmp/consensus2.ec
-PASS: ./ec2c {-o /tmp/consensus2.c /tmp/consensus2.ec}
+spawn ./myec2c -o /tmp/consensus2.c /tmp/consensus2.ec
+PASS: ./myec2c {-o /tmp/consensus2.c /tmp/consensus2.ec}
+spawn ../utils/test_lus2lic_no_node should_work/consensus2.lus
++ ./lus2lic should_work/consensus2.lus -n consensus2 --gen-autotest -np
+_consensus2_env.lut generated.
+_consensus2_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/consensus2.lus
++ ./lus2lic should_work/consensus2.lus -n consensus2 -ec -o consensus2.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:consensus2.ec:consensus2 -rp env:lutin:_consensus2_env.lut -rp oracle:v6:_consensus2_oracle.lus:consensus2_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/consensus2.lus
 spawn ./lus2lic -o /tmp/dependeur.lic should_work/dependeur.lus
 PASS: ./lus2lic {-o /tmp/dependeur.lic should_work/dependeur.lus}
 spawn ./lus2lic -ec -o /tmp/dependeur.ec should_work/dependeur.lus
 PASS: ./lus2lic {-ec -o /tmp/dependeur.ec should_work/dependeur.lus}
-spawn ./ec2c -o /tmp/dependeur.c /tmp/dependeur.ec
-PASS: ./ec2c {-o /tmp/dependeur.c /tmp/dependeur.ec}
+spawn ./myec2c -o /tmp/dependeur.c /tmp/dependeur.ec
+PASS: ./myec2c {-o /tmp/dependeur.c /tmp/dependeur.ec}
+spawn ../utils/test_lus2lic_no_node should_work/dependeur.lus
++ ./lus2lic should_work/dependeur.lus -n dependeur --gen-autotest -np
+_dependeur_env.lut generated.
+_dependeur_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/dependeur.lus
++ ./lus2lic should_work/dependeur.lus -n dependeur -ec -o dependeur.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:dependeur.ec:dependeur -rp env:lutin:_dependeur_env.lut -rp oracle:v6:_dependeur_oracle.lus:dependeur_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/dependeur.lus
 spawn ./lus2lic -o /tmp/mappredef.lic should_work/mappredef.lus
 PASS: ./lus2lic {-o /tmp/mappredef.lic should_work/mappredef.lus}
 spawn ./lus2lic -ec -o /tmp/mappredef.ec should_work/mappredef.lus
 PASS: ./lus2lic {-ec -o /tmp/mappredef.ec should_work/mappredef.lus}
-spawn ./ec2c -o /tmp/mappredef.c /tmp/mappredef.ec
-PASS: ./ec2c {-o /tmp/mappredef.c /tmp/mappredef.ec}
+spawn ./myec2c -o /tmp/mappredef.c /tmp/mappredef.ec
+PASS: ./myec2c {-o /tmp/mappredef.c /tmp/mappredef.ec}
+spawn ../utils/test_lus2lic_no_node should_work/mappredef.lus
++ ./lus2lic should_work/mappredef.lus -n mappredef --gen-autotest -np
+_mappredef_env.lut generated.
+_mappredef_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/mappredef.lus
++ ./lus2lic should_work/mappredef.lus -n mappredef -ec -o mappredef.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mappredef.ec:mappredef -rp env:lutin:_mappredef_env.lut -rp oracle:v6:_mappredef_oracle.lus:mappredef_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/mappredef.lus
 spawn ./lus2lic -o /tmp/call06.lic should_work/call06.lus
 PASS: ./lus2lic {-o /tmp/call06.lic should_work/call06.lus}
 spawn ./lus2lic -ec -o /tmp/call06.ec should_work/call06.lus
 PASS: ./lus2lic {-ec -o /tmp/call06.ec should_work/call06.lus}
-spawn ./ec2c -o /tmp/call06.c /tmp/call06.ec
-PASS: ./ec2c {-o /tmp/call06.c /tmp/call06.ec}
+spawn ./myec2c -o /tmp/call06.c /tmp/call06.ec
+PASS: ./myec2c {-o /tmp/call06.c /tmp/call06.ec}
+spawn ../utils/test_lus2lic_no_node should_work/call06.lus
++ ./lus2lic should_work/call06.lus -n call06 --gen-autotest -np
+*** The soc of call06::bip is not defined. FINISH ME! 
+Extern node not yet supported, sorry
+
+*** oops: lus2lic internal error
+	File "src/lic2soc.ml", line 897, column 14
+*** when compiling lustre program should_work/call06.lus
+
+*** You migth want to sent a bug report to jahier@imag.fr
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/call06.lus
 spawn ./lus2lic -o /tmp/deSimone.lic should_work/deSimone.lus
 PASS: ./lus2lic {-o /tmp/deSimone.lic should_work/deSimone.lus}
 spawn ./lus2lic -ec -o /tmp/deSimone.ec should_work/deSimone.lus
 PASS: ./lus2lic {-ec -o /tmp/deSimone.ec should_work/deSimone.lus}
-spawn ./ec2c -o /tmp/deSimone.c /tmp/deSimone.ec
-PASS: ./ec2c {-o /tmp/deSimone.c /tmp/deSimone.ec}
+spawn ./myec2c -o /tmp/deSimone.c /tmp/deSimone.ec
+PASS: ./myec2c {-o /tmp/deSimone.c /tmp/deSimone.ec}
+spawn ../utils/test_lus2lic_no_node should_work/deSimone.lus
++ ./lus2lic should_work/deSimone.lus -n deSimone --gen-autotest -np
+_deSimone_env.lut generated.
+_deSimone_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/deSimone.lus
++ ./lus2lic should_work/deSimone.lus -n deSimone -ec -o deSimone.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:deSimone.ec:deSimone -rp env:lutin:_deSimone_env.lut -rp oracle:v6:_deSimone_oracle.lus:deSimone_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+
+*** The oracle returned false at step 6
+Other Oracle outputs that are true: 
+	acknowledge_bis_1
+Oracle outputs that are false: 
+	acknowledge_bis_0
+	acknowledge_bis_2
+	acknowledge_bis_3
+	acknowledge_bis_4
+	acknowledge_bis_5
+	acknowledge_bis_6
+	acknowledge_bis_7
+	acknowledge_bis_8
+	acknowledge_bis_9
+Oracle inputs: 
+	new_token=t
+	request_0=f
+	request_1=t
+	request_2=t
+	request_3=f
+	request_4=t
+	request_5=t
+	request_6=t
+	request_7=f
+	request_8=f
+	request_9=f
+	acknowledge_0=f
+	acknowledge_1=f
+	acknowledge_2=f
+	acknowledge_3=f
+	acknowledge_4=f
+	acknowledge_5=f
+	acknowledge_6=f
+	acknowledge_7=f
+	acknowledge_8=f
+	acknowledge_9=f
+
+*** The oracle returned false at step 6
+Other Oracle outputs that are true: 
+	acknowledge_bis_1
+Oracle outputs that are false: 
+	acknowledge_bis_0
+	acknowledge_bis_2
+	acknowledge_bis_3
+	acknowledge_bis_4
+	acknowledge_bis_5
+	acknowledge_bis_6
+	acknowledge_bis_7
+	acknowledge_bis_8
+	acknowledge_bis_9
+Oracle inputs: 
+	new_token=t
+	request_0=f
+	request_1=t
+	request_2=t
+	request_3=f
+	request_4=t
+	request_5=t
+	request_6=t
+	request_7=f
+	request_8=f
+	request_9=f
+	acknowledge_0=f
+	acknowledge_1=f
+	acknowledge_2=f
+	acknowledge_3=f
+	acknowledge_4=f
+	acknowledge_5=f
+	acknowledge_6=f
+	acknowledge_7=f
+	acknowledge_8=f
+	acknowledge_9=f
+
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/deSimone.lus
 spawn ./lus2lic -o /tmp/bug2.lic should_work/bug2.lus
 PASS: ./lus2lic {-o /tmp/bug2.lic should_work/bug2.lus}
 spawn ./lus2lic -ec -o /tmp/bug2.ec should_work/bug2.lus
 PASS: ./lus2lic {-ec -o /tmp/bug2.ec should_work/bug2.lus}
-spawn ./ec2c -o /tmp/bug2.c /tmp/bug2.ec
-PASS: ./ec2c {-o /tmp/bug2.c /tmp/bug2.ec}
+spawn ./myec2c -o /tmp/bug2.c /tmp/bug2.ec
+PASS: ./myec2c {-o /tmp/bug2.c /tmp/bug2.ec}
+spawn ../utils/test_lus2lic_no_node should_work/bug2.lus
++ ./lus2lic should_work/bug2.lus -n bug2 --gen-autotest -np
+_bug2_env.lut generated.
+_bug2_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/bug2.lus
++ ./lus2lic should_work/bug2.lus -n bug2 -ec -o bug2.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:bug2.ec:bug2 -rp env:lutin:_bug2_env.lut -rp oracle:v6:_bug2_oracle.lus:bug2_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/bug2.lus
 spawn ./lus2lic -o /tmp/mm.lic should_work/mm.lus
 PASS: ./lus2lic {-o /tmp/mm.lic should_work/mm.lus}
 spawn ./lus2lic -ec -o /tmp/mm.ec should_work/mm.lus
 PASS: ./lus2lic {-ec -o /tmp/mm.ec should_work/mm.lus}
-spawn ./ec2c -o /tmp/mm.c /tmp/mm.ec
-PASS: ./ec2c {-o /tmp/mm.c /tmp/mm.ec}
+spawn ./myec2c -o /tmp/mm.c /tmp/mm.ec
+PASS: ./myec2c {-o /tmp/mm.c /tmp/mm.ec}
+spawn ../utils/test_lus2lic_no_node should_work/mm.lus
++ ./lus2lic should_work/mm.lus -n mm --gen-autotest -np
+_mm_env.lut generated.
+_mm_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/mm.lus
++ ./lus2lic should_work/mm.lus -n mm -ec -o mm.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mm.ec:mm -rp env:lutin:_mm_env.lut -rp oracle:v6:_mm_oracle.lus:mm_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/mm.lus
 spawn ./lus2lic -o /tmp/yyy.lic should_work/yyy.lus
 PASS: ./lus2lic {-o /tmp/yyy.lic should_work/yyy.lus}
 spawn ./lus2lic -ec -o /tmp/yyy.ec should_work/yyy.lus
 PASS: ./lus2lic {-ec -o /tmp/yyy.ec should_work/yyy.lus}
-spawn ./ec2c -o /tmp/yyy.c /tmp/yyy.ec
-PASS: ./ec2c {-o /tmp/yyy.c /tmp/yyy.ec}
+spawn ./myec2c -o /tmp/yyy.c /tmp/yyy.ec
+PASS: ./myec2c {-o /tmp/yyy.c /tmp/yyy.ec}
+spawn ../utils/test_lus2lic_no_node should_work/yyy.lus
++ ./lus2lic should_work/yyy.lus -n yyy --gen-autotest -np
+_yyy_env.lut generated.
+_yyy_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/yyy.lus
++ ./lus2lic should_work/yyy.lus -n yyy -ec -o yyy.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:yyy.ec:yyy -rp env:lutin:_yyy_env.lut -rp oracle:v6:_yyy_oracle.lus:yyy_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/yyy.lus
 spawn ./lus2lic -o /tmp/toolate.lic should_work/toolate.lus
 PASS: ./lus2lic {-o /tmp/toolate.lic should_work/toolate.lus}
 spawn ./lus2lic -ec -o /tmp/toolate.ec should_work/toolate.lus
 PASS: ./lus2lic {-ec -o /tmp/toolate.ec should_work/toolate.lus}
-spawn ./ec2c -o /tmp/toolate.c /tmp/toolate.ec
-PASS: ./ec2c {-o /tmp/toolate.c /tmp/toolate.ec}
+spawn ./myec2c -o /tmp/toolate.c /tmp/toolate.ec
+PASS: ./myec2c {-o /tmp/toolate.c /tmp/toolate.ec}
+spawn ../utils/test_lus2lic_no_node should_work/toolate.lus
++ ./lus2lic should_work/toolate.lus -n toolate --gen-autotest -np
+_toolate_env.lut generated.
+_toolate_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/toolate.lus
++ ./lus2lic should_work/toolate.lus -n toolate -ec -o toolate.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:toolate.ec:toolate -rp env:lutin:_toolate_env.lut -rp oracle:v6:_toolate_oracle.lus:toolate_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/toolate.lus
 spawn ./lus2lic -o /tmp/testCapt.lic should_work/testCapt.lus
 PASS: ./lus2lic {-o /tmp/testCapt.lic should_work/testCapt.lus}
 spawn ./lus2lic -ec -o /tmp/testCapt.ec should_work/testCapt.lus
 PASS: ./lus2lic {-ec -o /tmp/testCapt.ec should_work/testCapt.lus}
-spawn ./ec2c -o /tmp/testCapt.c /tmp/testCapt.ec
-PASS: ./ec2c {-o /tmp/testCapt.c /tmp/testCapt.ec}
+spawn ./myec2c -o /tmp/testCapt.c /tmp/testCapt.ec
+PASS: ./myec2c {-o /tmp/testCapt.c /tmp/testCapt.ec}
+spawn ../utils/test_lus2lic_no_node should_work/testCapt.lus
++ ./lus2lic should_work/testCapt.lus -n testCapt --gen-autotest -np
+_testCapt_env.lut generated.
+_testCapt_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/testCapt.lus
++ ./lus2lic should_work/testCapt.lus -n testCapt -ec -o testCapt.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:testCapt.ec:testCapt -rp env:lutin:_testCapt_env.lut -rp oracle:v6:_testCapt_oracle.lus:testCapt_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Parsing.Parse_error
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/testCapt.lus
 spawn ./lus2lic -o /tmp/nc7.lic should_work/nc7.lus
 PASS: ./lus2lic {-o /tmp/nc7.lic should_work/nc7.lus}
 spawn ./lus2lic -ec -o /tmp/nc7.ec should_work/nc7.lus
 PASS: ./lus2lic {-ec -o /tmp/nc7.ec should_work/nc7.lus}
-spawn ./ec2c -o /tmp/nc7.c /tmp/nc7.ec
-PASS: ./ec2c {-o /tmp/nc7.c /tmp/nc7.ec}
+spawn ./myec2c -o /tmp/nc7.c /tmp/nc7.ec
+PASS: ./myec2c {-o /tmp/nc7.c /tmp/nc7.ec}
+spawn ../utils/test_lus2lic_no_node should_work/nc7.lus
++ ./lus2lic should_work/nc7.lus -n nc7 --gen-autotest -np
+_nc7_env.lut generated.
+_nc7_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/nc7.lus
++ ./lus2lic should_work/nc7.lus -n nc7 -ec -o nc7.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nc7.ec:nc7 -rp env:lutin:_nc7_env.lut -rp oracle:v6:_nc7_oracle.lus:nc7_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/nc7.lus
 spawn ./lus2lic -o /tmp/predefOp.lic should_work/predefOp.lus
 PASS: ./lus2lic {-o /tmp/predefOp.lic should_work/predefOp.lus}
 spawn ./lus2lic -ec -o /tmp/predefOp.ec should_work/predefOp.lus
 PASS: ./lus2lic {-ec -o /tmp/predefOp.ec should_work/predefOp.lus}
-spawn ./ec2c -o /tmp/predefOp.c /tmp/predefOp.ec
-PASS: ./ec2c {-o /tmp/predefOp.c /tmp/predefOp.ec}
+spawn ./myec2c -o /tmp/predefOp.c /tmp/predefOp.ec
+PASS: ./myec2c {-o /tmp/predefOp.c /tmp/predefOp.ec}
+spawn ../utils/test_lus2lic_no_node should_work/predefOp.lus
++ ./lus2lic should_work/predefOp.lus -n predefOp --gen-autotest -np
+_predefOp_env.lut generated.
+_predefOp_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/predefOp.lus
++ ./lus2lic should_work/predefOp.lus -n predefOp -ec -o predefOp.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:predefOp.ec:predefOp -rp env:lutin:_predefOp_env.lut -rp oracle:v6:_predefOp_oracle.lus:predefOp_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/predefOp.lus
 spawn ./lus2lic -o /tmp/t1.lic should_work/t1.lus
 PASS: ./lus2lic {-o /tmp/t1.lic should_work/t1.lus}
 spawn ./lus2lic -ec -o /tmp/t1.ec should_work/t1.lus
 PASS: ./lus2lic {-ec -o /tmp/t1.ec should_work/t1.lus}
-spawn ./ec2c -o /tmp/t1.c /tmp/t1.ec
-PASS: ./ec2c {-o /tmp/t1.c /tmp/t1.ec}
+spawn ./myec2c -o /tmp/t1.c /tmp/t1.ec
+PASS: ./myec2c {-o /tmp/t1.c /tmp/t1.ec}
+spawn ../utils/test_lus2lic_no_node should_work/t1.lus
++ ./lus2lic should_work/t1.lus -n t1 --gen-autotest -np
+_t1_env.lut generated.
+_t1_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/t1.lus
++ ./lus2lic should_work/t1.lus -n t1 -ec -o t1.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:t1.ec:t1 -rp env:lutin:_t1_env.lut -rp oracle:v6:_t1_oracle.lus:t1_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/t1.lus
 spawn ./lus2lic -o /tmp/nc9.lic should_work/nc9.lus
 PASS: ./lus2lic {-o /tmp/nc9.lic should_work/nc9.lus}
 spawn ./lus2lic -ec -o /tmp/nc9.ec should_work/nc9.lus
 PASS: ./lus2lic {-ec -o /tmp/nc9.ec should_work/nc9.lus}
-spawn ./ec2c -o /tmp/nc9.c /tmp/nc9.ec
-PASS: ./ec2c {-o /tmp/nc9.c /tmp/nc9.ec}
+spawn ./myec2c -o /tmp/nc9.c /tmp/nc9.ec
+PASS: ./myec2c {-o /tmp/nc9.c /tmp/nc9.ec}
+spawn ../utils/test_lus2lic_no_node should_work/nc9.lus
++ ./lus2lic should_work/nc9.lus -n nc9 --gen-autotest -np
+_nc9_env.lut generated.
+_nc9_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/nc9.lus
++ ./lus2lic should_work/nc9.lus -n nc9 -ec -o nc9.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nc9.ec:nc9 -rp env:lutin:_nc9_env.lut -rp oracle:v6:_nc9_oracle.lus:nc9_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/nc9.lus
 spawn ./lus2lic -o /tmp/packageTableau.lic should_work/packageTableau.lus
 PASS: ./lus2lic {-o /tmp/packageTableau.lic should_work/packageTableau.lus}
 spawn ./lus2lic -ec -o /tmp/packageTableau.ec should_work/packageTableau.lus
 PASS: ./lus2lic {-ec -o /tmp/packageTableau.ec should_work/packageTableau.lus}
-spawn ./ec2c -o /tmp/packageTableau.c /tmp/packageTableau.ec
-PASS: ./ec2c {-o /tmp/packageTableau.c /tmp/packageTableau.ec}
-spawn ./lus2lic -o /tmp/car-V2.lic should_work/car-V2.lus
-PASS: ./lus2lic {-o /tmp/car-V2.lic should_work/car-V2.lus}
-spawn ./lus2lic -ec -o /tmp/car-V2.ec should_work/car-V2.lus
-PASS: ./lus2lic {-ec -o /tmp/car-V2.ec should_work/car-V2.lus}
-spawn ./ec2c -o /tmp/car-V2.c /tmp/car-V2.ec
-PASS: ./ec2c {-o /tmp/car-V2.c /tmp/car-V2.ec}
+spawn ./myec2c -o /tmp/packageTableau.c /tmp/packageTableau.ec
+PASS: ./myec2c {-o /tmp/packageTableau.c /tmp/packageTableau.ec}
+spawn ../utils/test_lus2lic_no_node should_work/packageTableau.lus
++ ./lus2lic should_work/packageTableau.lus -n packageTableau --gen-autotest -np
+*** Can not find package 'packageTableau' in the following packages: 
+***	 'util'
+***	 'main'
+***	 'intArray'
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/packageTableau.lus
 spawn ./lus2lic -o /tmp/nc8.lic should_work/nc8.lus
 PASS: ./lus2lic {-o /tmp/nc8.lic should_work/nc8.lus}
 spawn ./lus2lic -ec -o /tmp/nc8.ec should_work/nc8.lus
 PASS: ./lus2lic {-ec -o /tmp/nc8.ec should_work/nc8.lus}
-spawn ./ec2c -o /tmp/nc8.c /tmp/nc8.ec
-PASS: ./ec2c {-o /tmp/nc8.c /tmp/nc8.ec}
+spawn ./myec2c -o /tmp/nc8.c /tmp/nc8.ec
+PASS: ./myec2c {-o /tmp/nc8.c /tmp/nc8.ec}
+spawn ../utils/test_lus2lic_no_node should_work/nc8.lus
++ ./lus2lic should_work/nc8.lus -n nc8 --gen-autotest -np
+_nc8_env.lut generated.
+_nc8_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/nc8.lus
++ ./lus2lic should_work/nc8.lus -n nc8 -ec -o nc8.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nc8.ec:nc8 -rp env:lutin:_nc8_env.lut -rp oracle:v6:_nc8_oracle.lus:nc8_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/nc8.lus
 spawn ./lus2lic -o /tmp/minmax5.lic should_work/minmax5.lus
 PASS: ./lus2lic {-o /tmp/minmax5.lic should_work/minmax5.lus}
 spawn ./lus2lic -ec -o /tmp/minmax5.ec should_work/minmax5.lus
 PASS: ./lus2lic {-ec -o /tmp/minmax5.ec should_work/minmax5.lus}
-spawn ./ec2c -o /tmp/minmax5.c /tmp/minmax5.ec
-PASS: ./ec2c {-o /tmp/minmax5.c /tmp/minmax5.ec}
+spawn ./myec2c -o /tmp/minmax5.c /tmp/minmax5.ec
+PASS: ./myec2c {-o /tmp/minmax5.c /tmp/minmax5.ec}
+spawn ../utils/test_lus2lic_no_node should_work/minmax5.lus
++ ./lus2lic should_work/minmax5.lus -n minmax5 --gen-autotest -np
+*** The soc of minmax5::minmax is not defined. FINISH ME! 
+Extern node not yet supported, sorry
+
+*** oops: lus2lic internal error
+	File "src/lic2soc.ml", line 897, column 14
+*** when compiling lustre program should_work/minmax5.lus
+
+*** You migth want to sent a bug report to jahier@imag.fr
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/minmax5.lus
 spawn ./lus2lic -o /tmp/mm1.lic should_work/mm1.lus
 PASS: ./lus2lic {-o /tmp/mm1.lic should_work/mm1.lus}
 spawn ./lus2lic -ec -o /tmp/mm1.ec should_work/mm1.lus
 PASS: ./lus2lic {-ec -o /tmp/mm1.ec should_work/mm1.lus}
-spawn ./ec2c -o /tmp/mm1.c /tmp/mm1.ec
-PASS: ./ec2c {-o /tmp/mm1.c /tmp/mm1.ec}
+spawn ./myec2c -o /tmp/mm1.c /tmp/mm1.ec
+PASS: ./myec2c {-o /tmp/mm1.c /tmp/mm1.ec}
+spawn ../utils/test_lus2lic_no_node should_work/mm1.lus
++ ./lus2lic should_work/mm1.lus -n mm1 --gen-autotest -np
+_mm1_env.lut generated.
+_mm1_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/mm1.lus
++ ./lus2lic should_work/mm1.lus -n mm1 -ec -o mm1.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mm1.ec:mm1 -rp env:lutin:_mm1_env.lut -rp oracle:v6:_mm1_oracle.lus:mm1_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/mm1.lus
 spawn ./lus2lic -o /tmp/predef03.lic should_work/predef03.lus
 PASS: ./lus2lic {-o /tmp/predef03.lic should_work/predef03.lus}
 spawn ./lus2lic -ec -o /tmp/predef03.ec should_work/predef03.lus
 PASS: ./lus2lic {-ec -o /tmp/predef03.ec should_work/predef03.lus}
-spawn ./ec2c -o /tmp/predef03.c /tmp/predef03.ec
-PASS: ./ec2c {-o /tmp/predef03.c /tmp/predef03.ec}
+spawn ./myec2c -o /tmp/predef03.c /tmp/predef03.ec
+PASS: ./myec2c {-o /tmp/predef03.c /tmp/predef03.ec}
+spawn ../utils/test_lus2lic_no_node should_work/predef03.lus
++ ./lus2lic should_work/predef03.lus -n predef03 --gen-autotest -np
+_predef03_env.lut generated.
+_predef03_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/predef03.lus
++ ./lus2lic should_work/predef03.lus -n predef03 -ec -o predef03.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:predef03.ec:predef03 -rp env:lutin:_predef03_env.lut -rp oracle:v6:_predef03_oracle.lus:predef03_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/predef03.lus
 spawn ./lus2lic -o /tmp/iter.lic should_work/iter.lus
 PASS: ./lus2lic {-o /tmp/iter.lic should_work/iter.lus}
 spawn ./lus2lic -ec -o /tmp/iter.ec should_work/iter.lus
 PASS: ./lus2lic {-ec -o /tmp/iter.ec should_work/iter.lus}
-spawn ./ec2c -o /tmp/iter.c /tmp/iter.ec
-PASS: ./ec2c {-o /tmp/iter.c /tmp/iter.ec}
+spawn ./myec2c -o /tmp/iter.c /tmp/iter.ec
+PASS: ./myec2c {-o /tmp/iter.c /tmp/iter.ec}
+spawn ../utils/test_lus2lic_no_node should_work/iter.lus
++ ./lus2lic should_work/iter.lus -n iter --gen-autotest -np
+_iter_env.lut generated.
+_iter_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/iter.lus
++ ./lus2lic should_work/iter.lus -n iter -ec -o iter.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:iter.ec:iter -rp env:lutin:_iter_env.lut -rp oracle:v6:_iter_oracle.lus:iter_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/iter.lus
 spawn ./lus2lic -o /tmp/call05.lic should_work/call05.lus
 PASS: ./lus2lic {-o /tmp/call05.lic should_work/call05.lus}
 spawn ./lus2lic -ec -o /tmp/call05.ec should_work/call05.lus
 PASS: ./lus2lic {-ec -o /tmp/call05.ec should_work/call05.lus}
-spawn ./ec2c -o /tmp/call05.c /tmp/call05.ec
-PASS: ./ec2c {-o /tmp/call05.c /tmp/call05.ec}
+spawn ./myec2c -o /tmp/call05.c /tmp/call05.ec
+Segmentation fault
+FAIL: Try ec2c on the result: ./myec2c {-o /tmp/call05.c /tmp/call05.ec}
 spawn ./lus2lic -o /tmp/Watch.lic should_work/Watch.lus
 PASS: ./lus2lic {-o /tmp/Watch.lic should_work/Watch.lus}
 spawn ./lus2lic -ec -o /tmp/Watch.ec should_work/Watch.lus
 PASS: ./lus2lic {-ec -o /tmp/Watch.ec should_work/Watch.lus}
-spawn ./ec2c -o /tmp/Watch.c /tmp/Watch.ec
-PASS: ./ec2c {-o /tmp/Watch.c /tmp/Watch.ec}
+spawn ./myec2c -o /tmp/Watch.c /tmp/Watch.ec
+Segmentation fault
+FAIL: Try ec2c on the result: ./myec2c {-o /tmp/Watch.c /tmp/Watch.ec}
 spawn ./lus2lic -o /tmp/testBoite.lic should_work/testBoite.lus
 PASS: ./lus2lic {-o /tmp/testBoite.lic should_work/testBoite.lus}
 spawn ./lus2lic -ec -o /tmp/testBoite.ec should_work/testBoite.lus
 PASS: ./lus2lic {-ec -o /tmp/testBoite.ec should_work/testBoite.lus}
-spawn ./ec2c -o /tmp/testBoite.c /tmp/testBoite.ec
-PASS: ./ec2c {-o /tmp/testBoite.c /tmp/testBoite.ec}
+spawn ./myec2c -o /tmp/testBoite.c /tmp/testBoite.ec
+PASS: ./myec2c {-o /tmp/testBoite.c /tmp/testBoite.ec}
+spawn ../utils/test_lus2lic_no_node should_work/testBoite.lus
++ ./lus2lic should_work/testBoite.lus -n testBoite --gen-autotest -np
+*** Can not find package 'testBoite' in the following packages: 
+***	 'boite'
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/testBoite.lus
 spawn ./lus2lic -o /tmp/node_caller1.lic should_work/node_caller1.lus
 PASS: ./lus2lic {-o /tmp/node_caller1.lic should_work/node_caller1.lus}
 spawn ./lus2lic -ec -o /tmp/node_caller1.ec should_work/node_caller1.lus
 PASS: ./lus2lic {-ec -o /tmp/node_caller1.ec should_work/node_caller1.lus}
-spawn ./ec2c -o /tmp/node_caller1.c /tmp/node_caller1.ec
-PASS: ./ec2c {-o /tmp/node_caller1.c /tmp/node_caller1.ec}
+spawn ./myec2c -o /tmp/node_caller1.c /tmp/node_caller1.ec
+PASS: ./myec2c {-o /tmp/node_caller1.c /tmp/node_caller1.ec}
+spawn ../utils/test_lus2lic_no_node should_work/node_caller1.lus
++ ./lus2lic should_work/node_caller1.lus -n node_caller1 --gen-autotest -np
+_node_caller1_env.lut generated.
+_node_caller1_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/node_caller1.lus
++ ./lus2lic should_work/node_caller1.lus -n node_caller1 -ec -o node_caller1.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:node_caller1.ec:node_caller1 -rp env:lutin:_node_caller1_env.lut -rp oracle:v6:_node_caller1_oracle.lus:node_caller1_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/node_caller1.lus
 spawn ./lus2lic -o /tmp/nc1.lic should_work/nc1.lus
 PASS: ./lus2lic {-o /tmp/nc1.lic should_work/nc1.lus}
 spawn ./lus2lic -ec -o /tmp/nc1.ec should_work/nc1.lus
 PASS: ./lus2lic {-ec -o /tmp/nc1.ec should_work/nc1.lus}
-spawn ./ec2c -o /tmp/nc1.c /tmp/nc1.ec
-PASS: ./ec2c {-o /tmp/nc1.c /tmp/nc1.ec}
+spawn ./myec2c -o /tmp/nc1.c /tmp/nc1.ec
+PASS: ./myec2c {-o /tmp/nc1.c /tmp/nc1.ec}
+spawn ../utils/test_lus2lic_no_node should_work/nc1.lus
++ ./lus2lic should_work/nc1.lus -n nc1 --gen-autotest -np
+_nc1_env.lut generated.
+_nc1_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/nc1.lus
++ ./lus2lic should_work/nc1.lus -n nc1 -ec -o nc1.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nc1.ec:nc1 -rp env:lutin:_nc1_env.lut -rp oracle:v6:_nc1_oracle.lus:nc1_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/nc1.lus
 spawn ./lus2lic -o /tmp/test_node_expand2.lic should_work/test_node_expand2.lus
 PASS: ./lus2lic {-o /tmp/test_node_expand2.lic should_work/test_node_expand2.lus}
 spawn ./lus2lic -ec -o /tmp/test_node_expand2.ec should_work/test_node_expand2.lus
 PASS: ./lus2lic {-ec -o /tmp/test_node_expand2.ec should_work/test_node_expand2.lus}
-spawn ./ec2c -o /tmp/test_node_expand2.c /tmp/test_node_expand2.ec
-PASS: ./ec2c {-o /tmp/test_node_expand2.c /tmp/test_node_expand2.ec}
+spawn ./myec2c -o /tmp/test_node_expand2.c /tmp/test_node_expand2.ec
+PASS: ./myec2c {-o /tmp/test_node_expand2.c /tmp/test_node_expand2.ec}
+spawn ../utils/test_lus2lic_no_node should_work/test_node_expand2.lus
++ ./lus2lic should_work/test_node_expand2.lus -n test_node_expand2 --gen-autotest -np
+_test_node_expand2_env.lut generated.
+_test_node_expand2_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/test_node_expand2.lus
++ ./lus2lic should_work/test_node_expand2.lus -n test_node_expand2 -ec -o test_node_expand2.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:test_node_expand2.ec:test_node_expand2 -rp env:lutin:_test_node_expand2_env.lut -rp oracle:v6:_test_node_expand2_oracle.lus:test_node_expand2_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+Failure occured in lurette: int_of_string
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/test_node_expand2.lus
 spawn ./lus2lic -o /tmp/test.lic should_work/test.lus
 PASS: ./lus2lic {-o /tmp/test.lic should_work/test.lus}
 spawn ./lus2lic -ec -o /tmp/test.ec should_work/test.lus
 PASS: ./lus2lic {-ec -o /tmp/test.ec should_work/test.lus}
-spawn ./ec2c -o /tmp/test.c /tmp/test.ec
-PASS: ./ec2c {-o /tmp/test.c /tmp/test.ec}
+spawn ./myec2c -o /tmp/test.c /tmp/test.ec
+PASS: ./myec2c {-o /tmp/test.c /tmp/test.ec}
+spawn ../utils/test_lus2lic_no_node should_work/test.lus
++ ./lus2lic should_work/test.lus -n test --gen-autotest -np
+_test_env.lut generated.
+_test_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/test.lus
++ ./lus2lic should_work/test.lus -n test -ec -o test.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:test.ec:test -rp env:lutin:_test_env.lut -rp oracle:v6:_test_oracle.lus:test_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+
+*** The oracle returned false at step 1
+Other Oracle outputs that are true: 
+	b3_bis
+	b5_bis
+Oracle outputs that are false: 
+	b4_bis
+	b6_bis
+Oracle inputs: 
+	b1=t
+	b2=f
+	b3=t
+	b4=t
+	b5=t
+	b6=f
+
+*** The oracle returned false at step 1
+Other Oracle outputs that are true: 
+	b3_bis
+	b5_bis
+Oracle outputs that are false: 
+	b4_bis
+	b6_bis
+Oracle inputs: 
+	b1=t
+	b2=f
+	b3=t
+	b4=t
+	b5=t
+	b6=f
+
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/test.lus
 spawn ./lus2lic -o /tmp/FALLING_EDGE.lic should_work/FALLING_EDGE.lus
 PASS: ./lus2lic {-o /tmp/FALLING_EDGE.lic should_work/FALLING_EDGE.lus}
 spawn ./lus2lic -ec -o /tmp/FALLING_EDGE.ec should_work/FALLING_EDGE.lus
 PASS: ./lus2lic {-ec -o /tmp/FALLING_EDGE.ec should_work/FALLING_EDGE.lus}
-spawn ./ec2c -o /tmp/FALLING_EDGE.c /tmp/FALLING_EDGE.ec
-PASS: ./ec2c {-o /tmp/FALLING_EDGE.c /tmp/FALLING_EDGE.ec}
+spawn ./myec2c -o /tmp/FALLING_EDGE.c /tmp/FALLING_EDGE.ec
+PASS: ./myec2c {-o /tmp/FALLING_EDGE.c /tmp/FALLING_EDGE.ec}
+spawn ../utils/test_lus2lic_no_node should_work/FALLING_EDGE.lus
++ ./lus2lic should_work/FALLING_EDGE.lus -n FALLING_EDGE --gen-autotest -np
+_FALLING_EDGE_env.lut generated.
+_FALLING_EDGE_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/FALLING_EDGE.lus
++ ./lus2lic should_work/FALLING_EDGE.lus -n FALLING_EDGE -ec -o FALLING_EDGE.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:FALLING_EDGE.ec:FALLING_EDGE -rp env:lutin:_FALLING_EDGE_env.lut -rp oracle:v6:_FALLING_EDGE_oracle.lus:FALLING_EDGE_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/FALLING_EDGE.lus
 spawn ./lus2lic -o /tmp/SWITCH.lic should_work/SWITCH.lus
 PASS: ./lus2lic {-o /tmp/SWITCH.lic should_work/SWITCH.lus}
 spawn ./lus2lic -ec -o /tmp/SWITCH.ec should_work/SWITCH.lus
 PASS: ./lus2lic {-ec -o /tmp/SWITCH.ec should_work/SWITCH.lus}
-spawn ./ec2c -o /tmp/SWITCH.c /tmp/SWITCH.ec
-PASS: ./ec2c {-o /tmp/SWITCH.c /tmp/SWITCH.ec}
+spawn ./myec2c -o /tmp/SWITCH.c /tmp/SWITCH.ec
+PASS: ./myec2c {-o /tmp/SWITCH.c /tmp/SWITCH.ec}
+spawn ../utils/test_lus2lic_no_node should_work/SWITCH.lus
++ ./lus2lic should_work/SWITCH.lus -n SWITCH --gen-autotest -np
+_SWITCH_env.lut generated.
+_SWITCH_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/SWITCH.lus
++ ./lus2lic should_work/SWITCH.lus -n SWITCH -ec -o SWITCH.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:SWITCH.ec:SWITCH -rp env:lutin:_SWITCH_env.lut -rp oracle:v6:_SWITCH_oracle.lus:SWITCH_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/SWITCH.lus
 spawn ./lus2lic -o /tmp/cst.lic should_work/cst.lus
 PASS: ./lus2lic {-o /tmp/cst.lic should_work/cst.lus}
 spawn ./lus2lic -ec -o /tmp/cst.ec should_work/cst.lus
 PASS: ./lus2lic {-ec -o /tmp/cst.ec should_work/cst.lus}
-spawn ./ec2c -o /tmp/cst.c /tmp/cst.ec
-PASS: ./ec2c {-o /tmp/cst.c /tmp/cst.ec}
+spawn ./myec2c -o /tmp/cst.c /tmp/cst.ec
+PASS: ./myec2c {-o /tmp/cst.c /tmp/cst.ec}
+spawn ../utils/test_lus2lic_no_node should_work/cst.lus
++ ./lus2lic should_work/cst.lus -n cst --gen-autotest -np
+_cst_env.lut generated.
+_cst_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/cst.lus
++ ./lus2lic should_work/cst.lus -n cst -ec -o cst.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:cst.ec:cst -rp env:lutin:_cst_env.lut -rp oracle:v6:_cst_oracle.lus:cst_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/cst.lus
 spawn ./lus2lic -o /tmp/minmax5_random.lic should_work/minmax5_random.lus
 PASS: ./lus2lic {-o /tmp/minmax5_random.lic should_work/minmax5_random.lus}
 spawn ./lus2lic -ec -o /tmp/minmax5_random.ec should_work/minmax5_random.lus
 PASS: ./lus2lic {-ec -o /tmp/minmax5_random.ec should_work/minmax5_random.lus}
-spawn ./ec2c -o /tmp/minmax5_random.c /tmp/minmax5_random.ec
-PASS: ./ec2c {-o /tmp/minmax5_random.c /tmp/minmax5_random.ec}
+spawn ./myec2c -o /tmp/minmax5_random.c /tmp/minmax5_random.ec
+PASS: ./myec2c {-o /tmp/minmax5_random.c /tmp/minmax5_random.ec}
+spawn ../utils/test_lus2lic_no_node should_work/minmax5_random.lus
++ ./lus2lic should_work/minmax5_random.lus -n minmax5_random --gen-autotest -np
+*** The soc of minmax5_random::minmax is not defined. FINISH ME! 
+Extern node not yet supported, sorry
+
+*** oops: lus2lic internal error
+	File "src/lic2soc.ml", line 897, column 14
+*** when compiling lustre program should_work/minmax5_random.lus
+
+*** You migth want to sent a bug report to jahier@imag.fr
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/minmax5_random.lus
 spawn ./lus2lic -o /tmp/matrice2.lic should_work/matrice2.lus
 PASS: ./lus2lic {-o /tmp/matrice2.lic should_work/matrice2.lus}
 spawn ./lus2lic -ec -o /tmp/matrice2.ec should_work/matrice2.lus
 PASS: ./lus2lic {-ec -o /tmp/matrice2.ec should_work/matrice2.lus}
-spawn ./ec2c -o /tmp/matrice2.c /tmp/matrice2.ec
-PASS: ./ec2c {-o /tmp/matrice2.c /tmp/matrice2.ec}
+spawn ./myec2c -o /tmp/matrice2.c /tmp/matrice2.ec
+PASS: ./myec2c {-o /tmp/matrice2.c /tmp/matrice2.ec}
+spawn ../utils/test_lus2lic_no_node should_work/matrice2.lus
++ ./lus2lic should_work/matrice2.lus -n matrice2 --gen-autotest -np
+_matrice2_env.lut generated.
+_matrice2_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/matrice2.lus
++ ./lus2lic should_work/matrice2.lus -n matrice2 -ec -o matrice2.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:matrice2.ec:matrice2 -rp env:lutin:_matrice2_env.lut -rp oracle:v6:_matrice2_oracle.lus:matrice2_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/matrice2.lus
 spawn ./lus2lic -o /tmp/v1.lic should_work/v1.lus
 PASS: ./lus2lic {-o /tmp/v1.lic should_work/v1.lus}
 spawn ./lus2lic -ec -o /tmp/v1.ec should_work/v1.lus
 PASS: ./lus2lic {-ec -o /tmp/v1.ec should_work/v1.lus}
-spawn ./ec2c -o /tmp/v1.c /tmp/v1.ec
-PASS: ./ec2c {-o /tmp/v1.c /tmp/v1.ec}
+spawn ./myec2c -o /tmp/v1.c /tmp/v1.ec
+PASS: ./myec2c {-o /tmp/v1.c /tmp/v1.ec}
+spawn ../utils/test_lus2lic_no_node should_work/v1.lus
++ ./lus2lic should_work/v1.lus -n v1 --gen-autotest -np
+_v1_env.lut generated.
+_v1_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/v1.lus
++ ./lus2lic should_work/v1.lus -n v1 -ec -o v1.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:v1.ec:v1 -rp env:lutin:_v1_env.lut -rp oracle:v6:_v1_oracle.lus:v1_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/v1.lus
 spawn ./lus2lic -o /tmp/ply02.lic should_work/ply02.lus
 PASS: ./lus2lic {-o /tmp/ply02.lic should_work/ply02.lus}
 spawn ./lus2lic -ec -o /tmp/ply02.ec should_work/ply02.lus
 PASS: ./lus2lic {-ec -o /tmp/ply02.ec should_work/ply02.lus}
-spawn ./ec2c -o /tmp/ply02.c /tmp/ply02.ec
-PASS: ./ec2c {-o /tmp/ply02.c /tmp/ply02.ec}
+spawn ./myec2c -o /tmp/ply02.c /tmp/ply02.ec
+PASS: ./myec2c {-o /tmp/ply02.c /tmp/ply02.ec}
+spawn ../utils/test_lus2lic_no_node should_work/ply02.lus
++ ./lus2lic should_work/ply02.lus -n ply02 --gen-autotest -np
+_ply02_env.lut generated.
+_ply02_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/ply02.lus
++ ./lus2lic should_work/ply02.lus -n ply02 -ec -o ply02.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ply02.ec:ply02 -rp env:lutin:_ply02_env.lut -rp oracle:v6:_ply02_oracle.lus:ply02_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/ply02.lus
 spawn ./lus2lic -o /tmp/call04.lic should_work/call04.lus
 PASS: ./lus2lic {-o /tmp/call04.lic should_work/call04.lus}
 spawn ./lus2lic -ec -o /tmp/call04.ec should_work/call04.lus
 PASS: ./lus2lic {-ec -o /tmp/call04.ec should_work/call04.lus}
-spawn ./ec2c -o /tmp/call04.c /tmp/call04.ec
-PASS: ./ec2c {-o /tmp/call04.c /tmp/call04.ec}
+spawn ./myec2c -o /tmp/call04.c /tmp/call04.ec
+PASS: ./myec2c {-o /tmp/call04.c /tmp/call04.ec}
+spawn ../utils/test_lus2lic_no_node should_work/call04.lus
++ ./lus2lic should_work/call04.lus -n call04 --gen-autotest -np
+_call04_env.lut generated.
+_call04_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/call04.lus
++ ./lus2lic should_work/call04.lus -n call04 -ec -o call04.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:call04.ec:call04 -rp env:lutin:_call04_env.lut -rp oracle:v6:_call04_oracle.lus:call04_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/call04.lus
 spawn ./lus2lic -o /tmp/bascule.lic should_work/bascule.lus
 PASS: ./lus2lic {-o /tmp/bascule.lic should_work/bascule.lus}
 spawn ./lus2lic -ec -o /tmp/bascule.ec should_work/bascule.lus
 PASS: ./lus2lic {-ec -o /tmp/bascule.ec should_work/bascule.lus}
-spawn ./ec2c -o /tmp/bascule.c /tmp/bascule.ec
-PASS: ./ec2c {-o /tmp/bascule.c /tmp/bascule.ec}
+spawn ./myec2c -o /tmp/bascule.c /tmp/bascule.ec
+PASS: ./myec2c {-o /tmp/bascule.c /tmp/bascule.ec}
+spawn ../utils/test_lus2lic_no_node should_work/bascule.lus
++ ./lus2lic should_work/bascule.lus -n bascule --gen-autotest -np
+_bascule_env.lut generated.
+_bascule_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/bascule.lus
++ ./lus2lic should_work/bascule.lus -n bascule -ec -o bascule.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:bascule.ec:bascule -rp env:lutin:_bascule_env.lut -rp oracle:v6:_bascule_oracle.lus:bascule_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/bascule.lus
+spawn ./lus2lic -o /tmp/double_delay.lic should_work/double_delay.lus
+PASS: ./lus2lic {-o /tmp/double_delay.lic should_work/double_delay.lus}
+spawn ./lus2lic -ec -o /tmp/double_delay.ec should_work/double_delay.lus
+PASS: ./lus2lic {-ec -o /tmp/double_delay.ec should_work/double_delay.lus}
+spawn ./myec2c -o /tmp/double_delay.c /tmp/double_delay.ec
+PASS: ./myec2c {-o /tmp/double_delay.c /tmp/double_delay.ec}
+spawn ../utils/test_lus2lic_no_node should_work/double_delay.lus
++ ./lus2lic should_work/double_delay.lus -n double_delay --gen-autotest -np
+_double_delay_env.lut generated.
+_double_delay_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/double_delay.lus
++ ./lus2lic should_work/double_delay.lus -n double_delay -ec -o double_delay.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:double_delay.ec:double_delay -rp env:lutin:_double_delay_env.lut -rp oracle:v6:_double_delay_oracle.lus:double_delay_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/double_delay.lus
+spawn ./lus2lic -o /tmp/modes3x2-v2.lic should_work/modes3x2-v2.lus
+PASS: ./lus2lic {-o /tmp/modes3x2-v2.lic should_work/modes3x2-v2.lus}
+spawn ./lus2lic -ec -o /tmp/modes3x2-v2.ec should_work/modes3x2-v2.lus
+PASS: ./lus2lic {-ec -o /tmp/modes3x2-v2.ec should_work/modes3x2-v2.lus}
+spawn ./myec2c -o /tmp/modes3x2-v2.c /tmp/modes3x2-v2.ec
+PASS: ./myec2c {-o /tmp/modes3x2-v2.c /tmp/modes3x2-v2.ec}
+spawn ../utils/test_lus2lic_no_node should_work/modes3x2-v2.lus
++ ./lus2lic should_work/modes3x2-v2.lus -n modes3x2-v2 --gen-autotest -np
+Error. Can not find node modes3x2-v2 in dummy
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/modes3x2-v2.lus
 spawn ./lus2lic -o /tmp/struct_with.lic should_work/struct_with.lus
 PASS: ./lus2lic {-o /tmp/struct_with.lic should_work/struct_with.lus}
 spawn ./lus2lic -ec -o /tmp/struct_with.ec should_work/struct_with.lus
 PASS: ./lus2lic {-ec -o /tmp/struct_with.ec should_work/struct_with.lus}
-spawn ./ec2c -o /tmp/struct_with.c /tmp/struct_with.ec
-PASS: ./ec2c {-o /tmp/struct_with.c /tmp/struct_with.ec}
+spawn ./myec2c -o /tmp/struct_with.c /tmp/struct_with.ec
+PASS: ./myec2c {-o /tmp/struct_with.c /tmp/struct_with.ec}
+spawn ../utils/test_lus2lic_no_node should_work/struct_with.lus
++ ./lus2lic should_work/struct_with.lus -n struct_with --gen-autotest -np
+_struct_with_env.lut generated.
+_struct_with_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/struct_with.lus
++ ./lus2lic should_work/struct_with.lus -n struct_with -ec -o struct_with.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:struct_with.ec:struct_with -rp env:lutin:_struct_with_env.lut -rp oracle:v6:_struct_with_oracle.lus:struct_with_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/struct_with.lus
 spawn ./lus2lic -o /tmp/test_node_expand.lic should_work/test_node_expand.lus
 PASS: ./lus2lic {-o /tmp/test_node_expand.lic should_work/test_node_expand.lus}
 spawn ./lus2lic -ec -o /tmp/test_node_expand.ec should_work/test_node_expand.lus
 PASS: ./lus2lic {-ec -o /tmp/test_node_expand.ec should_work/test_node_expand.lus}
-spawn ./ec2c -o /tmp/test_node_expand.c /tmp/test_node_expand.ec
-PASS: ./ec2c {-o /tmp/test_node_expand.c /tmp/test_node_expand.ec}
+spawn ./myec2c -o /tmp/test_node_expand.c /tmp/test_node_expand.ec
+PASS: ./myec2c {-o /tmp/test_node_expand.c /tmp/test_node_expand.ec}
+spawn ../utils/test_lus2lic_no_node should_work/test_node_expand.lus
++ ./lus2lic should_work/test_node_expand.lus -n test_node_expand --gen-autotest -np
+_test_node_expand_env.lut generated.
+_test_node_expand_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/test_node_expand.lus
++ ./lus2lic should_work/test_node_expand.lus -n test_node_expand -ec -o test_node_expand.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:test_node_expand.ec:test_node_expand -rp env:lutin:_test_node_expand_env.lut -rp oracle:v6:_test_node_expand_oracle.lus:test_node_expand_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+Failure occured in lurette: int_of_string
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/test_node_expand.lus
 spawn ./lus2lic -o /tmp/mm22.lic should_work/mm22.lus
 PASS: ./lus2lic {-o /tmp/mm22.lic should_work/mm22.lus}
 spawn ./lus2lic -ec -o /tmp/mm22.ec should_work/mm22.lus
 PASS: ./lus2lic {-ec -o /tmp/mm22.ec should_work/mm22.lus}
-spawn ./ec2c -o /tmp/mm22.c /tmp/mm22.ec
-PASS: ./ec2c {-o /tmp/mm22.c /tmp/mm22.ec}
-spawn ./lus2lic -o /tmp/X1.lic should_work/X1.lus
-PASS: ./lus2lic {-o /tmp/X1.lic should_work/X1.lus}
-spawn ./lus2lic -ec -o /tmp/X1.ec should_work/X1.lus
-PASS: ./lus2lic {-ec -o /tmp/X1.ec should_work/X1.lus}
-spawn ./ec2c -o /tmp/X1.c /tmp/X1.ec
-PASS: ./ec2c {-o /tmp/X1.c /tmp/X1.ec}
+spawn ./myec2c -o /tmp/mm22.c /tmp/mm22.ec
+PASS: ./myec2c {-o /tmp/mm22.c /tmp/mm22.ec}
+spawn ../utils/test_lus2lic_no_node should_work/mm22.lus
++ ./lus2lic should_work/mm22.lus -n mm22 --gen-autotest -np
+_mm22_env.lut generated.
+_mm22_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/mm22.lus
++ ./lus2lic should_work/mm22.lus -n mm22 -ec -o mm22.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mm22.ec:mm22 -rp env:lutin:_mm22_env.lut -rp oracle:v6:_mm22_oracle.lus:mm22_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/mm22.lus
 spawn ./lus2lic -o /tmp/is_stable.lic should_work/is_stable.lus
 PASS: ./lus2lic {-o /tmp/is_stable.lic should_work/is_stable.lus}
 spawn ./lus2lic -ec -o /tmp/is_stable.ec should_work/is_stable.lus
 PASS: ./lus2lic {-ec -o /tmp/is_stable.ec should_work/is_stable.lus}
-spawn ./ec2c -o /tmp/is_stable.c /tmp/is_stable.ec
-PASS: ./ec2c {-o /tmp/is_stable.c /tmp/is_stable.ec}
+spawn ./myec2c -o /tmp/is_stable.c /tmp/is_stable.ec
+PASS: ./myec2c {-o /tmp/is_stable.c /tmp/is_stable.ec}
+spawn ../utils/test_lus2lic_no_node should_work/is_stable.lus
++ ./lus2lic should_work/is_stable.lus -n is_stable --gen-autotest -np
+_is_stable_env.lut generated.
+_is_stable_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/is_stable.lus
++ ./lus2lic should_work/is_stable.lus -n is_stable -ec -o is_stable.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:is_stable.ec:is_stable -rp env:lutin:_is_stable_env.lut -rp oracle:v6:_is_stable_oracle.lus:is_stable_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/is_stable.lus
 spawn ./lus2lic -o /tmp/test_clash.lic should_work/test_clash.lus
 PASS: ./lus2lic {-o /tmp/test_clash.lic should_work/test_clash.lus}
 spawn ./lus2lic -ec -o /tmp/test_clash.ec should_work/test_clash.lus
 PASS: ./lus2lic {-ec -o /tmp/test_clash.ec should_work/test_clash.lus}
-spawn ./ec2c -o /tmp/test_clash.c /tmp/test_clash.ec
-PASS: ./ec2c {-o /tmp/test_clash.c /tmp/test_clash.ec}
+spawn ./myec2c -o /tmp/test_clash.c /tmp/test_clash.ec
+PASS: ./myec2c {-o /tmp/test_clash.c /tmp/test_clash.ec}
+spawn ../utils/test_lus2lic_no_node should_work/test_clash.lus
++ ./lus2lic should_work/test_clash.lus -n test_clash --gen-autotest -np
+*** Can not find package 'test_clash' in the following packages: 
+***	 'test'
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/test_clash.lus
 spawn ./lus2lic -o /tmp/model2.lic should_work/model2.lus
 PASS: ./lus2lic {-o /tmp/model2.lic should_work/model2.lus}
 spawn ./lus2lic -ec -o /tmp/model2.ec should_work/model2.lus
 PASS: ./lus2lic {-ec -o /tmp/model2.ec should_work/model2.lus}
-spawn ./ec2c -o /tmp/model2.c /tmp/model2.ec
-PASS: ./ec2c {-o /tmp/model2.c /tmp/model2.ec}
-spawn ./lus2lic -o /tmp/alarme.lic should_work/alarme.lus
-PASS: ./lus2lic {-o /tmp/alarme.lic should_work/alarme.lus}
-spawn ./lus2lic -ec -o /tmp/alarme.ec should_work/alarme.lus
-PASS: ./lus2lic {-ec -o /tmp/alarme.ec should_work/alarme.lus}
-spawn ./ec2c -o /tmp/alarme.c /tmp/alarme.ec
-PASS: ./ec2c {-o /tmp/alarme.c /tmp/alarme.ec}
+spawn ./myec2c -o /tmp/model2.c /tmp/model2.ec
+PASS: ./myec2c {-o /tmp/model2.c /tmp/model2.ec}
+spawn ../utils/test_lus2lic_no_node should_work/model2.lus
++ ./lus2lic should_work/model2.lus -n model2 --gen-autotest -np
+*** Can not find package 'model2' in the following packages: 
+***	 'p'
+***	 'u'
+***	 'p2'
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/model2.lus
 spawn ./lus2lic -o /tmp/onlyroll2.lic should_work/onlyroll2.lus
 PASS: ./lus2lic {-o /tmp/onlyroll2.lic should_work/onlyroll2.lus}
 spawn ./lus2lic -ec -o /tmp/onlyroll2.ec should_work/onlyroll2.lus
 PASS: ./lus2lic {-ec -o /tmp/onlyroll2.ec should_work/onlyroll2.lus}
-spawn ./ec2c -o /tmp/onlyroll2.c /tmp/onlyroll2.ec
-PASS: ./ec2c {-o /tmp/onlyroll2.c /tmp/onlyroll2.ec}
+spawn ./myec2c -o /tmp/onlyroll2.c /tmp/onlyroll2.ec
+PASS: ./myec2c {-o /tmp/onlyroll2.c /tmp/onlyroll2.ec}
+spawn ../utils/test_lus2lic_no_node should_work/onlyroll2.lus
++ ./lus2lic should_work/onlyroll2.lus -n onlyroll2 --gen-autotest -np
+_onlyroll2_env.lut generated.
+_onlyroll2_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/onlyroll2.lus
++ ./lus2lic should_work/onlyroll2.lus -n onlyroll2 -ec -o onlyroll2.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:onlyroll2.ec:onlyroll2 -rp env:lutin:_onlyroll2_env.lut -rp oracle:v6:_onlyroll2_oracle.lus:onlyroll2_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/onlyroll2.lus
 spawn ./lus2lic -o /tmp/X6.lic should_work/X6.lus
 PASS: ./lus2lic {-o /tmp/X6.lic should_work/X6.lus}
 spawn ./lus2lic -ec -o /tmp/X6.ec should_work/X6.lus
 PASS: ./lus2lic {-ec -o /tmp/X6.ec should_work/X6.lus}
-spawn ./ec2c -o /tmp/X6.c /tmp/X6.ec
-PASS: ./ec2c {-o /tmp/X6.c /tmp/X6.ec}
+spawn ./myec2c -o /tmp/X6.c /tmp/X6.ec
+PASS: ./myec2c {-o /tmp/X6.c /tmp/X6.ec}
+spawn ../utils/test_lus2lic_no_node should_work/X6.lus
++ ./lus2lic should_work/X6.lus -n X6 --gen-autotest -np
+_X6_env.lut generated.
+_X6_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/X6.lus
++ ./lus2lic should_work/X6.lus -n X6 -ec -o X6.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:X6.ec:X6 -rp env:lutin:_X6_env.lut -rp oracle:v6:_X6_oracle.lus:X6_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on b on base\n")
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/X6.lus
 spawn ./lus2lic -o /tmp/zzz2.lic should_work/zzz2.lus
 PASS: ./lus2lic {-o /tmp/zzz2.lic should_work/zzz2.lus}
 spawn ./lus2lic -ec -o /tmp/zzz2.ec should_work/zzz2.lus
 PASS: ./lus2lic {-ec -o /tmp/zzz2.ec should_work/zzz2.lus}
-spawn ./ec2c -o /tmp/zzz2.c /tmp/zzz2.ec
-PASS: ./ec2c {-o /tmp/zzz2.c /tmp/zzz2.ec}
+spawn ./myec2c -o /tmp/zzz2.c /tmp/zzz2.ec
+PASS: ./myec2c {-o /tmp/zzz2.c /tmp/zzz2.ec}
+spawn ../utils/test_lus2lic_no_node should_work/zzz2.lus
++ ./lus2lic should_work/zzz2.lus -n zzz2 --gen-autotest -np
+_zzz2_env.lut generated.
+_zzz2_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/zzz2.lus
++ ./lus2lic should_work/zzz2.lus -n zzz2 -ec -o zzz2.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:zzz2.ec:zzz2 -rp env:lutin:_zzz2_env.lut -rp oracle:v6:_zzz2_oracle.lus:zzz2_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/zzz2.lus
 spawn ./lus2lic -o /tmp/polymorphic_pack.lic should_work/polymorphic_pack.lus
 PASS: ./lus2lic {-o /tmp/polymorphic_pack.lic should_work/polymorphic_pack.lus}
 spawn ./lus2lic -ec -o /tmp/polymorphic_pack.ec should_work/polymorphic_pack.lus
 PASS: ./lus2lic {-ec -o /tmp/polymorphic_pack.ec should_work/polymorphic_pack.lus}
-spawn ./ec2c -o /tmp/polymorphic_pack.c /tmp/polymorphic_pack.ec
-PASS: ./ec2c {-o /tmp/polymorphic_pack.c /tmp/polymorphic_pack.ec}
+spawn ./myec2c -o /tmp/polymorphic_pack.c /tmp/polymorphic_pack.ec
+PASS: ./myec2c {-o /tmp/polymorphic_pack.c /tmp/polymorphic_pack.ec}
+spawn ../utils/test_lus2lic_no_node should_work/polymorphic_pack.lus
++ ./lus2lic should_work/polymorphic_pack.lus -n polymorphic_pack --gen-autotest -np
+*** Can not find package 'polymorphic_pack' in the following packages: 
+***	 'p'
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/polymorphic_pack.lus
 spawn ./lus2lic -o /tmp/COUNTER.lic should_work/COUNTER.lus
 PASS: ./lus2lic {-o /tmp/COUNTER.lic should_work/COUNTER.lus}
 spawn ./lus2lic -ec -o /tmp/COUNTER.ec should_work/COUNTER.lus
 PASS: ./lus2lic {-ec -o /tmp/COUNTER.ec should_work/COUNTER.lus}
-spawn ./ec2c -o /tmp/COUNTER.c /tmp/COUNTER.ec
-PASS: ./ec2c {-o /tmp/COUNTER.c /tmp/COUNTER.ec}
+spawn ./myec2c -o /tmp/COUNTER.c /tmp/COUNTER.ec
+PASS: ./myec2c {-o /tmp/COUNTER.c /tmp/COUNTER.ec}
+spawn ../utils/test_lus2lic_no_node should_work/COUNTER.lus
++ ./lus2lic should_work/COUNTER.lus -n COUNTER --gen-autotest -np
+_COUNTER_env.lut generated.
+_COUNTER_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/COUNTER.lus
++ ./lus2lic should_work/COUNTER.lus -n COUNTER -ec -o COUNTER.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:COUNTER.ec:COUNTER -rp env:lutin:_COUNTER_env.lut -rp oracle:v6:_COUNTER_oracle.lus:COUNTER_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/COUNTER.lus
 spawn ./lus2lic -o /tmp/minmax3.lic should_work/minmax3.lus
 PASS: ./lus2lic {-o /tmp/minmax3.lic should_work/minmax3.lus}
 spawn ./lus2lic -ec -o /tmp/minmax3.ec should_work/minmax3.lus
 PASS: ./lus2lic {-ec -o /tmp/minmax3.ec should_work/minmax3.lus}
-spawn ./ec2c -o /tmp/minmax3.c /tmp/minmax3.ec
-PASS: ./ec2c {-o /tmp/minmax3.c /tmp/minmax3.ec}
-spawn ./lus2lic -o /tmp/X3.lic should_work/X3.lus
-PASS: ./lus2lic {-o /tmp/X3.lic should_work/X3.lus}
-spawn ./lus2lic -ec -o /tmp/X3.ec should_work/X3.lus
-PASS: ./lus2lic {-ec -o /tmp/X3.ec should_work/X3.lus}
-spawn ./ec2c -o /tmp/X3.c /tmp/X3.ec
-PASS: ./ec2c {-o /tmp/X3.c /tmp/X3.ec}
+spawn ./myec2c -o /tmp/minmax3.c /tmp/minmax3.ec
+PASS: ./myec2c {-o /tmp/minmax3.c /tmp/minmax3.ec}
+spawn ../utils/test_lus2lic_no_node should_work/minmax3.lus
++ ./lus2lic should_work/minmax3.lus -n minmax3 --gen-autotest -np
+_minmax3_env.lut generated.
+_minmax3_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/minmax3.lus
++ ./lus2lic should_work/minmax3.lus -n minmax3 -ec -o minmax3.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:minmax3.ec:minmax3 -rp env:lutin:_minmax3_env.lut -rp oracle:v6:_minmax3_oracle.lus:minmax3_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/minmax3.lus
 spawn ./lus2lic -o /tmp/filter.lic should_work/filter.lus
 PASS: ./lus2lic {-o /tmp/filter.lic should_work/filter.lus}
 spawn ./lus2lic -ec -o /tmp/filter.ec should_work/filter.lus
 PASS: ./lus2lic {-ec -o /tmp/filter.ec should_work/filter.lus}
-spawn ./ec2c -o /tmp/filter.c /tmp/filter.ec
-PASS: ./ec2c {-o /tmp/filter.c /tmp/filter.ec}
+spawn ./myec2c -o /tmp/filter.c /tmp/filter.ec
+PASS: ./myec2c {-o /tmp/filter.c /tmp/filter.ec}
+spawn ../utils/test_lus2lic_no_node should_work/filter.lus
++ ./lus2lic should_work/filter.lus -n filter --gen-autotest -np
+Error. A combinational cycle been detected in file "/home/jahier/lus2lic/test/should_work/filter.lus", line 5, col 5 to 10, token 'filter' on 
+  v00 = (z.x)
+  v03 = (z.y)
+  v00 = (z.x)
+  v04 = (v03.y)
+  z.x.y = (v00.x)
+  ok = Lustre::lt(v04, v06)
+
+Hint: try to use --expand-nodes.
+
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/filter.lus
 spawn ./lus2lic -o /tmp/ec.lic should_work/ec.lus
 PASS: ./lus2lic {-o /tmp/ec.lic should_work/ec.lus}
 spawn ./lus2lic -ec -o /tmp/ec.ec should_work/ec.lus
 PASS: ./lus2lic {-ec -o /tmp/ec.ec should_work/ec.lus}
-spawn ./ec2c -o /tmp/ec.c /tmp/ec.ec
-PASS: ./ec2c {-o /tmp/ec.c /tmp/ec.ec}
+spawn ./myec2c -o /tmp/ec.c /tmp/ec.ec
+PASS: ./myec2c {-o /tmp/ec.c /tmp/ec.ec}
+spawn ../utils/test_lus2lic_no_node should_work/ec.lus
++ ./lus2lic should_work/ec.lus -n ec --gen-autotest -np
+_ec_env.lut generated.
+_ec_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/ec.lus
++ ./lus2lic should_work/ec.lus -n ec -ec -o ec.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ec.ec:ec -rp env:lutin:_ec_env.lut -rp oracle:v6:_ec_oracle.lus:ec_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/ec.lus
 spawn ./lus2lic -o /tmp/morel3.lic should_work/morel3.lus
 PASS: ./lus2lic {-o /tmp/morel3.lic should_work/morel3.lus}
 spawn ./lus2lic -ec -o /tmp/morel3.ec should_work/morel3.lus
 PASS: ./lus2lic {-ec -o /tmp/morel3.ec should_work/morel3.lus}
-spawn ./ec2c -o /tmp/morel3.c /tmp/morel3.ec
-PASS: ./ec2c {-o /tmp/morel3.c /tmp/morel3.ec}
+spawn ./myec2c -o /tmp/morel3.c /tmp/morel3.ec
+PASS: ./myec2c {-o /tmp/morel3.c /tmp/morel3.ec}
+spawn ../utils/test_lus2lic_no_node should_work/morel3.lus
++ ./lus2lic should_work/morel3.lus -n morel3 --gen-autotest -np
+_morel3_env.lut generated.
+_morel3_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/morel3.lus
++ ./lus2lic should_work/morel3.lus -n morel3 -ec -o morel3.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:morel3.ec:morel3 -rp env:lutin:_morel3_env.lut -rp oracle:v6:_morel3_oracle.lus:morel3_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/morel3.lus
 spawn ./lus2lic -o /tmp/fresh_name.lic should_work/fresh_name.lus
 PASS: ./lus2lic {-o /tmp/fresh_name.lic should_work/fresh_name.lus}
 spawn ./lus2lic -ec -o /tmp/fresh_name.ec should_work/fresh_name.lus
 PASS: ./lus2lic {-ec -o /tmp/fresh_name.ec should_work/fresh_name.lus}
-spawn ./ec2c -o /tmp/fresh_name.c /tmp/fresh_name.ec
-PASS: ./ec2c {-o /tmp/fresh_name.c /tmp/fresh_name.ec}
+spawn ./myec2c -o /tmp/fresh_name.c /tmp/fresh_name.ec
+PASS: ./myec2c {-o /tmp/fresh_name.c /tmp/fresh_name.ec}
+spawn ../utils/test_lus2lic_no_node should_work/fresh_name.lus
++ ./lus2lic should_work/fresh_name.lus -n fresh_name --gen-autotest -np
+_fresh_name_env.lut generated.
+_fresh_name_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/fresh_name.lus
++ ./lus2lic should_work/fresh_name.lus -n fresh_name -ec -o fresh_name.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:fresh_name.ec:fresh_name -rp env:lutin:_fresh_name_env.lut -rp oracle:v6:_fresh_name_oracle.lus:fresh_name_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/fresh_name.lus
 spawn ./lus2lic -o /tmp/ply03.lic should_work/ply03.lus
 PASS: ./lus2lic {-o /tmp/ply03.lic should_work/ply03.lus}
 spawn ./lus2lic -ec -o /tmp/ply03.ec should_work/ply03.lus
 PASS: ./lus2lic {-ec -o /tmp/ply03.ec should_work/ply03.lus}
-spawn ./ec2c -o /tmp/ply03.c /tmp/ply03.ec
-PASS: ./ec2c {-o /tmp/ply03.c /tmp/ply03.ec}
+spawn ./myec2c -o /tmp/ply03.c /tmp/ply03.ec
+PASS: ./myec2c {-o /tmp/ply03.c /tmp/ply03.ec}
+spawn ../utils/test_lus2lic_no_node should_work/ply03.lus
++ ./lus2lic should_work/ply03.lus -n ply03 --gen-autotest -np
+_ply03_env.lut generated.
+_ply03_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/ply03.lus
++ ./lus2lic should_work/ply03.lus -n ply03 -ec -o ply03.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ply03.ec:ply03 -rp env:lutin:_ply03_env.lut -rp oracle:v6:_ply03_oracle.lus:ply03_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/ply03.lus
 spawn ./lus2lic -o /tmp/param_struct.lic should_work/param_struct.lus
 PASS: ./lus2lic {-o /tmp/param_struct.lic should_work/param_struct.lus}
 spawn ./lus2lic -ec -o /tmp/param_struct.ec should_work/param_struct.lus
 PASS: ./lus2lic {-ec -o /tmp/param_struct.ec should_work/param_struct.lus}
-spawn ./ec2c -o /tmp/param_struct.c /tmp/param_struct.ec
-PASS: ./ec2c {-o /tmp/param_struct.c /tmp/param_struct.ec}
+spawn ./myec2c -o /tmp/param_struct.c /tmp/param_struct.ec
+PASS: ./myec2c {-o /tmp/param_struct.c /tmp/param_struct.ec}
+spawn ../utils/test_lus2lic_no_node should_work/param_struct.lus
++ ./lus2lic should_work/param_struct.lus -n param_struct --gen-autotest -np
+_param_struct_env.lut generated.
+_param_struct_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/param_struct.lus
++ ./lus2lic should_work/param_struct.lus -n param_struct -ec -o param_struct.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:param_struct.ec:param_struct -rp env:lutin:_param_struct_env.lut -rp oracle:v6:_param_struct_oracle.lus:param_struct_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/param_struct.lus
 spawn ./lus2lic -o /tmp/minmax2.lic should_work/minmax2.lus
 PASS: ./lus2lic {-o /tmp/minmax2.lic should_work/minmax2.lus}
 spawn ./lus2lic -ec -o /tmp/minmax2.ec should_work/minmax2.lus
 PASS: ./lus2lic {-ec -o /tmp/minmax2.ec should_work/minmax2.lus}
-spawn ./ec2c -o /tmp/minmax2.c /tmp/minmax2.ec
-PASS: ./ec2c {-o /tmp/minmax2.c /tmp/minmax2.ec}
+spawn ./myec2c -o /tmp/minmax2.c /tmp/minmax2.ec
+PASS: ./myec2c {-o /tmp/minmax2.c /tmp/minmax2.ec}
+spawn ../utils/test_lus2lic_no_node should_work/minmax2.lus
++ ./lus2lic should_work/minmax2.lus -n minmax2 --gen-autotest -np
+_minmax2_env.lut generated.
+_minmax2_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/minmax2.lus
++ ./lus2lic should_work/minmax2.lus -n minmax2 -ec -o minmax2.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:minmax2.ec:minmax2 -rp env:lutin:_minmax2_env.lut -rp oracle:v6:_minmax2_oracle.lus:minmax2_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/minmax2.lus
 spawn ./lus2lic -o /tmp/plus.lic should_work/plus.lus
 PASS: ./lus2lic {-o /tmp/plus.lic should_work/plus.lus}
 spawn ./lus2lic -ec -o /tmp/plus.ec should_work/plus.lus
 PASS: ./lus2lic {-ec -o /tmp/plus.ec should_work/plus.lus}
-spawn ./ec2c -o /tmp/plus.c /tmp/plus.ec
-PASS: ./ec2c {-o /tmp/plus.c /tmp/plus.ec}
+spawn ./myec2c -o /tmp/plus.c /tmp/plus.ec
+PASS: ./myec2c {-o /tmp/plus.c /tmp/plus.ec}
+spawn ../utils/test_lus2lic_no_node should_work/plus.lus
++ ./lus2lic should_work/plus.lus -n plus --gen-autotest -np
+_plus_env.lut generated.
+_plus_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/plus.lus
++ ./lus2lic should_work/plus.lus -n plus -ec -o plus.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:plus.ec:plus -rp env:lutin:_plus_env.lut -rp oracle:v6:_plus_oracle.lus:plus_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/plus.lus
 spawn ./lus2lic -o /tmp/xx.lic should_work/xx.lus
 PASS: ./lus2lic {-o /tmp/xx.lic should_work/xx.lus}
 spawn ./lus2lic -ec -o /tmp/xx.ec should_work/xx.lus
 PASS: ./lus2lic {-ec -o /tmp/xx.ec should_work/xx.lus}
-spawn ./ec2c -o /tmp/xx.c /tmp/xx.ec
-PASS: ./ec2c {-o /tmp/xx.c /tmp/xx.ec}
+spawn ./myec2c -o /tmp/xx.c /tmp/xx.ec
+PASS: ./myec2c {-o /tmp/xx.c /tmp/xx.ec}
+spawn ../utils/test_lus2lic_no_node should_work/xx.lus
++ ./lus2lic should_work/xx.lus -n xx --gen-autotest -np
+_xx_env.lut generated.
+_xx_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/xx.lus
++ ./lus2lic should_work/xx.lus -n xx -ec -o xx.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:xx.ec:xx -rp env:lutin:_xx_env.lut -rp oracle:v6:_xx_oracle.lus:xx_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/xx.lus
 spawn ./lus2lic -o /tmp/call07.lic should_work/call07.lus
 PASS: ./lus2lic {-o /tmp/call07.lic should_work/call07.lus}
 spawn ./lus2lic -ec -o /tmp/call07.ec should_work/call07.lus
 PASS: ./lus2lic {-ec -o /tmp/call07.ec should_work/call07.lus}
-spawn ./ec2c -o /tmp/call07.c /tmp/call07.ec
-PASS: ./ec2c {-o /tmp/call07.c /tmp/call07.ec}
+spawn ./myec2c -o /tmp/call07.c /tmp/call07.ec
+PASS: ./myec2c {-o /tmp/call07.c /tmp/call07.ec}
+spawn ../utils/test_lus2lic_no_node should_work/call07.lus
++ ./lus2lic should_work/call07.lus -n call07 --gen-autotest -np
+_call07_env.lut generated.
+_call07_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/call07.lus
++ ./lus2lic should_work/call07.lus -n call07 -ec -o call07.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:call07.ec:call07 -rp env:lutin:_call07_env.lut -rp oracle:v6:_call07_oracle.lus:call07_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/call07.lus
 spawn ./lus2lic -o /tmp/shift_ludic.lic should_work/shift_ludic.lus
 PASS: ./lus2lic {-o /tmp/shift_ludic.lic should_work/shift_ludic.lus}
 spawn ./lus2lic -ec -o /tmp/shift_ludic.ec should_work/shift_ludic.lus
 PASS: ./lus2lic {-ec -o /tmp/shift_ludic.ec should_work/shift_ludic.lus}
-spawn ./ec2c -o /tmp/shift_ludic.c /tmp/shift_ludic.ec
-PASS: ./ec2c {-o /tmp/shift_ludic.c /tmp/shift_ludic.ec}
+spawn ./myec2c -o /tmp/shift_ludic.c /tmp/shift_ludic.ec
+PASS: ./myec2c {-o /tmp/shift_ludic.c /tmp/shift_ludic.ec}
+spawn ../utils/test_lus2lic_no_node should_work/shift_ludic.lus
++ ./lus2lic should_work/shift_ludic.lus -n shift_ludic --gen-autotest -np
+_shift_ludic_env.lut generated.
+_shift_ludic_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/shift_ludic.lus
++ ./lus2lic should_work/shift_ludic.lus -n shift_ludic -ec -o shift_ludic.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:shift_ludic.ec:shift_ludic -rp env:lutin:_shift_ludic_env.lut -rp oracle:v6:_shift_ludic_oracle.lus:shift_ludic_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/shift_ludic.lus
 spawn ./lus2lic -o /tmp/pilote-1.0.lic should_work/pilote-1.0.lus
 PASS: ./lus2lic {-o /tmp/pilote-1.0.lic should_work/pilote-1.0.lus}
 spawn ./lus2lic -ec -o /tmp/pilote-1.0.ec should_work/pilote-1.0.lus
 PASS: ./lus2lic {-ec -o /tmp/pilote-1.0.ec should_work/pilote-1.0.lus}
-spawn ./ec2c -o /tmp/pilote-1.0.c /tmp/pilote-1.0.ec
-PASS: ./ec2c {-o /tmp/pilote-1.0.c /tmp/pilote-1.0.ec}
+spawn ./myec2c -o /tmp/pilote-1.0.c /tmp/pilote-1.0.ec
+PASS: ./myec2c {-o /tmp/pilote-1.0.c /tmp/pilote-1.0.ec}
+spawn ../utils/test_lus2lic_no_node should_work/pilote-1.0.lus
++ ./lus2lic should_work/pilote-1.0.lus -n pilote-1.0 --gen-autotest -np
+*** Can not find package 'pilote-1.0' in the following packages: 
+***	 'util'
+***	 'pilote'
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/pilote-1.0.lus
 spawn ./lus2lic -o /tmp/trivial.lic should_work/trivial.lus
 PASS: ./lus2lic {-o /tmp/trivial.lic should_work/trivial.lus}
 spawn ./lus2lic -ec -o /tmp/trivial.ec should_work/trivial.lus
 PASS: ./lus2lic {-ec -o /tmp/trivial.ec should_work/trivial.lus}
-spawn ./ec2c -o /tmp/trivial.c /tmp/trivial.ec
-PASS: ./ec2c {-o /tmp/trivial.c /tmp/trivial.ec}
+spawn ./myec2c -o /tmp/trivial.c /tmp/trivial.ec
+PASS: ./myec2c {-o /tmp/trivial.c /tmp/trivial.ec}
+spawn ../utils/test_lus2lic_no_node should_work/trivial.lus
++ ./lus2lic should_work/trivial.lus -n trivial --gen-autotest -np
+_trivial_env.lut generated.
+_trivial_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/trivial.lus
++ ./lus2lic should_work/trivial.lus -n trivial -ec -o trivial.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:trivial.ec:trivial -rp env:lutin:_trivial_env.lut -rp oracle:v6:_trivial_oracle.lus:trivial_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/trivial.lus
 spawn ./lus2lic -o /tmp/packs.lic should_work/packs.lus
 PASS: ./lus2lic {-o /tmp/packs.lic should_work/packs.lus}
 spawn ./lus2lic -ec -o /tmp/packs.ec should_work/packs.lus
 PASS: ./lus2lic {-ec -o /tmp/packs.ec should_work/packs.lus}
-spawn ./ec2c -o /tmp/packs.c /tmp/packs.ec
-PASS: ./ec2c {-o /tmp/packs.c /tmp/packs.ec}
+spawn ./myec2c -o /tmp/packs.c /tmp/packs.ec
+PASS: ./myec2c {-o /tmp/packs.c /tmp/packs.ec}
+spawn ../utils/test_lus2lic_no_node should_work/packs.lus
++ ./lus2lic should_work/packs.lus -n packs --gen-autotest -np
+*** Can not find package 'packs' in the following packages: 
+***	 'pbool'
+***	 'mainPack'
+***	 'pint'
+***	 'inter'
+***	 'preal'
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/packs.lus
 spawn ./lus2lic -o /tmp/sincos.lic should_work/sincos.lus
 PASS: ./lus2lic {-o /tmp/sincos.lic should_work/sincos.lus}
 spawn ./lus2lic -ec -o /tmp/sincos.ec should_work/sincos.lus
 PASS: ./lus2lic {-ec -o /tmp/sincos.ec should_work/sincos.lus}
-spawn ./ec2c -o /tmp/sincos.c /tmp/sincos.ec
-PASS: ./ec2c {-o /tmp/sincos.c /tmp/sincos.ec}
+spawn ./myec2c -o /tmp/sincos.c /tmp/sincos.ec
+PASS: ./myec2c {-o /tmp/sincos.c /tmp/sincos.ec}
+spawn ../utils/test_lus2lic_no_node should_work/sincos.lus
++ ./lus2lic should_work/sincos.lus -n sincos --gen-autotest -np
+_sincos_env.lut generated.
+_sincos_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/sincos.lus
++ ./lus2lic should_work/sincos.lus -n sincos -ec -o sincos.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:sincos.ec:sincos -rp env:lutin:_sincos_env.lut -rp oracle:v6:_sincos_oracle.lus:sincos_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+#ERROR: Output takes on nil
+RifIO.Bye
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/sincos.lus
 spawn ./lus2lic -o /tmp/newpacks.lic should_work/newpacks.lus
 PASS: ./lus2lic {-o /tmp/newpacks.lic should_work/newpacks.lus}
 spawn ./lus2lic -ec -o /tmp/newpacks.ec should_work/newpacks.lus
 PASS: ./lus2lic {-ec -o /tmp/newpacks.ec should_work/newpacks.lus}
-spawn ./ec2c -o /tmp/newpacks.c /tmp/newpacks.ec
-PASS: ./ec2c {-o /tmp/newpacks.c /tmp/newpacks.ec}
+spawn ./myec2c -o /tmp/newpacks.c /tmp/newpacks.ec
+PASS: ./myec2c {-o /tmp/newpacks.c /tmp/newpacks.ec}
+spawn ../utils/test_lus2lic_no_node should_work/newpacks.lus
++ ./lus2lic should_work/newpacks.lus -n newpacks --gen-autotest -np
+*** Can not find package 'newpacks' in the following packages: 
+***	 'pbool'
+***	 'mainPack'
+***	 'pint'
+***	 'inter'
+***	 'preal'
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/newpacks.lus
 spawn ./lus2lic -o /tmp/morel5.lic should_work/morel5.lus
 PASS: ./lus2lic {-o /tmp/morel5.lic should_work/morel5.lus}
 spawn ./lus2lic -ec -o /tmp/morel5.ec should_work/morel5.lus
 PASS: ./lus2lic {-ec -o /tmp/morel5.ec should_work/morel5.lus}
-spawn ./ec2c -o /tmp/morel5.c /tmp/morel5.ec
-PASS: ./ec2c {-o /tmp/morel5.c /tmp/morel5.ec}
+spawn ./myec2c -o /tmp/morel5.c /tmp/morel5.ec
+PASS: ./myec2c {-o /tmp/morel5.c /tmp/morel5.ec}
+spawn ../utils/test_lus2lic_no_node should_work/morel5.lus
++ ./lus2lic should_work/morel5.lus -n morel5 --gen-autotest -np
+_morel5_env.lut generated.
+_morel5_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/morel5.lus
++ ./lus2lic should_work/morel5.lus -n morel5 -ec -o morel5.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:morel5.ec:morel5 -rp env:lutin:_morel5_env.lut -rp oracle:v6:_morel5_oracle.lus:morel5_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/morel5.lus
 spawn ./lus2lic -o /tmp/bred.lic should_work/bred.lus
 PASS: ./lus2lic {-o /tmp/bred.lic should_work/bred.lus}
 spawn ./lus2lic -ec -o /tmp/bred.ec should_work/bred.lus
 PASS: ./lus2lic {-ec -o /tmp/bred.ec should_work/bred.lus}
-spawn ./ec2c -o /tmp/bred.c /tmp/bred.ec
-PASS: ./ec2c {-o /tmp/bred.c /tmp/bred.ec}
+spawn ./myec2c -o /tmp/bred.c /tmp/bred.ec
+PASS: ./myec2c {-o /tmp/bred.c /tmp/bred.ec}
+spawn ../utils/test_lus2lic_no_node should_work/bred.lus
++ ./lus2lic should_work/bred.lus -n bred --gen-autotest -np
+_bred_env.lut generated.
+_bred_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/bred.lus
++ ./lus2lic should_work/bred.lus -n bred -ec -o bred.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:bred.ec:bred -rp env:lutin:_bred_env.lut -rp oracle:v6:_bred_oracle.lus:bred_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/bred.lus
+spawn ./lus2lic -o /tmp/test_diese.lic should_work/test_diese.lus
+PASS: ./lus2lic {-o /tmp/test_diese.lic should_work/test_diese.lus}
+spawn ./lus2lic -ec -o /tmp/test_diese.ec should_work/test_diese.lus
+PASS: ./lus2lic {-ec -o /tmp/test_diese.ec should_work/test_diese.lus}
+spawn ./myec2c -o /tmp/test_diese.c /tmp/test_diese.ec
+PASS: ./myec2c {-o /tmp/test_diese.c /tmp/test_diese.ec}
+spawn ../utils/test_lus2lic_no_node should_work/test_diese.lus
++ ./lus2lic should_work/test_diese.lus -n test_diese --gen-autotest -np
+_test_diese_env.lut generated.
+_test_diese_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/test_diese.lus
++ ./lus2lic should_work/test_diese.lus -n test_diese -ec -o test_diese.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:test_diese.ec:test_diese -rp env:lutin:_test_diese_env.lut -rp oracle:v6:_test_diese_oracle.lus:test_diese_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/test_diese.lus
 spawn ./lus2lic -o /tmp/tri.lic should_work/tri.lus
 PASS: ./lus2lic {-o /tmp/tri.lic should_work/tri.lus}
 spawn ./lus2lic -ec -o /tmp/tri.ec should_work/tri.lus
 PASS: ./lus2lic {-ec -o /tmp/tri.ec should_work/tri.lus}
-spawn ./ec2c -o /tmp/tri.c /tmp/tri.ec
-PASS: ./ec2c {-o /tmp/tri.c /tmp/tri.ec}
+spawn ./myec2c -o /tmp/tri.c /tmp/tri.ec
+PASS: ./myec2c {-o /tmp/tri.c /tmp/tri.ec}
+spawn ../utils/test_lus2lic_no_node should_work/tri.lus
++ ./lus2lic should_work/tri.lus -n tri --gen-autotest -np
+_tri_env.lut generated.
+_tri_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/tri.lus
++ ./lus2lic should_work/tri.lus -n tri -ec -o tri.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:tri.ec:tri -rp env:lutin:_tri_env.lut -rp oracle:v6:_tri_oracle.lus:tri_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/tri.lus
 spawn ./lus2lic -o /tmp/calculs_max.lic should_work/calculs_max.lus
 PASS: ./lus2lic {-o /tmp/calculs_max.lic should_work/calculs_max.lus}
 spawn ./lus2lic -ec -o /tmp/calculs_max.ec should_work/calculs_max.lus
 PASS: ./lus2lic {-ec -o /tmp/calculs_max.ec should_work/calculs_max.lus}
-spawn ./ec2c -o /tmp/calculs_max.c /tmp/calculs_max.ec
-PASS: ./ec2c {-o /tmp/calculs_max.c /tmp/calculs_max.ec}
+spawn ./myec2c -o /tmp/calculs_max.c /tmp/calculs_max.ec
+PASS: ./myec2c {-o /tmp/calculs_max.c /tmp/calculs_max.ec}
+spawn ../utils/test_lus2lic_no_node should_work/calculs_max.lus
++ ./lus2lic should_work/calculs_max.lus -n calculs_max --gen-autotest -np
+_calculs_max_env.lut generated.
+_calculs_max_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/calculs_max.lus
++ ./lus2lic should_work/calculs_max.lus -n calculs_max -ec -o calculs_max.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:calculs_max.ec:calculs_max -rp env:lutin:_calculs_max_env.lut -rp oracle:v6:_calculs_max_oracle.lus:calculs_max_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/calculs_max.lus
 spawn ./lus2lic -o /tmp/testCA.lic should_work/testCA.lus
 PASS: ./lus2lic {-o /tmp/testCA.lic should_work/testCA.lus}
 spawn ./lus2lic -ec -o /tmp/testCA.ec should_work/testCA.lus
 PASS: ./lus2lic {-ec -o /tmp/testCA.ec should_work/testCA.lus}
-spawn ./ec2c -o /tmp/testCA.c /tmp/testCA.ec
-PASS: ./ec2c {-o /tmp/testCA.c /tmp/testCA.ec}
+spawn ./myec2c -o /tmp/testCA.c /tmp/testCA.ec
+PASS: ./myec2c {-o /tmp/testCA.c /tmp/testCA.ec}
+spawn ../utils/test_lus2lic_no_node should_work/testCA.lus
++ ./lus2lic should_work/testCA.lus -n testCA --gen-autotest -np
+_testCA_env.lut generated.
+_testCA_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/testCA.lus
++ ./lus2lic should_work/testCA.lus -n testCA -ec -o testCA.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:testCA.ec:testCA -rp env:lutin:_testCA_env.lut -rp oracle:v6:_testCA_oracle.lus:testCA_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/testCA.lus
 spawn ./lus2lic -o /tmp/deconne.lic should_work/deconne.lus
 PASS: ./lus2lic {-o /tmp/deconne.lic should_work/deconne.lus}
 spawn ./lus2lic -ec -o /tmp/deconne.ec should_work/deconne.lus
 PASS: ./lus2lic {-ec -o /tmp/deconne.ec should_work/deconne.lus}
-spawn ./ec2c -o /tmp/deconne.c /tmp/deconne.ec
-PASS: ./ec2c {-o /tmp/deconne.c /tmp/deconne.ec}
+spawn ./myec2c -o /tmp/deconne.c /tmp/deconne.ec
+Segmentation fault
+FAIL: Try ec2c on the result: ./myec2c {-o /tmp/deconne.c /tmp/deconne.ec}
 spawn ./lus2lic -o /tmp/noAlarm.lic should_work/noAlarm.lus
 PASS: ./lus2lic {-o /tmp/noAlarm.lic should_work/noAlarm.lus}
 spawn ./lus2lic -ec -o /tmp/noAlarm.ec should_work/noAlarm.lus
 PASS: ./lus2lic {-ec -o /tmp/noAlarm.ec should_work/noAlarm.lus}
-spawn ./ec2c -o /tmp/noAlarm.c /tmp/noAlarm.ec
-PASS: ./ec2c {-o /tmp/noAlarm.c /tmp/noAlarm.ec}
+spawn ./myec2c -o /tmp/noAlarm.c /tmp/noAlarm.ec
+PASS: ./myec2c {-o /tmp/noAlarm.c /tmp/noAlarm.ec}
+spawn ../utils/test_lus2lic_no_node should_work/noAlarm.lus
++ ./lus2lic should_work/noAlarm.lus -n noAlarm --gen-autotest -np
+_noAlarm_env.lut generated.
+_noAlarm_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/noAlarm.lus
++ ./lus2lic should_work/noAlarm.lus -n noAlarm -ec -o noAlarm.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:noAlarm.ec:noAlarm -rp env:lutin:_noAlarm_env.lut -rp oracle:v6:_noAlarm_oracle.lus:noAlarm_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/noAlarm.lus
 spawn ./lus2lic -o /tmp/clock_ite.lic should_work/clock_ite.lus
 PASS: ./lus2lic {-o /tmp/clock_ite.lic should_work/clock_ite.lus}
 spawn ./lus2lic -ec -o /tmp/clock_ite.ec should_work/clock_ite.lus
 PASS: ./lus2lic {-ec -o /tmp/clock_ite.ec should_work/clock_ite.lus}
-spawn ./ec2c -o /tmp/clock_ite.c /tmp/clock_ite.ec
-PASS: ./ec2c {-o /tmp/clock_ite.c /tmp/clock_ite.ec}
+spawn ./myec2c -o /tmp/clock_ite.c /tmp/clock_ite.ec
+PASS: ./myec2c {-o /tmp/clock_ite.c /tmp/clock_ite.ec}
+spawn ../utils/test_lus2lic_no_node should_work/clock_ite.lus
++ ./lus2lic should_work/clock_ite.lus -n clock_ite --gen-autotest -np
+_clock_ite_env.lut generated.
+_clock_ite_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/clock_ite.lus
++ ./lus2lic should_work/clock_ite.lus -n clock_ite -ec -o clock_ite.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:clock_ite.ec:clock_ite -rp env:lutin:_clock_ite_env.lut -rp oracle:v6:_clock_ite_oracle.lus:clock_ite_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on a on base\n")
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/clock_ite.lus
 spawn ./lus2lic -o /tmp/morel4.lic should_work/morel4.lus
 PASS: ./lus2lic {-o /tmp/morel4.lic should_work/morel4.lus}
 spawn ./lus2lic -ec -o /tmp/morel4.ec should_work/morel4.lus
 PASS: ./lus2lic {-ec -o /tmp/morel4.ec should_work/morel4.lus}
-spawn ./ec2c -o /tmp/morel4.c /tmp/morel4.ec
-PASS: ./ec2c {-o /tmp/morel4.c /tmp/morel4.ec}
-spawn ./lus2lic -o /tmp/enum.lic should_work/enum.lus
-PASS: ./lus2lic {-o /tmp/enum.lic should_work/enum.lus}
-spawn ./lus2lic -ec -o /tmp/enum.ec should_work/enum.lus
-PASS: ./lus2lic {-ec -o /tmp/enum.ec should_work/enum.lus}
-spawn ./ec2c -o /tmp/enum.c /tmp/enum.ec
-PASS: ./ec2c {-o /tmp/enum.c /tmp/enum.ec}
+spawn ./myec2c -o /tmp/morel4.c /tmp/morel4.ec
+PASS: ./myec2c {-o /tmp/morel4.c /tmp/morel4.ec}
+spawn ../utils/test_lus2lic_no_node should_work/morel4.lus
++ ./lus2lic should_work/morel4.lus -n morel4 --gen-autotest -np
+_morel4_env.lut generated.
+_morel4_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/morel4.lus
++ ./lus2lic should_work/morel4.lus -n morel4 -ec -o morel4.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:morel4.ec:morel4 -rp env:lutin:_morel4_env.lut -rp oracle:v6:_morel4_oracle.lus:morel4_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/morel4.lus
 spawn ./lus2lic -o /tmp/param_node4.lic should_work/param_node4.lus
 PASS: ./lus2lic {-o /tmp/param_node4.lic should_work/param_node4.lus}
 spawn ./lus2lic -ec -o /tmp/param_node4.ec should_work/param_node4.lus
 PASS: ./lus2lic {-ec -o /tmp/param_node4.ec should_work/param_node4.lus}
-spawn ./ec2c -o /tmp/param_node4.c /tmp/param_node4.ec
-PASS: ./ec2c {-o /tmp/param_node4.c /tmp/param_node4.ec}
+spawn ./myec2c -o /tmp/param_node4.c /tmp/param_node4.ec
+PASS: ./myec2c {-o /tmp/param_node4.c /tmp/param_node4.ec}
+spawn ../utils/test_lus2lic_no_node should_work/param_node4.lus
++ ./lus2lic should_work/param_node4.lus -n param_node4 --gen-autotest -np
+_param_node4_env.lut generated.
+_param_node4_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/param_node4.lus
++ ./lus2lic should_work/param_node4.lus -n param_node4 -ec -o param_node4.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:param_node4.ec:param_node4 -rp env:lutin:_param_node4_env.lut -rp oracle:v6:_param_node4_oracle.lus:param_node4_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/param_node4.lus
 spawn ./lus2lic -o /tmp/bad_call03.lic should_work/bad_call03.lus
 PASS: ./lus2lic {-o /tmp/bad_call03.lic should_work/bad_call03.lus}
 spawn ./lus2lic -ec -o /tmp/bad_call03.ec should_work/bad_call03.lus
 PASS: ./lus2lic {-ec -o /tmp/bad_call03.ec should_work/bad_call03.lus}
-spawn ./ec2c -o /tmp/bad_call03.c /tmp/bad_call03.ec
-PASS: ./ec2c {-o /tmp/bad_call03.c /tmp/bad_call03.ec}
+spawn ./myec2c -o /tmp/bad_call03.c /tmp/bad_call03.ec
+PASS: ./myec2c {-o /tmp/bad_call03.c /tmp/bad_call03.ec}
+spawn ../utils/test_lus2lic_no_node should_work/bad_call03.lus
++ ./lus2lic should_work/bad_call03.lus -n bad_call03 --gen-autotest -np
+_bad_call03_env.lut generated.
+_bad_call03_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/bad_call03.lus
++ ./lus2lic should_work/bad_call03.lus -n bad_call03 -ec -o bad_call03.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:bad_call03.ec:bad_call03 -rp env:lutin:_bad_call03_env.lut -rp oracle:v6:_bad_call03_oracle.lus:bad_call03_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/bad_call03.lus
 spawn ./lus2lic -o /tmp/onlyroll.lic should_work/onlyroll.lus
 PASS: ./lus2lic {-o /tmp/onlyroll.lic should_work/onlyroll.lus}
 spawn ./lus2lic -ec -o /tmp/onlyroll.ec should_work/onlyroll.lus
 PASS: ./lus2lic {-ec -o /tmp/onlyroll.ec should_work/onlyroll.lus}
-spawn ./ec2c -o /tmp/onlyroll.c /tmp/onlyroll.ec
-PASS: ./ec2c {-o /tmp/onlyroll.c /tmp/onlyroll.ec}
+spawn ./myec2c -o /tmp/onlyroll.c /tmp/onlyroll.ec
+PASS: ./myec2c {-o /tmp/onlyroll.c /tmp/onlyroll.ec}
+spawn ../utils/test_lus2lic_no_node should_work/onlyroll.lus
++ ./lus2lic should_work/onlyroll.lus -n onlyroll --gen-autotest -np
+_onlyroll_env.lut generated.
+_onlyroll_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/onlyroll.lus
++ ./lus2lic should_work/onlyroll.lus -n onlyroll -ec -o onlyroll.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:onlyroll.ec:onlyroll -rp env:lutin:_onlyroll_env.lut -rp oracle:v6:_onlyroll_oracle.lus:onlyroll_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/onlyroll.lus
 spawn ./lus2lic -o /tmp/produitBool.lic should_work/produitBool.lus
 PASS: ./lus2lic {-o /tmp/produitBool.lic should_work/produitBool.lus}
 spawn ./lus2lic -ec -o /tmp/produitBool.ec should_work/produitBool.lus
 PASS: ./lus2lic {-ec -o /tmp/produitBool.ec should_work/produitBool.lus}
-spawn ./ec2c -o /tmp/produitBool.c /tmp/produitBool.ec
-PASS: ./ec2c {-o /tmp/produitBool.c /tmp/produitBool.ec}
+spawn ./myec2c -o /tmp/produitBool.c /tmp/produitBool.ec
+PASS: ./myec2c {-o /tmp/produitBool.c /tmp/produitBool.ec}
+spawn ../utils/test_lus2lic_no_node should_work/produitBool.lus
++ ./lus2lic should_work/produitBool.lus -n produitBool --gen-autotest -np
+_produitBool_env.lut generated.
+_produitBool_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/produitBool.lus
++ ./lus2lic should_work/produitBool.lus -n produitBool -ec -o produitBool.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:produitBool.ec:produitBool -rp env:lutin:_produitBool_env.lut -rp oracle:v6:_produitBool_oracle.lus:produitBool_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/produitBool.lus
 spawn ./lus2lic -o /tmp/noeudsIndependants.lic should_work/noeudsIndependants.lus
 PASS: ./lus2lic {-o /tmp/noeudsIndependants.lic should_work/noeudsIndependants.lus}
 spawn ./lus2lic -ec -o /tmp/noeudsIndependants.ec should_work/noeudsIndependants.lus
 PASS: ./lus2lic {-ec -o /tmp/noeudsIndependants.ec should_work/noeudsIndependants.lus}
-spawn ./ec2c -o /tmp/noeudsIndependants.c /tmp/noeudsIndependants.ec
-PASS: ./ec2c {-o /tmp/noeudsIndependants.c /tmp/noeudsIndependants.ec}
+spawn ./myec2c -o /tmp/noeudsIndependants.c /tmp/noeudsIndependants.ec
+PASS: ./myec2c {-o /tmp/noeudsIndependants.c /tmp/noeudsIndependants.ec}
+spawn ../utils/test_lus2lic_no_node should_work/noeudsIndependants.lus
++ ./lus2lic should_work/noeudsIndependants.lus -n noeudsIndependants --gen-autotest -np
+_noeudsIndependants_env.lut generated.
+_noeudsIndependants_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/noeudsIndependants.lus
++ ./lus2lic should_work/noeudsIndependants.lus -n noeudsIndependants -ec -o noeudsIndependants.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:noeudsIndependants.ec:noeudsIndependants -rp env:lutin:_noeudsIndependants_env.lut -rp oracle:v6:_noeudsIndependants_oracle.lus:noeudsIndependants_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/noeudsIndependants.lus
 spawn ./lus2lic -o /tmp/mouse.lic should_work/mouse.lus
 PASS: ./lus2lic {-o /tmp/mouse.lic should_work/mouse.lus}
 spawn ./lus2lic -ec -o /tmp/mouse.ec should_work/mouse.lus
 PASS: ./lus2lic {-ec -o /tmp/mouse.ec should_work/mouse.lus}
-spawn ./ec2c -o /tmp/mouse.c /tmp/mouse.ec
-PASS: ./ec2c {-o /tmp/mouse.c /tmp/mouse.ec}
+spawn ./myec2c -o /tmp/mouse.c /tmp/mouse.ec
+PASS: ./myec2c {-o /tmp/mouse.c /tmp/mouse.ec}
+spawn ../utils/test_lus2lic_no_node should_work/mouse.lus
++ ./lus2lic should_work/mouse.lus -n mouse --gen-autotest -np
+_mouse_env.lut generated.
+_mouse_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/mouse.lus
++ ./lus2lic should_work/mouse.lus -n mouse -ec -o mouse.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mouse.ec:mouse -rp env:lutin:_mouse_env.lut -rp oracle:v6:_mouse_oracle.lus:mouse_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/mouse.lus
 spawn ./lus2lic -o /tmp/param_node3.lic should_work/param_node3.lus
 PASS: ./lus2lic {-o /tmp/param_node3.lic should_work/param_node3.lus}
 spawn ./lus2lic -ec -o /tmp/param_node3.ec should_work/param_node3.lus
 PASS: ./lus2lic {-ec -o /tmp/param_node3.ec should_work/param_node3.lus}
-spawn ./ec2c -o /tmp/param_node3.c /tmp/param_node3.ec
-PASS: ./ec2c {-o /tmp/param_node3.c /tmp/param_node3.ec}
+spawn ./myec2c -o /tmp/param_node3.c /tmp/param_node3.ec
+PASS: ./myec2c {-o /tmp/param_node3.c /tmp/param_node3.ec}
+spawn ../utils/test_lus2lic_no_node should_work/param_node3.lus
++ ./lus2lic should_work/param_node3.lus -n param_node3 --gen-autotest -np
+_param_node3_env.lut generated.
+_param_node3_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/param_node3.lus
++ ./lus2lic should_work/param_node3.lus -n param_node3 -ec -o param_node3.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:param_node3.ec:param_node3 -rp env:lutin:_param_node3_env.lut -rp oracle:v6:_param_node3_oracle.lus:param_node3_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/param_node3.lus
 spawn ./lus2lic -o /tmp/pipeline.lic should_work/pipeline.lus
 PASS: ./lus2lic {-o /tmp/pipeline.lic should_work/pipeline.lus}
 spawn ./lus2lic -ec -o /tmp/pipeline.ec should_work/pipeline.lus
 PASS: ./lus2lic {-ec -o /tmp/pipeline.ec should_work/pipeline.lus}
-spawn ./ec2c -o /tmp/pipeline.c /tmp/pipeline.ec
-PASS: ./ec2c {-o /tmp/pipeline.c /tmp/pipeline.ec}
+spawn ./myec2c -o /tmp/pipeline.c /tmp/pipeline.ec
+PASS: ./myec2c {-o /tmp/pipeline.c /tmp/pipeline.ec}
+spawn ../utils/test_lus2lic_no_node should_work/pipeline.lus
++ ./lus2lic should_work/pipeline.lus -n pipeline --gen-autotest -np
+_pipeline_env.lut generated.
+_pipeline_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/pipeline.lus
++ ./lus2lic should_work/pipeline.lus -n pipeline -ec -o pipeline.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:pipeline.ec:pipeline -rp env:lutin:_pipeline_env.lut -rp oracle:v6:_pipeline_oracle.lus:pipeline_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+
+*** The oracle returned false at step 1
+Other Oracle outputs that are true: 
+	out_bis_0
+	out_bis_1
+	out_bis_2
+	out_bis_3
+	out_bis_4
+	out_bis_5
+	out_bis_6
+	out_bis_7
+	out_bis_8
+	out_bis_9
+Oracle inputs: 
+	in_0=t
+	in_1=f
+	in_2=f
+	in_3=t
+	in_4=f
+	in_5=f
+	in_6=t
+	in_7=t
+	in_8=t
+	in_9=f
+	out_0=f
+	out_1=f
+	out_2=f
+	out_3=f
+	out_4=t
+	out_5=f
+	out_6=t
+	out_7=f
+	out_8=f
+	out_9=f
+
+*** The oracle returned false at step 1
+Other Oracle outputs that are true: 
+	out_bis_0
+	out_bis_1
+	out_bis_2
+	out_bis_3
+	out_bis_4
+	out_bis_5
+	out_bis_6
+	out_bis_7
+	out_bis_8
+	out_bis_9
+Oracle inputs: 
+	in_0=t
+	in_1=f
+	in_2=f
+	in_3=t
+	in_4=f
+	in_5=f
+	in_6=t
+	in_7=t
+	in_8=t
+	in_9=f
+	out_0=f
+	out_1=f
+	out_2=f
+	out_3=f
+	out_4=t
+	out_5=f
+	out_6=t
+	out_7=f
+	out_8=f
+	out_9=f
+
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/pipeline.lus
 spawn ./lus2lic -o /tmp/mapinf.lic should_work/mapinf.lus
 PASS: ./lus2lic {-o /tmp/mapinf.lic should_work/mapinf.lus}
 spawn ./lus2lic -ec -o /tmp/mapinf.ec should_work/mapinf.lus
 PASS: ./lus2lic {-ec -o /tmp/mapinf.ec should_work/mapinf.lus}
-spawn ./ec2c -o /tmp/mapinf.c /tmp/mapinf.ec
-PASS: ./ec2c {-o /tmp/mapinf.c /tmp/mapinf.ec}
+spawn ./myec2c -o /tmp/mapinf.c /tmp/mapinf.ec
+PASS: ./myec2c {-o /tmp/mapinf.c /tmp/mapinf.ec}
+spawn ../utils/test_lus2lic_no_node should_work/mapinf.lus
++ ./lus2lic should_work/mapinf.lus -n mapinf --gen-autotest -np
+_mapinf_env.lut generated.
+_mapinf_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/mapinf.lus
++ ./lus2lic should_work/mapinf.lus -n mapinf -ec -o mapinf.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mapinf.ec:mapinf -rp env:lutin:_mapinf_env.lut -rp oracle:v6:_mapinf_oracle.lus:mapinf_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/mapinf.lus
 spawn ./lus2lic -o /tmp/integrator.lic should_work/integrator.lus
 PASS: ./lus2lic {-o /tmp/integrator.lic should_work/integrator.lus}
 spawn ./lus2lic -ec -o /tmp/integrator.ec should_work/integrator.lus
 PASS: ./lus2lic {-ec -o /tmp/integrator.ec should_work/integrator.lus}
-spawn ./ec2c -o /tmp/integrator.c /tmp/integrator.ec
-PASS: ./ec2c {-o /tmp/integrator.c /tmp/integrator.ec}
+spawn ./myec2c -o /tmp/integrator.c /tmp/integrator.ec
+PASS: ./myec2c {-o /tmp/integrator.c /tmp/integrator.ec}
+spawn ../utils/test_lus2lic_no_node should_work/integrator.lus
++ ./lus2lic should_work/integrator.lus -n integrator --gen-autotest -np
+_integrator_env.lut generated.
+_integrator_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/integrator.lus
++ ./lus2lic should_work/integrator.lus -n integrator -ec -o integrator.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:integrator.ec:integrator -rp env:lutin:_integrator_env.lut -rp oracle:v6:_integrator_oracle.lus:integrator_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+
+*** The oracle returned false at step 1
+Oracle numeric outputs: 
+	Y_bis=1305025.02198
+Oracle inputs: 
+	F=5370.98610205
+	STEP=-1516.80289185
+	init=-6736.47757463
+	Y=1305018.902
+
+*** The oracle returned false at step 1
+Oracle numeric outputs: 
+	Y_bis=1305025.02198
+Oracle inputs: 
+	F=5370.98610205
+	STEP=-1516.80289185
+	init=-6736.47757463
+	Y=1305018.902
+
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/integrator.lus
 spawn ./lus2lic -o /tmp/nc4.lic should_work/nc4.lus
 PASS: ./lus2lic {-o /tmp/nc4.lic should_work/nc4.lus}
 spawn ./lus2lic -ec -o /tmp/nc4.ec should_work/nc4.lus
 PASS: ./lus2lic {-ec -o /tmp/nc4.ec should_work/nc4.lus}
-spawn ./ec2c -o /tmp/nc4.c /tmp/nc4.ec
-PASS: ./ec2c {-o /tmp/nc4.c /tmp/nc4.ec}
+spawn ./myec2c -o /tmp/nc4.c /tmp/nc4.ec
+PASS: ./myec2c {-o /tmp/nc4.c /tmp/nc4.ec}
+spawn ../utils/test_lus2lic_no_node should_work/nc4.lus
++ ./lus2lic should_work/nc4.lus -n nc4 --gen-autotest -np
+_nc4_env.lut generated.
+_nc4_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/nc4.lus
++ ./lus2lic should_work/nc4.lus -n nc4 -ec -o nc4.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nc4.ec:nc4 -rp env:lutin:_nc4_env.lut -rp oracle:v6:_nc4_oracle.lus:nc4_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/nc4.lus
 spawn ./lus2lic -o /tmp/mm3.lic should_work/mm3.lus
 PASS: ./lus2lic {-o /tmp/mm3.lic should_work/mm3.lus}
 spawn ./lus2lic -ec -o /tmp/mm3.ec should_work/mm3.lus
 PASS: ./lus2lic {-ec -o /tmp/mm3.ec should_work/mm3.lus}
-spawn ./ec2c -o /tmp/mm3.c /tmp/mm3.ec
-PASS: ./ec2c {-o /tmp/mm3.c /tmp/mm3.ec}
+spawn ./myec2c -o /tmp/mm3.c /tmp/mm3.ec
+PASS: ./myec2c {-o /tmp/mm3.c /tmp/mm3.ec}
+spawn ../utils/test_lus2lic_no_node should_work/mm3.lus
++ ./lus2lic should_work/mm3.lus -n mm3 --gen-autotest -np
+_mm3_env.lut generated.
+_mm3_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/mm3.lus
++ ./lus2lic should_work/mm3.lus -n mm3 -ec -o mm3.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mm3.ec:mm3 -rp env:lutin:_mm3_env.lut -rp oracle:v6:_mm3_oracle.lus:mm3_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/mm3.lus
 spawn ./lus2lic -o /tmp/over2.lic should_work/over2.lus
 PASS: ./lus2lic {-o /tmp/over2.lic should_work/over2.lus}
 spawn ./lus2lic -ec -o /tmp/over2.ec should_work/over2.lus
 PASS: ./lus2lic {-ec -o /tmp/over2.ec should_work/over2.lus}
-spawn ./ec2c -o /tmp/over2.c /tmp/over2.ec
-PASS: ./ec2c {-o /tmp/over2.c /tmp/over2.ec}
+spawn ./myec2c -o /tmp/over2.c /tmp/over2.ec
+PASS: ./myec2c {-o /tmp/over2.c /tmp/over2.ec}
+spawn ../utils/test_lus2lic_no_node should_work/over2.lus
++ ./lus2lic should_work/over2.lus -n over2 --gen-autotest -np
+_over2_env.lut generated.
+_over2_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/over2.lus
++ ./lus2lic should_work/over2.lus -n over2 -ec -o over2.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:over2.ec:over2 -rp env:lutin:_over2_env.lut -rp oracle:v6:_over2_oracle.lus:over2_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/over2.lus
 spawn ./lus2lic -o /tmp/over3.lic should_work/over3.lus
 PASS: ./lus2lic {-o /tmp/over3.lic should_work/over3.lus}
 spawn ./lus2lic -ec -o /tmp/over3.ec should_work/over3.lus
 PASS: ./lus2lic {-ec -o /tmp/over3.ec should_work/over3.lus}
-spawn ./ec2c -o /tmp/over3.c /tmp/over3.ec
-PASS: ./ec2c {-o /tmp/over3.c /tmp/over3.ec}
+spawn ./myec2c -o /tmp/over3.c /tmp/over3.ec
+PASS: ./myec2c {-o /tmp/over3.c /tmp/over3.ec}
+spawn ../utils/test_lus2lic_no_node should_work/over3.lus
++ ./lus2lic should_work/over3.lus -n over3 --gen-autotest -np
+_over3_env.lut generated.
+_over3_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/over3.lus
++ ./lus2lic should_work/over3.lus -n over3 -ec -o over3.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:over3.ec:over3 -rp env:lutin:_over3_env.lut -rp oracle:v6:_over3_oracle.lus:over3_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/over3.lus
 spawn ./lus2lic -o /tmp/complex.lic should_work/complex.lus
 PASS: ./lus2lic {-o /tmp/complex.lic should_work/complex.lus}
 spawn ./lus2lic -ec -o /tmp/complex.ec should_work/complex.lus
 PASS: ./lus2lic {-ec -o /tmp/complex.ec should_work/complex.lus}
-spawn ./ec2c -o /tmp/complex.c /tmp/complex.ec
-PASS: ./ec2c {-o /tmp/complex.c /tmp/complex.ec}
+spawn ./myec2c -o /tmp/complex.c /tmp/complex.ec
+PASS: ./myec2c {-o /tmp/complex.c /tmp/complex.ec}
+spawn ../utils/test_lus2lic_no_node should_work/complex.lus
++ ./lus2lic should_work/complex.lus -n complex --gen-autotest -np
+_complex_env.lut generated.
+_complex_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/complex.lus
++ ./lus2lic should_work/complex.lus -n complex -ec -o complex.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:complex.ec:complex -rp env:lutin:_complex_env.lut -rp oracle:v6:_complex_oracle.lus:complex_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Parsing.Parse_error
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/complex.lus
 spawn ./lus2lic -o /tmp/initial.lic should_work/initial.lus
 PASS: ./lus2lic {-o /tmp/initial.lic should_work/initial.lus}
 spawn ./lus2lic -ec -o /tmp/initial.ec should_work/initial.lus
 PASS: ./lus2lic {-ec -o /tmp/initial.ec should_work/initial.lus}
-spawn ./ec2c -o /tmp/initial.c /tmp/initial.ec
-PASS: ./ec2c {-o /tmp/initial.c /tmp/initial.ec}
+spawn ./myec2c -o /tmp/initial.c /tmp/initial.ec
+PASS: ./myec2c {-o /tmp/initial.c /tmp/initial.ec}
+spawn ../utils/test_lus2lic_no_node should_work/initial.lus
++ ./lus2lic should_work/initial.lus -n initial --gen-autotest -np
+_initial_env.lut generated.
+_initial_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/initial.lus
++ ./lus2lic should_work/initial.lus -n initial -ec -o initial.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:initial.ec:initial -rp env:lutin:_initial_env.lut -rp oracle:v6:_initial_oracle.lus:initial_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/initial.lus
 spawn ./lus2lic -o /tmp/declaration.lic should_work/declaration.lus
 PASS: ./lus2lic {-o /tmp/declaration.lic should_work/declaration.lus}
 spawn ./lus2lic -ec -o /tmp/declaration.ec should_work/declaration.lus
 PASS: ./lus2lic {-ec -o /tmp/declaration.ec should_work/declaration.lus}
-spawn ./ec2c -o /tmp/declaration.c /tmp/declaration.ec
-PASS: ./ec2c {-o /tmp/declaration.c /tmp/declaration.ec}
+spawn ./myec2c -o /tmp/declaration.c /tmp/declaration.ec
+PASS: ./myec2c {-o /tmp/declaration.c /tmp/declaration.ec}
+spawn ../utils/test_lus2lic_no_node should_work/declaration.lus
++ ./lus2lic should_work/declaration.lus -n declaration --gen-autotest -np
+_declaration_env.lut generated.
+_declaration_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/declaration.lus
++ ./lus2lic should_work/declaration.lus -n declaration -ec -o declaration.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:declaration.ec:declaration -rp env:lutin:_declaration_env.lut -rp oracle:v6:_declaration_oracle.lus:declaration_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/declaration.lus
 spawn ./lus2lic -o /tmp/PCOND1.lic should_work/PCOND1.lus
 PASS: ./lus2lic {-o /tmp/PCOND1.lic should_work/PCOND1.lus}
 spawn ./lus2lic -ec -o /tmp/PCOND1.ec should_work/PCOND1.lus
 PASS: ./lus2lic {-ec -o /tmp/PCOND1.ec should_work/PCOND1.lus}
-spawn ./ec2c -o /tmp/PCOND1.c /tmp/PCOND1.ec
-PASS: ./ec2c {-o /tmp/PCOND1.c /tmp/PCOND1.ec}
+spawn ./myec2c -o /tmp/PCOND1.c /tmp/PCOND1.ec
+PASS: ./myec2c {-o /tmp/PCOND1.c /tmp/PCOND1.ec}
+spawn ../utils/test_lus2lic_no_node should_work/PCOND1.lus
++ ./lus2lic should_work/PCOND1.lus -n PCOND1 --gen-autotest -np
+_PCOND1_env.lut generated.
+_PCOND1_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/PCOND1.lus
++ ./lus2lic should_work/PCOND1.lus -n PCOND1 -ec -o PCOND1.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:PCOND1.ec:PCOND1 -rp env:lutin:_PCOND1_env.lut -rp oracle:v6:_PCOND1_oracle.lus:PCOND1_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on h0 on base\n")
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/PCOND1.lus
 spawn ./lus2lic -o /tmp/TIME_STABLE1.lic should_work/TIME_STABLE1.lus
 PASS: ./lus2lic {-o /tmp/TIME_STABLE1.lic should_work/TIME_STABLE1.lus}
 spawn ./lus2lic -ec -o /tmp/TIME_STABLE1.ec should_work/TIME_STABLE1.lus
 PASS: ./lus2lic {-ec -o /tmp/TIME_STABLE1.ec should_work/TIME_STABLE1.lus}
-spawn ./ec2c -o /tmp/TIME_STABLE1.c /tmp/TIME_STABLE1.ec
-PASS: ./ec2c {-o /tmp/TIME_STABLE1.c /tmp/TIME_STABLE1.ec}
+spawn ./myec2c -o /tmp/TIME_STABLE1.c /tmp/TIME_STABLE1.ec
+PASS: ./myec2c {-o /tmp/TIME_STABLE1.c /tmp/TIME_STABLE1.ec}
+spawn ../utils/test_lus2lic_no_node should_work/TIME_STABLE1.lus
++ ./lus2lic should_work/TIME_STABLE1.lus -n TIME_STABLE1 --gen-autotest -np
+_TIME_STABLE1_env.lut generated.
+_TIME_STABLE1_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/TIME_STABLE1.lus
++ ./lus2lic should_work/TIME_STABLE1.lus -n TIME_STABLE1 -ec -o TIME_STABLE1.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:TIME_STABLE1.ec:TIME_STABLE1 -rp env:lutin:_TIME_STABLE1_env.lut -rp oracle:v6:_TIME_STABLE1_oracle.lus:TIME_STABLE1_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/TIME_STABLE1.lus
 spawn ./lus2lic -o /tmp/nc5.lic should_work/nc5.lus
 PASS: ./lus2lic {-o /tmp/nc5.lic should_work/nc5.lus}
 spawn ./lus2lic -ec -o /tmp/nc5.ec should_work/nc5.lus
 PASS: ./lus2lic {-ec -o /tmp/nc5.ec should_work/nc5.lus}
-spawn ./ec2c -o /tmp/nc5.c /tmp/nc5.ec
-PASS: ./ec2c {-o /tmp/nc5.c /tmp/nc5.ec}
+spawn ./myec2c -o /tmp/nc5.c /tmp/nc5.ec
+PASS: ./myec2c {-o /tmp/nc5.c /tmp/nc5.ec}
+spawn ../utils/test_lus2lic_no_node should_work/nc5.lus
++ ./lus2lic should_work/nc5.lus -n nc5 --gen-autotest -np
+_nc5_env.lut generated.
+_nc5_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/nc5.lus
++ ./lus2lic should_work/nc5.lus -n nc5 -ec -o nc5.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nc5.ec:nc5 -rp env:lutin:_nc5_env.lut -rp oracle:v6:_nc5_oracle.lus:nc5_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/nc5.lus
 spawn ./lus2lic -o /tmp/call.lic should_work/call.lus
 PASS: ./lus2lic {-o /tmp/call.lic should_work/call.lus}
 spawn ./lus2lic -ec -o /tmp/call.ec should_work/call.lus
 PASS: ./lus2lic {-ec -o /tmp/call.ec should_work/call.lus}
-spawn ./ec2c -o /tmp/call.c /tmp/call.ec
-PASS: ./ec2c {-o /tmp/call.c /tmp/call.ec}
+spawn ./myec2c -o /tmp/call.c /tmp/call.ec
+Segmentation fault
+FAIL: Try ec2c on the result: ./myec2c {-o /tmp/call.c /tmp/call.ec}
 spawn ./lus2lic -o /tmp/mouse1.lic should_work/mouse1.lus
 PASS: ./lus2lic {-o /tmp/mouse1.lic should_work/mouse1.lus}
 spawn ./lus2lic -ec -o /tmp/mouse1.ec should_work/mouse1.lus
 PASS: ./lus2lic {-ec -o /tmp/mouse1.ec should_work/mouse1.lus}
-spawn ./ec2c -o /tmp/mouse1.c /tmp/mouse1.ec
-PASS: ./ec2c {-o /tmp/mouse1.c /tmp/mouse1.ec}
+spawn ./myec2c -o /tmp/mouse1.c /tmp/mouse1.ec
+PASS: ./myec2c {-o /tmp/mouse1.c /tmp/mouse1.ec}
+spawn ../utils/test_lus2lic_no_node should_work/mouse1.lus
++ ./lus2lic should_work/mouse1.lus -n mouse1 --gen-autotest -np
+_mouse1_env.lut generated.
+_mouse1_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/mouse1.lus
++ ./lus2lic should_work/mouse1.lus -n mouse1 -ec -o mouse1.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mouse1.ec:mouse1 -rp env:lutin:_mouse1_env.lut -rp oracle:v6:_mouse1_oracle.lus:mouse1_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
+PASS: ../utils/test_lus2lic_no_node should_work/mouse1.lus
 spawn ./lus2lic -o /tmp/lustre_test1_ok.lic should_work/lustre_test1_ok.lus
 PASS: ./lus2lic {-o /tmp/lustre_test1_ok.lic should_work/lustre_test1_ok.lus}
 spawn ./lus2lic -ec -o /tmp/lustre_test1_ok.ec should_work/lustre_test1_ok.lus
 PASS: ./lus2lic {-ec -o /tmp/lustre_test1_ok.ec should_work/lustre_test1_ok.lus}
-spawn ./ec2c -o /tmp/lustre_test1_ok.c /tmp/lustre_test1_ok.ec
-PASS: ./ec2c {-o /tmp/lustre_test1_ok.c /tmp/lustre_test1_ok.ec}
+spawn ./myec2c -o /tmp/lustre_test1_ok.c /tmp/lustre_test1_ok.ec
+PASS: ./myec2c {-o /tmp/lustre_test1_ok.c /tmp/lustre_test1_ok.ec}
+spawn ../utils/test_lus2lic_no_node should_work/lustre_test1_ok.lus
++ ./lus2lic should_work/lustre_test1_ok.lus -n lustre_test1_ok --gen-autotest -np
+_lustre_test1_ok_env.lut generated.
+_lustre_test1_ok_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/lustre_test1_ok.lus
++ ./lus2lic should_work/lustre_test1_ok.lus -n lustre_test1_ok -ec -o lustre_test1_ok.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:lustre_test1_ok.ec:lustre_test1_ok -rp env:lutin:_lustre_test1_ok_env.lut -rp oracle:v6:_lustre_test1_ok_oracle.lus:lustre_test1_ok_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on cl1_2 on base\n")
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/lustre_test1_ok.lus
 spawn ./lus2lic -o /tmp/compteur.lic should_work/compteur.lus
 PASS: ./lus2lic {-o /tmp/compteur.lic should_work/compteur.lus}
 spawn ./lus2lic -ec -o /tmp/compteur.ec should_work/compteur.lus
 PASS: ./lus2lic {-ec -o /tmp/compteur.ec should_work/compteur.lus}
-spawn ./ec2c -o /tmp/compteur.c /tmp/compteur.ec
-PASS: ./ec2c {-o /tmp/compteur.c /tmp/compteur.ec}
+spawn ./myec2c -o /tmp/compteur.c /tmp/compteur.ec
+PASS: ./myec2c {-o /tmp/compteur.c /tmp/compteur.ec}
+spawn ../utils/test_lus2lic_no_node should_work/compteur.lus
++ ./lus2lic should_work/compteur.lus -n compteur --gen-autotest -np
+_compteur_env.lut generated.
+_compteur_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/compteur.lus
++ ./lus2lic should_work/compteur.lus -n compteur -ec -o compteur.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:compteur.ec:compteur -rp env:lutin:_compteur_env.lut -rp oracle:v6:_compteur_oracle.lus:compteur_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/compteur.lus
 spawn ./lus2lic -o /tmp/Int.lic should_work/Int.lus
 PASS: ./lus2lic {-o /tmp/Int.lic should_work/Int.lus}
 spawn ./lus2lic -ec -o /tmp/Int.ec should_work/Int.lus
 PASS: ./lus2lic {-ec -o /tmp/Int.ec should_work/Int.lus}
-spawn ./ec2c -o /tmp/Int.c /tmp/Int.ec
-PASS: ./ec2c {-o /tmp/Int.c /tmp/Int.ec}
+spawn ./myec2c -o /tmp/Int.c /tmp/Int.ec
+PASS: ./myec2c {-o /tmp/Int.c /tmp/Int.ec}
+spawn ../utils/test_lus2lic_no_node should_work/Int.lus
++ ./lus2lic should_work/Int.lus -n Int --gen-autotest -np
+*** Can not find package 'Int' in the following packages: 
+***	 'mainPack'
+***	 'Int8'
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/Int.lus
+spawn ./lus2lic -o /tmp/tranche.lic should_work/tranche.lus
+*** Error in file "/home/jahier/lus2lic/test/should_work/tranche.lus", line 7, col 5 to 5, token 'n':
+*** 
+*** can't eval constant: 
+*** cannot access this extern constant value
+
+FAIL: without any option: ./lus2lic {-o /tmp/tranche.lic should_work/tranche.lus}
+spawn ./lus2lic -ec -o /tmp/tranche.ec should_work/tranche.lus
+*** Error in file "/home/jahier/lus2lic/test/should_work/tranche.lus", line 7, col 5 to 5, token 'n':
+*** 
+*** can't eval constant: 
+*** cannot access this extern constant value
+
+FAIL: Generate ec code  : ./lus2lic {-ec -o /tmp/tranche.ec should_work/tranche.lus}
 spawn ./lus2lic -o /tmp/t2.lic should_work/t2.lus
 PASS: ./lus2lic {-o /tmp/t2.lic should_work/t2.lus}
 spawn ./lus2lic -ec -o /tmp/t2.ec should_work/t2.lus
 PASS: ./lus2lic {-ec -o /tmp/t2.ec should_work/t2.lus}
-spawn ./ec2c -o /tmp/t2.c /tmp/t2.ec
-PASS: ./ec2c {-o /tmp/t2.c /tmp/t2.ec}
+spawn ./myec2c -o /tmp/t2.c /tmp/t2.ec
+PASS: ./myec2c {-o /tmp/t2.c /tmp/t2.ec}
+spawn ../utils/test_lus2lic_no_node should_work/t2.lus
++ ./lus2lic should_work/t2.lus -n t2 --gen-autotest -np
+_t2_env.lut generated.
+_t2_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/t2.lus
++ ./lus2lic should_work/t2.lus -n t2 -ec -o t2.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:t2.ec:t2 -rp env:lutin:_t2_env.lut -rp oracle:v6:_t2_oracle.lus:t2_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/t2.lus
 spawn ./lus2lic -o /tmp/arbitre.lic should_work/arbitre.lus
 PASS: ./lus2lic {-o /tmp/arbitre.lic should_work/arbitre.lus}
 spawn ./lus2lic -ec -o /tmp/arbitre.ec should_work/arbitre.lus
 PASS: ./lus2lic {-ec -o /tmp/arbitre.ec should_work/arbitre.lus}
-spawn ./ec2c -o /tmp/arbitre.c /tmp/arbitre.ec
-PASS: ./ec2c {-o /tmp/arbitre.c /tmp/arbitre.ec}
+spawn ./myec2c -o /tmp/arbitre.c /tmp/arbitre.ec
+Segmentation fault
+FAIL: Try ec2c on the result: ./myec2c {-o /tmp/arbitre.c /tmp/arbitre.ec}
 spawn ./lus2lic -o /tmp/test_const.lic should_work/test_const.lus
 PASS: ./lus2lic {-o /tmp/test_const.lic should_work/test_const.lus}
 spawn ./lus2lic -ec -o /tmp/test_const.ec should_work/test_const.lus
 PASS: ./lus2lic {-ec -o /tmp/test_const.ec should_work/test_const.lus}
-spawn ./ec2c -o /tmp/test_const.c /tmp/test_const.ec
-PASS: ./ec2c {-o /tmp/test_const.c /tmp/test_const.ec}
+spawn ./myec2c -o /tmp/test_const.c /tmp/test_const.ec
+PASS: ./myec2c {-o /tmp/test_const.c /tmp/test_const.ec}
+spawn ../utils/test_lus2lic_no_node should_work/test_const.lus
++ ./lus2lic should_work/test_const.lus -n test_const --gen-autotest -np
+_test_const_env.lut generated.
+_test_const_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/test_const.lus
++ ./lus2lic should_work/test_const.lus -n test_const -ec -o test_const.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:test_const.ec:test_const -rp env:lutin:_test_const_env.lut -rp oracle:v6:_test_const_oracle.lus:test_const_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/test_const.lus
 spawn ./lus2lic -o /tmp/when_tuple.lic should_work/when_tuple.lus
 PASS: ./lus2lic {-o /tmp/when_tuple.lic should_work/when_tuple.lus}
 spawn ./lus2lic -ec -o /tmp/when_tuple.ec should_work/when_tuple.lus
 PASS: ./lus2lic {-ec -o /tmp/when_tuple.ec should_work/when_tuple.lus}
-spawn ./ec2c -o /tmp/when_tuple.c /tmp/when_tuple.ec
-PASS: ./ec2c {-o /tmp/when_tuple.c /tmp/when_tuple.ec}
+spawn ./myec2c -o /tmp/when_tuple.c /tmp/when_tuple.ec
+Segmentation fault
+FAIL: Try ec2c on the result: ./myec2c {-o /tmp/when_tuple.c /tmp/when_tuple.ec}
+spawn ./lus2lic -o /tmp/carV2.lic should_work/carV2.lus
+PASS: ./lus2lic {-o /tmp/carV2.lic should_work/carV2.lus}
+spawn ./lus2lic -ec -o /tmp/carV2.ec should_work/carV2.lus
+PASS: ./lus2lic {-ec -o /tmp/carV2.ec should_work/carV2.lus}
+spawn ./myec2c -o /tmp/carV2.c /tmp/carV2.ec
+PASS: ./myec2c {-o /tmp/carV2.c /tmp/carV2.ec}
+spawn ../utils/test_lus2lic_no_node should_work/carV2.lus
++ ./lus2lic should_work/carV2.lus -n carV2 --gen-autotest -np
+_carV2_env.lut generated.
+_carV2_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/carV2.lus
++ ./lus2lic should_work/carV2.lus -n carV2 -ec -o carV2.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:carV2.ec:carV2 -rp env:lutin:_carV2_env.lut -rp oracle:v6:_carV2_oracle.lus:carV2_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/carV2.lus
+spawn ./lus2lic -o /tmp/test_merge.lic should_work/test_merge.lus
+PASS: ./lus2lic {-o /tmp/test_merge.lic should_work/test_merge.lus}
+spawn ./lus2lic -ec -o /tmp/test_merge.ec should_work/test_merge.lus
+PASS: ./lus2lic {-ec -o /tmp/test_merge.ec should_work/test_merge.lus}
+spawn ./myec2c -o /tmp/test_merge.c /tmp/test_merge.ec
+syntax error     - at line 14
+syntax errors...
+FAIL: Try ec2c on the result: ./myec2c {-o /tmp/test_merge.c /tmp/test_merge.ec}
 spawn ./lus2lic -o /tmp/FillFollowedByRed.lic should_work/FillFollowedByRed.lus
 PASS: ./lus2lic {-o /tmp/FillFollowedByRed.lic should_work/FillFollowedByRed.lus}
 spawn ./lus2lic -ec -o /tmp/FillFollowedByRed.ec should_work/FillFollowedByRed.lus
 PASS: ./lus2lic {-ec -o /tmp/FillFollowedByRed.ec should_work/FillFollowedByRed.lus}
-spawn ./ec2c -o /tmp/FillFollowedByRed.c /tmp/FillFollowedByRed.ec
-PASS: ./ec2c {-o /tmp/FillFollowedByRed.c /tmp/FillFollowedByRed.ec}
+spawn ./myec2c -o /tmp/FillFollowedByRed.c /tmp/FillFollowedByRed.ec
+PASS: ./myec2c {-o /tmp/FillFollowedByRed.c /tmp/FillFollowedByRed.ec}
+spawn ../utils/test_lus2lic_no_node should_work/FillFollowedByRed.lus
++ ./lus2lic should_work/FillFollowedByRed.lus -n FillFollowedByRed --gen-autotest -np
+_FillFollowedByRed_env.lut generated.
+_FillFollowedByRed_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/FillFollowedByRed.lus
++ ./lus2lic should_work/FillFollowedByRed.lus -n FillFollowedByRed -ec -o FillFollowedByRed.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:FillFollowedByRed.ec:FillFollowedByRed -rp env:lutin:_FillFollowedByRed_env.lut -rp oracle:v6:_FillFollowedByRed_oracle.lus:FillFollowedByRed_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/FillFollowedByRed.lus
 spawn ./lus2lic -o /tmp/sample_time_change.lic should_work/sample_time_change.lus
 PASS: ./lus2lic {-o /tmp/sample_time_change.lic should_work/sample_time_change.lus}
 spawn ./lus2lic -ec -o /tmp/sample_time_change.ec should_work/sample_time_change.lus
 PASS: ./lus2lic {-ec -o /tmp/sample_time_change.ec should_work/sample_time_change.lus}
-spawn ./ec2c -o /tmp/sample_time_change.c /tmp/sample_time_change.ec
-PASS: ./ec2c {-o /tmp/sample_time_change.c /tmp/sample_time_change.ec}
+spawn ./myec2c -o /tmp/sample_time_change.c /tmp/sample_time_change.ec
+PASS: ./myec2c {-o /tmp/sample_time_change.c /tmp/sample_time_change.ec}
+spawn ../utils/test_lus2lic_no_node should_work/sample_time_change.lus
++ ./lus2lic should_work/sample_time_change.lus -n sample_time_change --gen-autotest -np
+_sample_time_change_env.lut generated.
+_sample_time_change_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/sample_time_change.lus
++ ./lus2lic should_work/sample_time_change.lus -n sample_time_change -ec -o sample_time_change.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:sample_time_change.ec:sample_time_change -rp env:lutin:_sample_time_change_env.lut -rp oracle:v6:_sample_time_change_oracle.lus:sample_time_change_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on cl1_12_3 on base\n")
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/sample_time_change.lus
+spawn ./lus2lic -o /tmp/test_enum.lic should_work/test_enum.lus
+PASS: ./lus2lic {-o /tmp/test_enum.lic should_work/test_enum.lus}
+spawn ./lus2lic -ec -o /tmp/test_enum.ec should_work/test_enum.lus
+PASS: ./lus2lic {-ec -o /tmp/test_enum.ec should_work/test_enum.lus}
+spawn ./myec2c -o /tmp/test_enum.c /tmp/test_enum.ec
+PASS: ./myec2c {-o /tmp/test_enum.c /tmp/test_enum.ec}
+spawn ../utils/test_lus2lic_no_node should_work/test_enum.lus
++ ./lus2lic should_work/test_enum.lus -n test_enum --gen-autotest -np
+_test_enum_env.lut generated.
+_test_enum_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/test_enum.lus
++ ./lus2lic should_work/test_enum.lus -n test_enum -ec -o test_enum.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:test_enum.ec:test_enum -rp env:lutin:_test_enum_env.lut -rp oracle:v6:_test_enum_oracle.lus:test_enum_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Failure("couleur: unsupported type.\n")
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/test_enum.lus
 spawn ./lus2lic -o /tmp/predef01.lic should_work/predef01.lus
 PASS: ./lus2lic {-o /tmp/predef01.lic should_work/predef01.lus}
 spawn ./lus2lic -ec -o /tmp/predef01.ec should_work/predef01.lus
 PASS: ./lus2lic {-ec -o /tmp/predef01.ec should_work/predef01.lus}
-spawn ./ec2c -o /tmp/predef01.c /tmp/predef01.ec
-PASS: ./ec2c {-o /tmp/predef01.c /tmp/predef01.ec}
+spawn ./myec2c -o /tmp/predef01.c /tmp/predef01.ec
+PASS: ./myec2c {-o /tmp/predef01.c /tmp/predef01.ec}
+spawn ../utils/test_lus2lic_no_node should_work/predef01.lus
++ ./lus2lic should_work/predef01.lus -n predef01 --gen-autotest -np
+_predef01_env.lut generated.
+_predef01_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/predef01.lus
++ ./lus2lic should_work/predef01.lus -n predef01 -ec -o predef01.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:predef01.ec:predef01 -rp env:lutin:_predef01_env.lut -rp oracle:v6:_predef01_oracle.lus:predef01_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/predef01.lus
 spawn ./lus2lic -o /tmp/long_et_stupide_nom_de_noeud.lic should_work/long_et_stupide_nom_de_noeud.lus
 PASS: ./lus2lic {-o /tmp/long_et_stupide_nom_de_noeud.lic should_work/long_et_stupide_nom_de_noeud.lus}
 spawn ./lus2lic -ec -o /tmp/long_et_stupide_nom_de_noeud.ec 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}
-spawn ./ec2c -o /tmp/long_et_stupide_nom_de_noeud.c /tmp/long_et_stupide_nom_de_noeud.ec
-PASS: ./ec2c {-o /tmp/long_et_stupide_nom_de_noeud.c /tmp/long_et_stupide_nom_de_noeud.ec}
+spawn ./myec2c -o /tmp/long_et_stupide_nom_de_noeud.c /tmp/long_et_stupide_nom_de_noeud.ec
+PASS: ./myec2c {-o /tmp/long_et_stupide_nom_de_noeud.c /tmp/long_et_stupide_nom_de_noeud.ec}
+spawn ../utils/test_lus2lic_no_node should_work/long_et_stupide_nom_de_noeud.lus
++ ./lus2lic should_work/long_et_stupide_nom_de_noeud.lus -n long_et_stupide_nom_de_noeud --gen-autotest -np
+_long_et_stupide_nom_de_noeud_env.lut generated.
+_long_et_stupide_nom_de_noeud_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/long_et_stupide_nom_de_noeud.lus
++ ./lus2lic should_work/long_et_stupide_nom_de_noeud.lus -n long_et_stupide_nom_de_noeud -ec -o long_et_stupide_nom_de_noeud.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:long_et_stupide_nom_de_noeud.ec:long_et_stupide_nom_de_noeud -rp env:lutin:_long_et_stupide_nom_de_noeud_env.lut -rp oracle:v6:_long_et_stupide_nom_de_noeud_oracle.lus:long_et_stupide_nom_de_noeud_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/long_et_stupide_nom_de_noeud.lus
 spawn ./lus2lic -o /tmp/CURRENT.lic should_work/CURRENT.lus
 PASS: ./lus2lic {-o /tmp/CURRENT.lic should_work/CURRENT.lus}
 spawn ./lus2lic -ec -o /tmp/CURRENT.ec should_work/CURRENT.lus
 PASS: ./lus2lic {-ec -o /tmp/CURRENT.ec should_work/CURRENT.lus}
-spawn ./ec2c -o /tmp/CURRENT.c /tmp/CURRENT.ec
-PASS: ./ec2c {-o /tmp/CURRENT.c /tmp/CURRENT.ec}
+spawn ./myec2c -o /tmp/CURRENT.c /tmp/CURRENT.ec
+PASS: ./myec2c {-o /tmp/CURRENT.c /tmp/CURRENT.ec}
+spawn ../utils/test_lus2lic_no_node should_work/CURRENT.lus
++ ./lus2lic should_work/CURRENT.lus -n CURRENT --gen-autotest -np
+_CURRENT_env.lut generated.
+_CURRENT_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/CURRENT.lus
++ ./lus2lic should_work/CURRENT.lus -n CURRENT -ec -o CURRENT.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:CURRENT.ec:CURRENT -rp env:lutin:_CURRENT_env.lut -rp oracle:v6:_CURRENT_oracle.lus:CURRENT_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on x on base\n")
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/CURRENT.lus
 spawn ./lus2lic -o /tmp/left.lic should_work/left.lus
 PASS: ./lus2lic {-o /tmp/left.lic should_work/left.lus}
 spawn ./lus2lic -ec -o /tmp/left.ec should_work/left.lus
 PASS: ./lus2lic {-ec -o /tmp/left.ec should_work/left.lus}
-spawn ./ec2c -o /tmp/left.c /tmp/left.ec
-PASS: ./ec2c {-o /tmp/left.c /tmp/left.ec}
+spawn ./myec2c -o /tmp/left.c /tmp/left.ec
+PASS: ./myec2c {-o /tmp/left.c /tmp/left.ec}
+spawn ../utils/test_lus2lic_no_node should_work/left.lus
++ ./lus2lic should_work/left.lus -n left --gen-autotest -np
+_left_env.lut generated.
+_left_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/left.lus
++ ./lus2lic should_work/left.lus -n left -ec -o left.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:left.ec:left -rp env:lutin:_left_env.lut -rp oracle:v6:_left_oracle.lus:left_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/left.lus
 spawn ./lus2lic -o /tmp/ts04.lic should_work/ts04.lus
 PASS: ./lus2lic {-o /tmp/ts04.lic should_work/ts04.lus}
 spawn ./lus2lic -ec -o /tmp/ts04.ec should_work/ts04.lus
 PASS: ./lus2lic {-ec -o /tmp/ts04.ec should_work/ts04.lus}
-spawn ./ec2c -o /tmp/ts04.c /tmp/ts04.ec
-PASS: ./ec2c {-o /tmp/ts04.c /tmp/ts04.ec}
+spawn ./myec2c -o /tmp/ts04.c /tmp/ts04.ec
+PASS: ./myec2c {-o /tmp/ts04.c /tmp/ts04.ec}
+spawn ../utils/test_lus2lic_no_node should_work/ts04.lus
++ ./lus2lic should_work/ts04.lus -n ts04 --gen-autotest -np
+_ts04_env.lut generated.
+_ts04_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/ts04.lus
++ ./lus2lic should_work/ts04.lus -n ts04 -ec -o ts04.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ts04.ec:ts04 -rp env:lutin:_ts04_env.lut -rp oracle:v6:_ts04_oracle.lus:ts04_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/ts04.lus
 spawn ./lus2lic -o /tmp/bug_map_fby.lic should_work/bug_map_fby.lus
 *** Error in file "/home/jahier/lus2lic/test/should_work/bug_map_fby.lus", line 33, col 13 to 15, token 'fby':
 *** Bad static argument nature, a node was expected
@@ -849,740 +3997,3181 @@ spawn ./lus2lic -o /tmp/multiclock.lic should_work/multiclock.lus
 PASS: ./lus2lic {-o /tmp/multiclock.lic should_work/multiclock.lus}
 spawn ./lus2lic -ec -o /tmp/multiclock.ec should_work/multiclock.lus
 PASS: ./lus2lic {-ec -o /tmp/multiclock.ec should_work/multiclock.lus}
-spawn ./ec2c -o /tmp/multiclock.c /tmp/multiclock.ec
-PASS: ./ec2c {-o /tmp/multiclock.c /tmp/multiclock.ec}
+spawn ./myec2c -o /tmp/multiclock.c /tmp/multiclock.ec
+PASS: ./myec2c {-o /tmp/multiclock.c /tmp/multiclock.ec}
+spawn ../utils/test_lus2lic_no_node should_work/multiclock.lus
++ ./lus2lic should_work/multiclock.lus -n multiclock --gen-autotest -np
+_multiclock_env.lut generated.
+_multiclock_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/multiclock.lus
++ ./lus2lic should_work/multiclock.lus -n multiclock -ec -o multiclock.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:multiclock.ec:multiclock -rp env:lutin:_multiclock_env.lut -rp oracle:v6:_multiclock_oracle.lus:multiclock_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on c on base\n")
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/multiclock.lus
 spawn ./lus2lic -o /tmp/nc2.lic should_work/nc2.lus
 PASS: ./lus2lic {-o /tmp/nc2.lic should_work/nc2.lus}
 spawn ./lus2lic -ec -o /tmp/nc2.ec should_work/nc2.lus
 PASS: ./lus2lic {-ec -o /tmp/nc2.ec should_work/nc2.lus}
-spawn ./ec2c -o /tmp/nc2.c /tmp/nc2.ec
-PASS: ./ec2c {-o /tmp/nc2.c /tmp/nc2.ec}
+spawn ./myec2c -o /tmp/nc2.c /tmp/nc2.ec
+PASS: ./myec2c {-o /tmp/nc2.c /tmp/nc2.ec}
+spawn ../utils/test_lus2lic_no_node should_work/nc2.lus
++ ./lus2lic should_work/nc2.lus -n nc2 --gen-autotest -np
+_nc2_env.lut generated.
+_nc2_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/nc2.lus
++ ./lus2lic should_work/nc2.lus -n nc2 -ec -o nc2.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nc2.ec:nc2 -rp env:lutin:_nc2_env.lut -rp oracle:v6:_nc2_oracle.lus:nc2_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/nc2.lus
 spawn ./lus2lic -o /tmp/morel.lic should_work/morel.lus
 PASS: ./lus2lic {-o /tmp/morel.lic should_work/morel.lus}
 spawn ./lus2lic -ec -o /tmp/morel.ec should_work/morel.lus
 PASS: ./lus2lic {-ec -o /tmp/morel.ec should_work/morel.lus}
-spawn ./ec2c -o /tmp/morel.c /tmp/morel.ec
-PASS: ./ec2c {-o /tmp/morel.c /tmp/morel.ec}
+spawn ./myec2c -o /tmp/morel.c /tmp/morel.ec
+PASS: ./myec2c {-o /tmp/morel.c /tmp/morel.ec}
+spawn ../utils/test_lus2lic_no_node should_work/morel.lus
++ ./lus2lic should_work/morel.lus -n morel --gen-autotest -np
+_morel_env.lut generated.
+_morel_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/morel.lus
++ ./lus2lic should_work/morel.lus -n morel -ec -o morel.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:morel.ec:morel -rp env:lutin:_morel_env.lut -rp oracle:v6:_morel_oracle.lus:morel_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+PASS: ../utils/test_lus2lic_no_node should_work/morel.lus
 spawn ./lus2lic -o /tmp/SOURIS.lic should_work/SOURIS.lus
 PASS: ./lus2lic {-o /tmp/SOURIS.lic should_work/SOURIS.lus}
 spawn ./lus2lic -ec -o /tmp/SOURIS.ec should_work/SOURIS.lus
 PASS: ./lus2lic {-ec -o /tmp/SOURIS.ec should_work/SOURIS.lus}
-spawn ./ec2c -o /tmp/SOURIS.c /tmp/SOURIS.ec
-PASS: ./ec2c {-o /tmp/SOURIS.c /tmp/SOURIS.ec}
+spawn ./myec2c -o /tmp/SOURIS.c /tmp/SOURIS.ec
+PASS: ./myec2c {-o /tmp/SOURIS.c /tmp/SOURIS.ec}
+spawn ../utils/test_lus2lic_no_node should_work/SOURIS.lus
++ ./lus2lic should_work/SOURIS.lus -n SOURIS --gen-autotest -np
+_SOURIS_env.lut generated.
+_SOURIS_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/SOURIS.lus
++ ./lus2lic should_work/SOURIS.lus -n SOURIS -ec -o SOURIS.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:SOURIS.ec:SOURIS -rp env:lutin:_SOURIS_env.lut -rp oracle:v6:_SOURIS_oracle.lus:SOURIS_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/SOURIS.lus
 spawn ./lus2lic -o /tmp/param_node2.lic should_work/param_node2.lus
 PASS: ./lus2lic {-o /tmp/param_node2.lic should_work/param_node2.lus}
 spawn ./lus2lic -ec -o /tmp/param_node2.ec should_work/param_node2.lus
 PASS: ./lus2lic {-ec -o /tmp/param_node2.ec should_work/param_node2.lus}
-spawn ./ec2c -o /tmp/param_node2.c /tmp/param_node2.ec
-PASS: ./ec2c {-o /tmp/param_node2.c /tmp/param_node2.ec}
+spawn ./myec2c -o /tmp/param_node2.c /tmp/param_node2.ec
+PASS: ./myec2c {-o /tmp/param_node2.c /tmp/param_node2.ec}
+spawn ../utils/test_lus2lic_no_node should_work/param_node2.lus
++ ./lus2lic should_work/param_node2.lus -n param_node2 --gen-autotest -np
+_param_node2_env.lut generated.
+_param_node2_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/param_node2.lus
++ ./lus2lic should_work/param_node2.lus -n param_node2 -ec -o param_node2.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:param_node2.ec:param_node2 -rp env:lutin:_param_node2_env.lut -rp oracle:v6:_param_node2_oracle.lus:param_node2_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/param_node2.lus
 spawn ./lus2lic -o /tmp/o2l_feux_compl.lic should_work/o2l_feux_compl.lus
 PASS: ./lus2lic {-o /tmp/o2l_feux_compl.lic should_work/o2l_feux_compl.lus}
 spawn ./lus2lic -ec -o /tmp/o2l_feux_compl.ec should_work/o2l_feux_compl.lus
 PASS: ./lus2lic {-ec -o /tmp/o2l_feux_compl.ec should_work/o2l_feux_compl.lus}
-spawn ./ec2c -o /tmp/o2l_feux_compl.c /tmp/o2l_feux_compl.ec
-PASS: ./ec2c {-o /tmp/o2l_feux_compl.c /tmp/o2l_feux_compl.ec}
+spawn ./myec2c -o /tmp/o2l_feux_compl.c /tmp/o2l_feux_compl.ec
+PASS: ./myec2c {-o /tmp/o2l_feux_compl.c /tmp/o2l_feux_compl.ec}
+spawn ../utils/test_lus2lic_no_node should_work/o2l_feux_compl.lus
++ ./lus2lic should_work/o2l_feux_compl.lus -n o2l_feux_compl --gen-autotest -np
+_o2l_feux_compl_env.lut generated.
+_o2l_feux_compl_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/o2l_feux_compl.lus
++ ./lus2lic should_work/o2l_feux_compl.lus -n o2l_feux_compl -ec -o o2l_feux_compl.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:o2l_feux_compl.ec:o2l_feux_compl -rp env:lutin:_o2l_feux_compl_env.lut -rp oracle:v6:_o2l_feux_compl_oracle.lus:o2l_feux_compl_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/o2l_feux_compl.lus
 spawn ./lus2lic -o /tmp/model.lic should_work/model.lus
 PASS: ./lus2lic {-o /tmp/model.lic should_work/model.lus}
 spawn ./lus2lic -ec -o /tmp/model.ec should_work/model.lus
 PASS: ./lus2lic {-ec -o /tmp/model.ec should_work/model.lus}
-spawn ./ec2c -o /tmp/model.c /tmp/model.ec
-PASS: ./ec2c {-o /tmp/model.c /tmp/model.ec}
+spawn ./myec2c -o /tmp/model.c /tmp/model.ec
+PASS: ./myec2c {-o /tmp/model.c /tmp/model.ec}
+spawn ../utils/test_lus2lic_no_node should_work/model.lus
++ ./lus2lic should_work/model.lus -n model --gen-autotest -np
+*** Can not find package 'model' in the following packages: 
+***	 'p'
+***	 'u'
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/model.lus
 spawn ./lus2lic -o /tmp/matrice.lic should_work/matrice.lus
 PASS: ./lus2lic {-o /tmp/matrice.lic should_work/matrice.lus}
 spawn ./lus2lic -ec -o /tmp/matrice.ec should_work/matrice.lus
 PASS: ./lus2lic {-ec -o /tmp/matrice.ec should_work/matrice.lus}
-spawn ./ec2c -o /tmp/matrice.c /tmp/matrice.ec
-PASS: ./ec2c {-o /tmp/matrice.c /tmp/matrice.ec}
+spawn ./myec2c -o /tmp/matrice.c /tmp/matrice.ec
+PASS: ./myec2c {-o /tmp/matrice.c /tmp/matrice.ec}
+spawn ../utils/test_lus2lic_no_node should_work/matrice.lus
++ ./lus2lic should_work/matrice.lus -n matrice --gen-autotest -np
+_matrice_env.lut generated.
+_matrice_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/matrice.lus
++ ./lus2lic should_work/matrice.lus -n matrice -ec -o matrice.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:matrice.ec:matrice -rp env:lutin:_matrice_env.lut -rp oracle:v6:_matrice_oracle.lus:matrice_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/matrice.lus
 spawn ./lus2lic -o /tmp/TIME_STABLE.lic should_work/TIME_STABLE.lus
 PASS: ./lus2lic {-o /tmp/TIME_STABLE.lic should_work/TIME_STABLE.lus}
 spawn ./lus2lic -ec -o /tmp/TIME_STABLE.ec should_work/TIME_STABLE.lus
 PASS: ./lus2lic {-ec -o /tmp/TIME_STABLE.ec should_work/TIME_STABLE.lus}
-spawn ./ec2c -o /tmp/TIME_STABLE.c /tmp/TIME_STABLE.ec
-PASS: ./ec2c {-o /tmp/TIME_STABLE.c /tmp/TIME_STABLE.ec}
+spawn ./myec2c -o /tmp/TIME_STABLE.c /tmp/TIME_STABLE.ec
+PASS: ./myec2c {-o /tmp/TIME_STABLE.c /tmp/TIME_STABLE.ec}
+spawn ../utils/test_lus2lic_no_node should_work/TIME_STABLE.lus
++ ./lus2lic should_work/TIME_STABLE.lus -n TIME_STABLE --gen-autotest -np
+_TIME_STABLE_env.lut generated.
+_TIME_STABLE_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/TIME_STABLE.lus
++ ./lus2lic should_work/TIME_STABLE.lus -n TIME_STABLE -ec -o TIME_STABLE.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:TIME_STABLE.ec:TIME_STABLE -rp env:lutin:_TIME_STABLE_env.lut -rp oracle:v6:_TIME_STABLE_oracle.lus:TIME_STABLE_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/TIME_STABLE.lus
 spawn ./lus2lic -o /tmp/cpt.lic should_work/cpt.lus
 PASS: ./lus2lic {-o /tmp/cpt.lic should_work/cpt.lus}
 spawn ./lus2lic -ec -o /tmp/cpt.ec should_work/cpt.lus
 PASS: ./lus2lic {-ec -o /tmp/cpt.ec should_work/cpt.lus}
-spawn ./ec2c -o /tmp/cpt.c /tmp/cpt.ec
-PASS: ./ec2c {-o /tmp/cpt.c /tmp/cpt.ec}
+spawn ./myec2c -o /tmp/cpt.c /tmp/cpt.ec
+PASS: ./myec2c {-o /tmp/cpt.c /tmp/cpt.ec}
+spawn ../utils/test_lus2lic_no_node should_work/cpt.lus
++ ./lus2lic should_work/cpt.lus -n cpt --gen-autotest -np
+_cpt_env.lut generated.
+_cpt_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/cpt.lus
++ ./lus2lic should_work/cpt.lus -n cpt -ec -o cpt.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:cpt.ec:cpt -rp env:lutin:_cpt_env.lut -rp oracle:v6:_cpt_oracle.lus:cpt_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/cpt.lus
 spawn ./lus2lic -o /tmp/multipar.lic should_work/multipar.lus
 PASS: ./lus2lic {-o /tmp/multipar.lic should_work/multipar.lus}
 spawn ./lus2lic -ec -o /tmp/multipar.ec should_work/multipar.lus
 PASS: ./lus2lic {-ec -o /tmp/multipar.ec should_work/multipar.lus}
-spawn ./ec2c -o /tmp/multipar.c /tmp/multipar.ec
-PASS: ./ec2c {-o /tmp/multipar.c /tmp/multipar.ec}
+spawn ./myec2c -o /tmp/multipar.c /tmp/multipar.ec
+PASS: ./myec2c {-o /tmp/multipar.c /tmp/multipar.ec}
+spawn ../utils/test_lus2lic_no_node should_work/multipar.lus
++ ./lus2lic should_work/multipar.lus -n multipar --gen-autotest -np
+_multipar_env.lut generated.
+_multipar_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/multipar.lus
++ ./lus2lic should_work/multipar.lus -n multipar -ec -o multipar.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:multipar.ec:multipar -rp env:lutin:_multipar_env.lut -rp oracle:v6:_multipar_oracle.lus:multipar_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+Failure occured in lurette: int_of_string
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/multipar.lus
 spawn ./lus2lic -o /tmp/activation_ec.lic should_work/activation_ec.lus
 PASS: ./lus2lic {-o /tmp/activation_ec.lic should_work/activation_ec.lus}
 spawn ./lus2lic -ec -o /tmp/activation_ec.ec should_work/activation_ec.lus
 PASS: ./lus2lic {-ec -o /tmp/activation_ec.ec should_work/activation_ec.lus}
-spawn ./ec2c -o /tmp/activation_ec.c /tmp/activation_ec.ec
-PASS: ./ec2c {-o /tmp/activation_ec.c /tmp/activation_ec.ec}
+spawn ./myec2c -o /tmp/activation_ec.c /tmp/activation_ec.ec
+PASS: ./myec2c {-o /tmp/activation_ec.c /tmp/activation_ec.ec}
+spawn ../utils/test_lus2lic_no_node should_work/activation_ec.lus
++ ./lus2lic should_work/activation_ec.lus -n activation_ec --gen-autotest -np
+_activation_ec_env.lut generated.
+_activation_ec_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/activation_ec.lus
++ ./lus2lic should_work/activation_ec.lus -n activation_ec -ec -o activation_ec.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:activation_ec.ec:activation_ec -rp env:lutin:_activation_ec_env.lut -rp oracle:v6:_activation_ec_oracle.lus:activation_ec_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/activation_ec.lus
 spawn ./lus2lic -o /tmp/impl_priority.lic should_work/impl_priority.lus
 PASS: ./lus2lic {-o /tmp/impl_priority.lic should_work/impl_priority.lus}
 spawn ./lus2lic -ec -o /tmp/impl_priority.ec should_work/impl_priority.lus
 PASS: ./lus2lic {-ec -o /tmp/impl_priority.ec should_work/impl_priority.lus}
-spawn ./ec2c -o /tmp/impl_priority.c /tmp/impl_priority.ec
-PASS: ./ec2c {-o /tmp/impl_priority.c /tmp/impl_priority.ec}
+spawn ./myec2c -o /tmp/impl_priority.c /tmp/impl_priority.ec
+PASS: ./myec2c {-o /tmp/impl_priority.c /tmp/impl_priority.ec}
+spawn ../utils/test_lus2lic_no_node should_work/impl_priority.lus
++ ./lus2lic should_work/impl_priority.lus -n impl_priority --gen-autotest -np
+_impl_priority_env.lut generated.
+_impl_priority_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/impl_priority.lus
++ ./lus2lic should_work/impl_priority.lus -n impl_priority -ec -o impl_priority.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:impl_priority.ec:impl_priority -rp env:lutin:_impl_priority_env.lut -rp oracle:v6:_impl_priority_oracle.lus:impl_priority_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/impl_priority.lus
 spawn ./lus2lic -o /tmp/exclusion.lic should_work/exclusion.lus
 PASS: ./lus2lic {-o /tmp/exclusion.lic should_work/exclusion.lus}
 spawn ./lus2lic -ec -o /tmp/exclusion.ec should_work/exclusion.lus
 PASS: ./lus2lic {-ec -o /tmp/exclusion.ec should_work/exclusion.lus}
-spawn ./ec2c -o /tmp/exclusion.c /tmp/exclusion.ec
-PASS: ./ec2c {-o /tmp/exclusion.c /tmp/exclusion.ec}
+spawn ./myec2c -o /tmp/exclusion.c /tmp/exclusion.ec
+PASS: ./myec2c {-o /tmp/exclusion.c /tmp/exclusion.ec}
+spawn ../utils/test_lus2lic_no_node should_work/exclusion.lus
++ ./lus2lic should_work/exclusion.lus -n exclusion --gen-autotest -np
+_exclusion_env.lut generated.
+_exclusion_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/exclusion.lus
++ ./lus2lic should_work/exclusion.lus -n exclusion -ec -o exclusion.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:exclusion.ec:exclusion -rp env:lutin:_exclusion_env.lut -rp oracle:v6:_exclusion_oracle.lus:exclusion_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/exclusion.lus
 spawn ./lus2lic -o /tmp/ply01.lic should_work/ply01.lus
 PASS: ./lus2lic {-o /tmp/ply01.lic should_work/ply01.lus}
 spawn ./lus2lic -ec -o /tmp/ply01.ec should_work/ply01.lus
 PASS: ./lus2lic {-ec -o /tmp/ply01.ec should_work/ply01.lus}
-spawn ./ec2c -o /tmp/ply01.c /tmp/ply01.ec
-PASS: ./ec2c {-o /tmp/ply01.c /tmp/ply01.ec}
+spawn ./myec2c -o /tmp/ply01.c /tmp/ply01.ec
+PASS: ./myec2c {-o /tmp/ply01.c /tmp/ply01.ec}
+spawn ../utils/test_lus2lic_no_node should_work/ply01.lus
++ ./lus2lic should_work/ply01.lus -n ply01 --gen-autotest -np
+_ply01_env.lut generated.
+_ply01_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/ply01.lus
++ ./lus2lic should_work/ply01.lus -n ply01 -ec -o ply01.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ply01.ec:ply01 -rp env:lutin:_ply01_env.lut -rp oracle:v6:_ply01_oracle.lus:ply01_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/ply01.lus
 spawn ./lus2lic -o /tmp/consensus.lic should_work/consensus.lus
 PASS: ./lus2lic {-o /tmp/consensus.lic should_work/consensus.lus}
 spawn ./lus2lic -ec -o /tmp/consensus.ec should_work/consensus.lus
 PASS: ./lus2lic {-ec -o /tmp/consensus.ec should_work/consensus.lus}
-spawn ./ec2c -o /tmp/consensus.c /tmp/consensus.ec
-PASS: ./ec2c {-o /tmp/consensus.c /tmp/consensus.ec}
+spawn ./myec2c -o /tmp/consensus.c /tmp/consensus.ec
+PASS: ./myec2c {-o /tmp/consensus.c /tmp/consensus.ec}
+spawn ../utils/test_lus2lic_no_node should_work/consensus.lus
++ ./lus2lic should_work/consensus.lus -n consensus --gen-autotest -np
+_consensus_env.lut generated.
+_consensus_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/consensus.lus
++ ./lus2lic should_work/consensus.lus -n consensus -ec -o consensus.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:consensus.ec:consensus -rp env:lutin:_consensus_env.lut -rp oracle:v6:_consensus_oracle.lus:consensus_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/consensus.lus
 spawn ./lus2lic -o /tmp/activation2.lic should_work/activation2.lus
 PASS: ./lus2lic {-o /tmp/activation2.lic should_work/activation2.lus}
 spawn ./lus2lic -ec -o /tmp/activation2.ec should_work/activation2.lus
 PASS: ./lus2lic {-ec -o /tmp/activation2.ec should_work/activation2.lus}
-spawn ./ec2c -o /tmp/activation2.c /tmp/activation2.ec
-PASS: ./ec2c {-o /tmp/activation2.c /tmp/activation2.ec}
+spawn ./myec2c -o /tmp/activation2.c /tmp/activation2.ec
+PASS: ./myec2c {-o /tmp/activation2.c /tmp/activation2.ec}
+spawn ../utils/test_lus2lic_no_node should_work/activation2.lus
++ ./lus2lic should_work/activation2.lus -n activation2 --gen-autotest -np
+Error. A combinational cycle been detected in file "/home/jahier/lus2lic/test/should_work/activation2.lus", line 11, col 5 to 15, token 'activation2' on 
+  v07 = activation2::up1(scie)
+  scie = Lustre::arrow(0, v11)
+  v07 = activation2::up1(scie)
+  v09 = Lustre::if(go_up, v07, v08)
+  v11 = Lustre::if(evt, v09, v10)
+
+Hint: try to use --expand-nodes.
+
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/activation2.lus
 spawn ./lus2lic -o /tmp/type_decl.lic should_work/type_decl.lus
 PASS: ./lus2lic {-o /tmp/type_decl.lic should_work/type_decl.lus}
 spawn ./lus2lic -ec -o /tmp/type_decl.ec should_work/type_decl.lus
 PASS: ./lus2lic {-ec -o /tmp/type_decl.ec should_work/type_decl.lus}
-spawn ./ec2c -o /tmp/type_decl.c /tmp/type_decl.ec
-PASS: ./ec2c {-o /tmp/type_decl.c /tmp/type_decl.ec}
+spawn ./myec2c -o /tmp/type_decl.c /tmp/type_decl.ec
+PASS: ./myec2c {-o /tmp/type_decl.c /tmp/type_decl.ec}
+spawn ../utils/test_lus2lic_no_node should_work/type_decl.lus
++ ./lus2lic should_work/type_decl.lus -n type_decl --gen-autotest -np
+_type_decl_env.lut generated.
+_type_decl_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/type_decl.lus
++ ./lus2lic should_work/type_decl.lus -n type_decl -ec -o type_decl.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:type_decl.ec:type_decl -rp env:lutin:_type_decl_env.lut -rp oracle:v6:_type_decl_oracle.lus:type_decl_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/type_decl.lus
 spawn ./lus2lic -o /tmp/import1.lic should_work/import1.lus
 PASS: ./lus2lic {-o /tmp/import1.lic should_work/import1.lus}
 spawn ./lus2lic -ec -o /tmp/import1.ec should_work/import1.lus
 PASS: ./lus2lic {-ec -o /tmp/import1.ec should_work/import1.lus}
-spawn ./ec2c -o /tmp/import1.c /tmp/import1.ec
-PASS: ./ec2c {-o /tmp/import1.c /tmp/import1.ec}
+spawn ./myec2c -o /tmp/import1.c /tmp/import1.ec
+PASS: ./myec2c {-o /tmp/import1.c /tmp/import1.ec}
+spawn ../utils/test_lus2lic_no_node should_work/import1.lus
++ ./lus2lic should_work/import1.lus -n import1 --gen-autotest -np
+*** The soc of import1::imp is not defined. FINISH ME! 
+Extern node not yet supported, sorry
+
+*** oops: lus2lic internal error
+	File "src/lic2soc.ml", line 897, column 14
+*** when compiling lustre program should_work/import1.lus
+
+*** You migth want to sent a bug report to jahier@imag.fr
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/import1.lus
 spawn ./lus2lic -o /tmp/pack1.lic should_work/pack1.lus
 PASS: ./lus2lic {-o /tmp/pack1.lic should_work/pack1.lus}
 spawn ./lus2lic -ec -o /tmp/pack1.ec should_work/pack1.lus
 PASS: ./lus2lic {-ec -o /tmp/pack1.ec should_work/pack1.lus}
-spawn ./ec2c -o /tmp/pack1.c /tmp/pack1.ec
-PASS: ./ec2c {-o /tmp/pack1.c /tmp/pack1.ec}
+spawn ./myec2c -o /tmp/pack1.c /tmp/pack1.ec
+PASS: ./myec2c {-o /tmp/pack1.c /tmp/pack1.ec}
+spawn ../utils/test_lus2lic_no_node should_work/pack1.lus
++ ./lus2lic should_work/pack1.lus -n pack1 --gen-autotest -np
+_pack1_env.lut generated.
+_pack1_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/pack1.lus
++ ./lus2lic should_work/pack1.lus -n pack1 -ec -o pack1.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:pack1.ec:pack1 -rp env:lutin:_pack1_env.lut -rp oracle:v6:_pack1_oracle.lus:pack1_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Parsing.Parse_error
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/pack1.lus
 spawn ./lus2lic -o /tmp/bob.lic should_work/bob.lus
 PASS: ./lus2lic {-o /tmp/bob.lic should_work/bob.lus}
 spawn ./lus2lic -ec -o /tmp/bob.ec should_work/bob.lus
 PASS: ./lus2lic {-ec -o /tmp/bob.ec should_work/bob.lus}
-spawn ./ec2c -o /tmp/bob.c /tmp/bob.ec
-PASS: ./ec2c {-o /tmp/bob.c /tmp/bob.ec}
+spawn ./myec2c -o /tmp/bob.c /tmp/bob.ec
+PASS: ./myec2c {-o /tmp/bob.c /tmp/bob.ec}
+spawn ../utils/test_lus2lic_no_node should_work/bob.lus
++ ./lus2lic should_work/bob.lus -n bob --gen-autotest -np
+_bob_env.lut generated.
+_bob_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/bob.lus
++ ./lus2lic should_work/bob.lus -n bob -ec -o bob.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:bob.ec:bob -rp env:lutin:_bob_env.lut -rp oracle:v6:_bob_oracle.lus:bob_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on i on base\n")
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/bob.lus
 spawn ./lus2lic -o /tmp/notTwo.lic should_work/notTwo.lus
 PASS: ./lus2lic {-o /tmp/notTwo.lic should_work/notTwo.lus}
 spawn ./lus2lic -ec -o /tmp/notTwo.ec should_work/notTwo.lus
 PASS: ./lus2lic {-ec -o /tmp/notTwo.ec should_work/notTwo.lus}
-spawn ./ec2c -o /tmp/notTwo.c /tmp/notTwo.ec
-PASS: ./ec2c {-o /tmp/notTwo.c /tmp/notTwo.ec}
-spawn ./lus2lic -o /tmp/struct.lic should_work/struct.lus
-PASS: ./lus2lic {-o /tmp/struct.lic should_work/struct.lus}
-spawn ./lus2lic -ec -o /tmp/struct.ec should_work/struct.lus
-PASS: ./lus2lic {-ec -o /tmp/struct.ec should_work/struct.lus}
-spawn ./ec2c -o /tmp/struct.c /tmp/struct.ec
-PASS: ./ec2c {-o /tmp/struct.c /tmp/struct.ec}
+spawn ./myec2c -o /tmp/notTwo.c /tmp/notTwo.ec
+PASS: ./myec2c {-o /tmp/notTwo.c /tmp/notTwo.ec}
+spawn ../utils/test_lus2lic_no_node should_work/notTwo.lus
++ ./lus2lic should_work/notTwo.lus -n notTwo --gen-autotest -np
+_notTwo_env.lut generated.
+_notTwo_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/notTwo.lus
++ ./lus2lic should_work/notTwo.lus -n notTwo -ec -o notTwo.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:notTwo.ec:notTwo -rp env:lutin:_notTwo_env.lut -rp oracle:v6:_notTwo_oracle.lus:notTwo_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/notTwo.lus
 spawn ./lus2lic -o /tmp/stopwatch.lic should_work/stopwatch.lus
 PASS: ./lus2lic {-o /tmp/stopwatch.lic should_work/stopwatch.lus}
 spawn ./lus2lic -ec -o /tmp/stopwatch.ec should_work/stopwatch.lus
 PASS: ./lus2lic {-ec -o /tmp/stopwatch.ec should_work/stopwatch.lus}
-spawn ./ec2c -o /tmp/stopwatch.c /tmp/stopwatch.ec
-PASS: ./ec2c {-o /tmp/stopwatch.c /tmp/stopwatch.ec}
+spawn ./myec2c -o /tmp/stopwatch.c /tmp/stopwatch.ec
+PASS: ./myec2c {-o /tmp/stopwatch.c /tmp/stopwatch.ec}
+spawn ../utils/test_lus2lic_no_node should_work/stopwatch.lus
++ ./lus2lic should_work/stopwatch.lus -n stopwatch --gen-autotest -np
+_stopwatch_env.lut generated.
+_stopwatch_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/stopwatch.lus
++ ./lus2lic should_work/stopwatch.lus -n stopwatch -ec -o stopwatch.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:stopwatch.ec:stopwatch -rp env:lutin:_stopwatch_env.lut -rp oracle:v6:_stopwatch_oracle.lus:stopwatch_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/stopwatch.lus
+spawn ./lus2lic -o /tmp/test_condact.lic should_work/test_condact.lus
+PASS: ./lus2lic {-o /tmp/test_condact.lic should_work/test_condact.lus}
+spawn ./lus2lic -ec -o /tmp/test_condact.ec should_work/test_condact.lus
+PASS: ./lus2lic {-ec -o /tmp/test_condact.ec should_work/test_condact.lus}
+spawn ./myec2c -o /tmp/test_condact.c /tmp/test_condact.ec
+PASS: ./myec2c {-o /tmp/test_condact.c /tmp/test_condact.ec}
+spawn ../utils/test_lus2lic_no_node should_work/test_condact.lus
++ ./lus2lic should_work/test_condact.lus -n test_condact --gen-autotest -np
+_test_condact_env.lut generated.
+_test_condact_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/test_condact.lus
++ ./lus2lic should_work/test_condact.lus -n test_condact -ec -o test_condact.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:test_condact.ec:test_condact -rp env:lutin:_test_condact_env.lut -rp oracle:v6:_test_condact_oracle.lus:test_condact_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+
+*** The oracle returned false at step 2
+Oracle numeric outputs: 
+	x_bis=3772
+	y_bis=2
+	z_bis=-25806
+Oracle inputs: 
+	c=t
+	a=1117
+	b=2655
+	x=3772
+	y=3
+	z=-27322
+
+*** The oracle returned false at step 2
+Oracle numeric outputs: 
+	x_bis=3772
+	y_bis=2
+	z_bis=-25806
+Oracle inputs: 
+	c=t
+	a=1117
+	b=2655
+	x=3772
+	y=3
+	z=-27322
+
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/test_condact.lus
 spawn ./lus2lic -o /tmp/contractForElementSelectionInArray.lic should_work/contractForElementSelectionInArray.lus
 PASS: ./lus2lic {-o /tmp/contractForElementSelectionInArray.lic should_work/contractForElementSelectionInArray.lus}
 spawn ./lus2lic -ec -o /tmp/contractForElementSelectionInArray.ec should_work/contractForElementSelectionInArray.lus
 PASS: ./lus2lic {-ec -o /tmp/contractForElementSelectionInArray.ec should_work/contractForElementSelectionInArray.lus}
-spawn ./ec2c -o /tmp/contractForElementSelectionInArray.c /tmp/contractForElementSelectionInArray.ec
-PASS: ./ec2c {-o /tmp/contractForElementSelectionInArray.c /tmp/contractForElementSelectionInArray.ec}
+spawn ./myec2c -o /tmp/contractForElementSelectionInArray.c /tmp/contractForElementSelectionInArray.ec
+PASS: ./myec2c {-o /tmp/contractForElementSelectionInArray.c /tmp/contractForElementSelectionInArray.ec}
+spawn ../utils/test_lus2lic_no_node should_work/contractForElementSelectionInArray.lus
++ ./lus2lic should_work/contractForElementSelectionInArray.lus -n contractForElementSelectionInArray --gen-autotest -np
+_contractForElementSelectionInArray_env.lut generated.
+_contractForElementSelectionInArray_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/contractForElementSelectionInArray.lus
++ ./lus2lic should_work/contractForElementSelectionInArray.lus -n contractForElementSelectionInArray -ec -o contractForElementSelectionInArray.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:contractForElementSelectionInArray.ec:contractForElementSelectionInArray -rp env:lutin:_contractForElementSelectionInArray_env.lut -rp oracle:v6:_contractForElementSelectionInArray_oracle.lus:contractForElementSelectionInArray_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/contractForElementSelectionInArray.lus
 spawn ./lus2lic -o /tmp/iterFibo.lic should_work/iterFibo.lus
 PASS: ./lus2lic {-o /tmp/iterFibo.lic should_work/iterFibo.lus}
 spawn ./lus2lic -ec -o /tmp/iterFibo.ec should_work/iterFibo.lus
 PASS: ./lus2lic {-ec -o /tmp/iterFibo.ec should_work/iterFibo.lus}
-spawn ./ec2c -o /tmp/iterFibo.c /tmp/iterFibo.ec
-PASS: ./ec2c {-o /tmp/iterFibo.c /tmp/iterFibo.ec}
+spawn ./myec2c -o /tmp/iterFibo.c /tmp/iterFibo.ec
+PASS: ./myec2c {-o /tmp/iterFibo.c /tmp/iterFibo.ec}
+spawn ../utils/test_lus2lic_no_node should_work/iterFibo.lus
++ ./lus2lic should_work/iterFibo.lus -n iterFibo --gen-autotest -np
+_iterFibo_env.lut generated.
+_iterFibo_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/iterFibo.lus
++ ./lus2lic should_work/iterFibo.lus -n iterFibo -ec -o iterFibo.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:iterFibo.ec:iterFibo -rp env:lutin:_iterFibo_env.lut -rp oracle:v6:_iterFibo_oracle.lus:iterFibo_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/iterFibo.lus
 spawn ./lus2lic -o /tmp/morel2.lic should_work/morel2.lus
 PASS: ./lus2lic {-o /tmp/morel2.lic should_work/morel2.lus}
 spawn ./lus2lic -ec -o /tmp/morel2.ec should_work/morel2.lus
 PASS: ./lus2lic {-ec -o /tmp/morel2.ec should_work/morel2.lus}
-spawn ./ec2c -o /tmp/morel2.c /tmp/morel2.ec
-PASS: ./ec2c {-o /tmp/morel2.c /tmp/morel2.ec}
+spawn ./myec2c -o /tmp/morel2.c /tmp/morel2.ec
+PASS: ./myec2c {-o /tmp/morel2.c /tmp/morel2.ec}
+spawn ../utils/test_lus2lic_no_node should_work/morel2.lus
++ ./lus2lic should_work/morel2.lus -n morel2 --gen-autotest -np
+_morel2_env.lut generated.
+_morel2_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/morel2.lus
++ ./lus2lic should_work/morel2.lus -n morel2 -ec -o morel2.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:morel2.ec:morel2 -rp env:lutin:_morel2_env.lut -rp oracle:v6:_morel2_oracle.lus:morel2_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/morel2.lus
 spawn ./lus2lic -o /tmp/minmax1.lic should_work/minmax1.lus
 PASS: ./lus2lic {-o /tmp/minmax1.lic should_work/minmax1.lus}
 spawn ./lus2lic -ec -o /tmp/minmax1.ec should_work/minmax1.lus
 PASS: ./lus2lic {-ec -o /tmp/minmax1.ec should_work/minmax1.lus}
-spawn ./ec2c -o /tmp/minmax1.c /tmp/minmax1.ec
-PASS: ./ec2c {-o /tmp/minmax1.c /tmp/minmax1.ec}
+spawn ./myec2c -o /tmp/minmax1.c /tmp/minmax1.ec
+PASS: ./myec2c {-o /tmp/minmax1.c /tmp/minmax1.ec}
+spawn ../utils/test_lus2lic_no_node should_work/minmax1.lus
++ ./lus2lic should_work/minmax1.lus -n minmax1 --gen-autotest -np
+_minmax1_env.lut generated.
+_minmax1_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/minmax1.lus
++ ./lus2lic should_work/minmax1.lus -n minmax1 -ec -o minmax1.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:minmax1.ec:minmax1 -rp env:lutin:_minmax1_env.lut -rp oracle:v6:_minmax1_oracle.lus:minmax1_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/minmax1.lus
 spawn ./lus2lic -o /tmp/aa.lic should_work/aa.lus
 PASS: ./lus2lic {-o /tmp/aa.lic should_work/aa.lus}
 spawn ./lus2lic -ec -o /tmp/aa.ec should_work/aa.lus
 PASS: ./lus2lic {-ec -o /tmp/aa.ec should_work/aa.lus}
-spawn ./ec2c -o /tmp/aa.c /tmp/aa.ec
-PASS: ./ec2c {-o /tmp/aa.c /tmp/aa.ec}
+spawn ./myec2c -o /tmp/aa.c /tmp/aa.ec
+PASS: ./myec2c {-o /tmp/aa.c /tmp/aa.ec}
+spawn ../utils/test_lus2lic_no_node should_work/aa.lus
++ ./lus2lic should_work/aa.lus -n aa --gen-autotest -np
+_aa_env.lut generated.
+_aa_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/aa.lus
++ ./lus2lic should_work/aa.lus -n aa -ec -o aa.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:aa.ec:aa -rp env:lutin:_aa_env.lut -rp oracle:v6:_aa_oracle.lus:aa_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/aa.lus
 spawn ./lus2lic -o /tmp/mouse3.lic should_work/mouse3.lus
 PASS: ./lus2lic {-o /tmp/mouse3.lic should_work/mouse3.lus}
 spawn ./lus2lic -ec -o /tmp/mouse3.ec should_work/mouse3.lus
 PASS: ./lus2lic {-ec -o /tmp/mouse3.ec should_work/mouse3.lus}
-spawn ./ec2c -o /tmp/mouse3.c /tmp/mouse3.ec
-PASS: ./ec2c {-o /tmp/mouse3.c /tmp/mouse3.ec}
+spawn ./myec2c -o /tmp/mouse3.c /tmp/mouse3.ec
+PASS: ./myec2c {-o /tmp/mouse3.c /tmp/mouse3.ec}
+spawn ../utils/test_lus2lic_no_node should_work/mouse3.lus
++ ./lus2lic should_work/mouse3.lus -n mouse3 --gen-autotest -np
+_mouse3_env.lut generated.
+_mouse3_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/mouse3.lus
++ ./lus2lic should_work/mouse3.lus -n mouse3 -ec -o mouse3.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mouse3.ec:mouse3 -rp env:lutin:_mouse3_env.lut -rp oracle:v6:_mouse3_oracle.lus:mouse3_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/mouse3.lus
 spawn ./lus2lic -o /tmp/ex.lic should_work/ex.lus
 PASS: ./lus2lic {-o /tmp/ex.lic should_work/ex.lus}
 spawn ./lus2lic -ec -o /tmp/ex.ec should_work/ex.lus
 PASS: ./lus2lic {-ec -o /tmp/ex.ec should_work/ex.lus}
-spawn ./ec2c -o /tmp/ex.c /tmp/ex.ec
-PASS: ./ec2c {-o /tmp/ex.c /tmp/ex.ec}
+spawn ./myec2c -o /tmp/ex.c /tmp/ex.ec
+PASS: ./myec2c {-o /tmp/ex.c /tmp/ex.ec}
+spawn ../utils/test_lus2lic_no_node should_work/ex.lus
++ ./lus2lic should_work/ex.lus -n ex --gen-autotest -np
+_ex_env.lut generated.
+_ex_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/ex.lus
++ ./lus2lic should_work/ex.lus -n ex -ec -o ex.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ex.ec:ex -rp env:lutin:_ex_env.lut -rp oracle:v6:_ex_oracle.lus:ex_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/ex.lus
 spawn ./lus2lic -o /tmp/xxx.lic should_work/xxx.lus
 PASS: ./lus2lic {-o /tmp/xxx.lic should_work/xxx.lus}
 spawn ./lus2lic -ec -o /tmp/xxx.ec should_work/xxx.lus
 PASS: ./lus2lic {-ec -o /tmp/xxx.ec should_work/xxx.lus}
-spawn ./ec2c -o /tmp/xxx.c /tmp/xxx.ec
-PASS: ./ec2c {-o /tmp/xxx.c /tmp/xxx.ec}
-spawn ./lus2lic -o /tmp/aux1.lic should_work/aux1.lus
-PASS: ./lus2lic {-o /tmp/aux1.lic should_work/aux1.lus}
-spawn ./lus2lic -ec -o /tmp/aux1.ec should_work/aux1.lus
-PASS: ./lus2lic {-ec -o /tmp/aux1.ec should_work/aux1.lus}
-spawn ./ec2c -o /tmp/aux1.c /tmp/aux1.ec
-PASS: ./ec2c {-o /tmp/aux1.c /tmp/aux1.ec}
+spawn ./myec2c -o /tmp/xxx.c /tmp/xxx.ec
+PASS: ./myec2c {-o /tmp/xxx.c /tmp/xxx.ec}
+spawn ../utils/test_lus2lic_no_node should_work/xxx.lus
++ ./lus2lic should_work/xxx.lus -n xxx --gen-autotest -np
+_xxx_env.lut generated.
+_xxx_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/xxx.lus
++ ./lus2lic should_work/xxx.lus -n xxx -ec -o xxx.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:xxx.ec:xxx -rp env:lutin:_xxx_env.lut -rp oracle:v6:_xxx_oracle.lus:xxx_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/xxx.lus
 spawn ./lus2lic -o /tmp/moyenne.lic should_work/moyenne.lus
 PASS: ./lus2lic {-o /tmp/moyenne.lic should_work/moyenne.lus}
 spawn ./lus2lic -ec -o /tmp/moyenne.ec should_work/moyenne.lus
 PASS: ./lus2lic {-ec -o /tmp/moyenne.ec should_work/moyenne.lus}
-spawn ./ec2c -o /tmp/moyenne.c /tmp/moyenne.ec
-PASS: ./ec2c {-o /tmp/moyenne.c /tmp/moyenne.ec}
+spawn ./myec2c -o /tmp/moyenne.c /tmp/moyenne.ec
+PASS: ./myec2c {-o /tmp/moyenne.c /tmp/moyenne.ec}
+spawn ../utils/test_lus2lic_no_node should_work/moyenne.lus
++ ./lus2lic should_work/moyenne.lus -n moyenne --gen-autotest -np
+_moyenne_env.lut generated.
+_moyenne_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/moyenne.lus
++ ./lus2lic should_work/moyenne.lus -n moyenne -ec -o moyenne.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:moyenne.ec:moyenne -rp env:lutin:_moyenne_env.lut -rp oracle:v6:_moyenne_oracle.lus:moyenne_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/moyenne.lus
 spawn ./lus2lic -o /tmp/activation1.lic should_work/activation1.lus
 PASS: ./lus2lic {-o /tmp/activation1.lic should_work/activation1.lus}
 spawn ./lus2lic -ec -o /tmp/activation1.ec should_work/activation1.lus
 PASS: ./lus2lic {-ec -o /tmp/activation1.ec should_work/activation1.lus}
-spawn ./ec2c -o /tmp/activation1.c /tmp/activation1.ec
-PASS: ./ec2c {-o /tmp/activation1.c /tmp/activation1.ec}
+spawn ./myec2c -o /tmp/activation1.c /tmp/activation1.ec
+PASS: ./myec2c {-o /tmp/activation1.c /tmp/activation1.ec}
+spawn ../utils/test_lus2lic_no_node should_work/activation1.lus
++ ./lus2lic should_work/activation1.lus -n activation1 --gen-autotest -np
+Error. A combinational cycle been detected in file "/home/jahier/lus2lic/test/should_work/activation1.lus", line 11, col 5 to 15, token 'activation1' on 
+  v07 = activation1::up1(scie)
+  v10 = Lustre::arrow(0, v09)
+  v07 = activation1::up1(scie)
+  scie = Lustre::if(reset, 0, v10)
+  v09 = Lustre::if(go_up, v07, v08)
+
+Hint: try to use --expand-nodes.
+
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/activation1.lus
 spawn ./lus2lic -o /tmp/call01.lic should_work/call01.lus
 PASS: ./lus2lic {-o /tmp/call01.lic should_work/call01.lus}
 spawn ./lus2lic -ec -o /tmp/call01.ec should_work/call01.lus
 PASS: ./lus2lic {-ec -o /tmp/call01.ec should_work/call01.lus}
-spawn ./ec2c -o /tmp/call01.c /tmp/call01.ec
-PASS: ./ec2c {-o /tmp/call01.c /tmp/call01.ec}
-spawn ./lus2lic -o /tmp/lecteur.lic should_work/lecteur.lus
-PASS: ./lus2lic {-o /tmp/lecteur.lic should_work/lecteur.lus}
-spawn ./lus2lic -ec -o /tmp/lecteur.ec should_work/lecteur.lus
-PASS: ./lus2lic {-ec -o /tmp/lecteur.ec should_work/lecteur.lus}
-spawn ./ec2c -o /tmp/lecteur.c /tmp/lecteur.ec
-PASS: ./ec2c {-o /tmp/lecteur.c /tmp/lecteur.ec}
+spawn ./myec2c -o /tmp/call01.c /tmp/call01.ec
+PASS: ./myec2c {-o /tmp/call01.c /tmp/call01.ec}
+spawn ../utils/test_lus2lic_no_node should_work/call01.lus
++ ./lus2lic should_work/call01.lus -n call01 --gen-autotest -np
+_call01_env.lut generated.
+_call01_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/call01.lus
++ ./lus2lic should_work/call01.lus -n call01 -ec -o call01.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:call01.ec:call01 -rp env:lutin:_call01_env.lut -rp oracle:v6:_call01_oracle.lus:call01_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/call01.lus
 spawn ./lus2lic -o /tmp/bug.lic should_work/bug.lus
 PASS: ./lus2lic {-o /tmp/bug.lic should_work/bug.lus}
 spawn ./lus2lic -ec -o /tmp/bug.ec should_work/bug.lus
 PASS: ./lus2lic {-ec -o /tmp/bug.ec should_work/bug.lus}
-spawn ./ec2c -o /tmp/bug.c /tmp/bug.ec
-PASS: ./ec2c {-o /tmp/bug.c /tmp/bug.ec}
+spawn ./myec2c -o /tmp/bug.c /tmp/bug.ec
+PASS: ./myec2c {-o /tmp/bug.c /tmp/bug.ec}
+spawn ../utils/test_lus2lic_no_node should_work/bug.lus
++ ./lus2lic should_work/bug.lus -n bug --gen-autotest -np
+_bug_env.lut generated.
+_bug_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/bug.lus
++ ./lus2lic should_work/bug.lus -n bug -ec -o bug.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:bug.ec:bug -rp env:lutin:_bug_env.lut -rp oracle:v6:_bug_oracle.lus:bug_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/bug.lus
 spawn ./lus2lic -o /tmp/ck4.lic should_work/ck4.lus
 PASS: ./lus2lic {-o /tmp/ck4.lic should_work/ck4.lus}
 spawn ./lus2lic -ec -o /tmp/ck4.ec should_work/ck4.lus
 PASS: ./lus2lic {-ec -o /tmp/ck4.ec should_work/ck4.lus}
-spawn ./ec2c -o /tmp/ck4.c /tmp/ck4.ec
-PASS: ./ec2c {-o /tmp/ck4.c /tmp/ck4.ec}
+spawn ./myec2c -o /tmp/ck4.c /tmp/ck4.ec
+PASS: ./myec2c {-o /tmp/ck4.c /tmp/ck4.ec}
+spawn ../utils/test_lus2lic_no_node should_work/ck4.lus
++ ./lus2lic should_work/ck4.lus -n ck4 --gen-autotest -np
+_ck4_env.lut generated.
+_ck4_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/ck4.lus
++ ./lus2lic should_work/ck4.lus -n ck4 -ec -o ck4.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ck4.ec:ck4 -rp env:lutin:_ck4_env.lut -rp oracle:v6:_ck4_oracle.lus:ck4_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on b'a0\n")
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/ck4.lus
 spawn ./lus2lic -o /tmp/map_red_iter.lic should_work/map_red_iter.lus
 PASS: ./lus2lic {-o /tmp/map_red_iter.lic should_work/map_red_iter.lus}
 spawn ./lus2lic -ec -o /tmp/map_red_iter.ec should_work/map_red_iter.lus
 PASS: ./lus2lic {-ec -o /tmp/map_red_iter.ec should_work/map_red_iter.lus}
-spawn ./ec2c -o /tmp/map_red_iter.c /tmp/map_red_iter.ec
-PASS: ./ec2c {-o /tmp/map_red_iter.c /tmp/map_red_iter.ec}
+spawn ./myec2c -o /tmp/map_red_iter.c /tmp/map_red_iter.ec
+PASS: ./myec2c {-o /tmp/map_red_iter.c /tmp/map_red_iter.ec}
+spawn ../utils/test_lus2lic_no_node should_work/map_red_iter.lus
++ ./lus2lic should_work/map_red_iter.lus -n map_red_iter --gen-autotest -np
+_map_red_iter_env.lut generated.
+_map_red_iter_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/map_red_iter.lus
++ ./lus2lic should_work/map_red_iter.lus -n map_red_iter -ec -o map_red_iter.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:map_red_iter.ec:map_red_iter -rp env:lutin:_map_red_iter_env.lut -rp oracle:v6:_map_red_iter_oracle.lus:map_red_iter_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/map_red_iter.lus
 spawn ./lus2lic -o /tmp/p.lic should_work/p.lus
 PASS: ./lus2lic {-o /tmp/p.lic should_work/p.lus}
 spawn ./lus2lic -ec -o /tmp/p.ec should_work/p.lus
 PASS: ./lus2lic {-ec -o /tmp/p.ec should_work/p.lus}
-spawn ./ec2c -o /tmp/p.c /tmp/p.ec
-PASS: ./ec2c {-o /tmp/p.c /tmp/p.ec}
+spawn ./myec2c -o /tmp/p.c /tmp/p.ec
+PASS: ./myec2c {-o /tmp/p.c /tmp/p.ec}
+spawn ../utils/test_lus2lic_no_node should_work/p.lus
++ ./lus2lic should_work/p.lus -n p --gen-autotest -np
+*** Can not find package 'p' in the following packages: 
+***	 'pbool'
+***	 'mainPack'
+***	 'pint'
+***	 'inter'
+***	 'preal'
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/p.lus
 spawn ./lus2lic -o /tmp/struct0.lic should_work/struct0.lus
 PASS: ./lus2lic {-o /tmp/struct0.lic should_work/struct0.lus}
 spawn ./lus2lic -ec -o /tmp/struct0.ec should_work/struct0.lus
 PASS: ./lus2lic {-ec -o /tmp/struct0.ec should_work/struct0.lus}
-spawn ./ec2c -o /tmp/struct0.c /tmp/struct0.ec
-PASS: ./ec2c {-o /tmp/struct0.c /tmp/struct0.ec}
+spawn ./myec2c -o /tmp/struct0.c /tmp/struct0.ec
+PASS: ./myec2c {-o /tmp/struct0.c /tmp/struct0.ec}
+spawn ../utils/test_lus2lic_no_node should_work/struct0.lus
++ ./lus2lic should_work/struct0.lus -n struct0 --gen-autotest -np
+_struct0_env.lut generated.
+_struct0_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/struct0.lus
++ ./lus2lic should_work/struct0.lus -n struct0 -ec -o struct0.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:struct0.ec:struct0 -rp env:lutin:_struct0_env.lut -rp oracle:v6:_struct0_oracle.lus:struct0_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/struct0.lus
 spawn ./lus2lic -o /tmp/filliter.lic should_work/filliter.lus
 PASS: ./lus2lic {-o /tmp/filliter.lic should_work/filliter.lus}
 spawn ./lus2lic -ec -o /tmp/filliter.ec should_work/filliter.lus
 PASS: ./lus2lic {-ec -o /tmp/filliter.ec should_work/filliter.lus}
-spawn ./ec2c -o /tmp/filliter.c /tmp/filliter.ec
-PASS: ./ec2c {-o /tmp/filliter.c /tmp/filliter.ec}
+spawn ./myec2c -o /tmp/filliter.c /tmp/filliter.ec
+PASS: ./myec2c {-o /tmp/filliter.c /tmp/filliter.ec}
+spawn ../utils/test_lus2lic_no_node should_work/filliter.lus
++ ./lus2lic should_work/filliter.lus -n filliter --gen-autotest -np
+_filliter_env.lut generated.
+_filliter_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/filliter.lus
++ ./lus2lic should_work/filliter.lus -n filliter -ec -o filliter.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:filliter.ec:filliter -rp env:lutin:_filliter_env.lut -rp oracle:v6:_filliter_oracle.lus:filliter_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on c on base\n")
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/filliter.lus
 spawn ./lus2lic -o /tmp/minmax4.lic should_work/minmax4.lus
 PASS: ./lus2lic {-o /tmp/minmax4.lic should_work/minmax4.lus}
 spawn ./lus2lic -ec -o /tmp/minmax4.ec should_work/minmax4.lus
 PASS: ./lus2lic {-ec -o /tmp/minmax4.ec should_work/minmax4.lus}
-spawn ./ec2c -o /tmp/minmax4.c /tmp/minmax4.ec
-PASS: ./ec2c {-o /tmp/minmax4.c /tmp/minmax4.ec}
+spawn ./myec2c -o /tmp/minmax4.c /tmp/minmax4.ec
+PASS: ./myec2c {-o /tmp/minmax4.c /tmp/minmax4.ec}
+spawn ../utils/test_lus2lic_no_node should_work/minmax4.lus
++ ./lus2lic should_work/minmax4.lus -n minmax4 --gen-autotest -np
+_minmax4_env.lut generated.
+_minmax4_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/minmax4.lus
++ ./lus2lic should_work/minmax4.lus -n minmax4 -ec -o minmax4.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:minmax4.ec:minmax4 -rp env:lutin:_minmax4_env.lut -rp oracle:v6:_minmax4_oracle.lus:minmax4_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/minmax4.lus
 spawn ./lus2lic -o /tmp/nested.lic should_work/nested.lus
 PASS: ./lus2lic {-o /tmp/nested.lic should_work/nested.lus}
 spawn ./lus2lic -ec -o /tmp/nested.ec should_work/nested.lus
 PASS: ./lus2lic {-ec -o /tmp/nested.ec should_work/nested.lus}
-spawn ./ec2c -o /tmp/nested.c /tmp/nested.ec
-PASS: ./ec2c {-o /tmp/nested.c /tmp/nested.ec}
+spawn ./myec2c -o /tmp/nested.c /tmp/nested.ec
+PASS: ./myec2c {-o /tmp/nested.c /tmp/nested.ec}
+spawn ../utils/test_lus2lic_no_node should_work/nested.lus
++ ./lus2lic should_work/nested.lus -n nested --gen-autotest -np
+_nested_env.lut generated.
+_nested_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/nested.lus
++ ./lus2lic should_work/nested.lus -n nested -ec -o nested.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nested.ec:nested -rp env:lutin:_nested_env.lut -rp oracle:v6:_nested_oracle.lus:nested_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/nested.lus
 spawn ./lus2lic -o /tmp/Gyroscope.lic should_work/Gyroscope.lus
 PASS: ./lus2lic {-o /tmp/Gyroscope.lic should_work/Gyroscope.lus}
 spawn ./lus2lic -ec -o /tmp/Gyroscope.ec should_work/Gyroscope.lus
 PASS: ./lus2lic {-ec -o /tmp/Gyroscope.ec should_work/Gyroscope.lus}
-spawn ./ec2c -o /tmp/Gyroscope.c /tmp/Gyroscope.ec
-PASS: ./ec2c {-o /tmp/Gyroscope.c /tmp/Gyroscope.ec}
+spawn ./myec2c -o /tmp/Gyroscope.c /tmp/Gyroscope.ec
+PASS: ./myec2c {-o /tmp/Gyroscope.c /tmp/Gyroscope.ec}
+spawn ../utils/test_lus2lic_no_node should_work/Gyroscope.lus
++ ./lus2lic should_work/Gyroscope.lus -n Gyroscope --gen-autotest -np
+_Gyroscope_env.lut generated.
+_Gyroscope_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/Gyroscope.lus
++ ./lus2lic should_work/Gyroscope.lus -n Gyroscope -ec -o Gyroscope.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:Gyroscope.ec:Gyroscope -rp env:lutin:_Gyroscope_env.lut -rp oracle:v6:_Gyroscope_oracle.lus:Gyroscope_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+#ERROR: Output takes on nil
+RifIO.Bye
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/Gyroscope.lus
+spawn ./lus2lic -o /tmp/followed_by.lic should_work/followed_by.lus
+PASS: ./lus2lic {-o /tmp/followed_by.lic should_work/followed_by.lus}
+spawn ./lus2lic -ec -o /tmp/followed_by.ec should_work/followed_by.lus
+PASS: ./lus2lic {-ec -o /tmp/followed_by.ec should_work/followed_by.lus}
+spawn ./myec2c -o /tmp/followed_by.c /tmp/followed_by.ec
+PASS: ./myec2c {-o /tmp/followed_by.c /tmp/followed_by.ec}
+spawn ../utils/test_lus2lic_no_node should_work/followed_by.lus
++ ./lus2lic should_work/followed_by.lus -n followed_by --gen-autotest -np
+_followed_by_env.lut generated.
+_followed_by_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/followed_by.lus
++ ./lus2lic should_work/followed_by.lus -n followed_by -ec -o followed_by.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:followed_by.ec:followed_by -rp env:lutin:_followed_by_env.lut -rp oracle:v6:_followed_by_oracle.lus:followed_by_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/followed_by.lus
 spawn ./lus2lic -o /tmp/asservi.lic should_work/asservi.lus
 PASS: ./lus2lic {-o /tmp/asservi.lic should_work/asservi.lus}
 spawn ./lus2lic -ec -o /tmp/asservi.ec should_work/asservi.lus
 PASS: ./lus2lic {-ec -o /tmp/asservi.ec should_work/asservi.lus}
-spawn ./ec2c -o /tmp/asservi.c /tmp/asservi.ec
-PASS: ./ec2c {-o /tmp/asservi.c /tmp/asservi.ec}
+spawn ./myec2c -o /tmp/asservi.c /tmp/asservi.ec
+PASS: ./myec2c {-o /tmp/asservi.c /tmp/asservi.ec}
+spawn ../utils/test_lus2lic_no_node should_work/asservi.lus
++ ./lus2lic should_work/asservi.lus -n asservi --gen-autotest -np
+*** The soc of asservi::make_pend is not defined. FINISH ME! 
+Extern node not yet supported, sorry
+
+*** oops: lus2lic internal error
+	File "src/lic2soc.ml", line 897, column 14
+*** when compiling lustre program should_work/asservi.lus
+
+*** You migth want to sent a bug report to jahier@imag.fr
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/asservi.lus
 spawn ./lus2lic -o /tmp/rediter.lic should_work/rediter.lus
 PASS: ./lus2lic {-o /tmp/rediter.lic should_work/rediter.lus}
 spawn ./lus2lic -ec -o /tmp/rediter.ec should_work/rediter.lus
 PASS: ./lus2lic {-ec -o /tmp/rediter.ec should_work/rediter.lus}
-spawn ./ec2c -o /tmp/rediter.c /tmp/rediter.ec
-PASS: ./ec2c {-o /tmp/rediter.c /tmp/rediter.ec}
+spawn ./myec2c -o /tmp/rediter.c /tmp/rediter.ec
+PASS: ./myec2c {-o /tmp/rediter.c /tmp/rediter.ec}
+spawn ../utils/test_lus2lic_no_node should_work/rediter.lus
++ ./lus2lic should_work/rediter.lus -n rediter --gen-autotest -np
+_rediter_env.lut generated.
+_rediter_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/rediter.lus
++ ./lus2lic should_work/rediter.lus -n rediter -ec -o rediter.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:rediter.ec:rediter -rp env:lutin:_rediter_env.lut -rp oracle:v6:_rediter_oracle.lus:rediter_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/rediter.lus
 spawn ./lus2lic -o /tmp/mapdeRed.lic should_work/mapdeRed.lus
 PASS: ./lus2lic {-o /tmp/mapdeRed.lic should_work/mapdeRed.lus}
 spawn ./lus2lic -ec -o /tmp/mapdeRed.ec should_work/mapdeRed.lus
 PASS: ./lus2lic {-ec -o /tmp/mapdeRed.ec should_work/mapdeRed.lus}
-spawn ./ec2c -o /tmp/mapdeRed.c /tmp/mapdeRed.ec
-PASS: ./ec2c {-o /tmp/mapdeRed.c /tmp/mapdeRed.ec}
+spawn ./myec2c -o /tmp/mapdeRed.c /tmp/mapdeRed.ec
+PASS: ./myec2c {-o /tmp/mapdeRed.c /tmp/mapdeRed.ec}
+spawn ../utils/test_lus2lic_no_node should_work/mapdeRed.lus
++ ./lus2lic should_work/mapdeRed.lus -n mapdeRed --gen-autotest -np
+_mapdeRed_env.lut generated.
+_mapdeRed_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/mapdeRed.lus
++ ./lus2lic should_work/mapdeRed.lus -n mapdeRed -ec -o mapdeRed.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mapdeRed.ec:mapdeRed -rp env:lutin:_mapdeRed_env.lut -rp oracle:v6:_mapdeRed_oracle.lus:mapdeRed_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/mapdeRed.lus
 spawn ./lus2lic -o /tmp/modelInst.lic should_work/modelInst.lus
 PASS: ./lus2lic {-o /tmp/modelInst.lic should_work/modelInst.lus}
 spawn ./lus2lic -ec -o /tmp/modelInst.ec should_work/modelInst.lus
 PASS: ./lus2lic {-ec -o /tmp/modelInst.ec should_work/modelInst.lus}
-spawn ./ec2c -o /tmp/modelInst.c /tmp/modelInst.ec
-PASS: ./ec2c {-o /tmp/modelInst.c /tmp/modelInst.ec}
+spawn ./myec2c -o /tmp/modelInst.c /tmp/modelInst.ec
+PASS: ./myec2c {-o /tmp/modelInst.c /tmp/modelInst.ec}
+spawn ../utils/test_lus2lic_no_node should_work/modelInst.lus
++ ./lus2lic should_work/modelInst.lus -n modelInst --gen-autotest -np
+*** Can not find package 'modelInst' in the following packages: 
+***	 'Preal'
+***	 'Pint'
+***	 'main'
+***	 'Pbool'
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/modelInst.lus
 spawn ./lus2lic -o /tmp/dependeur_struct.lic should_work/dependeur_struct.lus
 PASS: ./lus2lic {-o /tmp/dependeur_struct.lic should_work/dependeur_struct.lus}
 spawn ./lus2lic -ec -o /tmp/dependeur_struct.ec should_work/dependeur_struct.lus
 PASS: ./lus2lic {-ec -o /tmp/dependeur_struct.ec should_work/dependeur_struct.lus}
-spawn ./ec2c -o /tmp/dependeur_struct.c /tmp/dependeur_struct.ec
-PASS: ./ec2c {-o /tmp/dependeur_struct.c /tmp/dependeur_struct.ec}
+spawn ./myec2c -o /tmp/dependeur_struct.c /tmp/dependeur_struct.ec
+PASS: ./myec2c {-o /tmp/dependeur_struct.c /tmp/dependeur_struct.ec}
+spawn ../utils/test_lus2lic_no_node should_work/dependeur_struct.lus
++ ./lus2lic should_work/dependeur_struct.lus -n dependeur_struct --gen-autotest -np
+_dependeur_struct_env.lut generated.
+_dependeur_struct_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/dependeur_struct.lus
++ ./lus2lic should_work/dependeur_struct.lus -n dependeur_struct -ec -o dependeur_struct.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:dependeur_struct.ec:dependeur_struct -rp env:lutin:_dependeur_struct_env.lut -rp oracle:v6:_dependeur_struct_oracle.lus:dependeur_struct_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exitPASS: ../utils/test_lus2lic_no_node should_work/dependeur_struct.lus
 spawn ./lus2lic -o /tmp/minmax4_bis.lic should_work/minmax4_bis.lus
 PASS: ./lus2lic {-o /tmp/minmax4_bis.lic should_work/minmax4_bis.lus}
 spawn ./lus2lic -ec -o /tmp/minmax4_bis.ec should_work/minmax4_bis.lus
 PASS: ./lus2lic {-ec -o /tmp/minmax4_bis.ec should_work/minmax4_bis.lus}
-spawn ./ec2c -o /tmp/minmax4_bis.c /tmp/minmax4_bis.ec
-PASS: ./ec2c {-o /tmp/minmax4_bis.c /tmp/minmax4_bis.ec}
+spawn ./myec2c -o /tmp/minmax4_bis.c /tmp/minmax4_bis.ec
+PASS: ./myec2c {-o /tmp/minmax4_bis.c /tmp/minmax4_bis.ec}
+spawn ../utils/test_lus2lic_no_node should_work/minmax4_bis.lus
++ ./lus2lic should_work/minmax4_bis.lus -n minmax4_bis --gen-autotest -np
+_minmax4_bis_env.lut generated.
+_minmax4_bis_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/minmax4_bis.lus
++ ./lus2lic should_work/minmax4_bis.lus -n minmax4_bis -ec -o minmax4_bis.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:minmax4_bis.ec:minmax4_bis -rp env:lutin:_minmax4_bis_env.lut -rp oracle:v6:_minmax4_bis_oracle.lus:minmax4_bis_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/minmax4_bis.lus
+spawn ./lus2lic -o /tmp/test_struct.lic should_work/test_struct.lus
+PASS: ./lus2lic {-o /tmp/test_struct.lic should_work/test_struct.lus}
+spawn ./lus2lic -ec -o /tmp/test_struct.ec should_work/test_struct.lus
+PASS: ./lus2lic {-ec -o /tmp/test_struct.ec should_work/test_struct.lus}
+spawn ./myec2c -o /tmp/test_struct.c /tmp/test_struct.ec
+PASS: ./myec2c {-o /tmp/test_struct.c /tmp/test_struct.ec}
+spawn ../utils/test_lus2lic_no_node should_work/test_struct.lus
++ ./lus2lic should_work/test_struct.lus -n test_struct --gen-autotest -np
+_test_struct_env.lut generated.
+_test_struct_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/test_struct.lus
++ ./lus2lic should_work/test_struct.lus -n test_struct -ec -o test_struct.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:test_struct.ec:test_struct -rp env:lutin:_test_struct_env.lut -rp oracle:v6:_test_struct_oracle.lus:test_struct_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/test_struct.lus
 spawn ./lus2lic -o /tmp/uu.lic should_work/uu.lus
 PASS: ./lus2lic {-o /tmp/uu.lic should_work/uu.lus}
 spawn ./lus2lic -ec -o /tmp/uu.ec should_work/uu.lus
 PASS: ./lus2lic {-ec -o /tmp/uu.ec should_work/uu.lus}
-spawn ./ec2c -o /tmp/uu.c /tmp/uu.ec
-PASS: ./ec2c {-o /tmp/uu.c /tmp/uu.ec}
+spawn ./myec2c -o /tmp/uu.c /tmp/uu.ec
+PASS: ./myec2c {-o /tmp/uu.c /tmp/uu.ec}
+spawn ../utils/test_lus2lic_no_node should_work/uu.lus
++ ./lus2lic should_work/uu.lus -n uu --gen-autotest -np
+_uu_env.lut generated.
+_uu_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/uu.lus
++ ./lus2lic should_work/uu.lus -n uu -ec -o uu.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:uu.ec:uu -rp env:lutin:_uu_env.lut -rp oracle:v6:_uu_oracle.lus:uu_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/uu.lus
 spawn ./lus2lic -o /tmp/simpleRed.lic should_work/simpleRed.lus
 PASS: ./lus2lic {-o /tmp/simpleRed.lic should_work/simpleRed.lus}
 spawn ./lus2lic -ec -o /tmp/simpleRed.ec should_work/simpleRed.lus
 PASS: ./lus2lic {-ec -o /tmp/simpleRed.ec should_work/simpleRed.lus}
-spawn ./ec2c -o /tmp/simpleRed.c /tmp/simpleRed.ec
-PASS: ./ec2c {-o /tmp/simpleRed.c /tmp/simpleRed.ec}
+spawn ./myec2c -o /tmp/simpleRed.c /tmp/simpleRed.ec
+PASS: ./myec2c {-o /tmp/simpleRed.c /tmp/simpleRed.ec}
+spawn ../utils/test_lus2lic_no_node should_work/simpleRed.lus
++ ./lus2lic should_work/simpleRed.lus -n simpleRed --gen-autotest -np
+_simpleRed_env.lut generated.
+_simpleRed_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/simpleRed.lus
++ ./lus2lic should_work/simpleRed.lus -n simpleRed -ec -o simpleRed.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:simpleRed.ec:simpleRed -rp env:lutin:_simpleRed_env.lut -rp oracle:v6:_simpleRed_oracle.lus:simpleRed_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/simpleRed.lus
 spawn ./lus2lic -o /tmp/map.lic should_work/map.lus
 PASS: ./lus2lic {-o /tmp/map.lic should_work/map.lus}
 spawn ./lus2lic -ec -o /tmp/map.ec should_work/map.lus
 PASS: ./lus2lic {-ec -o /tmp/map.ec should_work/map.lus}
-spawn ./ec2c -o /tmp/map.c /tmp/map.ec
-PASS: ./ec2c {-o /tmp/map.c /tmp/map.ec}
-spawn ./lus2lic -o /tmp/drapfab.lic should_work/drapfab.lus
-PASS: ./lus2lic {-o /tmp/drapfab.lic should_work/drapfab.lus}
-spawn ./lus2lic -ec -o /tmp/drapfab.ec should_work/drapfab.lus
-PASS: ./lus2lic {-ec -o /tmp/drapfab.ec should_work/drapfab.lus}
-spawn ./ec2c -o /tmp/drapfab.c /tmp/drapfab.ec
-PASS: ./ec2c {-o /tmp/drapfab.c /tmp/drapfab.ec}
+spawn ./myec2c -o /tmp/map.c /tmp/map.ec
+PASS: ./myec2c {-o /tmp/map.c /tmp/map.ec}
+spawn ../utils/test_lus2lic_no_node should_work/map.lus
++ ./lus2lic should_work/map.lus -n map --gen-autotest -np
+_map_env.lut generated.
+_map_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/map.lus
++ ./lus2lic should_work/map.lus -n map -ec -o map.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:map.ec:map -rp env:lutin:_map_env.lut -rp oracle:v6:_map_oracle.lus:map_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Lv6errors.Compile_error(_, "*** an integer and a node are expected.\n")
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/map.lus
 spawn ./lus2lic -o /tmp/pre_x.lic should_work/pre_x.lus
 PASS: ./lus2lic {-o /tmp/pre_x.lic should_work/pre_x.lus}
 spawn ./lus2lic -ec -o /tmp/pre_x.ec should_work/pre_x.lus
 PASS: ./lus2lic {-ec -o /tmp/pre_x.ec should_work/pre_x.lus}
-spawn ./ec2c -o /tmp/pre_x.c /tmp/pre_x.ec
-PASS: ./ec2c {-o /tmp/pre_x.c /tmp/pre_x.ec}
+spawn ./myec2c -o /tmp/pre_x.c /tmp/pre_x.ec
+PASS: ./myec2c {-o /tmp/pre_x.c /tmp/pre_x.ec}
+spawn ../utils/test_lus2lic_no_node should_work/pre_x.lus
++ ./lus2lic should_work/pre_x.lus -n pre_x --gen-autotest -np
+_pre_x_env.lut generated.
+_pre_x_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/pre_x.lus
++ ./lus2lic should_work/pre_x.lus -n pre_x -ec -o pre_x.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:pre_x.ec:pre_x -rp env:lutin:_pre_x_env.lut -rp oracle:v6:_pre_x_oracle.lus:pre_x_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/pre_x.lus
 spawn ./lus2lic -o /tmp/ts01.lic should_work/ts01.lus
 PASS: ./lus2lic {-o /tmp/ts01.lic should_work/ts01.lus}
 spawn ./lus2lic -ec -o /tmp/ts01.ec should_work/ts01.lus
 PASS: ./lus2lic {-ec -o /tmp/ts01.ec should_work/ts01.lus}
-spawn ./ec2c -o /tmp/ts01.c /tmp/ts01.ec
-PASS: ./ec2c {-o /tmp/ts01.c /tmp/ts01.ec}
+spawn ./myec2c -o /tmp/ts01.c /tmp/ts01.ec
+PASS: ./myec2c {-o /tmp/ts01.c /tmp/ts01.ec}
+spawn ../utils/test_lus2lic_no_node should_work/ts01.lus
++ ./lus2lic should_work/ts01.lus -n ts01 --gen-autotest -np
+_ts01_env.lut generated.
+_ts01_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/ts01.lus
++ ./lus2lic should_work/ts01.lus -n ts01 -ec -o ts01.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ts01.ec:ts01 -rp env:lutin:_ts01_env.lut -rp oracle:v6:_ts01_oracle.lus:ts01_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/ts01.lus
 spawn ./lus2lic -o /tmp/_N_uu.lic should_work/_N_uu.lus
 PASS: ./lus2lic {-o /tmp/_N_uu.lic should_work/_N_uu.lus}
 spawn ./lus2lic -ec -o /tmp/_N_uu.ec should_work/_N_uu.lus
 PASS: ./lus2lic {-ec -o /tmp/_N_uu.ec should_work/_N_uu.lus}
-spawn ./ec2c -o /tmp/_N_uu.c /tmp/_N_uu.ec
-PASS: ./ec2c {-o /tmp/_N_uu.c /tmp/_N_uu.ec}
+spawn ./myec2c -o /tmp/_N_uu.c /tmp/_N_uu.ec
+PASS: ./myec2c {-o /tmp/_N_uu.c /tmp/_N_uu.ec}
+spawn ../utils/test_lus2lic_no_node should_work/_N_uu.lus
++ ./lus2lic should_work/_N_uu.lus -n _N_uu --gen-autotest -np
+__N_uu_env.lut generated.
+__N_uu_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/_N_uu.lus
++ ./lus2lic should_work/_N_uu.lus -n _N_uu -ec -o _N_uu.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:_N_uu.ec:_N_uu -rp env:lutin:__N_uu_env.lut -rp oracle:v6:__N_uu_oracle.lus:_N_uu_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/_N_uu.lus
 spawn ./lus2lic -o /tmp/X2.lic should_work/X2.lus
 PASS: ./lus2lic {-o /tmp/X2.lic should_work/X2.lus}
 spawn ./lus2lic -ec -o /tmp/X2.ec should_work/X2.lus
 PASS: ./lus2lic {-ec -o /tmp/X2.ec should_work/X2.lus}
-spawn ./ec2c -o /tmp/X2.c /tmp/X2.ec
-PASS: ./ec2c {-o /tmp/X2.c /tmp/X2.ec}
+spawn ./myec2c -o /tmp/X2.c /tmp/X2.ec
+PASS: ./myec2c {-o /tmp/X2.c /tmp/X2.ec}
+spawn ../utils/test_lus2lic_no_node should_work/X2.lus
++ ./lus2lic should_work/X2.lus -n X2 --gen-autotest -np
+_X2_env.lut generated.
+_X2_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/X2.lus
++ ./lus2lic should_work/X2.lus -n X2 -ec -o X2.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:X2.ec:X2 -rp env:lutin:_X2_env.lut -rp oracle:v6:_X2_oracle.lus:X2_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/X2.lus
 spawn ./lus2lic -o /tmp/alias.lic should_work/alias.lus
 PASS: ./lus2lic {-o /tmp/alias.lic should_work/alias.lus}
 spawn ./lus2lic -ec -o /tmp/alias.ec should_work/alias.lus
 PASS: ./lus2lic {-ec -o /tmp/alias.ec should_work/alias.lus}
-spawn ./ec2c -o /tmp/alias.c /tmp/alias.ec
-PASS: ./ec2c {-o /tmp/alias.c /tmp/alias.ec}
+spawn ./myec2c -o /tmp/alias.c /tmp/alias.ec
+PASS: ./myec2c {-o /tmp/alias.c /tmp/alias.ec}
+spawn ../utils/test_lus2lic_no_node should_work/alias.lus
++ ./lus2lic should_work/alias.lus -n alias --gen-autotest -np
+_alias_env.lut generated.
+_alias_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/alias.lus
++ ./lus2lic should_work/alias.lus -n alias -ec -o alias.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:alias.ec:alias -rp env:lutin:_alias_env.lut -rp oracle:v6:_alias_oracle.lus:alias_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/alias.lus
 spawn ./lus2lic -o /tmp/hanane.lic should_work/hanane.lus
 PASS: ./lus2lic {-o /tmp/hanane.lic should_work/hanane.lus}
 spawn ./lus2lic -ec -o /tmp/hanane.ec should_work/hanane.lus
 PASS: ./lus2lic {-ec -o /tmp/hanane.ec should_work/hanane.lus}
-spawn ./ec2c -o /tmp/hanane.c /tmp/hanane.ec
-PASS: ./ec2c {-o /tmp/hanane.c /tmp/hanane.ec}
+spawn ./myec2c -o /tmp/hanane.c /tmp/hanane.ec
+PASS: ./myec2c {-o /tmp/hanane.c /tmp/hanane.ec}
+spawn ../utils/test_lus2lic_no_node should_work/hanane.lus
++ ./lus2lic should_work/hanane.lus -n hanane --gen-autotest -np
+_hanane_env.lut generated.
+_hanane_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/hanane.lus
++ ./lus2lic should_work/hanane.lus -n hanane -ec -o hanane.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:hanane.ec:hanane -rp env:lutin:_hanane_env.lut -rp oracle:v6:_hanane_oracle.lus:hanane_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on a1 on base\n")
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/hanane.lus
 spawn ./lus2lic -o /tmp/lustre.lic should_work/lustre.lus
 PASS: ./lus2lic {-o /tmp/lustre.lic should_work/lustre.lus}
 spawn ./lus2lic -ec -o /tmp/lustre.ec should_work/lustre.lus
 PASS: ./lus2lic {-ec -o /tmp/lustre.ec should_work/lustre.lus}
-spawn ./ec2c -o /tmp/lustre.c /tmp/lustre.ec
-PASS: ./ec2c {-o /tmp/lustre.c /tmp/lustre.ec}
+spawn ./myec2c -o /tmp/lustre.c /tmp/lustre.ec
+PASS: ./myec2c {-o /tmp/lustre.c /tmp/lustre.ec}
+spawn ../utils/test_lus2lic_no_node should_work/lustre.lus
++ ./lus2lic should_work/lustre.lus -n lustre --gen-autotest -np
+*** Can not find package 'lustre' in the following packages: 
+***	 'Lustre'
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/lustre.lus
 spawn ./lus2lic -o /tmp/packed_cst.lic should_work/packed_cst.lus
 PASS: ./lus2lic {-o /tmp/packed_cst.lic should_work/packed_cst.lus}
 spawn ./lus2lic -ec -o /tmp/packed_cst.ec should_work/packed_cst.lus
 PASS: ./lus2lic {-ec -o /tmp/packed_cst.ec should_work/packed_cst.lus}
-spawn ./ec2c -o /tmp/packed_cst.c /tmp/packed_cst.ec
-PASS: ./ec2c {-o /tmp/packed_cst.c /tmp/packed_cst.ec}
+spawn ./myec2c -o /tmp/packed_cst.c /tmp/packed_cst.ec
+PASS: ./myec2c {-o /tmp/packed_cst.c /tmp/packed_cst.ec}
+spawn ../utils/test_lus2lic_no_node should_work/packed_cst.lus
++ ./lus2lic should_work/packed_cst.lus -n packed_cst --gen-autotest -np
+*** Can not find package 'packed_cst' in the following packages: 
+***	 'cst'
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/packed_cst.lus
 spawn ./lus2lic -o /tmp/predef02.lic should_work/predef02.lus
 PASS: ./lus2lic {-o /tmp/predef02.lic should_work/predef02.lus}
 spawn ./lus2lic -ec -o /tmp/predef02.ec should_work/predef02.lus
 PASS: ./lus2lic {-ec -o /tmp/predef02.ec should_work/predef02.lus}
-spawn ./ec2c -o /tmp/predef02.c /tmp/predef02.ec
-PASS: ./ec2c {-o /tmp/predef02.c /tmp/predef02.ec}
+spawn ./myec2c -o /tmp/predef02.c /tmp/predef02.ec
+PASS: ./myec2c {-o /tmp/predef02.c /tmp/predef02.ec}
+spawn ../utils/test_lus2lic_no_node should_work/predef02.lus
++ ./lus2lic should_work/predef02.lus -n predef02 --gen-autotest -np
+_predef02_env.lut generated.
+_predef02_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/predef02.lus
++ ./lus2lic should_work/predef02.lus -n predef02 -ec -o predef02.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:predef02.ec:predef02 -rp env:lutin:_predef02_env.lut -rp oracle:v6:_predef02_oracle.lus:predef02_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/predef02.lus
 spawn ./lus2lic -o /tmp/toto.lic should_work/toto.lus
 PASS: ./lus2lic {-o /tmp/toto.lic should_work/toto.lus}
 spawn ./lus2lic -ec -o /tmp/toto.ec should_work/toto.lus
 PASS: ./lus2lic {-ec -o /tmp/toto.ec should_work/toto.lus}
-spawn ./ec2c -o /tmp/toto.c /tmp/toto.ec
-PASS: ./ec2c {-o /tmp/toto.c /tmp/toto.ec}
+spawn ./myec2c -o /tmp/toto.c /tmp/toto.ec
+PASS: ./myec2c {-o /tmp/toto.c /tmp/toto.ec}
+spawn ../utils/test_lus2lic_no_node should_work/toto.lus
++ ./lus2lic should_work/toto.lus -n toto --gen-autotest -np
+_toto_env.lut generated.
+_toto_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/toto.lus
++ ./lus2lic should_work/toto.lus -n toto -ec -o toto.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:toto.ec:toto -rp env:lutin:_toto_env.lut -rp oracle:v6:_toto_oracle.lus:toto_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/toto.lus
 spawn ./lus2lic -o /tmp/minmax6.lic should_work/minmax6.lus
 PASS: ./lus2lic {-o /tmp/minmax6.lic should_work/minmax6.lus}
 spawn ./lus2lic -ec -o /tmp/minmax6.ec should_work/minmax6.lus
 PASS: ./lus2lic {-ec -o /tmp/minmax6.ec should_work/minmax6.lus}
-spawn ./ec2c -o /tmp/minmax6.c /tmp/minmax6.ec
-PASS: ./ec2c {-o /tmp/minmax6.c /tmp/minmax6.ec}
+spawn ./myec2c -o /tmp/minmax6.c /tmp/minmax6.ec
+PASS: ./myec2c {-o /tmp/minmax6.c /tmp/minmax6.ec}
+spawn ../utils/test_lus2lic_no_node should_work/minmax6.lus
++ ./lus2lic should_work/minmax6.lus -n minmax6 --gen-autotest -np
+_minmax6_env.lut generated.
+_minmax6_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/minmax6.lus
++ ./lus2lic should_work/minmax6.lus -n minmax6 -ec -o minmax6.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:minmax6.ec:minmax6 -rp env:lutin:_minmax6_env.lut -rp oracle:v6:_minmax6_oracle.lus:minmax6_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/minmax6.lus
 spawn ./lus2lic -o /tmp/ck3.lic should_work/ck3.lus
 PASS: ./lus2lic {-o /tmp/ck3.lic should_work/ck3.lus}
 spawn ./lus2lic -ec -o /tmp/ck3.ec should_work/ck3.lus
 PASS: ./lus2lic {-ec -o /tmp/ck3.ec should_work/ck3.lus}
-spawn ./ec2c -o /tmp/ck3.c /tmp/ck3.ec
-PASS: ./ec2c {-o /tmp/ck3.c /tmp/ck3.ec}
+spawn ./myec2c -o /tmp/ck3.c /tmp/ck3.ec
+PASS: ./myec2c {-o /tmp/ck3.c /tmp/ck3.ec}
+spawn ../utils/test_lus2lic_no_node should_work/ck3.lus
++ ./lus2lic should_work/ck3.lus -n ck3 --gen-autotest -np
+_ck3_env.lut generated.
+_ck3_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/ck3.lus
++ ./lus2lic should_work/ck3.lus -n ck3 -ec -o ck3.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ck3.ec:ck3 -rp env:lutin:_ck3_env.lut -rp oracle:v6:_ck3_oracle.lus:ck3_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on a on base\n")
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/ck3.lus
 spawn ./lus2lic -o /tmp/zzz.lic should_work/zzz.lus
 PASS: ./lus2lic {-o /tmp/zzz.lic should_work/zzz.lus}
 spawn ./lus2lic -ec -o /tmp/zzz.ec should_work/zzz.lus
 PASS: ./lus2lic {-ec -o /tmp/zzz.ec should_work/zzz.lus}
-spawn ./ec2c -o /tmp/zzz.c /tmp/zzz.ec
-PASS: ./ec2c {-o /tmp/zzz.c /tmp/zzz.ec}
+spawn ./myec2c -o /tmp/zzz.c /tmp/zzz.ec
+PASS: ./myec2c {-o /tmp/zzz.c /tmp/zzz.ec}
+spawn ../utils/test_lus2lic_no_node should_work/zzz.lus
++ ./lus2lic should_work/zzz.lus -n zzz --gen-autotest -np
+_zzz_env.lut generated.
+_zzz_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/zzz.lus
++ ./lus2lic should_work/zzz.lus -n zzz -ec -o zzz.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:zzz.ec:zzz -rp env:lutin:_zzz_env.lut -rp oracle:v6:_zzz_oracle.lus:zzz_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/zzz.lus
 spawn ./lus2lic -o /tmp/STABLE.lic should_work/STABLE.lus
 PASS: ./lus2lic {-o /tmp/STABLE.lic should_work/STABLE.lus}
 spawn ./lus2lic -ec -o /tmp/STABLE.ec should_work/STABLE.lus
 PASS: ./lus2lic {-ec -o /tmp/STABLE.ec should_work/STABLE.lus}
-spawn ./ec2c -o /tmp/STABLE.c /tmp/STABLE.ec
-PASS: ./ec2c {-o /tmp/STABLE.c /tmp/STABLE.ec}
+spawn ./myec2c -o /tmp/STABLE.c /tmp/STABLE.ec
+PASS: ./myec2c {-o /tmp/STABLE.c /tmp/STABLE.ec}
+spawn ../utils/test_lus2lic_no_node should_work/STABLE.lus
++ ./lus2lic should_work/STABLE.lus -n STABLE --gen-autotest -np
+_STABLE_env.lut generated.
+_STABLE_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/STABLE.lus
++ ./lus2lic should_work/STABLE.lus -n STABLE -ec -o STABLE.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:STABLE.ec:STABLE -rp env:lutin:_STABLE_env.lut -rp oracle:v6:_STABLE_oracle.lus:STABLE_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/STABLE.lus
 spawn ./lus2lic -o /tmp/mapiter.lic should_work/mapiter.lus
 PASS: ./lus2lic {-o /tmp/mapiter.lic should_work/mapiter.lus}
 spawn ./lus2lic -ec -o /tmp/mapiter.ec should_work/mapiter.lus
 PASS: ./lus2lic {-ec -o /tmp/mapiter.ec should_work/mapiter.lus}
-spawn ./ec2c -o /tmp/mapiter.c /tmp/mapiter.ec
-PASS: ./ec2c {-o /tmp/mapiter.c /tmp/mapiter.ec}
+spawn ./myec2c -o /tmp/mapiter.c /tmp/mapiter.ec
+PASS: ./myec2c {-o /tmp/mapiter.c /tmp/mapiter.ec}
+spawn ../utils/test_lus2lic_no_node should_work/mapiter.lus
++ ./lus2lic should_work/mapiter.lus -n mapiter --gen-autotest -np
+_mapiter_env.lut generated.
+_mapiter_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/mapiter.lus
++ ./lus2lic should_work/mapiter.lus -n mapiter -ec -o mapiter.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:mapiter.ec:mapiter -rp env:lutin:_mapiter_env.lut -rp oracle:v6:_mapiter_oracle.lus:mapiter_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/mapiter.lus
 spawn ./lus2lic -o /tmp/tuple.lic should_work/tuple.lus
 PASS: ./lus2lic {-o /tmp/tuple.lic should_work/tuple.lus}
 spawn ./lus2lic -ec -o /tmp/tuple.ec should_work/tuple.lus
 PASS: ./lus2lic {-ec -o /tmp/tuple.ec should_work/tuple.lus}
-spawn ./ec2c -o /tmp/tuple.c /tmp/tuple.ec
-PASS: ./ec2c {-o /tmp/tuple.c /tmp/tuple.ec}
+spawn ./myec2c -o /tmp/tuple.c /tmp/tuple.ec
+PASS: ./myec2c {-o /tmp/tuple.c /tmp/tuple.ec}
+spawn ../utils/test_lus2lic_no_node should_work/tuple.lus
++ ./lus2lic should_work/tuple.lus -n tuple --gen-autotest -np
+_tuple_env.lut generated.
+_tuple_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/tuple.lus
++ ./lus2lic should_work/tuple.lus -n tuple -ec -o tuple.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:tuple.ec:tuple -rp env:lutin:_tuple_env.lut -rp oracle:v6:_tuple_oracle.lus:tuple_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/tuple.lus
 spawn ./lus2lic -o /tmp/call02.lic should_work/call02.lus
 PASS: ./lus2lic {-o /tmp/call02.lic should_work/call02.lus}
 spawn ./lus2lic -ec -o /tmp/call02.ec should_work/call02.lus
 PASS: ./lus2lic {-ec -o /tmp/call02.ec should_work/call02.lus}
-spawn ./ec2c -o /tmp/call02.c /tmp/call02.ec
-PASS: ./ec2c {-o /tmp/call02.c /tmp/call02.ec}
+spawn ./myec2c -o /tmp/call02.c /tmp/call02.ec
+PASS: ./myec2c {-o /tmp/call02.c /tmp/call02.ec}
+spawn ../utils/test_lus2lic_no_node should_work/call02.lus
++ ./lus2lic should_work/call02.lus -n call02 --gen-autotest -np
+_call02_env.lut generated.
+_call02_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/call02.lus
++ ./lus2lic should_work/call02.lus -n call02 -ec -o call02.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:call02.ec:call02 -rp env:lutin:_call02_env.lut -rp oracle:v6:_call02_oracle.lus:call02_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/call02.lus
 spawn ./lus2lic -o /tmp/ck7.lic should_work/ck7.lus
 PASS: ./lus2lic {-o /tmp/ck7.lic should_work/ck7.lus}
 spawn ./lus2lic -ec -o /tmp/ck7.ec should_work/ck7.lus
 PASS: ./lus2lic {-ec -o /tmp/ck7.ec should_work/ck7.lus}
-spawn ./ec2c -o /tmp/ck7.c /tmp/ck7.ec
-PASS: ./ec2c {-o /tmp/ck7.c /tmp/ck7.ec}
+spawn ./myec2c -o /tmp/ck7.c /tmp/ck7.ec
+PASS: ./myec2c {-o /tmp/ck7.c /tmp/ck7.ec}
+spawn ../utils/test_lus2lic_no_node should_work/ck7.lus
++ ./lus2lic should_work/ck7.lus -n ck7 --gen-autotest -np
+_ck7_env.lut generated.
+_ck7_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/ck7.lus
++ ./lus2lic should_work/ck7.lus -n ck7 -ec -o ck7.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ck7.ec:ck7 -rp env:lutin:_ck7_env.lut -rp oracle:v6:_ck7_oracle.lus:ck7_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on a on base\n")
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/ck7.lus
 spawn ./lus2lic -o /tmp/nc10.lic should_work/nc10.lus
 PASS: ./lus2lic {-o /tmp/nc10.lic should_work/nc10.lus}
 spawn ./lus2lic -ec -o /tmp/nc10.ec should_work/nc10.lus
 PASS: ./lus2lic {-ec -o /tmp/nc10.ec should_work/nc10.lus}
-spawn ./ec2c -o /tmp/nc10.c /tmp/nc10.ec
-PASS: ./ec2c {-o /tmp/nc10.c /tmp/nc10.ec}
+spawn ./myec2c -o /tmp/nc10.c /tmp/nc10.ec
+PASS: ./myec2c {-o /tmp/nc10.c /tmp/nc10.ec}
+spawn ../utils/test_lus2lic_no_node should_work/nc10.lus
++ ./lus2lic should_work/nc10.lus -n nc10 --gen-autotest -np
+_nc10_env.lut generated.
+_nc10_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/nc10.lus
++ ./lus2lic should_work/nc10.lus -n nc10 -ec -o nc10.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nc10.ec:nc10 -rp env:lutin:_nc10_env.lut -rp oracle:v6:_nc10_oracle.lus:nc10_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/nc10.lus
 spawn ./lus2lic -o /tmp/triSel.lic should_work/triSel.lus
 PASS: ./lus2lic {-o /tmp/triSel.lic should_work/triSel.lus}
 spawn ./lus2lic -ec -o /tmp/triSel.ec should_work/triSel.lus
 PASS: ./lus2lic {-ec -o /tmp/triSel.ec should_work/triSel.lus}
-spawn ./ec2c -o /tmp/triSel.c /tmp/triSel.ec
-PASS: ./ec2c {-o /tmp/triSel.c /tmp/triSel.ec}
-spawn ./lus2lic -o /tmp/s.lic should_work/s.lus
-PASS: ./lus2lic {-o /tmp/s.lic should_work/s.lus}
-spawn ./lus2lic -ec -o /tmp/s.ec should_work/s.lus
-PASS: ./lus2lic {-ec -o /tmp/s.ec should_work/s.lus}
-spawn ./ec2c -o /tmp/s.c /tmp/s.ec
-PASS: ./ec2c {-o /tmp/s.c /tmp/s.ec}
+spawn ./myec2c -o /tmp/triSel.c /tmp/triSel.ec
+PASS: ./myec2c {-o /tmp/triSel.c /tmp/triSel.ec}
+spawn ../utils/test_lus2lic_no_node should_work/triSel.lus
++ ./lus2lic should_work/triSel.lus -n triSel --gen-autotest -np
+_triSel_env.lut generated.
+_triSel_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/triSel.lus
++ ./lus2lic should_work/triSel.lus -n triSel -ec -o triSel.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:triSel.ec:triSel -rp env:lutin:_triSel_env.lut -rp oracle:v6:_triSel_oracle.lus:triSel_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/triSel.lus
 spawn ./lus2lic -o /tmp/redoptest.lic should_work/redoptest.lus
 PASS: ./lus2lic {-o /tmp/redoptest.lic should_work/redoptest.lus}
 spawn ./lus2lic -ec -o /tmp/redoptest.ec should_work/redoptest.lus
 PASS: ./lus2lic {-ec -o /tmp/redoptest.ec should_work/redoptest.lus}
-spawn ./ec2c -o /tmp/redoptest.c /tmp/redoptest.ec
-PASS: ./ec2c {-o /tmp/redoptest.c /tmp/redoptest.ec}
+spawn ./myec2c -o /tmp/redoptest.c /tmp/redoptest.ec
+PASS: ./myec2c {-o /tmp/redoptest.c /tmp/redoptest.ec}
+spawn ../utils/test_lus2lic_no_node should_work/redoptest.lus
++ ./lus2lic should_work/redoptest.lus -n redoptest --gen-autotest -np
+_redoptest_env.lut generated.
+_redoptest_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/redoptest.lus
++ ./lus2lic should_work/redoptest.lus -n redoptest -ec -o redoptest.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:redoptest.ec:redoptest -rp env:lutin:_redoptest_env.lut -rp oracle:v6:_redoptest_oracle.lus:redoptest_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/redoptest.lus
 spawn ./lus2lic -o /tmp/flo.lic should_work/flo.lus
 PASS: ./lus2lic {-o /tmp/flo.lic should_work/flo.lus}
 spawn ./lus2lic -ec -o /tmp/flo.ec should_work/flo.lus
 PASS: ./lus2lic {-ec -o /tmp/flo.ec should_work/flo.lus}
-spawn ./ec2c -o /tmp/flo.c /tmp/flo.ec
-PASS: ./ec2c {-o /tmp/flo.c /tmp/flo.ec}
-spawn ./lus2lic -o /tmp/condact.lic should_work/condact.lus
-PASS: ./lus2lic {-o /tmp/condact.lic should_work/condact.lus}
-spawn ./lus2lic -ec -o /tmp/condact.ec should_work/condact.lus
-PASS: ./lus2lic {-ec -o /tmp/condact.ec should_work/condact.lus}
-spawn ./ec2c -o /tmp/condact.c /tmp/condact.ec
-PASS: ./ec2c {-o /tmp/condact.c /tmp/condact.ec}
+spawn ./myec2c -o /tmp/flo.c /tmp/flo.ec
+PASS: ./myec2c {-o /tmp/flo.c /tmp/flo.ec}
+spawn ../utils/test_lus2lic_no_node should_work/flo.lus
++ ./lus2lic should_work/flo.lus -n flo --gen-autotest -np
+_flo_env.lut generated.
+_flo_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/flo.lus
++ ./lus2lic should_work/flo.lus -n flo -ec -o flo.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:flo.ec:flo -rp env:lutin:_flo_env.lut -rp oracle:v6:_flo_oracle.lus:flo_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/flo.lus
 spawn ./lus2lic -o /tmp/cond01.lic should_work/cond01.lus
 PASS: ./lus2lic {-o /tmp/cond01.lic should_work/cond01.lus}
 spawn ./lus2lic -ec -o /tmp/cond01.ec should_work/cond01.lus
 PASS: ./lus2lic {-ec -o /tmp/cond01.ec should_work/cond01.lus}
-spawn ./ec2c -o /tmp/cond01.c /tmp/cond01.ec
-PASS: ./ec2c {-o /tmp/cond01.c /tmp/cond01.ec}
+spawn ./myec2c -o /tmp/cond01.c /tmp/cond01.ec
+PASS: ./myec2c {-o /tmp/cond01.c /tmp/cond01.ec}
+spawn ../utils/test_lus2lic_no_node should_work/cond01.lus
++ ./lus2lic should_work/cond01.lus -n cond01 --gen-autotest -np
+_cond01_env.lut generated.
+_cond01_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/cond01.lus
++ ./lus2lic should_work/cond01.lus -n cond01 -ec -o cond01.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:cond01.ec:cond01 -rp env:lutin:_cond01_env.lut -rp oracle:v6:_cond01_oracle.lus:cond01_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/cond01.lus
 spawn ./lus2lic -o /tmp/shiftFill_ludic.lic should_work/shiftFill_ludic.lus
 PASS: ./lus2lic {-o /tmp/shiftFill_ludic.lic should_work/shiftFill_ludic.lus}
 spawn ./lus2lic -ec -o /tmp/shiftFill_ludic.ec should_work/shiftFill_ludic.lus
 PASS: ./lus2lic {-ec -o /tmp/shiftFill_ludic.ec should_work/shiftFill_ludic.lus}
-spawn ./ec2c -o /tmp/shiftFill_ludic.c /tmp/shiftFill_ludic.ec
-PASS: ./ec2c {-o /tmp/shiftFill_ludic.c /tmp/shiftFill_ludic.ec}
+spawn ./myec2c -o /tmp/shiftFill_ludic.c /tmp/shiftFill_ludic.ec
+PASS: ./myec2c {-o /tmp/shiftFill_ludic.c /tmp/shiftFill_ludic.ec}
+spawn ../utils/test_lus2lic_no_node should_work/shiftFill_ludic.lus
++ ./lus2lic should_work/shiftFill_ludic.lus -n shiftFill_ludic --gen-autotest -np
+_shiftFill_ludic_env.lut generated.
+_shiftFill_ludic_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/shiftFill_ludic.lus
++ ./lus2lic should_work/shiftFill_ludic.lus -n shiftFill_ludic -ec -o shiftFill_ludic.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:shiftFill_ludic.ec:shiftFill_ludic -rp env:lutin:_shiftFill_ludic_env.lut -rp oracle:v6:_shiftFill_ludic_oracle.lus:shiftFill_ludic_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/shiftFill_ludic.lus
 spawn ./lus2lic -o /tmp/after.lic should_work/after.lus
 PASS: ./lus2lic {-o /tmp/after.lic should_work/after.lus}
 spawn ./lus2lic -ec -o /tmp/after.ec should_work/after.lus
 PASS: ./lus2lic {-ec -o /tmp/after.ec should_work/after.lus}
-spawn ./ec2c -o /tmp/after.c /tmp/after.ec
-PASS: ./ec2c {-o /tmp/after.c /tmp/after.ec}
+spawn ./myec2c -o /tmp/after.c /tmp/after.ec
+PASS: ./myec2c {-o /tmp/after.c /tmp/after.ec}
+spawn ../utils/test_lus2lic_no_node should_work/after.lus
++ ./lus2lic should_work/after.lus -n after --gen-autotest -np
+_after_env.lut generated.
+_after_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/after.lus
++ ./lus2lic should_work/after.lus -n after -ec -o after.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:after.ec:after -rp env:lutin:_after_env.lut -rp oracle:v6:_after_oracle.lus:after_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/after.lus
 spawn ./lus2lic -o /tmp/arrays.lic should_work/arrays.lus
 PASS: ./lus2lic {-o /tmp/arrays.lic should_work/arrays.lus}
 spawn ./lus2lic -ec -o /tmp/arrays.ec should_work/arrays.lus
 PASS: ./lus2lic {-ec -o /tmp/arrays.ec should_work/arrays.lus}
-spawn ./ec2c -o /tmp/arrays.c /tmp/arrays.ec
-PASS: ./ec2c {-o /tmp/arrays.c /tmp/arrays.ec}
-spawn ./lus2lic -o /tmp/eq1.lic should_work/eq1.lus
-PASS: ./lus2lic {-o /tmp/eq1.lic should_work/eq1.lus}
-spawn ./lus2lic -ec -o /tmp/eq1.ec should_work/eq1.lus
-PASS: ./lus2lic {-ec -o /tmp/eq1.ec should_work/eq1.lus}
-spawn ./ec2c -o /tmp/eq1.c /tmp/eq1.ec
-PASS: ./ec2c {-o /tmp/eq1.c /tmp/eq1.ec}
+spawn ./myec2c -o /tmp/arrays.c /tmp/arrays.ec
+PASS: ./myec2c {-o /tmp/arrays.c /tmp/arrays.ec}
+spawn ../utils/test_lus2lic_no_node should_work/arrays.lus
++ ./lus2lic should_work/arrays.lus -n arrays --gen-autotest -np
+_arrays_env.lut generated.
+_arrays_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/arrays.lus
++ ./lus2lic should_work/arrays.lus -n arrays -ec -o arrays.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:arrays.ec:arrays -rp env:lutin:_arrays_env.lut -rp oracle:v6:_arrays_oracle.lus:arrays_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/arrays.lus
 spawn ./lus2lic -o /tmp/nc3.lic should_work/nc3.lus
 PASS: ./lus2lic {-o /tmp/nc3.lic should_work/nc3.lus}
 spawn ./lus2lic -ec -o /tmp/nc3.ec should_work/nc3.lus
 PASS: ./lus2lic {-ec -o /tmp/nc3.ec should_work/nc3.lus}
-spawn ./ec2c -o /tmp/nc3.c /tmp/nc3.ec
-PASS: ./ec2c {-o /tmp/nc3.c /tmp/nc3.ec}
+spawn ./myec2c -o /tmp/nc3.c /tmp/nc3.ec
+PASS: ./myec2c {-o /tmp/nc3.c /tmp/nc3.ec}
+spawn ../utils/test_lus2lic_no_node should_work/nc3.lus
++ ./lus2lic should_work/nc3.lus -n nc3 --gen-autotest -np
+_nc3_env.lut generated.
+_nc3_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/nc3.lus
++ ./lus2lic should_work/nc3.lus -n nc3 -ec -o nc3.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:nc3.ec:nc3 -rp env:lutin:_nc3_env.lut -rp oracle:v6:_nc3_oracle.lus:nc3_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/nc3.lus
 spawn ./lus2lic -o /tmp/speedcontrol.lic should_work/speedcontrol.lus
 PASS: ./lus2lic {-o /tmp/speedcontrol.lic should_work/speedcontrol.lus}
 spawn ./lus2lic -ec -o /tmp/speedcontrol.ec should_work/speedcontrol.lus
 PASS: ./lus2lic {-ec -o /tmp/speedcontrol.ec should_work/speedcontrol.lus}
-spawn ./ec2c -o /tmp/speedcontrol.c /tmp/speedcontrol.ec
-PASS: ./ec2c {-o /tmp/speedcontrol.c /tmp/speedcontrol.ec}
+spawn ./myec2c -o /tmp/speedcontrol.c /tmp/speedcontrol.ec
+PASS: ./myec2c {-o /tmp/speedcontrol.c /tmp/speedcontrol.ec}
+spawn ../utils/test_lus2lic_no_node should_work/speedcontrol.lus
++ ./lus2lic should_work/speedcontrol.lus -n speedcontrol --gen-autotest -np
+Error. A combinational cycle been detected in file "/home/jahier/lus2lic/test/should_work/speedcontrol.lus", line 1, col 5 to 16, token 'speedcontrol' on 
+  v00 = speedcontrol::f1(counter)
+  counter = Lustre::arrow(0, v00)
+  v00 = speedcontrol::f1(counter)
+
+Hint: try to use --expand-nodes.
+
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/speedcontrol.lus
 spawn ./lus2lic -o /tmp/iterate.lic should_work/iterate.lus
 PASS: ./lus2lic {-o /tmp/iterate.lic should_work/iterate.lus}
 spawn ./lus2lic -ec -o /tmp/iterate.ec should_work/iterate.lus
 PASS: ./lus2lic {-ec -o /tmp/iterate.ec should_work/iterate.lus}
-spawn ./ec2c -o /tmp/iterate.c /tmp/iterate.ec
-PASS: ./ec2c {-o /tmp/iterate.c /tmp/iterate.ec}
+spawn ./myec2c -o /tmp/iterate.c /tmp/iterate.ec
+PASS: ./myec2c {-o /tmp/iterate.c /tmp/iterate.ec}
+spawn ../utils/test_lus2lic_no_node should_work/iterate.lus
++ ./lus2lic should_work/iterate.lus -n iterate --gen-autotest -np
+_iterate_env.lut generated.
+_iterate_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/iterate.lus
++ ./lus2lic should_work/iterate.lus -n iterate -ec -o iterate.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:iterate.ec:iterate -rp env:lutin:_iterate_env.lut -rp oracle:v6:_iterate_oracle.lus:iterate_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/iterate.lus
 spawn ./lus2lic -o /tmp/overload.lic should_work/overload.lus
 PASS: ./lus2lic {-o /tmp/overload.lic should_work/overload.lus}
 spawn ./lus2lic -ec -o /tmp/overload.ec should_work/overload.lus
 PASS: ./lus2lic {-ec -o /tmp/overload.ec should_work/overload.lus}
-spawn ./ec2c -o /tmp/overload.c /tmp/overload.ec
-PASS: ./ec2c {-o /tmp/overload.c /tmp/overload.ec}
+spawn ./myec2c -o /tmp/overload.c /tmp/overload.ec
+PASS: ./myec2c {-o /tmp/overload.c /tmp/overload.ec}
+spawn ../utils/test_lus2lic_no_node should_work/overload.lus
++ ./lus2lic should_work/overload.lus -n overload --gen-autotest -np
+_overload_env.lut generated.
+_overload_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/overload.lus
++ ./lus2lic should_work/overload.lus -n overload -ec -o overload.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:overload.ec:overload -rp env:lutin:_overload_env.lut -rp oracle:v6:_overload_oracle.lus:overload_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/overload.lus
 spawn ./lus2lic -o /tmp/PCOND.lic should_work/PCOND.lus
 PASS: ./lus2lic {-o /tmp/PCOND.lic should_work/PCOND.lus}
 spawn ./lus2lic -ec -o /tmp/PCOND.ec should_work/PCOND.lus
 PASS: ./lus2lic {-ec -o /tmp/PCOND.ec should_work/PCOND.lus}
-spawn ./ec2c -o /tmp/PCOND.c /tmp/PCOND.ec
-PASS: ./ec2c {-o /tmp/PCOND.c /tmp/PCOND.ec}
+spawn ./myec2c -o /tmp/PCOND.c /tmp/PCOND.ec
+PASS: ./myec2c {-o /tmp/PCOND.c /tmp/PCOND.ec}
+spawn ../utils/test_lus2lic_no_node should_work/PCOND.lus
++ ./lus2lic should_work/PCOND.lus -n PCOND --gen-autotest -np
+_PCOND_env.lut generated.
+_PCOND_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/PCOND.lus
++ ./lus2lic should_work/PCOND.lus -n PCOND -ec -o PCOND.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:PCOND.ec:PCOND -rp env:lutin:_PCOND_env.lut -rp oracle:v6:_PCOND_oracle.lus:PCOND_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on h0 on base\n")
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/PCOND.lus
 spawn ./lus2lic -o /tmp/EDGE.lic should_work/EDGE.lus
 PASS: ./lus2lic {-o /tmp/EDGE.lic should_work/EDGE.lus}
 spawn ./lus2lic -ec -o /tmp/EDGE.ec should_work/EDGE.lus
 PASS: ./lus2lic {-ec -o /tmp/EDGE.ec should_work/EDGE.lus}
-spawn ./ec2c -o /tmp/EDGE.c /tmp/EDGE.ec
-PASS: ./ec2c {-o /tmp/EDGE.c /tmp/EDGE.ec}
+spawn ./myec2c -o /tmp/EDGE.c /tmp/EDGE.ec
+PASS: ./myec2c {-o /tmp/EDGE.c /tmp/EDGE.ec}
+spawn ../utils/test_lus2lic_no_node should_work/EDGE.lus
++ ./lus2lic should_work/EDGE.lus -n EDGE --gen-autotest -np
+_EDGE_env.lut generated.
+_EDGE_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/EDGE.lus
++ ./lus2lic should_work/EDGE.lus -n EDGE -ec -o EDGE.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:EDGE.ec:EDGE -rp env:lutin:_EDGE_env.lut -rp oracle:v6:_EDGE_oracle.lus:EDGE_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/EDGE.lus
 spawn ./lus2lic -o /tmp/call03.lic should_work/call03.lus
 PASS: ./lus2lic {-o /tmp/call03.lic should_work/call03.lus}
 spawn ./lus2lic -ec -o /tmp/call03.ec should_work/call03.lus
 PASS: ./lus2lic {-ec -o /tmp/call03.ec should_work/call03.lus}
-spawn ./ec2c -o /tmp/call03.c /tmp/call03.ec
-PASS: ./ec2c {-o /tmp/call03.c /tmp/call03.ec}
+spawn ./myec2c -o /tmp/call03.c /tmp/call03.ec
+PASS: ./myec2c {-o /tmp/call03.c /tmp/call03.ec}
+spawn ../utils/test_lus2lic_no_node should_work/call03.lus
++ ./lus2lic should_work/call03.lus -n call03 --gen-autotest -np
+_call03_env.lut generated.
+_call03_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/call03.lus
++ ./lus2lic should_work/call03.lus -n call03 -ec -o call03.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:call03.ec:call03 -rp env:lutin:_call03_env.lut -rp oracle:v6:_call03_oracle.lus:call03_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/call03.lus
 spawn ./lus2lic -o /tmp/count.lic should_work/count.lus
 PASS: ./lus2lic {-o /tmp/count.lic should_work/count.lus}
 spawn ./lus2lic -ec -o /tmp/count.ec should_work/count.lus
 PASS: ./lus2lic {-ec -o /tmp/count.ec should_work/count.lus}
-spawn ./ec2c -o /tmp/count.c /tmp/count.ec
-PASS: ./ec2c {-o /tmp/count.c /tmp/count.ec}
+spawn ./myec2c -o /tmp/count.c /tmp/count.ec
+PASS: ./myec2c {-o /tmp/count.c /tmp/count.ec}
+spawn ../utils/test_lus2lic_no_node should_work/count.lus
++ ./lus2lic should_work/count.lus -n count --gen-autotest -np
+_count_env.lut generated.
+_count_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/count.lus
++ ./lus2lic should_work/count.lus -n count -ec -o count.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:count.ec:count -rp env:lutin:_count_env.lut -rp oracle:v6:_count_oracle.lus:count_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/count.lus
 spawn ./lus2lic -o /tmp/ck2.lic should_work/ck2.lus
 PASS: ./lus2lic {-o /tmp/ck2.lic should_work/ck2.lus}
 spawn ./lus2lic -ec -o /tmp/ck2.ec should_work/ck2.lus
 PASS: ./lus2lic {-ec -o /tmp/ck2.ec should_work/ck2.lus}
-spawn ./ec2c -o /tmp/ck2.c /tmp/ck2.ec
-PASS: ./ec2c {-o /tmp/ck2.c /tmp/ck2.ec}
+spawn ./myec2c -o /tmp/ck2.c /tmp/ck2.ec
+PASS: ./myec2c {-o /tmp/ck2.c /tmp/ck2.ec}
+spawn ../utils/test_lus2lic_no_node should_work/ck2.lus
++ ./lus2lic should_work/ck2.lus -n ck2 --gen-autotest -np
+_ck2_env.lut generated.
+_ck2_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/ck2.lus
++ ./lus2lic should_work/ck2.lus -n ck2 -ec -o ck2.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:ck2.ec:ck2 -rp env:lutin:_ck2_env.lut -rp oracle:v6:_ck2_oracle.lus:ck2_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on c on base\n")
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/ck2.lus
 spawn ./lus2lic -o /tmp/X.lic should_work/X.lus
 PASS: ./lus2lic {-o /tmp/X.lic should_work/X.lus}
 spawn ./lus2lic -ec -o /tmp/X.ec should_work/X.lus
 PASS: ./lus2lic {-ec -o /tmp/X.ec should_work/X.lus}
-spawn ./ec2c -o /tmp/X.c /tmp/X.ec
-PASS: ./ec2c {-o /tmp/X.c /tmp/X.ec}
+spawn ./myec2c -o /tmp/X.c /tmp/X.ec
+PASS: ./myec2c {-o /tmp/X.c /tmp/X.ec}
+spawn ../utils/test_lus2lic_no_node should_work/X.lus
++ ./lus2lic should_work/X.lus -n X --gen-autotest -np
+_X_env.lut generated.
+_X_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/X.lus
++ ./lus2lic should_work/X.lus -n X -ec -o X.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:X.ec:X -rp env:lutin:_X_env.lut -rp oracle:v6:_X_oracle.lus:X_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on c on base\n")
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/X.lus
 spawn ./lus2lic -o /tmp/Condact.lic should_work/Condact.lus
 PASS: ./lus2lic {-o /tmp/Condact.lic should_work/Condact.lus}
 spawn ./lus2lic -ec -o /tmp/Condact.ec should_work/Condact.lus
 PASS: ./lus2lic {-ec -o /tmp/Condact.ec should_work/Condact.lus}
-spawn ./ec2c -o /tmp/Condact.c /tmp/Condact.ec
-PASS: ./ec2c {-o /tmp/Condact.c /tmp/Condact.ec}
+spawn ./myec2c -o /tmp/Condact.c /tmp/Condact.ec
+PASS: ./myec2c {-o /tmp/Condact.c /tmp/Condact.ec}
+spawn ../utils/test_lus2lic_no_node should_work/Condact.lus
++ ./lus2lic should_work/Condact.lus -n Condact --gen-autotest -np
+*** Can not find package 'Condact' in the following packages: 
+***	 'Main'
+***	 'TestCondact'
+***	 'Util'
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/Condact.lus
 spawn ./lus2lic -o /tmp/poussoir.lic should_work/poussoir.lus
 PASS: ./lus2lic {-o /tmp/poussoir.lic should_work/poussoir.lus}
 spawn ./lus2lic -ec -o /tmp/poussoir.ec should_work/poussoir.lus
 PASS: ./lus2lic {-ec -o /tmp/poussoir.ec should_work/poussoir.lus}
-spawn ./ec2c -o /tmp/poussoir.c /tmp/poussoir.ec
-PASS: ./ec2c {-o /tmp/poussoir.c /tmp/poussoir.ec}
+spawn ./myec2c -o /tmp/poussoir.c /tmp/poussoir.ec
+PASS: ./myec2c {-o /tmp/poussoir.c /tmp/poussoir.ec}
+spawn ../utils/test_lus2lic_no_node should_work/poussoir.lus
++ ./lus2lic should_work/poussoir.lus -n poussoir --gen-autotest -np
+_poussoir_env.lut generated.
+_poussoir_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/poussoir.lus
++ ./lus2lic should_work/poussoir.lus -n poussoir -ec -o poussoir.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:poussoir.ec:poussoir -rp env:lutin:_poussoir_env.lut -rp oracle:v6:_poussoir_oracle.lus:poussoir_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/poussoir.lus
 spawn ./lus2lic -o /tmp/SWITCH1.lic should_work/SWITCH1.lus
 PASS: ./lus2lic {-o /tmp/SWITCH1.lic should_work/SWITCH1.lus}
 spawn ./lus2lic -ec -o /tmp/SWITCH1.ec should_work/SWITCH1.lus
 PASS: ./lus2lic {-ec -o /tmp/SWITCH1.ec should_work/SWITCH1.lus}
-spawn ./ec2c -o /tmp/SWITCH1.c /tmp/SWITCH1.ec
-PASS: ./ec2c {-o /tmp/SWITCH1.c /tmp/SWITCH1.ec}
+spawn ./myec2c -o /tmp/SWITCH1.c /tmp/SWITCH1.ec
+PASS: ./myec2c {-o /tmp/SWITCH1.c /tmp/SWITCH1.ec}
+spawn ../utils/test_lus2lic_no_node should_work/SWITCH1.lus
++ ./lus2lic should_work/SWITCH1.lus -n SWITCH1 --gen-autotest -np
+_SWITCH1_env.lut generated.
+_SWITCH1_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/SWITCH1.lus
++ ./lus2lic should_work/SWITCH1.lus -n SWITCH1 -ec -o SWITCH1.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:SWITCH1.ec:SWITCH1 -rp env:lutin:_SWITCH1_env.lut -rp oracle:v6:_SWITCH1_oracle.lus:SWITCH1_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/SWITCH1.lus
 spawn ./lus2lic -o /tmp/clock1_2ms.lic should_work/clock1_2ms.lus
 PASS: ./lus2lic {-o /tmp/clock1_2ms.lic should_work/clock1_2ms.lus}
 spawn ./lus2lic -ec -o /tmp/clock1_2ms.ec should_work/clock1_2ms.lus
 PASS: ./lus2lic {-ec -o /tmp/clock1_2ms.ec should_work/clock1_2ms.lus}
-spawn ./ec2c -o /tmp/clock1_2ms.c /tmp/clock1_2ms.ec
-PASS: ./ec2c {-o /tmp/clock1_2ms.c /tmp/clock1_2ms.ec}
-spawn ./lus2lic -o /tmp/merge.lic should_work/merge.lus
-PASS: ./lus2lic {-o /tmp/merge.lic should_work/merge.lus}
-spawn ./lus2lic -ec -o /tmp/merge.ec should_work/merge.lus
-PASS: ./lus2lic {-ec -o /tmp/merge.ec should_work/merge.lus}
-spawn ./ec2c -o /tmp/merge.c /tmp/merge.ec
-PASS: ./ec2c {-o /tmp/merge.c /tmp/merge.ec}
+spawn ./myec2c -o /tmp/clock1_2ms.c /tmp/clock1_2ms.ec
+PASS: ./myec2c {-o /tmp/clock1_2ms.c /tmp/clock1_2ms.ec}
+spawn ../utils/test_lus2lic_no_node should_work/clock1_2ms.lus
++ ./lus2lic should_work/clock1_2ms.lus -n clock1_2ms --gen-autotest -np
+_clock1_2ms_env.lut generated.
+_clock1_2ms_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/clock1_2ms.lus
++ ./lus2lic should_work/clock1_2ms.lus -n clock1_2ms -ec -o clock1_2ms.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:clock1_2ms.ec:clock1_2ms -rp env:lutin:_clock1_2ms_env.lut -rp oracle:v6:_clock1_2ms_oracle.lus:clock1_2ms_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Lv6errors.Compile_error(_, "\n*** clock error: The two following clocks are not compatible:\n***\t on base\n***\t on Clock1ms on base\n")
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/clock1_2ms.lus
 spawn ./lus2lic -o /tmp/decl.lic should_work/decl.lus
 PASS: ./lus2lic {-o /tmp/decl.lic should_work/decl.lus}
 spawn ./lus2lic -ec -o /tmp/decl.ec should_work/decl.lus
 PASS: ./lus2lic {-ec -o /tmp/decl.ec should_work/decl.lus}
-spawn ./ec2c -o /tmp/decl.c /tmp/decl.ec
-PASS: ./ec2c {-o /tmp/decl.c /tmp/decl.ec}
+spawn ./myec2c -o /tmp/decl.c /tmp/decl.ec
+PASS: ./myec2c {-o /tmp/decl.c /tmp/decl.ec}
+spawn ../utils/test_lus2lic_no_node should_work/decl.lus
++ ./lus2lic should_work/decl.lus -n decl --gen-autotest -np
+*** The soc of decl::decl is not defined. FINISH ME! 
+Extern node not yet supported, sorry
+
+*** oops: lus2lic internal error
+	File "src/lic2soc.ml", line 897, column 14
+*** when compiling lustre program should_work/decl.lus
+
+*** You migth want to sent a bug report to jahier@imag.fr
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/decl.lus
 spawn ./lus2lic -o /tmp/bred_lv4.lic should_work/bred_lv4.lus
 PASS: ./lus2lic {-o /tmp/bred_lv4.lic should_work/bred_lv4.lus}
 spawn ./lus2lic -ec -o /tmp/bred_lv4.ec should_work/bred_lv4.lus
 PASS: ./lus2lic {-ec -o /tmp/bred_lv4.ec should_work/bred_lv4.lus}
-spawn ./ec2c -o /tmp/bred_lv4.c /tmp/bred_lv4.ec
-PASS: ./ec2c {-o /tmp/bred_lv4.c /tmp/bred_lv4.ec}
+spawn ./myec2c -o /tmp/bred_lv4.c /tmp/bred_lv4.ec
+PASS: ./myec2c {-o /tmp/bred_lv4.c /tmp/bred_lv4.ec}
+spawn ../utils/test_lus2lic_no_node should_work/bred_lv4.lus
++ ./lus2lic should_work/bred_lv4.lus -n bred_lv4 --gen-autotest -np
+_bred_lv4_env.lut generated.
+_bred_lv4_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/bred_lv4.lus
++ ./lus2lic should_work/bred_lv4.lus -n bred_lv4 -ec -o bred_lv4.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:bred_lv4.ec:bred_lv4 -rp env:lutin:_bred_lv4_env.lut -rp oracle:v6:_bred_lv4_oracle.lus:bred_lv4_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/bred_lv4.lus
 spawn ./lus2lic -o /tmp/trivial2.lic should_work/trivial2.lus
 PASS: ./lus2lic {-o /tmp/trivial2.lic should_work/trivial2.lus}
 spawn ./lus2lic -ec -o /tmp/trivial2.ec should_work/trivial2.lus
 PASS: ./lus2lic {-ec -o /tmp/trivial2.ec should_work/trivial2.lus}
-spawn ./ec2c -o /tmp/trivial2.c /tmp/trivial2.ec
-PASS: ./ec2c {-o /tmp/trivial2.c /tmp/trivial2.ec}
+spawn ./myec2c -o /tmp/trivial2.c /tmp/trivial2.ec
+PASS: ./myec2c {-o /tmp/trivial2.c /tmp/trivial2.ec}
+spawn ../utils/test_lus2lic_no_node should_work/trivial2.lus
++ ./lus2lic should_work/trivial2.lus -n trivial2 --gen-autotest -np
+_trivial2_env.lut generated.
+_trivial2_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/trivial2.lus
++ ./lus2lic should_work/trivial2.lus -n trivial2 -ec -o trivial2.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:trivial2.ec:trivial2 -rp env:lutin:_trivial2_env.lut -rp oracle:v6:_trivial2_oracle.lus:trivial2_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/trivial2.lus
 spawn ./lus2lic -o /tmp/param_node.lic should_work/param_node.lus
 PASS: ./lus2lic {-o /tmp/param_node.lic should_work/param_node.lus}
 spawn ./lus2lic -ec -o /tmp/param_node.ec should_work/param_node.lus
 PASS: ./lus2lic {-ec -o /tmp/param_node.ec should_work/param_node.lus}
-spawn ./ec2c -o /tmp/param_node.c /tmp/param_node.ec
-PASS: ./ec2c {-o /tmp/param_node.c /tmp/param_node.ec}
+spawn ./myec2c -o /tmp/param_node.c /tmp/param_node.ec
+PASS: ./myec2c {-o /tmp/param_node.c /tmp/param_node.ec}
+spawn ../utils/test_lus2lic_no_node should_work/param_node.lus
++ ./lus2lic should_work/param_node.lus -n param_node --gen-autotest -np
+_param_node_env.lut generated.
+_param_node_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/param_node.lus
++ ./lus2lic should_work/param_node.lus -n param_node -ec -o param_node.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:param_node.ec:param_node -rp env:lutin:_param_node_env.lut -rp oracle:v6:_param_node_oracle.lus:param_node_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/param_node.lus
 spawn ./lus2lic -o /tmp/simple.lic should_work/simple.lus
 PASS: ./lus2lic {-o /tmp/simple.lic should_work/simple.lus}
 spawn ./lus2lic -ec -o /tmp/simple.ec should_work/simple.lus
 PASS: ./lus2lic {-ec -o /tmp/simple.ec should_work/simple.lus}
-spawn ./ec2c -o /tmp/simple.c /tmp/simple.ec
-PASS: ./ec2c {-o /tmp/simple.c /tmp/simple.ec}
+spawn ./myec2c -o /tmp/simple.c /tmp/simple.ec
+PASS: ./myec2c {-o /tmp/simple.c /tmp/simple.ec}
+spawn ../utils/test_lus2lic_no_node should_work/simple.lus
++ ./lus2lic should_work/simple.lus -n simple --gen-autotest -np
+Extern node not yet supported, sorry
+
+*** oops: lus2lic internal error
+	File "src/socExec.ml", line 210, column 4
+*** when compiling lustre program should_work/simple.lus
+
+*** You migth want to sent a bug report to jahier@imag.fr
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/simple.lus
 spawn ./lus2lic -o /tmp/func_with_body.lic should_work/func_with_body.lus
 PASS: ./lus2lic {-o /tmp/func_with_body.lic should_work/func_with_body.lus}
 spawn ./lus2lic -ec -o /tmp/func_with_body.ec should_work/func_with_body.lus
 PASS: ./lus2lic {-ec -o /tmp/func_with_body.ec should_work/func_with_body.lus}
-spawn ./ec2c -o /tmp/func_with_body.c /tmp/func_with_body.ec
-PASS: ./ec2c {-o /tmp/func_with_body.c /tmp/func_with_body.ec}
+spawn ./myec2c -o /tmp/func_with_body.c /tmp/func_with_body.ec
+PASS: ./myec2c {-o /tmp/func_with_body.c /tmp/func_with_body.ec}
+spawn ../utils/test_lus2lic_no_node should_work/func_with_body.lus
++ ./lus2lic should_work/func_with_body.lus -n func_with_body --gen-autotest -np
+_func_with_body_env.lut generated.
+_func_with_body_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/func_with_body.lus
++ ./lus2lic should_work/func_with_body.lus -n func_with_body -ec -o func_with_body.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:func_with_body.ec:func_with_body -rp env:lutin:_func_with_body_env.lut -rp oracle:v6:_func_with_body_oracle.lus:func_with_body_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/func_with_body.lus
 spawn ./lus2lic -o /tmp/minus.lic should_work/minus.lus
 PASS: ./lus2lic {-o /tmp/minus.lic should_work/minus.lus}
 spawn ./lus2lic -ec -o /tmp/minus.ec should_work/minus.lus
 PASS: ./lus2lic {-ec -o /tmp/minus.ec should_work/minus.lus}
-spawn ./ec2c -o /tmp/minus.c /tmp/minus.ec
-PASS: ./ec2c {-o /tmp/minus.c /tmp/minus.ec}
+spawn ./myec2c -o /tmp/minus.c /tmp/minus.ec
+PASS: ./myec2c {-o /tmp/minus.c /tmp/minus.ec}
+spawn ../utils/test_lus2lic_no_node should_work/minus.lus
++ ./lus2lic should_work/minus.lus -n minus --gen-autotest -np
+_minus_env.lut generated.
+_minus_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_work/minus.lus
++ ./lus2lic should_work/minus.lus -n minus -ec -o minus.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:minus.ec:minus -rp env:lutin:_minus_env.lut -rp oracle:v6:_minus_oracle.lus:minus_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+PASS: ../utils/test_lus2lic_no_node should_work/minus.lus
 spawn ./lus2lic -o /tmp/remplissage-1.0.lic should_work/remplissage-1.0.lus
 PASS: ./lus2lic {-o /tmp/remplissage-1.0.lic should_work/remplissage-1.0.lus}
 spawn ./lus2lic -ec -o /tmp/remplissage-1.0.ec should_work/remplissage-1.0.lus
 PASS: ./lus2lic {-ec -o /tmp/remplissage-1.0.ec should_work/remplissage-1.0.lus}
-spawn ./ec2c -o /tmp/remplissage-1.0.c /tmp/remplissage-1.0.ec
-PASS: ./ec2c {-o /tmp/remplissage-1.0.c /tmp/remplissage-1.0.ec}
-spawn ./lus2lic -o /tmp/old_style_and_pack.lic should_fail/syntax/old_style_and_pack.lus
+spawn ./myec2c -o /tmp/remplissage-1.0.c /tmp/remplissage-1.0.ec
+PASS: ./myec2c {-o /tmp/remplissage-1.0.c /tmp/remplissage-1.0.ec}
+spawn ../utils/test_lus2lic_no_node should_work/remplissage-1.0.lus
++ ./lus2lic should_work/remplissage-1.0.lus -n remplissage-1.0 --gen-autotest -np
+*** Can not find package 'remplissage-1.0' in the following packages: 
+***	 'util'
++ echo Error
+Error
++ exit 2
+FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/remplissage-1.0.lus
+spawn ../utils/test_lus2lic_no_node should_fail/syntax/old_style_and_pack.lus
++ ./lus2lic should_fail/syntax/old_style_and_pack.lus -n old_style_and_pack --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/syntax/old_style_and_pack.lus", line 17, col 0 to 3, token 'node':
 *** syntax error
 
-XFAIL: Test bad programs (syntax): lus2lic {-o /tmp/old_style_and_pack.lic should_fail/syntax/old_style_and_pack.lus}
-spawn ./lus2lic -o /tmp/record.lic should_fail/syntax/record.lus
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (syntax): test_lus2lic_no_node should_fail/syntax/old_style_and_pack.lus
+spawn ../utils/test_lus2lic_no_node should_fail/syntax/record.lus
++ ./lus2lic should_fail/syntax/record.lus -n record --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/syntax/record.lus", line 7, col 28 to 28, token '{':
 *** syntax error
 
-XFAIL: Test bad programs (syntax): lus2lic {-o /tmp/record.lic should_fail/syntax/record.lus}
-spawn ./lus2lic -o /tmp/parametric_node3.lic should_fail/type/parametric_node3.lus
-*** Error in file "/home/jahier/lus2lic/test/should_fail/type/parametric_node3.lus", line 10, col 17 to 22, token 'toto_n':
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (syntax): test_lus2lic_no_node should_fail/syntax/record.lus
+spawn ../utils/test_lus2lic_no_node should_fail/type/parametric_node3.lus
++ ./lus2lic should_fail/type/parametric_node3.lus -n parametric_node3 --gen-autotest -np
+*** Error in file "/home/jahier/lus2lic/test/should_fail/type/parametric_node3.lus", line 10, col 24 to 29, token 'toto_n':
 *** Bad number of (static) arguments: 3 expected, and 2 provided.
 
-XFAIL: Test bad programs (type): lus2lic {-o /tmp/parametric_node3.lic should_fail/type/parametric_node3.lus}
-spawn ./lus2lic -o /tmp/parametric_node.lic should_fail/type/parametric_node.lus
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/parametric_node3.lus
+spawn ../utils/test_lus2lic_no_node should_fail/type/parametric_node.lus
++ ./lus2lic should_fail/type/parametric_node.lus -n parametric_node --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/type/parametric_node.lus", line 4, col 16 to 16, token 'n':
 *** can't eval type: bad array size, int expected but get real
 
-XFAIL: Test bad programs (type): lus2lic {-o /tmp/parametric_node.lic should_fail/type/parametric_node.lus}
-spawn ./lus2lic -o /tmp/merge_bad_enum.lic should_fail/type/merge_bad_enum.lus
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/parametric_node.lus
+spawn ../utils/test_lus2lic_no_node should_fail/type/t1.lus
++ ./lus2lic should_fail/type/t1.lus -n t1 --gen-autotest -np
+*** Error in file "/home/jahier/lus2lic/test/should_fail/type/t1.lus", line 40, col 2 to 10, token 'fold_left':
+*** 
+** bool^8 and bool * bool^8 are not unifiable (bad arity)
+
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/t1.lus
+spawn ../utils/test_lus2lic_no_node should_fail/type/merge_bad_enum.lus
++ ./lus2lic should_fail/type/merge_bad_enum.lus -n merge_bad_enum --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/type/merge_bad_enum.lus", line 9, col 14 to 16, token 'clk':
 *** type error: type error in a merge branch: merge_bad_enum::trival was expected, but merge_bad_enum::okko was provided. 
 
-XFAIL: Test bad programs (type): lus2lic {-o /tmp/merge_bad_enum.lic should_fail/type/merge_bad_enum.lus}
-spawn ./lus2lic -o /tmp/condact2.lic should_fail/type/condact2.lus
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/merge_bad_enum.lus
+spawn ../utils/test_lus2lic_no_node should_fail/type/condact2.lus
++ ./lus2lic should_fail/type/condact2.lus -n condact2 --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/type/condact2.lus", line 5, col 5 to 11, token 'condact':
 *** type error: 
 ***    while unifing (bool * int * int) with (int * int * int)
 ***    bool can't be matched by int
 
-XFAIL: Test bad programs (type): lus2lic {-o /tmp/condact2.lic should_fail/type/condact2.lus}
-spawn ./lus2lic -o /tmp/merge_bad_type.lic should_fail/type/merge_bad_type.lus
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/condact2.lus
+spawn ../utils/test_lus2lic_no_node should_fail/type/merge_bad_type.lus
++ ./lus2lic should_fail/type/merge_bad_type.lus -n merge_bad_type --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/type/merge_bad_type.lus", line 8, col 14 to 16, token 'clk':
 *** type error: types differ in merge branches: real <> int
 
-XFAIL: Test bad programs (type): lus2lic {-o /tmp/merge_bad_type.lic should_fail/type/merge_bad_type.lus}
-spawn ./lus2lic -o /tmp/packages.lic should_fail/type/packages.lus
-*** Error in file "/home/jahier/lus2lic/test/should_fail/type/packages.lus", line 31, col 9 to 14, token 'preced':
-*** provided node for inter::preced is not compatible with its implementation: 
-***    int and inter::selType are not unifiable
-
-XFAIL: Test bad programs (type): lus2lic {-o /tmp/packages.lic should_fail/type/packages.lus}
-spawn ./lus2lic -o /tmp/packages2.lic should_fail/type/packages2.lus
-*** Error in file "/home/jahier/lus2lic/test/should_fail/type/packages2.lus", line 5, col 7 to 7, token 'n':
-*** provided node for stupid::n is not compatible with its implementation: 
-*** stupid::t1 <> int
-
-XFAIL: Test bad programs (type): lus2lic {-o /tmp/packages2.lic should_fail/type/packages2.lus}
-spawn ./lus2lic -o /tmp/Gyro.lic should_fail/type/Gyro.lus
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/merge_bad_type.lus
+spawn ../utils/test_lus2lic_no_node should_fail/type/packages.lus
++ ./lus2lic should_fail/type/packages.lus -n packages --gen-autotest -np
+*** Can not find package 'packages' in the following packages: 
+***	 'pbool'
+***	 'mainPack'
+***	 'pint'
+***	 'inter'
+***	 'preal'
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/packages.lus
+spawn ../utils/test_lus2lic_no_node should_fail/type/packages2.lus
++ ./lus2lic should_fail/type/packages2.lus -n packages2 --gen-autotest -np
+*** Can not find package 'packages2' in the following packages: 
+***	 'stupid'
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/packages2.lus
+spawn ../utils/test_lus2lic_no_node should_fail/type/Gyro.lus
++ ./lus2lic should_fail/type/Gyro.lus -n Gyro --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/type/Gyro.lus", line 11, col 41 to 41, token ',':
 *** syntax error
 
-XFAIL: Test bad programs (type): lus2lic {-o /tmp/Gyro.lic should_fail/type/Gyro.lus}
-spawn ./lus2lic -o /tmp/Gyro-2.lic should_fail/type/Gyro-2.lus
-*** Error in file "/home/jahier/lus2lic/test/should_fail/type/Gyro-2.lus", line 54, col 0 to 2, token 'let':
-*** syntax error
-
-XFAIL: Test bad programs (type): lus2lic {-o /tmp/Gyro-2.lic should_fail/type/Gyro-2.lus}
-spawn ./lus2lic -o /tmp/merge_bad.lic should_fail/type/merge_bad.lus
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/Gyro.lus
+spawn ../utils/test_lus2lic_no_node should_fail/type/merge_bad.lus
++ ./lus2lic should_fail/type/merge_bad.lus -n merge_bad --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/type/merge_bad.lus", line 7, col 14 to 16, token 'clk':
 *** The merge mixes booleans and enums
 
-XFAIL: Test bad programs (type): lus2lic {-o /tmp/merge_bad.lic should_fail/type/merge_bad.lus}
-spawn ./lus2lic -o /tmp/merge_bad_clk.lic should_fail/type/merge_bad_clk.lus
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/merge_bad.lus
+spawn ../utils/test_lus2lic_no_node should_fail/type/merge_bad_clk.lus
++ ./lus2lic should_fail/type/merge_bad_clk.lus -n merge_bad_clk --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/type/merge_bad_clk.lus", line 9, col 9 to 12, token 'Pile':
 *** 
-*** clock error: The two following clocks are not unifiable:
+*** clock error: The two following clocks are not compatible:
 ***	 on merge_bad_clk::Pile(clk) on base
 ***	 on merge_bad_clk::Face(clk) on base
 
 
-XFAIL: Test bad programs (type): lus2lic {-o /tmp/merge_bad_clk.lic should_fail/type/merge_bad_clk.lus}
-spawn ./lus2lic -o /tmp/parametric_node4.lic should_fail/type/parametric_node4.lus
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/merge_bad_clk.lus
+spawn ../utils/test_lus2lic_no_node should_fail/type/parametric_node4.lus
++ ./lus2lic should_fail/type/parametric_node4.lus -n parametric_node4 --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/type/parametric_node4.lus", line 4, col 16 to 16, token 'n':
 *** can't eval type: bad array size, int expected but get real
 
-XFAIL: Test bad programs (type): lus2lic {-o /tmp/parametric_node4.lic should_fail/type/parametric_node4.lus}
-spawn ./lus2lic -o /tmp/merge_not_exhaustive.lic should_fail/type/merge_not_exhaustive.lus
-XPASS: Test bad programs (type): lus2lic {-o /tmp/merge_not_exhaustive.lic should_fail/type/merge_not_exhaustive.lus}
-spawn ./lus2lic -o /tmp/const2.lic should_fail/type/const2.lus
-*** Error in file "/home/jahier/lus2lic/test/should_fail/type/const2.lus", line 16, col 11 to 12, token '<>':
-*** type error: 
-*** type 'int * real' was provided whereas
-*** type 'any * any' was expected
-*** 
-***    int and real are not unifiable
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/parametric_node4.lus
+spawn ../utils/test_lus2lic_no_node should_fail/type/merge_node.lus
++ ./lus2lic should_fail/type/merge_node.lus -n merge_node --gen-autotest -np
+*** Error in file "/home/jahier/lus2lic/test/should_fail/type/merge_node.lus", line 8, col 13 to 13, token ':':
+*** syntax error
+
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/merge_node.lus
+spawn ../utils/test_lus2lic_no_node should_fail/type/merge_not_exhaustive.lus
++ ./lus2lic should_fail/type/merge_not_exhaustive.lus -n merge_not_exhaustive --gen-autotest -np
+_merge_not_exhaustive_env.lut generated.
+_merge_not_exhaustive_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_fail/type/merge_not_exhaustive.lus
++ ./lus2lic should_fail/type/merge_not_exhaustive.lus -n merge_not_exhaustive -ec -o merge_not_exhaustive.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:merge_not_exhaustive.ec:merge_not_exhaustive -rp env:lutin:_merge_not_exhaustive_env.lut -rp oracle:v6:_merge_not_exhaustive_oracle.lus:merge_not_exhaustive_oracle -go -l 10 -ns2c --stop-on-oracle-error
+Error in lurette: Failure("trival: unsupported type.\n")
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/merge_not_exhaustive.lus
+spawn ../utils/test_lus2lic_no_node should_fail/type/const2.lus
++ ./lus2lic should_fail/type/const2.lus -n const2 --gen-autotest -np
+_const2_env.lut generated.
+_const2_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_fail/type/const2.lus
++ ./lus2lic should_fail/type/const2.lus -n const2 -ec -o const2.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:const2.ec:const2 -rp env:lutin:_const2_env.lut -rp oracle:v6:_const2_oracle.lus:const2_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
 
-XFAIL: Test bad programs (type): lus2lic {-o /tmp/const2.lic should_fail/type/const2.lus}
-spawn ./lus2lic -o /tmp/ts02.lic should_fail/type/ts02.lus
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+XPASS: Test bad programs (type): test_lus2lic_no_node should_fail/type/const2.lus
+spawn ../utils/test_lus2lic_no_node should_fail/type/ts02.lus
++ ./lus2lic should_fail/type/ts02.lus -n ts02 --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/type/ts02.lus", line 6, col 9 to 9, token '+':
 *** type error: 
 *** type 'real * int' was provided whereas
@@ -1590,116 +7179,334 @@ spawn ./lus2lic -o /tmp/ts02.lic should_fail/type/ts02.lus
 *** 
 ***    real and int are not unifiable
 
-XFAIL: Test bad programs (type): lus2lic {-o /tmp/ts02.lic should_fail/type/ts02.lus}
-spawn ./lus2lic -o /tmp/parametric_node2.lic should_fail/type/parametric_node2.lus
-XPASS: Test bad programs (type): lus2lic {-o /tmp/parametric_node2.lic should_fail/type/parametric_node2.lus}
-spawn ./lus2lic -o /tmp/merge.lic should_fail/type/merge.lus
-*** Error in file "/home/jahier/lus2lic/test/should_fail/type/merge.lus", line 8, col 13 to 13, token ':':
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/ts02.lus
+spawn ../utils/test_lus2lic_no_node should_fail/type/parametric_node2.lus
++ ./lus2lic should_fail/type/parametric_node2.lus -n parametric_node2 --gen-autotest -np
+_parametric_node2_env.lut generated.
+_parametric_node2_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_fail/type/parametric_node2.lus
++ ./lus2lic should_fail/type/parametric_node2.lus -n parametric_node2 -ec -o parametric_node2.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:parametric_node2.ec:parametric_node2 -rp env:lutin:_parametric_node2_env.lut -rp oracle:v6:_parametric_node2_oracle.lus:parametric_node2_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+XPASS: Test bad programs (type): test_lus2lic_no_node should_fail/type/parametric_node2.lus
+spawn ../utils/test_lus2lic_no_node should_fail/type/Gyro2.lus
++ ./lus2lic should_fail/type/Gyro2.lus -n Gyro2 --gen-autotest -np
+*** Error in file "/home/jahier/lus2lic/test/should_fail/type/Gyro2.lus", line 54, col 0 to 2, token 'let':
 *** syntax error
 
-XFAIL: Test bad programs (type): lus2lic {-o /tmp/merge.lic should_fail/type/merge.lus}
-spawn ./lus2lic -o /tmp/when_enum.lic should_fail/clock/when_enum.lus
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (type): test_lus2lic_no_node should_fail/type/Gyro2.lus
+spawn ../utils/test_lus2lic_no_node should_fail/clock/when_enum.lus
++ ./lus2lic should_fail/clock/when_enum.lus -n when_enum --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/clock/when_enum.lus", line 10, col 11 to 14, token 'toto':
 *** 
-*** clock error: The two following clocks are not unifiable:
+*** clock error: The two following clocks are not compatible:
 ***	 on when_enum::A(a) on base
 ***	 on clk on base
 
 
-XFAIL: Test bad programs (clock): lus2lic {-o /tmp/when_enum.lic should_fail/clock/when_enum.lus}
-spawn ./lus2lic -o /tmp/bad_call02.lic should_fail/clock/bad_call02.lus
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (clock): test_lus2lic_no_node should_fail/clock/when_enum.lus
+spawn ../utils/test_lus2lic_no_node should_fail/clock/bad_call02.lus
++ ./lus2lic should_fail/clock/bad_call02.lus -n bad_call02 --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/clock/bad_call02.lus", line 6, col 3 to 3, token '=':
 *** 
-*** clock error: The two following clocks are not unifiable:
+*** clock error: The two following clocks are not compatible:
 ***	 on base
 ***	 on c on base
 
 
-XFAIL: Test bad programs (clock): lus2lic {-o /tmp/bad_call02.lic should_fail/clock/bad_call02.lus}
-spawn ./lus2lic -o /tmp/inonout.lic should_fail/clock/inonout.lus
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (clock): test_lus2lic_no_node should_fail/clock/bad_call02.lus
+spawn ../utils/test_lus2lic_no_node should_fail/clock/inonout.lus
++ ./lus2lic should_fail/clock/inonout.lus -n inonout --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/clock/inonout.lus", line 3, col 45 to 45, token 'c':
 *** unknown variable (c)
 
-XFAIL: Test bad programs (clock): lus2lic {-o /tmp/inonout.lic should_fail/clock/inonout.lus}
-spawn ./lus2lic -o /tmp/clock.lic should_fail/clock/clock.lus
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (clock): test_lus2lic_no_node should_fail/clock/inonout.lus
+spawn ../utils/test_lus2lic_no_node should_fail/clock/clock.lus
++ ./lus2lic should_fail/clock/clock.lus -n clock --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/clock/clock.lus", line 23, col 11 to 16, token 'clock4':
 *** 
-*** clock error: The two following clocks are not unifiable:
+*** clock error: The two following clocks are not compatible:
 ***	 on d on c on base
 ***	 on u on base
 
 
-XFAIL: Test bad programs (clock): lus2lic {-o /tmp/clock.lic should_fail/clock/clock.lus}
-spawn ./lus2lic -o /tmp/bad_id.lic should_fail/clock/bad_id.lus
-*** Error in file "/home/jahier/lus2lic/test/should_fail/clock/bad_id.lus", line 3, col 5 to 8, token 'toto':
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (clock): test_lus2lic_no_node should_fail/clock/clock.lus
+spawn ../utils/test_lus2lic_no_node should_fail/clock/bad_id.lus
++ ./lus2lic should_fail/clock/bad_id.lus -n bad_id --gen-autotest -np
+*** Error in file "/home/jahier/lus2lic/test/should_fail/clock/bad_id.lus", line 3, col 5 to 10, token 'bad_id':
 *** 
 *** Unknown ident: b
 
-XFAIL: Test bad programs (clock): lus2lic {-o /tmp/bad_id.lic should_fail/clock/bad_id.lus}
-spawn ./lus2lic -o /tmp/clock2.lic should_fail/clock/clock2.lus
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (clock): test_lus2lic_no_node should_fail/clock/bad_id.lus
+spawn ../utils/test_lus2lic_no_node should_fail/clock/clock2.lus
++ ./lus2lic should_fail/clock/clock2.lus -n clock2 --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/clock/clock2.lus", line 6, col 16 to 19, token 'when':
 *** the type of a clock cannot be int
 
-XFAIL: Test bad programs (clock): lus2lic {-o /tmp/clock2.lic should_fail/clock/clock2.lus}
-spawn ./lus2lic -o /tmp/deploop.lic should_fail/semantics/deploop.lus
-XPASS: Test bad programs (semantics): lus2lic {-o /tmp/deploop.lic should_fail/semantics/deploop.lus}
-spawn ./lus2lic -o /tmp/const3.lic should_fail/semantics/const3.lus
-*** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/const3.lus", line 2, col 16 to 16, token '/':
-*** 
-*** can't eval constant: reals cannot be evaluated, sorry.
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (clock): test_lus2lic_no_node should_fail/clock/clock2.lus
+spawn ../utils/test_lus2lic_no_node should_fail/semantics/aux.lus
++ ./lus2lic should_fail/semantics/aux.lus -n aux --gen-autotest -np
+_aux_env.lut generated.
+_aux_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_fail/semantics/aux.lus
++ ./lus2lic should_fail/semantics/aux.lus -n aux -ec -o aux.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:aux.ec:aux -rp env:lutin:_aux_env.lut -rp oracle:v6:_aux_oracle.lus:aux_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+#ERROR: Output takes on nil
+RifIO.Bye
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+XPASS: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/aux.lus
+spawn ../utils/test_lus2lic_no_node should_fail/semantics/deploop.lus
++ ./lus2lic should_fail/semantics/deploop.lus -n deploop --gen-autotest -np
+Error. A combinational cycle been detected in file "/home/jahier/lus2lic/test/should_fail/semantics/deploop.lus", line 6, col 5 to 11, token 'deploop' on 
+  v00 = (z.y)
+  v05 = (z.y)
+  v00 = (z.y)
+  v06 = (v05.y)
+  v01 = (v00.y)
+  z.x.x = Lustre::arrow(0., v01)
+  ok = Lustre::lt(v06, v08)
+
+Hint: try to use --expand-nodes.
+
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/deploop.lus
+spawn ../utils/test_lus2lic_no_node should_fail/semantics/const3.lus
++ ./lus2lic should_fail/semantics/const3.lus -n const3 --gen-autotest -np
+_const3_env.lut generated.
+_const3_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_fail/semantics/const3.lus
++ ./lus2lic should_fail/semantics/const3.lus -n const3 -ec -o const3.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:const3.ec:const3 -rp env:lutin:_const3_env.lut -rp oracle:v6:_const3_oracle.lus:const3_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
 
-XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/const3.lic should_fail/semantics/const3.lus}
-spawn ./lus2lic -o /tmp/not_a_constant.lic should_fail/semantics/not_a_constant.lus
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+XPASS: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/const3.lus
+spawn ../utils/test_lus2lic_no_node should_fail/semantics/not_a_constant.lus
++ ./lus2lic should_fail/semantics/not_a_constant.lus -n not_a_constant --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/not_a_constant.lus", line 10, col 22 to 23, token '--':
 *** syntax error
 
-XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/not_a_constant.lic should_fail/semantics/not_a_constant.lus}
-spawn ./lus2lic -o /tmp/sincos.lic should_fail/semantics/sincos.lus
-XPASS: Test bad programs (semantics): lus2lic {-o /tmp/sincos.lic should_fail/semantics/sincos.lus}
-spawn ./lus2lic -o /tmp/tranche.lic should_fail/semantics/tranche.lus
-*** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/tranche.lus", line 7, col 5 to 5, token 'n':
-*** 
-*** can't eval constant: 
-*** cannot access this extern constant value
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/not_a_constant.lus
+spawn ../utils/test_lus2lic_no_node should_fail/semantics/X1.lus
++ ./lus2lic should_fail/semantics/X1.lus -n X1 --gen-autotest -np
+_X1_env.lut generated.
+_X1_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_fail/semantics/X1.lus
++ ./lus2lic should_fail/semantics/X1.lus -n X1 -ec -o X1.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:X1.ec:X1 -rp env:lutin:_X1_env.lut -rp oracle:v6:_X1_oracle.lus:X1_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+XPASS: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/X1.lus
+spawn ../utils/test_lus2lic_no_node should_fail/semantics/sincos.lus
++ ./lus2lic should_fail/semantics/sincos.lus -n sincos --gen-autotest -np
+Error. A combinational cycle been detected in file "/home/jahier/lus2lic/test/should_fail/semantics/sincos.lus", line 2, col 5 to 10, token 'sincos' on 
+  v00 = sincos::integrator2(cos, 0.1, 0.0)
+  v02 = sincos::integrator1(v01, 0.1, 1.0)
+  v01 = Lustre::uminus(sin)
+  cos = Lustre::times(omega, v02)
+  sin = Lustre::times(omega, v00)
+  v00 = sincos::integrator2(cos, 0.1, 0.0)
 
-XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/tranche.lic should_fail/semantics/tranche.lus}
-spawn ./lus2lic -o /tmp/import2.lic should_fail/semantics/import2.lus
+Hint: try to use --expand-nodes.
+
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/sincos.lus
+spawn ../utils/test_lus2lic_no_node should_fail/semantics/test_const.lus
++ ./lus2lic should_fail/semantics/test_const.lus -n test_const --gen-autotest -np
+*** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/test_const.lus", line 19, col 41 to 42, token 'c4':
+*** bad field declaration, ident already linked at line:19, col:9 to 10
+
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/test_const.lus
+spawn ../utils/test_lus2lic_no_node should_fail/semantics/import2.lus
++ ./lus2lic should_fail/semantics/import2.lus -n import2 --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/import2.lus", line 2, col 0 to 3, token 'node':
 *** syntax error
 
-XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/import2.lic should_fail/semantics/import2.lus}
-spawn ./lus2lic -o /tmp/bad_call01.lic should_fail/semantics/bad_call01.lus
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/import2.lus
+spawn ../utils/test_lus2lic_no_node should_fail/semantics/bad_call01.lus
++ ./lus2lic should_fail/semantics/bad_call01.lus -n bad_call01 --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/bad_call01.lus", line 3, col 12 to 15, token 'toto':
 *** Recursion loop detected in node bad_call01::toto
 *** bad_call01::toto depends on itself
  node ref in file "/home/jahier/lus2lic/test/should_fail/semantics/bad_call01.lus", line 3, col 12 to 15, token 'toto'
 
-XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/bad_call01.lic should_fail/semantics/bad_call01.lus}
-spawn ./lus2lic -o /tmp/x.lic should_fail/semantics/x.lus
-*** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/x.lus", line 8, col 6 to 6, token 't':
-*** Recursion loop detected: 
-***   const ref in file "/home/jahier/lus2lic/test/should_fail/semantics/x.lus", line 8, col 10 to 10, token 'n'
-   > const ref in file "/home/jahier/lus2lic/test/should_fail/semantics/x.lus", line 2, col 10 to 10, token 'm'
-   > const ref in file "/home/jahier/lus2lic/test/should_fail/semantics/x.lus", line 4, col 10 to 10, token 'x'
-   > const ref in file "/home/jahier/lus2lic/test/should_fail/semantics/x.lus", line 6, col 10 to 10, token 't'
-
-XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/x.lic should_fail/semantics/x.lus}
-spawn ./lus2lic -o /tmp/t.lic should_fail/semantics/t.lus
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/bad_call01.lus
+spawn ../utils/test_lus2lic_no_node should_fail/semantics/x.lus
++ ./lus2lic should_fail/semantics/x.lus -n x --gen-autotest -np
+_x_env.lut generated.
+_x_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_fail/semantics/x.lus
++ ./lus2lic should_fail/semantics/x.lus -n x -ec -o x.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:x.ec:x -rp env:lutin:_x_env.lut -rp oracle:v6:_x_oracle.lus:x_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+quit
+
+
+The coverage rate is -nan%
+The coverage file lurette.cov has been updated/generated
+break signal catched
+
+lurettetop: bye!
++ echo lurettetop ok
+lurettetop ok
++ exit 0
+XPASS: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/x.lus
+spawn ../utils/test_lus2lic_no_node should_fail/semantics/aux1.lus
++ ./lus2lic should_fail/semantics/aux1.lus -n aux1 --gen-autotest -np
+_aux1_env.lut generated.
+_aux1_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_fail/semantics/aux1.lus
++ ./lus2lic should_fail/semantics/aux1.lus -n aux1 -ec -o aux1.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:aux1.ec:aux1 -rp env:lutin:_aux1_env.lut -rp oracle:v6:_aux1_oracle.lus:aux1_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+#ERROR: Output takes on nil
+RifIO.Bye
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+XPASS: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/aux1.lus
+spawn ../utils/test_lus2lic_no_node should_fail/semantics/t.lus
++ ./lus2lic should_fail/semantics/t.lus -n t --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/t.lus", line 31, col 6 to 6, token 'A':
 *** bad constant declaration, ident already linked at line:2, col:6 to 6
 
-XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/t.lic should_fail/semantics/t.lus}
-spawn ./lus2lic -o /tmp/parametric_node4.lic should_fail/semantics/parametric_node4.lus
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/t.lus
+spawn ../utils/test_lus2lic_no_node should_fail/semantics/parametric_node4.lus
++ ./lus2lic should_fail/semantics/parametric_node4.lus -n parametric_node4 --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/parametric_node4.lus", line 4, col 16 to 16, token 'n':
 *** can't eval type: bad array size, int expected but get real
 
-XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/parametric_node4.lic should_fail/semantics/parametric_node4.lus}
-spawn ./lus2lic -o /tmp/const2.lic should_fail/semantics/const2.lus
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/parametric_node4.lus
+spawn ../utils/test_lus2lic_no_node should_fail/semantics/const2.lus
++ ./lus2lic should_fail/semantics/const2.lus -n const2 --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/const2.lus", line 4, col 17 to 21, token 'false':
 *** syntax error
 
-XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/const2.lic should_fail/semantics/const2.lus}
-spawn ./lus2lic -o /tmp/sargs.lic should_fail/semantics/sargs.lus
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/const2.lus
+spawn ../utils/test_lus2lic_no_node should_fail/semantics/sargs.lus
++ ./lus2lic should_fail/semantics/sargs.lus -n sargs --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/sargs.lus", line 7, col 9 to 9, token '+':
 *** type error: 
 *** type 'real * int' was provided whereas
@@ -1707,8 +7514,12 @@ spawn ./lus2lic -o /tmp/sargs.lic should_fail/semantics/sargs.lus
 *** 
 ***    real and int are not unifiable
 
-XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/sargs.lic should_fail/semantics/sargs.lus}
-spawn ./lus2lic -o /tmp/patrick.lic should_fail/semantics/patrick.lus
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/sargs.lus
+spawn ../utils/test_lus2lic_no_node should_fail/semantics/patrick.lus
++ ./lus2lic should_fail/semantics/patrick.lus -n patrick --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/patrick.lus", line 2, col 5 to 11, token 'patrick':
 *** 
 *** "x" (local x:int on base(x,0)) is not defined. 
@@ -1716,18 +7527,188 @@ spawn ./lus2lic -o /tmp/patrick.lic should_fail/semantics/patrick.lus
   - "s" (output s:int on base(s,0))
 
 
-XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/patrick.lic should_fail/semantics/patrick.lus}
-spawn ./lus2lic -o /tmp/const.lic should_fail/semantics/const.lus
-*** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/const.lus", line 19, col 41 to 42, token 'c4':
-*** bad field declaration, ident already linked at line:19, col:9 to 10
-
-XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/const.lic should_fail/semantics/const.lus}
-spawn ./lus2lic -o /tmp/m.lic should_fail/semantics/m.lus
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/patrick.lus
+spawn ../utils/test_lus2lic_no_node should_fail/semantics/m.lus
++ ./lus2lic should_fail/semantics/m.lus -n m --gen-autotest -np
 *** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/m.lus", line 3, col 22 to 22, token ',':
 *** syntax error
 
-XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/m.lic should_fail/semantics/m.lus}
-testcase ./lus2lic.tests/non-reg.exp completed in 60 seconds
++ echo Error
+Error
++ exit 2
+XFAIL: Test bad programs (semantics): test_lus2lic_no_node should_fail/semantics/m.lus
+spawn ../utils/test_lus2lic_no_node should_fail/exec/X3.lus
++ ./lus2lic should_fail/exec/X3.lus -n X3 --gen-autotest -np
+_X3_env.lut generated.
+_X3_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_fail/exec/X3.lus
++ ./lus2lic should_fail/exec/X3.lus -n X3 -ec -o X3.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:X3.ec:X3 -rp env:lutin:_X3_env.lut -rp oracle:v6:_X3_oracle.lus:X3_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+#ERROR: Output takes on nil
+RifIO.Bye
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+XPASS: Test bad programs (exec): test_lus2lic_no_node should_fail/exec/X3.lus
+spawn ../utils/test_lus2lic_no_node should_fail/assert/assertion.lus
++ ./lus2lic should_fail/assert/assertion.lus -n assertion --gen-autotest -np
+_assertion_env.lut generated.
+_assertion_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_fail/assert/assertion.lus
++ ./lus2lic should_fail/assert/assertion.lus -n assertion -ec -o assertion.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:assertion.ec:assertion -rp env:lutin:_assertion_env.lut -rp oracle:v6:_assertion_oracle.lus:assertion_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+#ERROR: Assertion takes on false
+RifIO.Bye
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+XPASS: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/assertion.lus
+spawn ../utils/test_lus2lic_no_node should_fail/assert/alarme.lus
++ ./lus2lic should_fail/assert/alarme.lus -n alarme --gen-autotest -np
+_alarme_env.lut generated.
+_alarme_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_fail/assert/alarme.lus
++ ./lus2lic should_fail/assert/alarme.lus -n alarme -ec -o alarme.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:alarme.ec:alarme -rp env:lutin:_alarme_env.lut -rp oracle:v6:_alarme_oracle.lus:alarme_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+#ERROR: Assertion takes on false
+RifIO.Bye
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+XPASS: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/alarme.lus
+spawn ../utils/test_lus2lic_no_node should_fail/assert/lecteur.lus
++ ./lus2lic should_fail/assert/lecteur.lus -n lecteur --gen-autotest -np
+_lecteur_env.lut generated.
+_lecteur_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_fail/assert/lecteur.lus
++ ./lus2lic should_fail/assert/lecteur.lus -n lecteur -ec -o lecteur.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:lecteur.ec:lecteur -rp env:lutin:_lecteur_env.lut -rp oracle:v6:_lecteur_oracle.lus:lecteur_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+#ERROR: Assertion takes on false
+RifIO.Bye
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+XPASS: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/lecteur.lus
+spawn ../utils/test_lus2lic_no_node should_fail/assert/drapfab.lus
++ ./lus2lic should_fail/assert/drapfab.lus -n drapfab --gen-autotest -np
+_drapfab_env.lut generated.
+_drapfab_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_fail/assert/drapfab.lus
++ ./lus2lic should_fail/assert/drapfab.lus -n drapfab -ec -o drapfab.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:drapfab.ec:drapfab -rp env:lutin:_drapfab_env.lut -rp oracle:v6:_drapfab_oracle.lus:drapfab_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+#ERROR: Assertion takes on false
+RifIO.Bye
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+XPASS: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/drapfab.lus
+spawn ../utils/test_lus2lic_no_node should_fail/assert/s.lus
++ ./lus2lic should_fail/assert/s.lus -n s --gen-autotest -np
+_s_env.lut generated.
+_s_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_fail/assert/s.lus
++ ./lus2lic should_fail/assert/s.lus -n s -ec -o s.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:s.ec:s -rp env:lutin:_s_env.lut -rp oracle:v6:_s_oracle.lus:s_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+#ERROR: Assertion takes on false
+RifIO.Bye
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+XPASS: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/s.lus
+spawn ../utils/test_lus2lic_no_node should_fail/assert/eq1.lus
++ ./lus2lic should_fail/assert/eq1.lus -n eq1 --gen-autotest -np
+_eq1_env.lut generated.
+_eq1_oracle.lus generated.
++ echo lus2lic --gen-autotest done
+lus2lic --gen-autotest done
++ cat should_fail/assert/eq1.lus
++ ./lus2lic should_fail/assert/eq1.lus -n eq1 -ec -o eq1.ec
++ echo lus2lic -ec done
+lus2lic -ec done
++ export PATH=/usr/local/tools/lustre/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++ ./lurettetop -p 6 -seed 42 -rp sut:ec:eq1.ec:eq1 -rp env:lutin:_eq1_env.lut -rp oracle:v6:_eq1_oracle.lus:eq1_oracle -go -l 10 -ns2c --stop-on-oracle-error
+RP Variables are compatible.
+#ERROR: Assertion takes on false
+RifIO.Bye
+Lurette launched a process that failed (exit 2).
+ 
+break signal catched
+
+lurettetop: bye!
++ echo error
+error
++ exit 2
+XPASS: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/eq1.lus
+testcase ./lus2lic.tests/non-reg.exp completed in 129 seconds
 Running ./lus2lic.tests/progression.exp ...
 spawn ./lus2lic -o /tmp/when_not.out should_work/broken/when_not.lus
 PASS: ./lus2lic {    -o /tmp/when_not.out should_work/broken/when_not.lus}
@@ -1764,12 +7745,12 @@ spawn ./lus2lic -o /tmp/activation1.lic should_fail/semantics/broken/activation1
 XPASS: Test bad programs (semantics): lus2lic {-o /tmp/activation1.lic should_fail/semantics/broken/activation1.lus}
 spawn ./lus2lic -o /tmp/bug.lic should_fail/semantics/broken/bug.lus
 XPASS: Test bad programs (semantics): lus2lic {-o /tmp/bug.lic should_fail/semantics/broken/bug.lus}
-testcase ./lus2lic.tests/progression.exp completed in 1 seconds
+testcase ./lus2lic.tests/progression.exp completed in 0 seconds
 
 		=== lus2lic Summary ===
 
-# of expected passes		744
-# of unexpected failures	2
-# of unexpected successes	11
+# of expected passes		885
+# of unexpected failures	76
+# of unexpected successes	21
 # of expected failures		37
-runtest completed at Wed Apr  3 15:42:47 2013
+runtest completed at Wed May 21 16:19:46 2014
diff --git a/test/lus2lic.sum b/test/lus2lic.sum
index 883b36f33353e27614ac0cdf00f5b5a342e6e1ef..bd1478edcbd36ebb50bdebb392db4b05ac69f71e 100644
--- a/test/lus2lic.sum
+++ b/test/lus2lic.sum
@@ -1,4 +1,4 @@
-Test Run By jahier on Thu Jun  6 10:33:07 2013
+Test Run By jahier on Wed May 21 16:17:37 2014
 Native configuration is i686-pc-linux-gnu
 
 		=== lus2lic tests ===
@@ -45,6 +45,9 @@ 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 {-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}
 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}
@@ -235,6 +238,10 @@ 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 {-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 {-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}
@@ -262,7 +269,7 @@ FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node shou
 PASS: ./lus2lic {-o /tmp/onlyroll2.lic should_work/onlyroll2.lus}
 PASS: ./lus2lic {-ec -o /tmp/onlyroll2.ec should_work/onlyroll2.lus}
 PASS: ./myec2c {-o /tmp/onlyroll2.c /tmp/onlyroll2.ec}
-FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/onlyroll2.lus
+PASS: ../utils/test_lus2lic_no_node should_work/onlyroll2.lus
 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}
@@ -397,7 +404,7 @@ PASS: ../utils/test_lus2lic_no_node should_work/bad_call03.lus
 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}
-FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/onlyroll.lus
+PASS: ../utils/test_lus2lic_no_node should_work/onlyroll.lus
 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}
@@ -1024,9 +1031,9 @@ XPASS: Test bad programs (semantics): lus2lic {-o /tmp/bug.lic should_fail/seman
 
 		=== lus2lic Summary ===
 
-# of expected passes		878
+# of expected passes		885
 # of unexpected failures	76
 # of unexpected successes	21
 # of expected failures		37
-testcase ./lus2lic.tests/non-reg.exp completed in 340 seconds
+testcase ./lus2lic.tests/non-reg.exp completed in 129 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 726f47c5d36e06ce2c6f6c368297d76953717733..c6712127ba4aee90a732a52bb30ed42ede1604c5 100644
--- a/test/lus2lic.tests/non-reg.exp
+++ b/test/lus2lic.tests/non-reg.exp
@@ -14,14 +14,25 @@ foreach f $ok_files {
     wait -i $id1
     set id2 [should_work "Generate ec code  " "$lus2lic" "-ec -o $bf.ec $f"]
     wait -i $id2
+
     if { [emptyfile "$bf.ec"] } {
         set id3 [should_work "Try ec2c on the result" "$ec2c" "-o $bf.c $bf.ec"]
         wait -i $id3
+        catch { exp_close -i $id3 }
+        catch { exp_wait  -i $id3 } output
     }
     if { [emptyfile "$bf.c"] } {
         set id4 [should_work "Try to compare lus2lic -exec and ecexe" "$test_lus2lic_no_node" "$f"]
+        catch { exp_close -i $id4 }
+        catch { exp_wait  -i $id4 } output
     }
-}
+
+    catch { exp_close -i $id1 }
+    catch { exp_wait  -i $id1 } output
+    catch { exp_close -i $id2 }
+    catch { exp_wait  -i $id2 } output
+
+ }
 
 
 # Programs that should fail
@@ -34,6 +45,8 @@ proc iter_should_fail { fail_kind } {
         set bf /tmp/[file tail $bf]
         set id [should_fail "Test bad programs" "$fail_kind" "$test_lus2lic_no_node" "$f"]
         wait -i $id
+        catch { exp_close -i $id }
+        catch { exp_wait  -i $id } output
     }
 }
 #        set id [should_fail "Test bad programs" "$fail_kind" "$lus2lic" "-o $bf.lic $f"]
diff --git a/test/lus2lic.tests/progression.exp b/test/lus2lic.tests/progression.exp
index 473153d5c9c3ad05be226efb992647c929881267..c2e8336fd84af64fab3e3ff96cdf92424b9671b2 100644
--- a/test/lus2lic.tests/progression.exp
+++ b/test/lus2lic.tests/progression.exp
@@ -1,6 +1,6 @@
 
 # Timeout reduced to 3 seconds
-set timeout 3
+set timeout 20
 
 
 #set command_line "~/lus2lic/objlinux/lus2lic"
diff --git a/test/lus2lic.time b/test/lus2lic.time
index 3c4b8f9515b35b534023d985dba61f518c6a3e49..b771258b27d419d55d4c949273a79842020ac0d2 100644
--- a/test/lus2lic.time
+++ b/test/lus2lic.time
@@ -1,2 +1,2 @@
-testcase ./lus2lic.tests/non-reg.exp completed in 340 seconds
+testcase ./lus2lic.tests/non-reg.exp completed in 129 seconds
 testcase ./lus2lic.tests/progression.exp completed in 0 seconds
diff --git a/test/should_work/cminus.lus b/test/should_work/cminus.lus
index c183e87b3330f477ff574c477bf377a421711809..5d5be5b96c5a900aa104d3699e40461320215749 100644
--- a/test/should_work/cminus.lus
+++ b/test/should_work/cminus.lus
@@ -16,6 +16,7 @@ var s1,s2:bool;
 let
 	s1= TWO_STATES(e1,e2,init);
 	s2= TWO_BUTTONS(e1,e2,init);
-	assert not(e1 and e2)->true;
+-- sometimes broken by the current (random-based non-reg test scheme)
+--	assert not(e1 and e2)->true;
 	ok =(s1=s2) ;
 tel
diff --git a/test/should_work/modes3x2-v2.lus b/test/should_work/modes3x2-v2.lus
new file mode 100644
index 0000000000000000000000000000000000000000..eb8bca0c0ce0ea38164da7734f0e624dddf4e38f
--- /dev/null
+++ b/test/should_work/modes3x2-v2.lus
@@ -0,0 +1,83 @@
+(* version modifiée pour enlever le cycle combinatoire du au pre
+calculé dans le switch *)
+
+type data = int;
+
+-- version pour otawa
+-- function A0(x:data) returns (y:data);
+-- function A1(x:data) returns (y:data);
+-- function A2(x:data) returns (y:data);
+-- function B0(x:data) returns (y:data);
+-- function B1(x:data) returns (y:data);
+
+
+-- version pour simu
+
+node A0(x:data) returns (y:data); let y = 3; tel
+node A1(x:data) returns (y:data); let y = 23; tel
+node A2(x:data) returns (y:data); let y = 43; tel
+node B0(x:data) returns (y:data); let y = 15; tel
+node B1(x:data) returns (y:data); let y = 5; tel
+
+
+
+node switch(init, on, off: bool) returns (s: bool);
+var
+  ps:bool;
+let
+	ps = init -> pre s;
+	s = if ps then not off else on;
+tel
+
+node copy(x:bool) returns (y: bool);
+let
+	y = x;
+tel
+
+node A(x:data; ca1, ca2: bool) returns (y:data);
+var
+	idle, low, high: bool;
+	pidle, plow, phigh: bool;
+let
+	idle = switch(true, ca1, ca1);
+  pidle = true -> pre idle;
+  (* E cycle entre low et high ! *)
+	low = switch(false, pidle and ca1 or phigh and ca2, ca1 or ca2);
+	high = switch(false, plow and not ca1 and ca2, ca1 or ca2);
+   plow = false -> pre low;
+   phigh = false -> pre high;
+	y = if idle then current (A0 (x when idle))
+	    else if low then current (A1 (x when low))
+	    else if high then current (A2 (x when high))
+		 else (0 -> pre y) ;
+tel
+
+node B(x:data; _nom, _sby: bool) returns (z:data);
+var
+	nom, sby: bool;
+let
+	nom = copy(_nom);
+	sby = copy(_sby);
+	z = if nom then current (B0(x when nom))
+	    else if sby then current (B1(x when sby))
+		 else (0 -> pre z);
+tel
+
+node modes3x2(x:data; on_off, toggle: bool) returns (res: data);
+var
+	y, z : data;	
+	sby : bool;
+	nom : bool;
+let
+	assert #(on_off, toggle);
+
+	y = A(x, on_off, toggle);
+	z = B(y, nom, sby);
+
+	(* coordination commandes *)
+	--pcritic, critic = switch(false, on_off, on_off);
+	--sleep = pcritic and (on_off or toggle);
+	sby = (on_off = (true -> pre nom));
+	nom = (on_off = (false -> pre sby));
+	res = y + z;
+tel
diff --git a/test/should_work/modes3x2-v3.lus b/test/should_work/modes3x2-v3.lus
new file mode 100644
index 0000000000000000000000000000000000000000..83435e5d3861e374c9897c9d4f94cc169deb26bd
--- /dev/null
+++ b/test/should_work/modes3x2-v3.lus
@@ -0,0 +1,69 @@
+(* version utilisant les horloges enumérées à la V6 *)
+
+type data = int;
+
+-- version pour otawa
+-- function A0(x:data) returns (y:data);
+-- function A1(x:data) returns (y:data);
+-- function A2(x:data) returns (y:data);
+-- function B0(x:data) returns (y:data);
+-- function B1(x:data) returns (y:data);
+
+
+-- version pour simu
+
+node A0(x:data) returns (y:data); let y = 3; tel
+node A1(x:data) returns (y:data); let y = 23; tel
+node A2(x:data) returns (y:data); let y = 43; tel
+node B0(x:data) returns (y:data); let y = 15; tel
+node B1(x:data) returns (y:data); let y = 5; tel
+
+node copy(x:bool) returns (y: bool);
+let
+	y = x;
+tel
+type state = enum { idle, low, high };
+
+node A(x:data; ca1, ca2: bool) returns (y:data);
+var
+   s, ps: state;
+let
+   s = if ps = idle then (if ca1 then low else idle)
+       else if ps = low  then (if ca1 then idle else if ca2 then high else low)
+       else (* ps = high *) (if ca1 then idle else if ca2 then low  else high);
+  ps = idle -> pre s;
+  y = merge s 
+             ( idle -> A0(x when idle(s)) )
+             ( low  -> A1(x when low(s))  )
+             ( high -> A2(x when high(s)) ) ;
+tel
+
+node B(x:data; _nom, _sby: bool) returns (z:data);
+var
+	nom, sby: bool;
+let
+	nom = copy(_nom);
+	sby = copy(_sby);
+	z = if nom then current (B0(x when nom))
+	    else if sby then current (B1(x when sby))
+		 else (0 -> pre z);
+tel
+
+node modes3x2(x:data; on_off, toggle: bool) returns (res: data);
+var
+	y, z : data;	
+	sby : bool;
+	nom : bool;
+let
+	assert #(on_off, toggle);
+
+	y = A(x, on_off, toggle);
+	z = B(y, nom, sby);
+
+	(* coordination commandes *)
+	--pcritic, critic = switch(false, on_off, on_off);
+	--sleep = pcritic and (on_off or toggle);
+	sby = (on_off = (true -> pre nom));
+	nom = (on_off = (false -> pre sby));
+	res = y + z;
+tel
diff --git a/test/should_work/test_merge.lus b/test/should_work/test_merge.lus
index 9c7d0a167cfd2f4da5ea36117684605cd985c048..6aefb4e82ad9639353b22dd2206faf4860fa9cd2 100644
--- a/test/should_work/test_merge.lus
+++ b/test/should_work/test_merge.lus
@@ -11,12 +11,18 @@ let
         ( Tranche -> i3);
 tel
 
-node merge_bool_alt(clk : bool ; i1  : int when clk ; i2 : int when not clk) returns (y: int); 
+node merge_bool_alt(clk : bool ; 
+                    i1  : int when clk ; 
+                    i2  : int when not clk) 
+returns (y: int); 
 let
     y = merge clk (true -> i1) (false-> i2);
 tel
 
-node merge_bool_ter(clk : bool ; i1  : int when clk ; i2 : int when not clk) returns (y: int); 
+node merge_bool_ter(clk : bool ; 
+                    i1  : int when clk ; 
+                    i2 : int when not clk) 
+returns (y: int); 
 let
     y = merge clk (false-> i2) (true -> i1) ;
 tel
diff --git a/test/site.exp b/test/site.exp
index 60015ba46510bf47983d1e7faa14b2c90a2d6468..1fa5caee7b2bd421eb17a1df72523f1e0d3e64cf 100644
--- a/test/site.exp
+++ b/test/site.exp
@@ -2,6 +2,9 @@ set lus2lic "./lus2lic"
 set ec2c "./ec2c"
 set ec2c "./myec2c"
 set test_lus2lic_no_node "../utils/test_lus2lic_no_node"
+
+set timeout 10
+
 proc should_work { test_name command_line args } {
     global verbose
 
@@ -52,6 +55,9 @@ proc should_work { test_name command_line args } {
             set failed 1
             exp_continue
         }
+        "rdbg -lurette: ok" {
+            pass "$cl $args"
+        }
         "lurettetop ok" {
             pass "$cl $args"
         }
diff --git a/utils/patch_ecexe b/utils/patch_ecexe
new file mode 100755
index 0000000000000000000000000000000000000000..f62ae7e4547852d1180d2611eef2001e91477e4d
--- /dev/null
+++ b/utils/patch_ecexe
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+# ecexe -rif does not declare its outputs, and rdbg --sut-stdio needs it!
+# fortunately, lus2lic -exec can do the job!
+
+# Its hacky, but simple enough...
+
+
+ec=$1
+node=$2
+
+
+./lus2lic -interface $ec -n $node 
+ecexe -rif -r $ec 
diff --git a/utils/test_lus2lic_no_node b/utils/test_lus2lic_no_node
index b946f7750b146defbad980d15035b643e694b221..6ed9e482d771f3b5e53fa85cc1163408d8507df6 100755
--- a/utils/test_lus2lic_no_node
+++ b/utils/test_lus2lic_no_node
@@ -1,5 +1,8 @@
 #!/bin/sh
 
+# compares with lurette the results of:
+#   lus2lic -ec and ecexe
+#   lus2lic -exec
 
 lustre_file=$1
 node=`basename $lustre_file .lus`
@@ -10,6 +13,7 @@ ec="$node".ec
 lv4_node="$node__$node"
 env=_"$node"_env.lut
 
+
 set -x verbose #echo on
 
 if
@@ -29,14 +33,16 @@ cat $lustre_file  >> $_oracle;
 if
     ./lus2lic $lustre_file -n $node  -ec  -o $ec;
 #    ./lus2lic $lustre_file -n $node  -en -lv4 -eei --no-prefix -o $lv4;
+#    lus2ec $lv4 $node
 then
-    echo "lus2lic -lv4 done"
+    echo "lus2lic -ec done"
 else
     echo "Error"
     exit 2
 fi
 
 
+
 export PATH=/usr/local/tools/lustre/bin/:$PATH
 #  if
 #      ./lus2lic $_oracle -n $oracle  -ec -o $oracle.ec
diff --git a/utils/test_lus2lic_no_node_rdbg b/utils/test_lus2lic_no_node_rdbg
new file mode 100755
index 0000000000000000000000000000000000000000..99c5e2f233869278ba7ff8703d550f82f434796f
--- /dev/null
+++ b/utils/test_lus2lic_no_node_rdbg
@@ -0,0 +1,110 @@
+#!/bin/sh 
+
+
+ocamlopt=/usr/local/soft/ocaml/4.01.0/bin/ocamlopt.opt
+lustre_file=$1
+node=`basename $lustre_file .lus`
+_oracle=_"$node"_oracle.lus
+oracle="$node"_oracle
+lv4="$node"_lv4.lus
+ec="$node".ec
+lv4_node="$node__$node"
+env=_"$node"_env.lut
+export RDBG_PATH="$HOME/rdbg"
+set -x verbose #echo on
+
+if
+./lus2lic $lustre_file -n $node --gen-autotest -np;
+then
+   echo "lus2lic --gen-autotest done" 
+else
+    echo "Error"
+    exit 2
+fi
+
+#cat  $lustre_file  >> $_oracle
+
+cat $lustre_file  >> $_oracle;
+
+
+if
+    ./lus2lic $lustre_file -n $node  -ec  -o $ec;
+#    ./lus2lic $lustre_file -n $node  -en -lv4 -eei --no-prefix -o $lv4;
+then
+    echo "lus2lic -lv4 done"
+else
+    echo "Error"
+    exit 2
+fi
+
+
+export PATH=/usr/local/tools/lustre/bin/:$PATH
+#  if
+#      ./lus2lic $_oracle -n $oracle  -ec -o $oracle.ec
+#  #    ./lus2lic  lv4$_oracle -n $oracle -ec -o $oracle.ec
+#  #    lus2ec  $_oracle  $oracle  -o $oracle.ec;
+#  then
+#  echo "ec generation done"
+#  else
+#      echo "Error"
+#      exit 2
+#  fi
+
+
+
+
+export CMXA="polka.cmxa bdd.cmxa lut4ocaml.cmxa"
+export CLIB="-cclib -lgmp -cclib -lpolkag_caml -cclib -lpolkal_caml -cclib -lpolkai_caml -cclib  -lcamlidl -cclib  -lpolkag -cclib -lpolkal -cclib -lpolkai  -cclib -lbdd_stubs -cclib -lEzdl_c_stubs" 
+
+
+#  ./lurettetop -p 6  -seed 42 \
+#      -rp "sut:ec:$ec:$lv4_node" \
+#      -rp "env:lutin:$env" \
+#      -rp "oracle:v6:$_oracle:$oracle" \
+#      -l 10;
+#--stop-on-oracle-error;
+
+if
+        echo "Generating oracle.cmxs";
+        ./lus2lic -ocaml -o oracle.ml $_oracle -n $oracle &&
+        $ocamlopt -shared -o  oracle.cmxs -I +lustre-v6 -I +rdbg-plugin  lus4ocaml.cmxa oracle.ml &&
+        
+         echo "Generating sut.cmxs" &&
+          ./lus2lic -ocaml -o sut.ml $ec -n $lv4_node &&
+          $ocamlopt -shared -o sut.cmxs    -I +lustre-v6 -I +rdbg-plugin lus4ocaml.cmxa sut.ml &&
+
+        echo "Generating env.cmxs" &&
+        ./lutin  -seed 42 -ocaml -o env.ml $env &&
+        $ocamlopt -shared -o  env.cmxs    -I +lutin   -I +rdbg-plugin  $CLIB $CMXA env.ml &&
+        
+        ./lurettetop -p 6  -seed 42 \
+            -rp "sut:ec:$ec:$lv4_node" \
+            -rp "env:lutin:$env" \
+            -rp "oracle:v6:$_oracle:$oracle" \
+            -go -l 10 -ns2c --stop-on-oracle-error;
+
+    echo "  $RDBG_PATH/rdbgbatch.native -lurette --seed 42 -l 100 -p 6 --stop-on-oracle-error \
+        --sut sut.cmxs \
+        --env env.cmxs \
+        --oracle oracle.cmxs  ";
+
+    echo "  $RDBG_PATH/rdbgbatch.native -lurette --seed 42 -l 100 -p 6 --stop-on-oracle-error \
+          --sut-stdio  \"./patch_ecexe $ec $lv4_node\"  \
+          --env-stdio \"./lutin -boot -rif $env\" \
+          --oracle-stdio \"./lus2lic -exec -rif $_oracle -n $oracle\"  ";
+#        --sut sut.cmxs \
+#          --env-stdio "./lutin -boot -rif $env" \
+#          --oracle-stdio "./lus2lic -exec -rif $_oracle -n $oracle"  ;
+
+    
+#$RDBG_PATH/rdbgbatch.native -lurette --seed 42 -p 6 -l 10 --stop-on-oracle-error  \
+#        --sut-stdio  "./patch_ecexe $ec $lv4_node"  \
+#        --env-stdio "./lutin -boot -rif $env" \
+#        --oracle-stdio "./lus2lic -exec -rif $_oracle -n $oracle"  ;
+then
+echo "rdbg -lurette: ok"
+else
+     echo "error"
+     exit 2
+fi
+exit 0