diff --git a/src/main.ml b/src/main.ml index ae05589b972a4aae72e92517b82eb129ce5a8a5e..a7392a8d38bb72ee775601e4945a2dd540323fba 100644 --- a/src/main.ml +++ b/src/main.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 10/06/2014 (at 10:46) by Erwan Jahier> *) +(* Time-stamp: <modified the 19/08/2014 (at 15:36) by Erwan Jahier> *) open Verbose open AstV6 @@ -145,7 +145,7 @@ let (gen_autotest_files : LicPrg.t -> Ident.idref option -> Lv6MainArgs.t -> uni fun (x,t) (y,_) -> let rec aux x y t = match t with - | Data.Real -> [x^"-"^y^" < 0.1 and "^ y^"-"^x^" < 0.1 "] + | Data.Real -> ["r_equal("^x^","^y^")"] | Data.Array(t,n) -> let res = ref [] in for i = 0 to n-1 do @@ -164,6 +164,18 @@ let (gen_autotest_files : LicPrg.t -> Ident.idref option -> Lv6MainArgs.t -> uni (List.flatten (List.map2 var_to_equals locals outvars)))^");\ntel;\n" with _ -> assert false in + let prg = prg ^ " +node r_abs(x:real) returns (res:real); +let + res = if x > 0.0 then x else -x; +tel + +const seuil = 0.0001; +node r_equal(x,y:real) returns (res:bool); +let + res = if r_abs(x)>1.0 then r_abs(1.0-(y/x)) < seuil else r_abs(x-y) < seuil; +tel +" in Lv6util.dump_entete oc; output_string oc prg; flush oc; diff --git a/src/soc2c.ml b/src/soc2c.ml index 7cf68801aac73188adc4e43358ec9abd727c35b1..34b7e28259fb868fe1550fe487d5ca056919945b 100644 --- a/src/soc2c.ml +++ b/src/soc2c.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 14/08/2014 (at 17:22) by Erwan Jahier> *) +(* Time-stamp: <modified the 19/08/2014 (at 15:36) by Erwan Jahier> *) (* let put (os: out_channel) (fmt:('a, unit, string, unit) format4) : 'a = *) @@ -193,7 +193,7 @@ let (type_to_format_string : Data.t -> string) = function | Bool -> "%d" | Int -> "%d" - | Real-> "%g" + | Real-> "%f" | Extern s -> "%s" | Enum (s, sl) -> "%d" | Struct (sid,_) -> "%s" diff --git a/test/lus2lic.sum b/test/lus2lic.sum index 75effb48e62a5fac32e2c503c7ba622fc0dd554d..ac7d16c41e123b7b9040758bb3b541ec07a707b1 100644 --- a/test/lus2lic.sum +++ b/test/lus2lic.sum @@ -1,4 +1,4 @@ -Test Run By jahier on Thu Aug 14 17:23:15 2014 +Test Run By jahier on Tue Aug 19 15:38:55 2014 Native configuration is i686-pc-linux-gnu === lus2lic tests === @@ -557,10 +557,10 @@ PASS: ./lus2lic {-2c should_work/packs.lus -n packs} PASS: ./lus2lic {-o ./tmp/sincos.lic should_work/sincos.lus} PASS: ./lus2lic {-ec -o ./tmp/sincos.ec should_work/sincos.lus} PASS: ./myec2c {-o ./tmp/sincos.c ./tmp/sincos.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/sincos.lus +PASS: ../utils/test_lus2lic_no_node should_work/sincos.lus PASS: ./lus2lic {-2c should_work/sincos.lus -n sincos} PASS: gcc sincos_sincos.c sincos_sincos_loop.c -FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_work/sincos.lus +PASS: ../utils/compare_exec_and_2c should_work/sincos.lus PASS: ./lus2lic {-o ./tmp/newpacks.lic should_work/newpacks.lus} PASS: ./lus2lic {-ec -o ./tmp/newpacks.ec should_work/newpacks.lus} PASS: ./myec2c {-o ./tmp/newpacks.c ./tmp/newpacks.ec} @@ -708,10 +708,10 @@ PASS: ../utils/compare_exec_and_2c should_work/mapinf.lus PASS: ./lus2lic {-o ./tmp/integrator.lic should_work/integrator.lus} PASS: ./lus2lic {-ec -o ./tmp/integrator.ec should_work/integrator.lus} PASS: ./myec2c {-o ./tmp/integrator.c ./tmp/integrator.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/integrator.lus +PASS: ../utils/test_lus2lic_no_node should_work/integrator.lus PASS: ./lus2lic {-2c should_work/integrator.lus -n integrator} PASS: gcc integrator_integrator.c integrator_integrator_loop.c -FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_work/integrator.lus +PASS: ../utils/compare_exec_and_2c should_work/integrator.lus PASS: ./lus2lic {-o ./tmp/nc4.lic should_work/nc4.lus} PASS: ./lus2lic {-ec -o ./tmp/nc4.ec should_work/nc4.lus} PASS: ./myec2c {-o ./tmp/nc4.c ./tmp/nc4.ec} @@ -1670,10 +1670,10 @@ XPASS: Test bad programs (semantics): lus2lic {-o ./tmp/bug.lic should_fail/sema === lus2lic Summary === -# of expected passes 1532 -# of unexpected failures 65 +# of expected passes 1536 +# of unexpected failures 61 # of unexpected successes 21 # of expected failures 37 # of unresolved testcases 3 -testcase ./lus2lic.tests/non-reg.exp completed in 265 seconds -testcase ./lus2lic.tests/progression.exp completed in 0 seconds +testcase ./lus2lic.tests/non-reg.exp completed in 781 seconds +testcase ./lus2lic.tests/progression.exp completed in 1 seconds diff --git a/test/lus2lic.time b/test/lus2lic.time index a307bc6f3821c230cc2b080793c4ffc1666a82c9..b34c9fc749f374675f12d4abb55f018dfa1028ef 100644 --- a/test/lus2lic.time +++ b/test/lus2lic.time @@ -1,2 +1,2 @@ -testcase ./lus2lic.tests/non-reg.exp completed in 265 seconds -testcase ./lus2lic.tests/progression.exp completed in 0 seconds +testcase ./lus2lic.tests/non-reg.exp completed in 781 seconds +testcase ./lus2lic.tests/progression.exp completed in 1 seconds diff --git a/test/should_work/sincos.lus b/test/should_work/sincos.lus index 44558b374877b0f0e1fed8242d83d3a31d6c8a8c..ed8b0d8069bc71c55dc99eedcff09272504dcb63 100644 --- a/test/should_work/sincos.lus +++ b/test/should_work/sincos.lus @@ -2,8 +2,8 @@ node sincos(omega:real) returns (sin, cos: real); var pcos,psin: real; let - pcos = 1.0 fby pre cos; - psin = 0.0 fby pre sin; + pcos = 1.0 fby cos; + psin = 0.0 fby sin; sin = omega * integrator(pcos,0.1,0.0); cos = omega * integrator(-psin,0.1,1.0); tel diff --git a/todo.org b/todo.org index f472d35d6f74a920d47d54a443ad9ac085896d37..759ff1e373f20e56be174588ed791dde0f943005 100644 --- a/todo.org +++ b/todo.org @@ -10,6 +10,45 @@ lus2lic should_work/decl.lus -n decl -ec generates incorrect ec code instead of raising an error. * lus2lic -2C +** TODO divergence -exec et -2c + - State "TODO" from "" [2014-07-11 Fri 12:02] + +grep "FAIL:" lus2lic.log | grep "exec" | grep "\-2c" | sed s/'FAIL: Try to compare lus2lic -exec and -2c:'/-/ + +1. ../utils/compare_exec_and_2c should_work/test_node_expand2.lus + -> -2110104000 est n'est pas un entier acceptable pour lutin sur les machines 32 bits... + +2. ../utils/compare_exec_and_2c should_work/test_node_expand.lus + -> idem + +3. ../utils/compare_exec_and_2c should_work/PCOND1.lus + -> File "../obj-linux/socExecValue.ml", line 243, characters 6-12: Assertion failed + +4. ../utils/compare_exec_and_2c should_work/multipar.lus + -> pb 32bits +5. ../utils/compare_exec_and_2c should_work/array_concat.lus + -> le a.out fait un segmentation fault + +** TODO Divergences -exec et ecexe + - State "TODO" from "" [2014-07-11 Fri 16:54] + + grep "FAIL:" lus2lic.log | grep "exec" | grep "ecexe" | sed s/'FAIL: Try to compare lus2lic -exec and ecexe:'/-/ + +1. ../utils/test_lus2lic_no_node should_work/Gyroscope2.lus +2. ../utils/test_lus2lic_no_node should_work/test_node_expand2.lus +3. ../utils/test_lus2lic_no_node should_work/test_node_expand.lus +4. ../utils/test_lus2lic_no_node should_work/modes3x2_v2.lus +5. ../utils/test_lus2lic_no_node should_work/filter.lus +6. ../utils/test_lus2lic_no_node should_work/PCOND1.lus +7. ../utils/test_lus2lic_no_node should_work/multipar.lus +8. ../utils/test_lus2lic_no_node should_work/activation2.lus +9. ../utils/test_lus2lic_no_node should_work/bob.lus +10. ../utils/test_lus2lic_no_node should_work/test_condact.lus +11. ../utils/test_lus2lic_no_node should_work/activation1.lus +12. ../utils/test_lus2lic_no_node should_work/Gyroscope.lus +13. ../utils/test_lus2lic_no_node should_work/cond01.lus +14. ../utils/test_lus2lic_no_node should_work/speedcontrol.lus + ** TODO lic2c : le jour ou on genere du code C, y'a peut-etre des trucs a recuperer - State "TODO" from "" [2012-12-10 Mon 14:32] chez Cedric Pasteur qui a une implementation pour optimiser la maj @@ -67,55 +106,6 @@ exemple basé sur un compteur. [...] sauf qu'en fait, a fonstion de hash renvoie toujours la meme valeur (bug) et que ca marche tres bien. Ce qui prouve bien que ca ne sert a rien cette affaire... -** TODO divergence -exec et -2c - - State "TODO" from "" [2014-07-11 Fri 12:02] - -grep "FAIL:" lus2lic.log | grep "exec" | grep "\-2c" | sed s/'FAIL: Try to compare lus2lic -exec and -2c:'/-/ - -1. ../utils/compare_exec_and_2c should_work/test_node_expand2.lus - -> -2110104000 est n'est pas un entier acceptable pour lutin sur les machines 32 bits... - -2. ../utils/compare_exec_and_2c should_work/test_node_expand.lus - -> idem - -3. ../utils/compare_exec_and_2c should_work/sincos.lus - -> une erreur en mode -exec au step 2 (nil) - -4. ../utils/compare_exec_and_2c should_work/integrator.lus - -> pb d'arrondi (1305025.02198 vs 1305025.) - -5. ../utils/compare_exec_and_2c should_work/PCOND1.lus - -> pb d'arrondi / 32bits - -6. ../utils/compare_exec_and_2c should_work/multipar.lus - -> pb d'arrondi / 32bits - -7. ../utils/compare_exec_and_2c should_work/array_concat.lus - -> le a.out fait un segmentation fault - - -** TODO Divergences -exec et ecexe - - State "TODO" from "" [2014-07-11 Fri 16:54] - - grep "FAIL:" lus2lic.log | grep "exec" | grep "ecexe" | sed s/'FAIL: Try to compare lus2lic -exec and ecexe:'/-/ - -1. ../utils/test_lus2lic_no_node should_work/Gyroscope2.lus -2. ../utils/test_lus2lic_no_node should_work/test_node_expand2.lus -3. ../utils/test_lus2lic_no_node should_work/test_node_expand.lus -4. ../utils/test_lus2lic_no_node should_work/modes3x2_v2.lus -5. ../utils/test_lus2lic_no_node should_work/filter.lus -6. ../utils/test_lus2lic_no_node should_work/sincos.lus -7. ../utils/test_lus2lic_no_node should_work/integrator.lus -8. ../utils/test_lus2lic_no_node should_work/PCOND1.lus -9. ../utils/test_lus2lic_no_node should_work/multipar.lus -10. ../utils/test_lus2lic_no_node should_work/activation2.lus -11. ../utils/test_lus2lic_no_node should_work/bob.lus -12. ../utils/test_lus2lic_no_node should_work/test_condact.lus -13. ../utils/test_lus2lic_no_node should_work/activation1.lus -14. ../utils/test_lus2lic_no_node should_work/Gyroscope.lus -15. ../utils/test_lus2lic_no_node should_work/cond01.lus -16. ../utils/test_lus2lic_no_node should_work/speedcontrol.lus - * Packages, modeles, etc. ** STARTED Il ne detecte plus les erreurs de type lors d'instanciation de noeuds - State "STARTED" from "TODO" [2013-01-28 Mon 17:02] @@ -225,6 +215,8 @@ file:~/lus2lic/utils/test_lus2lic_no_node - lus2lic -2c should_work/speedcontrol.lus -n speedcontrol * Divers +** TODO + - State "TODO" from "" [2014-08-19 Tue 15:45] ** TODO Traiter TOUS les warnings !!! - State "TODO" from "" [2014-08-13 Wed 17:33] ** TODO pb d'horloge