Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
lutin
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
1
Issues
1
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
verimag
synchrone
lutin
Commits
5ff210d0
Commit
5ff210d0
authored
Jan 24, 2019
by
erwan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
remove untested examples
parent
f0b2e7c5
Pipeline
#18235
passed with stages
in 8 minutes and 40 seconds
Changes
186
Pipelines
1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
186 changed files
with
3 additions
and
13232 deletions
+3
-13232
_oasis
_oasis
+1
-1
examples/untested/REAMDE.org
examples/untested/REAMDE.org
+0
-3
examples/untested/bug/Pannes.lut
examples/untested/bug/Pannes.lut
+0
-197
examples/untested/bug/init_by_input.lut
examples/untested/bug/init_by_input.lut
+0
-6
examples/untested/bug/loop_gauss.lut
examples/untested/bug/loop_gauss.lut
+0
-3
examples/untested/bug/macro.lut
examples/untested/bug/macro.lut
+0
-12
examples/untested/from_C/3.12.0/test1.rif.exp
examples/untested/from_C/3.12.0/test1.rif.exp
+0
-22
examples/untested/from_C/Makefile
examples/untested/from_C/Makefile
+0
-149
examples/untested/from_C/call_foo.c
examples/untested/from_C/call_foo.c
+0
-36
examples/untested/from_C/call_foo_sock.c
examples/untested/from_C/call_foo_sock.c
+0
-36
examples/untested/from_C/foo.lut
examples/untested/from_C/foo.lut
+0
-17
examples/untested/from_lustre/Makefile
examples/untested/from_lustre/Makefile
+0
-77
examples/untested/from_lustre/call_foo.lus
examples/untested/from_lustre/call_foo.lus
+0
-13
examples/untested/from_lustre/call_foo.oc
examples/untested/from_lustre/call_foo.oc
+0
-51
examples/untested/from_lustre/foo.lut
examples/untested/from_lustre/foo.lut
+0
-18
examples/untested/is_stable.lut
examples/untested/is_stable.lut
+0
-77
examples/untested/ivrogne/Makefile
examples/untested/ivrogne/Makefile
+0
-46
examples/untested/ivrogne/ivrogne.lut
examples/untested/ivrogne/ivrogne.lut
+0
-87
examples/untested/ivrogne/trace_ivrogne.ml
examples/untested/ivrogne/trace_ivrogne.ml
+0
-157
examples/untested/lurette-ocaml/Makefile
examples/untested/lurette-ocaml/Makefile
+0
-64
examples/untested/lurette-ocaml/README
examples/untested/lurette-ocaml/README
+0
-4
examples/untested/lurette-ocaml/env.ml
examples/untested/lurette-ocaml/env.ml
+0
-53
examples/untested/lurette-ocaml/sut.ml
examples/untested/lurette-ocaml/sut.ml
+0
-44
examples/untested/lurette-ocaml/test.ml
examples/untested/lurette-ocaml/test.ml
+0
-19
examples/untested/lurette-socket/Makefile
examples/untested/lurette-socket/Makefile
+0
-73
examples/untested/lurette-socket/README.org
examples/untested/lurette-socket/README.org
+0
-23
examples/untested/lurette-socket/foo.lut
examples/untested/lurette-socket/foo.lut
+0
-24
examples/untested/lurette-socket/simple_sut
examples/untested/lurette-socket/simple_sut
+0
-0
examples/untested/lurette-socket/simple_sut.c
examples/untested/lurette-socket/simple_sut.c
+0
-81
examples/untested/lurette-socket/simple_sut2
examples/untested/lurette-socket/simple_sut2
+0
-0
examples/untested/lurette-socket/simple_sut2.c
examples/untested/lurette-socket/simple_sut2.c
+0
-42
examples/untested/lurette-socket/simple_sut3
examples/untested/lurette-socket/simple_sut3
+0
-0
examples/untested/lurette-socket/simple_sut3.c
examples/untested/lurette-socket/simple_sut3.c
+0
-42
examples/untested/lurette-socket/test.res
examples/untested/lurette-socket/test.res
+0
-0
examples/untested/misc/boot.lut
examples/untested/misc/boot.lut
+0
-12
examples/untested/misc/bug01.lut
examples/untested/misc/bug01.lut
+0
-17
examples/untested/misc/expand.lut
examples/untested/misc/expand.lut
+0
-104
examples/untested/misc/noeud.lut
examples/untested/misc/noeud.lut
+0
-113
examples/untested/misc/qsynch.lut
examples/untested/misc/qsynch.lut
+0
-33
examples/untested/misc/titi.lut
examples/untested/misc/titi.lut
+0
-22
examples/untested/misc/ud.lut
examples/untested/misc/ud.lut
+0
-100
examples/untested/rdbg/Makefile
examples/untested/rdbg/Makefile
+0
-94
examples/untested/rdbg/choice.lut
examples/untested/rdbg/choice.lut
+0
-18
examples/untested/rdbg/demo.ml
examples/untested/rdbg/demo.ml
+0
-27
examples/untested/rdbg/demo_gnuplot.ml
examples/untested/rdbg/demo_gnuplot.ml
+0
-166
examples/untested/rdbg/ex1.lut
examples/untested/rdbg/ex1.lut
+0
-36
examples/untested/rdbg/ex6.lut
examples/untested/rdbg/ex6.lut
+0
-36
examples/untested/rdbg/heater.lut
examples/untested/rdbg/heater.lut
+0
-90
examples/untested/rdbg/incr.lus
examples/untested/rdbg/incr.lus
+0
-16
examples/untested/rdbg/perf/Makefile
examples/untested/rdbg/perf/Makefile
+0
-52
examples/untested/rdbg/perf/trivial.lut
examples/untested/rdbg/perf/trivial.lut
+0
-13
examples/untested/rdbg/perf/trivial.ml
examples/untested/rdbg/perf/trivial.ml
+0
-28
examples/untested/rdbg/test.ml
examples/untested/rdbg/test.ml
+0
-23
examples/untested/rdbg/test2.ml
examples/untested/rdbg/test2.ml
+0
-27
examples/untested/rdbg/test3.ml
examples/untested/rdbg/test3.ml
+0
-200
examples/untested/rdbg/test4.ml
examples/untested/rdbg/test4.ml
+0
-46
examples/untested/rdbg/test5.ml
examples/untested/rdbg/test5.ml
+0
-36
examples/untested/rdbg/test6.ml
examples/untested/rdbg/test6.ml
+0
-25
examples/untested/rdbg/walk.lut
examples/untested/rdbg/walk.lut
+0
-19
examples/untested/socket-from-c/Makefile
examples/untested/socket-from-c/Makefile
+0
-46
examples/untested/socket-from-c/call_foo_via_socket
examples/untested/socket-from-c/call_foo_via_socket
+0
-0
examples/untested/socket-from-c/call_foo_via_socket.c
examples/untested/socket-from-c/call_foo_via_socket.c
+0
-185
examples/untested/socket-from-c/call_foo_via_socket.rif.exp
examples/untested/socket-from-c/call_foo_via_socket.rif.exp
+0
-34
examples/untested/socket-from-c/foo.lut
examples/untested/socket-from-c/foo.lut
+0
-16
examples/untested/socket-from-c/toto.c
examples/untested/socket-from-c/toto.c
+0
-11
examples/untested/socket-from-ocaml/Makefile
examples/untested/socket-from-ocaml/Makefile
+0
-41
examples/untested/socket-from-ocaml/call_foo_via_socket.ml
examples/untested/socket-from-ocaml/call_foo_via_socket.ml
+0
-61
examples/untested/socket-from-ocaml/foo.lut
examples/untested/socket-from-ocaml/foo.lut
+0
-16
examples/untested/test_ok/,ins/auto01-n0.ins
examples/untested/test_ok/,ins/auto01-n0.ins
+0
-0
examples/untested/test_ok/,ins/auto01-n1.ins
examples/untested/test_ok/,ins/auto01-n1.ins
+0
-0
examples/untested/test_ok/,ins/auto01-n2.ins
examples/untested/test_ok/,ins/auto01-n2.ins
+0
-0
examples/untested/test_ok/,ins/auto01-n3.ins
examples/untested/test_ok/,ins/auto01-n3.ins
+0
-0
examples/untested/test_ok/,ins/auto02-main.ins
examples/untested/test_ok/,ins/auto02-main.ins
+0
-0
examples/untested/test_ok/,ins/catch-main.ins
examples/untested/test_ok/,ins/catch-main.ins
+0
-0
examples/untested/test_ok/,ins/catch-main2.ins
examples/untested/test_ok/,ins/catch-main2.ins
+0
-0
examples/untested/test_ok/,ins/expand-n1.ins
examples/untested/test_ok/,ins/expand-n1.ins
+0
-108
examples/untested/test_ok/,ins/expand-n2.ins
examples/untested/test_ok/,ins/expand-n2.ins
+0
-107
examples/untested/test_ok/,ins/expand-n3.ins
examples/untested/test_ok/,ins/expand-n3.ins
+0
-107
examples/untested/test_ok/,ins/expand-n4.ins
examples/untested/test_ok/,ins/expand-n4.ins
+0
-107
examples/untested/test_ok/,ins/expand-n5.ins
examples/untested/test_ok/,ins/expand-n5.ins
+0
-0
examples/untested/test_ok/,ins/expand-n6.ins
examples/untested/test_ok/,ins/expand-n6.ins
+0
-100
examples/untested/test_ok/,ins/expand-n7.ins
examples/untested/test_ok/,ins/expand-n7.ins
+0
-0
examples/untested/test_ok/,ins/expand-n8.ins
examples/untested/test_ok/,ins/expand-n8.ins
+0
-0
examples/untested/test_ok/,ins/gauss-n1.ins
examples/untested/test_ok/,ins/gauss-n1.ins
+0
-0
examples/untested/test_ok/,ins/loops-l01.ins
examples/untested/test_ok/,ins/loops-l01.ins
+0
-0
examples/untested/test_ok/,ins/loops-l02.ins
examples/untested/test_ok/,ins/loops-l02.ins
+0
-0
examples/untested/test_ok/,ins/loops-l03.ins
examples/untested/test_ok/,ins/loops-l03.ins
+0
-0
examples/untested/test_ok/,ins/makerif-b2.ins
examples/untested/test_ok/,ins/makerif-b2.ins
+0
-0
examples/untested/test_ok/,ins/makerif-main.ins
examples/untested/test_ok/,ins/makerif-main.ins
+0
-0
examples/untested/test_ok/,ins/n0-main.ins
examples/untested/test_ok/,ins/n0-main.ins
+0
-100
examples/untested/test_ok/,ins/n1-main.ins
examples/untested/test_ok/,ins/n1-main.ins
+0
-100
examples/untested/test_ok/,ins/n2-main.ins
examples/untested/test_ok/,ins/n2-main.ins
+0
-100
examples/untested/test_ok/,ins/n3-main.ins
examples/untested/test_ok/,ins/n3-main.ins
+0
-100
examples/untested/test_ok/,ins/scope-scope.ins
examples/untested/test_ok/,ins/scope-scope.ins
+0
-100
examples/untested/test_ok/,ins/train-train.ins
examples/untested/test_ok/,ins/train-train.ins
+0
-109
examples/untested/test_ok/,test/auto01-n0.rif.ref
examples/untested/test_ok/,test/auto01-n0.rif.ref
+0
-12
examples/untested/test_ok/,test/auto01-n1.rif.ref
examples/untested/test_ok/,test/auto01-n1.rif.ref
+0
-206
examples/untested/test_ok/,test/auto01-n2.rif.ref
examples/untested/test_ok/,test/auto01-n2.rif.ref
+0
-12
examples/untested/test_ok/,test/auto01-n3.rif.ref
examples/untested/test_ok/,test/auto01-n3.rif.ref
+0
-12
examples/untested/test_ok/,test/auto02-main.rif.ref
examples/untested/test_ok/,test/auto02-main.rif.ref
+0
-12
examples/untested/test_ok/,test/catch-main.rif.ref
examples/untested/test_ok/,test/catch-main.rif.ref
+0
-12
examples/untested/test_ok/,test/catch-main2.rif.ref
examples/untested/test_ok/,test/catch-main2.rif.ref
+0
-206
examples/untested/test_ok/,test/expand-n1.rif.ref
examples/untested/test_ok/,test/expand-n1.rif.ref
+0
-6
examples/untested/test_ok/,test/expand-n2.rif.ref
examples/untested/test_ok/,test/expand-n2.rif.ref
+0
-206
examples/untested/test_ok/,test/expand-n3.rif.ref
examples/untested/test_ok/,test/expand-n3.rif.ref
+0
-206
examples/untested/test_ok/,test/expand-n4.rif.ref
examples/untested/test_ok/,test/expand-n4.rif.ref
+0
-206
examples/untested/test_ok/,test/expand-n5.rif.ref
examples/untested/test_ok/,test/expand-n5.rif.ref
+0
-206
examples/untested/test_ok/,test/expand-n6.rif.ref
examples/untested/test_ok/,test/expand-n6.rif.ref
+0
-42
examples/untested/test_ok/,test/expand-n7.rif.ref
examples/untested/test_ok/,test/expand-n7.rif.ref
+0
-206
examples/untested/test_ok/,test/expand-n8.rif.ref
examples/untested/test_ok/,test/expand-n8.rif.ref
+0
-206
examples/untested/test_ok/,test/gauss-n1.rif.ref
examples/untested/test_ok/,test/gauss-n1.rif.ref
+0
-206
examples/untested/test_ok/,test/loops-l01.rif.ref
examples/untested/test_ok/,test/loops-l01.rif.ref
+0
-206
examples/untested/test_ok/,test/loops-l02.rif.ref
examples/untested/test_ok/,test/loops-l02.rif.ref
+0
-26
examples/untested/test_ok/,test/loops-l03.rif.ref
examples/untested/test_ok/,test/loops-l03.rif.ref
+0
-206
examples/untested/test_ok/,test/makerif-b2.rif.ref
examples/untested/test_ok/,test/makerif-b2.rif.ref
+0
-206
examples/untested/test_ok/,test/makerif-main.rif.ref
examples/untested/test_ok/,test/makerif-main.rif.ref
+0
-206
examples/untested/test_ok/,test/n0-main.rif.ref
examples/untested/test_ok/,test/n0-main.rif.ref
+0
-206
examples/untested/test_ok/,test/n1-main.rif.ref
examples/untested/test_ok/,test/n1-main.rif.ref
+0
-206
examples/untested/test_ok/,test/n2-main.rif.ref
examples/untested/test_ok/,test/n2-main.rif.ref
+0
-206
examples/untested/test_ok/,test/n3-main.rif.ref
examples/untested/test_ok/,test/n3-main.rif.ref
+0
-206
examples/untested/test_ok/,test/scope-scope.rif.ref
examples/untested/test_ok/,test/scope-scope.rif.ref
+0
-16
examples/untested/test_ok/,test/train-train.rif.ref
examples/untested/test_ok/,test/train-train.rif.ref
+0
-206
examples/untested/test_ok/,testexe/auto01-n0.rif.ref
examples/untested/test_ok/,testexe/auto01-n0.rif.ref
+0
-12
examples/untested/test_ok/,testexe/auto01-n1.rif.ref
examples/untested/test_ok/,testexe/auto01-n1.rif.ref
+0
-204
examples/untested/test_ok/,testexe/auto01-n2.rif.ref
examples/untested/test_ok/,testexe/auto01-n2.rif.ref
+0
-12
examples/untested/test_ok/,testexe/auto01-n3.rif.ref
examples/untested/test_ok/,testexe/auto01-n3.rif.ref
+0
-12
examples/untested/test_ok/,testexe/auto02-main.rif.ref
examples/untested/test_ok/,testexe/auto02-main.rif.ref
+0
-12
examples/untested/test_ok/,testexe/catch-main.rif.ref
examples/untested/test_ok/,testexe/catch-main.rif.ref
+0
-12
examples/untested/test_ok/,testexe/catch-main2.rif.ref
examples/untested/test_ok/,testexe/catch-main2.rif.ref
+0
-204
examples/untested/test_ok/,testexe/expand-n1.rif.ref
examples/untested/test_ok/,testexe/expand-n1.rif.ref
+0
-6
examples/untested/test_ok/,testexe/expand-n2.rif.ref
examples/untested/test_ok/,testexe/expand-n2.rif.ref
+0
-204
examples/untested/test_ok/,testexe/expand-n3.rif.ref
examples/untested/test_ok/,testexe/expand-n3.rif.ref
+0
-204
examples/untested/test_ok/,testexe/expand-n4.rif.ref
examples/untested/test_ok/,testexe/expand-n4.rif.ref
+0
-204
examples/untested/test_ok/,testexe/expand-n5.rif.ref
examples/untested/test_ok/,testexe/expand-n5.rif.ref
+0
-204
examples/untested/test_ok/,testexe/expand-n6.rif.ref
examples/untested/test_ok/,testexe/expand-n6.rif.ref
+0
-124
examples/untested/test_ok/,testexe/expand-n7.rif.ref
examples/untested/test_ok/,testexe/expand-n7.rif.ref
+0
-204
examples/untested/test_ok/,testexe/expand-n8.rif.ref
examples/untested/test_ok/,testexe/expand-n8.rif.ref
+0
-204
examples/untested/test_ok/,testexe/gauss-n1.rif.ref
examples/untested/test_ok/,testexe/gauss-n1.rif.ref
+0
-204
examples/untested/test_ok/,testexe/loops-l01.rif.ref
examples/untested/test_ok/,testexe/loops-l01.rif.ref
+0
-204
examples/untested/test_ok/,testexe/loops-l02.rif.ref
examples/untested/test_ok/,testexe/loops-l02.rif.ref
+0
-28
examples/untested/test_ok/,testexe/loops-l03.rif.ref
examples/untested/test_ok/,testexe/loops-l03.rif.ref
+0
-204
examples/untested/test_ok/,testexe/makerif-b2.rif.ref
examples/untested/test_ok/,testexe/makerif-b2.rif.ref
+0
-204
examples/untested/test_ok/,testexe/makerif-main.rif.ref
examples/untested/test_ok/,testexe/makerif-main.rif.ref
+0
-204
examples/untested/test_ok/,testexe/n0-main.rif.ref
examples/untested/test_ok/,testexe/n0-main.rif.ref
+0
-204
examples/untested/test_ok/,testexe/n1-main.rif.ref
examples/untested/test_ok/,testexe/n1-main.rif.ref
+0
-204
examples/untested/test_ok/,testexe/n2-main.rif.ref
examples/untested/test_ok/,testexe/n2-main.rif.ref
+0
-204
examples/untested/test_ok/,testexe/n3-main.rif.ref
examples/untested/test_ok/,testexe/n3-main.rif.ref
+0
-204
examples/untested/test_ok/,testexe/scope-scope.rif.ref
examples/untested/test_ok/,testexe/scope-scope.rif.ref
+0
-16
examples/untested/test_ok/,testexe/train-train.rif.ref
examples/untested/test_ok/,testexe/train-train.rif.ref
+0
-204
examples/untested/test_ok/Makefile
examples/untested/test_ok/Makefile
+0
-30
examples/untested/test_ok/auto01.lut
examples/untested/test_ok/auto01.lut
+0
-29
examples/untested/test_ok/auto02.lut
examples/untested/test_ok/auto02.lut
+0
-12
examples/untested/test_ok/catch.lut
examples/untested/test_ok/catch.lut
+0
-21
examples/untested/test_ok/d1.lut
examples/untested/test_ok/d1.lut
+0
-5
examples/untested/test_ok/dotest
examples/untested/test_ok/dotest
+0
-81
examples/untested/test_ok/dotestexe
examples/untested/test_ok/dotestexe
+0
-81
examples/untested/test_ok/erwan.lut
examples/untested/test_ok/erwan.lut
+0
-59
examples/untested/test_ok/example.lut
examples/untested/test_ok/example.lut
+0
-59
examples/untested/test_ok/exemple.lut
examples/untested/test_ok/exemple.lut
+0
-58
examples/untested/test_ok/expand-n3.lut
examples/untested/test_ok/expand-n3.lut
+0
-107
examples/untested/test_ok/expand.lut
examples/untested/test_ok/expand.lut
+0
-108
examples/untested/test_ok/ext0.lut
examples/untested/test_ok/ext0.lut
+0
-16
examples/untested/test_ok/gauss.lut
examples/untested/test_ok/gauss.lut
+0
-5
examples/untested/test_ok/loops.lut
examples/untested/test_ok/loops.lut
+0
-9
examples/untested/test_ok/makerif.lut
examples/untested/test_ok/makerif.lut
+0
-13
examples/untested/test_ok/n0.lut
examples/untested/test_ok/n0.lut
+0
-16
examples/untested/test_ok/n1.lut
examples/untested/test_ok/n1.lut
+0
-17
examples/untested/test_ok/n2.lut
examples/untested/test_ok/n2.lut
+0
-9
examples/untested/test_ok/n3.lut
examples/untested/test_ok/n3.lut
+0
-15
examples/untested/test_ok/num.lut
examples/untested/test_ok/num.lut
+0
-13
examples/untested/test_ok/rabbit.lut
examples/untested/test_ok/rabbit.lut
+0
-58
examples/untested/test_ok/scope.lut
examples/untested/test_ok/scope.lut
+0
-12
examples/untested/test_ok/t0.lut
examples/untested/test_ok/t0.lut
+0
-3
examples/untested/test_ok/t1.lut
examples/untested/test_ok/t1.lut
+0
-4
examples/untested/test_ok/t2.lut
examples/untested/test_ok/t2.lut
+0
-4
examples/untested/test_ok/t3.lut
examples/untested/test_ok/t3.lut
+0
-4
examples/untested/test_ok/t4.lut
examples/untested/test_ok/t4.lut
+0
-6
examples/untested/test_ok/t5.lut
examples/untested/test_ok/t5.lut
+0
-19
examples/untested/test_ok/t6.lut
examples/untested/test_ok/t6.lut
+0
-13
examples/untested/test_ok/t7.lut
examples/untested/test_ok/t7.lut
+0
-9
examples/untested/test_ok/train.lut
examples/untested/test_ok/train.lut
+0
-38
examples/untested/tut-examples/Makefile
examples/untested/tut-examples/Makefile
+0
-19
examples/untested/tut-examples/simple.lut
examples/untested/tut-examples/simple.lut
+0
-55
examples/untested/tut-examples/simpler.lut
examples/untested/tut-examples/simpler.lut
+0
-5
examples/untested/ud.lut
examples/untested/ud.lut
+0
-76
lutin/src/version.ml
lutin/src/version.ml
+2
-2
No files found.
_oasis
View file @
5ff210d0
OASISFormat: 0.4
Name: lutin
Version: 2.6
5
Version: 2.6
6
Authors: Erwan Jahier, Pascal Raymond, Bertrand Jeannnet (polka), Yvan Roux
Maintainers: erwan.jahier@univ-grenoble-alpes.fr
License: CeCILL
...
...
examples/untested/REAMDE.org
deleted
100644 → 0
View file @
f0b2e7c5
This directory contains examples that are not tracked by the test
scripts, which means that some (most) programs might not (even) be
syntactically correct (anymore).
examples/untested/bug/Pannes.lut
deleted
100644 → 0
View file @
f0b2e7c5
let
CYCLE_LUTIN
=
250
let
deux_vrai
(
p1
,
p2
:
bool
)
:
bool
=
{
p1
and
p2
}
let
trois_vrai
(
p1
,
p2
,
p3
,
p4
:
bool
)
:
bool
=
{
(
p1
and
p2
and
p3
)
or
(
p1
and
p2
and
p4
)
or
(
p1
and
p3
and
p4
)
or
(
p2
and
p3
and
p4
)
}
let
casser_au_moins_1_et_au_plus_2_sur_4
(
p1
,
p2
,
p3
,
p4
:
bool
)
:
bool
=
{
((
p1
or
p2
)
and
(
not
p3
)
and
(
not
p4
))
or
((
p1
or
p3
)
and
(
not
p2
)
and
(
not
p4
))
or
((
p1
or
p4
)
and
(
not
p2
)
and
(
not
p3
))
or
((
p2
or
p3
)
and
(
not
p1
)
and
(
not
p4
))
or
((
p2
or
p4
)
and
(
not
p1
)
and
(
not
p3
))
or
((
p3
or
p4
)
and
(
not
p1
)
and
(
not
p2
))
}
let
casser_1_sur_2
(
p1
,
p2
:
bool
)
:
bool
=
{
(
p1
and
not
p2
)
or
(
not
p1
and
p2
)
}
let
Max
(
x
,
y
:
int
)
:
int
=
{
if
x
<
y
then
y
else
x
}
-- Prend le temps en ms
let
loop_time
(
n
:
int
)
:
trace
=
{
exist
cpt
:
int
=
n
in
loop
{
cpt
=
Max
(
0
,
pre
cpt
-
CYCLE_LUTIN
)
and
cpt
<>
0
}
}
let
loop_time_reset
(
n
:
int
;
reset
:
bool
)
:
trace
=
{
exist
cpt
:
int
=
n
in
loop
{
(
cpt
=
Max
(
0
,
pre
cpt
-
CYCLE_LUTIN
))
and
(
cpt
<>
0
)
and
not
reset
}
}
node
nominal
()
returns
(
EXE101MN_Panne2_OnOff
:
bool
;
EXE101MN_Panne2_Valeur
:
real
;
EXE102MN_Panne2_OnOff
:
bool
;
EXE102MN_Panne2_Valeur
:
real
;
EXE103MN_Panne2_OnOff
:
bool
;
EXE103MN_Panne2_Valeur
:
real
;
EXE104MN_Panne2_OnOff
:
bool
;
EXE104MN_Panne2_Valeur
:
real
;
EXE701PO_Panne1_OnOff
:
bool
;
EXE702PO_Panne1_OnOff
:
bool
)
=
let
Nominal
=
(
EXE101MN_Panne2_OnOff
=
false
)
and
(
EXE101MN_Panne2_Valeur
=
0
.
0
)
and
(
EXE102MN_Panne2_OnOff
=
false
)
and
(
EXE102MN_Panne2_Valeur
=
0
.
0
)
and
(
EXE103MN_Panne2_OnOff
=
false
)
and
(
EXE103MN_Panne2_Valeur
=
0
.
0
)
and
(
EXE104MN_Panne2_OnOff
=
false
)
and
(
EXE104MN_Panne2_Valeur
=
0
.
0
)
and
(
EXE701PO_Panne1_OnOff
=
false
)
and
(
EXE702PO_Panne1_OnOff
=
false
)
in
loop
Nominal
node
pannes_interactif
(
n
:
int
;
reset
:
bool
)
returns
(
EXE101MN_Panne2_OnOff
:
bool
;
EXE101MN_Panne2_Valeur
:
real
[
0
.
0
;
30
.
0
];
EXE102MN_Panne2_OnOff
:
bool
;
EXE102MN_Panne2_Valeur
:
real
[
0
.
0
;
30
.
0
];
EXE103MN_Panne2_OnOff
:
bool
;
EXE103MN_Panne2_Valeur
:
real
[
0
.
0
;
30
.
0
];
EXE104MN_Panne2_OnOff
:
bool
;
EXE104MN_Panne2_Valeur
:
real
[
0
.
0
;
30
.
0
];
EXE701PO_Panne1_OnOff
:
bool
;
EXE702PO_Panne1_OnOff
:
bool
;
Urgence
:
bool
)
=
let
nb_pannes
=
(
if
EXE101MN_Panne2_Valeur
>
0
.
0
then
1
else
0
)
+
(
if
EXE102MN_Panne2_Valeur
>
0
.
0
then
1
else
0
)
+
(
if
EXE103MN_Panne2_Valeur
>
0
.
0
then
1
else
0
)
+
(
if
EXE104MN_Panne2_Valeur
>
0
.
0
then
1
else
0
)
+
(
if
EXE101MN_Panne2_OnOff
then
1
else
0
)
+
(
if
EXE102MN_Panne2_OnOff
then
1
else
0
)
+
(
if
EXE103MN_Panne2_OnOff
then
1
else
0
)
+
(
if
EXE104MN_Panne2_OnOff
then
1
else
0
)
+
(
if
EXE701PO_Panne1_OnOff
then
1
else
0
)
+
(
if
EXE702PO_Panne1_OnOff
then
1
else
0
)
in
let
bouge_pas
=
(
EXE101MN_Panne2_OnOff
=
pre
EXE101MN_Panne2_OnOff
)
and
(
EXE101MN_Panne2_Valeur
=
pre
EXE101MN_Panne2_Valeur
)
and
(
EXE102MN_Panne2_OnOff
=
pre
EXE102MN_Panne2_OnOff
)
and
(
EXE102MN_Panne2_Valeur
=
pre
EXE102MN_Panne2_Valeur
)
and
(
EXE103MN_Panne2_OnOff
=
pre
EXE103MN_Panne2_OnOff
)
and
(
EXE103MN_Panne2_Valeur
=
pre
EXE103MN_Panne2_Valeur
)
and
(
EXE104MN_Panne2_OnOff
=
pre
EXE104MN_Panne2_OnOff
)
and
(
EXE104MN_Panne2_Valeur
=
pre
EXE104MN_Panne2_Valeur
)
and
(
EXE701PO_Panne1_OnOff
=
pre
EXE701PO_Panne1_OnOff
)
and
(
EXE702PO_Panne1_OnOff
=
pre
EXE702PO_Panne1_OnOff
)
in
let
urgence
=
deux_vrai
(
EXE701PO_Panne1_OnOff
,
EXE702PO_Panne1_OnOff
)
or
trois_vrai
(
EXE101MN_Panne2_OnOff
,
EXE102MN_Panne2_OnOff
,
EXE103MN_Panne2_OnOff
,
EXE104MN_Panne2_OnOff
)
or
trois_vrai
(
EXE101MN_Panne2_Valeur
>
0
.
0
,
EXE102MN_Panne2_Valeur
>
0
.
0
,
EXE103MN_Panne2_Valeur
>
0
.
0
,
EXE104MN_Panne2_Valeur
>
0
.
0
)
in
assert
EXE101MN_Panne2_Valeur
=
0
.
0
or
EXE101MN_Panne2_Valeur
>
0
.
0
in
assert
EXE102MN_Panne2_Valeur
=
0
.
0
or
EXE102MN_Panne2_Valeur
>
0
.
0
in
assert
EXE103MN_Panne2_Valeur
=
0
.
0
or
EXE103MN_Panne2_Valeur
>
0
.
0
in
assert
EXE104MN_Panne2_Valeur
=
0
.
0
or
EXE104MN_Panne2_Valeur
>
0
.
0
in
-- XXX si je déplie la def de urgence ici, ca na se comporte pas pareil !!!
-- Plus précisément, Urgence ne passe jamais a faux
-- c'est un pb de parenthesage ! la priorité du = est contre-intuitive... la changer ?
assert
Urgence
=
(
deux_vrai
(
EXE701PO_Panne1_OnOff
,
EXE702PO_Panne1_OnOff
)
or
trois_vrai
(
EXE101MN_Panne2_OnOff
,
EXE102MN_Panne2_OnOff
,
EXE103MN_Panne2_OnOff
,
EXE104MN_Panne2_OnOff
)
or
trois_vrai
(
EXE101MN_Panne2_Valeur
>
0
.
0
,
EXE102MN_Panne2_Valeur
>
0
.
0
,
EXE103MN_Panne2_Valeur
>
0
.
0
,
EXE104MN_Panne2_Valeur
>
0
.
0
)
)
in
-- assert Urgence = urgence in
loop
{
loop
{
(
not
Urgence
and
(
nb_pannes
=
n
))
fby
assert
bouge_pas
in
loop_time_reset
(
7000
,
reset
)
}
|>
nb_pannes
=
n
|>
nb_pannes
=
10
}
node
pannes
()
returns
(
EXE101MN_Panne2_OnOff
:
bool
;
EXE101MN_Panne2_Valeur
:
real
[
0
.
0
;
30
.
0
];
EXE102MN_Panne2_OnOff
:
bool
;
EXE102MN_Panne2_Valeur
:
real
[
0
.
0
;
30
.
0
];
EXE103MN_Panne2_OnOff
:
bool
;
EXE103MN_Panne2_Valeur
:
real
[
0
.
0
;
30
.
0
];
EXE104MN_Panne2_OnOff
:
bool
;
EXE104MN_Panne2_Valeur
:
real
[
0
.
0
;
30
.
0
];
EXE701PO_Panne1_OnOff
:
bool
;
EXE702PO_Panne1_OnOff
:
bool
)
=
{
let
Urgence
=
deux_vrai
(
EXE701PO_Panne1_OnOff
,
EXE702PO_Panne1_OnOff
)
or
trois_vrai
(
EXE101MN_Panne2_OnOff
,
EXE102MN_Panne2_OnOff
,
EXE103MN_Panne2_OnOff
,
EXE104MN_Panne2_OnOff
)
in
let
bouge_pas
=
(
EXE101MN_Panne2_OnOff
=
pre
EXE101MN_Panne2_OnOff
)
and
(
EXE101MN_Panne2_Valeur
=
pre
EXE101MN_Panne2_Valeur
)
and
(
EXE102MN_Panne2_OnOff
=
pre
EXE102MN_Panne2_OnOff
)
and
(
EXE102MN_Panne2_Valeur
=
pre
EXE102MN_Panne2_Valeur
)
and
(
EXE103MN_Panne2_OnOff
=
pre
EXE103MN_Panne2_OnOff
)
and
(
EXE103MN_Panne2_Valeur
=
pre
EXE103MN_Panne2_Valeur
)
and
(
EXE104MN_Panne2_OnOff
=
pre
EXE104MN_Panne2_OnOff
)
and
(
EXE104MN_Panne2_Valeur
=
pre
EXE104MN_Panne2_Valeur
)
and
(
EXE701PO_Panne1_OnOff
=
pre
EXE701PO_Panne1_OnOff
)
and
(
EXE702PO_Panne1_OnOff
=
pre
EXE702PO_Panne1_OnOff
)
in
assert
EXE101MN_Panne2_Valeur
=
0
.
0
or
EXE101MN_Panne2_Valeur
>
0
.
0
in
assert
EXE102MN_Panne2_Valeur
=
0
.
0
or
EXE102MN_Panne2_Valeur
>
0
.
0
in
assert
EXE103MN_Panne2_Valeur
=
0
.
0
or
EXE103MN_Panne2_Valeur
>
0
.
0
in
assert
EXE104MN_Panne2_Valeur
=
0
.
0
or
EXE104MN_Panne2_Valeur
>
0
.
0
in
loop
{
not
Urgence
fby
assert
bouge_pas
in
loop_time
(
7000
)
}
}
\ No newline at end of file
examples/untested/bug/init_by_input.lut
deleted
100755 → 0
View file @
f0b2e7c5
node
toto
(
x
:
real
)
returns
(
y
:
real
)
=
{
exist
prex
:
real
=
x
in
y
=
prex
}
\ No newline at end of file
examples/untested/bug/loop_gauss.lut
deleted
100644 → 0
View file @
f0b2e7c5
node
n
(
i
:
bool
)
returns
(
x
:
real
)
=
loop
~
5
:
1
{
i
and
x
=
42
.
}
\ No newline at end of file
examples/untested/bug/macro.lut
deleted
100644 → 0
View file @
f0b2e7c5
node
between
(
min
,
max
:
real
)
returns
(
x
:
real
)
=
loop
((
min
<
x
)
and
(
x
<
max
))
node
n
()
returns
(
x
,
y
:
real
)
=
-- Si j'interverti les 2 lignes suivantes, ca marche, mais bon,
-- il me semble que x devrait etre sustitué dans les macros également
let
macro
()
=
x
*
y
>
0
.
0
in
run
x
:=
between
(
-
42
.,
42
.
0
)
in
loop
{
macro
()
}
\ No newline at end of file
examples/untested/from_C/3.12.0/test1.rif.exp
deleted
100644 → 0
View file @
f0b2e7c5
#inputs "a":int "b":bool "c":real
#outputs "x":int "y":bool "z":real
# step 0
10 0 20.000000 #outs 0 1 0.000000
# step 1
10 0 20.000000 #outs 6 1 16.571847
# step 2
10 0 20.000000 #outs 14 0 19.036049
# step 3
10 0 20.000000 #outs 6 0 22.087270
# step 4
10 0 20.000000 #outs 8 0 20.600566
# step 5
10 0 20.000000 #outs 11 1 24.566902
# step 6
10 0 20.000000 #outs 10 1 18.532594
# step 7
10 0 20.000000 #outs 7 1 23.330752
# step 8
10 0 20.000000 #outs 8 0 21.544592
# step 9
10 0 20.000000 #outs 13 1 16.263999
examples/untested/from_C/Makefile
deleted
100644 → 0
View file @
f0b2e7c5
LINKER
=
$(CC)
EXE
=
DEBUG
=
DEBUG
=
-D_DEBUG
CFLAGS
=
\
-L
../../../lib
\
-I
../../../include
-L
$(
shell
ocamlc
-where
)
\
-L
$(
shell
ocamlc
-where
)
/../lutin
\
-I
$(
shell
ocamlc
-where
)
/../lutin
\
-L
../../../_build/lutin/src
\
$(DEBUG)
LIBS
=
lut4c.a liblut4c_stubs.a
-lgmp
-lm
-ldl
-lstdc
++
LIBS
=
../../../_build/lutin/src/lut4c.a ../../../_build/lutin/src/liblut4c_stubs.a
\
-lasmrun
-lgmp
-lm
-ldl
LIBS
=
../../../_build/lutin/src/lut4c.a ../../../_build/lutin/src/lutin.a
-lgmp
-lm
-ldl
-lstdc
++
#gcc -o test -L. -L"`ocamlc -where`" test.c -Wl,--whole-archive -lhello_world -Wl,--no-whole-archive -lasmrun -lm -ldl
# -lcamlrun
LUT2C
=
../../../bin/lutin
$(EXE)
--2c-4c
-seed
42
LUT2CSOCK
=
../../../bin/lutin
$(EXE)
--2c-4c-socks
127.0.0.1
-seed
42
CALLVIASOCKET
=
../../../bin/call-via-socket
-addr
127.0.0.1
-port
2004
LUTIN
=
../../../bin/lutin
$(EXE)
-seed
42
-only-outputs
ifeq
($(HOSTTYPE),mac)
LINKER
=
g++
-g
LIBS
=
-lluc4c_nc
-llucky_nc
-lgmp
-lm
-ldl
endif
ifneq
(,$(findstring win32,$(HOSTTYPE)))
EXE
=
.exe
LINKER
=
$(CC)
CFLAGS
=
\
-L
../../../lib
\
-I
../../../include
-D_WIN32
-D_WINSOCK
$(DEBUG)
\
-Winline
-Wimplicit-function-declaration
LIBS
=
-lluc4c_nc
-llucky_nc
-lgmp
-lws2_32
-lm
-lstdc
++
-lole32
LIBSSOCK
=
-lws2_32
-lole32
LUT2C
=
../../../bin/lutin.exe
--2c-4c
LUT2CSOCK
=
../../../bin/lutin.exe
--2c-4c-socks
127.0.0.1
-seed
42
endif
ifeq
($(HOSTTYPE),cygwin)
EXE
=
.exe
CFLAGS
=
\
-L
../../../lib
\
-I
../../../include
\
-Winline
-Wimplicit-function-declaration
LIBS
=
-lluc4c_nc
-llucky_nc
-lgmp
-lws2_32
-lm
-lstdc
++
LUT2C
=
../../../bin/lutin
--2c-4c-socks
127.0.0.1
-seed
42
endif
################################################################
# Calling lucky from C
foo.c
:
foo.lut
$(LUT2C)
foo.lut
foo.o
:
foo.c
$(CC)
-c
$(CFLAGS)
foo.c
call_foo.o
:
call_foo.c
$(CC)
-c
$(CFLAGS)
call_foo.c
foo$(EXE)
:
foo.o call_foo.o
$(LINKER)
$(CFLAGS)
-o
$@
$^
$(LIBS)
################################################################
# Calling lucky from C via sockets
call_foo_sock.o
:
call_foo_sock.c
$(CC)
-c
$(CFLAGS)
call_foo_sock.c
sock
:
$(LUT2CSOCK)
foo.lut
make foo.o
foo-sock$(EXE)
:
sock foo.o call_foo_sock.o
$(LINKER)
$(CFLAGS)
-o
$@
foo.o call_foo_sock.o
$(LIBSSOCK)
################################################################x
clean
:
rm
-f
run
*
.o
*
~ foo foo-sock foo
*
.h foo
*
.c foo-sock.c
*
.gp
*
.plot
*
.rif
*
.log
EXPDIR
=
`
$(LUTIN)
--ocaml-version
`
$(EXPDIR)
:
[
-d
$(EXPDIR)
]
||
(
mkdir
-p
$(EXPDIR)
;
make utest
)
test1.rif
:
clean foo$(EXE) $(EXPDIR)
./foo
$(EXE)
>
test1.rif
test1
:
test1.rif
rm
-f
test1.res
&&
diff
-B
-u
-i
$(EXPDIR)
/test1.rif.exp test1.rif
>
test1.res
||
true
cat
test1.res
[
!
-s
test1.res
]
&&
make clean
utest
:
utest1 utest2
utest1
:
test1.rif
./foo
$(EXE)
>
test1.rif
cp
test1.rif
$(EXPDIR)
/test1.rif.exp
test2
:
clean foo-sock$(EXE) $(EXPDIR)
./foo-sock
$(EXE)
>
test2.rif &
$(CALLVIASOCKET)
"
$(LUTIN)
foo.lut"
rm
-f
test2.res
&&
diff
-B
-u
-i
$(EXPDIR)
/test2.rif.exp test2.rif
>
test2.res
||
true
cat
test2.res
[
!
-s
test2.res
]
&&
make clean
utest2
:
clean foo-sock$(EXE)
./foo-sock
$(EXE)
>
test2.rif &
$(CALLVIASOCKET)
"
$(LUTIN)
foo.lut"
cp
test2.rif
$(EXPDIR)
/test2.rif.exp
test
:
test1
LTOP
=
../../../bin/lurettetop
LURETTETOP
=
$(LTOP)
\
--test-length
100
--thick-draw
1
\
--draw-inside
0
--draw-edges
0
--draw-vertices
0
--draw-all-vertices
\
--step-mode
Inside
--local-var
--no-sim2chro
--seed
3
\
--do-not-show-step
PORT
=
2001
xxx
:
$(LURETTETOP)
--dbg
-v
3
\
-rp
"sut:socket:127.0.0.1:
$(PORT)
"
\
-rp
"env:lutin:foo.lut:env"
xxx2
:
../../../bin/call-via-socket
-addr
127.0.0.1
-port
$(PORT)
"lutin -m main foo.lut -rif xxx.rif"
xxx3
:
foo-sock
./foo-sock
examples/untested/from_C/call_foo.c
deleted
100644 → 0
View file @
f0b2e7c5
#include <stdlib.h>
#include <stdio.h>
#include "foo.h"
// Output procedures
void
foo_O_x
(
foo_ctx
*
ctx
,
int
v
)
{
ctx
->
_x
=
v
;
};
void
foo_O_y
(
foo_ctx
*
ctx
,
int
v
)
{
ctx
->
_y
=
v
;
};
void
foo_O_z
(
foo_ctx
*
ctx
,
double
v
)
{
ctx
->
_z
=
v
;
};
// a little main that calls the foo.lut program
int
main
(){
int
i
=
0
;
foo_ctx
*
ctx
;
#ifdef _DEBUG
fp
=
fopen
(
"debug.log"
,
"w"
);
#endif
ctx
=
foo_new_ctx
(
NULL
);
// lutin_set_seed(1);
// setting inputs
foo_I_a
(
ctx
,
10
);
foo_I_b
(
ctx
,
0
);
foo_I_c
(
ctx
,
20
.
0
);
printf
(
"#inputs
\"
a
\"
:int
\"
b
\"
:bool
\"
c
\"
:real
\n
"
);
printf
(
"#outputs
\"
x
\"
:int
\"
y
\"
:bool
\"
z
\"
:real
\n
"
);
for
(
i
=
0
;
i
<
10
;
i
++
){
foo_step
(
ctx
,
step_inside
);
printf
(
"# step %d
\n
%d %d %f #outs %d %d %f
\n
"
,
i
,
ctx
->
_a
,
ctx
->
_b
,
ctx
->
_c
,
ctx
->
_x
,
ctx
->
_y
,
ctx
->
_z
);
}
return
0
;
}
examples/untested/from_C/call_foo_sock.c
deleted
100644 → 0
View file @
f0b2e7c5
#include <stdlib.h>
#include <stdio.h>
#include "foo.h"
// Output procedures
void
foo_O_x
(
foo_ctx
*
ctx
,
_int
v
)
{
ctx
->
_x
=
v
;
};
void
foo_O_y
(
foo_ctx
*
ctx
,
_bool
v
)
{
ctx
->
_y
=
v
;
};
void
foo_O_z
(
foo_ctx
*
ctx
,
_real
v
)
{
ctx
->
_z
=
v
;
};
// a little main that calls the foo.lut program
int
main
(){
int
i
=
0
;
foo_ctx
*
ctx
;
#ifdef _DEBUG
fp
=
fopen
(
"debug.log"
,
"w"
);
#endif
ctx
=
foo_new_ctx
(
NULL
);
// lucky_set_seed(1);
printf
(
"#inputs
\"
a
\"
:int
\"
b
\"
:bool
\"
c
\"
:real
\n
"
);
printf
(
"#outputs
\"
x
\"
:int
\"
y
\"
:bool
\"
z
\"
:real
\n
"
);
for
(
i
=
1
;
i
<
10
;
i
++
){
// setting inputs
foo_I_a
(
ctx
,
i
);
foo_I_b
(
ctx
,
i
%
2
);
foo_I_c
(
ctx
,
(
_real
)
i
);
foo_step
(
ctx
);
printf
(
"# step %d
\n
%d %d %f #outs %d %d %f
\n
"
,
i
,
ctx
->
_a
,
ctx
->
_b
,
ctx
->
_c
,
ctx
->
_x
,
ctx
->
_y
,
ctx
->
_z
);
}
return
0
;
}
examples/untested/from_C/foo.lut
deleted
100644 → 0
View file @
f0b2e7c5
let
abs_int
(
x
:
int
)
=
if
x
>=
0
then
x
else
-
x
let
abs_real
(
x
:
real
)
=
if
x
>=
0
.
0
then
x
else
-
x
node
main
(
a
:
int
;
b
:
bool
;
c
:
real
)
returns
(
x
:
int
;
y
:
bool
;
z
:
real
)
=
z
=
0
.
0
and
x
=
0
fby
loop
{
(
b
=>
y
)
and
abs_int
(
x
-
a
)
<
5
and
abs_real
(
z
-
c
)
<
5
.
0
}
node
env
(
x
:
int
;
y
:
bool
;
z
:
real
)
returns
(
a
:
int
;
b
:
bool
;
c
:
real
)
=
loop
true
examples/untested/from_lustre/Makefile
deleted
100644 → 0
View file @
f0b2e7c5
CC
=
gcc
-g
LD
=
gcc
-g
EXE
=
CFLAGS
=
\
-L
`
ocamlfind
-query
lutin
`
\
-I
`
ocamlfind
-query
lutin
`
LIB
=
`
ocamlfind query camlidl
-l-format
`
\
`
ocamlfind query lutin-utils
-i-format
`
\
`
ocamlfind query lutils
-i-format
`
\
-cclib
-lcamlidl
-cclib
-lgmp
#LIBS = -llut4c_stubs `ocamlfind query lutils -i-format` -lgmp -lm -ldl -lstdc++
LUTIN
=
../../../bin/lutin
ifneq
(,$(findstring $(HOSTTYPE),win32))
EXE
=
.exe
CFLAGS
=
\
-L
../../../lib
-L
/cygdrive/c/TEMP/MinGW/lib
\
-I
../../../include
\
-Winline
-Wimplicit-function-declaration
LIBS
=
-llut4c
-llutils
-lgmp
-lws2_32
-lm
-lstdc
++
LUTIN
=
../../../bin/lutin
$(EXE)
endif
ifeq
($(HOSTTYPE),mac)
LD
=
g++
-g
LIBS
=
-llut4c
-llutils
-lgmp
-lm
-ldl
endif
################################################################
# Calling lutin from Lustre
call_foo_loop.c
:
foo.c
call_foo_ext_func.c
:
foo.c
foo.c
:
foo.lut
$(LUTIN)
--2c-4lustre
"call_foo"
-seed
42 foo.lut
-m
main
call_foo.ec
:
../../../bin/lus2ec call_foo.lus call_foo
call_foo.c
:
call_foo.ec
../../../bin/ec2c
$(EXE)
-loop
call_foo.ec