diff --git a/.gitignore b/.gitignore
index 772ed8d41305757799105c2015e2bcabbee1c2d5..712e889c4ae70949b1db334faca821aaa3f14e2f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -172,5 +172,5 @@ scade-manuel.pdf
 
 src/TODO.org
 src/mli_save/
-
+Makefile.version
 
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..271afce04ff58471a00fcbd34ff10774c9501bb2
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,26 @@
+image: ocaml/opam:ubuntu
+
+variables:
+  GIT_STRATEGY: clone
+
+stages:
+  - build
+  - test
+  
+build:
+  stage: build
+  script:
+    - opam repo add verimag-sync-repo "http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/opam-repository"
+    - opam update
+    - opam install -y camlp4 ocamlfind oasis extlib
+    - opam install rdbg 
+    - make
+    - make install
+
+test_opam_test:
+  stage: test
+  script:
+    - opam repo add verimag-sync-repo "http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/test/opam-repository"
+    - opam update
+    - opam install -y lustre-v6
+
diff --git a/Makefile b/Makefile
index a57615b29e4d2a53ec280da8c307cd2b2c429df8..eb22a3ba4c9cd6afd265313058816485208bdc0f 100644
--- a/Makefile
+++ b/Makefile
@@ -1,21 +1,20 @@
 
-all:build 
+all:build man
 build: setup.data src/lv6version.ml
 	ocaml setup.ml -build          
 
-include ./Makefile.version
+-include ./Makefile.version
 
 setup.ml:_oasis
 	oasis setup
 
 PROF=--enable-profile
 PROF=--disable-profile
-BINPATH=$(shell dirname `which ocamlc`)/..
-LIBPATH=$(shell ocamlc -where)/../lustre-v6/
+BINPATH=$(shell opam config var prefix)
 setup.data:setup.ml
-	ocaml setup.ml -configure $(PROF)  --prefix $(BINPATH) --exec-prefix $(BINPATH)
+	ocaml setup.ml -configure $(PROF)  --prefix $(BINPATH) 
 
-install:install-man
+install:
 	ocaml setup.ml -install
 
 uninstall:
@@ -33,10 +32,7 @@ distclean:
 	ocaml setup.ml -distclean
 
 man:
-	cd lv6-ref-man && make
-
-install-man: man
-	cp lv6-ref-man/lv6-ref-man.pdf $(LIBPATH) || true
+	cd lv6-ref-man && make || echo "*** ref manual building failed"
 
 
 ###############################
diff --git a/Makefile.dev b/Makefile.dev
index 5c3f58073f5996482478e2947dc1ba2e9f673884..b39caf352eb3ae0c4e064a7432991913663002fe 100644
--- a/Makefile.dev
+++ b/Makefile.dev
@@ -35,12 +35,15 @@ README.md: README.txt
 #######################################################################################
 # Workflow:
 # C=git commit ;  A=git amend ; U=update_version ; P=opam pack
-# to make sure the sha and the version are good, one should never
-# do U and then A.
-# to avoid such problems, legal trace are defined by this automata:
+# - to make sure the sha and the version are good, one should never
+#   do U and then A.
+# - to make sure gtit is not confused, one should never do A and the P
+#
+# thereforeto avoid such problems, legal trace are defined by this automata:
 # 0 -C-> 1
-# 1 -P-> 1
 # 1 -A-> 1
+# 1 -P-> 2
+# 2 -U-> 0
 # 1 -U-> 0
 # to implement such a workflow, C puts a lock (state 1) and U removes it (state 0)
 
@@ -58,12 +61,11 @@ update_version:
 cia:
 	test -f committed && \
    echo "*** I won't commit!\n*** until you 'make update_version'!" \
-      || (git commit -a -F log && touch committed)
+      || (git commit -a -F log && touch committed) && echo "Hint: 'make ci' to test the CI before doing 'make 'push'"
 
-ci:
-	test -f committed  && \
-   echo "*** I won't commit!\n*** until you 'make update_version'!" \
-      || (git commit  -F log && touch committed)
+
+push: opam-test
+	git push && make uv
 
 amend:
 	test -f committed && git commit -a -F log --amend 
