> Added a nonsense precondition to gcd routine in GCD_EXAMPLES: require a_negative: a < 0.
> If ecf file has ALL assertions turned off, it properly ignores the nonsense precondition.
> If supplier_precondition = "true" and all other assertions are "false", the precondition is tested and is violated at run time.
See https://www.eiffel.org/doc/eiffelstudio/Assertion_Options
> Question 1: What is the purpose of vs. ?
compiler warning can be reported (True), ignored (False), and in recent ECF schema, there is also the possibility to consider compiler warnings as "error". This is when you want strict policy and accept no warning at all (i.e: all warnings have to be fixed to get a successful compilation).
See in the project settings Target > Advanced > Warnings > Warning
> Question 2: Shouldn't each assertion violation checking be independent of the others?
I am not sure to get your question correctly, as for now, you can set assertion as you want for each library in your application.
It could use the default assertion set in the library .ecf, but you can also set yourself the assertions you want on specific library you use in your application.
Please use the "Project settings" tool, and especially see the Target > Groups > Libraries > ....
> Question 3: Why should supplier_precondition="true" and "precondition="false" violate the precondition?
see https://www.eiffel.org/doc/eiffelstudio/Assertion_Options
"Supplier Precondition is a special case. When you develop new software, your software reuses libraries of existing software from other sources, such as the Eiffel Libraries. This library software is often well-established and highly reliable. Setting Supplier Precondition to True is a convenient way of setting only precondition checking on libraries, while allowing your own software to be checked to whatever degree you've determined by adjusting the other assertion level settings."