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/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 index d0b7e73de3919010ef4d39ef662f51f7994e1645..f9083c7726c0064345bf20dc0767bd9f0047efab 100644 --- a/_oasis +++ b/_oasis @@ -3,19 +3,20 @@ Name: lus2lic Version: 1 Synopsis: The Lustre V6 compiler Authors: Erwan Jahier and Pascal Raymond -License: LGPL-3 with OCaml linking exception -Plugins: DevFiles (0.3), META (0.3) -Synopsis: The Lustre V6 Verimag compiler +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 -Description: The Lustre V6 Verimag compiler +BuildTools: ocamlbuild Executable lus2lic - Path: src - BuildTools: ocamlbuild + Install:true + Path: src/ MainIs: main.ml + BuildTools: ocamlbuild BuildDepends: str,unix,num,rdbg-plugin - Install:true + Build:true CompiledObject: native diff --git a/_tags b/_tags index e5934099e9b0a30bdb65d9abb02e141c9cba6cd3..cc4ff346bce5a5fc7475c7cc12483afdeec741f6 100644 --- a/_tags +++ b/_tags @@ -1,7 +1,7 @@ # OASIS_START -# DO NOT EDIT (digest: 27f968445ada0c5de5d09ce2bf0e3fd2) -# Ignore VCS directories, you can use the same kind of rule outside -# OASIS_START/STOP if you want to exclude directories that contains +# 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 @@ -14,14 +14,14 @@ "_darcs": -traverse "_darcs": not_hygienic # Executable lus2lic -"src/main.native": pkg_str -"src/main.native": pkg_unix "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_str -<src/*.ml{,i}>: pkg_unix <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/src/lv6version.ml b/src/lv6version.ml index 78ae5605c4f7c06db073ce265a2fa432d54c0710..7507b2ccfcddea62e2126a07c6d34bf12c8353df 100644 --- a/src/lv6version.ml +++ b/src/lv6version.ml @@ -1,7 +1,7 @@ (** Automatically generated from Makefile *) let tool = "lus2lic" let branch = "(no" -let commit = "435" -let sha_1 = "87f4094c27892b43310e95b26177616923abaccf" +let commit = "436" +let sha_1 = "d4498a181c7a7a9aea786e534bad890bd4e1c11d" let str = (branch ^ "." ^ commit ^ " (" ^ sha_1 ^ ")") let maintainer = "jahier@imag.fr" diff --git a/src/main.ml b/src/main.ml index 32dbfb8e88367bdbefa7d75cef9fe99f9c9468c5..1fefa6b832bf6921809749f8424bbdf7f91a1767 100644 --- a/src/main.ml +++ b/src/main.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 13/12/2013 (at 14:13) by Erwan Jahier> *) +(* Time-stamp: <modified the 19/03/2014 (at 09:28) by Erwan Jahier> *) open Verbose open AstV6 diff --git a/src/socExec.ml b/src/socExec.ml index 18c5d5c9c2872abe0faa09392da2787ad9f89d96..ff9989a9b8c6b39e9050089715b80c2f0c65d160 100644 --- a/src/socExec.ml +++ b/src/socExec.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 20/02/2014 (at 11:21) by Erwan Jahier> *) +(* Time-stamp: <modified the 27/02/2014 (at 17:32) by Erwan Jahier> *) open Soc open Data @@ -376,10 +376,10 @@ 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; @@ -397,7 +397,7 @@ let rec (do_step_dbg : Soc.tbl -> Soc.t -> Event.ctx -> SocExecValue.ctx -> 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.Call; Event.lang = "lustre"; diff --git a/test/lus2lic.sum b/test/lus2lic.sum index 449b2170be540870cccb338a8f23d08ef664dce3..a4627124a191750de87e36806772fddc4caf3dd6 100644 --- a/test/lus2lic.sum +++ b/test/lus2lic.sum @@ -1,4 +1,4 @@ -Test Run By jahier on Mon Feb 24 16:32:03 2014 +Test Run By jahier on Tue Mar 25 14:28:07 2014 Native configuration is i686-pc-linux-gnu === lus2lic tests === @@ -262,7 +262,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 +397,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,11 +1024,11 @@ XPASS: Test bad programs (semantics): lus2lic {-o /tmp/bug.lic should_fail/seman === lus2lic Summary === -# of expected passes 878 -# of unexpected failures 76 +# of expected passes 880 +# of unexpected failures 74 # of unexpected successes 21 # of expected failures 37 -testcase ./lus2lic.tests/non-reg.exp completed in 102 seconds +testcase ./lus2lic.tests/non-reg.exp completed in 103 seconds testcase ./lus2lic.tests/progression.exp completed in 0 seconds -testcase ./lus2lic.tests/non-reg.exp completed in 102 seconds +testcase ./lus2lic.tests/non-reg.exp completed in 103 seconds testcase ./lus2lic.tests/progression.exp completed in 0 seconds diff --git a/test/lus2lic.time b/test/lus2lic.time index b52cbf688ab905643782c7021f59eac28290ad5e..41edbd56f2961fd71a927211b27b5b1100941847 100644 --- a/test/lus2lic.time +++ b/test/lus2lic.time @@ -1,2 +1,2 @@ -testcase ./lus2lic.tests/non-reg.exp completed in 102 seconds +testcase ./lus2lic.tests/non-reg.exp completed in 103 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