The Esterel v5 21 System Manual - Courses
The Esterel v5 21 System Manual - Courses
The Esterel v5 21 System Manual - Courses
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
2.4. WHY COMPILATION MAY FAIL <strong>21</strong><br />
2.4 Why Compilation May Fail<br />
Compilation may fail for a variety of reasons.<br />
• <strong>The</strong> program may have syntax errors, type-checking errors, or logically<br />
inconsistent exclusion or implication relations. <strong>The</strong> error messages are<br />
printed by strlic.<br />
• <strong>The</strong> program may contain several modules calling each other in an<br />
inconsistent ways (cyclic structure, type clashes, etc.). <strong>The</strong> error messages<br />
are printed by iclc.<br />
• <strong>The</strong> program may contain a statically instantaneous loop, i.e. a loop<br />
with a potentially instantaneous path from loop to end loop. <strong>The</strong><br />
error message is printed by lcsc. <strong>The</strong> current compiler <strong>Esterel</strong> <strong>v5</strong> <strong>21</strong><br />
can only handle statically loop-free programs defined in [1].<br />
• <strong>The</strong> program may have a combinational cycle. In this case, if neither<br />
option -I nor option -causal is specified, the program is rejected by<br />
the scssc processor. A graphical error message can be visualized by<br />
typing<br />
esterel -cycles foo.strl<br />
Use the -I or -causal options to compile cyclic programs.<br />
All <strong>Esterel</strong> textual error messages have the same format. <strong>The</strong>y can be<br />
directly used by programming tools, such as the Emacs text editor, to point<br />
to the location of the errors (the Emacs -X ‘ “next error” command<br />
is used to jump from one error location to another). All <strong>Esterel</strong> graphical<br />
error messages are reported using a variant of the xes simulator.<br />
Internal error messages denote compiler bugs and should be reported to<br />
esterel-bugs@sophia.inria.fr together with the result of the command<br />
esterel -info.<br />
and the <strong>Esterel</strong> source code if possible.<br />
2.5 Sanity Checks<br />
Three options of the esterel commands performs sanity checks on the<br />
program. <strong>The</strong>se checks should be performed before embedding a program.