diff --git a/src/licPrg.ml b/src/licPrg.ml index d97f703081b9cc374dd1e026339e46c93ca5725b..11122196806f65ff936633da687354153bd770db 100644 --- a/src/licPrg.ml +++ b/src/licPrg.ml @@ -209,8 +209,13 @@ let to_file (oc: out_channel) (this:t) (main_node: Ident.idref option) = if Ident.long_of_idref idref = key then raise (Print_me nexp) | None -> ( match nexp.Lic.node_key_eff, nexp.Lic.def_eff with - (* only user nodes with a body are valid ec node *) + (* only user or extern nodes with a body makes valid ec node *) | _, Lic.BodyLic _ -> raise (Print_me nexp) + | (("Lustre",_),[]), Lic.ExternLic -> () + | _, Lic.ExternLic -> + (* we need to declare all extern nodes (do we?) *) + output_string !Global.oc (LicDump.node_of_node_exp_eff nexp); + flush !Global.oc; | _ -> () ) ) diff --git a/test/lus2lic.log.ref b/test/lus2lic.log.ref index 7d23f614c2f7d5b7d3d32b62489f2072232d39f1..2493574da27bdb21dc758b8664582cc6a18cc651 100644 --- a/test/lus2lic.log.ref +++ b/test/lus2lic.log.ref @@ -1,4 +1,4 @@ -Test Run By jahier on Fri Jan 18 22:54:55 2013 +Test Run By jahier on Sat Jan 19 14:58:11 2013 Native configuration is i686-pc-linux-gnu === lus2lic tests === @@ -85,6 +85,12 @@ 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 ./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 ./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 @@ -229,6 +235,12 @@ 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 ./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 @@ -343,6 +355,12 @@ 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 ./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 ./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 @@ -595,6 +613,12 @@ 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 ./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 ./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 @@ -1392,9 +1416,7 @@ 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 -EcParse: ec file must contain one node -syntax errors... -FAIL: Try ec2c on the result: ec2c {-o /tmp/decl.c /tmp/decl.ec} +PASS: ec2c {-o /tmp/decl.c /tmp/decl.ec} 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 @@ -1474,6 +1496,17 @@ spawn ./lus2lic -o /tmp/Gyro.lic should_fail/type/Gyro.lus *** 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 +Warning. in file "/home/jahier/lus2lic/test/should_fail/type/Gyro-2.lus", line 290, col 102 to 102, token ',': +---> separator mismatch, ';' expected +Warning. in file "/home/jahier/lus2lic/test/should_fail/type/Gyro-2.lus", line 292, col 138 to 138, token ',': +---> separator mismatch, ';' expected +Warning. in file "/home/jahier/lus2lic/test/should_fail/type/Gyro-2.lus", line 325, col 55 to 55, token ',': +---> separator mismatch, ';' expected +*** Error in file "/home/jahier/lus2lic/test/should_fail/type/Gyro-2.lus", line 335, col 30 to 36, token 'map_red': +*** Bad number of (static) arguments: 0 expected, and 2 provided. + +XFAIL: Test bad programs (type): lus2lic {-o /tmp/Gyro-2.lic should_fail/type/Gyro-2.lus} spawn ./lus2lic -o /tmp/parametric_node4.lic should_fail/type/parametric_node4.lus *** Error in file "/home/jahier/lus2lic/test/should_fail/type/parametric_node4.lus", line 4, col 17 to 17, token 'n': *** can't eval type: bad array size, int expected but get real @@ -1581,11 +1614,39 @@ spawn ./lus2lic -o /tmp/x.lic should_fail/semantics/x.lus > const ref in file "/home/jahier/lus2lic/test/should_fail/semantics/x.lus", line 6, col 11 to 11, 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 +*** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/t.lus", line 31, col 7 to 7, token 'A': +*** bad constant declaration, ident already linked at line:2, col:7 to 7 + +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 +*** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/parametric_node4.lus", line 4, col 17 to 17, 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 *** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/const2.lus", line 4, col 18 to 22, 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 +*** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/sargs.lus", line 7, col 10 to 10, token '+': +*** type error: +*** type 'real * int' was provided whereas +*** type 'anynum * anynum' was expected +*** +*** 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 +*** Error in file "/home/jahier/lus2lic/test/should_fail/semantics/patrick.lus", line 2, col 6 to 12, token 'patrick': +*** +*** "x" (local x:int on base(x,0)) is not defined. +*** Defined variables are: + - "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 42 to 43, token 'c4': *** bad field declaration, ident already linked at line:19, col:10 to 11 @@ -1596,7 +1657,7 @@ spawn ./lus2lic -o /tmp/m.lic should_fail/semantics/m.lus *** 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 141 seconds +testcase ./lus2lic.tests/non-reg.exp completed in 155 seconds Running ./lus2lic.tests/progression.exp ... spawn ./lus2lic -o /tmp/when_enum.out should_work/broken/when_enum.lus *** Error in file "/home/jahier/lus2lic/test/should_work/broken/when_enum.lus", line 10, col 12 to 15, token 'toto': @@ -1610,40 +1671,6 @@ FAIL: without any option: ./lus2lic { -o /tmp/when_enum.out should_work/broke spawn ./lus2lic -ec -o /tmp/when_enum.ec should_work/broken/when_enum.lus Error. *** Cannot generate V4 style Lustre for programs with enumerated clocks (yet), sorry. FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/when_enum.ec should_work/broken/when_enum.lus} -spawn ./lus2lic -o /tmp/parametric_node.out should_work/broken/parametric_node.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/parametric_node.lus", line 4, col 17 to 17, token 'n': -*** can't eval type: bad array size, int expected but get real - -FAIL: without any option: ./lus2lic { -o /tmp/parametric_node.out should_work/broken/parametric_node.lus} -spawn ./lus2lic -ec -o /tmp/parametric_node.ec should_work/broken/parametric_node.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/parametric_node.lus", line 4, col 17 to 17, token 'n': -*** can't eval type: bad array size, int expected but get real - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/parametric_node.ec should_work/broken/parametric_node.lus} -spawn ./lus2lic -o /tmp/bad_call02.out should_work/broken/bad_call02.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/bad_call02.lus", line 6, col 4 to 4, token '=': -*** -*** clock error: The two following clocks are not unifiable: -*** on base -*** on c on base - - -FAIL: without any option: ./lus2lic { -o /tmp/bad_call02.out should_work/broken/bad_call02.lus} -spawn ./lus2lic -ec -o /tmp/bad_call02.ec should_work/broken/bad_call02.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/bad_call02.lus", line 6, col 4 to 4, token '=': -*** -*** clock error: The two following clocks are not unifiable: -*** on base -*** on c on base - - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/bad_call02.ec should_work/broken/bad_call02.lus} -spawn ./lus2lic -o /tmp/packageTableau.out should_work/broken/packageTableau.lus -Error. No package has been provided -FAIL: without any option: ./lus2lic { -o /tmp/packageTableau.out should_work/broken/packageTableau.lus} -spawn ./lus2lic -ec -o /tmp/packageTableau.ec should_work/broken/packageTableau.lus -Error. No package has been provided -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/packageTableau.ec should_work/broken/packageTableau.lus} spawn ./lus2lic -o /tmp/condact2.out should_work/broken/condact2.lus *** Error in file "/home/jahier/lus2lic/test/should_work/broken/condact2.lus", line 5, col 6 to 12, token 'condact': *** type error: @@ -1658,44 +1685,6 @@ spawn ./lus2lic -ec -o /tmp/condact2.ec should_work/broken/condact2.lus *** bool can't be matched by int FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/condact2.ec should_work/broken/condact2.lus} -spawn ./lus2lic -o /tmp/const3.out should_work/broken/const3.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/const3.lus", line 2, col 17 to 17, token '/': -*** -*** can't eval constant: reals cannot be evaluated, sorry. - -FAIL: without any option: ./lus2lic { -o /tmp/const3.out should_work/broken/const3.lus} -spawn ./lus2lic -ec -o /tmp/const3.ec should_work/broken/const3.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/const3.lus", line 2, col 17 to 17, token '/': -*** -*** can't eval constant: reals cannot be evaluated, sorry. - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/const3.ec should_work/broken/const3.lus} -spawn ./lus2lic -o /tmp/not_a_constant.out should_work/broken/not_a_constant.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/not_a_constant.lus", line 10, col 23 to 24, token '--': -*** syntax error - -FAIL: without any option: ./lus2lic { -o /tmp/not_a_constant.out should_work/broken/not_a_constant.lus} -spawn ./lus2lic -ec -o /tmp/not_a_constant.ec should_work/broken/not_a_constant.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/not_a_constant.lus", line 10, col 23 to 24, token '--': -*** syntax error - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/not_a_constant.ec should_work/broken/not_a_constant.lus} -spawn ./lus2lic -o /tmp/ply02.out should_work/broken/ply02.lus -PASS: ./lus2lic { -o /tmp/ply02.out should_work/broken/ply02.lus} -spawn ./lus2lic -ec -o /tmp/ply02.ec should_work/broken/ply02.lus -PASS: ./lus2lic {-ec -o /tmp/ply02.ec should_work/broken/ply02.lus} -spawn ./lus2lic -o /tmp/bug3.out should_work/broken/bug3.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/bug3.lus", line 10, col 3 to 3, token 'x': -*** -*** Variable x is already partly defined (x[1][0].f1). - -FAIL: without any option: ./lus2lic { -o /tmp/bug3.out should_work/broken/bug3.lus} -spawn ./lus2lic -ec -o /tmp/bug3.ec should_work/broken/bug3.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/bug3.lus", line 10, col 3 to 3, token 'x': -*** -*** Variable x is already partly defined (x[1][0].f1). - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/bug3.ec should_work/broken/bug3.lus} spawn ./lus2lic -o /tmp/when_not.out should_work/broken/when_not.lus *** Error in file "/home/jahier/lus2lic/test/should_work/broken/when_not.lus", line 7, col 12 to 17, token 'clock4': *** @@ -1724,16 +1713,6 @@ spawn ./lus2lic -ec -o /tmp/old_style_and_pack.ec should_work/broken/old_style_a *** syntax error FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/old_style_and_pack.ec should_work/broken/old_style_and_pack.lus} -spawn ./lus2lic -o /tmp/inonout.out should_work/broken/inonout.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/inonout.lus", line 3, col 46 to 46, token 'c': -*** unknown variable (c) - -FAIL: without any option: ./lus2lic { -o /tmp/inonout.out should_work/broken/inonout.lus} -spawn ./lus2lic -ec -o /tmp/inonout.ec should_work/broken/inonout.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/inonout.lus", line 3, col 46 to 46, token 'c': -*** unknown variable (c) - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/inonout.ec should_work/broken/inonout.lus} spawn ./lus2lic -o /tmp/pfs.out should_work/broken/pfs.lus *** Error in file "/home/jahier/lus2lic/test/should_work/broken/pfs.lus", line 43, col 22 to 22, token '[': *** syntax error @@ -1744,10 +1723,6 @@ spawn ./lus2lic -ec -o /tmp/pfs.ec should_work/broken/pfs.lus *** syntax error FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/pfs.ec should_work/broken/pfs.lus} -spawn ./lus2lic -o /tmp/bad_call03.out should_work/broken/bad_call03.lus -PASS: ./lus2lic { -o /tmp/bad_call03.out should_work/broken/bad_call03.lus} -spawn ./lus2lic -ec -o /tmp/bad_call03.ec should_work/broken/bad_call03.lus -PASS: ./lus2lic {-ec -o /tmp/bad_call03.ec should_work/broken/bad_call03.lus} spawn ./lus2lic -o /tmp/packages.out should_work/broken/packages.lus *** Error in file "/home/jahier/lus2lic/test/should_work/broken/packages.lus", line 22, col 27 to 29, token 'int': *** syntax error @@ -1763,56 +1738,6 @@ PASS: ./lus2lic { -o /tmp/when_node.out should_work/broken/when_node.lus} spawn ./lus2lic -ec -o /tmp/when_node.ec should_work/broken/when_node.lus Error. *** Cannot generate V4 style Lustre for programs with enumerated clocks (yet), sorry. FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/when_node.ec should_work/broken/when_node.lus} -spawn ./lus2lic -o /tmp/testSilus.out should_work/broken/testSilus.lus -PASS: ./lus2lic { -o /tmp/testSilus.out should_work/broken/testSilus.lus} -spawn ./lus2lic -ec -o /tmp/testSilus.ec should_work/broken/testSilus.lus -UNRESOLVED: Time out: ./lus2lic {-ec -o /tmp/testSilus.ec should_work/broken/testSilus.lus} -spawn ./lus2lic -o /tmp/tranche.out should_work/broken/tranche.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/tranche.lus", line 7, col 6 to 6, token 'n': -*** -*** can't eval constant: -*** cannot access this extern constant value - -FAIL: without any option: ./lus2lic { -o /tmp/tranche.out should_work/broken/tranche.lus} -spawn ./lus2lic -ec -o /tmp/tranche.ec should_work/broken/tranche.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/tranche.lus", line 7, col 6 to 6, token 'n': -*** -*** can't eval constant: -*** cannot access this extern constant value - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/tranche.ec should_work/broken/tranche.lus} -spawn ./lus2lic -o /tmp/packages2.out should_work/broken/packages2.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/packages2.lus", line 5, col 8 to 8, token 'n': -*** provided node for stupid::n is not compatible with its implementation: -*** stupid::t1 <> int - -FAIL: without any option: ./lus2lic { -o /tmp/packages2.out should_work/broken/packages2.lus} -spawn ./lus2lic -ec -o /tmp/packages2.ec should_work/broken/packages2.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/packages2.lus", line 5, col 8 to 8, token 'n': -*** provided node for stupid__n is not compatible with its implementation: -*** t1 <> int - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/packages2.ec should_work/broken/packages2.lus} -spawn ./lus2lic -o /tmp/Gyro.out should_work/broken/Gyro.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/Gyro.lus", line 11, col 42 to 42, token ',': -*** syntax error - -FAIL: without any option: ./lus2lic { -o /tmp/Gyro.out should_work/broken/Gyro.lus} -spawn ./lus2lic -ec -o /tmp/Gyro.ec should_work/broken/Gyro.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/Gyro.lus", line 11, col 42 to 42, token ',': -*** syntax error - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/Gyro.ec should_work/broken/Gyro.lus} -spawn ./lus2lic -o /tmp/import2.out should_work/broken/import2.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/import2.lus", line 2, col 1 to 4, token 'node': -*** syntax error - -FAIL: without any option: ./lus2lic { -o /tmp/import2.out should_work/broken/import2.lus} -spawn ./lus2lic -ec -o /tmp/import2.ec should_work/broken/import2.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/import2.lus", line 2, col 1 to 4, token 'node': -*** syntax error - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/import2.ec should_work/broken/import2.lus} spawn ./lus2lic -o /tmp/multipar.out should_work/broken/multipar.lus *** Error in file "/home/jahier/lus2lic/test/should_work/broken/multipar.lus", line 20, col 12 to 12, token 'g': *** unknown node: g @@ -1827,86 +1752,6 @@ spawn ./lus2lic -ec -o /tmp/multipar.ec should_work/broken/multipar.lus FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/multipar.ec should_work/broken/multipar.lus} -spawn ./lus2lic -o /tmp/bad_call01.out should_work/broken/bad_call01.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/bad_call01.lus", line 3, col 13 to 16, 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_work/broken/bad_call01.lus", line 3, col 13 to 16, token 'toto' - -FAIL: without any option: ./lus2lic { -o /tmp/bad_call01.out should_work/broken/bad_call01.lus} -spawn ./lus2lic -ec -o /tmp/bad_call01.ec should_work/broken/bad_call01.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/bad_call01.lus", line 3, col 13 to 16, 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_work/broken/bad_call01.lus", line 3, col 13 to 16, token 'toto' - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/bad_call01.ec should_work/broken/bad_call01.lus} -spawn ./lus2lic -o /tmp/clock.out should_work/broken/clock.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/clock.lus", line 23, col 12 to 17, token 'clock4': -*** -*** clock error: The two following clocks are not unifiable: -*** on d on c on base -*** on u on base - - -FAIL: without any option: ./lus2lic { -o /tmp/clock.out should_work/broken/clock.lus} -spawn ./lus2lic -ec -o /tmp/clock.ec should_work/broken/clock.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/clock.lus", line 23, col 12 to 17, token 'clock4': -*** -*** clock error: The two following clocks are not unifiable: -*** on d on c on base -*** on u on base - - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/clock.ec should_work/broken/clock.lus} -spawn ./lus2lic -o /tmp/x.out should_work/broken/x.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/x.lus", line 8, col 7 to 7, token 't': -*** Recursion loop detected: -*** const ref in file "/home/jahier/lus2lic/test/should_work/broken/x.lus", line 8, col 11 to 11, token 'n' - > const ref in file "/home/jahier/lus2lic/test/should_work/broken/x.lus", line 2, col 11 to 11, token 'm' - > const ref in file "/home/jahier/lus2lic/test/should_work/broken/x.lus", line 4, col 11 to 11, token 'x' - > const ref in file "/home/jahier/lus2lic/test/should_work/broken/x.lus", line 6, col 11 to 11, token 't' - -FAIL: without any option: ./lus2lic { -o /tmp/x.out should_work/broken/x.lus} -spawn ./lus2lic -ec -o /tmp/x.ec should_work/broken/x.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/x.lus", line 8, col 7 to 7, token 't': -*** Recursion loop detected: -*** const ref in file "/home/jahier/lus2lic/test/should_work/broken/x.lus", line 8, col 11 to 11, token 'n' - > const ref in file "/home/jahier/lus2lic/test/should_work/broken/x.lus", line 2, col 11 to 11, token 'm' - > const ref in file "/home/jahier/lus2lic/test/should_work/broken/x.lus", line 4, col 11 to 11, token 'x' - > const ref in file "/home/jahier/lus2lic/test/should_work/broken/x.lus", line 6, col 11 to 11, token 't' - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/x.ec should_work/broken/x.lus} -spawn ./lus2lic -o /tmp/record.out should_work/broken/record.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/record.lus", line 7, col 29 to 29, token '{': -*** syntax error - -FAIL: without any option: ./lus2lic { -o /tmp/record.out should_work/broken/record.lus} -spawn ./lus2lic -ec -o /tmp/record.ec should_work/broken/record.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/record.lus", line 7, col 29 to 29, token '{': -*** syntax error - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/record.ec should_work/broken/record.lus} -spawn ./lus2lic -o /tmp/t.out should_work/broken/t.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/t.lus", line 31, col 7 to 7, token 'A': -*** bad constant declaration, ident already linked at line:2, col:7 to 7 - -FAIL: without any option: ./lus2lic { -o /tmp/t.out should_work/broken/t.lus} -spawn ./lus2lic -ec -o /tmp/t.ec should_work/broken/t.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/t.lus", line 31, col 7 to 7, token 'A': -*** bad constant declaration, ident already linked at line:2, col:7 to 7 - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/t.ec should_work/broken/t.lus} -spawn ./lus2lic -o /tmp/parametric_node4.out should_work/broken/parametric_node4.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/parametric_node4.lus", line 4, col 17 to 17, token 'n': -*** can't eval type: bad array size, int expected but get real - -FAIL: without any option: ./lus2lic { -o /tmp/parametric_node4.out should_work/broken/parametric_node4.lus} -spawn ./lus2lic -ec -o /tmp/parametric_node4.ec should_work/broken/parametric_node4.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/parametric_node4.lus", line 4, col 17 to 17, token 'n': -*** can't eval type: bad array size, int expected but get real - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/parametric_node4.ec should_work/broken/parametric_node4.lus} spawn ./lus2lic -o /tmp/testSystem.out should_work/broken/testSystem.lus *** Error in file "/home/jahier/lus2lic/test/should_work/broken/testSystem.lus", line 3, col 6 to 9, token 'capt': *** unknown package @@ -1917,28 +1762,8 @@ spawn ./lus2lic -ec -o /tmp/testSystem.ec should_work/broken/testSystem.lus *** unknown package FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/testSystem.ec should_work/broken/testSystem.lus} -spawn ./lus2lic -o /tmp/ts03.out should_work/broken/ts03.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/ts03.lus", line 11, col 23 to 23, token '+': -*** Bad static argument nature, a constant was expected - -FAIL: without any option: ./lus2lic { -o /tmp/ts03.out should_work/broken/ts03.lus} -spawn ./lus2lic -ec -o /tmp/ts03.ec should_work/broken/ts03.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/ts03.lus", line 11, col 23 to 23, token '+': -*** Bad static argument nature, a constant was expected - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/ts03.ec should_work/broken/ts03.lus} -spawn ./lus2lic -o /tmp/const2.out should_work/broken/const2.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/const2.lus", line 4, col 18 to 22, token 'false': -*** syntax error - -FAIL: without any option: ./lus2lic { -o /tmp/const2.out should_work/broken/const2.lus} -spawn ./lus2lic -ec -o /tmp/const2.ec should_work/broken/const2.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/const2.lus", line 4, col 18 to 22, token 'false': -*** syntax error - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/const2.ec should_work/broken/const2.lus} spawn ./lus2lic -o /tmp/car-orig.out should_work/broken/car-orig.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/car-orig.lus", line 94, col 47 to 47, token '=': +*** Error in file "/home/jahier/lus2lic/test/should_work/broken/car-orig.lus", line 95, col 41 to 41, token '=': *** type error: *** type 'bool * int' was provided whereas *** type 'any * any' was expected @@ -1947,7 +1772,7 @@ spawn ./lus2lic -o /tmp/car-orig.out should_work/broken/car-orig.lus FAIL: without any option: ./lus2lic { -o /tmp/car-orig.out should_work/broken/car-orig.lus} spawn ./lus2lic -ec -o /tmp/car-orig.ec should_work/broken/car-orig.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/car-orig.lus", line 94, col 47 to 47, token '=': +*** Error in file "/home/jahier/lus2lic/test/should_work/broken/car-orig.lus", line 95, col 41 to 41, token '=': *** type error: *** type 'bool * int' was provided whereas *** type 'any * any' was expected @@ -1955,52 +1780,6 @@ spawn ./lus2lic -ec -o /tmp/car-orig.ec should_work/broken/car-orig.lus *** bool and int are not unifiable FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/car-orig.ec should_work/broken/car-orig.lus} -spawn ./lus2lic -o /tmp/sargs.out should_work/broken/sargs.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/sargs.lus", line 7, col 10 to 10, token '+': -*** type error: -*** type 'real * int' was provided whereas -*** type 'anynum * anynum' was expected -*** -*** real and int are not unifiable - -FAIL: without any option: ./lus2lic { -o /tmp/sargs.out should_work/broken/sargs.lus} -spawn ./lus2lic -ec -o /tmp/sargs.ec should_work/broken/sargs.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/sargs.lus", line 7, col 10 to 10, token '+': -*** type error: -*** type 'real * int' was provided whereas -*** type 'anynum * anynum' was expected -*** -*** real and int are not unifiable - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/sargs.ec should_work/broken/sargs.lus} -spawn ./lus2lic -o /tmp/patrick.out should_work/broken/patrick.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/patrick.lus", line 2, col 6 to 12, token 'patrick': -*** -*** "x" (local x:int on base(x,0)) is not defined. -*** Defined variables are: - - "s" (output s:int on base(s,0)) - - -FAIL: without any option: ./lus2lic { -o /tmp/patrick.out should_work/broken/patrick.lus} -spawn ./lus2lic -ec -o /tmp/patrick.ec should_work/broken/patrick.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/patrick.lus", line 2, col 6 to 12, token 'patrick': -*** -*** "x" (local x:int on base(x,0)) is not defined. -*** Defined variables are: - - "s" (output s:int on base(s,0)) - - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/patrick.ec should_work/broken/patrick.lus} -spawn ./lus2lic -o /tmp/const.out should_work/broken/const.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/const.lus", line 19, col 42 to 43, token 'c4': -*** bad field declaration, ident already linked at line:19, col:10 to 11 - -FAIL: without any option: ./lus2lic { -o /tmp/const.out should_work/broken/const.lus} -spawn ./lus2lic -ec -o /tmp/const.ec should_work/broken/const.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/const.lus", line 19, col 42 to 43, token 'c4': -*** bad field declaration, ident already linked at line:19, col:10 to 11 - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/const.ec should_work/broken/const.lus} spawn ./lus2lic -o /tmp/condact.out should_work/broken/condact.lus *** oops: lus2lic internal error @@ -2027,68 +1806,6 @@ spawn ./lus2lic -ec -o /tmp/cond01.ec should_work/broken/cond01.lus *** You migth want to sent a bug report to jahier@imag.fr FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/cond01.ec should_work/broken/cond01.lus} -spawn ./lus2lic -o /tmp/ts02.out should_work/broken/ts02.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/ts02.lus", line 6, col 10 to 10, token '+': -*** type error: -*** type 'real * int' was provided whereas -*** type 'anynum * anynum' was expected -*** -*** real and int are not unifiable - -FAIL: without any option: ./lus2lic { -o /tmp/ts02.out should_work/broken/ts02.lus} -spawn ./lus2lic -ec -o /tmp/ts02.ec should_work/broken/ts02.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/ts02.lus", line 6, col 10 to 10, token '+': -*** type error: -*** type 'real * int' was provided whereas -*** type 'anynum * anynum' was expected -*** -*** real and int are not unifiable - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/ts02.ec should_work/broken/ts02.lus} -spawn ./lus2lic -o /tmp/main.out should_work/broken/main.lus -PASS: ./lus2lic { -o /tmp/main.out should_work/broken/main.lus} -spawn ./lus2lic -ec -o /tmp/main.ec should_work/broken/main.lus -UNRESOLVED: Time out: ./lus2lic {-ec -o /tmp/main.ec should_work/broken/main.lus} -spawn ./lus2lic -o /tmp/m.out should_work/broken/m.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/m.lus", line 3, col 23 to 23, token ',': -*** syntax error - -FAIL: without any option: ./lus2lic { -o /tmp/m.out should_work/broken/m.lus} -spawn ./lus2lic -ec -o /tmp/m.ec should_work/broken/m.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/m.lus", line 3, col 23 to 23, token ',': -*** syntax error - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/m.ec should_work/broken/m.lus} -spawn ./lus2lic -o /tmp/bad_id.out should_work/broken/bad_id.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/bad_id.lus", line 3, col 6 to 9, token 'toto': -*** -*** Unknown ident: b - -FAIL: without any option: ./lus2lic { -o /tmp/bad_id.out should_work/broken/bad_id.lus} -spawn ./lus2lic -ec -o /tmp/bad_id.ec should_work/broken/bad_id.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/bad_id.lus", line 3, col 6 to 9, token 'toto': -*** -*** Unknown ident: b - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/bad_id.ec should_work/broken/bad_id.lus} -spawn ./lus2lic -o /tmp/car.out should_work/broken/car.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/car.lus", line 94, col 47 to 47, token '=': -*** type error: -*** type 'bool * int' was provided whereas -*** type 'any * any' was expected -*** -*** bool and int are not unifiable - -FAIL: without any option: ./lus2lic { -o /tmp/car.out should_work/broken/car.lus} -spawn ./lus2lic -ec -o /tmp/car.ec should_work/broken/car.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/car.lus", line 94, col 47 to 47, token '=': -*** type error: -*** type 'bool * int' was provided whereas -*** type 'any * any' was expected -*** -*** bool and int are not unifiable - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/car.ec should_work/broken/car.lus} spawn ./lus2lic -o /tmp/merge.out should_work/broken/merge.lus *** Error in file "/home/jahier/lus2lic/test/should_work/broken/merge.lus", line 7, col 15 to 17, token 'clk': *** syntax error @@ -2099,16 +1816,6 @@ spawn ./lus2lic -ec -o /tmp/merge.ec should_work/broken/merge.lus *** syntax error FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/merge.ec should_work/broken/merge.lus} -spawn ./lus2lic -o /tmp/clock2.out should_work/broken/clock2.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/clock2.lus", line 6, col 22 to 22, token 'a': -*** the type of a clock cannot be int - -FAIL: without any option: ./lus2lic { -o /tmp/clock2.out should_work/broken/clock2.lus} -spawn ./lus2lic -ec -o /tmp/clock2.ec should_work/broken/clock2.lus -*** Error in file "/home/jahier/lus2lic/test/should_work/broken/clock2.lus", line 6, col 22 to 22, token 'a': -*** the type of a clock cannot be int - -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/clock2.ec should_work/broken/clock2.lus} spawn ./lus2lic -o /tmp/bad_call03.lic should_fail/type/broken/bad_call03.lus XPASS: Test bad programs (type): lus2lic {-o /tmp/bad_call03.lic should_fail/type/broken/bad_call03.lus} spawn ./lus2lic -o /tmp/ts03.lic should_fail/type/broken/ts03.lus @@ -2128,13 +1835,13 @@ 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 7 seconds +testcase ./lus2lic.tests/progression.exp completed in 0 seconds === lus2lic Summary === -# of expected passes 716 -# of unexpected failures 79 +# of expected passes 723 +# of unexpected failures 24 # of unexpected successes 8 -# of expected failures 26 -# of unresolved testcases 5 -runtest completed at Fri Jan 18 22:57:23 2013 +# of expected failures 31 +# of unresolved testcases 3 +runtest completed at Sat Jan 19 15:00:46 2013 diff --git a/test/lus2lic.sum b/test/lus2lic.sum index ac71833c4b7a04957b779f82181c42e81066df64..936d3fee9634573c8fa0360d78c4e6f1bd207902 100644 --- a/test/lus2lic.sum +++ b/test/lus2lic.sum @@ -1,4 +1,4 @@ -Test Run By jahier on Fri Jan 18 22:54:55 2013 +Test Run By jahier on Sat Jan 19 14:58:11 2013 Native configuration is i686-pc-linux-gnu === lus2lic tests === @@ -45,6 +45,9 @@ PASS: ec2c {-o /tmp/mouse2.c /tmp/mouse2.ec} PASS: ./lus2lic {-o /tmp/dep.lic should_work/dep.lus} PASS: ./lus2lic {-ec -o /tmp/dep.ec should_work/dep.lus} PASS: ec2c {-o /tmp/dep.c /tmp/dep.ec} +PASS: ./lus2lic {-o /tmp/ELMU.lic should_work/ELMU.lus} +PASS: ./lus2lic {-ec -o /tmp/ELMU.ec should_work/ELMU.lus} +PASS: ec2c {-o /tmp/ELMU.c /tmp/ELMU.ec} PASS: ./lus2lic {-o /tmp/testPilote.lic should_work/testPilote.lus} PASS: ./lus2lic {-ec -o /tmp/testPilote.ec should_work/testPilote.lus} PASS: ec2c {-o /tmp/testPilote.c /tmp/testPilote.ec} @@ -117,6 +120,9 @@ PASS: ec2c {-o /tmp/t1.c /tmp/t1.ec} PASS: ./lus2lic {-o /tmp/nc9.lic should_work/nc9.lus} PASS: ./lus2lic {-ec -o /tmp/nc9.ec should_work/nc9.lus} PASS: ec2c {-o /tmp/nc9.c /tmp/nc9.ec} +PASS: ./lus2lic {-o /tmp/packageTableau.lic should_work/packageTableau.lus} +PASS: ./lus2lic {-ec -o /tmp/packageTableau.ec should_work/packageTableau.lus} +PASS: ec2c {-o /tmp/packageTableau.c /tmp/packageTableau.ec} PASS: ./lus2lic {-o /tmp/car-V2.lic should_work/car-V2.lus} PASS: ./lus2lic {-ec -o /tmp/car-V2.ec should_work/car-V2.lus} PASS: ec2c {-o /tmp/car-V2.c /tmp/car-V2.ec} @@ -174,6 +180,9 @@ PASS: ec2c {-o /tmp/matrice2.c /tmp/matrice2.ec} PASS: ./lus2lic {-o /tmp/v1.lic should_work/v1.lus} PASS: ./lus2lic {-ec -o /tmp/v1.ec should_work/v1.lus} PASS: ec2c {-o /tmp/v1.c /tmp/v1.ec} +PASS: ./lus2lic {-o /tmp/ply02.lic should_work/ply02.lus} +PASS: ./lus2lic {-ec -o /tmp/ply02.ec should_work/ply02.lus} +PASS: ec2c {-o /tmp/ply02.c /tmp/ply02.ec} PASS: ./lus2lic {-o /tmp/call04.lic should_work/call04.lus} PASS: ./lus2lic {-ec -o /tmp/call04.ec should_work/call04.lus} PASS: ec2c {-o /tmp/call04.c /tmp/call04.ec} @@ -300,6 +309,9 @@ PASS: ec2c {-o /tmp/enum.c /tmp/enum.ec} PASS: ./lus2lic {-o /tmp/param_node4.lic should_work/param_node4.lus} PASS: ./lus2lic {-ec -o /tmp/param_node4.ec should_work/param_node4.lus} PASS: ec2c {-o /tmp/param_node4.c /tmp/param_node4.ec} +PASS: ./lus2lic {-o /tmp/bad_call03.lic should_work/bad_call03.lus} +PASS: ./lus2lic {-ec -o /tmp/bad_call03.ec should_work/bad_call03.lus} +PASS: ec2c {-o /tmp/bad_call03.c /tmp/bad_call03.ec} PASS: ./lus2lic {-o /tmp/onlyroll.lic should_work/onlyroll.lus} PASS: ./lus2lic {-ec -o /tmp/onlyroll.ec should_work/onlyroll.lus} PASS: ec2c {-o /tmp/onlyroll.c /tmp/onlyroll.ec} @@ -698,7 +710,7 @@ PASS: ./lus2lic {-ec -o /tmp/clock1_2ms.ec should_work/clock1_2ms.lus} PASS: ec2c {-o /tmp/clock1_2ms.c /tmp/clock1_2ms.ec} PASS: ./lus2lic {-o /tmp/decl.lic should_work/decl.lus} PASS: ./lus2lic {-ec -o /tmp/decl.ec should_work/decl.lus} -FAIL: Try ec2c on the result: ec2c {-o /tmp/decl.c /tmp/decl.ec} +PASS: ec2c {-o /tmp/decl.c /tmp/decl.ec} PASS: ./lus2lic {-o /tmp/bred_lv4.lic should_work/bred_lv4.lus} PASS: ./lus2lic {-ec -o /tmp/bred_lv4.ec should_work/bred_lv4.lus} PASS: ec2c {-o /tmp/bred_lv4.c /tmp/bred_lv4.ec} @@ -727,6 +739,7 @@ XFAIL: Test bad programs (type): lus2lic {-o /tmp/parametric_node.lic should_fai XFAIL: Test bad programs (type): lus2lic {-o /tmp/packages.lic should_fail/type/packages.lus} XFAIL: Test bad programs (type): lus2lic {-o /tmp/packages2.lic should_fail/type/packages2.lus} XFAIL: Test bad programs (type): lus2lic {-o /tmp/Gyro.lic should_fail/type/Gyro.lus} +XFAIL: Test bad programs (type): lus2lic {-o /tmp/Gyro-2.lic should_fail/type/Gyro-2.lus} XFAIL: Test bad programs (type): lus2lic {-o /tmp/parametric_node4.lic should_fail/type/parametric_node4.lus} XFAIL: Test bad programs (type): lus2lic {-o /tmp/const2.lic should_fail/type/const2.lus} XFAIL: Test bad programs (type): lus2lic {-o /tmp/ts02.lic should_fail/type/ts02.lus} @@ -743,98 +756,40 @@ XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/tranche.lic should_fail/s XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/import2.lic should_fail/semantics/import2.lus} XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/bad_call01.lic should_fail/semantics/bad_call01.lus} XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/x.lic should_fail/semantics/x.lus} +XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/t.lic should_fail/semantics/t.lus} +XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/parametric_node4.lic should_fail/semantics/parametric_node4.lus} XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/const2.lic should_fail/semantics/const2.lus} +XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/sargs.lic should_fail/semantics/sargs.lus} +XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/patrick.lic should_fail/semantics/patrick.lus} XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/const.lic should_fail/semantics/const.lus} XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/m.lic should_fail/semantics/m.lus} Running ./lus2lic.tests/progression.exp ... FAIL: without any option: ./lus2lic { -o /tmp/when_enum.out should_work/broken/when_enum.lus} FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/when_enum.ec should_work/broken/when_enum.lus} -FAIL: without any option: ./lus2lic { -o /tmp/parametric_node.out should_work/broken/parametric_node.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/parametric_node.ec should_work/broken/parametric_node.lus} -FAIL: without any option: ./lus2lic { -o /tmp/bad_call02.out should_work/broken/bad_call02.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/bad_call02.ec should_work/broken/bad_call02.lus} -FAIL: without any option: ./lus2lic { -o /tmp/packageTableau.out should_work/broken/packageTableau.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/packageTableau.ec should_work/broken/packageTableau.lus} FAIL: without any option: ./lus2lic { -o /tmp/condact2.out should_work/broken/condact2.lus} FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/condact2.ec should_work/broken/condact2.lus} -FAIL: without any option: ./lus2lic { -o /tmp/const3.out should_work/broken/const3.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/const3.ec should_work/broken/const3.lus} -FAIL: without any option: ./lus2lic { -o /tmp/not_a_constant.out should_work/broken/not_a_constant.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/not_a_constant.ec should_work/broken/not_a_constant.lus} -PASS: ./lus2lic { -o /tmp/ply02.out should_work/broken/ply02.lus} -PASS: ./lus2lic {-ec -o /tmp/ply02.ec should_work/broken/ply02.lus} -FAIL: without any option: ./lus2lic { -o /tmp/bug3.out should_work/broken/bug3.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/bug3.ec should_work/broken/bug3.lus} FAIL: without any option: ./lus2lic { -o /tmp/when_not.out should_work/broken/when_not.lus} FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/when_not.ec should_work/broken/when_not.lus} FAIL: without any option: ./lus2lic { -o /tmp/old_style_and_pack.out should_work/broken/old_style_and_pack.lus} FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/old_style_and_pack.ec should_work/broken/old_style_and_pack.lus} -FAIL: without any option: ./lus2lic { -o /tmp/inonout.out should_work/broken/inonout.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/inonout.ec should_work/broken/inonout.lus} FAIL: without any option: ./lus2lic { -o /tmp/pfs.out should_work/broken/pfs.lus} FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/pfs.ec should_work/broken/pfs.lus} -PASS: ./lus2lic { -o /tmp/bad_call03.out should_work/broken/bad_call03.lus} -PASS: ./lus2lic {-ec -o /tmp/bad_call03.ec should_work/broken/bad_call03.lus} FAIL: without any option: ./lus2lic { -o /tmp/packages.out should_work/broken/packages.lus} FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/packages.ec should_work/broken/packages.lus} PASS: ./lus2lic { -o /tmp/when_node.out should_work/broken/when_node.lus} FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/when_node.ec should_work/broken/when_node.lus} -PASS: ./lus2lic { -o /tmp/testSilus.out should_work/broken/testSilus.lus} -UNRESOLVED: Time out: ./lus2lic {-ec -o /tmp/testSilus.ec should_work/broken/testSilus.lus} -FAIL: without any option: ./lus2lic { -o /tmp/tranche.out should_work/broken/tranche.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/tranche.ec should_work/broken/tranche.lus} -FAIL: without any option: ./lus2lic { -o /tmp/packages2.out should_work/broken/packages2.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/packages2.ec should_work/broken/packages2.lus} -FAIL: without any option: ./lus2lic { -o /tmp/Gyro.out should_work/broken/Gyro.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/Gyro.ec should_work/broken/Gyro.lus} -FAIL: without any option: ./lus2lic { -o /tmp/import2.out should_work/broken/import2.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/import2.ec should_work/broken/import2.lus} FAIL: without any option: ./lus2lic { -o /tmp/multipar.out should_work/broken/multipar.lus} FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/multipar.ec should_work/broken/multipar.lus} -FAIL: without any option: ./lus2lic { -o /tmp/bad_call01.out should_work/broken/bad_call01.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/bad_call01.ec should_work/broken/bad_call01.lus} -FAIL: without any option: ./lus2lic { -o /tmp/clock.out should_work/broken/clock.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/clock.ec should_work/broken/clock.lus} -FAIL: without any option: ./lus2lic { -o /tmp/x.out should_work/broken/x.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/x.ec should_work/broken/x.lus} -FAIL: without any option: ./lus2lic { -o /tmp/record.out should_work/broken/record.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/record.ec should_work/broken/record.lus} -FAIL: without any option: ./lus2lic { -o /tmp/t.out should_work/broken/t.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/t.ec should_work/broken/t.lus} -FAIL: without any option: ./lus2lic { -o /tmp/parametric_node4.out should_work/broken/parametric_node4.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/parametric_node4.ec should_work/broken/parametric_node4.lus} FAIL: without any option: ./lus2lic { -o /tmp/testSystem.out should_work/broken/testSystem.lus} FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/testSystem.ec should_work/broken/testSystem.lus} -FAIL: without any option: ./lus2lic { -o /tmp/ts03.out should_work/broken/ts03.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/ts03.ec should_work/broken/ts03.lus} -FAIL: without any option: ./lus2lic { -o /tmp/const2.out should_work/broken/const2.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/const2.ec should_work/broken/const2.lus} FAIL: without any option: ./lus2lic { -o /tmp/car-orig.out should_work/broken/car-orig.lus} FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/car-orig.ec should_work/broken/car-orig.lus} -FAIL: without any option: ./lus2lic { -o /tmp/sargs.out should_work/broken/sargs.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/sargs.ec should_work/broken/sargs.lus} -FAIL: without any option: ./lus2lic { -o /tmp/patrick.out should_work/broken/patrick.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/patrick.ec should_work/broken/patrick.lus} -FAIL: without any option: ./lus2lic { -o /tmp/const.out should_work/broken/const.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/const.ec should_work/broken/const.lus} FAIL: without any option: ./lus2lic { -o /tmp/condact.out should_work/broken/condact.lus} FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/condact.ec should_work/broken/condact.lus} PASS: ./lus2lic { -o /tmp/cond01.out should_work/broken/cond01.lus} FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/cond01.ec should_work/broken/cond01.lus} -FAIL: without any option: ./lus2lic { -o /tmp/ts02.out should_work/broken/ts02.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/ts02.ec should_work/broken/ts02.lus} -PASS: ./lus2lic { -o /tmp/main.out should_work/broken/main.lus} -UNRESOLVED: Time out: ./lus2lic {-ec -o /tmp/main.ec should_work/broken/main.lus} -FAIL: without any option: ./lus2lic { -o /tmp/m.out should_work/broken/m.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/m.ec should_work/broken/m.lus} -FAIL: without any option: ./lus2lic { -o /tmp/bad_id.out should_work/broken/bad_id.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/bad_id.ec should_work/broken/bad_id.lus} -FAIL: without any option: ./lus2lic { -o /tmp/car.out should_work/broken/car.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/car.ec should_work/broken/car.lus} FAIL: without any option: ./lus2lic { -o /tmp/merge.out should_work/broken/merge.lus} FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/merge.ec should_work/broken/merge.lus} -FAIL: without any option: ./lus2lic { -o /tmp/clock2.out should_work/broken/clock2.lus} -FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/clock2.ec should_work/broken/clock2.lus} XPASS: Test bad programs (type): lus2lic {-o /tmp/bad_call03.lic should_fail/type/broken/bad_call03.lus} XFAIL: Test bad programs (type): lus2lic {-o /tmp/ts03.lic should_fail/type/broken/ts03.lus} XPASS: Test bad programs (semantics): lus2lic {-o /tmp/piege.lic should_fail/semantics/broken/piege.lus} @@ -846,8 +801,8 @@ XPASS: Test bad programs (semantics): lus2lic {-o /tmp/bug.lic should_fail/seman === lus2lic Summary === -# of expected passes 716 -# of unexpected failures 79 +# of expected passes 723 +# of unexpected failures 24 # of unexpected successes 8 -# of expected failures 26 -# of unresolved testcases 5 +# of expected failures 31 +# of unresolved testcases 3 diff --git a/test/lus2lic.time b/test/lus2lic.time index e2f5b97f93db0c0248ac1b63cd07f74ff4378eab..18a682b6bab297b8863a2cc790c4ecdb51aedf38 100644 --- a/test/lus2lic.time +++ b/test/lus2lic.time @@ -1,2 +1,2 @@ -testcase ./lus2lic.tests/non-reg.exp completed in 141 seconds -testcase ./lus2lic.tests/progression.exp completed in 7 seconds +testcase ./lus2lic.tests/non-reg.exp completed in 155 seconds +testcase ./lus2lic.tests/progression.exp completed in 0 seconds diff --git a/test/should_work/broken/bug3.lus b/test/should_fail/bug3.lus similarity index 100% rename from test/should_work/broken/bug3.lus rename to test/should_fail/bug3.lus diff --git a/test/should_work/broken/car.lus b/test/should_fail/car.lus similarity index 65% rename from test/should_work/broken/car.lus rename to test/should_fail/car.lus index b49f39bf7d20e9a50f29a1da15211506900f7e63..d770bdf58cb5b35fe7c79e632328f25f97fbedbd 100644 --- a/test/should_work/broken/car.lus +++ b/test/should_fail/car.lus @@ -54,7 +54,7 @@ tel node CD(f_ir:int) returns(presence:bool) let - presence = if(f_ir>100) then 1 else 0; + presence = (f_ir>100) ; -- 1 imply there is no obstacle in front --0 imply there is a obstacle in front @@ -71,8 +71,8 @@ tel node STARTPOS(l_gap:bool;shaft_l:int) returns(start:int); let -start = 0 -> if(shaft_l = 0 and l_gap =1 ) then 0 - else if ((pre(l_gap)=0) and (shaft_l<>0)) then shaft_l +start = 0 -> if(shaft_l = 0 and l_gap ) then 0 + else if (not (pre(l_gap)) and (shaft_l<>0)) then shaft_l else pre(start); tel @@ -84,15 +84,15 @@ node PARKING_LENGHT(shaft_l,start_pos:int) returns(park_lenght:int); ------------------------------------------- node required_back1(shaft_l,start_back:int) returns(done_back1:bool); let - done_back1 = if(shaft_l -start_back = 20) then 1 else 0; + done_back1 = (shaft_l -start_back = 20); tel ---------------- node STARTBACK1_POS(gap_found:bool;shaft_l:int) returns(back1:int); let - back1 = 0 -> if(shaft_l = 0 and gap_found =1 ) then 0 - else if(pre(gap_found) =0 and shaft_l<>0 ) then shaft_l + back1 = 0 -> if(shaft_l = 0 and gap_found ) then 0 + else if(not pre(gap_found) and shaft_l<>0 ) then shaft_l else pre(back1); tel @@ -111,31 +111,31 @@ var dir1,vel1,empty_start_pos,mode,start_back_pos,start_rightturn_pos:int; block -- mode =6 : parking(bcking2) -- mode =7 :stop(buzzer off) let - left_gap = 0 -> gap1(LEFT_IR_VALUE); + left_gap = false -> gap1(LEFT_IR_VALUE); (dir1,vel1) = whiteline(RIGHT_WHITELINE_VALUE,MIDDLE_WHITELINE_VALUE,LEFT_WHITELINE_VALUE); - blocked = 0 ->CD(FRONT_IR_VALUE); + blocked = false ->CD(FRONT_IR_VALUE); empty_start_pos = 0 -> STARTPOS(left_gap,SHAFT_COUNT_LEFT); - enough_gap = 0 -> PARKING_LENGHT(SHAFT_COUNT_LEFT, empty_start_pos); + enough_gap = false -> PARKING_LENGHT(SHAFT_COUNT_LEFT, empty_start_pos)>42;-- R1: j'ai mis 42 au pif pour que ca soit typé... - start_back_pos = 0 -> if (enough_gap=1) then STARTBACK1_POS(enough_gap,SHAFT_COUNT_LEFT) else 0; - enough_back1 = 0 -> if (enough_gap=1) then required_back1(SHAFT_COUNT_LEFT, start_back_pos) else 0; + start_back_pos = 0 -> if (enough_gap) then STARTBACK1_POS(enough_gap,SHAFT_COUNT_LEFT) else 0; + enough_back1 = false -> if (enough_gap) then required_back1(SHAFT_COUNT_LEFT, start_back_pos) else false; - -- turn_r_Complete = 0 -> if(enough_back = 1) then TURN_RIGHT(REQ_RIGHT_DEGREE) else 0; - start_rightturn_pos = 0 -> if ((pre(mode)=4) and (enough_back1 =1)) then SHAFT_COUNT_LEFT else pre(start_rightturn_pos); - turn_r_Complete = 0 -> if ((pre(mode)=5) and (SHAFT_COUNT_LEFT - start_rightturn_pos >= 25)) then 1 else 0; + turn_r_Complete = false -> if(enough_back1) then TURN_RIGHT(REQ_RIGHT_DEGREE) else false; + start_rightturn_pos = 0 -> if ((pre(mode)=4) and (enough_back1)) then SHAFT_COUNT_LEFT else pre(start_rightturn_pos); + -- turn_r_Complete = false -> ((pre(mode)=5) and (SHAFT_COUNT_LEFT - start_rightturn_pos >= 25)); - mode = 1 -> if(pre(mode) = 1 and blocked = 0 and enough_gap =0 ) then 2 -- waiting mode - else if(pre(mode) = 1 and blocked = 1 and enough_gap=0) then 1 -- farward mode - else if(pre(mode) = 2 and blocked = 0 and enough_gap=0 ) then 2 -- waiting mode - else if(pre(mode) = 2 and blocked = 1 and enough_gap=0 ) then 1 -- farward mode - else if(pre(mode) =2 and enough_gap=1) then 3 -- parking mode(buzzer on) - else if(pre(mode) = 1 and enough_gap=1) then 3-- parking mode(buzzer on) + mode = 1 -> if(pre(mode) = 1 and not blocked and not enough_gap ) then 2 -- waiting mode + else if(pre(mode) = 1 and blocked and not enough_gap) then 1 -- farward mode + else if(pre(mode) = 2 and not blocked and not enough_gap ) then 2 -- waiting mode + else if(pre(mode) = 2 and blocked and not enough_gap ) then 1 -- farward mode + else if(pre(mode) =2 and enough_gap) then 3 -- parking mode(buzzer on) + else if(pre(mode) = 1 and enough_gap) then 3-- parking mode(buzzer on) else if(pre(mode) = 3) then 4 -- first back by small amount (parking back) - else if(pre(mode)=4 and enough_back1=0 ) then 4-- not enough backing - else if(pre(mode)=4 and enough_back1=1 ) then 5 -- complete backing process, goes to turn right mode - else if(pre(mode) = 5 and turn_r_Complete = 0 ) then 5-- not completed turning - else if(pre(mode) = 5 and turn_r_Complete = 1) then 6 -- after turn right , go to stop mode + else if(pre(mode)=4 and not enough_back1 ) then 4-- not enough backing + else if(pre(mode)=4 and enough_back1 ) then 5 -- complete backing process, goes to turn right mode + else if(pre(mode) = 5 and not turn_r_Complete ) then 5-- not completed turning + else if(pre(mode) = 5 and turn_r_Complete) then 6 -- after turn right , go to stop mode else 6; @@ -145,7 +145,7 @@ let (DIRECTION,VELOCITY) = if (mode =1 or mode =3) then (dir1,vel1) else if(mode =4) then (2,vel1) else if(mode = 5) then (3,vel1) else (0,0); - BUZZER = if(mode = 3 or mode =4 or mode =5) then 1 else 0 ; -- buzzer on imply that car is parking mode else off + BUZZER = (mode = 3 or mode =4 or mode =5) ; -- buzzer on imply that car is parking mode else off diff --git a/test/should_work/broken/parametric_node4.lus b/test/should_fail/semantics/parametric_node4.lus similarity index 100% rename from test/should_work/broken/parametric_node4.lus rename to test/should_fail/semantics/parametric_node4.lus diff --git a/test/should_work/broken/patrick.lus b/test/should_fail/semantics/patrick.lus similarity index 100% rename from test/should_work/broken/patrick.lus rename to test/should_fail/semantics/patrick.lus diff --git a/test/should_work/broken/sargs.lus b/test/should_fail/semantics/sargs.lus similarity index 100% rename from test/should_work/broken/sargs.lus rename to test/should_fail/semantics/sargs.lus diff --git a/test/should_work/broken/t.lus b/test/should_fail/semantics/t.lus similarity index 100% rename from test/should_work/broken/t.lus rename to test/should_fail/semantics/t.lus diff --git a/test/should_work/broken/Gyro.lus b/test/should_fail/type/Gyro-2.lus similarity index 85% rename from test/should_work/broken/Gyro.lus rename to test/should_fail/type/Gyro-2.lus index f3b8ba3948d315b25a78ac5f7316b72da0fdd7e3..4d776211629ad9b63f28e8c1bebf9e7e1caac281 100644 --- a/test/should_work/broken/Gyro.lus +++ b/test/should_fail/type/Gyro-2.lus @@ -8,11 +8,11 @@ const DELTA_TO_GOD_ROLL = 2.0; const DELTA_TO_GOD_PITCH = 2.0; const DELTA_TO_GOD_YAW = 2.0; const CROSS_CHANNEL_TOLERANCE = 1.0; -type Valid_ChannelT={local_failure : bool,local_value : real}; -type Faulty_ChannelT={valuea : real,valueb : real}; +type Valid_ChannelT={local_failure : bool;local_value : real}; +type Faulty_ChannelT={valuea : real;valueb : real}; type Faulty_Array=Faulty_ChannelT^4^3; -type CFF_Eltstruct={indx : int,indx_toChange : int,value : Valid_ChannelT}; -type CFF_struct={indx : int,indx_toChange : int,tabToFill : Valid_ChannelT^3}; +type CFF_Eltstruct={indx : int;indx_toChange : int;value : Valid_ChannelT}; +type CFF_struct={indx : int ; indx_toChange : int;tabToFill : Valid_ChannelT^3}; node countFalse(accu_in : real; elt_in : Valid_ChannelT) returns (accu_out : real); @@ -47,11 +47,6 @@ node sum(accu_in : real; elt_in : real) returns (accu_out : real); -- Body : let accu_out = (accu_in + elt_in); -tel - - -node masking(channel : Valid_ChannelT) returns (out : real); --- Assumes : -- true; -- Guarantees : -- true; @@ -103,8 +98,8 @@ tel node Voter(channels : Valid_ChannelT^4; god : real; delta_to_god : real) returns (vote : real) -%ASSUME:assumeVoter% -%GUARANTEE:guaranteeVoter%; +-- #ASSUME:assumeVoter# +-- #GUARANTEE:guaranteeVoter#; -- Assumes : -- true; -- Guarantees : @@ -126,10 +121,12 @@ node addOneChannelIter(acc_in : CFF_Eltstruct; elt_in : Valid_ChannelT) returns -- true; -- Body : let - acc_out = {indx = (acc_in.indx + 1), -indx_toChange = acc_in.indx_toChange, -value = acc_in.value}; - elt_out = if((acc_in.indx = acc_in.indx_toChange)) then acc_in.value else elt_in; + acc_out = CFF_Eltstruct { + indx = (acc_in.indx + 1); + indx_toChange = acc_in.indx_toChange; + value = acc_in.value + }; + elt_out = if((acc_in.indx = acc_in.indx_toChange)) then acc_in.value else elt_in; tel @@ -141,9 +138,13 @@ node addOneChannel(indx_toChange : int; channeltToAdd : Valid_ChannelT; tabToFil -- Body : var acc_out : CFF_Eltstruct; let - acc_out,tabToFillAfter = map_red<<addOneChannelIter;3>>({indx = 0, -indx_toChange = indx_toChange, -value = channeltToAdd},tabToFill); + acc_out,tabToFillAfter = map_red<<addOneChannelIter;3>>( + CFF_Eltstruct + {indx = 0; + indx_toChange = indx_toChange; + value = channeltToAdd + }, + tabToFill); tel @@ -154,8 +155,8 @@ node CFC_iter(structIn : CFF_struct; currentChannel : Valid_ChannelT) returns (s -- true; -- Body : let - structOut = {indx = (structIn.indx + 1), -indx_toChange = structIn.indx_toChange, + structOut = CFF_Eltstruct{indx = (structIn.indx + 1); +indx_toChange = structIn.indx_toChange; tabToFill = if((structIn.indx_toChange = structIn.indx)) then structIn.tabToFill else addOneChannel(structIn.indx, currentChannel, structIn.tabToFill)}; tel @@ -168,10 +169,10 @@ node ComputeForeignChannels(currentChannelIndx : int; allChannels : Valid_Channe -- Body : var acc_out : CFF_struct; localtabToFill : Valid_ChannelT; let - localtabToFill = {local_failure = false, + localtabToFill = Valid_ChannelT{local_failure = false; local_value = 0.0}; - acc_out = red<<CFC_iter;4>>({indx = 0, - indx_toChange = currentChannelIndx, + acc_out = red<<CFC_iter;4>>(CFF_Eltstruct{indx = 0; + indx_toChange = currentChannelIndx; tabToFill = localtabToFill^3},allChannels); foreignChannels = acc_out.tabToFill; tel @@ -272,8 +273,8 @@ node Channel(previousOutChannel : Faulty_ChannelT^4; inChannel : Faulty_ChannelT; delta : real; god : real; delta_to_god : real) returns (nextOutChannel : Faulty_ChannelT^4; outChannel : Valid_ChannelT) -%ASSUME:assumeChannel% -%GUARANTEE:guaranteeChannel%; +-- #ASSUME:assumeChannel# +-- #GUARANTEE:guaranteeChannel#; -- Assumes : -- true; -- Guarantees : @@ -281,9 +282,9 @@ returns (nextOutChannel : Faulty_ChannelT^4; outChannel : Valid_ChannelT) -- Body : var localChannel : Valid_ChannelT; let - localChannel = {local_failure = (abs((inChannel.valuea - inChannel.valueb)) > delta), + localChannel = Valid_ChannelT{local_failure = (abs((inChannel.valuea - inChannel.valueb)) > delta), local_value = if((abs((inChannel.valuea - inChannel.valueb)) > delta)) then 0.0 else ((inChannel.valuea + inChannel.valueb) / 2.0)}; - outChannel = {local_failure = (localChannel.local_failure or CrossFailDetect(nbInChannel, localChannel, localChannel^4)), + outChannel = Valid_ChannelT{local_failure = (localChannel.local_failure or CrossFailDetect(nbInChannel, localChannel, localChannel^4)), local_value = localChannel.local_value}; nextOutChannel = previousOutChannel; tel @@ -306,8 +307,8 @@ tel node EvaluateAxis(channels : Faulty_ChannelT^4; delta : real; god : real; delta_to_god : real) returns (AxisValue : real) -%ASSUME:assumeEvaluateAxis% -%GUARANTEE:guaranteeEvaluateAxis%; +-- #ASSUME:assumeEvaluateAxis# +-- #GUARANTEE:guaranteeEvaluateAxis#; -- Assumes : -- var : -- NbToFar : int((NbToFar = red<<TooFar;4>>(0,channels,god^4,delta_to_god^4)) and (NbToFar <= 1)); @@ -316,7 +317,7 @@ node EvaluateAxis(channels : Faulty_ChannelT^4; delta : real; god : real; delta_ -- Body : var resChannels : Faulty_ChannelT^4; dumbChannel : Faulty_ChannelT^4; initChannels : Valid_ChannelT^4; mapredInit : Faulty_ChannelT^4; let - initChannels = { local_failure = false, + initChannels = Valid_ChannelT{ local_failure = false, local_value = 0.0 }^4 ; diff --git a/test/should_work/broken/testSilus.lus b/test/should_work/ELMU.lus similarity index 100% rename from test/should_work/broken/testSilus.lus rename to test/should_work/ELMU.lus diff --git a/test/should_work/broken/bad_call03.lus b/test/should_work/bad_call03.lus similarity index 100% rename from test/should_work/broken/bad_call03.lus rename to test/should_work/bad_call03.lus diff --git a/test/should_work/broken/bad_call01.lus b/test/should_work/broken/bad_call01.lus deleted file mode 100644 index 76ad16b14a1f66d125d6228cebb105ac574de02e..0000000000000000000000000000000000000000 --- a/test/should_work/broken/bad_call01.lus +++ /dev/null @@ -1,9 +0,0 @@ - -node toto = titi; -node titi = toto; - -node bad_call01(x,y : bool) returns (z : bool); -let - z = toto(x,y); -tel - diff --git a/test/should_work/broken/bad_call02.lus b/test/should_work/broken/bad_call02.lus deleted file mode 100644 index b92dab22c9aa92616790f87eac8a2e3697381c08..0000000000000000000000000000000000000000 --- a/test/should_work/broken/bad_call02.lus +++ /dev/null @@ -1,7 +0,0 @@ - --- clock checking of predefined ops - -node bad_call02(a:int; c:bool) returns (x : int); -let - x = a when c; -tel diff --git a/test/should_work/broken/bad_id.lus b/test/should_work/broken/bad_id.lus deleted file mode 100644 index e8a54da15012e54ebd85a396bf7fa014241ff616..0000000000000000000000000000000000000000 --- a/test/should_work/broken/bad_id.lus +++ /dev/null @@ -1,7 +0,0 @@ - - -node toto(c: bool; x: int) returns (y: int when b); -let - - y = 1+1+(x when c); -tel \ No newline at end of file diff --git a/test/should_work/broken/car-orig.lus b/test/should_work/broken/car-orig.lus index b49f39bf7d20e9a50f29a1da15211506900f7e63..0edd7b4dc48d05f1f6b7c3fdfd9424c1053db570 100644 --- a/test/should_work/broken/car-orig.lus +++ b/test/should_work/broken/car-orig.lus @@ -91,7 +91,7 @@ node required_back1(shaft_l,start_back:int) returns(done_back1:bool); ---------------- node STARTBACK1_POS(gap_found:bool;shaft_l:int) returns(back1:int); let - back1 = 0 -> if(shaft_l = 0 and gap_found =1 ) then 0 + back1 = 0 -> if(shaft_l = 0 and gap_found ) then 0 else if(pre(gap_found) =0 and shaft_l<>0 ) then shaft_l else pre(back1); tel diff --git a/test/should_work/broken/clock.lus b/test/should_work/broken/clock.lus deleted file mode 100644 index d6ee72f46b2b04aa488947c95d5ccd2b41c79b2e..0000000000000000000000000000000000000000 --- a/test/should_work/broken/clock.lus +++ /dev/null @@ -1,24 +0,0 @@ - --- Entree sur entree: ok -extern node clock2(u: bool; v: bool when u) returns (y: bool ); - --- Sortie sur sortie: ok -extern node clock3(u: bool) returns (x: bool; y: bool when x); - - --- Entree sur entree et sortie sur sortie: ok -extern node clock4(u: bool; v: bool when u) returns (x: bool; y: bool when x); - --- Noeud principal. -node clock(a: bool; b: bool) returns (c: bool; d: bool when c); -var - z: bool; - x: bool when z; - y: bool when x; -let - -- c = clock2(a, (b or b) when a) or (true->a); - -- d = clock2(a, b when a) when c; - y = clock2(a, b when a) when x; -- ok - (z, x) = clock3(z);-- ok - (c, d) = clock4(a, b when d); -- a la place de clock4(a, b when c) -tel diff --git a/test/should_work/broken/clock2.lus b/test/should_work/broken/clock2.lus deleted file mode 100644 index d2c6fabcd3c929604ac548bbf4a99f5e93d56c45..0000000000000000000000000000000000000000 --- a/test/should_work/broken/clock2.lus +++ /dev/null @@ -1,8 +0,0 @@ - - -node clock(a: int; b: int) returns (c: int when a); - -let - c = 1 + 1 + b when a;-- should fail since a cannot be of type int! - -tel diff --git a/test/should_work/broken/cond01.lus b/test/should_work/broken/cond01.lus index f2865250592b9dc3fbb8dacc0cf32c7ae0ad6f12..81e2ba3d6737b9c7ffa5ef2e9e856a9f60a63334 100644 --- a/test/should_work/broken/cond01.lus +++ b/test/should_work/broken/cond01.lus @@ -1,4 +1,5 @@ + node main(c: bool; x,y:int) returns (o: int); let o = condact<<+,0>>(c,x,y); diff --git a/test/should_work/broken/const.lus b/test/should_work/broken/const.lus deleted file mode 100644 index 6cec3e1ad18289ae392bde960db23e5387ed55a5..0000000000000000000000000000000000000000 --- a/test/should_work/broken/const.lus +++ /dev/null @@ -1,46 +0,0 @@ -type - t1; t2; t3; - h = int; - h1 = int; - h2 = int; - h3 = int; - t11 = t1^2; - t22 = t2^2; - t33 = int^c4; - arr = int^c4; - arr2 = int^c4; - arr3 = arr; - arr4 = arr; - t4 = b^4; - t41 = t4; - t42 = t4; - t43 = t41; - t5 = {c1: int; c2: bool^5; c3: t3^3; c4: t3^3}; - t55 = {c4: bool; c2: bool^5; c3: t3^3; c4: t3^3}; - t56 = t5; - t6 = t1^4; - t65 = t1^4; - t7 = t8; - t8 = t9; - t9 = int; - a = t4^(2+3); - b = t6; - e = t1; - e1 = e; - couleur = enum{bleu, vert, rouge}; - flag = {c1: couleur; c2: couleur; c3: couleur}; - structure = {c1: int; c2: real; c3: bool}; - -const - c1, c2, c3: int; - ext: int; - c4: int = 5+2+3+4; - c5 = true; - c6 = ext; - c7 = bleu; - c8 = c5 or c5; - --c8 = c4*3+5; - c9 = c4+3=7; - c10 = not(c5 and c9); - -node node1(a: int) returns (a: int); diff --git a/test/should_work/broken/const2.lus b/test/should_work/broken/const2.lus deleted file mode 100644 index 203ff878962de71e49286bbb4b2fbb05fc65c4f5..0000000000000000000000000000000000000000 --- a/test/should_work/broken/const2.lus +++ /dev/null @@ -1,19 +0,0 @@ -const --- Ylv6: const2 Error : at `->' in file `const2.lus' (l.15/c.24) : not allowed in constant expression. - - e3 = true when false -> true; - M = 3; - P= 2; - N = M*P; - O= M; - c10=12; - -type - t1 = int; - t2 = t1^M; - t3 = t2^N; - t4 = t3^O; - t5 = t4^P; - t6 = t5^c10; - t7 = t6^O; - t8 = t7^O; \ No newline at end of file diff --git a/test/should_work/broken/const3.lus b/test/should_work/broken/const3.lus deleted file mode 100644 index 5aeffbe53aeffb7efed1d7d88f9bbcf3f7ec66b9..0000000000000000000000000000000000000000 --- a/test/should_work/broken/const3.lus +++ /dev/null @@ -1,2 +0,0 @@ -const pi = 3.1416; -const right = pi/2.; diff --git a/test/should_work/broken/import2.lus b/test/should_work/broken/import2.lus deleted file mode 100644 index 7426551952ca4761e15d7124fdf107704005c067..0000000000000000000000000000000000000000 --- a/test/should_work/broken/import2.lus +++ /dev/null @@ -1,6 +0,0 @@ -node imp(x,y: int) returns (z,t: int); -node import2(a: int) returns (d: int); -var c: int; -let - (c,d) = imp(a,c); -tel diff --git a/test/should_work/broken/inonout.lus b/test/should_work/broken/inonout.lus deleted file mode 100644 index 3f804ea6f8f4b630f512fe62e45d5e6134053d4c..0000000000000000000000000000000000000000 --- a/test/should_work/broken/inonout.lus +++ /dev/null @@ -1,3 +0,0 @@ - --- we cannot have an input clocked on an output -extern node inOnOut( a : bool; b : bool when c ) returns (c : bool); diff --git a/test/should_work/broken/inonout.lus.out b/test/should_work/broken/inonout.lus.out deleted file mode 100644 index 7285bc607ce0bbc5d6d0d5d43895582367bfa5f3..0000000000000000000000000000000000000000 --- a/test/should_work/broken/inonout.lus.out +++ /dev/null @@ -1,5 +0,0 @@ --- This file was generated by lus2lic version (no.280. --- /home/jahier/dd/lus2lic/src/lus2lic -o --- should_work/broken/inonout.lus.out should_work/broken/inonout.lus --- on peouvou the 9/1/2013 at 9:45:27 - diff --git a/test/should_work/broken/inonout.out b/test/should_work/broken/inonout.out deleted file mode 100644 index 2beab6ec6d2b2e8abcd2ddbd040b88d1fd63c9f9..0000000000000000000000000000000000000000 --- a/test/should_work/broken/inonout.out +++ /dev/null @@ -1,5 +0,0 @@ --- This file was generated by lus2lic version (no.280. --- /home/jahier/dd/lus2lic/src/lus2lic -o should_work/broken/inonout.out --- should_work/broken/inonout.lus --- on peouvou the 9/1/2013 at 9:59:57 - diff --git a/test/should_work/broken/m.lus b/test/should_work/broken/m.lus deleted file mode 100644 index 15a2b90761d62b63d9207b4dae6ad259917d19a9..0000000000000000000000000000000000000000 --- a/test/should_work/broken/m.lus +++ /dev/null @@ -1,29 +0,0 @@ - -type - tube = {in:int, out:int} ; - toto = {titi:tube, tutu:bool} ; - - -node m(i:int) returns (f:int^2); -var - yo : int^4^5^6; -let - --f = mcmorel(i); - f[0] = yo[0][1][2]; - f[1] = yo[5][4][3]; - --yo = 42^4^5^6; - yo = i^4^5^6 ; - yo[5][4][3] = i ; - -tel - -node mcmorel(i:int) returns (t:int^2); -var - yo : toto; -let - -- yo.titi = tube{in=i, out=i+1} ; - -- yo.tutu = true ; - t[0] = [yo.titi.in, yo.titi.out] -> [pre(t[0])+1,pre(t[1])] ; -tel - - diff --git a/test/should_work/broken/main.lus b/test/should_work/broken/main.lus deleted file mode 100644 index 0c1e7e159afa1f17cffd945cb3f1fb7c4e6e322b..0000000000000000000000000000000000000000 --- a/test/should_work/broken/main.lus +++ /dev/null @@ -1,42 +0,0 @@ -include "packageTableau.lus" - -package util - provides node igt(i, j: int) returns (res: bool); - body -node igt(i, j: int) returns (res: bool); -let - res = i > j; -tel -end ---package intArray is packageTableau(int, 10, equals, gt); ---package intArray is packageTableau(int, 10, Lustre::eq, Lustre::igt); ---package intArray is packageTableau(int, 10, =, Lustre::igt); - -package intArray = - packageTableau( - elementType=int, - size=10, - _isEqualTo_=Lustre::eq, - _isGreaterThan_=util::igt); - -package main - uses intArray;--, intArray2, intArray3; - provides node main(a : int^10) returns (tri : int^10; pos_min, min, pos_max, max: int); - -body - -node main(a : int^10) returns ( tri : int^10; - pos_min, - min, - pos_max, - max: int); -let - min = intArray::getMinimumIn_(a); - pos_min = intArray::getRank_ofMinimumIn_(a); - max = intArray::getMaximumIn_(a); - pos_max = intArray::getRank_ofMaximumIn_(a); - tri = intArray::sort_(a); -tel - - -end diff --git a/test/should_work/broken/not_a_constant.lus b/test/should_work/broken/not_a_constant.lus deleted file mode 100644 index cf27b264a7d319e959d3d4638c72bdc76bb656de..0000000000000000000000000000000000000000 --- a/test/should_work/broken/not_a_constant.lus +++ /dev/null @@ -1,13 +0,0 @@ -model Int - needs - const n:int; - provides - type Int; - const zero: Int; - -body -type Int = bool^n; -const zero = false^n; -- n is not a constant - - - diff --git a/test/should_work/broken/old_style_and_pack.lus b/test/should_work/broken/old_style_and_pack.lus index 1b070373375b3ea9e1193275050712482ddeb840..89e3734180cbda0c513441231a64363aacc0e61c 100644 --- a/test/should_work/broken/old_style_and_pack.lus +++ b/test/should_work/broken/old_style_and_pack.lus @@ -13,7 +13,7 @@ body tel end - +-- mixing v6 packages and v4 implicit package node main(x:int) returns (y:int); let y = toto: : titi(x); diff --git a/test/should_work/broken/packages2.lus b/test/should_work/broken/packages2.lus deleted file mode 100644 index 1b2a742d457815717fe72fa3f7a8f752eee9b32d..0000000000000000000000000000000000000000 --- a/test/should_work/broken/packages2.lus +++ /dev/null @@ -1,15 +0,0 @@ -package stupid - provides - type t1; - type t2; - node n(x: t1; y: t2) returns (z: t2); - -body - type t1; - type t2; - node n(x: int; y: t2) returns (z: t2); - let - z=y; - tel - -end diff --git a/test/should_work/broken/parametric_node.lus b/test/should_work/broken/parametric_node.lus deleted file mode 100644 index 7d1daacd641a0cdeb5ca07a923ac9d49eedc25e5..0000000000000000000000000000000000000000 --- a/test/should_work/broken/parametric_node.lus +++ /dev/null @@ -1,12 +0,0 @@ - - -node toto_n<<node f(a, b: int) returns (x: int); const n : int>>(a: int) -returns (x: int^n); -var v : int; -let - v = f(a, 1); - x = v ^ n; -tel - -node toto_3 = toto_n<<Lustre::iplus, 3.0>>; --- ^^^^ bad type here... diff --git a/test/should_work/broken/record.lus b/test/should_work/broken/record.lus deleted file mode 100644 index 8fb993765f2a3d0a7da86442d42aeb9f64c59abc..0000000000000000000000000000000000000000 --- a/test/should_work/broken/record.lus +++ /dev/null @@ -1,12 +0,0 @@ -type - - struct1 = {a: int; b: real}; - struct2 = {a: real; b: struct1}; - - -- does not work in ocaml either... - struct2bis = {a: real; b: {a: real; b:real}}; - -node record(a: struct2) returns (b: struct); - let - b = {a = a.x; b = { a = a.b.y; b = a.b.z } }; - tel diff --git a/test/should_work/broken/tranche.lus b/test/should_work/broken/tranche.lus deleted file mode 100644 index 519482500cd13d6a669158f332afaec1c1109484..0000000000000000000000000000000000000000 --- a/test/should_work/broken/tranche.lus +++ /dev/null @@ -1,33 +0,0 @@ -type - t = bool^3^4; - t2 = bool^7^8^9^10; - -const - n : t; - m = n[3][2]; - - s : t2; - o = s[9][8][7][6]; - -node tranche(a: bool^3) returns (res: bool); -var - x: bool^3; - y: real; - z: t; - x1 : bool^3^2; - -let - y = 1.; - x[if(1>2) then -2 else 0] = true; - x[1..2] = a[1..2]; - res = true or false; --if x[1] then x[0] else x[2]; - z[0][0] = true; - z[0][1] = true; - z[0][2] = true; - z[1][0] = true; - z[1][1..2] = x[1..2]; - z[2..3]= x1; - x1[0] = x; - x1[1] = x; - --x[0] = x1[0][0]; -tel diff --git a/test/should_work/broken/ts02.lus b/test/should_work/broken/ts02.lus deleted file mode 100644 index d13971cc86c9f0f0ae6874973c7eb4626a9f54b0..0000000000000000000000000000000000000000 --- a/test/should_work/broken/ts02.lus +++ /dev/null @@ -1,10 +0,0 @@ - --- KO, mais pas où il faudrait ... - -node ma_macro<<const i : int>>(x: int) returns (y: int); -let - y = i + x; -tel - --- n.b. ko à l'utilisation uniquement -node main = ma_macro<<32.0>>; diff --git a/test/should_work/broken/ts03.lus b/test/should_work/broken/ts03.lus deleted file mode 100644 index f5ab1442cc6ef52826f801ef8276102f2bf2c735..0000000000000000000000000000000000000000 --- a/test/should_work/broken/ts03.lus +++ /dev/null @@ -1,11 +0,0 @@ - --- KO - -node ma_macro<<const i : int>>(x: int) returns (y: int); -let - y = i + x; -tel - ---*** Bad static argument nature, a constant was expected - -node main = ma_macro<<+>>; diff --git a/test/should_work/broken/x.lus b/test/should_work/broken/x.lus deleted file mode 100644 index 6775086d9a4bcc8edfc74b8afe73514677da3fe9..0000000000000000000000000000000000000000 --- a/test/should_work/broken/x.lus +++ /dev/null @@ -1,10 +0,0 @@ --- there is a loop !!! -const n = m * 2; - -const m = x + y; - -const x = t + 1; - -const t = n mod 2; - -const y = 42; diff --git a/test/should_work/decl.lus b/test/should_work/decl.lus index 4d317c658703b0d93bd42fc4e16c8731079a797b..c02fdaf02ee33faaf3df47a24fe56950d0468453 100644 --- a/test/should_work/decl.lus +++ b/test/should_work/decl.lus @@ -27,6 +27,10 @@ extern node decl(a1, b1, c1: t1) returns (d1: bool); extern node n2(a1, b1, c1: t4; d1: bool) returns (e1: t5); extern function f1(a1, b1, c1: couleur) returns (d1: bool^h) ; +node dummy(y: bool) returns(x: bool); +let + x=true; +tel ------------------------------------ -- quelques erreurs de declaration : ------------------------------------ diff --git a/test/should_work/broken/packageTableau.lus b/test/should_work/packageTableau.lus similarity index 93% rename from test/should_work/broken/packageTableau.lus rename to test/should_work/packageTableau.lus index 56f6a143dc8ca3e97ad13669a40af63a048d0d51..d51d779793448de7a42f8cac773f2e51c035ca4e 100644 --- a/test/should_work/broken/packageTableau.lus +++ b/test/should_work/packageTableau.lus @@ -367,6 +367,46 @@ let tel end +package util + provides node igt(i, j: int) returns (res: bool); + body +node igt(i, j: int) returns (res: bool); +let + res = i > j; +tel +end +--package intArray is packageTableau(int, 10, equals, gt); +--package intArray is packageTableau(int, 10, Lustre::eq, Lustre::igt); +--package intArray is packageTableau(int, 10, =, Lustre::igt); + +package intArray = + packageTableau( + elementType=int, + size=10, + _isEqualTo_=Lustre::eq, + _isGreaterThan_=util::igt); + +package main + uses intArray;--, intArray2, intArray3; + provides node main(a : int^10) returns (tri : int^10; pos_min, min, pos_max, max: int); + +body + +node main(a : int^10) returns ( tri : int^10; + pos_min, + min, + pos_max, + max: int); +let + min = intArray::getMinimumIn_(a); + pos_min = intArray::getRank_ofMinimumIn_(a); + max = intArray::getMaximumIn_(a); + pos_max = intArray::getRank_ofMaximumIn_(a); + tri = intArray::sort_(a); +tel + + +end diff --git a/test/should_work/broken/ply02.lus b/test/should_work/ply02.lus similarity index 100% rename from test/should_work/broken/ply02.lus rename to test/should_work/ply02.lus diff --git a/todo.org b/todo.org index 3780f2092554a59b34ba1250513cf1ca61316356..ea649c36aa25711e08162df34f29d4fad5ea59db 100644 --- a/todo.org +++ b/todo.org @@ -99,6 +99,53 @@ le message serait meilleur s'il indiquait la ligne 17 où l'erreur est effectué file:src/astInstanciateModel.ml file:test/should_fail/type/parametric_node.lus +** TODO pb d'instance de package ??? + - State "TODO" from "" [2013-01-19 Sat 09:43] + ./lus2lic { -o /tmp/packages.out should_work/broken/packages.lus} +spawn ./lus2lic -ec -o /tmp/packages.ec should_work/broken/packages.lus + Error in file "/home/jahier/lus2lic/test/should_work/broken/packages.lus", line 22, col 27 to 29, token 'int': + syntax error + +file:test/should_work/broken/packages.lus::22 + +** TODO instanciation de noeuds ne marche pas ? + - State "TODO" from "" [2013-01-19 Sat 10:02] +./lus2lic -o /tmp/multipar.out should_work/broken/multipar.lus +file:test/should_work/broken/multipar.lus::20 + Error in file "/home/jahier/lus2lic/test/should_work/broken/multipar.lus", line 20, col 12 to 12, token 'g': + unknown node: g + known nodes are: sil, bok, gup, lis + +FAIL: without any option: ./lus2lic { -o /tmp/multipar.out should_work/broken/multipar.lus} + +** TODO autoriser les , dans les structures + - State "TODO" from "" [2013-01-19 Sat 09:56] +./lus2lic -o /tmp/Gyro.out should_work/broken/Gyro.lus +*** Error in file "/home/jahier/lus2lic/test/should_work/broken/Gyro.lus", line 11, col 42 to 42, token ',': + +** TODO compat pb with array type def + - State "TODO" from "" [2013-01-19 Sat 09:40] +file:test/should_work/broken/pfs.lus::43 +./lus2lic -ec -o /tmp/pfs.ec should_work/broken/pfs.lus + Error in file "/home/jahier/lus2lic/test/should_work/broken/pfs.lus", line 43, col 22 to 22, token '[': + syntax error + +** TODO mixing v6 packages and v4 implicit package does not work + - State "TODO" from "" [2013-01-19 Sat 09:36] + ./lus2lic -o /tmp/old_style_and_pack.out should_work/broken/old_style_and_pack.lus +Error in file "/home/jahier/lus2lic/test/should_work/broken/old_style_and_pack.lus", line 17, col 1 to 4, token 'node': + +file:test/should_work/broken/old_style_and_pack.lus +** TODO Merge is not working + +** TODO Condact is not working + file:test/should_work/broken/cond01.lus + - State "TODO" from "" [2013-01-18 Fri 23:18] + ./lus2lic -ec -o /tmp/cond01.ec should_work/broken/cond01.lus + + oops: lus2lic internal error + File "objlinux/l2lExpandMetaOp.ml", line 310, column 4 + when compiling lustre program should_work/broken/cond01.lus * Pas dur @@ -117,6 +164,10 @@ Pascal a introduit un mecanisme qui shunte LicName -> en discuter avec lui. * A faire +** TODO try to compile the C code resulting from ec2c at some point + - State "TODO" from "" [2013-01-18 Fri 23:12] +in particuler, are nodes using extern nodes generated properly? + ** TODO fix unresolved tests (timeout -> performance bugs) - State "TODO" from "" [2013-01-11 Fri 11:04]