diff --git a/Makefile.version b/Makefile.version.hide
similarity index 100%
rename from Makefile.version
rename to Makefile.version.hide
diff --git a/_oasis b/_oasis
index 213952ba483c60f3c198b390730a29021709eb22..de9dd7fe3a6ef72322e492ce1ec45036216dc397 100644
--- a/_oasis
+++ b/_oasis
@@ -1,6 +1,6 @@
 OASISFormat: 0.4
 Name:        lustre-v6
-Version:     1.726
+Version:     1.728
 Synopsis:    The Lustre V6 Verimag compiler
 Description: This package contains:
  - lus2lic: the (current) name of the compiler (and interpreter via -exec)
diff --git a/lv6-ref-man/lv6-ref-man.pdf b/lv6-ref-man/lv6-ref-man.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..36efc1558f3916bd8c0a22356154f1fa7af9d777
Binary files /dev/null and b/lv6-ref-man/lv6-ref-man.pdf differ
diff --git a/src/lv6version.ml b/src/lv6version.ml
index a7661165eccfa08b21a61e8bdbe6bd126ed2c313..ba261919f3477dd20cbf196f6b0df94e5f807c27 100644
--- a/src/lv6version.ml
+++ b/src/lv6version.ml
@@ -1,7 +1,7 @@
 (** Automatically generated from Makefile *) 
 let tool = "lus2lic"
 let branch = "master"
-let commit = "726"
-let sha_1 = "45684e24424db1b7777b3b53d795035b3e25009c"
+let commit = "728"
+let sha_1 = "1dc1ebdf000ae91e09b6716ecc593a82c568efc9"
 let str = (branch ^ "." ^ commit ^ " (" ^ sha_1 ^ ")")
 let maintainer = "erwan.jahier@univ-grenoble-alpes.fr"
diff --git a/test/lus2lic b/test/lus2lic
index 1d5cfcf24c81200ff5e654fa91257aed958eb556..46e427c905c676342037471245b460a3ddc4ad89 120000
--- a/test/lus2lic
+++ b/test/lus2lic
@@ -1 +1 @@
-../lus2lic
\ No newline at end of file
+../_build/src/main.native
\ No newline at end of file
diff --git a/test/lus2lic.sum b/test/lus2lic.sum
index 225cb9620db2599730eb33f2fe1b5db2db18f898..3472d34aa9c82c76d134d01854cefc14cfd390dd 100644
--- a/test/lus2lic.sum
+++ b/test/lus2lic.sum
@@ -1,5 +1,5 @@
 ==> lus2lic0.sum <==
-Test Run By jahier on Thu Nov 30 16:36:40 
+Test Run By jahier on Thu Dec 14 10:43:54 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic0 tests ===
@@ -66,7 +66,7 @@ XFAIL: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/lecte
 XFAIL: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/s.lus
 
 ==> lus2lic1.sum <==
-Test Run By jahier on Thu Nov 30 16:36:41 
+Test Run By jahier on Thu Dec 14 10:43:54 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic1 tests ===
@@ -263,9 +263,6 @@ PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c ec.lus  {}
 PASS: ./lus2lic  {-2c enum0.lus -n enum0}
 PASS: sh enum0.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c enum0.lus  {}
-PASS: ./lus2lic  {-2c enum0_lv4.lus -n enum0_lv4}
-PASS: sh enum0_lv4.sh 
-PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c enum0_lv4.lus  {}
 PASS: ./lus2lic  {-2c ex.lus -n ex}
 PASS: sh ex.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c ex.lus  {}
@@ -412,7 +409,7 @@ PASS: sh multipar.sh
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c multipar.lus  {}
 
 ==> lus2lic2.sum <==
-Test Run By jahier on Thu Nov 30 16:37:22 
+Test Run By jahier on Thu Dec 14 10:44:35 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic2 tests ===
@@ -752,7 +749,7 @@ PASS: sh zzz2.sh
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c zzz2.lus  {}
 
 ==> lus2lic3.sum <==
-Test Run By jahier on Thu Nov 30 16:38:08 
+Test Run By jahier on Thu Dec 14 10:45:40 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic3 tests ===
@@ -1036,10 +1033,6 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node ec.lus {}
 PASS: ./lus2lic {} {-o enum0.lic enum0.lus}
 PASS: ./lus2lic {-ec -o enum0.ec enum0.lus}
 PASS: ./myec2c {-o enum0.c enum0.ec}
-PASS: ./lus2lic {} {-o enum0_lv4.lic enum0_lv4.lus}
-PASS: ./lus2lic {-ec -o enum0_lv4.ec enum0_lv4.lus}
-PASS: ./myec2c {-o enum0_lv4.c enum0_lv4.ec}
-PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node enum0_lv4.lus {}
 PASS: ./lus2lic {} {-o ex.lic ex.lus}
 PASS: ./lus2lic {-ec -o ex.ec ex.lus}
 PASS: ./myec2c {-o ex.c ex.ec}
@@ -1214,7 +1207,6 @@ PASS: ./lus2lic {} {-o modes3x2_v3.lic modes3x2_v3.lus}
 PASS: ./lus2lic {-ec -o modes3x2_v3.ec modes3x2_v3.lus}
 PASS: ./lus2lic {} {-o modes3x2_v4.lic modes3x2_v4.lus}
 PASS: ./lus2lic {-ec -o modes3x2_v4.ec modes3x2_v4.lus}
-FAIL: without any option: ./lus2lic {} {-o modes3x2_v4.lv4.lic modes3x2_v4.lv4.lus}
 PASS: ./lus2lic {} {-o morel.lic morel.lus}
 PASS: ./lus2lic {-ec -o morel.ec morel.lus}
 PASS: ./myec2c {-o morel.c morel.ec}
@@ -1266,7 +1258,7 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node multipar.lus {}
 
 
 ==> lus2lic4.sum <==
-Test Run By jahier on Thu Nov 30 16:39:08 
+Test Run By jahier on Thu Dec 14 10:46:44 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic4 tests ===
@@ -1758,7 +1750,7 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node zzz2.lus {}
 
 		=== lus2lic1 Summary ===
 
-# of expected passes		333
+# of expected passes		330
 # of unexpected failures	1
 
 ==> lus2lic2.sum <==
@@ -1771,8 +1763,8 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node zzz2.lus {}
 ==> lus2lic3.sum <==
 		=== lus2lic3 Summary ===
 
-# of expected passes		494
-# of unexpected failures	6
+# of expected passes		490
+# of unexpected failures	5
 # of unresolved testcases	1
 
 ==> lus2lic4.sum <==
@@ -1782,15 +1774,15 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node zzz2.lus {}
 # of expected passes		465
 # of unexpected failures	6
 ===============================
-# Total number of failures: 14
+# Total number of failures: 13
 lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 0 seconds
-lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 41 seconds
-lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 46 seconds
-lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 60 seconds
+lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 40 seconds
+lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 64 seconds
+lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 64 seconds
 lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 33 seconds
 * Ref time: 
-122.26user 26.12system 3:00.36elapsed 82%CPU (0avgtext+0avgdata 283484maxresident)k
-0inputs+6103384outputs (0major+18029696minor)pagefaults 0swaps
+139.67user 28.91system 3:22.88elapsed 83%CPU (0avgtext+0avgdata 283556maxresident)k
+0inputs+6051504outputs (0major+17946258minor)pagefaults 0swaps
 * Quick time (-j 4):
-164.84user 31.99system 2:17.06elapsed 143%CPU (0avgtext+0avgdata 283480maxresident)k
-4144inputs+5983920outputs (3major+17743590minor)pagefaults 0swaps
+152.33user 30.75system 1:52.17elapsed 163%CPU (0avgtext+0avgdata 283420maxresident)k
+32inputs+5902328outputs (0major+17567460minor)pagefaults 0swaps