1. What is the effect of the above capability declaration on clusters such as cluster “root", etc.? Is it the above declaration that ensures that all the clusters and libraries are Void safe?
2. The project below imports the library “espec” (this is a testing library developed by us at York University) in the contributed folder. The ESPEC.ECF file makes no mention of Void safety, yet it appears to operate in a Void safe manner for the project defined below. So it would seem that library ECF files need not state anything about their Void safety? [Presumably because of the capability declaration in #1]
3. It also seems that the above Void safety automatically results in the effect that all types as attached by default?
Just checking to ensure that our tools generate the correct ECF files for what was previously explicitly declared in ECF files to achieve attached by default, complete Void safety and standard syntax. Also Full Class Checking.
P.S. Void safety is a substantial step forward! Thank you Bertrand, Manu & the Eiffel team, and the ECMA members for moving forward on this. It’s been a demanding but productive journey.
<?xml version="1.0" encoding="ISO-8859-1"?>
<target name="messenger">
<root class="ROOT" feature="make"/>
<file_rule>
<exclude>/CVS$</exclude>
<exclude>/EIFGENs$</exclude>
<exclude>/\.git$</exclude>
<exclude>/\.svn$</exclude>
</file_rule>
<option warning="true" is_obsolete_routine_type="true">
<assertions precondition="true" postcondition="true" check="true" invariant="true" loop="true" supplier_precondition="true"/>
</option>
<capability>
<concurrency support="scoop"/>
<void_safety support="all" use="all"/>
</capability>
<precompile name="base_pre" location="$ISE_PRECOMP\base-scoop-safe.ecf"/>
<library name="base" location="$ISE_LIBRARY\library\base\base.ecf">
<renaming old_name="SET" new_name="EIFFEL_SET"/>
<renaming old_name="BAG" new_name="EIFFEL_BAG"/>
</library>
<library name="espec" location="$ISE_LIBRARY\contrib\library\testing\framework\espec\library\espec.ecf"/>
<library name="mathmodels" location="$MATHMODELS\library\mathmodels.ecf"/>
<library name="encoding" location="$ISE_LIBRARY\library\encoding\encoding.ecf"/>
<library name="gobo_kernel" location="$ISE_LIBRARY\library\gobo\gobo_kernel.ecf"/>
<library name="gobo_lexical" location="$ISE_LIBRARY\library\gobo\gobo_lexical.ecf"/>
<library name="gobo_parse" location="$ISE_LIBRARY\library\gobo\gobo_parse.ecf"/>
<library name="gobo_structure" location="$ISE_LIBRARY\library\gobo\gobo_structure.ecf"/>
<library name="gobo_utility" location="$ISE_LIBRARY\library\gobo\gobo_utility.ecf"/>
<library name="time" location="$ISE_LIBRARY\library\time\time.ecf"/>
<library name="vision2" location="$ISE_LIBRARY\library\vision2\vision2.ecf"/>
<cluster name="messenger" location=".\messenger\" recursive="true"/>
<cluster name="generated_code" location=".\generated_code\" recursive="true"/>
<cluster name="root" location=".\root\" recursive="true"/>
</target>
</system>