ET does not correctly compile the ace examples #67

Closed
ramack opened this Issue Mar 20, 2013 · 8 comments

Comments

Projects
None yet
2 participants
@ramack
Member

ramack commented Mar 20, 2013

tutorial/ace shall be compiled using ace files, not directly the .e files.
It's probably best to check whether ace files are in a directory (for tests and tutorial) and if so, only those are used.
What do you think?

ramack shall also start to document ET in the wiki.

For the testsuite ET decides on basis of the existance of test__.e or bad__.e files whether it is a real test directory (se test is called for each directory with this condition). But what for the tutorial? Here I just compile each class, which is not good, as there are also auxiliary classes e. g. tutorial/agent/apple.e. Should we define a convention for aux-classes as it is in tests or move them to a subdirectory, or restructure the whole tutorial dir? - How does the user know which classes are part of which tutorial and which are the correct root-classes? And what about the wiki? It has the page http://wiki.liberty-eiffel.org/index.php/Tutorial_tour. Shall we update this?

Many questions for one issue, I know.

@ghost ghost assigned ramack Mar 20, 2013

@cadrian

This comment has been minimized.

Show comment Hide comment
@cadrian

cadrian Mar 20, 2013

Member

What do you mean?

Member

cadrian commented Mar 20, 2013

What do you mean?

@ramack

This comment has been minimized.

Show comment Hide comment
@ramack

ramack Mar 20, 2013

Member

I edited the issue while you already commented. Anyhow, it may still be unclear.
In tutorial there are many example programs, which consist of just one class. e. g. downcasting.e. Therefore ET compiles all .e files a.t.m. and expects that only root-classes are in tutorial. This assumption is proven wrong by tutorial/ace/aux_example_debug_a.e, and for the ace examples ET shall not find the root class, but use all the ace files to compile the different demo programs.

If ace files exist in a directory, I suggest to make the assumption, that only those ace files define the example programs, and ET shall not check for other classes and do not recursively handle subdirectories.

Member

ramack commented Mar 20, 2013

I edited the issue while you already commented. Anyhow, it may still be unclear.
In tutorial there are many example programs, which consist of just one class. e. g. downcasting.e. Therefore ET compiles all .e files a.t.m. and expects that only root-classes are in tutorial. This assumption is proven wrong by tutorial/ace/aux_example_debug_a.e, and for the ace examples ET shall not find the root class, but use all the ace files to compile the different demo programs.

If ace files exist in a directory, I suggest to make the assumption, that only those ace files define the example programs, and ET shall not check for other classes and do not recursively handle subdirectories.

@cadrian

This comment has been minimized.

Show comment Hide comment
@cadrian

cadrian Mar 20, 2013

Member

don't you use eiffeltest?

Member

cadrian commented Mar 20, 2013

don't you use eiffeltest?

@ramack

This comment has been minimized.

Show comment Hide comment
@ramack

ramack Mar 20, 2013

Member

For the tutorial directory not, no. Is just compile them, the tutorials are not even executed. (This could be changed, of cause, but I think there was something which requires input on command line or something, and I did not want to use 'expect' or alike.)

For the testsuite, I call eiffeltest for each directory which contains an eiffeltest dir, as I use the exit code of eiffeltest and wantes the test result with finer granularity than just one big "fail". Do you have a better idea?

Member

ramack commented Mar 20, 2013

For the tutorial directory not, no. Is just compile them, the tutorials are not even executed. (This could be changed, of cause, but I think there was something which requires input on command line or something, and I did not want to use 'expect' or alike.)

For the testsuite, I call eiffeltest for each directory which contains an eiffeltest dir, as I use the exit code of eiffeltest and wantes the test result with finer granularity than just one big "fail". Do you have a better idea?

@cadrian

This comment has been minimized.

Show comment Hide comment
@cadrian

cadrian Mar 20, 2013

Member

I should learn to read all the words :-) There is no better way for the tutorial, except that you can fine-tune a bit: exclude a .e file if there is a .ace with the same prefix (e.g. example_debug.{e,ace})

I have no better idea currently, no… at least until eiffeltest_ng works :-)

Member

cadrian commented Mar 20, 2013

I should learn to read all the words :-) There is no better way for the tutorial, except that you can fine-tune a bit: exclude a .e file if there is a .ace with the same prefix (e.g. example_debug.{e,ace})

I have no better idea currently, no… at least until eiffeltest_ng works :-)

@ramack

This comment has been minimized.

Show comment Hide comment
@ramack

ramack Mar 24, 2013

Member

ok, ace files are considered: if ace files are available, only those are used. Neither are .e files compiled directly, nor are subdirectories handled.

still open:

  • non-root (auxiliary) classes like tutorial/agent/apple.e
  • documentation in the wiki
Member

ramack commented Mar 24, 2013

ok, ace files are considered: if ace files are available, only those are used. Neither are .e files compiled directly, nor are subdirectories handled.

still open:

  • non-root (auxiliary) classes like tutorial/agent/apple.e
  • documentation in the wiki
@ramack

This comment has been minimized.

Show comment Hide comment
@ramack

ramack May 19, 2013

Member

ET now ignores directories ending with "aux" in tutorial. This way we can move non-root classes into such aux directories to prevent failing compilation.

Member

ramack commented May 19, 2013

ET now ignores directories ending with "aux" in tutorial. This way we can move non-root classes into such aux directories to prevent failing compilation.

@cadrian

This comment has been minimized.

Show comment Hide comment

@cadrian cadrian closed this Jun 7, 2013

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment