<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://dev.eiffel.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Larryl</id>
		<title>EiffelStudio: an EiffelSoftware project - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://dev.eiffel.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Larryl"/>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/Special:Contributions/Larryl"/>
		<updated>2026-05-28T06:24:49Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=How_to_use_smart_docking&amp;diff=13999</id>
		<title>How to use smart docking</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=How_to_use_smart_docking&amp;diff=13999"/>
				<updated>2010-11-04T04:00:32Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* SD_DOCKING_MANAGER */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Docking]]&lt;br /&gt;
* There is a simple docking project example, is in the SVN:&lt;br /&gt;
&lt;br /&gt;
https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/examples/docking&lt;br /&gt;
&lt;br /&gt;
If you have checked out SVN codes, it's in your SVN_ROOT/examples/docking folder. It should looks like figure 1.&lt;br /&gt;
&lt;br /&gt;
[[Image:How_to_use_smart_docking_figure_1.png]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As a client programmer you only need to care about four classes in the DOCKING LIBRARY cluster.&lt;br /&gt;
&lt;br /&gt;
== SD_DOCKING_MANAGER ==&lt;br /&gt;
This is the class which controls the whole SMART DOCKING library.&lt;br /&gt;
Use it like this:&lt;br /&gt;
&amp;lt;Eiffel&amp;gt;&lt;br /&gt;
manager: SD_DOCKING_MANAGER&lt;br /&gt;
create manager.make (a_container, a_window)&lt;br /&gt;
&amp;lt;/Eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*What is the meaning of those two arguments?&lt;br /&gt;
&lt;br /&gt;
`a_container' is the top level container which hold all docking widgets&lt;br /&gt;
&lt;br /&gt;
`a_window' is the main window which hold `a_container'&lt;br /&gt;
&lt;br /&gt;
*Why are they necessary?&lt;br /&gt;
&lt;br /&gt;
`a_window' is used for register global shortcuts (such as `esc' key used for cancel a dragging), it also used for showing a parented floating docking panel, and used for set global cursor icon when dragging, etc...&lt;br /&gt;
&lt;br /&gt;
Between `a_container' and `a_window', maybe there are other non-dockable widgets exist if client programmer wish. So client programmers need to give the two arguments to docking manager.&lt;br /&gt;
&lt;br /&gt;
*Is `a_window' always the parent window of `a_container'?&lt;br /&gt;
&lt;br /&gt;
`a_container' and `a_window' can be the same object simply, otherwise `a_window' must be the parent window of `a_container'?&lt;br /&gt;
&lt;br /&gt;
== SD_CONTENT ==&lt;br /&gt;
&lt;br /&gt;
This is the class which has the information to be put in a docking component.&lt;br /&gt;
Client programmer should use it like this:&lt;br /&gt;
&amp;lt;Eiffel&amp;gt;&lt;br /&gt;
content: SD_CONTENT&lt;br /&gt;
create content.make (create {EV_BUTTON}, &amp;quot;A_unique_title&amp;quot;)&lt;br /&gt;
content.set_short_title (&amp;quot;A short title&amp;quot;)&lt;br /&gt;
content.set_long_title (&amp;quot;A long title&amp;quot;)&lt;br /&gt;
manager.contents.extend (content)&lt;br /&gt;
-- You should call the following feature to make the content visible.&lt;br /&gt;
content.set_top ({SD_ENUMERATION}.top)&lt;br /&gt;
&amp;lt;/Eiffel&amp;gt;&lt;br /&gt;
For more information about SD_CONTENT, see [[How to use smart docking sd content]]&lt;br /&gt;
&lt;br /&gt;
== SD_ICONS_SINGLETON (deferred)==&lt;br /&gt;
This is the class which provide docking library pixmaps for icons or dragging feedback.&lt;br /&gt;
By default, Smart Docking library provide embedded icons which can be used directly without any changes. But if you want to customize your icons, you should inherit this class and implement several once features which provide EV_PIXMAPs&lt;br /&gt;
like this:&lt;br /&gt;
&amp;lt;Eiffel&amp;gt;&lt;br /&gt;
arrow_indicator_up: EV_PIXMAP is&lt;br /&gt;
  once&lt;br /&gt;
    create Result.default_create&lt;br /&gt;
    Result.set_with_named_file (&amp;quot;.\arrow.png&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
arrow_indicator_left: EV_PIXMAP is&lt;br /&gt;
  once&lt;br /&gt;
    create Result.default_create&lt;br /&gt;
    Result.set_with_named_file (&amp;quot;.\arrow_left.png&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
arrow_indicator_center: EV_PIXMAP is&lt;br /&gt;
  once&lt;br /&gt;
    create Result.default_create&lt;br /&gt;
    Result.set_with_named_file (&amp;quot;.\arrow_center.png&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
    ....&lt;br /&gt;
&amp;lt;/Eiffel&amp;gt;&lt;br /&gt;
And you should call 'init' feature in SD_ICONS_SINGLETON, normally you can call it in the creation method of the SD_ICONS_SINGLETON implementation class.&lt;br /&gt;
&lt;br /&gt;
== SD_ENUMERATION ==&lt;br /&gt;
This class only contain enumerations of Smart Docking library, such as direction enumeration, SD_CONTENT type enumeration.&lt;br /&gt;
&lt;br /&gt;
For more information about SD_ENUMERATION, see [[How to use smart docking sd enumeration]]&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.6_Releases&amp;diff=13767</id>
		<title>EiffelStudio 6.6 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.6_Releases&amp;diff=13767"/>
				<updated>2010-03-30T15:11:43Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* New features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.6.x Releases=&lt;br /&gt;
&lt;br /&gt;
==6.6.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release. &lt;br /&gt;
===New features===&lt;br /&gt;
* library: Added a feature &amp;lt;e&amp;gt;trim&amp;lt;/e&amp;gt; to the class &amp;lt;e&amp;gt;RESIZABLE&amp;lt;/e&amp;gt; and its descendants to allow for minimazing the use of allocated storage.&lt;br /&gt;
* studio: Allows users to double left click on the editor tab ribbon to create a new tab. The tab is created on the right, as that is where users click. Once the tab is opened then the address bar is&lt;br /&gt;
focused and the contents removed. It's ready for editing.&lt;br /&gt;
* studio: Implemented &amp;quot;Ctrl+ Enter&amp;quot; on address bar to open the class/feature in a new tab editor (if editor with current class/feature not already exists)&lt;br /&gt;
* studio: Handled mouse-middle-click to close pointed editor tab&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* library: Modified &amp;lt;e&amp;gt;ARRAYED_QUEUE&amp;lt;/e&amp;gt; to avoid using an extra slot that did not keep any value and was used only for implementation purposes.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==6.6.8.2636 (March 22nd 2010)==&lt;br /&gt;
===New features===&lt;br /&gt;
* {{Red|base: Added support for correct mismatch in the SED serialization cluster.}}&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*runtime: When twinning a SPECIAL instance where `capacity' is much higher than its `count' the new copy will have its `capacity' set to `count'.&lt;br /&gt;
* studio: added new Error List tool preference &amp;quot;tools.error_list.show_tooltip&amp;quot;, so end users can specify if rich tooltip window should be shown automatically in the Error List tool.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* compiler: Fixed bug#16545 when compiler did not detect that a new file does not contain an expected class after referencing it in a system (see test#incr340).&lt;br /&gt;
* compiler: Fixed several recompilation bugs (bug#16546, bug#16547, bug#16553) for cases when a feature with assertions is removed from a parent class while a child class remains unchanged (see test#incr341, test#incr342, test#incr343).&lt;br /&gt;
* studio: Fixed bug#15788 (bug#16209, bug#16278) Error tooltip flashing when mouse outside of EiffelStudio&lt;br /&gt;
* studio: Fixed bug#16543 Searching in feature Implementers or Descendants does not scroll to show match&lt;br /&gt;
* compiler: Fixed recompilation bugs (bug#14525, bug#16052) that caused compiler crash or incorrect error message when checking inherited code of a client that refers to a feature that is (re)moved (see test#incr293, test#incr338).&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*{{Red|studio: The experimental mode is now gone, it has become the default. To have access to the default mode of 6.5, one has to use the compatible version.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.6.8.2484 (March 1st 2010)==&lt;br /&gt;
===New features===&lt;br /&gt;
* {{Red|Compiler: Added a new option '''Total Order on REALs''' which let you have NaN equal to NaN  and NaN being the smallest number of all. This option is disabled by default as it could break existing code. The rationale for this option is to have contracts work properly when manipulating the NaN value and not getting spurious contract violation.}}&lt;br /&gt;
* {{Red|Compiler: Added the ability to version a class for storable. It is done via the note clause of a class, i.e. '''note storable_version: tag'''. When the storing and retrieving system have a different version a mismatch is triggered even if they look to have the same content.}}&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* studio: added the inherit clauses in the &amp;quot;Features tool&amp;quot; (to ease navigation in the edited class)&lt;br /&gt;
* compiler: Added support of transient attributes for .NET. Added queries in INTERNAL to find out the transient attributes. Extended the Eiffel serialization SED to support them.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed eweasel test#exec324 where a recent optimization would optimize away the code generation of the target of a call to `do_nothing'.&lt;br /&gt;
*compiler: Fixed in void-safe mode conformance of ''detachable COMPARABLE'' to ''attached ANY''. Fixes updated eweasel test#conform001.&lt;br /&gt;
*studio: do not open more than one breakpoint dialog on the same breakpoint (avoid conflict)&lt;br /&gt;
*debugger: Fixed bug#16618: Setting conditional breakpoint sometimes sets unconditional breakpoint&lt;br /&gt;
*runtime: Fixed eweasel test#exec323 where comparison using &amp;lt;= or &amp;gt;= in melted mode which involved NaN was not yielding the same result as in workbench mode.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*studio: the format for layout has changed so you might end up having to delete the EiffelStudio private files to get the correct layout.&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.6.8.2214 (February 1st 2010)==&lt;br /&gt;
===New features===&lt;br /&gt;
* compiler: Supported new variant of a check instruction that is not subject for assertion monitoring settings (in other words the check cannot be turned off) and can be used to introduce a new void safe scope of a read-only or object test local:&lt;br /&gt;
&amp;lt;e&amp;gt;check Assertion then&lt;br /&gt;
   Compound&lt;br /&gt;
end&amp;lt;/e&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*runtime: Redone some of the multithreading internals of the Eiffel runtime to make it easier to add platforms and to ensure the same behavior on various platforms.&lt;br /&gt;
*runtime: On Windows, the MUTEX class is now internally using a CRITICAL_SECTION object which is much more efficient especially with multiprocessors.&lt;br /&gt;
*{{Red|base: Added support for nan, negative_infinity, positive_infinity and their `is_xxx' corresponding queries.}}&lt;br /&gt;
*base: Allowed {ARRAY}.force to be used with arrays of attached types when index is either `lower - 1' or `upper + 1'. This let you progressively fill an empty array from 1 to the expected count.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed eweasel test#agent001 and test#agent013 by preventing wrong optimization when call to `{ROUTINE}.call' or `{FUNCTION}.item' are subject to dynamic binding.&lt;br /&gt;
*compiler: Fixed bug#16593 where finalizing twice in the same sessions with many changes in the system could cause the compiler to crash during degree -3.&lt;br /&gt;
*studio: Fixed editor refresh issue when saving modifications in the Contract Tool.&lt;br /&gt;
*studio: Fixed catcalls when building the Contract Tool.&lt;br /&gt;
*studio: Fixed bug#14857 Store the external commands in ISE User files&lt;br /&gt;
*studio: Fixed bug#16410 Error List window comes up blank on error if auto-hidden when estudio started&lt;br /&gt;
*debugger: Fixed a hang in EiffelStudio when inspecting a different threads than the current stopped one on platforms where thread identifiers are larger than 32-bit (e.g. Linux)&lt;br /&gt;
*{{Red|runtime: Made sure to use recursive mutexes on all our platforms.}}&lt;br /&gt;
*runtime: Fixed eweasel test#store029 where retrieving a storable made by 6.3 or older could fail with a mismatch error when there is actually no mismatch.&lt;br /&gt;
*net: Fixed tftp_server_console sample so that it uses a multithreaded precompilation of EiffelBase and fixed a precondition violation when receiving a GET command.&lt;br /&gt;
*net: Fixed precondition violation in {ARRAY}.force when compiling EiffelNet in void-safe mode.&lt;br /&gt;
*{{Red|net: Changed internal of MEDIUM_POLLER to use HASH_TABLE, as a consequence the queries `read_command_list', `write_command_list' and `exception_command_list' are now obsolete and should not be used.}}&lt;br /&gt;
*{{Red|base: Fixed ARRAY2 so that it can be used in void-safe mode too. Improved ARRAY2 resizing efficiency.}}&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*{{Red|thread: Made the THREAD class thread-safe which prevents using the same object to launch a new thread. Now there is a precondition `is_launchable' and a status report `is_last_launch_successful' to help finding out if a thread was really launched.}}&lt;br /&gt;
*{{Red|base: Changed the display of REAL/DOUBLE fields to show REAL_32 or REAL_64.}}&lt;br /&gt;
*{{Red|base: Changed the display of NaN/-Infinity/Infinity for real numbers so that it is the same on all our supported platforms.}}&lt;br /&gt;
*{{Red|compiler: Now the compiler will report usage of &amp;lt;e&amp;gt;is&amp;lt;/e&amp;gt; keyword as obsolete in transitional mode and will reject it in standard mode.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.6_Releases&amp;diff=13766</id>
		<title>EiffelStudio 6.6 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.6_Releases&amp;diff=13766"/>
				<updated>2010-03-29T08:47:53Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* New features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.6.x Releases=&lt;br /&gt;
&lt;br /&gt;
==6.6.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release. &lt;br /&gt;
===New features===&lt;br /&gt;
* library: Added a feature &amp;lt;e&amp;gt;trim&amp;lt;/e&amp;gt; to the class &amp;lt;e&amp;gt;RESIZABLE&amp;lt;/e&amp;gt; and its descendants to allow for minimazing the use of allocated storage.&lt;br /&gt;
* studio: Allows users to double left click on the editor tab ribbon to create a new tab. The tab is created on the right, as that is where users click. Once the tab is opened then the address bar is&lt;br /&gt;
focused and the contents removed. It's ready for editing.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* library: Modified &amp;lt;e&amp;gt;ARRAYED_QUEUE&amp;lt;/e&amp;gt; to avoid using an extra slot that did not keep any value and was used only for implementation purposes.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==6.6.8.2636 (March 22nd 2010)==&lt;br /&gt;
===New features===&lt;br /&gt;
* {{Red|base: Added support for correct mismatch in the SED serialization cluster.}}&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*runtime: When twinning a SPECIAL instance where `capacity' is much higher than its `count' the new copy will have its `capacity' set to `count'.&lt;br /&gt;
* studio: added new Error List tool preference &amp;quot;tools.error_list.show_tooltip&amp;quot;, so end users can specify if rich tooltip window should be shown automatically in the Error List tool.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* compiler: Fixed bug#16545 when compiler did not detect that a new file does not contain an expected class after referencing it in a system (see test#incr340).&lt;br /&gt;
* compiler: Fixed several recompilation bugs (bug#16546, bug#16547, bug#16553) for cases when a feature with assertions is removed from a parent class while a child class remains unchanged (see test#incr341, test#incr342, test#incr343).&lt;br /&gt;
* studio: Fixed bug#15788 (bug#16209, bug#16278) Error tooltip flashing when mouse outside of EiffelStudio&lt;br /&gt;
* studio: Fixed bug#16543 Searching in feature Implementers or Descendants does not scroll to show match&lt;br /&gt;
* compiler: Fixed recompilation bugs (bug#14525, bug#16052) that caused compiler crash or incorrect error message when checking inherited code of a client that refers to a feature that is (re)moved (see test#incr293, test#incr338).&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*{{Red|studio: The experimental mode is now gone, it has become the default. To have access to the default mode of 6.5, one has to use the compatible version.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.6.8.2484 (March 1st 2010)==&lt;br /&gt;
===New features===&lt;br /&gt;
* {{Red|Compiler: Added a new option '''Total Order on REALs''' which let you have NaN equal to NaN  and NaN being the smallest number of all. This option is disabled by default as it could break existing code. The rationale for this option is to have contracts work properly when manipulating the NaN value and not getting spurious contract violation.}}&lt;br /&gt;
* {{Red|Compiler: Added the ability to version a class for storable. It is done via the note clause of a class, i.e. '''note storable_version: tag'''. When the storing and retrieving system have a different version a mismatch is triggered even if they look to have the same content.}}&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* studio: added the inherit clauses in the &amp;quot;Features tool&amp;quot; (to ease navigation in the edited class)&lt;br /&gt;
* compiler: Added support of transient attributes for .NET. Added queries in INTERNAL to find out the transient attributes. Extended the Eiffel serialization SED to support them.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed eweasel test#exec324 where a recent optimization would optimize away the code generation of the target of a call to `do_nothing'.&lt;br /&gt;
*compiler: Fixed in void-safe mode conformance of ''detachable COMPARABLE'' to ''attached ANY''. Fixes updated eweasel test#conform001.&lt;br /&gt;
*studio: do not open more than one breakpoint dialog on the same breakpoint (avoid conflict)&lt;br /&gt;
*debugger: Fixed bug#16618: Setting conditional breakpoint sometimes sets unconditional breakpoint&lt;br /&gt;
*runtime: Fixed eweasel test#exec323 where comparison using &amp;lt;= or &amp;gt;= in melted mode which involved NaN was not yielding the same result as in workbench mode.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*studio: the format for layout has changed so you might end up having to delete the EiffelStudio private files to get the correct layout.&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.6.8.2214 (February 1st 2010)==&lt;br /&gt;
===New features===&lt;br /&gt;
* compiler: Supported new variant of a check instruction that is not subject for assertion monitoring settings (in other words the check cannot be turned off) and can be used to introduce a new void safe scope of a read-only or object test local:&lt;br /&gt;
&amp;lt;e&amp;gt;check Assertion then&lt;br /&gt;
   Compound&lt;br /&gt;
end&amp;lt;/e&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*runtime: Redone some of the multithreading internals of the Eiffel runtime to make it easier to add platforms and to ensure the same behavior on various platforms.&lt;br /&gt;
*runtime: On Windows, the MUTEX class is now internally using a CRITICAL_SECTION object which is much more efficient especially with multiprocessors.&lt;br /&gt;
*{{Red|base: Added support for nan, negative_infinity, positive_infinity and their `is_xxx' corresponding queries.}}&lt;br /&gt;
*base: Allowed {ARRAY}.force to be used with arrays of attached types when index is either `lower - 1' or `upper + 1'. This let you progressively fill an empty array from 1 to the expected count.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed eweasel test#agent001 and test#agent013 by preventing wrong optimization when call to `{ROUTINE}.call' or `{FUNCTION}.item' are subject to dynamic binding.&lt;br /&gt;
*compiler: Fixed bug#16593 where finalizing twice in the same sessions with many changes in the system could cause the compiler to crash during degree -3.&lt;br /&gt;
*studio: Fixed editor refresh issue when saving modifications in the Contract Tool.&lt;br /&gt;
*studio: Fixed catcalls when building the Contract Tool.&lt;br /&gt;
*studio: Fixed bug#14857 Store the external commands in ISE User files&lt;br /&gt;
*studio: Fixed bug#16410 Error List window comes up blank on error if auto-hidden when estudio started&lt;br /&gt;
*debugger: Fixed a hang in EiffelStudio when inspecting a different threads than the current stopped one on platforms where thread identifiers are larger than 32-bit (e.g. Linux)&lt;br /&gt;
*{{Red|runtime: Made sure to use recursive mutexes on all our platforms.}}&lt;br /&gt;
*runtime: Fixed eweasel test#store029 where retrieving a storable made by 6.3 or older could fail with a mismatch error when there is actually no mismatch.&lt;br /&gt;
*net: Fixed tftp_server_console sample so that it uses a multithreaded precompilation of EiffelBase and fixed a precondition violation when receiving a GET command.&lt;br /&gt;
*net: Fixed precondition violation in {ARRAY}.force when compiling EiffelNet in void-safe mode.&lt;br /&gt;
*{{Red|net: Changed internal of MEDIUM_POLLER to use HASH_TABLE, as a consequence the queries `read_command_list', `write_command_list' and `exception_command_list' are now obsolete and should not be used.}}&lt;br /&gt;
*{{Red|base: Fixed ARRAY2 so that it can be used in void-safe mode too. Improved ARRAY2 resizing efficiency.}}&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*{{Red|thread: Made the THREAD class thread-safe which prevents using the same object to launch a new thread. Now there is a precondition `is_launchable' and a status report `is_last_launch_successful' to help finding out if a thread was really launched.}}&lt;br /&gt;
*{{Red|base: Changed the display of REAL/DOUBLE fields to show REAL_32 or REAL_64.}}&lt;br /&gt;
*{{Red|base: Changed the display of NaN/-Infinity/Infinity for real numbers so that it is the same on all our supported platforms.}}&lt;br /&gt;
*{{Red|compiler: Now the compiler will report usage of &amp;lt;e&amp;gt;is&amp;lt;/e&amp;gt; keyword as obsolete in transitional mode and will reject it in standard mode.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.6_Releases&amp;diff=13746</id>
		<title>EiffelStudio 6.6 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.6_Releases&amp;diff=13746"/>
				<updated>2010-03-18T03:57:39Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Bug fixes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.6.x Releases=&lt;br /&gt;
&lt;br /&gt;
==6.6.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release. &lt;br /&gt;
&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
*runtime: When twinning a SPECIAL instance where `capacity' is much higher than its `count' the new copy will have its `capacity' set to `count'.&lt;br /&gt;
* studio: added new Error List tool preference &amp;quot;tools.error_list.show_tooltip&amp;quot;, so end users can specify if rich tooltip window should be shown automatically in the Error List tool.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* compiler: Fixed bug#16545 when compiler did not detect that a new file does not contain an expected class after referencing it in a system (see test#incr340).&lt;br /&gt;
* compiler: Fixed several recompilation bugs (bug#16546, bug#16547, bug#16553) for cases when a feature with assertions is removed from a parent class while a child class remains unchanged (see test#incr341, test#incr342, test#incr343).&lt;br /&gt;
* studio: Fixed bug#15788 (bug#16209, bug#16278) Error tooltip flashing when mouse outside of EiffelStudio&lt;br /&gt;
* studio: Fixed bug#16543 Searching in feature Implementers or Descendants does not scroll to show match&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==6.6.8.2484 (March 1st 2010)==&lt;br /&gt;
===New features===&lt;br /&gt;
* {{Red|Compiler: Added a new option '''Total Order on REALs''' which let you have NaN equal to NaN  and NaN being the smallest number of all. This option is disabled by default as it could break existing code. The rationale for this option is to have contracts work properly when manipulating the NaN value and not getting spurious contract violation.}}&lt;br /&gt;
* {{Red|Compiler: Added the ability to version a class for storable. It is done via the note clause of a class, i.e. '''note storable_version: tag'''. When the storing and retrieving system have a different version a mismatch is triggered even if they look to have the same content.}}&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* studio: added the inherit clauses in the &amp;quot;Features tool&amp;quot; (to ease navigation in the edited class)&lt;br /&gt;
* compiler: Added support of transient attributes for .NET. Added queries in INTERNAL to find out the transient attributes. Extended the Eiffel serialization SED to support them.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed eweasel test#exec324 where a recent optimization would optimize away the code generation of the target of a call to `do_nothing'.&lt;br /&gt;
*compiler: Fixed in void-safe mode conformance of ''detachable COMPARABLE'' to ''attached ANY''. Fixes updated eweasel test#conform001.&lt;br /&gt;
*studio: do not open more than one breakpoint dialog on the same breakpoint (avoid conflict)&lt;br /&gt;
*debugger: Fixed bug#16618: Setting conditional breakpoint sometimes sets unconditional breakpoint&lt;br /&gt;
*runtime: Fixed eweasel test#exec323 where comparison using &amp;lt;= or &amp;gt;= in melted mode which involved NaN was not yielding the same result as in workbench mode.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*studio: the format for layout has changed so you might end up having to delete the EiffelStudio private files to get the correct layout.&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.6.8.2214 (February 1st 2010)==&lt;br /&gt;
===New features===&lt;br /&gt;
* compiler: Supported new variant of a check instruction that is not subject for assertion monitoring settings (in other words the check cannot be turned off) and can be used to introduce a new void safe scope of a read-only or object test local:&lt;br /&gt;
&amp;lt;e&amp;gt;check Assertion then&lt;br /&gt;
   Compound&lt;br /&gt;
end&amp;lt;/e&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*runtime: Redone some of the multithreading internals of the Eiffel runtime to make it easier to add platforms and to ensure the same behavior on various platforms.&lt;br /&gt;
*runtime: On Windows, the MUTEX class is now internally using a CRITICAL_SECTION object which is much more efficient especially with multiprocessors.&lt;br /&gt;
*{{Red|base: Added support for nan, negative_infinity, positive_infinity and their `is_xxx' corresponding queries.}}&lt;br /&gt;
*base: Allowed {ARRAY}.force to be used with arrays of attached types when index is either `lower - 1' or `upper + 1'. This let you progressively fill an empty array from 1 to the expected count.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed eweasel test#agent001 and test#agent013 by preventing wrong optimization when call to `{ROUTINE}.call' or `{FUNCTION}.item' are subject to dynamic binding.&lt;br /&gt;
*compiler: Fixed bug#16593 where finalizing twice in the same sessions with many changes in the system could cause the compiler to crash during degree -3.&lt;br /&gt;
*studio: Fixed editor refresh issue when saving modifications in the Contract Tool.&lt;br /&gt;
*studio: Fixed catcalls when building the Contract Tool.&lt;br /&gt;
*studio: Fixed bug#14857 Store the external commands in ISE User files&lt;br /&gt;
*studio: Fixed bug#16410 Error List window comes up blank on error if auto-hidden when estudio started&lt;br /&gt;
*debugger: Fixed a hang in EiffelStudio when inspecting a different threads than the current stopped one on platforms where thread identifiers are larger than 32-bit (e.g. Linux)&lt;br /&gt;
*{{Red|runtime: Made sure to use recursive mutexes on all our platforms.}}&lt;br /&gt;
*runtime: Fixed eweasel test#store029 where retrieving a storable made by 6.3 or older could fail with a mismatch error when there is actually no mismatch.&lt;br /&gt;
*net: Fixed tftp_server_console sample so that it uses a multithreaded precompilation of EiffelBase and fixed a precondition violation when receiving a GET command.&lt;br /&gt;
*net: Fixed precondition violation in {ARRAY}.force when compiling EiffelNet in void-safe mode.&lt;br /&gt;
*{{Red|net: Changed internal of MEDIUM_POLLER to use HASH_TABLE, as a consequence the queries `read_command_list', `write_command_list' and `exception_command_list' are now obsolete and should not be used.}}&lt;br /&gt;
*{{Red|base: Fixed ARRAY2 so that it can be used in void-safe mode too. Improved ARRAY2 resizing efficiency.}}&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*{{Red|thread: Made the THREAD class thread-safe which prevents using the same object to launch a new thread. Now there is a precondition `is_launchable' and a status report `is_last_launch_successful' to help finding out if a thread was really launched.}}&lt;br /&gt;
*{{Red|base: Changed the display of REAL/DOUBLE fields to show REAL_32 or REAL_64.}}&lt;br /&gt;
*{{Red|base: Changed the display of NaN/-Infinity/Infinity for real numbers so that it is the same on all our supported platforms.}}&lt;br /&gt;
*{{Red|compiler: Now the compiler will report usage of &amp;lt;e&amp;gt;is&amp;lt;/e&amp;gt; keyword as obsolete in transitional mode and will reject it in standard mode.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.6_Releases&amp;diff=13745</id>
		<title>EiffelStudio 6.6 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.6_Releases&amp;diff=13745"/>
				<updated>2010-03-15T09:11:08Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Improvements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.6.x Releases=&lt;br /&gt;
&lt;br /&gt;
==6.6.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release. &lt;br /&gt;
&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
*runtime: When twinning a SPECIAL instance where `capacity' is much higher than its `count' the new copy will have its `capacity' set to `count'.&lt;br /&gt;
* studio: added new Error List tool preference &amp;quot;tools.error_list.show_tooltip&amp;quot;, so end users can specify if rich tooltip window should be shown automatically in the Error List tool.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* compiler: Fixed bug#16545 when compiler did not detect that a new file does not contain an expected class after referencing it in a system (see test#incr340).&lt;br /&gt;
* compiler: Fixed several recompilation bugs (bug#16546, bug#16547, bug#16553) for cases when a feature with assertions is removed from a parent class while a child class remains unchanged (see test#incr341, test#incr342, test#incr343).&lt;br /&gt;
* studio: Fixed bug#15788 (bug#16209, bug#16278) Error tooltip flashing when mouse outside of EiffelStudio&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==6.6.8.2484 (March 1st 2010)==&lt;br /&gt;
===New features===&lt;br /&gt;
* {{Red|Compiler: Added a new option '''Total Order on REALs''' which let you have NaN equal to NaN  and NaN being the smallest number of all. This option is disabled by default as it could break existing code. The rationale for this option is to have contracts work properly when manipulating the NaN value and not getting spurious contract violation.}}&lt;br /&gt;
* {{Red|Compiler: Added the ability to version a class for storable. It is done via the note clause of a class, i.e. '''note storable_version: tag'''. When the storing and retrieving system have a different version a mismatch is triggered even if they look to have the same content.}}&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* studio: added the inherit clauses in the &amp;quot;Features tool&amp;quot; (to ease navigation in the edited class)&lt;br /&gt;
* compiler: Added support of transient attributes for .NET. Added queries in INTERNAL to find out the transient attributes. Extended the Eiffel serialization SED to support them.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed eweasel test#exec324 where a recent optimization would optimize away the code generation of the target of a call to `do_nothing'.&lt;br /&gt;
*compiler: Fixed in void-safe mode conformance of ''detachable COMPARABLE'' to ''attached ANY''. Fixes updated eweasel test#conform001.&lt;br /&gt;
*studio: do not open more than one breakpoint dialog on the same breakpoint (avoid conflict)&lt;br /&gt;
*debugger: Fixed bug#16618: Setting conditional breakpoint sometimes sets unconditional breakpoint&lt;br /&gt;
*runtime: Fixed eweasel test#exec323 where comparison using &amp;lt;= or &amp;gt;= in melted mode which involved NaN was not yielding the same result as in workbench mode.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*studio: the format for layout has changed so you might end up having to delete the EiffelStudio private files to get the correct layout.&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.6.8.2214 (February 1st 2010)==&lt;br /&gt;
===New features===&lt;br /&gt;
* compiler: Supported new variant of a check instruction that is not subject for assertion monitoring settings (in other words the check cannot be turned off) and can be used to introduce a new void safe scope of a read-only or object test local:&lt;br /&gt;
&amp;lt;e&amp;gt;check Assertion then&lt;br /&gt;
   Compound&lt;br /&gt;
end&amp;lt;/e&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*runtime: Redone some of the multithreading internals of the Eiffel runtime to make it easier to add platforms and to ensure the same behavior on various platforms.&lt;br /&gt;
*runtime: On Windows, the MUTEX class is now internally using a CRITICAL_SECTION object which is much more efficient especially with multiprocessors.&lt;br /&gt;
*{{Red|base: Added support for nan, negative_infinity, positive_infinity and their `is_xxx' corresponding queries.}}&lt;br /&gt;
*base: Allowed {ARRAY}.force to be used with arrays of attached types when index is either `lower - 1' or `upper + 1'. This let you progressively fill an empty array from 1 to the expected count.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed eweasel test#agent001 and test#agent013 by preventing wrong optimization when call to `{ROUTINE}.call' or `{FUNCTION}.item' are subject to dynamic binding.&lt;br /&gt;
*compiler: Fixed bug#16593 where finalizing twice in the same sessions with many changes in the system could cause the compiler to crash during degree -3.&lt;br /&gt;
*studio: Fixed editor refresh issue when saving modifications in the Contract Tool.&lt;br /&gt;
*studio: Fixed catcalls when building the Contract Tool.&lt;br /&gt;
*studio: Fixed bug#14857 Store the external commands in ISE User files&lt;br /&gt;
*studio: Fixed bug#16410 Error List window comes up blank on error if auto-hidden when estudio started&lt;br /&gt;
*debugger: Fixed a hang in EiffelStudio when inspecting a different threads than the current stopped one on platforms where thread identifiers are larger than 32-bit (e.g. Linux)&lt;br /&gt;
*{{Red|runtime: Made sure to use recursive mutexes on all our platforms.}}&lt;br /&gt;
*runtime: Fixed eweasel test#store029 where retrieving a storable made by 6.3 or older could fail with a mismatch error when there is actually no mismatch.&lt;br /&gt;
*net: Fixed tftp_server_console sample so that it uses a multithreaded precompilation of EiffelBase and fixed a precondition violation when receiving a GET command.&lt;br /&gt;
*net: Fixed precondition violation in {ARRAY}.force when compiling EiffelNet in void-safe mode.&lt;br /&gt;
*{{Red|net: Changed internal of MEDIUM_POLLER to use HASH_TABLE, as a consequence the queries `read_command_list', `write_command_list' and `exception_command_list' are now obsolete and should not be used.}}&lt;br /&gt;
*{{Red|base: Fixed ARRAY2 so that it can be used in void-safe mode too. Improved ARRAY2 resizing efficiency.}}&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*{{Red|thread: Made the THREAD class thread-safe which prevents using the same object to launch a new thread. Now there is a precondition `is_launchable' and a status report `is_last_launch_successful' to help finding out if a thread was really launched.}}&lt;br /&gt;
*{{Red|base: Changed the display of REAL/DOUBLE fields to show REAL_32 or REAL_64.}}&lt;br /&gt;
*{{Red|base: Changed the display of NaN/-Infinity/Infinity for real numbers so that it is the same on all our supported platforms.}}&lt;br /&gt;
*{{Red|compiler: Now the compiler will report usage of &amp;lt;e&amp;gt;is&amp;lt;/e&amp;gt; keyword as obsolete in transitional mode and will reject it in standard mode.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.6_Releases&amp;diff=13744</id>
		<title>EiffelStudio 6.6 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.6_Releases&amp;diff=13744"/>
				<updated>2010-03-15T09:10:54Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Improvements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.6.x Releases=&lt;br /&gt;
&lt;br /&gt;
==6.6.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release. &lt;br /&gt;
&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
*runtime: When twinning a SPECIAL instance where `capacity' is much higher than its `count' the new copy will have its `capacity' set to `count'.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* compiler: Fixed bug#16545 when compiler did not detect that a new file does not contain an expected class after referencing it in a system (see test#incr340).&lt;br /&gt;
* compiler: Fixed several recompilation bugs (bug#16546, bug#16547, bug#16553) for cases when a feature with assertions is removed from a parent class while a child class remains unchanged (see test#incr341, test#incr342, test#incr343).&lt;br /&gt;
* studio: Fixed bug#15788 (bug#16209, bug#16278) Error tooltip flashing when mouse outside of EiffelStudio&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==6.6.8.2484 (March 1st 2010)==&lt;br /&gt;
===New features===&lt;br /&gt;
* {{Red|Compiler: Added a new option '''Total Order on REALs''' which let you have NaN equal to NaN  and NaN being the smallest number of all. This option is disabled by default as it could break existing code. The rationale for this option is to have contracts work properly when manipulating the NaN value and not getting spurious contract violation.}}&lt;br /&gt;
* {{Red|Compiler: Added the ability to version a class for storable. It is done via the note clause of a class, i.e. '''note storable_version: tag'''. When the storing and retrieving system have a different version a mismatch is triggered even if they look to have the same content.}}&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* studio: added the inherit clauses in the &amp;quot;Features tool&amp;quot; (to ease navigation in the edited class)&lt;br /&gt;
* compiler: Added support of transient attributes for .NET. Added queries in INTERNAL to find out the transient attributes. Extended the Eiffel serialization SED to support them.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed eweasel test#exec324 where a recent optimization would optimize away the code generation of the target of a call to `do_nothing'.&lt;br /&gt;
*compiler: Fixed in void-safe mode conformance of ''detachable COMPARABLE'' to ''attached ANY''. Fixes updated eweasel test#conform001.&lt;br /&gt;
*studio: do not open more than one breakpoint dialog on the same breakpoint (avoid conflict)&lt;br /&gt;
*debugger: Fixed bug#16618: Setting conditional breakpoint sometimes sets unconditional breakpoint&lt;br /&gt;
*runtime: Fixed eweasel test#exec323 where comparison using &amp;lt;= or &amp;gt;= in melted mode which involved NaN was not yielding the same result as in workbench mode.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*studio: the format for layout has changed so you might end up having to delete the EiffelStudio private files to get the correct layout.&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.6.8.2214 (February 1st 2010)==&lt;br /&gt;
===New features===&lt;br /&gt;
* compiler: Supported new variant of a check instruction that is not subject for assertion monitoring settings (in other words the check cannot be turned off) and can be used to introduce a new void safe scope of a read-only or object test local:&lt;br /&gt;
&amp;lt;e&amp;gt;check Assertion then&lt;br /&gt;
   Compound&lt;br /&gt;
end&amp;lt;/e&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*runtime: Redone some of the multithreading internals of the Eiffel runtime to make it easier to add platforms and to ensure the same behavior on various platforms.&lt;br /&gt;
*runtime: On Windows, the MUTEX class is now internally using a CRITICAL_SECTION object which is much more efficient especially with multiprocessors.&lt;br /&gt;
*{{Red|base: Added support for nan, negative_infinity, positive_infinity and their `is_xxx' corresponding queries.}}&lt;br /&gt;
*base: Allowed {ARRAY}.force to be used with arrays of attached types when index is either `lower - 1' or `upper + 1'. This let you progressively fill an empty array from 1 to the expected count.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed eweasel test#agent001 and test#agent013 by preventing wrong optimization when call to `{ROUTINE}.call' or `{FUNCTION}.item' are subject to dynamic binding.&lt;br /&gt;
*compiler: Fixed bug#16593 where finalizing twice in the same sessions with many changes in the system could cause the compiler to crash during degree -3.&lt;br /&gt;
*studio: Fixed editor refresh issue when saving modifications in the Contract Tool.&lt;br /&gt;
*studio: Fixed catcalls when building the Contract Tool.&lt;br /&gt;
*studio: Fixed bug#14857 Store the external commands in ISE User files&lt;br /&gt;
*studio: Fixed bug#16410 Error List window comes up blank on error if auto-hidden when estudio started&lt;br /&gt;
*debugger: Fixed a hang in EiffelStudio when inspecting a different threads than the current stopped one on platforms where thread identifiers are larger than 32-bit (e.g. Linux)&lt;br /&gt;
*{{Red|runtime: Made sure to use recursive mutexes on all our platforms.}}&lt;br /&gt;
*runtime: Fixed eweasel test#store029 where retrieving a storable made by 6.3 or older could fail with a mismatch error when there is actually no mismatch.&lt;br /&gt;
*net: Fixed tftp_server_console sample so that it uses a multithreaded precompilation of EiffelBase and fixed a precondition violation when receiving a GET command.&lt;br /&gt;
*net: Fixed precondition violation in {ARRAY}.force when compiling EiffelNet in void-safe mode.&lt;br /&gt;
*{{Red|net: Changed internal of MEDIUM_POLLER to use HASH_TABLE, as a consequence the queries `read_command_list', `write_command_list' and `exception_command_list' are now obsolete and should not be used.}}&lt;br /&gt;
*{{Red|base: Fixed ARRAY2 so that it can be used in void-safe mode too. Improved ARRAY2 resizing efficiency.}}&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*{{Red|thread: Made the THREAD class thread-safe which prevents using the same object to launch a new thread. Now there is a precondition `is_launchable' and a status report `is_last_launch_successful' to help finding out if a thread was really launched.}}&lt;br /&gt;
*{{Red|base: Changed the display of REAL/DOUBLE fields to show REAL_32 or REAL_64.}}&lt;br /&gt;
*{{Red|base: Changed the display of NaN/-Infinity/Infinity for real numbers so that it is the same on all our supported platforms.}}&lt;br /&gt;
*{{Red|compiler: Now the compiler will report usage of &amp;lt;e&amp;gt;is&amp;lt;/e&amp;gt; keyword as obsolete in transitional mode and will reject it in standard mode.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.6_Releases&amp;diff=13743</id>
		<title>EiffelStudio 6.6 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.6_Releases&amp;diff=13743"/>
				<updated>2010-03-15T09:10:33Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Improvements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.6.x Releases=&lt;br /&gt;
&lt;br /&gt;
==6.6.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release. &lt;br /&gt;
&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
*runtime: When twinning a SPECIAL instance where `capacity' is much higher than its `count' the new copy will have its `capacity' set to `count'.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* compiler: Fixed bug#16545 when compiler did not detect that a new file does not contain an expected class after referencing it in a system (see test#incr340).&lt;br /&gt;
* compiler: Fixed several recompilation bugs (bug#16546, bug#16547, bug#16553) for cases when a feature with assertions is removed from a parent class while a child class remains unchanged (see test#incr341, test#incr342, test#incr343).&lt;br /&gt;
* studio: Fixed bug#15788 (bug#16209, bug#16278) Error tooltip flashing when mouse outside of EiffelStudio&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==6.6.8.2484 (March 1st 2010)==&lt;br /&gt;
===New features===&lt;br /&gt;
* {{Red|Compiler: Added a new option '''Total Order on REALs''' which let you have NaN equal to NaN  and NaN being the smallest number of all. This option is disabled by default as it could break existing code. The rationale for this option is to have contracts work properly when manipulating the NaN value and not getting spurious contract violation.}}&lt;br /&gt;
* {{Red|Compiler: Added the ability to version a class for storable. It is done via the note clause of a class, i.e. '''note storable_version: tag'''. When the storing and retrieving system have a different version a mismatch is triggered even if they look to have the same content.}}&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* studio: added the inherit clauses in the &amp;quot;Features tool&amp;quot; (to ease navigation in the edited class)&lt;br /&gt;
* studio: added new Error List tool preference &amp;quot;tools.error_list.show_tooltip&amp;quot;, so end users can specify if rich tooltip window should be shown automatically in the Error List tool.&lt;br /&gt;
* compiler: Added support of transient attributes for .NET. Added queries in INTERNAL to find out the transient attributes. Extended the Eiffel serialization SED to support them.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed eweasel test#exec324 where a recent optimization would optimize away the code generation of the target of a call to `do_nothing'.&lt;br /&gt;
*compiler: Fixed in void-safe mode conformance of ''detachable COMPARABLE'' to ''attached ANY''. Fixes updated eweasel test#conform001.&lt;br /&gt;
*studio: do not open more than one breakpoint dialog on the same breakpoint (avoid conflict)&lt;br /&gt;
*debugger: Fixed bug#16618: Setting conditional breakpoint sometimes sets unconditional breakpoint&lt;br /&gt;
*runtime: Fixed eweasel test#exec323 where comparison using &amp;lt;= or &amp;gt;= in melted mode which involved NaN was not yielding the same result as in workbench mode.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*studio: the format for layout has changed so you might end up having to delete the EiffelStudio private files to get the correct layout.&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.6.8.2214 (February 1st 2010)==&lt;br /&gt;
===New features===&lt;br /&gt;
* compiler: Supported new variant of a check instruction that is not subject for assertion monitoring settings (in other words the check cannot be turned off) and can be used to introduce a new void safe scope of a read-only or object test local:&lt;br /&gt;
&amp;lt;e&amp;gt;check Assertion then&lt;br /&gt;
   Compound&lt;br /&gt;
end&amp;lt;/e&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*runtime: Redone some of the multithreading internals of the Eiffel runtime to make it easier to add platforms and to ensure the same behavior on various platforms.&lt;br /&gt;
*runtime: On Windows, the MUTEX class is now internally using a CRITICAL_SECTION object which is much more efficient especially with multiprocessors.&lt;br /&gt;
*{{Red|base: Added support for nan, negative_infinity, positive_infinity and their `is_xxx' corresponding queries.}}&lt;br /&gt;
*base: Allowed {ARRAY}.force to be used with arrays of attached types when index is either `lower - 1' or `upper + 1'. This let you progressively fill an empty array from 1 to the expected count.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed eweasel test#agent001 and test#agent013 by preventing wrong optimization when call to `{ROUTINE}.call' or `{FUNCTION}.item' are subject to dynamic binding.&lt;br /&gt;
*compiler: Fixed bug#16593 where finalizing twice in the same sessions with many changes in the system could cause the compiler to crash during degree -3.&lt;br /&gt;
*studio: Fixed editor refresh issue when saving modifications in the Contract Tool.&lt;br /&gt;
*studio: Fixed catcalls when building the Contract Tool.&lt;br /&gt;
*studio: Fixed bug#14857 Store the external commands in ISE User files&lt;br /&gt;
*studio: Fixed bug#16410 Error List window comes up blank on error if auto-hidden when estudio started&lt;br /&gt;
*debugger: Fixed a hang in EiffelStudio when inspecting a different threads than the current stopped one on platforms where thread identifiers are larger than 32-bit (e.g. Linux)&lt;br /&gt;
*{{Red|runtime: Made sure to use recursive mutexes on all our platforms.}}&lt;br /&gt;
*runtime: Fixed eweasel test#store029 where retrieving a storable made by 6.3 or older could fail with a mismatch error when there is actually no mismatch.&lt;br /&gt;
*net: Fixed tftp_server_console sample so that it uses a multithreaded precompilation of EiffelBase and fixed a precondition violation when receiving a GET command.&lt;br /&gt;
*net: Fixed precondition violation in {ARRAY}.force when compiling EiffelNet in void-safe mode.&lt;br /&gt;
*{{Red|net: Changed internal of MEDIUM_POLLER to use HASH_TABLE, as a consequence the queries `read_command_list', `write_command_list' and `exception_command_list' are now obsolete and should not be used.}}&lt;br /&gt;
*{{Red|base: Fixed ARRAY2 so that it can be used in void-safe mode too. Improved ARRAY2 resizing efficiency.}}&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*{{Red|thread: Made the THREAD class thread-safe which prevents using the same object to launch a new thread. Now there is a precondition `is_launchable' and a status report `is_last_launch_successful' to help finding out if a thread was really launched.}}&lt;br /&gt;
*{{Red|base: Changed the display of REAL/DOUBLE fields to show REAL_32 or REAL_64.}}&lt;br /&gt;
*{{Red|base: Changed the display of NaN/-Infinity/Infinity for real numbers so that it is the same on all our supported platforms.}}&lt;br /&gt;
*{{Red|compiler: Now the compiler will report usage of &amp;lt;e&amp;gt;is&amp;lt;/e&amp;gt; keyword as obsolete in transitional mode and will reject it in standard mode.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.6_Releases&amp;diff=13742</id>
		<title>EiffelStudio 6.6 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.6_Releases&amp;diff=13742"/>
				<updated>2010-03-15T09:09:43Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Bug fixes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.6.x Releases=&lt;br /&gt;
&lt;br /&gt;
==6.6.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release. &lt;br /&gt;
&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
*runtime: When twinning a SPECIAL instance where `capacity' is much higher than its `count' the new copy will have its `capacity' set to `count'.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* compiler: Fixed bug#16545 when compiler did not detect that a new file does not contain an expected class after referencing it in a system (see test#incr340).&lt;br /&gt;
* compiler: Fixed several recompilation bugs (bug#16546, bug#16547, bug#16553) for cases when a feature with assertions is removed from a parent class while a child class remains unchanged (see test#incr341, test#incr342, test#incr343).&lt;br /&gt;
* studio: Fixed bug#15788 (bug#16209, bug#16278) Error tooltip flashing when mouse outside of EiffelStudio&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==6.6.8.2484 (March 1st 2010)==&lt;br /&gt;
===New features===&lt;br /&gt;
* {{Red|Compiler: Added a new option '''Total Order on REALs''' which let you have NaN equal to NaN  and NaN being the smallest number of all. This option is disabled by default as it could break existing code. The rationale for this option is to have contracts work properly when manipulating the NaN value and not getting spurious contract violation.}}&lt;br /&gt;
* {{Red|Compiler: Added the ability to version a class for storable. It is done via the note clause of a class, i.e. '''note storable_version: tag'''. When the storing and retrieving system have a different version a mismatch is triggered even if they look to have the same content.}}&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* studio: added the inherit clauses in the &amp;quot;Features tool&amp;quot; (to ease navigation in the edited class)&lt;br /&gt;
* compiler: Added support of transient attributes for .NET. Added queries in INTERNAL to find out the transient attributes. Extended the Eiffel serialization SED to support them.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed eweasel test#exec324 where a recent optimization would optimize away the code generation of the target of a call to `do_nothing'.&lt;br /&gt;
*compiler: Fixed in void-safe mode conformance of ''detachable COMPARABLE'' to ''attached ANY''. Fixes updated eweasel test#conform001.&lt;br /&gt;
*studio: do not open more than one breakpoint dialog on the same breakpoint (avoid conflict)&lt;br /&gt;
*debugger: Fixed bug#16618: Setting conditional breakpoint sometimes sets unconditional breakpoint&lt;br /&gt;
*runtime: Fixed eweasel test#exec323 where comparison using &amp;lt;= or &amp;gt;= in melted mode which involved NaN was not yielding the same result as in workbench mode.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*studio: the format for layout has changed so you might end up having to delete the EiffelStudio private files to get the correct layout.&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.6.8.2214 (February 1st 2010)==&lt;br /&gt;
===New features===&lt;br /&gt;
* compiler: Supported new variant of a check instruction that is not subject for assertion monitoring settings (in other words the check cannot be turned off) and can be used to introduce a new void safe scope of a read-only or object test local:&lt;br /&gt;
&amp;lt;e&amp;gt;check Assertion then&lt;br /&gt;
   Compound&lt;br /&gt;
end&amp;lt;/e&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*runtime: Redone some of the multithreading internals of the Eiffel runtime to make it easier to add platforms and to ensure the same behavior on various platforms.&lt;br /&gt;
*runtime: On Windows, the MUTEX class is now internally using a CRITICAL_SECTION object which is much more efficient especially with multiprocessors.&lt;br /&gt;
*{{Red|base: Added support for nan, negative_infinity, positive_infinity and their `is_xxx' corresponding queries.}}&lt;br /&gt;
*base: Allowed {ARRAY}.force to be used with arrays of attached types when index is either `lower - 1' or `upper + 1'. This let you progressively fill an empty array from 1 to the expected count.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed eweasel test#agent001 and test#agent013 by preventing wrong optimization when call to `{ROUTINE}.call' or `{FUNCTION}.item' are subject to dynamic binding.&lt;br /&gt;
*compiler: Fixed bug#16593 where finalizing twice in the same sessions with many changes in the system could cause the compiler to crash during degree -3.&lt;br /&gt;
*studio: Fixed editor refresh issue when saving modifications in the Contract Tool.&lt;br /&gt;
*studio: Fixed catcalls when building the Contract Tool.&lt;br /&gt;
*studio: Fixed bug#14857 Store the external commands in ISE User files&lt;br /&gt;
*studio: Fixed bug#16410 Error List window comes up blank on error if auto-hidden when estudio started&lt;br /&gt;
*debugger: Fixed a hang in EiffelStudio when inspecting a different threads than the current stopped one on platforms where thread identifiers are larger than 32-bit (e.g. Linux)&lt;br /&gt;
*{{Red|runtime: Made sure to use recursive mutexes on all our platforms.}}&lt;br /&gt;
*runtime: Fixed eweasel test#store029 where retrieving a storable made by 6.3 or older could fail with a mismatch error when there is actually no mismatch.&lt;br /&gt;
*net: Fixed tftp_server_console sample so that it uses a multithreaded precompilation of EiffelBase and fixed a precondition violation when receiving a GET command.&lt;br /&gt;
*net: Fixed precondition violation in {ARRAY}.force when compiling EiffelNet in void-safe mode.&lt;br /&gt;
*{{Red|net: Changed internal of MEDIUM_POLLER to use HASH_TABLE, as a consequence the queries `read_command_list', `write_command_list' and `exception_command_list' are now obsolete and should not be used.}}&lt;br /&gt;
*{{Red|base: Fixed ARRAY2 so that it can be used in void-safe mode too. Improved ARRAY2 resizing efficiency.}}&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*{{Red|thread: Made the THREAD class thread-safe which prevents using the same object to launch a new thread. Now there is a precondition `is_launchable' and a status report `is_last_launch_successful' to help finding out if a thread was really launched.}}&lt;br /&gt;
*{{Red|base: Changed the display of REAL/DOUBLE fields to show REAL_32 or REAL_64.}}&lt;br /&gt;
*{{Red|base: Changed the display of NaN/-Infinity/Infinity for real numbers so that it is the same on all our supported platforms.}}&lt;br /&gt;
*{{Red|compiler: Now the compiler will report usage of &amp;lt;e&amp;gt;is&amp;lt;/e&amp;gt; keyword as obsolete in transitional mode and will reject it in standard mode.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.6_Releases&amp;diff=13567</id>
		<title>EiffelStudio 6.6 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.6_Releases&amp;diff=13567"/>
				<updated>2010-01-05T03:12:27Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Bug fixes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.6.x Releases=&lt;br /&gt;
&lt;br /&gt;
==6.6.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release. &lt;br /&gt;
&lt;br /&gt;
===New features===&lt;br /&gt;
* compiler: Supported new variant of a check instruction that is not subject for assertion monitoring settings (in other words the check cannot be turned off) and can be used to introduce a new void safe scope of a read-only or object test local:&lt;br /&gt;
&amp;lt;e&amp;gt;check Assertion then&lt;br /&gt;
   Compound&lt;br /&gt;
end&amp;lt;/e&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*runtime: Redone some of the multithreading internals of the Eiffel runtime to make it easier to add platforms and to ensure the same behavior on various platforms.&lt;br /&gt;
*runtime: On Windows, the MUTEX class is now internally using a CRITICAL_SECTION object which is much more efficient especially with multiprocessors.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*studio: Fixed editor refresh issue when saving modifications in the Contract Tool.&lt;br /&gt;
*studio: Fixed catcalls when building the Contract Tool.&lt;br /&gt;
*studio: Fixed bug#14857 Store the external commands in ISE User files&lt;br /&gt;
*studio: Fixed bug#16410 Error List window comes up blank on error if auto-hidden when estudio started&lt;br /&gt;
*debugger: Fixed a hang in EiffelStudio when inspecting a different threads than the current stopped one on platforms where thread identifiers are larger than 32-bit (e.g. Linux)&lt;br /&gt;
*{{Red|runtime: Made sure to use recursive mutexes on all our platforms.}}&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*{{Red|thread: Made the THREAD class thread-safe which prevents using the same object to launch a new thread. Now there is a precondition `is_launchable' and a status report `is_last_launch_successful' to help finding out if a thread was really launched.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Testing_Tool_(Specification)&amp;diff=13566</id>
		<title>Testing Tool (Specification)</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Testing_Tool_(Specification)&amp;diff=13566"/>
				<updated>2009-12-31T04:06:39Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Manage and run test suite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Testing]]&lt;br /&gt;
&lt;br /&gt;
{{UnderConstruction}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Main functionalities ==&lt;br /&gt;
&lt;br /&gt;
=== Add unit/system level tests ===&lt;br /&gt;
&lt;br /&gt;
Semantically there is no difference between unit tests and system level tests. This way all tests can be written in Eiffel in a conforming way.&lt;br /&gt;
&lt;br /&gt;
A test is a arbitrary routine in a class inheriting from '''EQA_TEST_SET''' (the routine must be exported to '''ANY''').&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== System level test specifics (not yet implemented) ====&lt;br /&gt;
&lt;br /&gt;
Since system level testing often relies on external items like files, '''SYSTEM_LEVEL_EQA_TEST_SET''' provides a number of helper routines accessing them. These classes will probably have to be in an special testing library, since they also make use of other libraries such as the process library.&lt;br /&gt;
&lt;br /&gt;
==== Location of tests (config file) ====&lt;br /&gt;
&lt;br /&gt;
Tests can be located in any cluster of the system. In addition one can define test specific clusters through in the .ecf file. These clusters do not need to exists for the project to compile. This allows one to have library tests but being able to deliver the library without including the test suite.&lt;br /&gt;
For all classes in the test clusters, the inheritance structure will be evaluated so test classes inheriting from EQA_TEST_SET can be found. For any class belonging to a normal cluster, it will have to be reachable from root class to be compiled and detected as a test class. This means the recommended practice is to put test classes into a test cluster, but it is not a rule.&lt;br /&gt;
&lt;br /&gt;
{{Note| Not all classes in a test cluster have to be classes containing tests. One example are helper classes.}}&lt;br /&gt;
&lt;br /&gt;
Test clusters are also needed to provide a location for test generation/extraction.&lt;br /&gt;
&lt;br /&gt;
==== Additional information ====&lt;br /&gt;
&lt;br /&gt;
The indexing clause can be used to specify which classes and routines are tested by the test routine. Any specifications in the class indexing clause will apply to all tests in that class. Note the '''covers/''' tag in the following examples.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
&lt;br /&gt;
Example unit tests '''test_append''' and '''test_boolean'''&lt;br /&gt;
&amp;lt;eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
frozen class STRING_TESTS&lt;br /&gt;
&lt;br /&gt;
inherit&lt;br /&gt;
&lt;br /&gt;
    EQA_TEST_SET&lt;br /&gt;
        redefine&lt;br /&gt;
            set_up&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
feature {NONE} -- Initialization&lt;br /&gt;
&lt;br /&gt;
    set_up&lt;br /&gt;
        do&lt;br /&gt;
            create s.make (10)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
feature {TESTER} -- Access&lt;br /&gt;
&lt;br /&gt;
    s: STRING&lt;br /&gt;
&lt;br /&gt;
feature {TESTER} -- Test routines&lt;br /&gt;
&lt;br /&gt;
    test_append&lt;br /&gt;
        note&lt;br /&gt;
            testing: &amp;quot;covers/{STRING}.append, platform/os/winxp&amp;quot;&lt;br /&gt;
        require&lt;br /&gt;
            set_up: s /= Void and then s.is_empty&lt;br /&gt;
        do&lt;br /&gt;
            s.append (&amp;quot;12345&amp;quot;)&lt;br /&gt;
            assert (&amp;quot;append&amp;quot;, s.is_equal (&amp;quot;12345&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
    test_boolean&lt;br /&gt;
        note&lt;br /&gt;
            testing: &amp;quot;covers/{STRING}.is_boolean, covers/{STRING}.to_boolean&amp;quot;&lt;br /&gt;
        require&lt;br /&gt;
            set_up: s /= Void and then s.is_empty&lt;br /&gt;
        do&lt;br /&gt;
            s.append (&amp;quot;True&amp;quot;)&lt;br /&gt;
            assert (&amp;quot;boolean&amp;quot;, s.is_boolean and then s.to_boolean)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example system level test '''test_version''' (Note: '''EQA_SYSTEM_LEVEL_TEST_SET''' inherits from '''EQA_TEST_SET''' and provides basic functionality for executing external commands, including the system currently under development):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
indexing&lt;br /&gt;
    testing_covers: &amp;quot;all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
frozen class TEST_MY_APP&lt;br /&gt;
&lt;br /&gt;
inherit&lt;br /&gt;
&lt;br /&gt;
    EQA_SYSTEM_LEVEL_TEST_SET&lt;br /&gt;
&lt;br /&gt;
feature {TESTER} -- Test routines&lt;br /&gt;
&lt;br /&gt;
    test_version&lt;br /&gt;
        note&lt;br /&gt;
            testing: &amp;quot;platform/os/linux/x86&amp;quot;&lt;br /&gt;
        do&lt;br /&gt;
            run_system_with_args (&amp;quot;--version&amp;quot;)&lt;br /&gt;
            assert_string_equality (&amp;quot;version&amp;quot;, last_output, &amp;quot;my_app version 0.1 - linux x86&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Manage and run test suite ===&lt;br /&gt;
&lt;br /&gt;
[[Image:testing_set-view.png|right|400px|thumb|Standard view listing existing test sets and the tests they contain]]&lt;br /&gt;
[[Image:testing_cut-view.png|right|400px|thumb|Predefined ''Class tested'' view listing classes/features of the system together with the associated tests (Note: since test_boolean is tagged to cover multiple features, it also appears multiple times in the view)]]&lt;br /&gt;
[[Image:testing_user-view.png|right|400px|thumb|User defined view (by simply typing part of the tag), where the tool creates a view based on how the tests are tagged (see Examples above)]]&lt;br /&gt;
&lt;br /&gt;
The tool should have an own icon for displaying test cases (test routines). In this example it is a Lego block. Especially for views like ''list all tests for this routine'', it is important to see the difference between the actual routine and its tests. Also the tool has more of a vertical layout. Since the number of tests is comparable to the number of classes in the system, it makes sense the tools have the same layout. Also it allows to have tabs in the bottom for displaying further information, such as execution details (output, call stack, etc.).&lt;br /&gt;
&lt;br /&gt;
The '''menu bar''' includes following buttons:&lt;br /&gt;
* Create new manual test case (opens wizard)&lt;br /&gt;
** if test class is dropped on button, the wizard will suggest to create new test in that class&lt;br /&gt;
** if normal class (or feature) is dropped on button, wizard will suggest to create test for the class (or feature)&lt;br /&gt;
* Menu for generating new test (defaults to last chosen one?)&lt;br /&gt;
** if normal class/feature is dropped on button, generate tests for that class/feature&lt;br /&gt;
&lt;br /&gt;
* Menu for executing tests in background (defaults to last chosen one?)&lt;br /&gt;
** if any class/feature is dropped on button, run tests associated with class/feature&lt;br /&gt;
* Run test in debugger (must have a test selected or dropped on button to start)&lt;br /&gt;
* Stop any execution (background or debugger)&lt;br /&gt;
&lt;br /&gt;
* Opens settings dialog for testing&lt;br /&gt;
&lt;br /&gt;
* Status indicating how many tests we have ran so far and&lt;br /&gt;
* how many failing ones there are&lt;br /&gt;
&lt;br /&gt;
'''View''' defines in which way the test cases are listed (see below).&lt;br /&gt;
&lt;br /&gt;
'''Filter''' can be used to type keywords for showing only test cases having tags including the keywords (see below). It's a drop down so predefined filter patterns can be used (such as ''outcome.fail'').&lt;br /&gt;
&lt;br /&gt;
The '''grid''' contains a tree view of all test cases (test cases are always in leaves). Multiples columns for more information. Currently there are two indications whether a test fails or not (column and icons). Obviously it only needs one - they are both shown just to see the difference. The advantage with using icons is that less space is needed. Coloring the background of a row containing a failing test case would be an option as well.&lt;br /&gt;
&lt;br /&gt;
==== Tags ====&lt;br /&gt;
&lt;br /&gt;
Each test can have a number of tags. Tags can be a single string or hierarchically structured with slashes ('/'). For example, a test with tag ''covers/{STRING}.append'' means that this test is a regression test for {STRING}.append. There are a number of implicit tags for each test, such like the ''class'' tag ({STRING_TESTS}.test_append has the implicit tag ''class/{STRING_TESTS}.test_append'').&lt;br /&gt;
&lt;br /&gt;
{{Note|Tags are defined as strings, but in the view we sometimes want a tag to represent a class, or a feature. The way this is done right now is that the view basically knows if the tag starts with &amp;quot;covers/&amp;quot; it is followed by a class and feature name. Another approach would be to define such tags like this: &amp;quot;covers.{CLASS_NAME}.feature_name&amp;quot;. This would allow user defined tags to have clickable nodes in the view. We could also introduces other special tags such like dates/times.}}&lt;br /&gt;
&lt;br /&gt;
You can create your own tags. Such as for the Eweasel tagging, you might have following tags in your note clause&lt;br /&gt;
&amp;lt;eiffel&amp;gt;&lt;br /&gt;
	test_somthing&lt;br /&gt;
			-- Test something&lt;br /&gt;
		note&lt;br /&gt;
			testing: &amp;quot;eweasel/pass, eweasel/tcf&amp;quot;&lt;br /&gt;
		do&lt;br /&gt;
			-- test something&lt;br /&gt;
		end&lt;br /&gt;
&amp;lt;/eiffel&amp;gt;&lt;br /&gt;
Just to keep things structured if at some point you have Eweasel tests and unit tests in the same project.&lt;br /&gt;
&lt;br /&gt;
Please make sure the test suite always has the latest version of the note clause by refreshing after something changed (refresh button in the AutoTest tool).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Different views ====&lt;br /&gt;
&lt;br /&gt;
Based on the notion of tags, we are able to define different views. The default view ''Test sets'' simply shows a hierarchical tree for every ''name.X'' tag. This enables us to define more views, such as ''Class tested'', which displays every ''covers.X'' tag. Note that with other tags than ''name.'' some tests might get listed multiple times where other not containing such a tag must be listed explicitly. The main advantage is that the user can define his own views based on any type of tags.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|The tools should support multiple selection. This is important for executing a number of selected test routines, showing passed execution results, etc. Also when selecting a e.g. class node it should execute all leaves below that node.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Running tests ====&lt;br /&gt;
[[Image:testing_run-menu.jpg]]&lt;br /&gt;
&lt;br /&gt;
The '''run''' menu provides different options for running tests in the background:&lt;br /&gt;
&lt;br /&gt;
* Run all tests in system&lt;br /&gt;
* Run currently failing ones&lt;br /&gt;
* Run test for classes last modified (better description needed here)&lt;br /&gt;
* Only run tests shown below&lt;br /&gt;
* Only run tests which are selected below&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|We should have two different views for displaying testing history. One structured by test sessions (list of test execution containing all test routines for each session) and one listing recent executions for a single test routine.}}&lt;br /&gt;
&lt;br /&gt;
=== Generate tests automatically ===&lt;br /&gt;
&lt;br /&gt;
[[Image:testing_generate-menu.jpg]]&lt;br /&gt;
&lt;br /&gt;
The '''generate''' menu lets you generate new tests for all classes in system (randomly picked?) or for classes which where last modified.&lt;br /&gt;
&lt;br /&gt;
=== Extract tests from a running application ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is the a simple example of an extracted test case (note that '''EQA_EXTRACTED_TEST_SET''' inherits from '''EQA_TEST_SET''' and implements all functionality for executing an extracted test).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;eiffel&amp;gt;&lt;br /&gt;
indexing&lt;br /&gt;
    testing: &amp;quot;type/extracted&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class&lt;br /&gt;
    STRING_TESTS_001&lt;br /&gt;
&lt;br /&gt;
inherit&lt;br /&gt;
&lt;br /&gt;
    EQA_EXTRACTED_TEST_SET&lt;br /&gt;
&lt;br /&gt;
feature {TESTER} -- Test routines&lt;br /&gt;
&lt;br /&gt;
    test_append_integer&lt;br /&gt;
            -- Call `routine_under_test' with input provided by `context'.&lt;br /&gt;
        note&lt;br /&gt;
            testing: &amp;quot;covers/{STRING}.append_integer&amp;quot;&lt;br /&gt;
        do&lt;br /&gt;
            run_extracted_test (agent {STRING}.append_integer, [&amp;quot;#1&amp;quot;, 100])&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
feature {NONE} -- Access&lt;br /&gt;
&lt;br /&gt;
    context: !ARRAY [!TUPLE [type: !TYPE [ANY]; attributes: !TUPLE; inv: BOOLEAN]]&lt;br /&gt;
            -- &amp;lt;Precursor&amp;gt;&lt;br /&gt;
        once&lt;br /&gt;
            Result := &amp;lt;&amp;lt;&lt;br /&gt;
                [{STRING}, [&lt;br /&gt;
                        &amp;quot;this is an integer: &amp;quot;&lt;br /&gt;
                    ], False]&lt;br /&gt;
            &amp;gt;&amp;gt;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
end -- class STRING_TESTS_001&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each test routines passes the agent of the routine to be tested, along with a tuple containing the arguments (#x refering to objects in `context'). This basically replaces the missing reflection functionality for calling features. '''context''' is also deferred in '''EQA_EXTACTED_TEST_SET''' and contains all data from the heap and call stack which was reachable by the routine at extraction time. Each TUPLE represents an object, where `inv' defines whether the object should fulfill its invariant or not (if the object was on the stack at extraction time, this does not have to be the case).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This design lets us have the entire test in one file. This is practical especially in the situation where a user should submit such a test as a bug report after experiencing a crash.&lt;br /&gt;
The reason for that is mainly the set_up procedure. Creating all objects in '''context''' must be done during set_up. If there is a failure, the set_up will be blamed instead of the actual test routine, which makes the test not fail but invalid. This can happen e.g. if one of the objects in the context does not fulfill its invariant, which again could result from simply editing the class being tested. Any suggestions welcome!&lt;br /&gt;
&lt;br /&gt;
=== Background test execution ===&lt;br /&gt;
== Open questions ==&lt;br /&gt;
(This section should disappear as the questions get answered.)&lt;br /&gt;
&lt;br /&gt;
== Wish list ==&lt;br /&gt;
&lt;br /&gt;
If you have any suggestions or ideas which would improve the testing tool, please add them to this section.&lt;br /&gt;
&lt;br /&gt;
=== tests with context ===&lt;br /&gt;
it would be nice to have contextual test cases.&lt;br /&gt;
For instance you would create a test class&lt;br /&gt;
and you create an associated &amp;quot;test point&amp;quot; (kind of breakpoint, or like aspect programming)&lt;br /&gt;
and then, when you run the execution in &amp;quot;testing mode&amp;quot; (under the debugger, or testing tool)&lt;br /&gt;
whenever you reach this &amp;quot;test point&amp;quot;, it would trigger the associated test case.&lt;br /&gt;
I agree, it is not anymore automatic testing, since you need to make sure the execution goes by this &amp;quot;test point&amp;quot;,&lt;br /&gt;
but this would be useful to launch specific test with a valid context.&lt;br /&gt;
&lt;br /&gt;
=== jUnit compatible output format ===&lt;br /&gt;
It would be nice if the testing tool could generate a jUnit compatible output which can then be processed by other tools like a continuous build system. Of course this makes it necessary for the testing tool to be available from the command line.&lt;br /&gt;
&lt;br /&gt;
=== Compatibility with Getest ===&lt;br /&gt;
Since Gobo test has been available long before Eiffel test, it would be nice if the testing tool also supported GOBO test cases. This is probably really easy to do since the difference are minimal. Basically only that gobo test cases require a creation procedure. It would also be a good start if EiffelTest would still recognize test cases when they list a creation procedure(s) as long as default_create is listed.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Testing Tool (Architecture)]]&lt;br /&gt;
* [[Eweasel]]&lt;br /&gt;
* [[CddBranch]]&lt;br /&gt;
* [[Eiffel Testing Tool]]&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Testing_Tool_(Specification)&amp;diff=13565</id>
		<title>Testing Tool (Specification)</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Testing_Tool_(Specification)&amp;diff=13565"/>
				<updated>2009-12-31T03:36:00Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Manage and run test suite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Testing]]&lt;br /&gt;
&lt;br /&gt;
{{UnderConstruction}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Main functionalities ==&lt;br /&gt;
&lt;br /&gt;
=== Add unit/system level tests ===&lt;br /&gt;
&lt;br /&gt;
Semantically there is no difference between unit tests and system level tests. This way all tests can be written in Eiffel in a conforming way.&lt;br /&gt;
&lt;br /&gt;
A test is a arbitrary routine in a class inheriting from '''EQA_TEST_SET''' (the routine must be exported to '''ANY''').&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== System level test specifics (not yet implemented) ====&lt;br /&gt;
&lt;br /&gt;
Since system level testing often relies on external items like files, '''SYSTEM_LEVEL_EQA_TEST_SET''' provides a number of helper routines accessing them. These classes will probably have to be in an special testing library, since they also make use of other libraries such as the process library.&lt;br /&gt;
&lt;br /&gt;
==== Location of tests (config file) ====&lt;br /&gt;
&lt;br /&gt;
Tests can be located in any cluster of the system. In addition one can define test specific clusters through in the .ecf file. These clusters do not need to exists for the project to compile. This allows one to have library tests but being able to deliver the library without including the test suite.&lt;br /&gt;
For all classes in the test clusters, the inheritance structure will be evaluated so test classes inheriting from EQA_TEST_SET can be found. For any class belonging to a normal cluster, it will have to be reachable from root class to be compiled and detected as a test class. This means the recommended practice is to put test classes into a test cluster, but it is not a rule.&lt;br /&gt;
&lt;br /&gt;
{{Note| Not all classes in a test cluster have to be classes containing tests. One example are helper classes.}}&lt;br /&gt;
&lt;br /&gt;
Test clusters are also needed to provide a location for test generation/extraction.&lt;br /&gt;
&lt;br /&gt;
==== Additional information ====&lt;br /&gt;
&lt;br /&gt;
The indexing clause can be used to specify which classes and routines are tested by the test routine. Any specifications in the class indexing clause will apply to all tests in that class. Note the '''covers/''' tag in the following examples.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
&lt;br /&gt;
Example unit tests '''test_append''' and '''test_boolean'''&lt;br /&gt;
&amp;lt;eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
frozen class STRING_TESTS&lt;br /&gt;
&lt;br /&gt;
inherit&lt;br /&gt;
&lt;br /&gt;
    EQA_TEST_SET&lt;br /&gt;
        redefine&lt;br /&gt;
            set_up&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
feature {NONE} -- Initialization&lt;br /&gt;
&lt;br /&gt;
    set_up&lt;br /&gt;
        do&lt;br /&gt;
            create s.make (10)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
feature {TESTER} -- Access&lt;br /&gt;
&lt;br /&gt;
    s: STRING&lt;br /&gt;
&lt;br /&gt;
feature {TESTER} -- Test routines&lt;br /&gt;
&lt;br /&gt;
    test_append&lt;br /&gt;
        note&lt;br /&gt;
            testing: &amp;quot;covers/{STRING}.append, platform/os/winxp&amp;quot;&lt;br /&gt;
        require&lt;br /&gt;
            set_up: s /= Void and then s.is_empty&lt;br /&gt;
        do&lt;br /&gt;
            s.append (&amp;quot;12345&amp;quot;)&lt;br /&gt;
            assert (&amp;quot;append&amp;quot;, s.is_equal (&amp;quot;12345&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
    test_boolean&lt;br /&gt;
        note&lt;br /&gt;
            testing: &amp;quot;covers/{STRING}.is_boolean, covers/{STRING}.to_boolean&amp;quot;&lt;br /&gt;
        require&lt;br /&gt;
            set_up: s /= Void and then s.is_empty&lt;br /&gt;
        do&lt;br /&gt;
            s.append (&amp;quot;True&amp;quot;)&lt;br /&gt;
            assert (&amp;quot;boolean&amp;quot;, s.is_boolean and then s.to_boolean)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example system level test '''test_version''' (Note: '''EQA_SYSTEM_LEVEL_TEST_SET''' inherits from '''EQA_TEST_SET''' and provides basic functionality for executing external commands, including the system currently under development):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
indexing&lt;br /&gt;
    testing_covers: &amp;quot;all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
frozen class TEST_MY_APP&lt;br /&gt;
&lt;br /&gt;
inherit&lt;br /&gt;
&lt;br /&gt;
    EQA_SYSTEM_LEVEL_TEST_SET&lt;br /&gt;
&lt;br /&gt;
feature {TESTER} -- Test routines&lt;br /&gt;
&lt;br /&gt;
    test_version&lt;br /&gt;
        note&lt;br /&gt;
            testing: &amp;quot;platform/os/linux/x86&amp;quot;&lt;br /&gt;
        do&lt;br /&gt;
            run_system_with_args (&amp;quot;--version&amp;quot;)&lt;br /&gt;
            assert_string_equality (&amp;quot;version&amp;quot;, last_output, &amp;quot;my_app version 0.1 - linux x86&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Manage and run test suite ===&lt;br /&gt;
&lt;br /&gt;
[[Image:testing_set-view.png|right|400px|thumb|Standard view listing existing test sets and the tests they contain]]&lt;br /&gt;
[[Image:testing_cut-view.png|right|400px|thumb|Predefined ''Class tested'' view listing classes/features of the system together with the associated tests (Note: since test_boolean is tagged to cover multiple features, it also appears multiple times in the view)]]&lt;br /&gt;
[[Image:testing_user-view.png|right|400px|thumb|User defined view (by simply typing part of the tag), where the tool creates a view based on how the tests are tagged (see Examples above)]]&lt;br /&gt;
&lt;br /&gt;
The tool should have an own icon for displaying test cases (test routines). In this example it is a Lego block. Especially for views like ''list all tests for this routine'', it is important to see the difference between the actual routine and its tests. Also the tool has more of a vertical layout. Since the number of tests is comparable to the number of classes in the system, it makes sense the tools have the same layout. Also it allows to have tabs in the bottom for displaying further information, such as execution details (output, call stack, etc.).&lt;br /&gt;
&lt;br /&gt;
The '''menu bar''' includes following buttons:&lt;br /&gt;
* Create new manual test case (opens wizard)&lt;br /&gt;
** if test class is dropped on button, the wizard will suggest to create new test in that class&lt;br /&gt;
** if normal class (or feature) is dropped on button, wizard will suggest to create test for the class (or feature)&lt;br /&gt;
* Menu for generating new test (defaults to last chosen one?)&lt;br /&gt;
** if normal class/feature is dropped on button, generate tests for that class/feature&lt;br /&gt;
&lt;br /&gt;
* Menu for executing tests in background (defaults to last chosen one?)&lt;br /&gt;
** if any class/feature is dropped on button, run tests associated with class/feature&lt;br /&gt;
* Run test in debugger (must have a test selected or dropped on button to start)&lt;br /&gt;
* Stop any execution (background or debugger)&lt;br /&gt;
&lt;br /&gt;
* Opens settings dialog for testing&lt;br /&gt;
&lt;br /&gt;
* Status indicating how many tests we have ran so far and&lt;br /&gt;
* how many failing ones there are&lt;br /&gt;
&lt;br /&gt;
'''View''' defines in which way the test cases are listed (see below).&lt;br /&gt;
&lt;br /&gt;
'''Filter''' can be used to type keywords for showing only test cases having tags including the keywords (see below). It's a drop down so predefined filter patterns can be used (such as ''outcome.fail'').&lt;br /&gt;
&lt;br /&gt;
The '''grid''' contains a tree view of all test cases (test cases are always in leaves). Multiples columns for more information. Currently there are two indications whether a test fails or not (column and icons). Obviously it only needs one - they are both shown just to see the difference. The advantage with using icons is that less space is needed. Coloring the background of a row containing a failing test case would be an option as well.&lt;br /&gt;
&lt;br /&gt;
==== Tags ====&lt;br /&gt;
&lt;br /&gt;
Each test can have a number of tags. Tags can be a single string or hierarchically structured with slashes ('/'). For example, a test with tag ''covers/{STRING}.append'' means that this test is a regression test for {STRING}.append. There are a number of implicit tags for each test, such like the ''class'' tag ({STRING_TESTS}.test_append has the implicit tag ''class/{STRING_TESTS}.test_append'').&lt;br /&gt;
&lt;br /&gt;
{{Note|Tags are defined as strings, but in the view we sometimes want a tag to represent a class, or a feature. The way this is done right now is that the view basically knows if the tag starts with &amp;quot;covers/&amp;quot; it is followed by a class and feature name. Another approach would be to define such tags like this: &amp;quot;covers.{CLASS_NAME}.feature_name&amp;quot;. This would allow user defined tags to have clickable nodes in the view. We could also introduces other special tags such like dates/times.}}&lt;br /&gt;
&lt;br /&gt;
You can create your own tags. Such as for the Eweasel tagging, you might have following tags in your note clause&lt;br /&gt;
&amp;lt;eiffel&amp;gt;&lt;br /&gt;
	test_somthing&lt;br /&gt;
			-- Test something&lt;br /&gt;
		note&lt;br /&gt;
			testing: &amp;quot;eweasel/pass, eweasel/tcf&amp;quot;&lt;br /&gt;
		do&lt;br /&gt;
			-- test something&lt;br /&gt;
		end&lt;br /&gt;
&amp;lt;/eiffel&amp;gt;&lt;br /&gt;
Just to keep things structured if at some point you have Eweasel tests and unit tests in the same project.&lt;br /&gt;
&lt;br /&gt;
==== Different views ====&lt;br /&gt;
&lt;br /&gt;
Based on the notion of tags, we are able to define different views. The default view ''Test sets'' simply shows a hierarchical tree for every ''name.X'' tag. This enables us to define more views, such as ''Class tested'', which displays every ''covers.X'' tag. Note that with other tags than ''name.'' some tests might get listed multiple times where other not containing such a tag must be listed explicitly. The main advantage is that the user can define his own views based on any type of tags.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|The tools should support multiple selection. This is important for executing a number of selected test routines, showing passed execution results, etc. Also when selecting a e.g. class node it should execute all leaves below that node.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Running tests ====&lt;br /&gt;
[[Image:testing_run-menu.jpg]]&lt;br /&gt;
&lt;br /&gt;
The '''run''' menu provides different options for running tests in the background:&lt;br /&gt;
&lt;br /&gt;
* Run all tests in system&lt;br /&gt;
* Run currently failing ones&lt;br /&gt;
* Run test for classes last modified (better description needed here)&lt;br /&gt;
* Only run tests shown below&lt;br /&gt;
* Only run tests which are selected below&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|We should have two different views for displaying testing history. One structured by test sessions (list of test execution containing all test routines for each session) and one listing recent executions for a single test routine.}}&lt;br /&gt;
&lt;br /&gt;
=== Generate tests automatically ===&lt;br /&gt;
&lt;br /&gt;
[[Image:testing_generate-menu.jpg]]&lt;br /&gt;
&lt;br /&gt;
The '''generate''' menu lets you generate new tests for all classes in system (randomly picked?) or for classes which where last modified.&lt;br /&gt;
&lt;br /&gt;
=== Extract tests from a running application ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is the a simple example of an extracted test case (note that '''EQA_EXTRACTED_TEST_SET''' inherits from '''EQA_TEST_SET''' and implements all functionality for executing an extracted test).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;eiffel&amp;gt;&lt;br /&gt;
indexing&lt;br /&gt;
    testing: &amp;quot;type/extracted&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class&lt;br /&gt;
    STRING_TESTS_001&lt;br /&gt;
&lt;br /&gt;
inherit&lt;br /&gt;
&lt;br /&gt;
    EQA_EXTRACTED_TEST_SET&lt;br /&gt;
&lt;br /&gt;
feature {TESTER} -- Test routines&lt;br /&gt;
&lt;br /&gt;
    test_append_integer&lt;br /&gt;
            -- Call `routine_under_test' with input provided by `context'.&lt;br /&gt;
        note&lt;br /&gt;
            testing: &amp;quot;covers/{STRING}.append_integer&amp;quot;&lt;br /&gt;
        do&lt;br /&gt;
            run_extracted_test (agent {STRING}.append_integer, [&amp;quot;#1&amp;quot;, 100])&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
feature {NONE} -- Access&lt;br /&gt;
&lt;br /&gt;
    context: !ARRAY [!TUPLE [type: !TYPE [ANY]; attributes: !TUPLE; inv: BOOLEAN]]&lt;br /&gt;
            -- &amp;lt;Precursor&amp;gt;&lt;br /&gt;
        once&lt;br /&gt;
            Result := &amp;lt;&amp;lt;&lt;br /&gt;
                [{STRING}, [&lt;br /&gt;
                        &amp;quot;this is an integer: &amp;quot;&lt;br /&gt;
                    ], False]&lt;br /&gt;
            &amp;gt;&amp;gt;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
end -- class STRING_TESTS_001&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each test routines passes the agent of the routine to be tested, along with a tuple containing the arguments (#x refering to objects in `context'). This basically replaces the missing reflection functionality for calling features. '''context''' is also deferred in '''EQA_EXTACTED_TEST_SET''' and contains all data from the heap and call stack which was reachable by the routine at extraction time. Each TUPLE represents an object, where `inv' defines whether the object should fulfill its invariant or not (if the object was on the stack at extraction time, this does not have to be the case).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This design lets us have the entire test in one file. This is practical especially in the situation where a user should submit such a test as a bug report after experiencing a crash.&lt;br /&gt;
The reason for that is mainly the set_up procedure. Creating all objects in '''context''' must be done during set_up. If there is a failure, the set_up will be blamed instead of the actual test routine, which makes the test not fail but invalid. This can happen e.g. if one of the objects in the context does not fulfill its invariant, which again could result from simply editing the class being tested. Any suggestions welcome!&lt;br /&gt;
&lt;br /&gt;
=== Background test execution ===&lt;br /&gt;
== Open questions ==&lt;br /&gt;
(This section should disappear as the questions get answered.)&lt;br /&gt;
&lt;br /&gt;
== Wish list ==&lt;br /&gt;
&lt;br /&gt;
If you have any suggestions or ideas which would improve the testing tool, please add them to this section.&lt;br /&gt;
&lt;br /&gt;
=== tests with context ===&lt;br /&gt;
it would be nice to have contextual test cases.&lt;br /&gt;
For instance you would create a test class&lt;br /&gt;
and you create an associated &amp;quot;test point&amp;quot; (kind of breakpoint, or like aspect programming)&lt;br /&gt;
and then, when you run the execution in &amp;quot;testing mode&amp;quot; (under the debugger, or testing tool)&lt;br /&gt;
whenever you reach this &amp;quot;test point&amp;quot;, it would trigger the associated test case.&lt;br /&gt;
I agree, it is not anymore automatic testing, since you need to make sure the execution goes by this &amp;quot;test point&amp;quot;,&lt;br /&gt;
but this would be useful to launch specific test with a valid context.&lt;br /&gt;
&lt;br /&gt;
=== jUnit compatible output format ===&lt;br /&gt;
It would be nice if the testing tool could generate a jUnit compatible output which can then be processed by other tools like a continuous build system. Of course this makes it necessary for the testing tool to be available from the command line.&lt;br /&gt;
&lt;br /&gt;
=== Compatibility with Getest ===&lt;br /&gt;
Since Gobo test has been available long before Eiffel test, it would be nice if the testing tool also supported GOBO test cases. This is probably really easy to do since the difference are minimal. Basically only that gobo test cases require a creation procedure. It would also be a good start if EiffelTest would still recognize test cases when they list a creation procedure(s) as long as default_create is listed.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Testing Tool (Architecture)]]&lt;br /&gt;
* [[Eweasel]]&lt;br /&gt;
* [[CddBranch]]&lt;br /&gt;
* [[Eiffel Testing Tool]]&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Testing_Tool_(Specification)&amp;diff=13564</id>
		<title>Testing Tool (Specification)</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Testing_Tool_(Specification)&amp;diff=13564"/>
				<updated>2009-12-31T03:27:13Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Testing]]&lt;br /&gt;
&lt;br /&gt;
{{UnderConstruction}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Main functionalities ==&lt;br /&gt;
&lt;br /&gt;
=== Add unit/system level tests ===&lt;br /&gt;
&lt;br /&gt;
Semantically there is no difference between unit tests and system level tests. This way all tests can be written in Eiffel in a conforming way.&lt;br /&gt;
&lt;br /&gt;
A test is a arbitrary routine in a class inheriting from '''EQA_TEST_SET''' (the routine must be exported to '''ANY''').&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== System level test specifics (not yet implemented) ====&lt;br /&gt;
&lt;br /&gt;
Since system level testing often relies on external items like files, '''SYSTEM_LEVEL_EQA_TEST_SET''' provides a number of helper routines accessing them. These classes will probably have to be in an special testing library, since they also make use of other libraries such as the process library.&lt;br /&gt;
&lt;br /&gt;
==== Location of tests (config file) ====&lt;br /&gt;
&lt;br /&gt;
Tests can be located in any cluster of the system. In addition one can define test specific clusters through in the .ecf file. These clusters do not need to exists for the project to compile. This allows one to have library tests but being able to deliver the library without including the test suite.&lt;br /&gt;
For all classes in the test clusters, the inheritance structure will be evaluated so test classes inheriting from EQA_TEST_SET can be found. For any class belonging to a normal cluster, it will have to be reachable from root class to be compiled and detected as a test class. This means the recommended practice is to put test classes into a test cluster, but it is not a rule.&lt;br /&gt;
&lt;br /&gt;
{{Note| Not all classes in a test cluster have to be classes containing tests. One example are helper classes.}}&lt;br /&gt;
&lt;br /&gt;
Test clusters are also needed to provide a location for test generation/extraction.&lt;br /&gt;
&lt;br /&gt;
==== Additional information ====&lt;br /&gt;
&lt;br /&gt;
The indexing clause can be used to specify which classes and routines are tested by the test routine. Any specifications in the class indexing clause will apply to all tests in that class. Note the '''covers/''' tag in the following examples.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
&lt;br /&gt;
Example unit tests '''test_append''' and '''test_boolean'''&lt;br /&gt;
&amp;lt;eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
frozen class STRING_TESTS&lt;br /&gt;
&lt;br /&gt;
inherit&lt;br /&gt;
&lt;br /&gt;
    EQA_TEST_SET&lt;br /&gt;
        redefine&lt;br /&gt;
            set_up&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
feature {NONE} -- Initialization&lt;br /&gt;
&lt;br /&gt;
    set_up&lt;br /&gt;
        do&lt;br /&gt;
            create s.make (10)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
feature {TESTER} -- Access&lt;br /&gt;
&lt;br /&gt;
    s: STRING&lt;br /&gt;
&lt;br /&gt;
feature {TESTER} -- Test routines&lt;br /&gt;
&lt;br /&gt;
    test_append&lt;br /&gt;
        note&lt;br /&gt;
            testing: &amp;quot;covers/{STRING}.append, platform/os/winxp&amp;quot;&lt;br /&gt;
        require&lt;br /&gt;
            set_up: s /= Void and then s.is_empty&lt;br /&gt;
        do&lt;br /&gt;
            s.append (&amp;quot;12345&amp;quot;)&lt;br /&gt;
            assert (&amp;quot;append&amp;quot;, s.is_equal (&amp;quot;12345&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
    test_boolean&lt;br /&gt;
        note&lt;br /&gt;
            testing: &amp;quot;covers/{STRING}.is_boolean, covers/{STRING}.to_boolean&amp;quot;&lt;br /&gt;
        require&lt;br /&gt;
            set_up: s /= Void and then s.is_empty&lt;br /&gt;
        do&lt;br /&gt;
            s.append (&amp;quot;True&amp;quot;)&lt;br /&gt;
            assert (&amp;quot;boolean&amp;quot;, s.is_boolean and then s.to_boolean)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example system level test '''test_version''' (Note: '''EQA_SYSTEM_LEVEL_TEST_SET''' inherits from '''EQA_TEST_SET''' and provides basic functionality for executing external commands, including the system currently under development):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
indexing&lt;br /&gt;
    testing_covers: &amp;quot;all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
frozen class TEST_MY_APP&lt;br /&gt;
&lt;br /&gt;
inherit&lt;br /&gt;
&lt;br /&gt;
    EQA_SYSTEM_LEVEL_TEST_SET&lt;br /&gt;
&lt;br /&gt;
feature {TESTER} -- Test routines&lt;br /&gt;
&lt;br /&gt;
    test_version&lt;br /&gt;
        note&lt;br /&gt;
            testing: &amp;quot;platform/os/linux/x86&amp;quot;&lt;br /&gt;
        do&lt;br /&gt;
            run_system_with_args (&amp;quot;--version&amp;quot;)&lt;br /&gt;
            assert_string_equality (&amp;quot;version&amp;quot;, last_output, &amp;quot;my_app version 0.1 - linux x86&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Manage and run test suite ===&lt;br /&gt;
&lt;br /&gt;
[[Image:testing_set-view.png|right|400px|thumb|Standard view listing existing test sets and the tests they contain]]&lt;br /&gt;
[[Image:testing_cut-view.png|right|400px|thumb|Predefined ''Class tested'' view listing classes/features of the system together with the associated tests (Note: since test_boolean is tagged to cover multiple features, it also appears multiple times in the view)]]&lt;br /&gt;
[[Image:testing_user-view.png|right|400px|thumb|User defined view (by simply typing part of the tag), where the tool creates a view based on how the tests are tagged (see Examples above)]]&lt;br /&gt;
&lt;br /&gt;
The tool should have an own icon for displaying test cases (test routines). In this example it is a Lego block. Especially for views like ''list all tests for this routine'', it is important to see the difference between the actual routine and its tests. Also the tool has more of a vertical layout. Since the number of tests is comparable to the number of classes in the system, it makes sense the tools have the same layout. Also it allows to have tabs in the bottom for displaying further information, such as execution details (output, call stack, etc.).&lt;br /&gt;
&lt;br /&gt;
The '''menu bar''' includes following buttons:&lt;br /&gt;
* Create new manual test case (opens wizard)&lt;br /&gt;
** if test class is dropped on button, the wizard will suggest to create new test in that class&lt;br /&gt;
** if normal class (or feature) is dropped on button, wizard will suggest to create test for the class (or feature)&lt;br /&gt;
* Menu for generating new test (defaults to last chosen one?)&lt;br /&gt;
** if normal class/feature is dropped on button, generate tests for that class/feature&lt;br /&gt;
&lt;br /&gt;
* Menu for executing tests in background (defaults to last chosen one?)&lt;br /&gt;
** if any class/feature is dropped on button, run tests associated with class/feature&lt;br /&gt;
* Run test in debugger (must have a test selected or dropped on button to start)&lt;br /&gt;
* Stop any execution (background or debugger)&lt;br /&gt;
&lt;br /&gt;
* Opens settings dialog for testing&lt;br /&gt;
&lt;br /&gt;
* Status indicating how many tests we have ran so far and&lt;br /&gt;
* how many failing ones there are&lt;br /&gt;
&lt;br /&gt;
'''View''' defines in which way the test cases are listed (see below).&lt;br /&gt;
&lt;br /&gt;
'''Filter''' can be used to type keywords for showing only test cases having tags including the keywords (see below). It's a drop down so predefined filter patterns can be used (such as ''outcome.fail'').&lt;br /&gt;
&lt;br /&gt;
The '''grid''' contains a tree view of all test cases (test cases are always in leaves). Multiples columns for more information. Currently there are two indications whether a test fails or not (column and icons). Obviously it only needs one - they are both shown just to see the difference. The advantage with using icons is that less space is needed. Coloring the background of a row containing a failing test case would be an option as well.&lt;br /&gt;
&lt;br /&gt;
==== Tags ====&lt;br /&gt;
&lt;br /&gt;
Each test can have a number of tags. Tags can be a single string or hierarchically structured with slashes ('/'). For example, a test with tag ''covers/{STRING}.append'' means that this test is a regression test for {STRING}.append. There are a number of implicit tags for each test, such like the ''class'' tag ({STRING_TESTS}.test_append has the implicit tag ''class/{STRING_TESTS}.test_append'').&lt;br /&gt;
&lt;br /&gt;
{{Note|Tags are defined as strings, but in the view we sometimes want a tag to represent a class, or a feature. The way this is done right now is that the view basically knows if the tag starts with &amp;quot;covers/&amp;quot; it is followed by a class and feature name. Another approach would be to define such tags like this: &amp;quot;covers.{CLASS_NAME}.feature_name&amp;quot;. This would allow user defined tags to have clickable nodes in the view. We could also introduces other special tags such like dates/times.}}&lt;br /&gt;
&lt;br /&gt;
==== Different views ====&lt;br /&gt;
&lt;br /&gt;
Based on the notion of tags, we are able to define different views. The default view ''Test sets'' simply shows a hierarchical tree for every ''name.X'' tag. This enables us to define more views, such as ''Class tested'', which displays every ''covers.X'' tag. Note that with other tags than ''name.'' some tests might get listed multiple times where other not containing such a tag must be listed explicitly. The main advantage is that the user can define his own views based on any type of tags.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|The tools should support multiple selection. This is important for executing a number of selected test routines, showing passed execution results, etc. Also when selecting a e.g. class node it should execute all leaves below that node.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Running tests ====&lt;br /&gt;
[[Image:testing_run-menu.jpg]]&lt;br /&gt;
&lt;br /&gt;
The '''run''' menu provides different options for running tests in the background:&lt;br /&gt;
&lt;br /&gt;
* Run all tests in system&lt;br /&gt;
* Run currently failing ones&lt;br /&gt;
* Run test for classes last modified (better description needed here)&lt;br /&gt;
* Only run tests shown below&lt;br /&gt;
* Only run tests which are selected below&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|We should have two different views for displaying testing history. One structured by test sessions (list of test execution containing all test routines for each session) and one listing recent executions for a single test routine.}}&lt;br /&gt;
&lt;br /&gt;
=== Generate tests automatically ===&lt;br /&gt;
&lt;br /&gt;
[[Image:testing_generate-menu.jpg]]&lt;br /&gt;
&lt;br /&gt;
The '''generate''' menu lets you generate new tests for all classes in system (randomly picked?) or for classes which where last modified.&lt;br /&gt;
&lt;br /&gt;
=== Extract tests from a running application ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is the a simple example of an extracted test case (note that '''EQA_EXTRACTED_TEST_SET''' inherits from '''EQA_TEST_SET''' and implements all functionality for executing an extracted test).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;eiffel&amp;gt;&lt;br /&gt;
indexing&lt;br /&gt;
    testing: &amp;quot;type/extracted&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class&lt;br /&gt;
    STRING_TESTS_001&lt;br /&gt;
&lt;br /&gt;
inherit&lt;br /&gt;
&lt;br /&gt;
    EQA_EXTRACTED_TEST_SET&lt;br /&gt;
&lt;br /&gt;
feature {TESTER} -- Test routines&lt;br /&gt;
&lt;br /&gt;
    test_append_integer&lt;br /&gt;
            -- Call `routine_under_test' with input provided by `context'.&lt;br /&gt;
        note&lt;br /&gt;
            testing: &amp;quot;covers/{STRING}.append_integer&amp;quot;&lt;br /&gt;
        do&lt;br /&gt;
            run_extracted_test (agent {STRING}.append_integer, [&amp;quot;#1&amp;quot;, 100])&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
feature {NONE} -- Access&lt;br /&gt;
&lt;br /&gt;
    context: !ARRAY [!TUPLE [type: !TYPE [ANY]; attributes: !TUPLE; inv: BOOLEAN]]&lt;br /&gt;
            -- &amp;lt;Precursor&amp;gt;&lt;br /&gt;
        once&lt;br /&gt;
            Result := &amp;lt;&amp;lt;&lt;br /&gt;
                [{STRING}, [&lt;br /&gt;
                        &amp;quot;this is an integer: &amp;quot;&lt;br /&gt;
                    ], False]&lt;br /&gt;
            &amp;gt;&amp;gt;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
end -- class STRING_TESTS_001&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each test routines passes the agent of the routine to be tested, along with a tuple containing the arguments (#x refering to objects in `context'). This basically replaces the missing reflection functionality for calling features. '''context''' is also deferred in '''EQA_EXTACTED_TEST_SET''' and contains all data from the heap and call stack which was reachable by the routine at extraction time. Each TUPLE represents an object, where `inv' defines whether the object should fulfill its invariant or not (if the object was on the stack at extraction time, this does not have to be the case).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This design lets us have the entire test in one file. This is practical especially in the situation where a user should submit such a test as a bug report after experiencing a crash.&lt;br /&gt;
The reason for that is mainly the set_up procedure. Creating all objects in '''context''' must be done during set_up. If there is a failure, the set_up will be blamed instead of the actual test routine, which makes the test not fail but invalid. This can happen e.g. if one of the objects in the context does not fulfill its invariant, which again could result from simply editing the class being tested. Any suggestions welcome!&lt;br /&gt;
&lt;br /&gt;
=== Background test execution ===&lt;br /&gt;
== Open questions ==&lt;br /&gt;
(This section should disappear as the questions get answered.)&lt;br /&gt;
&lt;br /&gt;
== Wish list ==&lt;br /&gt;
&lt;br /&gt;
If you have any suggestions or ideas which would improve the testing tool, please add them to this section.&lt;br /&gt;
&lt;br /&gt;
=== tests with context ===&lt;br /&gt;
it would be nice to have contextual test cases.&lt;br /&gt;
For instance you would create a test class&lt;br /&gt;
and you create an associated &amp;quot;test point&amp;quot; (kind of breakpoint, or like aspect programming)&lt;br /&gt;
and then, when you run the execution in &amp;quot;testing mode&amp;quot; (under the debugger, or testing tool)&lt;br /&gt;
whenever you reach this &amp;quot;test point&amp;quot;, it would trigger the associated test case.&lt;br /&gt;
I agree, it is not anymore automatic testing, since you need to make sure the execution goes by this &amp;quot;test point&amp;quot;,&lt;br /&gt;
but this would be useful to launch specific test with a valid context.&lt;br /&gt;
&lt;br /&gt;
=== jUnit compatible output format ===&lt;br /&gt;
It would be nice if the testing tool could generate a jUnit compatible output which can then be processed by other tools like a continuous build system. Of course this makes it necessary for the testing tool to be available from the command line.&lt;br /&gt;
&lt;br /&gt;
=== Compatibility with Getest ===&lt;br /&gt;
Since Gobo test has been available long before Eiffel test, it would be nice if the testing tool also supported GOBO test cases. This is probably really easy to do since the difference are minimal. Basically only that gobo test cases require a creation procedure. It would also be a good start if EiffelTest would still recognize test cases when they list a creation procedure(s) as long as default_create is listed.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Testing Tool (Architecture)]]&lt;br /&gt;
* [[Eweasel]]&lt;br /&gt;
* [[CddBranch]]&lt;br /&gt;
* [[Eiffel Testing Tool]]&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Testing_Tool_(Specification)&amp;diff=13563</id>
		<title>Testing Tool (Specification)</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Testing_Tool_(Specification)&amp;diff=13563"/>
				<updated>2009-12-31T03:25:04Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Extract tests from a running application */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Testing]]&lt;br /&gt;
&lt;br /&gt;
{{UnderConstruction}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Main functionalities ==&lt;br /&gt;
&lt;br /&gt;
=== Add unit/system level tests ===&lt;br /&gt;
&lt;br /&gt;
Semantically there is no difference between unit tests and system level tests. This way all tests can be written in Eiffel in a conforming way.&lt;br /&gt;
&lt;br /&gt;
A test is a arbitrary routine in a class inheriting from '''EQA_TEST_SET''' (the routine must be exported to '''ANY''').&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== System level test specifics (not yet implemented) ====&lt;br /&gt;
&lt;br /&gt;
Since system level testing often relies on external items like files, '''SYSTEM_LEVEL_EQA_TEST_SET''' provides a number of helper routines accessing them. These classes will probably have to be in an special testing library, since they also make use of other libraries such as the process library.&lt;br /&gt;
&lt;br /&gt;
==== Location of tests (config file) ====&lt;br /&gt;
&lt;br /&gt;
Tests can be located in any cluster of the system. In addition one can define test specific clusters through in the .ecf file. These clusters do not need to exists for the project to compile. This allows one to have library tests but being able to deliver the library without including the test suite.&lt;br /&gt;
For all classes in the test clusters, the inheritance structure will be evaluated so test classes inheriting from EQA_TEST_SET can be found. For any class belonging to a normal cluster, it will have to be reachable from root class to be compiled and detected as a test class. This means the recommended practice is to put test classes into a test cluster, but it is not a rule.&lt;br /&gt;
&lt;br /&gt;
{{Note| Not all classes in a test cluster have to be classes containing tests. One example are helper classes.}}&lt;br /&gt;
&lt;br /&gt;
Test clusters are also needed to provide a location for test generation/extraction.&lt;br /&gt;
&lt;br /&gt;
==== Additional information ====&lt;br /&gt;
&lt;br /&gt;
The indexing clause can be used to specify which classes and routines are tested by the test routine. Any specifications in the class indexing clause will apply to all tests in that class. Note the '''covers/''' tag in the following examples.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
&lt;br /&gt;
Example unit tests '''test_append''' and '''test_boolean'''&lt;br /&gt;
&amp;lt;eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
frozen class STRING_TESTS&lt;br /&gt;
&lt;br /&gt;
inherit&lt;br /&gt;
&lt;br /&gt;
    EQA_TEST_SET&lt;br /&gt;
        redefine&lt;br /&gt;
            set_up&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
feature {NONE} -- Initialization&lt;br /&gt;
&lt;br /&gt;
    set_up&lt;br /&gt;
        do&lt;br /&gt;
            create s.make (10)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
feature {TESTER} -- Access&lt;br /&gt;
&lt;br /&gt;
    s: STRING&lt;br /&gt;
&lt;br /&gt;
feature {TESTER} -- Test routines&lt;br /&gt;
&lt;br /&gt;
    test_append&lt;br /&gt;
        indexing&lt;br /&gt;
            testing: &amp;quot;covers/{STRING}.append, platform/os/winxp&amp;quot;&lt;br /&gt;
        require&lt;br /&gt;
            set_up: s /= Void and then s.is_empty&lt;br /&gt;
        do&lt;br /&gt;
            s.append (&amp;quot;12345&amp;quot;)&lt;br /&gt;
            assert (&amp;quot;append&amp;quot;, s.is_equal (&amp;quot;12345&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
    test_boolean&lt;br /&gt;
        indexing&lt;br /&gt;
            testing: &amp;quot;covers/{STRING}.is_boolean, covers/{STRING}.to_boolean&amp;quot;&lt;br /&gt;
        require&lt;br /&gt;
            set_up: s /= Void and then s.is_empty&lt;br /&gt;
        do&lt;br /&gt;
            s.append (&amp;quot;True&amp;quot;)&lt;br /&gt;
            assert (&amp;quot;boolean&amp;quot;, s.is_boolean and then s.to_boolean)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example system level test '''test_version''' (Note: '''EQA_SYSTEM_LEVEL_TEST_SET''' inherits from '''EQA_TEST_SET''' and provides basic functionality for executing external commands, including the system currently under development):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
indexing&lt;br /&gt;
    testing_covers: &amp;quot;all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
frozen class TEST_MY_APP&lt;br /&gt;
&lt;br /&gt;
inherit&lt;br /&gt;
&lt;br /&gt;
    EQA_SYSTEM_LEVEL_TEST_SET&lt;br /&gt;
&lt;br /&gt;
feature {TESTER} -- Test routines&lt;br /&gt;
&lt;br /&gt;
    test_version&lt;br /&gt;
        indexing&lt;br /&gt;
            testing: &amp;quot;platform/os/linux/x86&amp;quot;&lt;br /&gt;
        do&lt;br /&gt;
            run_system_with_args (&amp;quot;--version&amp;quot;)&lt;br /&gt;
            assert_string_equality (&amp;quot;version&amp;quot;, last_output, &amp;quot;my_app version 0.1 - linux x86&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Manage and run test suite ===&lt;br /&gt;
&lt;br /&gt;
[[Image:testing_set-view.png|right|400px|thumb|Standard view listing existing test sets and the tests they contain]]&lt;br /&gt;
[[Image:testing_cut-view.png|right|400px|thumb|Predefined ''Class tested'' view listing classes/features of the system together with the associated tests (Note: since test_boolean is tagged to cover multiple features, it also appears multiple times in the view)]]&lt;br /&gt;
[[Image:testing_user-view.png|right|400px|thumb|User defined view (by simply typing part of the tag), where the tool creates a view based on how the tests are tagged (see Examples above)]]&lt;br /&gt;
&lt;br /&gt;
The tool should have an own icon for displaying test cases (test routines). In this example it is a Lego block. Especially for views like ''list all tests for this routine'', it is important to see the difference between the actual routine and its tests. Also the tool has more of a vertical layout. Since the number of tests is comparable to the number of classes in the system, it makes sense the tools have the same layout. Also it allows to have tabs in the bottom for displaying further information, such as execution details (output, call stack, etc.).&lt;br /&gt;
&lt;br /&gt;
The '''menu bar''' includes following buttons:&lt;br /&gt;
* Create new manual test case (opens wizard)&lt;br /&gt;
** if test class is dropped on button, the wizard will suggest to create new test in that class&lt;br /&gt;
** if normal class (or feature) is dropped on button, wizard will suggest to create test for the class (or feature)&lt;br /&gt;
* Menu for generating new test (defaults to last chosen one?)&lt;br /&gt;
** if normal class/feature is dropped on button, generate tests for that class/feature&lt;br /&gt;
&lt;br /&gt;
* Menu for executing tests in background (defaults to last chosen one?)&lt;br /&gt;
** if any class/feature is dropped on button, run tests associated with class/feature&lt;br /&gt;
* Run test in debugger (must have a test selected or dropped on button to start)&lt;br /&gt;
* Stop any execution (background or debugger)&lt;br /&gt;
&lt;br /&gt;
* Opens settings dialog for testing&lt;br /&gt;
&lt;br /&gt;
* Status indicating how many tests we have ran so far and&lt;br /&gt;
* how many failing ones there are&lt;br /&gt;
&lt;br /&gt;
'''View''' defines in which way the test cases are listed (see below).&lt;br /&gt;
&lt;br /&gt;
'''Filter''' can be used to type keywords for showing only test cases having tags including the keywords (see below). It's a drop down so predefined filter patterns can be used (such as ''outcome.fail'').&lt;br /&gt;
&lt;br /&gt;
The '''grid''' contains a tree view of all test cases (test cases are always in leaves). Multiples columns for more information. Currently there are two indications whether a test fails or not (column and icons). Obviously it only needs one - they are both shown just to see the difference. The advantage with using icons is that less space is needed. Coloring the background of a row containing a failing test case would be an option as well.&lt;br /&gt;
&lt;br /&gt;
==== Tags ====&lt;br /&gt;
&lt;br /&gt;
Each test can have a number of tags. Tags can be a single string or hierarchically structured with slashes ('/'). For example, a test with tag ''covers/{STRING}.append'' means that this test is a regression test for {STRING}.append. There are a number of implicit tags for each test, such like the ''class'' tag ({STRING_TESTS}.test_append has the implicit tag ''class/{STRING_TESTS}.test_append'').&lt;br /&gt;
&lt;br /&gt;
{{Note|Tags are defined as strings, but in the view we sometimes want a tag to represent a class, or a feature. The way this is done right now is that the view basically knows if the tag starts with &amp;quot;covers/&amp;quot; it is followed by a class and feature name. Another approach would be to define such tags like this: &amp;quot;covers.{CLASS_NAME}.feature_name&amp;quot;. This would allow user defined tags to have clickable nodes in the view. We could also introduces other special tags such like dates/times.}}&lt;br /&gt;
&lt;br /&gt;
==== Different views ====&lt;br /&gt;
&lt;br /&gt;
Based on the notion of tags, we are able to define different views. The default view ''Test sets'' simply shows a hierarchical tree for every ''name.X'' tag. This enables us to define more views, such as ''Class tested'', which displays every ''covers.X'' tag. Note that with other tags than ''name.'' some tests might get listed multiple times where other not containing such a tag must be listed explicitly. The main advantage is that the user can define his own views based on any type of tags.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|The tools should support multiple selection. This is important for executing a number of selected test routines, showing passed execution results, etc. Also when selecting a e.g. class node it should execute all leaves below that node.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Running tests ====&lt;br /&gt;
[[Image:testing_run-menu.jpg]]&lt;br /&gt;
&lt;br /&gt;
The '''run''' menu provides different options for running tests in the background:&lt;br /&gt;
&lt;br /&gt;
* Run all tests in system&lt;br /&gt;
* Run currently failing ones&lt;br /&gt;
* Run test for classes last modified (better description needed here)&lt;br /&gt;
* Only run tests shown below&lt;br /&gt;
* Only run tests which are selected below&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|We should have two different views for displaying testing history. One structured by test sessions (list of test execution containing all test routines for each session) and one listing recent executions for a single test routine.}}&lt;br /&gt;
&lt;br /&gt;
=== Generate tests automatically ===&lt;br /&gt;
&lt;br /&gt;
[[Image:testing_generate-menu.jpg]]&lt;br /&gt;
&lt;br /&gt;
The '''generate''' menu lets you generate new tests for all classes in system (randomly picked?) or for classes which where last modified.&lt;br /&gt;
&lt;br /&gt;
=== Extract tests from a running application ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is the a simple example of an extracted test case (note that '''EQA_EXTRACTED_TEST_SET''' inherits from '''EQA_TEST_SET''' and implements all functionality for executing an extracted test).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;eiffel&amp;gt;&lt;br /&gt;
indexing&lt;br /&gt;
    testing: &amp;quot;type/extracted&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class&lt;br /&gt;
    STRING_TESTS_001&lt;br /&gt;
&lt;br /&gt;
inherit&lt;br /&gt;
&lt;br /&gt;
    EQA_EXTRACTED_TEST_SET&lt;br /&gt;
&lt;br /&gt;
feature {TESTER} -- Test routines&lt;br /&gt;
&lt;br /&gt;
    test_append_integer&lt;br /&gt;
            -- Call `routine_under_test' with input provided by `context'.&lt;br /&gt;
        note&lt;br /&gt;
            testing: &amp;quot;covers/{STRING}.append_integer&amp;quot;&lt;br /&gt;
        do&lt;br /&gt;
            run_extracted_test (agent {STRING}.append_integer, [&amp;quot;#1&amp;quot;, 100])&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
feature {NONE} -- Access&lt;br /&gt;
&lt;br /&gt;
    context: !ARRAY [!TUPLE [type: !TYPE [ANY]; attributes: !TUPLE; inv: BOOLEAN]]&lt;br /&gt;
            -- &amp;lt;Precursor&amp;gt;&lt;br /&gt;
        once&lt;br /&gt;
            Result := &amp;lt;&amp;lt;&lt;br /&gt;
                [{STRING}, [&lt;br /&gt;
                        &amp;quot;this is an integer: &amp;quot;&lt;br /&gt;
                    ], False]&lt;br /&gt;
            &amp;gt;&amp;gt;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
end -- class STRING_TESTS_001&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each test routines passes the agent of the routine to be tested, along with a tuple containing the arguments (#x refering to objects in `context'). This basically replaces the missing reflection functionality for calling features. '''context''' is also deferred in '''EQA_EXTACTED_TEST_SET''' and contains all data from the heap and call stack which was reachable by the routine at extraction time. Each TUPLE represents an object, where `inv' defines whether the object should fulfill its invariant or not (if the object was on the stack at extraction time, this does not have to be the case).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This design lets us have the entire test in one file. This is practical especially in the situation where a user should submit such a test as a bug report after experiencing a crash.&lt;br /&gt;
The reason for that is mainly the set_up procedure. Creating all objects in '''context''' must be done during set_up. If there is a failure, the set_up will be blamed instead of the actual test routine, which makes the test not fail but invalid. This can happen e.g. if one of the objects in the context does not fulfill its invariant, which again could result from simply editing the class being tested. Any suggestions welcome!&lt;br /&gt;
&lt;br /&gt;
=== Background test execution ===&lt;br /&gt;
== Open questions ==&lt;br /&gt;
(This section should disappear as the questions get answered.)&lt;br /&gt;
&lt;br /&gt;
== Wish list ==&lt;br /&gt;
&lt;br /&gt;
If you have any suggestions or ideas which would improve the testing tool, please add them to this section.&lt;br /&gt;
&lt;br /&gt;
=== tests with context ===&lt;br /&gt;
it would be nice to have contextual test cases.&lt;br /&gt;
For instance you would create a test class&lt;br /&gt;
and you create an associated &amp;quot;test point&amp;quot; (kind of breakpoint, or like aspect programming)&lt;br /&gt;
and then, when you run the execution in &amp;quot;testing mode&amp;quot; (under the debugger, or testing tool)&lt;br /&gt;
whenever you reach this &amp;quot;test point&amp;quot;, it would trigger the associated test case.&lt;br /&gt;
I agree, it is not anymore automatic testing, since you need to make sure the execution goes by this &amp;quot;test point&amp;quot;,&lt;br /&gt;
but this would be useful to launch specific test with a valid context.&lt;br /&gt;
&lt;br /&gt;
=== jUnit compatible output format ===&lt;br /&gt;
It would be nice if the testing tool could generate a jUnit compatible output which can then be processed by other tools like a continuous build system. Of course this makes it necessary for the testing tool to be available from the command line.&lt;br /&gt;
&lt;br /&gt;
=== Compatibility with Getest ===&lt;br /&gt;
Since Gobo test has been available long before Eiffel test, it would be nice if the testing tool also supported GOBO test cases. This is probably really easy to do since the difference are minimal. Basically only that gobo test cases require a creation procedure. It would also be a good start if EiffelTest would still recognize test cases when they list a creation procedure(s) as long as default_create is listed.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Testing Tool (Architecture)]]&lt;br /&gt;
* [[Eweasel]]&lt;br /&gt;
* [[CddBranch]]&lt;br /&gt;
* [[Eiffel Testing Tool]]&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Testing_Tool_(Specification)&amp;diff=13562</id>
		<title>Testing Tool (Specification)</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Testing_Tool_(Specification)&amp;diff=13562"/>
				<updated>2009-12-31T03:24:31Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Extract tests from a running application */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Testing]]&lt;br /&gt;
&lt;br /&gt;
{{UnderConstruction}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Main functionalities ==&lt;br /&gt;
&lt;br /&gt;
=== Add unit/system level tests ===&lt;br /&gt;
&lt;br /&gt;
Semantically there is no difference between unit tests and system level tests. This way all tests can be written in Eiffel in a conforming way.&lt;br /&gt;
&lt;br /&gt;
A test is a arbitrary routine in a class inheriting from '''EQA_TEST_SET''' (the routine must be exported to '''ANY''').&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== System level test specifics (not yet implemented) ====&lt;br /&gt;
&lt;br /&gt;
Since system level testing often relies on external items like files, '''SYSTEM_LEVEL_EQA_TEST_SET''' provides a number of helper routines accessing them. These classes will probably have to be in an special testing library, since they also make use of other libraries such as the process library.&lt;br /&gt;
&lt;br /&gt;
==== Location of tests (config file) ====&lt;br /&gt;
&lt;br /&gt;
Tests can be located in any cluster of the system. In addition one can define test specific clusters through in the .ecf file. These clusters do not need to exists for the project to compile. This allows one to have library tests but being able to deliver the library without including the test suite.&lt;br /&gt;
For all classes in the test clusters, the inheritance structure will be evaluated so test classes inheriting from EQA_TEST_SET can be found. For any class belonging to a normal cluster, it will have to be reachable from root class to be compiled and detected as a test class. This means the recommended practice is to put test classes into a test cluster, but it is not a rule.&lt;br /&gt;
&lt;br /&gt;
{{Note| Not all classes in a test cluster have to be classes containing tests. One example are helper classes.}}&lt;br /&gt;
&lt;br /&gt;
Test clusters are also needed to provide a location for test generation/extraction.&lt;br /&gt;
&lt;br /&gt;
==== Additional information ====&lt;br /&gt;
&lt;br /&gt;
The indexing clause can be used to specify which classes and routines are tested by the test routine. Any specifications in the class indexing clause will apply to all tests in that class. Note the '''covers/''' tag in the following examples.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
&lt;br /&gt;
Example unit tests '''test_append''' and '''test_boolean'''&lt;br /&gt;
&amp;lt;eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
frozen class STRING_TESTS&lt;br /&gt;
&lt;br /&gt;
inherit&lt;br /&gt;
&lt;br /&gt;
    EQA_TEST_SET&lt;br /&gt;
        redefine&lt;br /&gt;
            set_up&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
feature {NONE} -- Initialization&lt;br /&gt;
&lt;br /&gt;
    set_up&lt;br /&gt;
        do&lt;br /&gt;
            create s.make (10)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
feature {TESTER} -- Access&lt;br /&gt;
&lt;br /&gt;
    s: STRING&lt;br /&gt;
&lt;br /&gt;
feature {TESTER} -- Test routines&lt;br /&gt;
&lt;br /&gt;
    test_append&lt;br /&gt;
        indexing&lt;br /&gt;
            testing: &amp;quot;covers/{STRING}.append, platform/os/winxp&amp;quot;&lt;br /&gt;
        require&lt;br /&gt;
            set_up: s /= Void and then s.is_empty&lt;br /&gt;
        do&lt;br /&gt;
            s.append (&amp;quot;12345&amp;quot;)&lt;br /&gt;
            assert (&amp;quot;append&amp;quot;, s.is_equal (&amp;quot;12345&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
    test_boolean&lt;br /&gt;
        indexing&lt;br /&gt;
            testing: &amp;quot;covers/{STRING}.is_boolean, covers/{STRING}.to_boolean&amp;quot;&lt;br /&gt;
        require&lt;br /&gt;
            set_up: s /= Void and then s.is_empty&lt;br /&gt;
        do&lt;br /&gt;
            s.append (&amp;quot;True&amp;quot;)&lt;br /&gt;
            assert (&amp;quot;boolean&amp;quot;, s.is_boolean and then s.to_boolean)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example system level test '''test_version''' (Note: '''EQA_SYSTEM_LEVEL_TEST_SET''' inherits from '''EQA_TEST_SET''' and provides basic functionality for executing external commands, including the system currently under development):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
indexing&lt;br /&gt;
    testing_covers: &amp;quot;all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
frozen class TEST_MY_APP&lt;br /&gt;
&lt;br /&gt;
inherit&lt;br /&gt;
&lt;br /&gt;
    EQA_SYSTEM_LEVEL_TEST_SET&lt;br /&gt;
&lt;br /&gt;
feature {TESTER} -- Test routines&lt;br /&gt;
&lt;br /&gt;
    test_version&lt;br /&gt;
        indexing&lt;br /&gt;
            testing: &amp;quot;platform/os/linux/x86&amp;quot;&lt;br /&gt;
        do&lt;br /&gt;
            run_system_with_args (&amp;quot;--version&amp;quot;)&lt;br /&gt;
            assert_string_equality (&amp;quot;version&amp;quot;, last_output, &amp;quot;my_app version 0.1 - linux x86&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Manage and run test suite ===&lt;br /&gt;
&lt;br /&gt;
[[Image:testing_set-view.png|right|400px|thumb|Standard view listing existing test sets and the tests they contain]]&lt;br /&gt;
[[Image:testing_cut-view.png|right|400px|thumb|Predefined ''Class tested'' view listing classes/features of the system together with the associated tests (Note: since test_boolean is tagged to cover multiple features, it also appears multiple times in the view)]]&lt;br /&gt;
[[Image:testing_user-view.png|right|400px|thumb|User defined view (by simply typing part of the tag), where the tool creates a view based on how the tests are tagged (see Examples above)]]&lt;br /&gt;
&lt;br /&gt;
The tool should have an own icon for displaying test cases (test routines). In this example it is a Lego block. Especially for views like ''list all tests for this routine'', it is important to see the difference between the actual routine and its tests. Also the tool has more of a vertical layout. Since the number of tests is comparable to the number of classes in the system, it makes sense the tools have the same layout. Also it allows to have tabs in the bottom for displaying further information, such as execution details (output, call stack, etc.).&lt;br /&gt;
&lt;br /&gt;
The '''menu bar''' includes following buttons:&lt;br /&gt;
* Create new manual test case (opens wizard)&lt;br /&gt;
** if test class is dropped on button, the wizard will suggest to create new test in that class&lt;br /&gt;
** if normal class (or feature) is dropped on button, wizard will suggest to create test for the class (or feature)&lt;br /&gt;
* Menu for generating new test (defaults to last chosen one?)&lt;br /&gt;
** if normal class/feature is dropped on button, generate tests for that class/feature&lt;br /&gt;
&lt;br /&gt;
* Menu for executing tests in background (defaults to last chosen one?)&lt;br /&gt;
** if any class/feature is dropped on button, run tests associated with class/feature&lt;br /&gt;
* Run test in debugger (must have a test selected or dropped on button to start)&lt;br /&gt;
* Stop any execution (background or debugger)&lt;br /&gt;
&lt;br /&gt;
* Opens settings dialog for testing&lt;br /&gt;
&lt;br /&gt;
* Status indicating how many tests we have ran so far and&lt;br /&gt;
* how many failing ones there are&lt;br /&gt;
&lt;br /&gt;
'''View''' defines in which way the test cases are listed (see below).&lt;br /&gt;
&lt;br /&gt;
'''Filter''' can be used to type keywords for showing only test cases having tags including the keywords (see below). It's a drop down so predefined filter patterns can be used (such as ''outcome.fail'').&lt;br /&gt;
&lt;br /&gt;
The '''grid''' contains a tree view of all test cases (test cases are always in leaves). Multiples columns for more information. Currently there are two indications whether a test fails or not (column and icons). Obviously it only needs one - they are both shown just to see the difference. The advantage with using icons is that less space is needed. Coloring the background of a row containing a failing test case would be an option as well.&lt;br /&gt;
&lt;br /&gt;
==== Tags ====&lt;br /&gt;
&lt;br /&gt;
Each test can have a number of tags. Tags can be a single string or hierarchically structured with slashes ('/'). For example, a test with tag ''covers/{STRING}.append'' means that this test is a regression test for {STRING}.append. There are a number of implicit tags for each test, such like the ''class'' tag ({STRING_TESTS}.test_append has the implicit tag ''class/{STRING_TESTS}.test_append'').&lt;br /&gt;
&lt;br /&gt;
{{Note|Tags are defined as strings, but in the view we sometimes want a tag to represent a class, or a feature. The way this is done right now is that the view basically knows if the tag starts with &amp;quot;covers/&amp;quot; it is followed by a class and feature name. Another approach would be to define such tags like this: &amp;quot;covers.{CLASS_NAME}.feature_name&amp;quot;. This would allow user defined tags to have clickable nodes in the view. We could also introduces other special tags such like dates/times.}}&lt;br /&gt;
&lt;br /&gt;
==== Different views ====&lt;br /&gt;
&lt;br /&gt;
Based on the notion of tags, we are able to define different views. The default view ''Test sets'' simply shows a hierarchical tree for every ''name.X'' tag. This enables us to define more views, such as ''Class tested'', which displays every ''covers.X'' tag. Note that with other tags than ''name.'' some tests might get listed multiple times where other not containing such a tag must be listed explicitly. The main advantage is that the user can define his own views based on any type of tags.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|The tools should support multiple selection. This is important for executing a number of selected test routines, showing passed execution results, etc. Also when selecting a e.g. class node it should execute all leaves below that node.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Running tests ====&lt;br /&gt;
[[Image:testing_run-menu.jpg]]&lt;br /&gt;
&lt;br /&gt;
The '''run''' menu provides different options for running tests in the background:&lt;br /&gt;
&lt;br /&gt;
* Run all tests in system&lt;br /&gt;
* Run currently failing ones&lt;br /&gt;
* Run test for classes last modified (better description needed here)&lt;br /&gt;
* Only run tests shown below&lt;br /&gt;
* Only run tests which are selected below&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|We should have two different views for displaying testing history. One structured by test sessions (list of test execution containing all test routines for each session) and one listing recent executions for a single test routine.}}&lt;br /&gt;
&lt;br /&gt;
=== Generate tests automatically ===&lt;br /&gt;
&lt;br /&gt;
[[Image:testing_generate-menu.jpg]]&lt;br /&gt;
&lt;br /&gt;
The '''generate''' menu lets you generate new tests for all classes in system (randomly picked?) or for classes which where last modified.&lt;br /&gt;
&lt;br /&gt;
=== Extract tests from a running application ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is the a simple example of an extracted test case (note that '''EQA_EXTRACTED_TEST_SET''' inherits from '''EQA_TEST_SET''' and implements all functionality for executing an extracted test).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;eiffel&amp;gt;&lt;br /&gt;
indexing&lt;br /&gt;
    testing: &amp;quot;type/extracted&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class&lt;br /&gt;
    STRING_TESTS_001&lt;br /&gt;
&lt;br /&gt;
inherit&lt;br /&gt;
&lt;br /&gt;
    EQA_EXTRACTED_TEST_SET&lt;br /&gt;
&lt;br /&gt;
feature {TESTER} -- Test routines&lt;br /&gt;
&lt;br /&gt;
    test_append_integer&lt;br /&gt;
            -- Call `routine_under_test' with input provided by `context'.&lt;br /&gt;
        indexing&lt;br /&gt;
            testing: &amp;quot;covers/{STRING}.append_integer&amp;quot;&lt;br /&gt;
        do&lt;br /&gt;
            run_extracted_test (agent {STRING}.append_integer, [&amp;quot;#1&amp;quot;, 100])&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
feature {NONE} -- Access&lt;br /&gt;
&lt;br /&gt;
    context: !ARRAY [!TUPLE [type: !TYPE [ANY]; attributes: !TUPLE; inv: BOOLEAN]]&lt;br /&gt;
            -- &amp;lt;Precursor&amp;gt;&lt;br /&gt;
        once&lt;br /&gt;
            Result := &amp;lt;&amp;lt;&lt;br /&gt;
                [{STRING}, [&lt;br /&gt;
                        &amp;quot;this is an integer: &amp;quot;&lt;br /&gt;
                    ], False]&lt;br /&gt;
            &amp;gt;&amp;gt;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
end -- class STRING_TESTS_001&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/eiffel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each test routines passes the agent of the routine to be tested, along with a tuple containing the arguments (#x refering to objects in `context'). This basically replaces the missing reflection functionality for calling features. '''context''' is also deferred in '''EQA_EXTACTED_TEST_SET''' and contains all data from the heap and call stack which was reachable by the routine at extraction time. Each TUPLE represents an object, where `inv' defines whether the object should fulfill its invariant or not (if the object was on the stack at extraction time, this does not have to be the case).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This design lets us have the entire test in one file. This is practical especially in the situation where a user should submit such a test as a bug report after experiencing a crash.&lt;br /&gt;
The reason for that is mainly the set_up procedure. Creating all objects in '''context''' must be done during set_up. If there is a failure, the set_up will be blamed instead of the actual test routine, which makes the test not fail but invalid. This can happen e.g. if one of the objects in the context does not fulfill its invariant, which again could result from simply editing the class being tested. Any suggestions welcome!&lt;br /&gt;
&lt;br /&gt;
=== Background test execution ===&lt;br /&gt;
== Open questions ==&lt;br /&gt;
(This section should disappear as the questions get answered.)&lt;br /&gt;
&lt;br /&gt;
== Wish list ==&lt;br /&gt;
&lt;br /&gt;
If you have any suggestions or ideas which would improve the testing tool, please add them to this section.&lt;br /&gt;
&lt;br /&gt;
=== tests with context ===&lt;br /&gt;
it would be nice to have contextual test cases.&lt;br /&gt;
For instance you would create a test class&lt;br /&gt;
and you create an associated &amp;quot;test point&amp;quot; (kind of breakpoint, or like aspect programming)&lt;br /&gt;
and then, when you run the execution in &amp;quot;testing mode&amp;quot; (under the debugger, or testing tool)&lt;br /&gt;
whenever you reach this &amp;quot;test point&amp;quot;, it would trigger the associated test case.&lt;br /&gt;
I agree, it is not anymore automatic testing, since you need to make sure the execution goes by this &amp;quot;test point&amp;quot;,&lt;br /&gt;
but this would be useful to launch specific test with a valid context.&lt;br /&gt;
&lt;br /&gt;
=== jUnit compatible output format ===&lt;br /&gt;
It would be nice if the testing tool could generate a jUnit compatible output which can then be processed by other tools like a continuous build system. Of course this makes it necessary for the testing tool to be available from the command line.&lt;br /&gt;
&lt;br /&gt;
=== Compatibility with Getest ===&lt;br /&gt;
Since Gobo test has been available long before Eiffel test, it would be nice if the testing tool also supported GOBO test cases. This is probably really easy to do since the difference are minimal. Basically only that gobo test cases require a creation procedure. It would also be a good start if EiffelTest would still recognize test cases when they list a creation procedure(s) as long as default_create is listed.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Testing Tool (Architecture)]]&lt;br /&gt;
* [[Eweasel]]&lt;br /&gt;
* [[CddBranch]]&lt;br /&gt;
* [[Eiffel Testing Tool]]&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.5_Releases&amp;diff=13550</id>
		<title>EiffelStudio 6.5 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.5_Releases&amp;diff=13550"/>
				<updated>2009-12-09T02:16:34Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Bug fixes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.5.x Releases=&lt;br /&gt;
&lt;br /&gt;
==6.5.8.1777 (Final Release, December 8th 2009)==&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*base: Fixed bug in `remove_substring' from STRING_32 and STRING_8 which was not resetting the string's hashcode.&lt;br /&gt;
*base: Fixed contract violation in FORMAT_INTEGER for CR/DR.&lt;br /&gt;
*docking: Fixed one compilation error that prevented void-safe mode compilation of the library.&lt;br /&gt;
*docking: Made dragging of tools or notebook tabs more sensitive, previously if you only moved along one axis it would have no effect.&lt;br /&gt;
*store: Fixed a segmentation violation in the ODBC handle in the experimental version of the library.&lt;br /&gt;
*vision2: Implemented workaround for window segfaults on latest Ubuntu where gtkwindow objects created before the main app causes a seg fault.&lt;br /&gt;
*vision2: Fixed catcall issues when enumerating font names under void-safety.&lt;br /&gt;
*compiler: Fixed bug#15241 where finalizing with assertions enabled would cause a C compilation error when freezing later in the same EiffelStudio session.&lt;br /&gt;
*compiler: Fixed eweasel test#final086 where an object test could evaluate more than once the expression.&lt;br /&gt;
*autotest: Fixed issue where test case would be generated for every failure even if they are not unique.&lt;br /&gt;
*autotest: Made it possible to test a void-safe system using AutoTest.&lt;br /&gt;
*debugger: Fixed bug#16494 where &amp;quot;attached {FOO} bar&amp;quot; would give an incorrect result.&lt;br /&gt;
*debugger: Fixed bug#16488 where you would get a feature call on void target in {EV_GRID_EDITABLE_ELLIPSIS_ITEM}.set_text in EiffelStudio.&lt;br /&gt;
*studio: Fixed bug#16489 where selecting the current target in the groups tool while having previously selected a cluster would cause an infinite loop and memory exhaustion.&lt;br /&gt;
*studio: Fixed bug#14857 Store the external commands in ISE User files&lt;br /&gt;
*runtime: Fixed a bug in CECIL macros which would cause a segmentation violation on some platforms at the first GC cycle.&lt;br /&gt;
*runtime: Fixed bug#16395 and eweasel test#store026 to avoid mismatch if the metadata stored in `eskelet' is simplified or not (i.e. for class A[G] feature g: B[G], and then having A [INTEGER] could either describe `g' as either `B[G]' or `B[INTEGER]', even though different they are the same type and should not yield a mismatch).&lt;br /&gt;
*examples: Fixed some of the CECIL samples.&lt;br /&gt;
&lt;br /&gt;
==6.5.8.1614 (November 23rd 2009 - Release Candidate 2) ==&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
* studio: removed all void-safe configurations in non-experimental mode. One has to use experimental mode to really get void-safe benefits.&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* debugger: Fixed major issue with evaluation of object test locals on feature without any (normal) locals.&lt;br /&gt;
* debugger: Fixed bug#16382: Watch expression gives improper result for an object test local&lt;br /&gt;
* vision2: Fixed a hanging issue when performing P&amp;amp;D on Windows when the computer is under somewhat heavy load.&lt;br /&gt;
* runtime: Fixed eweasel test#store028 where retrieving an object whose type involves a TUPLE type without a TUPLE instance could corrupt the retrieval system.&lt;br /&gt;
* compiler: Fixed bug#15241 where an extra ')' was generated in workbench mode when freezing just after finalizing with keeping assertions.&lt;br /&gt;
* dotnet: Fixed a code generation crash we introduced at rev#81207.&lt;br /&gt;
* build: Fixed bug#16467 and bug#16468 where EiffelBuild failed at renaming classes that have already been generated, and failed at creating a new sub directory in the widget selector.&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.8.1483 (November 12th 2009 - Release Candidate)==&lt;br /&gt;
===New features===&lt;br /&gt;
*compiler: New loop constructs implementation per a draft specification of the next ECMA standard.&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Error list tool now displays the file name and position of configuration file parse errors.&lt;br /&gt;
*studio: Added &amp;quot;console&amp;quot; and &amp;quot;void-safety&amp;quot; information in the &amp;quot;system&amp;quot; output&lt;br /&gt;
*debugger: it is now possible to unset an environment variable, or unset all variables, in the execution parameters dialog (see doc)&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed eweasel test#incr313, test#incr317 and test#incr318 where removal of a convert clause was not taken into account by the compiler.&lt;br /&gt;
*compiler: Fixed eweasel test#svalid022 where conversion to a target of a detachable type was not accepted, and also now the compiler will verify that the source of the conversion is always attached. Ensured that the source or the target type mentioned in a convert clause is attached.&lt;br /&gt;
*compiler: Fixed eweasel test#svalid024 where using an inspect clause with static constant access would failed to compile in a descendant class when `full class checking' is enabled.&lt;br /&gt;
*compiler: Fixed eweasel test#term156 and test#svalid025 where compiler would crash while compiling code that needs to be regenerated in descendant classes (e.g. code from precondition) involving anchors or formal generic parameters.&lt;br /&gt;
*compiler: Fixed creation of manifest array with an attached actual generic parameter to not throw a precondition violation in void-safe mode.&lt;br /&gt;
*compiler: Fixed eweasel test#array006 where creating a manifest array would trigger an unjustified invariant violation.&lt;br /&gt;
*{{Red|compiler: Ensured that code generation in .NET mode with experimental compiler worked properly. The current limitation is that manifest type instances are not unique unlike their classic counterpart and that {ANY}.generating_type cannot be applied on .NET types.}}&lt;br /&gt;
*runtime: Fixed a crash at runtime on Windows for non-console application when they try to output or read something from the console.&lt;br /&gt;
*base: Fixed invalid retrieval of SPECIAL objects using the Eiffel SED serializer in experimental mode.&lt;br /&gt;
*base: Fixed a missing element in {BOUNDED_QUEUE}.linear_representation (eweasel test#queue003)&lt;br /&gt;
*studio: Fixed various layout bug due to the above fix with the serializer&lt;br /&gt;
*debugger: Fixed bug#16300: Setting environment variable has no effect&lt;br /&gt;
*debugger: Fixed bug#15996: Disable Assertion Checking not very clever. Also fixes other similar issues with menu and toolbar items update, where text and pixmap were not updated after toggling action.&lt;br /&gt;
*debugger: Fixed evaluation involving object test expression such as  &amp;quot;attached {like foo} bar&amp;quot;&lt;br /&gt;
*debugger: Fixed issue where the breakpoint tool was empty &lt;br /&gt;
*debugger: Fixed bug#11384, &amp;quot;Current&amp;quot; Object can be removed&lt;br /&gt;
*debugger: Fixed breakpoint relocation feature. (Ctrl+RightClick and Ctrl+drop on bp slot)&lt;br /&gt;
*debugger: Fixed major issue for debugger evaluation ... where &amp;quot;a = b&amp;quot; were evaluated as &amp;quot;equal (a, b)&amp;quot;&lt;br /&gt;
*debugger: Fixed issue occurring sometime when loading a project recompiled from scratch with enabled breakpoint (referencing class id not existing anymore)&lt;br /&gt;
*debugger: Fixed crash related to remote evaluation using the RT_ objects (mainly related to conditional breakpoint)&lt;br /&gt;
*debugger: Fixed bug#16382: Watch expression gives improper result for an object test local&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.8.945 (September 29th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*{{Red|base: Added the &amp;quot;+&amp;quot; operator on READABLE_STRING_GENERAL.}}&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* compiler: Supported tracking changes made to a shared library definition file to trigger freeze automatically when there are any modifications to this file.&lt;br /&gt;
*preferences: fixed bug#13502: Preference values are not taken into account when searching in Preferences window flat view&lt;br /&gt;
*studio: Implemented shortcut F9 to enable/remove breakpoint at current line (cursor) on focused flat formatter (feature relation tool). &lt;br /&gt;
*studio: Implemented shortcut Shift+F9 to enable/disable breakpoint at current line (cursor) on focused flat formatter (feature relation tool). &lt;br /&gt;
*studio: Implemented shortcut Ctrl+F9 to edit breakpoint at current line (cursor) on focused flat formatter (feature relation tool).&lt;br /&gt;
*studio: Recorded targets of recently open projects so that they can be immediately open from the list of recent pojects.&lt;br /&gt;
*{{Red|vision2: Improved pick and drop mechanism to not use the `wel_hook.dll'. The visible change is that when the cursor is outside the vision2 application its shape changes depending on what is beneath.}}&lt;br /&gt;
*windows: Added official support for Windows SDK 7.0 and betas of Visual Studio/Visual C/C++ Express 2010.&lt;br /&gt;
*studio: bug#14849: Implement a &amp;quot;Go to BP Slot&amp;quot; action for debugging. (Shortcut =  Ctrl+G on flat formatter.)&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*studio: allowed undoing the first modification made in the diagram tool (see bug#5291).&lt;br /&gt;
*studio: prevented useless additio of `Zoom 100%' in the undo/redo list of the diagram tool.&lt;br /&gt;
*studio: fixed bug#15984: [sm] Typo in dialog box&lt;br /&gt;
*studio: fixed bug#16236: Abort Freezing dialog should have yes/no buttons&lt;br /&gt;
*studio: fixed bug#13201: Violation of precondition `not_destroyed' of {EB_VISION_WINDOW}.set_pointer_style&lt;br /&gt;
*studio: Fixed bug#16266 which prevented saving of classes in EiffelStudio. The first save would be successful, but none of the one after.&lt;br /&gt;
*studio: Fixed bug#16271 where some dialogs will appear in the german language even if locale is english.&lt;br /&gt;
*studio: Fixed bug when opening a recent project from EiffelStudio's MRU menu, with a space in the file name, on *nix platforms.&lt;br /&gt;
*studio: fixed bug#13003: Sample basic application should print something&lt;br /&gt;
*studio: fixed bug#13501: Ctrl+Shift+V pastes text. And other similar shortcut where we now also check that &amp;quot;Shift&amp;quot; is not enabled.&lt;br /&gt;
*studio: fixed bug#13184: Vioation of `initialized' of {EB_EXPRESSION_DEFINITION_DIALOG}.eiffel_universe&lt;br /&gt;
*studio: fixed bug#13234: Typos in {INTERFACE_NAMES}.l_..._runnin..&lt;br /&gt;
*studio: fixed bug#15483: Open layout is disabled even if you have an entry&lt;br /&gt;
&lt;br /&gt;
*build: Fixed crash of EiffelBuild when loading a project that has a EV_SPIN_BUTTON for which the `text_change_actions' event was connected.&lt;br /&gt;
&lt;br /&gt;
*docking: fixed bug#16213, bug#16214: Precondition in docking&lt;br /&gt;
*docking: fixed bug#16153: Precondition violated Tag: docking_manager_attached in {EB_DEVELOPMENT_WINDOW}.close_all_tools in Eiffel Studio&lt;br /&gt;
*docking: fixed bug#4764: Enhancements to how undocked windows work&lt;br /&gt;
*docking: fixed bug#13018: Picking class via context menu does not work in mini-toolbar&lt;br /&gt;
*docking: fixed bug#13038: Double-click on docked window title bar often undocks instead of maximizing&lt;br /&gt;
*docking: fixed bug#13659: Call on Void target in {SD_SAVE_CONFIG_MEDIATOR}.save_one_auto_hide_panel_data&lt;br /&gt;
*docking: fixed bug#13178: Violation of precondition `setted' of {EB_SD_COMMAND_TOOL_BAR_BUTTON}.has_position&lt;br /&gt;
&lt;br /&gt;
*debugger: fixed bug#16195: Debug session with conditional breakpoint causes program to exhaust memory, crash EStudio&lt;br /&gt;
*debugger: keep rows selection when disabling several lines in the watch tool&lt;br /&gt;
*debugger: Fixed various debugger's issues related to Expanded object (especially about items from SPECIAL of expanded object). &lt;br /&gt;
*debugger: Fixed bug#16197: is DEBUG_OUTPUT no longer supported?&lt;br /&gt;
&lt;br /&gt;
*compiler: Fixed bug on *nix platforms where spaces in project/installation paths failed to create the necessary symbolic links, when using precompiles.&lt;br /&gt;
*compiler: Fixed issue with TYPE instances not properly created. It addresses extended eweasel test#melt097.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*{{Red|arg_parser: `make_hidden' now takes one argument less.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.8.524 (August 30th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*{{Red|libraries: added the base extension library that offers some extra functionality to EiffelBase. Namely a SEARCH_TABLE which is basically a HASH_TABLE where keys and items are the same, and sorting facilities for INDEXABLE containers.}}&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Automatic class licenser can now use license.lic files next to an ECF instead of naming file *.lic after the ECF. Makes it easier for multi-ECF libraries.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*base: Fixed issue with `put' and `extend' from PART_SORTED_SET which had no effect and thus causing a postcondition violation.&lt;br /&gt;
*base: Fixed issue with `remove' in BINARY_SEARCH_TREE_SET which would not move the cursor and thus causing an infinite loop in `subtract', `intersect.&lt;br /&gt;
*base: Added ability to create a directory recursively.&lt;br /&gt;
*testing: Fixed an issue with the Eiffel runtime override of byte code causing some test execution to fail if no code was melted.&lt;br /&gt;
*studio: Fixed issue with ES crashing when trying to merge a license, when class contains an empty note clause.&lt;br /&gt;
*studio: Fixed issue where project settings would let you add twice the same include file rule.&lt;br /&gt;
*studio: Fixed an issue where clicking in the project settings entry to display a dialog and then clicking cancel would show the dialog a second time.&lt;br /&gt;
*studio: Fixed bug#14840: Extracted homonyms once, and now Estudio keeps trying to extract them again&lt;br /&gt;
*debugger: Fixed bug#5084: I cannot PnD class attributes in the watch window&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*base: Made `clear_all' in STRING_8, STRING_32 and HASH_TABLE obsolete. One has to use `wipe_out' instead.&lt;br /&gt;
*{{Red|base: Strengthen precondition of `resize' in STRING_8/STRING_32 to forbid values that would shrink the string content. Use `grow' instead to preserve former `resize' behavior.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.8.294 (August 17th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
* {{Red|web_browser: Added Web Browser widget {EV_WEB_BROWSER} (see new &amp;quot;web_browser&amp;quot; library) and example project (see example under $ISE_LIBRARY/examples/web_browser)}}&lt;br /&gt;
* {{Red|studio: GCC and MSC external compilation errors are now displayed in the error list, with linking to source Eiffel feature when the information is available.}}&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Improved error messages for VUAR/VJAR/VBAR errors to mention compatibility instead of just conformance.&lt;br /&gt;
*studio: Now double clicking on an ecf file will select the previously compiled target by default.&lt;br /&gt;
*ec: Fixed command line compilation to use the current working directory unless -project_path is specified (restoring pre-ecf behavior)&lt;br /&gt;
*ec: When an ecf file has been specified with -config, the previously compiled target is chosen as the first option in the compilable target list.&lt;br /&gt;
*AutoTest: Improved tag tree for displaying tests by merging view/filter box into one input field&lt;br /&gt;
*AutoTest: Potential test classes are traversed asynchronously after each compilation, allowing the user to continue working while tests are found. This also removes the need for special test clusters.&lt;br /&gt;
*AutoTest: Improved the way tests are executed. By tagging a test with &amp;quot;execution/isolated&amp;quot; the test process is restarted before and after the test is executed. By tagging a number of tests with a tag &amp;quot;execution/serial&amp;quot;, the tagged tests are not executed in parallel. {{Red|Because of these changes, test execution and generation might not completely work in the next release (missing test results/output).}}&lt;br /&gt;
*{{Red|AutoTest library: {EQA_TEST_SET}.on_prepare is called during `default_create', which makes it simpler to use attached attributes in void-safe tests.}}&lt;br /&gt;
*AutoTest library: Moved actual test routine invocation into {EQA_TEST_SET}.run_test which can be used to nest the test routine call. This is used for example by Vision2 tests to launch the event loop before calling the test routine.&lt;br /&gt;
*{{Red|Docking library: Made Smart Docking library (including docking library examples) void-safe}}&lt;br /&gt;
*studio: when dropping a library stone inside an editor, it also display sub libraries (among other data)&lt;br /&gt;
*studio: Added a context menu &amp;quot;Add Selection To&amp;quot; ... watch tools. This is used to create a new expression using the editor's selection text. (fixed bug#11064)&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*base: Fixed bug#4118 where on .NET `put' had no effect on the actual process environment variables because the API was only available in .NET 2.0 which is what we support at the minimum.&lt;br /&gt;
*{{Red|base: Fixed bug in `copy' from HEAP_PRIORITY_QUEUE which would not do anything because it was simply copying itself, not other.}}&lt;br /&gt;
*{{Red|base: Fixed bug in `remove' from HEAP_PRIORITY_QUEUE which caused the internal structure to be referenced beyond its bounds.}}&lt;br /&gt;
*base: Fixed a bug in {MEMORY}.memory_map which would cause a precondition violation in one of its call.&lt;br /&gt;
*serialization: Fixed a bug in SED_INDEPENDENT_DESERIALIZER in the experimental branch where we could get an out of bound access because we incorrectly resized a SPECIAL.&lt;br /&gt;
*studio: Fixed bug preventing the an output from being selected on Windows.&lt;br /&gt;
*studio: Fixed duplicate output issue when a subsystem activates the outputs tool before showing it.&lt;br /&gt;
*studio: Fixed bug preventing the new features dialog from being displayed when using newer syntax.&lt;br /&gt;
*EiffelVision: Fixed potential crash with tab navigation code when a key press was sent to a widget that is in the process of being unparented.&lt;br /&gt;
*debugger: fixed#16013, now all READABLE_STRING_8/32 and descendant will be displayed as string literal in debugger tools.&lt;br /&gt;
*compiler: Fixed eweasel test#final084 where compiler would generate incorrect type at run-time causing some memory corruption or a general failure.&lt;br /&gt;
*compiler: Fixed eweasel test#final083 where compiler would crash when inlining certain type of code involving generic classes.&lt;br /&gt;
*compiler: Fixed issues in experimental version when introducing `generating_type: TYPE [like Current]' in ANY which was causing a few eweasel tests. Also add new test for bug found with manifest type (eweasel test#melt097 and test#valid257).&lt;br /&gt;
*base: Added missing `own_from_pointer' in .NET version of MANAGED_POINTER&lt;br /&gt;
*studio: Fixed issue where one could not change an integer based preference entry in EiffelStudio.&lt;br /&gt;
*debugger: Fixed bug#16013: IMMUTABLE_STRING objects cannot be viewed as strings&lt;br /&gt;
&lt;br /&gt;
==6.5.7.9743 (July 13th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*base: Added `own_from_pointer' in C_STRING.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio:Made some bug fixes and improvements to the new output tool.&lt;br /&gt;
*studio: Added tooltip to precompilation wizard list to show item's ecf file path&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*autotest: Fixed bug#15875 where selecting a test class and choosing run had no effect, now it will run all the test cases defined in that class.&lt;br /&gt;
*base: Added missing `own_from_pointer' routine in the .NET version of MANAGED_POINTER&lt;br /&gt;
*base: Made TYPE class similar to the classic version.&lt;br /&gt;
*studio: Fixed bug#13103: Cannot set Shift+Esc as a shortcut in the preferences dialog.&lt;br /&gt;
*studio: Fixed typo reported by bug#13220 in the Metric tool.&lt;br /&gt;
*compiler: Fixed issue where one could not debug an application if the `executable_name' specified in the ECF contained the .exe suffix on Windows. This fixes bug#11834.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*compiler: the indexing value '''volatile''' previously introduced has been renamed into '''transient'''.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.7.9500==&lt;br /&gt;
===New features===&lt;br /&gt;
*{{Red|base: Changed {ANY}.generating_type to return an instance of TYPE}}&lt;br /&gt;
*{{Red|runtime: Added support for transient attributes for store/retrieve. A transient attribute is an attribute which is not stored at runtime and for which its absence in the retrieval system has no effect.}}&lt;br /&gt;
* compiler: Supported detection and validity error report for VSRP(3) (the root procedure is not precondition-free) (see test#vsrp301).&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Debug_generated_C_code&amp;diff=13534</id>
		<title>Talk:Debug generated C code</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Debug_generated_C_code&amp;diff=13534"/>
				<updated>2009-11-26T09:30:01Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is for MS-Windows only.&lt;br /&gt;
&lt;br /&gt;
It would be nice to have the instructions for Linux, and Mac OSX.&lt;br /&gt;
--[[User:Colin-adams|Colin-adams]] 15:41, 8 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
When debug C code in a library Clib (*.lib) with Visual Studio, $ISE_EIFFEL\studio\config\$ISE_PLATFORM\msc\config.sh should be changed also.&lt;br /&gt;
&lt;br /&gt;
Change from&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
optimize='-O2 -GS-'&lt;br /&gt;
debug=''&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
to&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#optimize='-Od -GS'&lt;br /&gt;
#debug='-Zi -DISE_USE_ASSERT'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Otherwise when `finish_freezing -library', the debug information would not added to the library C lib file.&lt;br /&gt;
&lt;br /&gt;
[[User:Larryl|Larryl]] 09:30, 26 November 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Void-Safe_Library_Status&amp;diff=13488</id>
		<title>Void-Safe Library Status</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Void-Safe_Library_Status&amp;diff=13488"/>
				<updated>2009-09-29T04:37:54Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Completion Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]&lt;br /&gt;
&lt;br /&gt;
During the [[:Category:EiffelStudio|EiffelStudio]] [[EiffelStudio 6.4 Releases|6.4]] development cycle Eiffel Software and any willing third-party contributors are updating the Eiffel stock [[:Category:Library|libraries]] to be Void-Safe. The libraries will still compile in non-Void-Safe contexts so your code will not be broken. The status reflects work completed so you may start migrating your own code to ensure Void-safety.&lt;br /&gt;
&lt;br /&gt;
Make sure to follow the general rules given below, and ask the community for guidance if you run into any problems or uncertainties.&lt;br /&gt;
&lt;br /&gt;
== Completion Status ==&lt;br /&gt;
&lt;br /&gt;
To better hightlight the usefulness of the void-safety mechanism, we have put together a [[Void-Safe_Library_Results|non-exhaustive list]] of bugs found during the conversion process.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot;|Library Name&lt;br /&gt;
! width=&amp;quot;250&amp;quot;|Status&lt;br /&gt;
! width=&amp;quot;200&amp;quot;|Credits&lt;br /&gt;
|-&lt;br /&gt;
| EiffelBase&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software&lt;br /&gt;
|-&lt;br /&gt;
| EiffelBase extension&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:larryl|Larry]])&lt;br /&gt;
|-&lt;br /&gt;
| EiffelTime&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelThread&lt;br /&gt;
| Done (classic)&lt;br /&gt;
| Eiffel Software (Arno)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelUUID&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|-&lt;br /&gt;
| Eiffel2Java&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| WEL&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelVision2&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelVision2 extension&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| EiffelProcess&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Arno)&lt;br /&gt;
|-&lt;br /&gt;
| Argument parser&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|-&lt;br /&gt;
| EiffelLex&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|-&lt;br /&gt;
| EiffelParse&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelNet&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelNet IPv6&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelCurl&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| Encoding&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelCOM&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| EiffelStore&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:larryl|Larry]])&lt;br /&gt;
|-&lt;br /&gt;
| EiffelTesting&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Arno)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelWeb&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| Gobo&lt;br /&gt;
| In progress &amp;lt;br&amp;gt; - kernel, time (done) &amp;lt;br/&amp;gt;- pattern, regexp, string, part of utility: ready&amp;lt;br/&amp;gt;- (structure, lexical, parse, xml: converted but not integrated).&amp;lt;br/&amp;gt;Check [http://github.com/jocelyn/void-safe-gobo-eiffel/tree/master Gobo-void-safe] or [http://github.com/jocelyn/void-safe-gobo-eiffel-experimental/tree/experimental Gobo-void-safe-experimental]&lt;br /&gt;
| Eiffel Software ([[User:jfiat|Jocelyn]],[[User:larryl|Larry]]) + GoboSoft (Eric)&lt;br /&gt;
|-&lt;br /&gt;
| Docking&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:larryl|Larry]])&lt;br /&gt;
|-&lt;br /&gt;
| Gobo extension&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:jfiat|Jocelyn]])&lt;br /&gt;
|-&lt;br /&gt;
| EiffelGraph&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:larryl|Larry]])&lt;br /&gt;
|-&lt;br /&gt;
| Memory Analyzer&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:larryl|Larry]])&lt;br /&gt;
|-&lt;br /&gt;
| EiffelPreferences&lt;br /&gt;
| Done (Batch and graphical)&lt;br /&gt;
| Eiffel Software ([[User:jfiat|Jocelyn]])&lt;br /&gt;
|-&lt;br /&gt;
| Diff&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contributing ==&lt;br /&gt;
EiffelStudio is open source and welcomes the Eiffel community contributions to speed up the adaptation process. If you are interested in participating please put a comment on the discussion board with your contact details.&lt;br /&gt;
&lt;br /&gt;
==Rules to be applied ==&lt;br /&gt;
&lt;br /&gt;
Please observe the following guidelines carefully to guarantee a quality result.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
For examples of libraries already adapted, see UUID (for a small example) and EiffelBase (for a larger one).&lt;br /&gt;
&lt;br /&gt;
=== Overall process === &lt;br /&gt;
&lt;br /&gt;
# First compile with the `full_class_checking' option on. Then enable the void-safe option.&lt;br /&gt;
# Compile libraries on all of Windows/.NET/Unix to ensure it is sound.&lt;br /&gt;
# Minimize modifications; types should be attached by default if it makes sense, otherwise it has to be detachable by default.&lt;br /&gt;
# Use the convention library-safe.ecf for naming void-safe libraries for now. All library references should be using the -safe.ecf variants.&lt;br /&gt;
# Use the same UUIDs for void-safe and non-void-safe libraries.&lt;br /&gt;
# Before any modifications add a library.lic and library-safe.lic (replace library with the name of the ECF minus the .ecf extension) next to the ECFs of the same name containing only the single line reference:forum2.&lt;br /&gt;
# Update all samples to use the void-safe ecfs and update them.&lt;br /&gt;
&lt;br /&gt;
=== Rules ===&lt;br /&gt;
# DO NOT USE the '''attached''' keyword (ex-&amp;quot;'''!'''&amp;quot; attached mark).&lt;br /&gt;
# MINIMIZE USE OF OBJECT TEST; ideally, don't use object test unless there was an assignment attempt in the original library.&lt;br /&gt;
# When a precondition expects a Void argument, use '''detachable''' if attached by default.&lt;br /&gt;
# When a precondition expects a non-Void argument, use '''attached''' if detachable by default.&lt;br /&gt;
# '''Libraries should compile in both void-safe and non-void-safe mode''' (i.e. there should only be one version of each library).&lt;br /&gt;
# Only use the '''attribute''' keyword when it is impossible to initialize an attribute in the creation procedure. Never use it for lazy evaluation.&lt;br /&gt;
# You may include preconditions x /= Void, but it will have to be removed in the end (helped by a compiler warning that says this is not needed for attached x).&lt;br /&gt;
&lt;br /&gt;
=== General cleanup ===&lt;br /&gt;
The void-safe adaptation process should be accompanied by a general upgrade to ISO/ECMA Eiffel:&lt;br /&gt;
&lt;br /&gt;
* Remove uses of is_equal and equal to compare objects. (They can cause catcalls.) Replace them with the tilde operator, i.e. a ~ b instead of equal (a, b) or a.is_equal (b). Be careful to preserve the semantics (~ always returns false in the case of non-identical types).&lt;br /&gt;
* Replace the '''indexing''' keyword with '''note'''.&lt;br /&gt;
* Remove the '''is''' keyword in routines. Use the Replace tool with the regex '''\ is[ \t]*$'''. (Be careful not to use replace all, because comments and multi-line strings may have &amp;quot;is&amp;quot; text!)&lt;br /&gt;
* Replace the '''is''' keyword in constants with '''='''.&lt;br /&gt;
&lt;br /&gt;
=== Test authoring ===&lt;br /&gt;
1. Create a cluster called 'tests' in the library root folder. E.g., for the UUID library the 'tests' folder exists at '$ISE_LIBRARY/uuid/tests'.&lt;br /&gt;
&lt;br /&gt;
2. In the library ECFs, exclude the 'tests' cluster because it contains testing code and not library code.&lt;br /&gt;
&lt;br /&gt;
3. Add a testing 'tests.ecf' in the 'tests' folder. (See the UUID library for an example ECF.) Be sure to create a library ECF and change the UUID. The library should also use the void-safe options found in the associated library's ECF.&lt;br /&gt;
&lt;br /&gt;
4. Create test class names using the library name along with TEST as a prefix:&lt;br /&gt;
    EiffelBase = BASE_TEST_&lt;br /&gt;
    EiffelThread = THREAD_TEST_&lt;br /&gt;
    EiffelVision2 = EV_TEST_ or VISION2_TEST_&lt;br /&gt;
&lt;br /&gt;
=== Improving this page === &lt;br /&gt;
&lt;br /&gt;
As you encounter problems and devise your solutions, please include the results of your experience here.&lt;br /&gt;
&lt;br /&gt;
If you want to use &amp;quot;a void-safe converted gobo&amp;quot;, please visit [[Void-safe Gobo]].&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Void-Safe_Library_Status&amp;diff=13487</id>
		<title>Void-Safe Library Status</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Void-Safe_Library_Status&amp;diff=13487"/>
				<updated>2009-09-29T04:35:31Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Completion Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]&lt;br /&gt;
&lt;br /&gt;
During the [[:Category:EiffelStudio|EiffelStudio]] [[EiffelStudio 6.4 Releases|6.4]] development cycle Eiffel Software and any willing third-party contributors are updating the Eiffel stock [[:Category:Library|libraries]] to be Void-Safe. The libraries will still compile in non-Void-Safe contexts so your code will not be broken. The status reflects work completed so you may start migrating your own code to ensure Void-safety.&lt;br /&gt;
&lt;br /&gt;
Make sure to follow the general rules given below, and ask the community for guidance if you run into any problems or uncertainties.&lt;br /&gt;
&lt;br /&gt;
== Completion Status ==&lt;br /&gt;
&lt;br /&gt;
To better hightlight the usefulness of the void-safety mechanism, we have put together a [[Void-Safe_Library_Results|non-exhaustive list]] of bugs found during the conversion process.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot;|Library Name&lt;br /&gt;
! width=&amp;quot;250&amp;quot;|Status&lt;br /&gt;
! width=&amp;quot;200&amp;quot;|Credits&lt;br /&gt;
|-&lt;br /&gt;
| EiffelBase&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software&lt;br /&gt;
|-&lt;br /&gt;
| EiffelBase extension&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Larry)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelTime&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelThread&lt;br /&gt;
| Done (classic)&lt;br /&gt;
| Eiffel Software (Arno)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelUUID&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|-&lt;br /&gt;
| Eiffel2Java&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| WEL&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelVision2&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelVision2 extension&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| EiffelProcess&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Arno)&lt;br /&gt;
|-&lt;br /&gt;
| Argument parser&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|-&lt;br /&gt;
| EiffelLex&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|-&lt;br /&gt;
| EiffelParse&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelNet&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelNet IPv6&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelCurl&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| Encoding&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelCOM&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| EiffelStore&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Larry)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelTesting&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Arno)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelWeb&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| Gobo&lt;br /&gt;
| In progress &amp;lt;br&amp;gt; - kernel, time (done) &amp;lt;br/&amp;gt;- pattern, regexp, string, part of utility: ready&amp;lt;br/&amp;gt;- (structure, lexical, parse, xml: converted but not integrated).&amp;lt;br/&amp;gt;Check [http://github.com/jocelyn/void-safe-gobo-eiffel/tree/master Gobo-void-safe] or [http://github.com/jocelyn/void-safe-gobo-eiffel-experimental/tree/experimental Gobo-void-safe-experimental]&lt;br /&gt;
| Eiffel Software ([[User:jfiat|Jocelyn]],Larry) + GoboSoft (Eric)&lt;br /&gt;
|-&lt;br /&gt;
| Docking&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Larry)&lt;br /&gt;
|-&lt;br /&gt;
| Gobo extension&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:jfiat|Jocelyn]])&lt;br /&gt;
|-&lt;br /&gt;
| EiffelGraph&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Larry)&lt;br /&gt;
|-&lt;br /&gt;
| Memory Analyzer&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Larry)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelPreferences&lt;br /&gt;
| Done (Batch and graphical)&lt;br /&gt;
| Eiffel Software ([[User:jfiat|Jocelyn]])&lt;br /&gt;
|-&lt;br /&gt;
| Diff&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contributing ==&lt;br /&gt;
EiffelStudio is open source and welcomes the Eiffel community contributions to speed up the adaptation process. If you are interested in participating please put a comment on the discussion board with your contact details.&lt;br /&gt;
&lt;br /&gt;
==Rules to be applied ==&lt;br /&gt;
&lt;br /&gt;
Please observe the following guidelines carefully to guarantee a quality result.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
For examples of libraries already adapted, see UUID (for a small example) and EiffelBase (for a larger one).&lt;br /&gt;
&lt;br /&gt;
=== Overall process === &lt;br /&gt;
&lt;br /&gt;
# First compile with the `full_class_checking' option on. Then enable the void-safe option.&lt;br /&gt;
# Compile libraries on all of Windows/.NET/Unix to ensure it is sound.&lt;br /&gt;
# Minimize modifications; types should be attached by default if it makes sense, otherwise it has to be detachable by default.&lt;br /&gt;
# Use the convention library-safe.ecf for naming void-safe libraries for now. All library references should be using the -safe.ecf variants.&lt;br /&gt;
# Use the same UUIDs for void-safe and non-void-safe libraries.&lt;br /&gt;
# Before any modifications add a library.lic and library-safe.lic (replace library with the name of the ECF minus the .ecf extension) next to the ECFs of the same name containing only the single line reference:forum2.&lt;br /&gt;
# Update all samples to use the void-safe ecfs and update them.&lt;br /&gt;
&lt;br /&gt;
=== Rules ===&lt;br /&gt;
# DO NOT USE the '''attached''' keyword (ex-&amp;quot;'''!'''&amp;quot; attached mark).&lt;br /&gt;
# MINIMIZE USE OF OBJECT TEST; ideally, don't use object test unless there was an assignment attempt in the original library.&lt;br /&gt;
# When a precondition expects a Void argument, use '''detachable''' if attached by default.&lt;br /&gt;
# When a precondition expects a non-Void argument, use '''attached''' if detachable by default.&lt;br /&gt;
# '''Libraries should compile in both void-safe and non-void-safe mode''' (i.e. there should only be one version of each library).&lt;br /&gt;
# Only use the '''attribute''' keyword when it is impossible to initialize an attribute in the creation procedure. Never use it for lazy evaluation.&lt;br /&gt;
# You may include preconditions x /= Void, but it will have to be removed in the end (helped by a compiler warning that says this is not needed for attached x).&lt;br /&gt;
&lt;br /&gt;
=== General cleanup ===&lt;br /&gt;
The void-safe adaptation process should be accompanied by a general upgrade to ISO/ECMA Eiffel:&lt;br /&gt;
&lt;br /&gt;
* Remove uses of is_equal and equal to compare objects. (They can cause catcalls.) Replace them with the tilde operator, i.e. a ~ b instead of equal (a, b) or a.is_equal (b). Be careful to preserve the semantics (~ always returns false in the case of non-identical types).&lt;br /&gt;
* Replace the '''indexing''' keyword with '''note'''.&lt;br /&gt;
* Remove the '''is''' keyword in routines. Use the Replace tool with the regex '''\ is[ \t]*$'''. (Be careful not to use replace all, because comments and multi-line strings may have &amp;quot;is&amp;quot; text!)&lt;br /&gt;
* Replace the '''is''' keyword in constants with '''='''.&lt;br /&gt;
&lt;br /&gt;
=== Test authoring ===&lt;br /&gt;
1. Create a cluster called 'tests' in the library root folder. E.g., for the UUID library the 'tests' folder exists at '$ISE_LIBRARY/uuid/tests'.&lt;br /&gt;
&lt;br /&gt;
2. In the library ECFs, exclude the 'tests' cluster because it contains testing code and not library code.&lt;br /&gt;
&lt;br /&gt;
3. Add a testing 'tests.ecf' in the 'tests' folder. (See the UUID library for an example ECF.) Be sure to create a library ECF and change the UUID. The library should also use the void-safe options found in the associated library's ECF.&lt;br /&gt;
&lt;br /&gt;
4. Create test class names using the library name along with TEST as a prefix:&lt;br /&gt;
    EiffelBase = BASE_TEST_&lt;br /&gt;
    EiffelThread = THREAD_TEST_&lt;br /&gt;
    EiffelVision2 = EV_TEST_ or VISION2_TEST_&lt;br /&gt;
&lt;br /&gt;
=== Improving this page === &lt;br /&gt;
&lt;br /&gt;
As you encounter problems and devise your solutions, please include the results of your experience here.&lt;br /&gt;
&lt;br /&gt;
If you want to use &amp;quot;a void-safe converted gobo&amp;quot;, please visit [[Void-safe Gobo]].&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Void-Safe_EiffelStudio_Status&amp;diff=13486</id>
		<title>Void-Safe EiffelStudio Status</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Void-Safe_EiffelStudio_Status&amp;diff=13486"/>
				<updated>2009-09-29T04:34:32Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* EiffelStudio Dependency Tree (With Void-Safe Status) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:EiffelStudio]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* The tree is specific on Windows, it is slightly different on Linux.&lt;br /&gt;
* EiffelBase is ignored, which is already void-safe.&lt;br /&gt;
* The same library is only expanded once prefixed with &amp;quot;|---&amp;quot;, &amp;quot;+---&amp;quot; for collapsed.&lt;br /&gt;
* Void-safe libraries are in green. Those in red are in progress of conversion.&lt;br /&gt;
* The batch compiler dependencies are in bold.&lt;br /&gt;
&lt;br /&gt;
== EiffelStudio Dependency Tree (With Void-Safe Status) ==&lt;br /&gt;
&lt;br /&gt;
---&amp;amp;nbsp;Libraries&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---auto_test&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''compiler_kernel'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|cli_writer}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|dotnet_loader}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|environment}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|time}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|wel}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''configuration_compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''configuration_parser'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|eiffel_identifier}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|interface_names}} [[User:Ted|Ted]]'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|encoding}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|i18n}} [[User:Ted|Ted]]'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|encoding}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|uuid}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{red|consumer}}''' [[User:Manus|Manu]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|assembly_resolver}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|dotnet_helper}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|ecchecker}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|assembly_resolver}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|logger}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''emitter_loader'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|dotnet_loader}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''parser'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''framework_file'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|consumer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_helper}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---emitter_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|gobo_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|i18n}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{red|preferences_reg}}''' [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|process}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|resources}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''ecosystem'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|consumer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_helper}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---emitter_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|i18n}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|preferences_reg}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|resources}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|patterns}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''tagging'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---ecosystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|testing}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|argument_parser}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|testing}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---command_tunnel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---compiler_kernel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---configuation_compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---configuation_gui&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|docking}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''framework'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|docking}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''pe_reader'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{red|consumer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---{{green|curl}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---debugger&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|cli_debugger}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---compiler_kernel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---framework&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---{{green|diff}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|docking}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''dotnet_assembly_information'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_helper}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|dotnet_helper}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---ecosystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---editor&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|encoding}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|lex}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|preferences_reg}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|testing}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---emitter_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|encoding}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---framework&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''framework_patterns'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---{{green|graph}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|i18n}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|lex}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---{{green|memory_analyzer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|graph}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''parser_extension'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---pe_reader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{red|preferences_reg}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|resources}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''services_framework'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---tagging&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---testing_engine&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---auto_test&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---debugger&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---ecosystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---tagging&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|testing}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|testing}} (testing_library)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---{{green|uri_launcher}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|api_wrapper}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|threading}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---vision2_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''xml'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.5_Releases&amp;diff=13480</id>
		<title>EiffelStudio 6.5 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.5_Releases&amp;diff=13480"/>
				<updated>2009-09-28T08:45:20Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Bug fixes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.5.x Releases=&lt;br /&gt;
&lt;br /&gt;
==6.5.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release. &lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
compiler: Supported tracking changes made to a shared library definition file to trigger freeze automatically when there are any modifications to this file.&lt;br /&gt;
*preferences: fixed bug#13502: Preference values are not taken into account when searching in Preferences window flat view&lt;br /&gt;
*studio: Implemented shortcut F9 to enable/remove breakpoint at current line (cursor) on focused flat formatter (feature relation tool). &lt;br /&gt;
*studio: Implemented shortcut Shift+F9 to enable/disable breakpoint at current line (cursor) on focused flat formatter (feature relation tool). &lt;br /&gt;
*studio: Implemented shortcut Ctrl+F9 to edit breakpoint at current line (cursor) on focused flat formatter (feature relation tool).&lt;br /&gt;
*studio: Recorded targets of recently open projects so that they can be immediately open from the list of recent pojects.&lt;br /&gt;
*vision2: Improved pick and drop mechanism to not use the `wel_hook.dll'. The visible change is that when the cursor is outside the vision2 application its shape changes depending on what is beneath.&lt;br /&gt;
*windows: Added official support for Windows SDK 7.0 and betas of Visual Studio/Visual C/C++ Express 2010.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*studio: allowed undoing the first modification made in the diagram tool (see bug#5291).&lt;br /&gt;
*studio: prevented useless additio of `Zoom 100%' in the undo/redo list of the diagram tool.&lt;br /&gt;
*studio: fixed bug#15984: [sm] Typo in dialog box&lt;br /&gt;
*studio: fixed bug#16236: Abort Freezing dialog should have yes/no buttons&lt;br /&gt;
*studio: fixed bug#13201: Violation of precondition `not_destroyed' of {EB_VISION_WINDOW}.set_pointer_style&lt;br /&gt;
*studio: Fixed bug#16266 which prevented saving of classes in EiffelStudio. The first save would be successful, but none of the one after.&lt;br /&gt;
*studio: Fixed bug#16271 where some dialogs will appear in the german language even if locale is english.&lt;br /&gt;
*studio: Fixed bug when opening a recent project from EiffelStudio's MRU menu, with a space in the file name, on *nix platforms.&lt;br /&gt;
*studio: fixed bug#13003: Sample basic application should print something&lt;br /&gt;
*studio: fixed bug#13501: Ctrl+Shift+V pastes text. And other similar shortcut where we now also check that &amp;quot;Shift&amp;quot; is not enabled.&lt;br /&gt;
*studio: fixed bug#13184: Vioation of `initialized' of {EB_EXPRESSION_DEFINITION_DIALOG}.eiffel_universe&lt;br /&gt;
*studio: fixed bug#13234: Typos in {INTERFACE_NAMES}.l_..._runnin..&lt;br /&gt;
*studio: fixed bug#15483: Open layout is disabled even if you have an entry&lt;br /&gt;
&lt;br /&gt;
*build: Fixed crash of EiffelBuild when loading a project that has a EV_SPIN_BUTTON for which the `text_change_actions' event was connected.&lt;br /&gt;
&lt;br /&gt;
*docking: fixed bug#16213, bug#16214: Precondition in docking&lt;br /&gt;
*docking: fixed bug#16153: Precondition violated Tag: docking_manager_attached in {EB_DEVELOPMENT_WINDOW}.close_all_tools in Eiffel Studio&lt;br /&gt;
*docking: fixed bug#4764: Enhancements to how undocked windows work&lt;br /&gt;
*docking: fixed bug#13018: Picking class via context menu does not work in mini-toolbar&lt;br /&gt;
*docking: fixed bug#13038: Double-click on docked window title bar often undocks instead of maximizing&lt;br /&gt;
*docking: fixed bug#13659: Call on Void target in {SD_SAVE_CONFIG_MEDIATOR}.save_one_auto_hide_panel_data&lt;br /&gt;
*docking: fixed bug#13178: Violation of precondition `setted' of {EB_SD_COMMAND_TOOL_BAR_BUTTON}.has_position&lt;br /&gt;
&lt;br /&gt;
*debugger: fixed bug#16195: Debug session with conditional breakpoint causes program to exhaust memory, crash EStudio&lt;br /&gt;
*debugger: keep rows selection when disabling several lines in the watch tool&lt;br /&gt;
*debugger: Fixed various debugger's issues related to Expanded object (especially about items from SPECIAL of expanded object). &lt;br /&gt;
*debugger: Fixed bug#16197: is DEBUG_OUTPUT no longer supported?&lt;br /&gt;
&lt;br /&gt;
*compiler: Fixed bug on *nix platforms where spaces in project/installation paths failed to create the necessary symbolic links, when using precompiles.&lt;br /&gt;
*compiler: Fixed issue with TYPE instances not properly created. It addresses extended eweasel test#melt097.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.8.524 (August 30th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*{{Red|libraries: added the base extension library that offers some extra functionality to EiffelBase. Namely a SEARCH_TABLE which is basically a HASH_TABLE where keys and items are the same, and sorting facilities for INDEXABLE containers.}}&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Automatic class licenser can now use license.lic files next to an ECF instead of naming file *.lic after the ECF. Makes it easier for multi-ECF libraries.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*base: Fixed issue with `put' and `extend' from PART_SORTED_SET which had no effect and thus causing a postcondition violation.&lt;br /&gt;
*base: Fixed issue with `remove' in BINARY_SEARCH_TREE_SET which would not move the cursor and thus causing an infinite loop in `subtract', `intersect.&lt;br /&gt;
*base: Added ability to create a directory recursively.&lt;br /&gt;
*testing: Fixed an issue with the Eiffel runtime override of byte code causing some test execution to fail if no code was melted.&lt;br /&gt;
*studio: Fixed issue with ES crashing when trying to merge a license, when class contains an empty note clause.&lt;br /&gt;
*studio: Fixed issue where project settings would let you add twice the same include file rule.&lt;br /&gt;
*studio: Fixed an issue where clicking in the project settings entry to display a dialog and then clicking cancel would show the dialog a second time.&lt;br /&gt;
*studio: Fixed bug#14840: Extracted homonyms once, and now Estudio keeps trying to extract them again&lt;br /&gt;
*debugger: Fixed bug#5084: I cannot PnD class attributes in the watch window&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*base: Made `clear_all' in STRING_8, STRING_32 and HASH_TABLE obsolete. One has to use `wipe_out' instead.&lt;br /&gt;
*{{Red|base: Strengthen precondition of `resize' in STRING_8/STRING_32 to forbid values that would shrink the string content. Use `grow' instead to preserve former `resize' behavior.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.8.294 (August 17th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
* {{Red|web_browser: Added Web Browser widget {EV_WEB_BROWSER} (see new &amp;quot;web_browser&amp;quot; library) and example project (see example under $ISE_LIBRARY/examples/web_browser)}}&lt;br /&gt;
* {{Red|studio: GCC and MSC external compilation errors are now displayed in the error list, with linking to source Eiffel feature when the information is available.}}&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Improved error messages for VUAR/VJAR/VBAR errors to mention compatibility instead of just conformance.&lt;br /&gt;
*studio: Now double clicking on an ecf file will select the previously compiled target by default.&lt;br /&gt;
*ec: Fixed command line compilation to use the current working directory unless -project_path is specified (restoring pre-ecf behavior)&lt;br /&gt;
*ec: When an ecf file has been specified with -config, the previously compiled target is chosen as the first option in the compilable target list.&lt;br /&gt;
*AutoTest: Improved tag tree for displaying tests by merging view/filter box into one input field&lt;br /&gt;
*AutoTest: Potential test classes are traversed asynchronously after each compilation, allowing the user to continue working while tests are found. This also removes the need for special test clusters.&lt;br /&gt;
*AutoTest: Improved the way tests are executed. By tagging a test with &amp;quot;execution/isolated&amp;quot; the test process is restarted before and after the test is executed. By tagging a number of tests with a tag &amp;quot;execution/serial&amp;quot;, the tagged tests are not executed in parallel. {{Red|Because of these changes, test execution and generation might not completely work in the next release (missing test results/output).}}&lt;br /&gt;
*{{Red|AutoTest library: {EQA_TEST_SET}.on_prepare is called during `default_create', which makes it simpler to use attached attributes in void-safe tests.}}&lt;br /&gt;
*AutoTest library: Moved actual test routine invocation into {EQA_TEST_SET}.run_test which can be used to nest the test routine call. This is used for example by Vision2 tests to launch the event loop before calling the test routine.&lt;br /&gt;
*{{Red|Docking library: Made Smart Docking library (including docking library examples) void-safe}}&lt;br /&gt;
*studio: when dropping a library stone inside an editor, it also display sub libraries (among other data)&lt;br /&gt;
*studio: Added a context menu &amp;quot;Add Selection To&amp;quot; ... watch tools. This is used to create a new expression using the editor's selection text. (fixed bug#11064)&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*base: Fixed bug#4118 where on .NET `put' had no effect on the actual process environment variables because the API was only available in .NET 2.0 which is what we support at the minimum.&lt;br /&gt;
*{{Red|base: Fixed bug in `copy' from HEAP_PRIORITY_QUEUE which would not do anything because it was simply copying itself, not other.}}&lt;br /&gt;
*{{Red|base: Fixed bug in `remove' from HEAP_PRIORITY_QUEUE which caused the internal structure to be referenced beyond its bounds.}}&lt;br /&gt;
*base: Fixed a bug in {MEMORY}.memory_map which would cause a precondition violation in one of its call.&lt;br /&gt;
*serialization: Fixed a bug in SED_INDEPENDENT_DESERIALIZER in the experimental branch where we could get an out of bound access because we incorrectly resized a SPECIAL.&lt;br /&gt;
*studio: Fixed bug preventing the an output from being selected on Windows.&lt;br /&gt;
*studio: Fixed duplicate output issue when a subsystem activates the outputs tool before showing it.&lt;br /&gt;
*studio: Fixed bug preventing the new features dialog from being displayed when using newer syntax.&lt;br /&gt;
*EiffelVision: Fixed potential crash with tab navigation code when a key press was sent to a widget that is in the process of being unparented.&lt;br /&gt;
*debugger: fixed#16013, now all READABLE_STRING_8/32 and descendant will be displayed as string literal in debugger tools.&lt;br /&gt;
*compiler: Fixed eweasel test#final084 where compiler would generate incorrect type at run-time causing some memory corruption or a general failure.&lt;br /&gt;
*compiler: Fixed eweasel test#final083 where compiler would crash when inlining certain type of code involving generic classes.&lt;br /&gt;
*compiler: Fixed issues in experimental version when introducing `generating_type: TYPE [like Current]' in ANY which was causing a few eweasel tests. Also add new test for bug found with manifest type (eweasel test#melt097 and test#valid257).&lt;br /&gt;
*base: Added missing `own_from_pointer' in .NET version of MANAGED_POINTER&lt;br /&gt;
*studio: Fixed issue where one could not change an integer based preference entry in EiffelStudio.&lt;br /&gt;
*debugger: Fixed bug#16013: IMMUTABLE_STRING objects cannot be viewed as strings&lt;br /&gt;
&lt;br /&gt;
==6.5.7.9743 (July 13th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*base: Added `own_from_pointer' in C_STRING.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio:Made some bug fixes and improvements to the new output tool.&lt;br /&gt;
*studio: Added tooltip to precompilation wizard list to show item's ecf file path&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*autotest: Fixed bug#15875 where selecting a test class and choosing run had no effect, now it will run all the test cases defined in that class.&lt;br /&gt;
*base: Added missing `own_from_pointer' routine in the .NET version of MANAGED_POINTER&lt;br /&gt;
*base: Made TYPE class similar to the classic version.&lt;br /&gt;
*studio: Fixed bug#13103: Cannot set Shift+Esc as a shortcut in the preferences dialog.&lt;br /&gt;
*studio: Fixed typo reported by bug#13220 in the Metric tool.&lt;br /&gt;
*compiler: Fixed issue where one could not debug an application if the `executable_name' specified in the ECF contained the .exe suffix on Windows. This fixes bug#11834.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*compiler: the indexing value '''volatile''' previously introduced has been renamed into '''transient'''.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.7.9500==&lt;br /&gt;
===New features===&lt;br /&gt;
*{{Red|base: Changed {ANY}.generating_type to return an instance of TYPE}}&lt;br /&gt;
*{{Red|runtime: Added support for transient attributes for store/retrieve. A transient attribute is an attribute which is not stored at runtime and for which its absence in the retrieval system has no effect.}}&lt;br /&gt;
* compiler: Supported detection and validity error report for VSRP(3) (the root procedure is not precondition-free) (see test#vsrp301).&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.5_Releases&amp;diff=13473</id>
		<title>EiffelStudio 6.5 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.5_Releases&amp;diff=13473"/>
				<updated>2009-09-24T08:42:16Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Bug fixes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.5.x Releases=&lt;br /&gt;
&lt;br /&gt;
==6.5.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release. &lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
compiler: Supported tracking changes made to a shared library definition file to trigger freeze automatically when there are any modifications to this file.&lt;br /&gt;
*preferences: fixed bug#13502: Preference values are not taken into account when searching in Preferences window flat view&lt;br /&gt;
*studio: Implemented shortcut F9 to enable/remove breakpoint at current line (cursor) on focused flat formatter (feature relation tool). &lt;br /&gt;
*studio: Implemented shortcut Shift+F9 to enable/disable breakpoint at current line (cursor) on focused flat formatter (feature relation tool). &lt;br /&gt;
*studio: Implemented shortcut Ctrl+F9 to edit breakpoint at current line (cursor) on focused flat formatter (feature relation tool).&lt;br /&gt;
*studio: Recorded targets of recently open projects so that they can be immediately open from the list of recent pojects.&lt;br /&gt;
* Added official support for Windows SDK 7.0 and betas of Visual Studio/Visual C/C++ Express 2010.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*studio: allowed undoing the first modification made in the diagram tool (see bug#5291).&lt;br /&gt;
*studio: prevented useless additio of `Zoom 100%' in the undo/redo list of the diagram tool.&lt;br /&gt;
*studio: fixed bug#15984: [sm] Typo in dialog box&lt;br /&gt;
*studio: fixed bug#16236: Abort Freezing dialog should have yes/no buttons&lt;br /&gt;
*studio: fixed bug#13201: Violation of precondition `not_destroyed' of {EB_VISION_WINDOW}.set_pointer_style&lt;br /&gt;
*docking: fixed bug#16213, bug#16214: Precondition in docking&lt;br /&gt;
*docking: fixed bug#16153: Precondition violated Tag: docking_manager_attached in {EB_DEVELOPMENT_WINDOW}.close_all_tools in Eiffel Studio&lt;br /&gt;
*docking: fixed bug#4764: Enhancements to how undocked windows work&lt;br /&gt;
*docking: fixed bug#13018: Picking class via context menu does not work in mini-toolbar&lt;br /&gt;
*docking: fixed bug#13038: Double-click on docked window title bar often undocks instead of maximizing&lt;br /&gt;
*docking: fixed bug#13659: Call on Void target in {SD_SAVE_CONFIG_MEDIATOR}.save_one_auto_hide_panel_data&lt;br /&gt;
*docking: fixed bug#13178: Violation of precondition `setted' of {EB_SD_COMMAND_TOOL_BAR_BUTTON}.has_position&lt;br /&gt;
*debugger: fixed bug#16195: Debug session with conditional breakpoint causes program to exhaust memory, crash EStudio&lt;br /&gt;
*debugger: keep rows selection when disabling several lines in the watch tool&lt;br /&gt;
*studio: fixed bug#13003: Sample basic application should print something&lt;br /&gt;
*studio: fixed bug#13501: Ctrl+Shift+V pastes text. And other similar shortcut where we now also check that &amp;quot;Shift&amp;quot; is not enabled.&lt;br /&gt;
*studio: fixed bug#13184: Vioation of `initialized' of {EB_EXPRESSION_DEFINITION_DIALOG}.eiffel_universe&lt;br /&gt;
*studio: fixed bug#13234: Typos in {INTERFACE_NAMES}.l_..._runnin..&lt;br /&gt;
*debugger: Fixed various debugger's issues related to Expanded object (especially about items from SPECIAL of expanded object). &lt;br /&gt;
*debugger: Fixed bug#16197: is DEBUG_OUTPUT no longer supported?&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.8.524 (August 30th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*{{Red|libraries: added the base extension library that offers some extra functionality to EiffelBase. Namely a SEARCH_TABLE which is basically a HASH_TABLE where keys and items are the same, and sorting facilities for INDEXABLE containers.}}&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Automatic class licenser can now use license.lic files next to an ECF instead of naming file *.lic after the ECF. Makes it easier for multi-ECF libraries.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*base: Fixed issue with `put' and `extend' from PART_SORTED_SET which had no effect and thus causing a postcondition violation.&lt;br /&gt;
*base: Fixed issue with `remove' in BINARY_SEARCH_TREE_SET which would not move the cursor and thus causing an infinite loop in `subtract', `intersect.&lt;br /&gt;
*base: Added ability to create a directory recursively.&lt;br /&gt;
*testing: Fixed an issue with the Eiffel runtime override of byte code causing some test execution to fail if no code was melted.&lt;br /&gt;
*studio: Fixed issue with ES crashing when trying to merge a license, when class contains an empty note clause.&lt;br /&gt;
*studio: Fixed issue where project settings would let you add twice the same include file rule.&lt;br /&gt;
*studio: Fixed an issue where clicking in the project settings entry to display a dialog and then clicking cancel would show the dialog a second time.&lt;br /&gt;
*studio: Fixed bug#14840: Extracted homonyms once, and now Estudio keeps trying to extract them again&lt;br /&gt;
*debugger: Fixed bug#5084: I cannot PnD class attributes in the watch window&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*base: Made `clear_all' in STRING_8, STRING_32 and HASH_TABLE obsolete. One has to use `wipe_out' instead.&lt;br /&gt;
*{{Red|base: Strengthen precondition of `resize' in STRING_8/STRING_32 to forbid values that would shrink the string content. Use `grow' instead to preserve former `resize' behavior.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.8.294 (August 17th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
* {{Red|web_browser: Added Web Browser widget {EV_WEB_BROWSER} (see new &amp;quot;web_browser&amp;quot; library) and example project (see example under $ISE_LIBRARY/examples/web_browser)}}&lt;br /&gt;
* {{Red|studio: GCC and MSC external compilation errors are now displayed in the error list, with linking to source Eiffel feature when the information is available.}}&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Improved error messages for VUAR/VJAR/VBAR errors to mention compatibility instead of just conformance.&lt;br /&gt;
*studio: Now double clicking on an ecf file will select the previously compiled target by default.&lt;br /&gt;
*ec: Fixed command line compilation to use the current working directory unless -project_path is specified (restoring pre-ecf behavior)&lt;br /&gt;
*ec: When an ecf file has been specified with -config, the previously compiled target is chosen as the first option in the compilable target list.&lt;br /&gt;
*AutoTest: Improved tag tree for displaying tests by merging view/filter box into one input field&lt;br /&gt;
*AutoTest: Potential test classes are traversed asynchronously after each compilation, allowing the user to continue working while tests are found. This also removes the need for special test clusters.&lt;br /&gt;
*AutoTest: Improved the way tests are executed. By tagging a test with &amp;quot;execution/isolated&amp;quot; the test process is restarted before and after the test is executed. By tagging a number of tests with a tag &amp;quot;execution/serial&amp;quot;, the tagged tests are not executed in parallel. {{Red|Because of these changes, test execution and generation might not completely work in the next release (missing test results/output).}}&lt;br /&gt;
*{{Red|AutoTest library: {EQA_TEST_SET}.on_prepare is called during `default_create', which makes it simpler to use attached attributes in void-safe tests.}}&lt;br /&gt;
*AutoTest library: Moved actual test routine invocation into {EQA_TEST_SET}.run_test which can be used to nest the test routine call. This is used for example by Vision2 tests to launch the event loop before calling the test routine.&lt;br /&gt;
*{{Red|Docking library: Made Smart Docking library (including docking library examples) void-safe}}&lt;br /&gt;
*studio: when dropping a library stone inside an editor, it also display sub libraries (among other data)&lt;br /&gt;
*studio: Added a context menu &amp;quot;Add Selection To&amp;quot; ... watch tools. This is used to create a new expression using the editor's selection text. (fixed bug#11064)&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*base: Fixed bug#4118 where on .NET `put' had no effect on the actual process environment variables because the API was only available in .NET 2.0 which is what we support at the minimum.&lt;br /&gt;
*{{Red|base: Fixed bug in `copy' from HEAP_PRIORITY_QUEUE which would not do anything because it was simply copying itself, not other.}}&lt;br /&gt;
*{{Red|base: Fixed bug in `remove' from HEAP_PRIORITY_QUEUE which caused the internal structure to be referenced beyond its bounds.}}&lt;br /&gt;
*base: Fixed a bug in {MEMORY}.memory_map which would cause a precondition violation in one of its call.&lt;br /&gt;
*serialization: Fixed a bug in SED_INDEPENDENT_DESERIALIZER in the experimental branch where we could get an out of bound access because we incorrectly resized a SPECIAL.&lt;br /&gt;
*studio: Fixed bug preventing the an output from being selected on Windows.&lt;br /&gt;
*studio: Fixed duplicate output issue when a subsystem activates the outputs tool before showing it.&lt;br /&gt;
*studio: Fixed bug preventing the new features dialog from being displayed when using newer syntax.&lt;br /&gt;
*EiffelVision: Fixed potential crash with tab navigation code when a key press was sent to a widget that is in the process of being unparented.&lt;br /&gt;
*debugger: fixed#16013, now all READABLE_STRING_8/32 and descendant will be displayed as string literal in debugger tools.&lt;br /&gt;
*compiler: Fixed eweasel test#final084 where compiler would generate incorrect type at run-time causing some memory corruption or a general failure.&lt;br /&gt;
*compiler: Fixed eweasel test#final083 where compiler would crash when inlining certain type of code involving generic classes.&lt;br /&gt;
*compiler: Fixed issues in experimental version when introducing `generating_type: TYPE [like Current]' in ANY which was causing a few eweasel tests. Also add new test for bug found with manifest type (eweasel test#melt097 and test#valid257).&lt;br /&gt;
*base: Added missing `own_from_pointer' in .NET version of MANAGED_POINTER&lt;br /&gt;
*studio: Fixed issue where one could not change an integer based preference entry in EiffelStudio.&lt;br /&gt;
*debugger: Fixed bug#16013: IMMUTABLE_STRING objects cannot be viewed as strings&lt;br /&gt;
&lt;br /&gt;
==6.5.7.9743 (July 13th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*base: Added `own_from_pointer' in C_STRING.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio:Made some bug fixes and improvements to the new output tool.&lt;br /&gt;
*studio: Added tooltip to precompilation wizard list to show item's ecf file path&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*autotest: Fixed bug#15875 where selecting a test class and choosing run had no effect, now it will run all the test cases defined in that class.&lt;br /&gt;
*base: Added missing `own_from_pointer' routine in the .NET version of MANAGED_POINTER&lt;br /&gt;
*base: Made TYPE class similar to the classic version.&lt;br /&gt;
*studio: Fixed bug#13103: Cannot set Shift+Esc as a shortcut in the preferences dialog.&lt;br /&gt;
*studio: Fixed typo reported by bug#13220 in the Metric tool.&lt;br /&gt;
*compiler: Fixed issue where one could not debug an application if the `executable_name' specified in the ECF contained the .exe suffix on Windows. This fixes bug#11834.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*compiler: the indexing value '''volatile''' previously introduced has been renamed into '''transient'''.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.7.9500==&lt;br /&gt;
===New features===&lt;br /&gt;
*{{Red|base: Changed {ANY}.generating_type to return an instance of TYPE}}&lt;br /&gt;
*{{Red|runtime: Added support for transient attributes for store/retrieve. A transient attribute is an attribute which is not stored at runtime and for which its absence in the retrieval system has no effect.}}&lt;br /&gt;
* compiler: Supported detection and validity error report for VSRP(3) (the root procedure is not precondition-free) (see test#vsrp301).&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Void-Safe_Library_Status&amp;diff=13472</id>
		<title>Void-Safe Library Status</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Void-Safe_Library_Status&amp;diff=13472"/>
				<updated>2009-09-24T06:45:27Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Completion Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]&lt;br /&gt;
&lt;br /&gt;
During the [[:Category:EiffelStudio|EiffelStudio]] [[EiffelStudio 6.4 Releases|6.4]] development cycle Eiffel Software and any willing third-party contributors are updating the Eiffel stock [[:Category:Library|libraries]] to be Void-Safe. The libraries will still compile in non-Void-Safe contexts so your code will not be broken. The status reflects work completed so you may start migrating your own code to ensure Void-safety.&lt;br /&gt;
&lt;br /&gt;
Make sure to follow the general rules given below, and ask the community for guidance if you run into any problems or uncertainties.&lt;br /&gt;
&lt;br /&gt;
== Completion Status ==&lt;br /&gt;
&lt;br /&gt;
To better hightlight the usefulness of the void-safety mechanism, we have put together a [[Void-Safe_Library_Results|non-exhaustive list]] of bugs found during the conversion process.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot;|Library Name&lt;br /&gt;
! width=&amp;quot;250&amp;quot;|Status&lt;br /&gt;
! width=&amp;quot;200&amp;quot;|Credits&lt;br /&gt;
|-&lt;br /&gt;
| EiffelBase&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software&lt;br /&gt;
|-&lt;br /&gt;
| EiffelBase extension&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Larry)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelTime&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelThread&lt;br /&gt;
| Done (classic)&lt;br /&gt;
| Eiffel Software (Arno)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelUUID&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|-&lt;br /&gt;
| Eiffel2Java&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| WEL&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelVision2&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelVision2 extension&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| EiffelProcess&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Arno)&lt;br /&gt;
|-&lt;br /&gt;
| Argument parser&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|-&lt;br /&gt;
| EiffelLex&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|-&lt;br /&gt;
| EiffelParse&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelNet&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelNet IPv6&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelCurl&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| Encoding&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelCOM&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| EiffelStore&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Larry)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelTesting&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Arno)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelWeb&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| Gobo&lt;br /&gt;
| In progress &amp;lt;br&amp;gt; - kernel, time (done) &amp;lt;br/&amp;gt;- pattern, regexp, string, part of utility: ready&amp;lt;br/&amp;gt;- (structure, lexical, parse, xml: converted but not integrated).&amp;lt;br/&amp;gt;Check [http://github.com/jocelyn/void-safe-gobo-eiffel/tree/master Gobo-void-safe] or [http://github.com/jocelyn/void-safe-gobo-eiffel-experimental/tree/experimental Gobo-void-safe-experimental]&lt;br /&gt;
| Eiffel Software ([[User:jfiat|Jocelyn]],Larry) + GoboSoft (Eric)&lt;br /&gt;
|-&lt;br /&gt;
| Docking&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Larry)&lt;br /&gt;
|-&lt;br /&gt;
| Gobo extension&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:jfiat|Jocelyn]])&lt;br /&gt;
|-&lt;br /&gt;
| EiffelGraph&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Larry)&lt;br /&gt;
|-&lt;br /&gt;
| Memory Analyzer&lt;br /&gt;
| In progress&lt;br /&gt;
| Eiffel Software (Larry)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelPreferences&lt;br /&gt;
| Done (Batch and graphical)&lt;br /&gt;
| Eiffel Software ([[User:jfiat|Jocelyn]])&lt;br /&gt;
|-&lt;br /&gt;
| Diff&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contributing ==&lt;br /&gt;
EiffelStudio is open source and welcomes the Eiffel community contributions to speed up the adaptation process. If you are interested in participating please put a comment on the discussion board with your contact details.&lt;br /&gt;
&lt;br /&gt;
==Rules to be applied ==&lt;br /&gt;
&lt;br /&gt;
Please observe the following guidelines carefully to guarantee a quality result.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
For examples of libraries already adapted, see UUID (for a small example) and EiffelBase (for a larger one).&lt;br /&gt;
&lt;br /&gt;
=== Overall process === &lt;br /&gt;
&lt;br /&gt;
# First compile with the `full_class_checking' option on. Then enable the void-safe option.&lt;br /&gt;
# Compile libraries on all of Windows/.NET/Unix to ensure it is sound.&lt;br /&gt;
# Minimize modifications; types should be attached by default if it makes sense, otherwise it has to be detachable by default.&lt;br /&gt;
# Use the convention library-safe.ecf for naming void-safe libraries for now. All library references should be using the -safe.ecf variants.&lt;br /&gt;
# Use the same UUIDs for void-safe and non-void-safe libraries.&lt;br /&gt;
# Before any modifications add a library.lic and library-safe.lic (replace library with the name of the ECF minus the .ecf extension) next to the ECFs of the same name containing only the single line reference:forum2.&lt;br /&gt;
# Update all samples to use the void-safe ecfs and update them.&lt;br /&gt;
&lt;br /&gt;
=== Rules ===&lt;br /&gt;
# DO NOT USE the '''attached''' keyword (ex-&amp;quot;'''!'''&amp;quot; attached mark).&lt;br /&gt;
# MINIMIZE USE OF OBJECT TEST; ideally, don't use object test unless there was an assignment attempt in the original library.&lt;br /&gt;
# When a precondition expects a Void argument, use '''detachable''' if attached by default.&lt;br /&gt;
# When a precondition expects a non-Void argument, use '''attached''' if detachable by default.&lt;br /&gt;
# '''Libraries should compile in both void-safe and non-void-safe mode''' (i.e. there should only be one version of each library).&lt;br /&gt;
# Only use the '''attribute''' keyword when it is impossible to initialize an attribute in the creation procedure. Never use it for lazy evaluation.&lt;br /&gt;
# You may include preconditions x /= Void, but it will have to be removed in the end (helped by a compiler warning that says this is not needed for attached x).&lt;br /&gt;
&lt;br /&gt;
=== General cleanup ===&lt;br /&gt;
The void-safe adaptation process should be accompanied by a general upgrade to ISO/ECMA Eiffel:&lt;br /&gt;
&lt;br /&gt;
* Remove uses of is_equal and equal to compare objects. (They can cause catcalls.) Replace them with the tilde operator, i.e. a ~ b instead of equal (a, b) or a.is_equal (b). Be careful to preserve the semantics (~ always returns false in the case of non-identical types).&lt;br /&gt;
* Replace the '''indexing''' keyword with '''note'''.&lt;br /&gt;
* Remove the '''is''' keyword in routines. Use the Replace tool with the regex '''\ is[ \t]*$'''. (Be careful not to use replace all, because comments and multi-line strings may have &amp;quot;is&amp;quot; text!)&lt;br /&gt;
* Replace the '''is''' keyword in constants with '''='''.&lt;br /&gt;
&lt;br /&gt;
=== Test authoring ===&lt;br /&gt;
1. Create a cluster called 'tests' in the library root folder. E.g., for the UUID library the 'tests' folder exists at '$ISE_LIBRARY/uuid/tests'.&lt;br /&gt;
&lt;br /&gt;
2. In the library ECFs, exclude the 'tests' cluster because it contains testing code and not library code.&lt;br /&gt;
&lt;br /&gt;
3. Add a testing 'tests.ecf' in the 'tests' folder. (See the UUID library for an example ECF.) Be sure to create a library ECF and change the UUID. The library should also use the void-safe options found in the associated library's ECF.&lt;br /&gt;
&lt;br /&gt;
4. Create test class names using the library name along with TEST as a prefix:&lt;br /&gt;
    EiffelBase = BASE_TEST_&lt;br /&gt;
    EiffelThread = THREAD_TEST_&lt;br /&gt;
    EiffelVision2 = EV_TEST_ or VISION2_TEST_&lt;br /&gt;
&lt;br /&gt;
=== Improving this page === &lt;br /&gt;
&lt;br /&gt;
As you encounter problems and devise your solutions, please include the results of your experience here.&lt;br /&gt;
&lt;br /&gt;
If you want to use &amp;quot;a void-safe converted gobo&amp;quot;, please visit [[Void-safe Gobo]].&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Void-Safe_Library_Status&amp;diff=13471</id>
		<title>Void-Safe Library Status</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Void-Safe_Library_Status&amp;diff=13471"/>
				<updated>2009-09-24T06:44:06Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Completion Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]&lt;br /&gt;
&lt;br /&gt;
During the [[:Category:EiffelStudio|EiffelStudio]] [[EiffelStudio 6.4 Releases|6.4]] development cycle Eiffel Software and any willing third-party contributors are updating the Eiffel stock [[:Category:Library|libraries]] to be Void-Safe. The libraries will still compile in non-Void-Safe contexts so your code will not be broken. The status reflects work completed so you may start migrating your own code to ensure Void-safety.&lt;br /&gt;
&lt;br /&gt;
Make sure to follow the general rules given below, and ask the community for guidance if you run into any problems or uncertainties.&lt;br /&gt;
&lt;br /&gt;
== Completion Status ==&lt;br /&gt;
&lt;br /&gt;
To better hightlight the usefulness of the void-safety mechanism, we have put together a [[Void-Safe_Library_Results|non-exhaustive list]] of bugs found during the conversion process.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot;|Library Name&lt;br /&gt;
! width=&amp;quot;250&amp;quot;|Status&lt;br /&gt;
! width=&amp;quot;200&amp;quot;|Credits&lt;br /&gt;
|-&lt;br /&gt;
| EiffelBase&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software&lt;br /&gt;
|-&lt;br /&gt;
| EiffelBase extension&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Larry)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelTime&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelThread&lt;br /&gt;
| Done (classic)&lt;br /&gt;
| Eiffel Software (Arno)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelUUID&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|-&lt;br /&gt;
| Eiffel2Java&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| WEL&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelVision2&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelVision2 extension&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| EiffelProcess&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Arno)&lt;br /&gt;
|-&lt;br /&gt;
| Argument parser&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|-&lt;br /&gt;
| EiffelLex&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|-&lt;br /&gt;
| EiffelParse&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelNet&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelNet IPv6&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelCurl&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| Encoding&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelCOM&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| EiffelStore&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Larry)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelTesting&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Arno)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelWeb&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| Gobo&lt;br /&gt;
| In progress &amp;lt;br&amp;gt; - kernel, time (done) &amp;lt;br/&amp;gt;- pattern, regexp, string, part of utility: ready&amp;lt;br/&amp;gt;- (structure, lexical, parse, xml: converted but not integrated).&amp;lt;br/&amp;gt;Check [http://github.com/jocelyn/void-safe-gobo-eiffel/tree/master Gobo-void-safe] or [http://github.com/jocelyn/void-safe-gobo-eiffel-experimental/tree/experimental Gobo-void-safe-experimental]&lt;br /&gt;
| Eiffel Software ([[User:jfiat|Jocelyn]],Larry) + GoboSoft (Eric)&lt;br /&gt;
|-&lt;br /&gt;
| Docking&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Larry)&lt;br /&gt;
|-&lt;br /&gt;
| Gobo extension&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:jfiat|Jocelyn]])&lt;br /&gt;
|-&lt;br /&gt;
| EiffelGraph&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Larry)&lt;br /&gt;
|-&lt;br /&gt;
| Memory Analyzer&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| EiffelPreferences&lt;br /&gt;
| Done (Batch and graphical)&lt;br /&gt;
| Eiffel Software ([[User:jfiat|Jocelyn]])&lt;br /&gt;
|-&lt;br /&gt;
| Diff&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contributing ==&lt;br /&gt;
EiffelStudio is open source and welcomes the Eiffel community contributions to speed up the adaptation process. If you are interested in participating please put a comment on the discussion board with your contact details.&lt;br /&gt;
&lt;br /&gt;
==Rules to be applied ==&lt;br /&gt;
&lt;br /&gt;
Please observe the following guidelines carefully to guarantee a quality result.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
For examples of libraries already adapted, see UUID (for a small example) and EiffelBase (for a larger one).&lt;br /&gt;
&lt;br /&gt;
=== Overall process === &lt;br /&gt;
&lt;br /&gt;
# First compile with the `full_class_checking' option on. Then enable the void-safe option.&lt;br /&gt;
# Compile libraries on all of Windows/.NET/Unix to ensure it is sound.&lt;br /&gt;
# Minimize modifications; types should be attached by default if it makes sense, otherwise it has to be detachable by default.&lt;br /&gt;
# Use the convention library-safe.ecf for naming void-safe libraries for now. All library references should be using the -safe.ecf variants.&lt;br /&gt;
# Use the same UUIDs for void-safe and non-void-safe libraries.&lt;br /&gt;
# Before any modifications add a library.lic and library-safe.lic (replace library with the name of the ECF minus the .ecf extension) next to the ECFs of the same name containing only the single line reference:forum2.&lt;br /&gt;
# Update all samples to use the void-safe ecfs and update them.&lt;br /&gt;
&lt;br /&gt;
=== Rules ===&lt;br /&gt;
# DO NOT USE the '''attached''' keyword (ex-&amp;quot;'''!'''&amp;quot; attached mark).&lt;br /&gt;
# MINIMIZE USE OF OBJECT TEST; ideally, don't use object test unless there was an assignment attempt in the original library.&lt;br /&gt;
# When a precondition expects a Void argument, use '''detachable''' if attached by default.&lt;br /&gt;
# When a precondition expects a non-Void argument, use '''attached''' if detachable by default.&lt;br /&gt;
# '''Libraries should compile in both void-safe and non-void-safe mode''' (i.e. there should only be one version of each library).&lt;br /&gt;
# Only use the '''attribute''' keyword when it is impossible to initialize an attribute in the creation procedure. Never use it for lazy evaluation.&lt;br /&gt;
# You may include preconditions x /= Void, but it will have to be removed in the end (helped by a compiler warning that says this is not needed for attached x).&lt;br /&gt;
&lt;br /&gt;
=== General cleanup ===&lt;br /&gt;
The void-safe adaptation process should be accompanied by a general upgrade to ISO/ECMA Eiffel:&lt;br /&gt;
&lt;br /&gt;
* Remove uses of is_equal and equal to compare objects. (They can cause catcalls.) Replace them with the tilde operator, i.e. a ~ b instead of equal (a, b) or a.is_equal (b). Be careful to preserve the semantics (~ always returns false in the case of non-identical types).&lt;br /&gt;
* Replace the '''indexing''' keyword with '''note'''.&lt;br /&gt;
* Remove the '''is''' keyword in routines. Use the Replace tool with the regex '''\ is[ \t]*$'''. (Be careful not to use replace all, because comments and multi-line strings may have &amp;quot;is&amp;quot; text!)&lt;br /&gt;
* Replace the '''is''' keyword in constants with '''='''.&lt;br /&gt;
&lt;br /&gt;
=== Test authoring ===&lt;br /&gt;
1. Create a cluster called 'tests' in the library root folder. E.g., for the UUID library the 'tests' folder exists at '$ISE_LIBRARY/uuid/tests'.&lt;br /&gt;
&lt;br /&gt;
2. In the library ECFs, exclude the 'tests' cluster because it contains testing code and not library code.&lt;br /&gt;
&lt;br /&gt;
3. Add a testing 'tests.ecf' in the 'tests' folder. (See the UUID library for an example ECF.) Be sure to create a library ECF and change the UUID. The library should also use the void-safe options found in the associated library's ECF.&lt;br /&gt;
&lt;br /&gt;
4. Create test class names using the library name along with TEST as a prefix:&lt;br /&gt;
    EiffelBase = BASE_TEST_&lt;br /&gt;
    EiffelThread = THREAD_TEST_&lt;br /&gt;
    EiffelVision2 = EV_TEST_ or VISION2_TEST_&lt;br /&gt;
&lt;br /&gt;
=== Improving this page === &lt;br /&gt;
&lt;br /&gt;
As you encounter problems and devise your solutions, please include the results of your experience here.&lt;br /&gt;
&lt;br /&gt;
If you want to use &amp;quot;a void-safe converted gobo&amp;quot;, please visit [[Void-safe Gobo]].&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Void-Safe_EiffelStudio_Status&amp;diff=13470</id>
		<title>Void-Safe EiffelStudio Status</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Void-Safe_EiffelStudio_Status&amp;diff=13470"/>
				<updated>2009-09-24T06:43:07Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* EiffelStudio Dependency Tree (With Void-Safe Status) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:EiffelStudio]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* The tree is specific on Windows, it is slightly different on Linux.&lt;br /&gt;
* EiffelBase is ignored, which is already void-safe.&lt;br /&gt;
* The same library is only expanded once prefixed with &amp;quot;|---&amp;quot;, &amp;quot;+---&amp;quot; for collapsed.&lt;br /&gt;
* Void-safe libraries are in green. Those in red are in progress of conversion.&lt;br /&gt;
* The batch compiler dependencies are in bold.&lt;br /&gt;
&lt;br /&gt;
== EiffelStudio Dependency Tree (With Void-Safe Status) ==&lt;br /&gt;
&lt;br /&gt;
---&amp;amp;nbsp;Libraries&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---auto_test&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''compiler_kernel'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|cli_writer}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|dotnet_loader}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|environment}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|time}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|wel}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''configuration_compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''configuration_parser'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|eiffel_identifier}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|interface_names}} [[User:Ted|Ted]]'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|encoding}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|i18n}} [[User:Ted|Ted]]'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|encoding}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|uuid}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{red|consumer}}''' [[User:Manus|Manu]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|assembly_resolver}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|dotnet_helper}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|ecchecker}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|assembly_resolver}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|logger}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''emitter_loader'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|dotnet_loader}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''parser'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''framework_file'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|consumer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_helper}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---emitter_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|gobo_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|i18n}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{red|preferences_reg}}''' [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|process}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|resources}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''ecosystem'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|consumer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_helper}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---emitter_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|i18n}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|preferences_reg}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|resources}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|patterns}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''tagging'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---ecosystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|testing}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|argument_parser}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|testing}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---command_tunnel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---compiler_kernel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---configuation_compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---configuation_gui&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|docking}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''framework'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|docking}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''pe_reader'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{red|consumer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---{{green|curl}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---debugger&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|cli_debugger}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---compiler_kernel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---framework&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---{{green|diff}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|docking}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''dotnet_assembly_information'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_helper}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|dotnet_helper}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---ecosystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---editor&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|encoding}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|lex}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|preferences_reg}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|testing}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---emitter_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|encoding}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---framework&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''framework_patterns'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---{{green|graph}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|i18n}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|lex}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---memory_analyzer&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|graph}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''parser_extension'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---pe_reader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{red|preferences_reg}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|resources}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''services_framework'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---tagging&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---testing_engine&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---auto_test&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---debugger&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---ecosystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---tagging&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|testing}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|testing}} (testing_library)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---{{green|uri_launcher}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|api_wrapper}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|threading}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---vision2_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''xml'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.5_Releases&amp;diff=13459</id>
		<title>EiffelStudio 6.5 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.5_Releases&amp;diff=13459"/>
				<updated>2009-09-09T09:46:30Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Bug fixes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.5.x Releases=&lt;br /&gt;
&lt;br /&gt;
==6.5.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release. &lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
compiler: Supported tracking changes made to a shared library definition file to trigger freeze automatically when there are any modifications to this file.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*studio: allowed undoing the first modification made in the diagram tool (see bug#5291).&lt;br /&gt;
*studio: prevented useless additio of `Zoom 100%' in the undo/redo list of the diagram tool.&lt;br /&gt;
*studio: fixed bug#15984: [sm] Typo in dialog box&lt;br /&gt;
*studio: fixed bug#16236: Abort Freezing dialog should have yes/no buttons&lt;br /&gt;
*docking: fixed bug#16213, bug#16214: Precondition in docking&lt;br /&gt;
*docking: fixed bug#16153: Precondition violated Tag: docking_manager_attached in {EB_DEVELOPMENT_WINDOW}.close_all_tools in Eiffel Studio&lt;br /&gt;
*docking: fixed bug#4764: Enhancements to how undocked windows work&lt;br /&gt;
*docking: fixed bug#13018: Picking class via context menu does not work in mini-toolbar&lt;br /&gt;
*docking: fixed bug#13038: Double-click on docked window title bar often undocks instead of maximizing&lt;br /&gt;
*docking: fixed bug#13659: Call on Void target in {SD_SAVE_CONFIG_MEDIATOR}.save_one_auto_hide_panel_data&lt;br /&gt;
*docking: fixed bug#13178: Violation of precondition `setted' of {EB_SD_COMMAND_TOOL_BAR_BUTTON}.has_position&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.8.524 (August 30th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*{{Red|libraries: added the base extension library that offers some extra functionality to EiffelBase. Namely a SEARCH_TABLE which is basically a HASH_TABLE where keys and items are the same, and sorting facilities for INDEXABLE containers.}}&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Automatic class licenser can now use license.lic files next to an ECF instead of naming file *.lic after the ECF. Makes it easier for multi-ECF libraries.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*base: Fixed issue with `put' and `extend' from PART_SORTED_SET which had no effect and thus causing a postcondition violation.&lt;br /&gt;
*base: Fixed issue with `remove' in BINARY_SEARCH_TREE_SET which would not move the cursor and thus causing an infinite loop in `subtract', `intersect.&lt;br /&gt;
*base: Added ability to create a directory recursively.&lt;br /&gt;
*testing: Fixed an issue with the Eiffel runtime override of byte code causing some test execution to fail if no code was melted.&lt;br /&gt;
*studio: Fixed issue with ES crashing when trying to merge a license, when class contains an empty note clause.&lt;br /&gt;
*studio: Fixed issue where project settings would let you add twice the same include file rule.&lt;br /&gt;
*studio: Fixed an issue where clicking in the project settings entry to display a dialog and then clicking cancel would show the dialog a second time.&lt;br /&gt;
*studio: Fixed bug#14840: Extracted homonyms once, and now Estudio keeps trying to extract them again&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*base: Made `clear_all' in STRING_8, STRING_32 and HASH_TABLE obsolete. One has to use `wipe_out' instead.&lt;br /&gt;
*{{Red|base: Strengthen precondition of `resize' in STRING_8/STRING_32 to forbid values that would shrink the string content. Use `grow' instead to preserve former `resize' behavior.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.8.294 (August 17th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
* {{Red|web_browser: Added Web Browser widget {EV_WEB_BROWSER} (see new &amp;quot;web_browser&amp;quot; library) and example project (see example under $ISE_LIBRARY/examples/web_browser)}}&lt;br /&gt;
* {{Red|studio: GCC and MSC external compilation errors are now displayed in the error list, with linking to source Eiffel feature when the information is available.}}&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Improved error messages for VUAR/VJAR/VBAR errors to mention compatibility instead of just conformance.&lt;br /&gt;
*studio: Now double clicking on an ecf file will select the previously compiled target by default.&lt;br /&gt;
*ec: Fixed command line compilation to use the current working directory unless -project_path is specified (restoring pre-ecf behavior)&lt;br /&gt;
*ec: When an ecf file has been specified with -config, the previously compiled target is chosen as the first option in the compilable target list.&lt;br /&gt;
*AutoTest: Improved tag tree for displaying tests by merging view/filter box into one input field&lt;br /&gt;
*AutoTest: Potential test classes are traversed asynchronously after each compilation, allowing the user to continue working while tests are found. This also removes the need for special test clusters.&lt;br /&gt;
*AutoTest: Improved the way tests are executed. By tagging a test with &amp;quot;execution/isolated&amp;quot; the test process is restarted before and after the test is executed. By tagging a number of tests with a tag &amp;quot;execution/serial&amp;quot;, the tagged tests are not executed in parallel. {{Red|Because of these changes, test execution and generation might not completely work in the next release (missing test results/output).}}&lt;br /&gt;
*{{Red|AutoTest library: {EQA_TEST_SET}.on_prepare is called during `default_create', which makes it simpler to use attached attributes in void-safe tests.}}&lt;br /&gt;
*AutoTest library: Moved actual test routine invocation into {EQA_TEST_SET}.run_test which can be used to nest the test routine call. This is used for example by Vision2 tests to launch the event loop before calling the test routine.&lt;br /&gt;
*{{Red|Docking library: Made Smart Docking library (including docking library examples) void-safe}}&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*base: Fixed bug#4118 where on .NET `put' had no effect on the actual process environment variables because the API was only available in .NET 2.0 which is what we support at the minimum.&lt;br /&gt;
*{{Red|base: Fixed bug in `copy' from HEAP_PRIORITY_QUEUE which would not do anything because it was simply copying itself, not other.}}&lt;br /&gt;
*{{Red|base: Fixed bug in `remove' from HEAP_PRIORITY_QUEUE which caused the internal structure to be referenced beyond its bounds.}}&lt;br /&gt;
*base: Fixed a bug in {MEMORY}.memory_map which would cause a precondition violation in one of its call.&lt;br /&gt;
*serialization: Fixed a bug in SED_INDEPENDENT_DESERIALIZER in the experimental branch where we could get an out of bound access because we incorrectly resized a SPECIAL.&lt;br /&gt;
*studio: Fixed bug preventing the an output from being selected on Windows.&lt;br /&gt;
*studio: Fixed duplicate output issue when a subsystem activates the outputs tool before showing it.&lt;br /&gt;
*studio: Fixed bug preventing the new features dialog from being displayed when using newer syntax.&lt;br /&gt;
*EiffelVision: Fixed potential crash with tab navigation code when a key press was sent to a widget that is in the process of being unparented.&lt;br /&gt;
*debugger: fixed#16013, now all READABLE_STRING_8/32 and descendant will be displayed as string literal in debugger tools.&lt;br /&gt;
*compiler: Fixed eweasel test#final084 where compiler would generate incorrect type at run-time causing some memory corruption or a general failure.&lt;br /&gt;
*compiler: Fixed eweasel test#final083 where compiler would crash when inlining certain type of code involving generic classes.&lt;br /&gt;
*compiler: Fixed issues in experimental version when introducing `generating_type: TYPE [like Current]' in ANY which was causing a few eweasel tests. Also add new test for bug found with manifest type (eweasel test#melt097 and test#valid257).&lt;br /&gt;
*base: Added missing `own_from_pointer' in .NET version of MANAGED_POINTER&lt;br /&gt;
*studio: Fixed issue where one could not change an integer based preference entry in EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
==6.5.7.9743 (July 13th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*base: Added `own_from_pointer' in C_STRING.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio:Made some bug fixes and improvements to the new output tool.&lt;br /&gt;
*studio: Added tooltip to precompilation wizard list to show item's ecf file path&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*autotest: Fixed bug#15875 where selecting a test class and choosing run had no effect, now it will run all the test cases defined in that class.&lt;br /&gt;
*base: Added missing `own_from_pointer' routine in the .NET version of MANAGED_POINTER&lt;br /&gt;
*base: Made TYPE class similar to the classic version.&lt;br /&gt;
*studio: Fixed bug#13103: Cannot set Shift+Esc as a shortcut in the preferences dialog.&lt;br /&gt;
*studio: Fixed typo reported by bug#13220 in the Metric tool.&lt;br /&gt;
*compiler: Fixed issue where one could not debug an application if the `executable_name' specified in the ECF contained the .exe suffix on Windows. This fixes bug#11834.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*compiler: the indexing value '''volatile''' previously introduced has been renamed into '''transient'''.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.7.9500==&lt;br /&gt;
===New features===&lt;br /&gt;
*{{Red|base: Changed {ANY}.generating_type to return an instance of TYPE}}&lt;br /&gt;
*{{Red|runtime: Added support for transient attributes for store/retrieve. A transient attribute is an attribute which is not stored at runtime and for which its absence in the retrieval system has no effect.}}&lt;br /&gt;
* compiler: Supported detection and validity error report for VSRP(3) (the root procedure is not precondition-free) (see test#vsrp301).&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.5_Releases&amp;diff=13458</id>
		<title>EiffelStudio 6.5 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.5_Releases&amp;diff=13458"/>
				<updated>2009-09-09T08:58:56Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Bug fixes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.5.x Releases=&lt;br /&gt;
&lt;br /&gt;
==6.5.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release. &lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
compiler: Supported tracking changes made to a shared library definition file to trigger freeze automatically when there are any modifications to this file.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*studio: allowed undoing the first modification made in the diagram tool (see bug#5291).&lt;br /&gt;
*studio: prevented useless additio of `Zoom 100%' in the undo/redo list of the diagram tool.&lt;br /&gt;
*studio: fixed bug#15984: [sm] Typo in dialog box&lt;br /&gt;
*docking: fixed bug#16213, bug#16214: Precondition in docking&lt;br /&gt;
*docking: fixed bug#16153: Precondition violated Tag: docking_manager_attached in {EB_DEVELOPMENT_WINDOW}.close_all_tools in Eiffel Studio&lt;br /&gt;
*docking: fixed bug#4764: Enhancements to how undocked windows work&lt;br /&gt;
*docking: fixed bug#13018: Picking class via context menu does not work in mini-toolbar&lt;br /&gt;
*docking: fixed bug#13038: Double-click on docked window title bar often undocks instead of maximizing&lt;br /&gt;
*docking: fixed bug#13659: Call on Void target in {SD_SAVE_CONFIG_MEDIATOR}.save_one_auto_hide_panel_data&lt;br /&gt;
*docking: fixed bug#13178: Violation of precondition `setted' of {EB_SD_COMMAND_TOOL_BAR_BUTTON}.has_position&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.8.524 (August 30th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*{{Red|libraries: added the base extension library that offers some extra functionality to EiffelBase. Namely a SEARCH_TABLE which is basically a HASH_TABLE where keys and items are the same, and sorting facilities for INDEXABLE containers.}}&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Automatic class licenser can now use license.lic files next to an ECF instead of naming file *.lic after the ECF. Makes it easier for multi-ECF libraries.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*base: Fixed issue with `put' and `extend' from PART_SORTED_SET which had no effect and thus causing a postcondition violation.&lt;br /&gt;
*base: Fixed issue with `remove' in BINARY_SEARCH_TREE_SET which would not move the cursor and thus causing an infinite loop in `subtract', `intersect.&lt;br /&gt;
*base: Added ability to create a directory recursively.&lt;br /&gt;
*testing: Fixed an issue with the Eiffel runtime override of byte code causing some test execution to fail if no code was melted.&lt;br /&gt;
*studio: Fixed issue with ES crashing when trying to merge a license, when class contains an empty note clause.&lt;br /&gt;
*studio: Fixed issue where project settings would let you add twice the same include file rule.&lt;br /&gt;
*studio: Fixed an issue where clicking in the project settings entry to display a dialog and then clicking cancel would show the dialog a second time.&lt;br /&gt;
*studio: Fixed bug#14840: Extracted homonyms once, and now Estudio keeps trying to extract them again&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*base: Made `clear_all' in STRING_8, STRING_32 and HASH_TABLE obsolete. One has to use `wipe_out' instead.&lt;br /&gt;
*{{Red|base: Strengthen precondition of `resize' in STRING_8/STRING_32 to forbid values that would shrink the string content. Use `grow' instead to preserve former `resize' behavior.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.8.294 (August 17th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
* {{Red|web_browser: Added Web Browser widget {EV_WEB_BROWSER} (see new &amp;quot;web_browser&amp;quot; library) and example project (see example under $ISE_LIBRARY/examples/web_browser)}}&lt;br /&gt;
* {{Red|studio: GCC and MSC external compilation errors are now displayed in the error list, with linking to source Eiffel feature when the information is available.}}&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Improved error messages for VUAR/VJAR/VBAR errors to mention compatibility instead of just conformance.&lt;br /&gt;
*studio: Now double clicking on an ecf file will select the previously compiled target by default.&lt;br /&gt;
*ec: Fixed command line compilation to use the current working directory unless -project_path is specified (restoring pre-ecf behavior)&lt;br /&gt;
*ec: When an ecf file has been specified with -config, the previously compiled target is chosen as the first option in the compilable target list.&lt;br /&gt;
*AutoTest: Improved tag tree for displaying tests by merging view/filter box into one input field&lt;br /&gt;
*AutoTest: Potential test classes are traversed asynchronously after each compilation, allowing the user to continue working while tests are found. This also removes the need for special test clusters.&lt;br /&gt;
*AutoTest: Improved the way tests are executed. By tagging a test with &amp;quot;execution/isolated&amp;quot; the test process is restarted before and after the test is executed. By tagging a number of tests with a tag &amp;quot;execution/serial&amp;quot;, the tagged tests are not executed in parallel. {{Red|Because of these changes, test execution and generation might not completely work in the next release (missing test results/output).}}&lt;br /&gt;
*{{Red|AutoTest library: {EQA_TEST_SET}.on_prepare is called during `default_create', which makes it simpler to use attached attributes in void-safe tests.}}&lt;br /&gt;
*AutoTest library: Moved actual test routine invocation into {EQA_TEST_SET}.run_test which can be used to nest the test routine call. This is used for example by Vision2 tests to launch the event loop before calling the test routine.&lt;br /&gt;
*{{Red|Docking library: Made Smart Docking library (including docking library examples) void-safe}}&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*base: Fixed bug#4118 where on .NET `put' had no effect on the actual process environment variables because the API was only available in .NET 2.0 which is what we support at the minimum.&lt;br /&gt;
*{{Red|base: Fixed bug in `copy' from HEAP_PRIORITY_QUEUE which would not do anything because it was simply copying itself, not other.}}&lt;br /&gt;
*{{Red|base: Fixed bug in `remove' from HEAP_PRIORITY_QUEUE which caused the internal structure to be referenced beyond its bounds.}}&lt;br /&gt;
*base: Fixed a bug in {MEMORY}.memory_map which would cause a precondition violation in one of its call.&lt;br /&gt;
*serialization: Fixed a bug in SED_INDEPENDENT_DESERIALIZER in the experimental branch where we could get an out of bound access because we incorrectly resized a SPECIAL.&lt;br /&gt;
*studio: Fixed bug preventing the an output from being selected on Windows.&lt;br /&gt;
*studio: Fixed duplicate output issue when a subsystem activates the outputs tool before showing it.&lt;br /&gt;
*studio: Fixed bug preventing the new features dialog from being displayed when using newer syntax.&lt;br /&gt;
*EiffelVision: Fixed potential crash with tab navigation code when a key press was sent to a widget that is in the process of being unparented.&lt;br /&gt;
*debugger: fixed#16013, now all READABLE_STRING_8/32 and descendant will be displayed as string literal in debugger tools.&lt;br /&gt;
*compiler: Fixed eweasel test#final084 where compiler would generate incorrect type at run-time causing some memory corruption or a general failure.&lt;br /&gt;
*compiler: Fixed eweasel test#final083 where compiler would crash when inlining certain type of code involving generic classes.&lt;br /&gt;
*compiler: Fixed issues in experimental version when introducing `generating_type: TYPE [like Current]' in ANY which was causing a few eweasel tests. Also add new test for bug found with manifest type (eweasel test#melt097 and test#valid257).&lt;br /&gt;
*base: Added missing `own_from_pointer' in .NET version of MANAGED_POINTER&lt;br /&gt;
*studio: Fixed issue where one could not change an integer based preference entry in EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
==6.5.7.9743 (July 13th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*base: Added `own_from_pointer' in C_STRING.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio:Made some bug fixes and improvements to the new output tool.&lt;br /&gt;
*studio: Added tooltip to precompilation wizard list to show item's ecf file path&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*autotest: Fixed bug#15875 where selecting a test class and choosing run had no effect, now it will run all the test cases defined in that class.&lt;br /&gt;
*base: Added missing `own_from_pointer' routine in the .NET version of MANAGED_POINTER&lt;br /&gt;
*base: Made TYPE class similar to the classic version.&lt;br /&gt;
*studio: Fixed bug#13103: Cannot set Shift+Esc as a shortcut in the preferences dialog.&lt;br /&gt;
*studio: Fixed typo reported by bug#13220 in the Metric tool.&lt;br /&gt;
*compiler: Fixed issue where one could not debug an application if the `executable_name' specified in the ECF contained the .exe suffix on Windows. This fixes bug#11834.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*compiler: the indexing value '''volatile''' previously introduced has been renamed into '''transient'''.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.7.9500==&lt;br /&gt;
===New features===&lt;br /&gt;
*{{Red|base: Changed {ANY}.generating_type to return an instance of TYPE}}&lt;br /&gt;
*{{Red|runtime: Added support for transient attributes for store/retrieve. A transient attribute is an attribute which is not stored at runtime and for which its absence in the retrieval system has no effect.}}&lt;br /&gt;
* compiler: Supported detection and validity error report for VSRP(3) (the root procedure is not precondition-free) (see test#vsrp301).&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Void-Safe_Library_Status&amp;diff=13457</id>
		<title>Void-Safe Library Status</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Void-Safe_Library_Status&amp;diff=13457"/>
				<updated>2009-09-09T02:58:06Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Completion Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]&lt;br /&gt;
&lt;br /&gt;
During the [[:Category:EiffelStudio|EiffelStudio]] [[EiffelStudio 6.4 Releases|6.4]] development cycle Eiffel Software and any willing third-party contributors are updating the Eiffel stock [[:Category:Library|libraries]] to be Void-Safe. The libraries will still compile in non-Void-Safe contexts so your code will not be broken. The status reflects work completed so you may start migrating your own code to ensure Void-safety.&lt;br /&gt;
&lt;br /&gt;
Make sure to follow the general rules given below, and ask the community for guidance if you run into any problems or uncertainties.&lt;br /&gt;
&lt;br /&gt;
== Completion Status ==&lt;br /&gt;
&lt;br /&gt;
To better hightlight the usefulness of the void-safety mechanism, we have put together a [[Void-Safe_Library_Results|non-exhaustive list]] of bugs found during the conversion process.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot;|Library Name&lt;br /&gt;
! width=&amp;quot;250&amp;quot;|Status&lt;br /&gt;
! width=&amp;quot;200&amp;quot;|Credits&lt;br /&gt;
|-&lt;br /&gt;
| EiffelBase&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software&lt;br /&gt;
|-&lt;br /&gt;
| EiffelBase extension&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Larry)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelTime&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelThread&lt;br /&gt;
| Done (classic)&lt;br /&gt;
| Eiffel Software (Arno)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelUUID&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|-&lt;br /&gt;
| Eiffel2Java&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| WEL&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelVision2&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelVision2 extension&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| EiffelProcess&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Arno)&lt;br /&gt;
|-&lt;br /&gt;
| Argument parser&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|-&lt;br /&gt;
| EiffelLex&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|-&lt;br /&gt;
| EiffelParse&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelNet&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelNet IPv6&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelCurl&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| Encoding&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelCOM&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| EiffelStore&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Larry)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelTesting&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Arno)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelWeb&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| Gobo&lt;br /&gt;
| In progress &amp;lt;br&amp;gt; - kernel, time (done) &amp;lt;br/&amp;gt;- pattern, regexp, string, part of utility: ready&amp;lt;br/&amp;gt;- (structure, lexical, parse, xml: converted but not integrated).&amp;lt;br/&amp;gt;Check [http://github.com/jocelyn/void-safe-gobo-eiffel/tree/master Gobo-void-safe] or [http://github.com/jocelyn/void-safe-gobo-eiffel-experimental/tree/experimental Gobo-void-safe-experimental]&lt;br /&gt;
| Eiffel Software ([[User:jfiat|Jocelyn]],Larry) + GoboSoft (Eric)&lt;br /&gt;
|-&lt;br /&gt;
| Docking&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Larry)&lt;br /&gt;
|-&lt;br /&gt;
| Gobo extension&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:jfiat|Jocelyn]])&lt;br /&gt;
|-&lt;br /&gt;
| EiffelGraph&lt;br /&gt;
| In progress&lt;br /&gt;
| Eiffel Software (Larry)&lt;br /&gt;
|-&lt;br /&gt;
| Memory Analyzer&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| EiffelPreferences&lt;br /&gt;
| Done (Batch and graphical)&lt;br /&gt;
| Eiffel Software ([[User:jfiat|Jocelyn]])&lt;br /&gt;
|-&lt;br /&gt;
| Diff&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contributing ==&lt;br /&gt;
EiffelStudio is open source and welcomes the Eiffel community contributions to speed up the adaptation process. If you are interested in participating please put a comment on the discussion board with your contact details.&lt;br /&gt;
&lt;br /&gt;
==Rules to be applied ==&lt;br /&gt;
&lt;br /&gt;
Please observe the following guidelines carefully to guarantee a quality result.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
For examples of libraries already adapted, see UUID (for a small example) and EiffelBase (for a larger one).&lt;br /&gt;
&lt;br /&gt;
=== Overall process === &lt;br /&gt;
&lt;br /&gt;
# First compile with the `full_class_checking' option on. Then enable the void-safe option.&lt;br /&gt;
# Compile libraries on all of Windows/.NET/Unix to ensure it is sound.&lt;br /&gt;
# Minimize modifications; types should be attached by default if it makes sense, otherwise it has to be detachable by default.&lt;br /&gt;
# Use the convention library-safe.ecf for naming void-safe libraries for now. All library references should be using the -safe.ecf variants.&lt;br /&gt;
# Use the same UUIDs for void-safe and non-void-safe libraries.&lt;br /&gt;
# Before any modifications add a library.lic and library-safe.lic (replace library with the name of the ECF minus the .ecf extension) next to the ECFs of the same name containing only the single line reference:forum2.&lt;br /&gt;
# Update all samples to use the void-safe ecfs and update them.&lt;br /&gt;
&lt;br /&gt;
=== Rules ===&lt;br /&gt;
# DO NOT USE the '''attached''' keyword (ex-&amp;quot;'''!'''&amp;quot; attached mark).&lt;br /&gt;
# MINIMIZE USE OF OBJECT TEST; ideally, don't use object test unless there was an assignment attempt in the original library.&lt;br /&gt;
# When a precondition expects a Void argument, use '''detachable''' if attached by default.&lt;br /&gt;
# When a precondition expects a non-Void argument, use '''attached''' if detachable by default.&lt;br /&gt;
# '''Libraries should compile in both void-safe and non-void-safe mode''' (i.e. there should only be one version of each library).&lt;br /&gt;
# Only use the '''attribute''' keyword when it is impossible to initialize an attribute in the creation procedure. Never use it for lazy evaluation.&lt;br /&gt;
# You may include preconditions x /= Void, but it will have to be removed in the end (helped by a compiler warning that says this is not needed for attached x).&lt;br /&gt;
&lt;br /&gt;
=== General cleanup ===&lt;br /&gt;
The void-safe adaptation process should be accompanied by a general upgrade to ISO/ECMA Eiffel:&lt;br /&gt;
&lt;br /&gt;
* Remove uses of is_equal and equal to compare objects. (They can cause catcalls.) Replace them with the tilde operator, i.e. a ~ b instead of equal (a, b) or a.is_equal (b). Be careful to preserve the semantics (~ always returns false in the case of non-identical types).&lt;br /&gt;
* Replace the '''indexing''' keyword with '''note'''.&lt;br /&gt;
* Remove the '''is''' keyword in routines. Use the Replace tool with the regex '''\ is[ \t]*$'''. (Be careful not to use replace all, because comments and multi-line strings may have &amp;quot;is&amp;quot; text!)&lt;br /&gt;
* Replace the '''is''' keyword in constants with '''='''.&lt;br /&gt;
&lt;br /&gt;
=== Test authoring ===&lt;br /&gt;
1. Create a cluster called 'tests' in the library root folder. E.g., for the UUID library the 'tests' folder exists at '$ISE_LIBRARY/uuid/tests'.&lt;br /&gt;
&lt;br /&gt;
2. In the library ECFs, exclude the 'tests' cluster because it contains testing code and not library code.&lt;br /&gt;
&lt;br /&gt;
3. Add a testing 'tests.ecf' in the 'tests' folder. (See the UUID library for an example ECF.) Be sure to create a library ECF and change the UUID. The library should also use the void-safe options found in the associated library's ECF.&lt;br /&gt;
&lt;br /&gt;
4. Create test class names using the library name along with TEST as a prefix:&lt;br /&gt;
    EiffelBase = BASE_TEST_&lt;br /&gt;
    EiffelThread = THREAD_TEST_&lt;br /&gt;
    EiffelVision2 = EV_TEST_ or VISION2_TEST_&lt;br /&gt;
&lt;br /&gt;
=== Improving this page === &lt;br /&gt;
&lt;br /&gt;
As you encounter problems and devise your solutions, please include the results of your experience here.&lt;br /&gt;
&lt;br /&gt;
If you want to use &amp;quot;a void-safe converted gobo&amp;quot;, please visit [[Void-safe Gobo]].&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.5_Releases&amp;diff=13455</id>
		<title>EiffelStudio 6.5 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.5_Releases&amp;diff=13455"/>
				<updated>2009-09-07T08:54:16Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Bug fixes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.5.x Releases=&lt;br /&gt;
&lt;br /&gt;
==6.5.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release. &lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
compiler: Supported tracking changes made to a shared library definition file to trigger freeze automatically when there are any modifications to this file.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*studio: allowed undoing the first modification made in the diagram tool (see bug#5291).&lt;br /&gt;
*studio: prevented useless additio of `Zoom 100%' in the undo/redo list of the diagram tool.&lt;br /&gt;
*studio: fixed bug#15984: [sm] Typo in dialog box&lt;br /&gt;
*docking: fixed bug#16213, bug#16214: Precondition in docking&lt;br /&gt;
*docking: fixed bug#16153: Precondition violated Tag: docking_manager_attached in {EB_DEVELOPMENT_WINDOW}.close_all_tools in Eiffel Studio&lt;br /&gt;
*docking: fixed bug#4764: Enhancements to how undocked windows work&lt;br /&gt;
*docking: fixed bug#13018: Picking class via context menu does not work in mini-toolbar&lt;br /&gt;
*docking: fixed bug#13038: Double-click on docked window title bar often undocks instead of maximizing&lt;br /&gt;
*docking: fixed bug#13659: Call on Void target in {SD_SAVE_CONFIG_MEDIATOR}.save_one_auto_hide_panel_data&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.8.524 (August 30th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*{{Red|libraries: added the base extension library that offers some extra functionality to EiffelBase. Namely a SEARCH_TABLE which is basically a HASH_TABLE where keys and items are the same, and sorting facilities for INDEXABLE containers.}}&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Automatic class licenser can now use license.lic files next to an ECF instead of naming file *.lic after the ECF. Makes it easier for multi-ECF libraries.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*base: Fixed issue with `put' and `extend' from PART_SORTED_SET which had no effect and thus causing a postcondition violation.&lt;br /&gt;
*base: Fixed issue with `remove' in BINARY_SEARCH_TREE_SET which would not move the cursor and thus causing an infinite loop in `subtract', `intersect.&lt;br /&gt;
*base: Added ability to create a directory recursively.&lt;br /&gt;
*testing: Fixed an issue with the Eiffel runtime override of byte code causing some test execution to fail if no code was melted.&lt;br /&gt;
*studio: Fixed issue with ES crashing when trying to merge a license, when class contains an empty note clause.&lt;br /&gt;
*studio: Fixed issue where project settings would let you add twice the same include file rule.&lt;br /&gt;
*studio: Fixed an issue where clicking in the project settings entry to display a dialog and then clicking cancel would show the dialog a second time.&lt;br /&gt;
*studio: Fixed bug#14840: Extracted homonyms once, and now Estudio keeps trying to extract them again&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*base: Made `clear_all' in STRING_8, STRING_32 and HASH_TABLE obsolete. One has to use `wipe_out' instead.&lt;br /&gt;
*{{Red|base: Strengthen precondition of `resize' in STRING_8/STRING_32 to forbid values that would shrink the string content. Use `grow' instead to preserve former `resize' behavior.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.8.294 (August 17th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
* {{Red|web_browser: Added Web Browser widget {EV_WEB_BROWSER} (see new &amp;quot;web_browser&amp;quot; library) and example project (see example under $ISE_LIBRARY/examples/web_browser)}}&lt;br /&gt;
* {{Red|studio: GCC and MSC external compilation errors are now displayed in the error list, with linking to source Eiffel feature when the information is available.}}&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Improved error messages for VUAR/VJAR/VBAR errors to mention compatibility instead of just conformance.&lt;br /&gt;
*studio: Now double clicking on an ecf file will select the previously compiled target by default.&lt;br /&gt;
*ec: Fixed command line compilation to use the current working directory unless -project_path is specified (restoring pre-ecf behavior)&lt;br /&gt;
*ec: When an ecf file has been specified with -config, the previously compiled target is chosen as the first option in the compilable target list.&lt;br /&gt;
*AutoTest: Improved tag tree for displaying tests by merging view/filter box into one input field&lt;br /&gt;
*AutoTest: Potential test classes are traversed asynchronously after each compilation, allowing the user to continue working while tests are found. This also removes the need for special test clusters.&lt;br /&gt;
*AutoTest: Improved the way tests are executed. By tagging a test with &amp;quot;execution/isolated&amp;quot; the test process is restarted before and after the test is executed. By tagging a number of tests with a tag &amp;quot;execution/serial&amp;quot;, the tagged tests are not executed in parallel. {{Red|Because of these changes, test execution and generation might not completely work in the next release (missing test results/output).}}&lt;br /&gt;
*{{Red|AutoTest library: {EQA_TEST_SET}.on_prepare is called during `default_create', which makes it simpler to use attached attributes in void-safe tests.}}&lt;br /&gt;
*AutoTest library: Moved actual test routine invocation into {EQA_TEST_SET}.run_test which can be used to nest the test routine call. This is used for example by Vision2 tests to launch the event loop before calling the test routine.&lt;br /&gt;
*{{Red|Docking library: Made Smart Docking library (including docking library examples) void-safe}}&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*base: Fixed bug#4118 where on .NET `put' had no effect on the actual process environment variables because the API was only available in .NET 2.0 which is what we support at the minimum.&lt;br /&gt;
*{{Red|base: Fixed bug in `copy' from HEAP_PRIORITY_QUEUE which would not do anything because it was simply copying itself, not other.}}&lt;br /&gt;
*{{Red|base: Fixed bug in `remove' from HEAP_PRIORITY_QUEUE which caused the internal structure to be referenced beyond its bounds.}}&lt;br /&gt;
*base: Fixed a bug in {MEMORY}.memory_map which would cause a precondition violation in one of its call.&lt;br /&gt;
*serialization: Fixed a bug in SED_INDEPENDENT_DESERIALIZER in the experimental branch where we could get an out of bound access because we incorrectly resized a SPECIAL.&lt;br /&gt;
*studio: Fixed bug preventing the an output from being selected on Windows.&lt;br /&gt;
*studio: Fixed duplicate output issue when a subsystem activates the outputs tool before showing it.&lt;br /&gt;
*studio: Fixed bug preventing the new features dialog from being displayed when using newer syntax.&lt;br /&gt;
*EiffelVision: Fixed potential crash with tab navigation code when a key press was sent to a widget that is in the process of being unparented.&lt;br /&gt;
*debugger: fixed#16013, now all READABLE_STRING_8/32 and descendant will be displayed as string literal in debugger tools.&lt;br /&gt;
*compiler: Fixed eweasel test#final084 where compiler would generate incorrect type at run-time causing some memory corruption or a general failure.&lt;br /&gt;
*compiler: Fixed eweasel test#final083 where compiler would crash when inlining certain type of code involving generic classes.&lt;br /&gt;
*compiler: Fixed issues in experimental version when introducing `generating_type: TYPE [like Current]' in ANY which was causing a few eweasel tests. Also add new test for bug found with manifest type (eweasel test#melt097 and test#valid257).&lt;br /&gt;
*base: Added missing `own_from_pointer' in .NET version of MANAGED_POINTER&lt;br /&gt;
*studio: Fixed issue where one could not change an integer based preference entry in EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
==6.5.7.9743 (July 13th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*base: Added `own_from_pointer' in C_STRING.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio:Made some bug fixes and improvements to the new output tool.&lt;br /&gt;
*studio: Added tooltip to precompilation wizard list to show item's ecf file path&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*autotest: Fixed bug#15875 where selecting a test class and choosing run had no effect, now it will run all the test cases defined in that class.&lt;br /&gt;
*base: Added missing `own_from_pointer' routine in the .NET version of MANAGED_POINTER&lt;br /&gt;
*base: Made TYPE class similar to the classic version.&lt;br /&gt;
*studio: Fixed bug#13103: Cannot set Shift+Esc as a shortcut in the preferences dialog.&lt;br /&gt;
*studio: Fixed typo reported by bug#13220 in the Metric tool.&lt;br /&gt;
*compiler: Fixed issue where one could not debug an application if the `executable_name' specified in the ECF contained the .exe suffix on Windows. This fixes bug#11834.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*compiler: the indexing value '''volatile''' previously introduced has been renamed into '''transient'''.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.7.9500==&lt;br /&gt;
===New features===&lt;br /&gt;
*{{Red|base: Changed {ANY}.generating_type to return an instance of TYPE}}&lt;br /&gt;
*{{Red|runtime: Added support for transient attributes for store/retrieve. A transient attribute is an attribute which is not stored at runtime and for which its absence in the retrieval system has no effect.}}&lt;br /&gt;
* compiler: Supported detection and validity error report for VSRP(3) (the root procedure is not precondition-free) (see test#vsrp301).&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.5_Releases&amp;diff=13454</id>
		<title>EiffelStudio 6.5 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.5_Releases&amp;diff=13454"/>
				<updated>2009-09-04T09:01:12Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Bug fixes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.5.x Releases=&lt;br /&gt;
&lt;br /&gt;
==6.5.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release. &lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
compiler: Supported tracking changes made to a shared library definition file to trigger freeze automatically when there are any modifications to this file.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*studio: allowed undoing the first modification made in the diagram tool (see bug#5291).&lt;br /&gt;
*studio: prevented useless additio of `Zoom 100%' in the undo/redo list of the diagram tool.&lt;br /&gt;
*studio: fixed bug#15984: [sm] Typo in dialog box&lt;br /&gt;
*docking: fixed bug#16213, bug#16214: Precondition in docking&lt;br /&gt;
*docking: fixed bug#16153: Precondition violated Tag: docking_manager_attached in {EB_DEVELOPMENT_WINDOW}.close_all_tools in Eiffel Studio&lt;br /&gt;
*docking: fixed bug#4764: Enhancements to how undocked windows work&lt;br /&gt;
*docking: fixed bug#13018: Picking class via context menu does not work in mini-toolbar&lt;br /&gt;
*docking: fixed bug#13038: Double-click on docked window title bar often undocks instead of maximizing&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.8.524 (August 30th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*{{Red|libraries: added the base extension library that offers some extra functionality to EiffelBase. Namely a SEARCH_TABLE which is basically a HASH_TABLE where keys and items are the same, and sorting facilities for INDEXABLE containers.}}&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Automatic class licenser can now use license.lic files next to an ECF instead of naming file *.lic after the ECF. Makes it easier for multi-ECF libraries.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*base: Fixed issue with `put' and `extend' from PART_SORTED_SET which had no effect and thus causing a postcondition violation.&lt;br /&gt;
*base: Fixed issue with `remove' in BINARY_SEARCH_TREE_SET which would not move the cursor and thus causing an infinite loop in `subtract', `intersect.&lt;br /&gt;
*base: Added ability to create a directory recursively.&lt;br /&gt;
*testing: Fixed an issue with the Eiffel runtime override of byte code causing some test execution to fail if no code was melted.&lt;br /&gt;
*studio: Fixed issue with ES crashing when trying to merge a license, when class contains an empty note clause.&lt;br /&gt;
*studio: Fixed issue where project settings would let you add twice the same include file rule.&lt;br /&gt;
*studio: Fixed an issue where clicking in the project settings entry to display a dialog and then clicking cancel would show the dialog a second time.&lt;br /&gt;
*studio: Fixed bug#14840: Extracted homonyms once, and now Estudio keeps trying to extract them again&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*base: Made `clear_all' in STRING_8, STRING_32 and HASH_TABLE obsolete. One has to use `wipe_out' instead.&lt;br /&gt;
*{{Red|base: Strengthen precondition of `resize' in STRING_8/STRING_32 to forbid values that would shrink the string content. Use `grow' instead to preserve former `resize' behavior.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.8.294 (August 17th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
* {{Red|web_browser: Added Web Browser widget {EV_WEB_BROWSER} (see new &amp;quot;web_browser&amp;quot; library) and example project (see example under $ISE_LIBRARY/examples/web_browser)}}&lt;br /&gt;
* {{Red|studio: GCC and MSC external compilation errors are now displayed in the error list, with linking to source Eiffel feature when the information is available.}}&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Improved error messages for VUAR/VJAR/VBAR errors to mention compatibility instead of just conformance.&lt;br /&gt;
*studio: Now double clicking on an ecf file will select the previously compiled target by default.&lt;br /&gt;
*ec: Fixed command line compilation to use the current working directory unless -project_path is specified (restoring pre-ecf behavior)&lt;br /&gt;
*ec: When an ecf file has been specified with -config, the previously compiled target is chosen as the first option in the compilable target list.&lt;br /&gt;
*AutoTest: Improved tag tree for displaying tests by merging view/filter box into one input field&lt;br /&gt;
*AutoTest: Potential test classes are traversed asynchronously after each compilation, allowing the user to continue working while tests are found. This also removes the need for special test clusters.&lt;br /&gt;
*AutoTest: Improved the way tests are executed. By tagging a test with &amp;quot;execution/isolated&amp;quot; the test process is restarted before and after the test is executed. By tagging a number of tests with a tag &amp;quot;execution/serial&amp;quot;, the tagged tests are not executed in parallel. {{Red|Because of these changes, test execution and generation might not completely work in the next release (missing test results/output).}}&lt;br /&gt;
*{{Red|AutoTest library: {EQA_TEST_SET}.on_prepare is called during `default_create', which makes it simpler to use attached attributes in void-safe tests.}}&lt;br /&gt;
*AutoTest library: Moved actual test routine invocation into {EQA_TEST_SET}.run_test which can be used to nest the test routine call. This is used for example by Vision2 tests to launch the event loop before calling the test routine.&lt;br /&gt;
*{{Red|Docking library: Made Smart Docking library (including docking library examples) void-safe}}&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*base: Fixed bug#4118 where on .NET `put' had no effect on the actual process environment variables because the API was only available in .NET 2.0 which is what we support at the minimum.&lt;br /&gt;
*{{Red|base: Fixed bug in `copy' from HEAP_PRIORITY_QUEUE which would not do anything because it was simply copying itself, not other.}}&lt;br /&gt;
*{{Red|base: Fixed bug in `remove' from HEAP_PRIORITY_QUEUE which caused the internal structure to be referenced beyond its bounds.}}&lt;br /&gt;
*base: Fixed a bug in {MEMORY}.memory_map which would cause a precondition violation in one of its call.&lt;br /&gt;
*serialization: Fixed a bug in SED_INDEPENDENT_DESERIALIZER in the experimental branch where we could get an out of bound access because we incorrectly resized a SPECIAL.&lt;br /&gt;
*studio: Fixed bug preventing the an output from being selected on Windows.&lt;br /&gt;
*studio: Fixed duplicate output issue when a subsystem activates the outputs tool before showing it.&lt;br /&gt;
*studio: Fixed bug preventing the new features dialog from being displayed when using newer syntax.&lt;br /&gt;
*EiffelVision: Fixed potential crash with tab navigation code when a key press was sent to a widget that is in the process of being unparented.&lt;br /&gt;
*debugger: fixed#16013, now all READABLE_STRING_8/32 and descendant will be displayed as string literal in debugger tools.&lt;br /&gt;
*compiler: Fixed eweasel test#final084 where compiler would generate incorrect type at run-time causing some memory corruption or a general failure.&lt;br /&gt;
*compiler: Fixed eweasel test#final083 where compiler would crash when inlining certain type of code involving generic classes.&lt;br /&gt;
*compiler: Fixed issues in experimental version when introducing `generating_type: TYPE [like Current]' in ANY which was causing a few eweasel tests. Also add new test for bug found with manifest type (eweasel test#melt097 and test#valid257).&lt;br /&gt;
*base: Added missing `own_from_pointer' in .NET version of MANAGED_POINTER&lt;br /&gt;
*studio: Fixed issue where one could not change an integer based preference entry in EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
==6.5.7.9743 (July 13th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*base: Added `own_from_pointer' in C_STRING.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio:Made some bug fixes and improvements to the new output tool.&lt;br /&gt;
*studio: Added tooltip to precompilation wizard list to show item's ecf file path&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*autotest: Fixed bug#15875 where selecting a test class and choosing run had no effect, now it will run all the test cases defined in that class.&lt;br /&gt;
*base: Added missing `own_from_pointer' routine in the .NET version of MANAGED_POINTER&lt;br /&gt;
*base: Made TYPE class similar to the classic version.&lt;br /&gt;
*studio: Fixed bug#13103: Cannot set Shift+Esc as a shortcut in the preferences dialog.&lt;br /&gt;
*studio: Fixed typo reported by bug#13220 in the Metric tool.&lt;br /&gt;
*compiler: Fixed issue where one could not debug an application if the `executable_name' specified in the ECF contained the .exe suffix on Windows. This fixes bug#11834.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*compiler: the indexing value '''volatile''' previously introduced has been renamed into '''transient'''.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.7.9500==&lt;br /&gt;
===New features===&lt;br /&gt;
*{{Red|base: Changed {ANY}.generating_type to return an instance of TYPE}}&lt;br /&gt;
*{{Red|runtime: Added support for transient attributes for store/retrieve. A transient attribute is an attribute which is not stored at runtime and for which its absence in the retrieval system has no effect.}}&lt;br /&gt;
* compiler: Supported detection and validity error report for VSRP(3) (the root procedure is not precondition-free) (see test#vsrp301).&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Void-Safe_Library_Status&amp;diff=13341</id>
		<title>Void-Safe Library Status</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Void-Safe_Library_Status&amp;diff=13341"/>
				<updated>2009-08-28T10:00:02Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Completion Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]&lt;br /&gt;
&lt;br /&gt;
During the [[:Category:EiffelStudio|EiffelStudio]] [[EiffelStudio 6.4 Releases|6.4]] development cycle Eiffel Software and any willing third-party contributors are updating the Eiffel stock [[:Category:Library|libraries]] to be Void-Safe. The libraries will still compile in non-Void-Safe contexts so your code will not be broken. The status reflects work completed so you may start migrating your own code to ensure Void-safety.&lt;br /&gt;
&lt;br /&gt;
Make sure to follow the general rules given below, and ask the community for guidance if you run into any problems or uncertainties.&lt;br /&gt;
&lt;br /&gt;
== Completion Status ==&lt;br /&gt;
&lt;br /&gt;
To better hightlight the usefulness of the void-safety mechanism, we have put together a [[Void-Safe_Library_Results|non-exhaustive list]] of bugs found during the conversion process.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot;|Library Name&lt;br /&gt;
! width=&amp;quot;250&amp;quot;|Status&lt;br /&gt;
! width=&amp;quot;200&amp;quot;|Credits&lt;br /&gt;
|-&lt;br /&gt;
| EiffelBase&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software&lt;br /&gt;
|-&lt;br /&gt;
| EiffelBase extension&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Larry)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelTime&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelThread&lt;br /&gt;
| Done (classic)&lt;br /&gt;
| Eiffel Software (Arno)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelUUID&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|-&lt;br /&gt;
| Eiffel2Java&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| WEL&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelVision2&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelVision2 extension&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| EiffelProcess&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Arno)&lt;br /&gt;
|-&lt;br /&gt;
| Argument parser&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|-&lt;br /&gt;
| EiffelLex&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|-&lt;br /&gt;
| EiffelParse&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelNet&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelNet IPv6&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelCurl&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| Encoding&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Ted, Ian)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelCOM&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| EiffelStore&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Larry)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelTesting&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Arno)&lt;br /&gt;
|-&lt;br /&gt;
| EiffelWeb&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Manu)&lt;br /&gt;
|-&lt;br /&gt;
| Gobo&lt;br /&gt;
| In progress &amp;lt;br&amp;gt; - kernel, time (done) &amp;lt;br/&amp;gt;- pattern, regexp, string, part of utility: ready&amp;lt;br/&amp;gt;- (structure, lexical, parse, xml: converted but not integrated).&amp;lt;br/&amp;gt;Check [http://github.com/jocelyn/void-safe-gobo-eiffel/tree/master Gobo-void-safe] or [http://github.com/jocelyn/void-safe-gobo-eiffel-experimental/tree/experimental Gobo-void-safe-experimental]&lt;br /&gt;
| Eiffel Software ([[User:jfiat|Jocelyn]],Larry) + GoboSoft (Eric)&lt;br /&gt;
|-&lt;br /&gt;
| Docking&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software (Larry)&lt;br /&gt;
|-&lt;br /&gt;
| Gobo extension&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:jfiat|Jocelyn]])&lt;br /&gt;
|-&lt;br /&gt;
| EiffelGraph&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Memory Analyzer&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| EiffelPreferences&lt;br /&gt;
| Done (Batch and graphical)&lt;br /&gt;
| Eiffel Software ([[User:jfiat|Jocelyn]])&lt;br /&gt;
|-&lt;br /&gt;
| Diff&lt;br /&gt;
| Done&lt;br /&gt;
| Eiffel Software ([[User:paulb|Paul]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contributing ==&lt;br /&gt;
EiffelStudio is open source and welcomes the Eiffel community contributions to speed up the adaptation process. If you are interested in participating please put a comment on the discussion board with your contact details.&lt;br /&gt;
&lt;br /&gt;
==Rules to be applied ==&lt;br /&gt;
&lt;br /&gt;
Please observe the following guidelines carefully to guarantee a quality result.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
For examples of libraries already adapted, see UUID (for a small example) and EiffelBase (for a larger one).&lt;br /&gt;
&lt;br /&gt;
=== Overall process === &lt;br /&gt;
&lt;br /&gt;
# First compile with the `full_class_checking' option on. Then enable the void-safe option.&lt;br /&gt;
# Compile libraries on all of Windows/.NET/Unix to ensure it is sound.&lt;br /&gt;
# Minimize modifications; types should be attached by default if it makes sense, otherwise it has to be detachable by default.&lt;br /&gt;
# Use the convention library-safe.ecf for naming void-safe libraries for now. All library references should be using the -safe.ecf variants.&lt;br /&gt;
# Use the same UUIDs for void-safe and non-void-safe libraries.&lt;br /&gt;
# Before any modifications add a library.lic and library-safe.lic (replace library with the name of the ECF minus the .ecf extension) next to the ECFs of the same name containing only the single line reference:forum2.&lt;br /&gt;
# Update all samples to use the void-safe ecfs and update them.&lt;br /&gt;
&lt;br /&gt;
=== Rules ===&lt;br /&gt;
# DO NOT USE the '''attached''' keyword (ex-&amp;quot;'''!'''&amp;quot; attached mark).&lt;br /&gt;
# MINIMIZE USE OF OBJECT TEST; ideally, don't use object test unless there was an assignment attempt in the original library.&lt;br /&gt;
# When a precondition expects a Void argument, use '''detachable''' if attached by default.&lt;br /&gt;
# When a precondition expects a non-Void argument, use '''attached''' if detachable by default.&lt;br /&gt;
# '''Libraries should compile in both void-safe and non-void-safe mode''' (i.e. there should only be one version of each library).&lt;br /&gt;
# Only use the '''attribute''' keyword when it is impossible to initialize an attribute in the creation procedure. Never use it for lazy evaluation.&lt;br /&gt;
# You may include preconditions x /= Void, but it will have to be removed in the end (helped by a compiler warning that says this is not needed for attached x).&lt;br /&gt;
&lt;br /&gt;
=== General cleanup ===&lt;br /&gt;
The void-safe adaptation process should be accompanied by a general upgrade to ISO/ECMA Eiffel:&lt;br /&gt;
&lt;br /&gt;
* Remove uses of is_equal and equal to compare objects. (They can cause catcalls.) Replace them with the tilde operator, i.e. a ~ b instead of equal (a, b) or a.is_equal (b). Be careful to preserve the semantics (~ always returns false in the case of non-identical types).&lt;br /&gt;
* Replace the '''indexing''' keyword with '''note'''.&lt;br /&gt;
* Remove the '''is''' keyword in routines. Use the Replace tool with the regex '''\ is[ \t]*$'''. (Be careful not to use replace all, because comments and multi-line strings may have &amp;quot;is&amp;quot; text!)&lt;br /&gt;
* Replace the '''is''' keyword in constants with '''='''.&lt;br /&gt;
&lt;br /&gt;
=== Test authoring ===&lt;br /&gt;
1. Create a cluster called 'tests' in the library root folder. E.g., for the UUID library the 'tests' folder exists at '$ISE_LIBRARY/uuid/tests'.&lt;br /&gt;
&lt;br /&gt;
2. In the library ECFs, exclude the 'tests' cluster because it contains testing code and not library code.&lt;br /&gt;
&lt;br /&gt;
3. Add a testing 'tests.ecf' in the 'tests' folder. (See the UUID library for an example ECF.) Be sure to create a library ECF and change the UUID. The library should also use the void-safe options found in the associated library's ECF.&lt;br /&gt;
&lt;br /&gt;
4. Create test class names using the library name along with TEST as a prefix:&lt;br /&gt;
    EiffelBase = BASE_TEST_&lt;br /&gt;
    EiffelThread = THREAD_TEST_&lt;br /&gt;
    EiffelVision2 = EV_TEST_ or VISION2_TEST_&lt;br /&gt;
&lt;br /&gt;
=== Improving this page === &lt;br /&gt;
&lt;br /&gt;
As you encounter problems and devise your solutions, please include the results of your experience here.&lt;br /&gt;
&lt;br /&gt;
If you want to use &amp;quot;a void-safe converted gobo&amp;quot;, please visit [[Void-safe Gobo]].&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Void-Safe_EiffelStudio_Status&amp;diff=13339</id>
		<title>Void-Safe EiffelStudio Status</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Void-Safe_EiffelStudio_Status&amp;diff=13339"/>
				<updated>2009-08-28T07:32:54Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* EiffelStudio Dependency Tree (With Void-Safe Status) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:EiffelStudio]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* The tree is specific on Windows, it is slightly different on Linux.&lt;br /&gt;
* EiffelBase is ignored, which is already void-safe.&lt;br /&gt;
* The same library is only expanded once prefixed with &amp;quot;|---&amp;quot;, &amp;quot;+---&amp;quot; for collapsed.&lt;br /&gt;
* Void-safe libraries are in green. Those in red are in progress of conversion.&lt;br /&gt;
* The batch compiler dependencies are in bold.&lt;br /&gt;
&lt;br /&gt;
== EiffelStudio Dependency Tree (With Void-Safe Status) ==&lt;br /&gt;
&lt;br /&gt;
---&amp;amp;nbsp;Libraries&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---auto_test&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''compiler_kernel'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|cli_writer}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|dotnet_loader}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|environment}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|time}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|wel}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''configuration_compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''configuration_parser'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|eiffel_identifier}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|interface_names}} [[User:Ted|Ted]]'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|encoding}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|i18n}} [[User:Ted|Ted]]'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|encoding}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|uuid}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{red|consumer}}''' [[User:Manus|Manu]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|assembly_resolver}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|dotnet_helper}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|ecchecker}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|assembly_resolver}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|logger}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''emitter_loader'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|dotnet_loader}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''parser'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''framework_file'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|consumer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_helper}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---emitter_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|gobo_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|i18n}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{red|preferences_reg}}''' [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|process}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|resources}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''ecosystem'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|consumer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_helper}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---emitter_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|i18n}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|preferences_reg}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|resources}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|patterns}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''tagging'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---ecosystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|testing}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|argument_parser}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|testing}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---command_tunnel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---compiler_kernel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---configuation_compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---configuation_gui&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|docking}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''framework'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|docking}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''pe_reader'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{red|consumer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---{{green|curl}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---debugger&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|cli_debugger}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---compiler_kernel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---framework&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---{{green|diff}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|docking}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''dotnet_assembly_information'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_helper}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|dotnet_helper}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---ecosystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---editor&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|encoding}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|lex}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|preferences_reg}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|testing}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---emitter_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|encoding}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---framework&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''framework_patterns'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---graph&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|i18n}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|lex}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---memory_analyzer&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---graph&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''parser_extension'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---pe_reader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{red|preferences_reg}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|resources}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''services_framework'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---tagging&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---testing_engine&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---auto_test&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---debugger&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---ecosystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---tagging&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|testing}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|testing}} (testing_library)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---{{green|uri_launcher}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|api_wrapper}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|threading}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|vision2}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---vision2_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''xml'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.5_Releases&amp;diff=13338</id>
		<title>EiffelStudio 6.5 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.5_Releases&amp;diff=13338"/>
				<updated>2009-08-28T07:15:52Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Bug fixes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.5.x Releases=&lt;br /&gt;
&lt;br /&gt;
==6.5.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release. &lt;br /&gt;
===New features===&lt;br /&gt;
*{{Red|libraries: added the base extension library that offers some extra functionality to EiffelBase. Namely a SEARCH_TABLE which is basically a HASH_TABLE where keys and items are the same, and sorting facilities for INDEXABLE containers.}}&lt;br /&gt;
===Improvements===&lt;br /&gt;
studio: Automatic class licenser can now use license.lic files next to an ECF instead of naming file *.lic after the ECF. Makes it easier for multi-ECF libraries.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*base: Fixed issue with `put' and `extend' from PART_SORTED_SET which had no effect and thus causing a postcondition violation.&lt;br /&gt;
*base: Fixed issue with `remove' in BINARY_SEARCH_TREE_SET which would not move the cursor and thus causing an infinite loop in `subtract', `intersect.&lt;br /&gt;
*base: Added ability to create a directory recursively.&lt;br /&gt;
*testing: Fixed an issue with the Eiffel runtime override of byte code causing some test execution to fail if no code was melted.&lt;br /&gt;
*studio: Fixed issue with ES crashing when trying to merge a license, when class contains an empty note clause.&lt;br /&gt;
*studio: Fixed issue where project settings would let you add twice the same include file rule.&lt;br /&gt;
*studio: Fixed an issue where clicking in the project settings entry to display a dialog and then clicking cancel would show the dialog a second time.&lt;br /&gt;
*studio: Fixed bug#14840: Extracted homonyms once, and now Estudio keeps trying to extract them again&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*base: Made `clear_all' in STRING_8, STRING_32 and HASH_TABLE obsolete. One has to use `wipe_out' instead.&lt;br /&gt;
*{{Red|base: Strengthen precondition of `resize' in STRING_8/STRING_32 to forbid values that would shrink the string content. Use `grow' instead to preserve former `resize' behavior.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.8.294 (August 17th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
* {{Red|web_browser: Added Web Browser widget {EV_WEB_BROWSER} (see new &amp;quot;web_browser&amp;quot; library) and example project (see example under $ISE_LIBRARY/examples/web_browser)}}&lt;br /&gt;
* {{Red|studio: GCC and MSC external compilation errors are now displayed in the error list, with linking to source Eiffel feature when the information is available.}}&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Improved error messages for VUAR/VJAR/VBAR errors to mention compatibility instead of just conformance.&lt;br /&gt;
*studio: Now double clicking on an ecf file will select the previously compiled target by default.&lt;br /&gt;
*ec: Fixed command line compilation to use the current working directory unless -project_path is specified (restoring pre-ecf behavior)&lt;br /&gt;
*ec: When an ecf file has been specified with -config, the previously compiled target is chosen as the first option in the compilable target list.&lt;br /&gt;
*AutoTest: Improved tag tree for displaying tests by merging view/filter box into one input field&lt;br /&gt;
*AutoTest: Potential test classes are traversed asynchronously after each compilation, allowing the user to continue working while tests are found. This also removes the need for special test clusters.&lt;br /&gt;
*AutoTest: Improved the way tests are executed. By tagging a test with &amp;quot;execution/isolated&amp;quot; the test process is restarted before and after the test is executed. By tagging a number of tests with a tag &amp;quot;execution/serial&amp;quot;, the tagged tests are not executed in parallel. {{Red|Because of these changes, test execution and generation might not completely work in the next release (missing test results/output).}}&lt;br /&gt;
*{{Red|AutoTest library: {EQA_TEST_SET}.on_prepare is called during `default_create', which makes it simpler to use attached attributes in void-safe tests.}}&lt;br /&gt;
*AutoTest library: Moved actual test routine invocation into {EQA_TEST_SET}.run_test which can be used to nest the test routine call. This is used for example by Vision2 tests to launch the event loop before calling the test routine.&lt;br /&gt;
*{{Red|Docking library: Made Smart Docking library (including docking library examples) void-safe}}&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*base: Fixed bug#4118 where on .NET `put' had no effect on the actual process environment variables because the API was only available in .NET 2.0 which is what we support at the minimum.&lt;br /&gt;
*{{Red|base: Fixed bug in `copy' from HEAP_PRIORITY_QUEUE which would not do anything because it was simply copying itself, not other.}}&lt;br /&gt;
*{{Red|base: Fixed bug in `remove' from HEAP_PRIORITY_QUEUE which caused the internal structure to be referenced beyond its bounds.}}&lt;br /&gt;
*base: Fixed a bug in {MEMORY}.memory_map which would cause a precondition violation in one of its call.&lt;br /&gt;
*serialization: Fixed a bug in SED_INDEPENDENT_DESERIALIZER in the experimental branch where we could get an out of bound access because we incorrectly resized a SPECIAL.&lt;br /&gt;
*studio: Fixed bug preventing the an output from being selected on Windows.&lt;br /&gt;
*studio: Fixed duplicate output issue when a subsystem activates the outputs tool before showing it.&lt;br /&gt;
*studio: Fixed bug preventing the new features dialog from being displayed when using newer syntax.&lt;br /&gt;
*EiffelVision: Fixed potential crash with tab navigation code when a key press was sent to a widget that is in the process of being unparented.&lt;br /&gt;
*debugger: fixed#16013, now all READABLE_STRING_8/32 and descendant will be displayed as string literal in debugger tools.&lt;br /&gt;
*compiler: Fixed eweasel test#final084 where compiler would generate incorrect type at run-time causing some memory corruption or a general failure.&lt;br /&gt;
*compiler: Fixed eweasel test#final083 where compiler would crash when inlining certain type of code involving generic classes.&lt;br /&gt;
*compiler: Fixed issues in experimental version when introducing `generating_type: TYPE [like Current]' in ANY which was causing a few eweasel tests. Also add new test for bug found with manifest type (eweasel test#melt097 and test#valid257).&lt;br /&gt;
*base: Added missing `own_from_pointer' in .NET version of MANAGED_POINTER&lt;br /&gt;
*studio: Fixed issue where one could not change an integer based preference entry in EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
==6.5.7.9743 (July 13th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*base: Added `own_from_pointer' in C_STRING.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio:Made some bug fixes and improvements to the new output tool.&lt;br /&gt;
*studio: Added tooltip to precompilation wizard list to show item's ecf file path&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*autotest: Fixed bug#15875 where selecting a test class and choosing run had no effect, now it will run all the test cases defined in that class.&lt;br /&gt;
*base: Added missing `own_from_pointer' routine in the .NET version of MANAGED_POINTER&lt;br /&gt;
*base: Made TYPE class similar to the classic version.&lt;br /&gt;
*studio: Fixed bug#13103: Cannot set Shift+Esc as a shortcut in the preferences dialog.&lt;br /&gt;
*studio: Fixed typo reported by bug#13220 in the Metric tool.&lt;br /&gt;
*compiler: Fixed issue where one could not debug an application if the `executable_name' specified in the ECF contained the .exe suffix on Windows. This fixes bug#11834.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*compiler: the indexing value '''volatile''' previously introduced has been renamed into '''transient'''.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.7.9500==&lt;br /&gt;
===New features===&lt;br /&gt;
*{{Red|base: Changed {ANY}.generating_type to return an instance of TYPE}}&lt;br /&gt;
*{{Red|runtime: Added support for transient attributes for store/retrieve. A transient attribute is an attribute which is not stored at runtime and for which its absence in the retrieval system has no effect.}}&lt;br /&gt;
* compiler: Supported detection and validity error report for VSRP(3) (the root procedure is not precondition-free) (see test#vsrp301).&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.4_Releases&amp;diff=13337</id>
		<title>EiffelStudio 6.4 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.4_Releases&amp;diff=13337"/>
				<updated>2009-08-28T07:15:35Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Bug fixes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.4.x Releases=&lt;br /&gt;
&lt;br /&gt;
==6.4.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release. &lt;br /&gt;
===New features===&lt;br /&gt;
*compiler: Add support for transient attributes.&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed eweasel test#final084 where compiler would generate incorrect type at run-time causing some memory corruption or a general failure.&lt;br /&gt;
*compiler: Fixed eweasel test#final083 where compiler would crash when inlining certain type of code involving generic classes.&lt;br /&gt;
*base: Added missing `own_from_pointer' in .NET version of MANAGED_POINTER&lt;br /&gt;
*studio: Fixed issue where one could not change an integer based preference entry in EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.9451 (Final Release, June 29th 2009) ==&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*libraries: Ensured void-safety of libraries under .NET too.&lt;br /&gt;
*compiler: Fixed issue where finalizing twice without a change in a row would cause the full recompilation of degree -2 and -3.&lt;br /&gt;
*compiler: Fixed an issue with documentation generation which was always failing.&lt;br /&gt;
*compiler: Fixed an issue when using `generating_type: TYPE [like Current]' in ANY causing the compiler to crash.&lt;br /&gt;
*testing: Fixed output tool documentation link.&lt;br /&gt;
*vision2: Fixed an issue with EV_GRID in the experimental version.&lt;br /&gt;
&lt;br /&gt;
==6.4.7.9263 (June 14th 2009, Release Candidate) ==&lt;br /&gt;
===New features===&lt;br /&gt;
*studio: Added support for new version of EiffelBase which is void-safe for ARRAY and SPECIAL. Because they are breaking changes, this is only available when starting the compiler or EiffelStudio in experimental mode (ec -experiment or estudio -experiment).&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: the WEL new project wizard will now freeze the code to avoid issue with user having to freeze the code for the inclusion of the Windows resources.&lt;br /&gt;
*iphone: Extended the iPhone library. One can now create a full blown application, but not yet handle the touch event.&lt;br /&gt;
*runtime: When handling a mismatch instead of generating the _REF classes for basic types, we generate directly an instance of the basic type so that one can do an object test on the basic type directly.&lt;br /&gt;
*runtime: Improved compatibility of storables between void-safe and non-void-safe systems so that a non-void-safe system can retrieve a storable created by a void-safe system by ignoring all the attachement marks.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*runtime: Fixed eweasel test#melt091 where the interpreter would crash if creating a manifest string, a once manifest string or an agent if the STRING or ROUTINE class got melted as part of a recompilation.&lt;br /&gt;
*vision2: Fixed bug#15507 where the vision2 demo was looking at the wrong place for the bitmaps.&lt;br /&gt;
*net: Fixed a memory leak in read and receive from SOCKET because we forgot to free the temporary buffer used to hold the data.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*base: Added in the non-void-safe version of EiffelBase a few routines that makes it possible to have code that compile both against the non-void-safe as well as the void-safe version of EiffelBase.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.8984 (June 1st 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
* compiler: Added support for iPhone platform.&lt;br /&gt;
* libraries: Added api_wrapper, encoding and internationalization libraries to delivery.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* studio: Added completion of attribute...end to the editor, with preferences.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* studio: Fixed GTK locking issue when exiting the debugger.&lt;br /&gt;
* studio: Fixed completion issue crashing when rapidly editing and filtering the list.&lt;br /&gt;
* studio: Fixed automatic scrolling of the testing output tool.&lt;br /&gt;
* runtime: Fixed eweasel test#thread010 where if a child thread would crash if its parent has already terminated and that child thread never started a thread.&lt;br /&gt;
* runtime: Fixed various SPECIAL initialization bugs with the new SPECIAL implementation (which is not yet included).&lt;br /&gt;
* compiler: Fixed eweasel test#incr322 and test#final079 where compiler would crash when a routine was implemented as an attribute that can be access statically in final mode.&lt;br /&gt;
* compiler: Improved inlining of deferred routines implemented as attributes or constants in INLINER by allowing their inlining.&lt;br /&gt;
* compiler: Made precompilation work on Mac OS X.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.8765 (May 19th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
* studio: Completion now has a feature/class description tool tip (on by default)&lt;br /&gt;
* Promoted the dynamic API wrapper framework to a library.&lt;br /&gt;
* runtime: added support for void-safe SPECIAL but EiffelBase is still using the non-void-safe version.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* studio: Fixed non-Windows bug where transition windows didn't appear due to GTK deferring GUI manipulation events.&lt;br /&gt;
* compiler: Fixed eweasel test#incr322 and test#final079 which caused a crash during finalization of a call to a deferred routine implemented as an attribute with a body or some assertions.&lt;br /&gt;
* compiler: Fixed bug#15798 by avoiding register propagation that does not work well when combined with multidot call chain (see test#attach065).&lt;br /&gt;
* runtime: Allowed for `attached' and `detachable' for creating types at runtime (previously it only supported ? and ! which are now obsolete).&lt;br /&gt;
* debugger: Fixed bug#15772 and bug#15772 where evaluating expressions involving ~ could yield the wrong result.&lt;br /&gt;
* debugger: Fixed bug#15134: Step Into goes to wrong line in debugger after sequence of changes.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*{{Red|time: DATE_TIME_VALUE is now a deferred class}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.8600 (May 10th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed eweasel test#term177 where having some routines using anchors to arguments from a non-generic class used in a generic class where a formal generic parameter is given as argument would cause the compiler to crash.&lt;br /&gt;
* compiler: Fixed eweasel test#term176 and test#incr323 where if you have a syntax error at degree 5 then the compiler would misbehave after fixing the syntax error.&lt;br /&gt;
* compiler: Fixed bug#15761 when an object test local was not set in the generated C code if the source is a creation expression (test#attach064).&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* net: Renamed privately exported `make_from_fd' to `make_from_descriptor_and_address'.&lt;br /&gt;
* compiler: Ensured that particular options specified in the library cannot be overridden in a project, because they apply to the source code (e.g., specify a variant of a syntax) rather than to the code generation (e.g., specify which assertions have to be monitored).&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.8493 (May 4th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*debugger: fixed bug#15557: Empty value shifts the popup window in Watch tool&lt;br /&gt;
*debugger: fixed recently introduced bug related to expression evaluation and conditional breakpoints.&lt;br /&gt;
*debugger: Prevented crash from &amp;quot;bug#15693: catcall and segfault produced&amp;quot; by handling erroneous cases in the debugger.&lt;br /&gt;
*debugger: fixed bug#15708: Incorrect VUOT error being reported in debugger watch window&lt;br /&gt;
*runtime: Fixed eweasel test#expanded008 and bug#15693 where if you had an expanded with references attributes then the garbage collector would not update the internal references of the expanded and cause some memory corruption.&lt;br /&gt;
*install: Fixed incorrect link for compatibility mode of EiffelStudio on Windows.&lt;br /&gt;
*install: Fixed improper COM registration of .NET consumer preventing compilation of .NET projects.&lt;br /&gt;
*compiler: Fixed broken generation of single threaded DLL.&lt;br /&gt;
*net: Made compilable in void-safe mode since new compiler is detecting errors that previous compiler did not catch.&lt;br /&gt;
*build: Fixed bug#15578 in EiffelBuild which causes it to report an exception trace when it should not. This was due to a bug introduced in our preference library which also was showing hidden preferences if no default value was provided in the configuration file.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*process: File redirection in the process library will now append to a file rather than recreating it.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.8382 (April 27th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*debugger: fixed recently introduced bug#15610: Feature call on void target in {DBG_EXPRESSION_EVALUATOR_B}.is_boolean_expression in EiffelStudio.&lt;br /&gt;
*debugger: fixed bug#15669 Feature call on void target in {AST_DEBUGGER_BREAKABLE_STRATEGY}.initialize_current_context&lt;br /&gt;
*debugger: improved support for object test locals&lt;br /&gt;
*runtime: Fixed a non-detection of stack overflow in a multithreaded application on Linux.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* compiler: Incremented ECF XML schema version to reflect the recent changes.&lt;br /&gt;
* compiler: Replaced ECF schema attribute ''syntax_level'' of an integer type with ''syntax'' of a string type that contains one of the three possible values.&lt;br /&gt;
* compiler: Replaced ECF schema attribute ''is_void_safe'' of a boolean type with ''void_safety'' of a string type that contains one of the three possible values (''none'' - no void safety checks, ''all'' - all void safety checks, ''initialization'' - on-demand void safety checks, i.e. only for entities that are attached).&lt;br /&gt;
* compiler: Application options are applied after applying options specified in the library when option ''Use application options'' is set to true.&lt;br /&gt;
* {{Red|compiler: Added compatibility for recognizing code using `infix/prefix' instead of `alias'.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.8212 (April 13th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed bug#15570 that caused the compiler to crash or misbehave when redeclaring a feature that has object tests in both preconditions and postconditions (test#attach061).&lt;br /&gt;
*compiler: Fixed eweasel test#melt012 where if you have a routine with a rescue clause where an exception is raised while executing the compound of a 'when' clause the interpreter stack would get corrupted.&lt;br /&gt;
*compiler:Fixed bug#15092: Adding pre-compilation task with empty command causes config file parse error.&lt;br /&gt;
*compiler: Fixed a bug on Windows where including some Eiffel multithreaded code in a DLL would cause a crash. This was due to the way we compiled our Thread Local Storage using a Microsoft optimization that only works for normal binaries, not DLLs.&lt;br /&gt;
*compiler: Fixed eweasel test#melt085 and test#melt086 where using Precursor in a manifest array, manifest tuple or expression of an object test would cause a crash at runtime.&lt;br /&gt;
&lt;br /&gt;
*studio: Fixed bug#15550 that object test local of a expression type wasn't formatted correctly in flat view.&lt;br /&gt;
*studio: Fixed bug#15584: Search report does not support standard shortcuts available elsewhere.&lt;br /&gt;
*studio: Fixed bug#15590 that &amp;quot;~&amp;quot; and &amp;quot;/~&amp;quot; were not highlighted as operators in the editor.&lt;br /&gt;
*runtime: Fixed eweasel test#thread003 and test#thread007 where you could have a memory corruption at runtime when calling {THREAD}.join and no children threads have been launched yet.&lt;br /&gt;
*runtime: Fixed test#thread008 where you could have a memory corruption at runtime when calling {MEMORY}.find_referers.&lt;br /&gt;
*runtime: Fixed test#thread002 where early termination of parent threads could corrupt memory if children thread are still alive.&lt;br /&gt;
*base: Fixed INTERNAL so that `set_reference_field' can be used to set a reference attribute to Void if the attribute is detachable.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.8090 (April 6th 2009)==&lt;br /&gt;
Placeholder for new stuff since last intermediate release. &lt;br /&gt;
===New features===&lt;br /&gt;
* EiffelParse: void-safe, added void-safe example.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*profiler: provides better precision of profiler result and standardized internal computation of the profiler to be independent of the platform on which profiling is done.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*debugger: better handling of object test locals in debugger (the scopes are not yet supported, and then object test with same name might cause trouble in watch tool).&lt;br /&gt;
*runtime: Fixed eweasel test#exec310 and bug#14477 where if you have a class name that is longer than 512 bytes or an attribute name longer than 512 bytes and you call `out' it would cause a buffer overflow.&lt;br /&gt;
*runtime: Fixed an unnoticeable performance issue with the C storable/retrieval mechanism (bug#14495).&lt;br /&gt;
*runtime: Fixed incorrect display of NATURAL_32 attributes when calling `out' (fixes eweasel test#exec298 and bug#13862.&lt;br /&gt;
*runtime: Fixed eweasel test#exec300 and test#store022 with the processing of deep_twin/deep_equal/store/retrieve of an expanded object.&lt;br /&gt;
*runtime: Fixed eweasel test#exec311 where profiling with invariant checking enabled would cause a profiler failure (profile stack botched).&lt;br /&gt;
*runtime: Fixed eweasel test#melt091 where if you somehow end up melting the code of STRING and that you have melted code that creates a manifest string it will cause the interpreter to crash.&lt;br /&gt;
*studio: Fixed bug#15546: Can't get a flat view of a compiled class.&lt;br /&gt;
*studio: Fixed bug#13986: Locale list becomes empty after &amp;quot;Restore defaults&amp;quot; action.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.7957 (March 29th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*{{Red|base: Implemented {EXCEPTION}.cause which returns the exception object that caused current exception in rescue execution.}}&lt;br /&gt;
*{{Red|compiler: Added support for detecting Mac OS X and VxWorks target compilation.}}&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*encoding: Cached the conversion descriptors on Unix systems to avoid many `iconv_open' calls, which increases performance by around 25% - 300% depending on platforms.&lt;br /&gt;
*net: Added ability to only listen on the loopback address in NETWORK_STREAM_SOCKET.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* studio: Fixed bug#15516: Error tool reshuffles needlessly.&lt;br /&gt;
* studio: Errors reported by one subsystem and then taken over by another now retain the previous selection in the error list tool.&lt;br /&gt;
* studio: Fixed some crashes when trying to execute tests for which there is no .exe or trying to open documentation from EiffelStudio and Firefox cannot open the links (fixed bug#15556).&lt;br /&gt;
* {{Red|base: Fixed the inconsistent behaviors of {EXCEPTIONS}.original* with 5.7 potentially breaking code using exceptions}}.&lt;br /&gt;
* compiler: Fixed eweasel test#exec151 where exceptions triggered in workbench mode where you have a mix of melted and frozen code could corrupt the stack.&lt;br /&gt;
* compiler: Fixed eweasel test#except035 by manually raising an exception if on Solaris based OS we read EOF and the file is either stdout or stderr. Other platforms remain unchanged.&lt;br /&gt;
*{{Red|net: Fixed some issues with the EiffelNet library when trying to listen for either any address or the loopback address in both IPv4 and IPv6 mode on Windows. It also solves a security issue since if you have IPv6 enabled, then listening to the loopback would also listen to any address on the IPv4 interface. This is a Windows only bug.}}&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* compiler: Relaxed note element in .ecf to accept anything.&lt;br /&gt;
* studio: Changed EIS to use note element in ecf in this style: &amp;lt;note&amp;gt;&amp;lt;eis name=&amp;quot;NAME1&amp;quot;&amp;gt;&amp;lt;eis name=&amp;quot;NAME2&amp;quot;&amp;gt;&amp;lt;/note&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.7848 (March 23rd 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Better formatting of verbatim strings, that guarantees that copy/pasting from the formatted text will yield the same string content as the one in the Eiffel source code.&lt;br /&gt;
*base: Changed IO_MEDIUM.last_string to be attached so that existing code can easily be migrated to void-safe without changes in the pattern `read_line/last_string'.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*{{Red|runtime: Improved signal handling to use more recent APIs when available. It especially fixes issue on Solaris where a signal handler was not reinstated after a SIGSEGV signal. It fixes eweasel test#except029.}}&lt;br /&gt;
*{{Red|runtime: Fixed a bug with exception generated during the evaluation of a once in melted mode. This fixes eweasel test#except014 and test#except030.}}&lt;br /&gt;
*runtime: Worked around a bug in the Sun C compiler which caused the creation of SPECIAL in melted code to always fail when runtime is compiled with optimizations. It fixes eweasel test#melt070, test#melt081, test#term139, test#store014 and test#tuple006.&lt;br /&gt;
*runtime: Fixed a potential infinite loop when exiting a crash application when while quitting a signal is received which cause our last print statement to also fail (case of SIGPIPE), then it will infinitely repeat that sequence. This fixes the issue where eweasel test#vsrp208, although it was passing, ec was still using 100% CPU.&lt;br /&gt;
*finish_freezing: Fixed various bugs introduced at rev#77762.&lt;br /&gt;
*{{Red|compiler: Fixed eweasel test#syntax042 and test#syntax047 as well as bug#15514 that allowed invalid characters in new C external specification. Removed generation of error when trying the old syntax, the syntax error will be based in the new syntax now. Added generation of warnings when using the old syntax and warnings are enabled.}}&lt;br /&gt;
*{{Red|compiler: Fixed eweasel test#final077 where the arguments passed to a creation expression where not properly processed when analyzing expressions. This caused the following instruction: &amp;quot;&amp;lt;e&amp;gt;l_x := x.y.z (create .make (l_x))&amp;lt;/e&amp;gt;&amp;quot; to override the value of `l_x' with the value of `x.y' which is wrong.}}&lt;br /&gt;
*studio: Fixed a bug where EiffelStudio would not see that the class text has changed while reporting an error and thus shows the text as it was last seen by EiffelStudio at the previous error reporting.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*base: Explicitly excluded non-void safe classes from the void-safe version of EiffelBase. The list of excluded classes are:&lt;br /&gt;
:* COMPACT_CURSOR_TREE&lt;br /&gt;
:* LINKED_CURSOR_TREE&lt;br /&gt;
:* TWO_WAY_CURSOR_TREE&lt;br /&gt;
:* COMPACT_TREE_CURSOR&lt;br /&gt;
:* LINKED_CURSOR_TREE_CURSOR&lt;br /&gt;
:* TWO_WAY_CURSOR_TREE_CURSOR&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
*compiler: Improved parser and changed factories so that we get proper position information for strings and verbatim strings.&lt;br /&gt;
*compiler: Improved parser benchmark tool so that one can provide the proper type of parser (obsolete, transitional, standard).&lt;br /&gt;
&lt;br /&gt;
==6.4.7.7762 (March 17th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*ec: Added command line version of auto test (not available with ecb)&lt;br /&gt;
*net: Unix part of EiffelNet is now also void-safe.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* debugger: watch tool now support object test locals in expression&lt;br /&gt;
* compiler: Conformance checks do not take attachment status of types into account for void-unsafe code.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* studio: Supported new attached syntax for code completion.&lt;br /&gt;
* studio: Replaced documentation generation marks !/? with attached/detachable keywords.&lt;br /&gt;
* compiler: Fixed potential issue which prevents error/warning source lines from being displayed.&lt;br /&gt;
* compiler: Fixed eweasel test#agent004 and test#agent010 by ensuring the result type of the agent is properly instantiated in the agent target type context.&lt;br /&gt;
* compiler: Fixed eweasel test#incr321 when if you finalize after removing a class from the system, then execution of workbench code fails.&lt;br /&gt;
* debugger: Fixed bug#15494: Cannot eval detached expression  (i.e VUTA error)&lt;br /&gt;
* debugger: display object test locals declared without type (i.e: attached foo as x)&lt;br /&gt;
* c_compiler: Updated to newer version of the MSYS DLL so that it should also work on Windows Vista 64-bit.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* studio: set the project name in status bar, when we load a configuration (i.e: even before any compilation)&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.7646 (March 9th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
* compiler: supported explicitly defined &amp;quot;stable&amp;quot; attributes. Stable attribute is an attribute of a detachable type that is never assigned void. This property makes it possible to apply to it most of the CAP rules suitable for read-only entities. The stable attributes can be declared using value ''stable'' of the note tag ''option'', for example: &amp;lt;e&amp;gt;&lt;br /&gt;
a: detachable MY_TYPE note option: stable attribute end&amp;lt;/e&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*Made the code of the Eiffel Matrix generator generates code that compiles without warnings.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*base: Fixed eweasel test#list003 where calling copy on a non-empty LINKED_LIST and providing the same list as argument would wipe out the content of the LINKED_LIST instead of preserving the elements.&lt;br /&gt;
*base: Fixed eweasel test#list014 where calling `merge_left' and `merge_right' on a TWO_WAY_LIST was violating the invariant.&lt;br /&gt;
*base: Fixed eweasel test#array005 where calling `wipe_out' on an ARRAY2 was violating the invariant.&lt;br /&gt;
*install: Fixed missing distribution of `syntax_updater' tool on Unix.&lt;br /&gt;
*dotnet: Fixed a crash while compiling a .NET system in void-safe mode when the class inherited from a .NET class.&lt;br /&gt;
*dotnet: Fixed bug in .NET code generation where if you do not specify a version of the .NET runtime in your config file, it will always use .NET 1.0 if installed causing the .NET metadata consumer to fail since it is compiled against v2.0 of .NET.&lt;br /&gt;
*install: Fixed a bug in the Makefile.SH needed to compile the C code of our Eiffel libraries which could cause the C compilation to fail on a multiprocessor machine.&lt;br /&gt;
*syntax_updater: Fixed a bug when converting a class that contains an attribute with an assign clause as well as an attribute clause (See updated eweasel test#rdtp001).&lt;br /&gt;
*{{red|store: Fixed bug#15470 introduced in 6.3 where some HASH_TABLE lookups failed because HASH_TABLE is now using `~' instead of `is_equal'. Now EiffelStore uses `same_string' to compare the keys of the HASH_TABLE}}&lt;br /&gt;
*studio: Fixed bug#15447 where selecting the properties entry for the context menu would cause a crash.&lt;br /&gt;
*debugger/studio: fixed bug#15232: Loop variants mess up debugger step-through&lt;br /&gt;
*debugger: Fixed bug#15300: Objects Tab&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*gobo: For the remaining of the 6.4 development, we are now using the latest version of the Gobo source code.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
*consumer: The .NET consumer is now compiled in void-safe mode. Changed the GUID of the COM component and version, that way it is easy to switch between the old and new consumer.&lt;br /&gt;
&lt;br /&gt;
==6.4.7.7440 (March 2nd 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*libraries: Have been updated to the new object test syntax.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*compiler: speed up C compilation of E1/eskelet.c in workbench mode when using VS 2005 C++ in 64-bit. We went from a benchmark of 3 minutes down to 1 minute. It is definitely a bug in VS since their 32-bit version compiles the same code in just a matter of a few seconds.&lt;br /&gt;
*compiler: Improved speed of error generation by caching certain disk access operations.&lt;br /&gt;
*studio: Vastly improved population of the error list tool when thousands or errors/warnings are generated.&lt;br /&gt;
*studio: Error list now shows a synchronization message (Windows only) when displaying the tool for the first time after a compilation.&lt;br /&gt;
*studio: Errors are now shown first in the error list tool, for better visibility.&lt;br /&gt;
*{{Red|compiler: Taken into account attachment status of formal generic constraints when checking conformance and detecting VUTA errors when target type is a formal generic.&lt;br /&gt;
:'''Important:''' default attachment status of the constraints follows the &amp;quot;attached-by-default&amp;quot; setting, so the code might need to be updated by adding a detachable mark in front of the formal generic constraints if the actual generic parameters can be detachable types.}}&lt;br /&gt;
*compiler: we now check that `is_equal' exists in ANY.&lt;br /&gt;
*compiler: Fixed bug#15343 when backups where very large if you referenced many .NET assemblies even when not compiling for .NET.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*runtime: Fixed eweasel test#conform008 where creating an attached formal generic parameter of a generic type whose actual generic parameter is a TUPLE type would not create the proper TUPLE type.&lt;br /&gt;
*debugger: fixed bug#15218: ~ not supported in the watch window.&lt;br /&gt;
*debugger: improved/fixed expression evaluation related to `a = b' and `a ~ b'. As well conditional breakpoint of type `Has Changed'&lt;br /&gt;
*compiler: Supported detection of VUTA(2) errors for unary and binary operators.&lt;br /&gt;
*compiler: Fixed multiple issues with validity checks involving multi-constraint formal generics and &amp;quot;like Current&amp;quot; types.&lt;br /&gt;
*compiler: Fixed system validity errors which were not previously detected or on the other hand rejected when it was correct. Fixes eweasel tests test#svalid019, test#svalid020 and test#multicon051.&lt;br /&gt;
*compiler: Fixed incorrect C code generation when calling routine of a generic class under some circumstances (see eweasel test#ccomp040 and test#ccomp083, it fixes bug#15375).&lt;br /&gt;
*compiler: Fixed bug with {SPECIAL}.put_default which did not insert the correct object for expanded generic derivations of SPECIAL. It fixes eweasel test#exec283 and test#catcall007.&lt;br /&gt;
*compiler: Fixed improper precedence of the new object test syntax. It fixes eweasel test#syntax056 and test#attach053.&lt;br /&gt;
*runtime: Fixed various memory corruption when manipulation large SPECIAL (i.e. whose actual size is greater than 4GB).&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*general: Updated all our libraries to use the new object test syntax.&lt;br /&gt;
*favorites: Data is now kept in project's session data; favorites are kept even after a recompilation from scratch.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.7252 (February 23rd 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*compiler: Added support for the new syntax for object test, i.e. &amp;lt;e&amp;gt;attached {T} exp as u&amp;lt;/e&amp;gt; instead of &amp;lt;e&amp;gt;{u: T} expr&amp;lt;/e&amp;gt;&lt;br /&gt;
*syntax_updater: Syntax updater will convert the old syntax for object test to the new one, and will also perform some optimizations, such as transforming &amp;lt;e&amp;gt;{t: like x} x&amp;lt;/e&amp;gt; into just &amp;lt;e&amp;gt;attached x as t&amp;lt;/e&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*compiler: Supported object tests using the same object test local name in a single feature provided that their scopes do not conflict.&lt;br /&gt;
*compiler: speed up parsing time in compiler that can provide about 3% speed up.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*runtime: Fixed bug#15280 and eweasel test#except034 that {EXCEPTION_MANAGER}.last_exception not cleared after successful retry if melted.&lt;br /&gt;
*compiler: Correctly reported VEVI error for attributes initialized from a creation procedure by calling a once routine because the latter is not guaranteed to be executed on subsequent calls.&lt;br /&gt;
*debugger: Fixed bug#15384: Debugger does not step at correct position (related to require else...)&lt;br /&gt;
*debugger: now the debugger remembers correctly the breakpoint, even when recompiling from scratch.&lt;br /&gt;
*compiler: Fixed some issues with non-conforming inheritance (bug#15224)&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.7062 (February 9th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
* Eiffel2Java: void-safe, added void-safe example.&lt;br /&gt;
* EiffelWeb: void-safe.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*compiler: attached attribute initialization in creation procedures is now detected not only by inspecting the top-level instructions, but also the nested complex instructions with several possible execution paths, like conditional instruction, multi-branch, etc.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*testing: Fixed a bug where minimization of test was not done resulting in very large regression tests.&lt;br /&gt;
*compiler: Fixed eweasel test#attach047 where type of array of string passed as argument to the creation procedure of the root class should have an attached actual argument type.&lt;br /&gt;
*compiler: Fixed eweasel test#svalid018 where a crash occurred in `process_converted_expr_as' because we failed to verify that the expression still compiles fine even if inherited, because although it might compile fine in the ancestor, in the descendant it might not if they use a different set of options (e.g. non-void-safe in parent and void-safe in descendant).&lt;br /&gt;
*eiffelweb: Fixed issue with `hexa_to_ascii' to make sure we process correctly even incorrectly encoded URL. Added `insert_pair_without_encoding' and `parse_urlencoded_input'. Fixed input_data to return an empty string and not to report an error and the content_length is empty as it is permitted to do so.&lt;br /&gt;
*eiffelweb: Fixed issue bug#15267 by inheriting from SHARED_STDIN and SHARED_STDOUT to provide `stdin' and `output' in CGI_IN_AND_OUT.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*{{Red|base: Made several changes in EiffelBase so that the same version can be compiled in void-safe mode as well as in non-void safe mode. The code that might not be compile anymore is `create {CELL [SOME]}' because default_create is not a creation procedure anymore.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
*studio: The Groups tool and Favorites tool are now based on ESF.&lt;br /&gt;
*studio: Significant changes made in ESF tool foundations to further optimize startup and memory performance. Panels are no longer created unless the panel UI is actually needed.&lt;br /&gt;
&lt;br /&gt;
==6.4.7.6930 (February 2nd 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*compiler: for enhanced backward compatibility with 6.3, estudio and ec/ecb have a new command line option `-compat' to launch EiffelStudio or the command line compiler with compilation settings compatible with those of 6.3. On Windows, you also have a new shortcut entry in the start menu for launching EiffelStudio in this compatibility mode.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*compiler: Better explanation for VDPR(3) errors when two or more precursor are available by listing all the precursors.&lt;br /&gt;
*compiler: Non-void arguments are now detected not only when they are specified in the voidness tests in immediate preconditions, but also in inherited ones.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed eweasel test#attach042 and test#attach043 where type of agent was incorrect when target was of type `like Current' or when the routine had no open arguments, in both cases the compiler generated detachable types when attached were expected.&lt;br /&gt;
*compiler: Fixed some regressions eweasel test#fixed119 and test#incr318.&lt;br /&gt;
*compiler: Fixed invalid precursor missed detection thus fixing eweasel test#valid117.&lt;br /&gt;
*runtime: Fixed eweasel test#runtime011 were a memory corruption could occur when twining a SPECIAL or a TUPLE object under certain circumstances.&lt;br /&gt;
*studio: Fixed a bug where editor will disappear when debugging.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*compiler: renamed VUPR errors to their ECMA name VDPR.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.6833 (January 26th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
*wel: now void-safe&lt;br /&gt;
*lex: now void-safe&lt;br /&gt;
*encoding: now void-safe&lt;br /&gt;
*process: now void-safe&lt;br /&gt;
*time: added void-safe sample&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*studio: Fixed bug#15253 where editor is missing from docking layout.&lt;br /&gt;
*base: Fixed bug#15266 where we incorrectly merged the code value for {IO_EXCEPTION} and {RUNTIME_IO_EXCEPTION} thus breaking existing code not based on Eiffel exception object. (eweasel test#except035)&lt;br /&gt;
*base: Fixed bug#15273 and eweasel test#except033 that an exception thrown through rescues caused infinite loop.&lt;br /&gt;
*studio: Fixed the bug &amp;quot;Show disambiguated names&amp;quot; and &amp;quot;Show obsolete items&amp;quot; button on completion window did not function correctly and made tooltips on option buttons translatable.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.6747 (January 19th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
*{{Red|base: Updated the IMMUTABLE_STRING classes to have an efficient string extraction query `shared_substring' which will let you create a substring of an existing immutable string without actually duplicating the data.}}&lt;br /&gt;
*studio: Added option in the new library dialog to show only void-safe libraries, for void-safe projects.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed a bug with pre/post actions which were always executed regardless of the specified condition.&lt;br /&gt;
*runtime: Fixed eweasel test#store020 where our recoverable store mechanism could not retrieve an object if it was generic and using a formal as actual generic parameter in a generic derivation using an expanded type. This is because in 6.2, we decided not to perform the instantiation of the attribute as it was not working properly when generic derivation is a generic expanded type. For the time being, if there is a mismatch where expected type is a FORMAL_TYPE, we try to instantiate it in the current processed type and if there is a match then we know it is ok, otherwise we reject the code. This also fixes bug#15256.&lt;br /&gt;
*runtime: Fixed eweasel test#store019 where using the SED facilities to store/retrieve attributes which are attached would fail.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.6645 (January 12th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*studio: Added compile_all, syntax_updater and Eiffel image embedder tool to the EiffelStudio delivery. They are located under $ISE_EIFFEL/tools/spec/$ISE_PLATFORM/bin.&lt;br /&gt;
*editor: Added `flush' to force a full load of texts.&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed bug#15235 where some C compilers do not like that we generate a C array of size 0.&lt;br /&gt;
*compiler: Fixed correctly location reporting of error classes, using the location where the code is written which differs from the current class being analyzed.&lt;br /&gt;
*compiler: Fixed bug#15139 by checking when parts of a multi-branch conditional instruction even when the inspect expression does not type check (see test#valid228).&lt;br /&gt;
*compiler: Fixed test#attach039 by using written class when evaluating precursor features as the current feature may be inherited.&lt;br /&gt;
*compiler: Fixed bug#15144 by checking that a self-initializing attribute is not processed recursively (see test#term169).&lt;br /&gt;
*compiler: Fixed bug#15129 by using a mixed routine-attribute table for attributes that may be self-initializing (see test#final072).&lt;br /&gt;
*studio: Fixed issue bug#15222 to respected existing note clause tags and values.&lt;br /&gt;
*finish_freezing: Fixed typo reported in bug#15239.&lt;br /&gt;
*net: Move definition of FD_SETSIZE before using the Windows header files so that we can really listen on 256 descriptors (breaking change introduced in the IPv6 version which is now the official).&lt;br /&gt;
===User changes===&lt;br /&gt;
*studio: Added EIS built-in variable &amp;quot;ISE_DOC_UUID&amp;quot; with value of &amp;quot;http://doc.eiffel.com/isedoc/uuid&amp;quot;.&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.6592 (January 5th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Automatic class licenser now preserves all other note clause terms when replacing a license in the class text.&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*studio: Fixed reporting of feature errors to report the correct class name when referring to parent class errors.&lt;br /&gt;
*studio: Fixed EIS tool broken by either compiler changes or improper attachment usage.&lt;br /&gt;
*studio: Fixed a library target compiled as an application target was not editable by EIS.&lt;br /&gt;
*studio: Fixed a bug that note elements were not properly setup when recomputing configuration, which caused missing of some EIS entries.&lt;br /&gt;
===User changes===&lt;br /&gt;
*{{red|net: The IPv6 version of the EiffelNet library is now the official one. The old one has been moved in the obsolete cluster.}}&lt;br /&gt;
*{{red|compiler: The compiler now accepts &amp;lt;e&amp;gt;attribute&amp;lt;/e&amp;gt; and &amp;lt;e&amp;gt;note&amp;lt;/e&amp;gt; as keyword by default.}}&lt;br /&gt;
*{{red|argument parser: The argument parser library introduces some breaking changes in deferred feature signatures due to the conversion to Void-Safe.}}&lt;br /&gt;
*studio: Added built-in EIS variable &amp;quot;ISE_DOC&amp;quot; with value of &amp;quot;http://doc.eiffel.com&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.6402 (December 27th 2008)==&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
*compiler: speed up degree 6 by not looking at the content of all .e files to figure out the associated class name. We now assume on the first pass that the file name is the class name. On EiffelStudio, if none of the file were buffered, we went from about 1 minute spent to just less than 3 seconds. The improvement should be even more when classes are on a remote drive.&lt;br /&gt;
*studio: Set current line number as initial line number of the Go to line dialog. This fixed bug#15193.&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed missing detection of VRFT errors in cases like &amp;quot;&amp;lt;e&amp;gt;a: TUPLE [a: TUPLE [out: INTEGER]]&amp;lt;/e&amp;gt;&amp;quot;. Fixes eweasel test#exec293.&lt;br /&gt;
*compiler: Fixed catcall checker crashing when enabled. Fixes eweasel test#term166.&lt;br /&gt;
*runtime: Fixed eweasel test#exec293 where accessing labels of a Void tuple would not cause a call on Void target exception.&lt;br /&gt;
*studio: Fixed a bug that shortcut preferences with `+'/`Numpad +' could not be modified.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*compiler: now the compiler does not produce the class progress output in batch mode. If you want the old behavior, you have to use -verbose option.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.6313 (December 22nd 2008)==&lt;br /&gt;
===New features===&lt;br /&gt;
*base: Added `same_keys' to HASH_TABLE. You can redefine this feature to use a different comparison criterion for the keys.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*compiler: Improved implementation of ~ and expanded comparison to use `is_equal' directly rather than using `equal'.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed eweasel test#exec292 where type of inherited formals where incorrectly interpreted in descendants.&lt;br /&gt;
*base: Fixed a bug that would not recognize a class name A_SOMETHING as a valid identifier for INTERNAL.&lt;br /&gt;
*studio: New library dialog now correctly sorts the contents base on the library name and not the path.&lt;br /&gt;
*studio: Fixed bug#15173: EiffelStudio crash when selecting library&lt;br /&gt;
*runtime: Fixed eweasel test#runtime010 where certain allocation patterns could cause a major slow down during a garbage collection cycle.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*{{Red|base: We do not use &amp;lt;e&amp;gt;is_equal&amp;lt;/e&amp;gt; in EiffelBase, but instead the ~ operator. This could break some of your code, especially with HASH_TABLE.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.76164 (December 15th 2008)==&lt;br /&gt;
===New features===&lt;br /&gt;
* studio: In-grid-item selection in Error List tool.&lt;br /&gt;
* editor: Customizing some editor attributes, fonts, line height and etc., per instance.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Tabulated format of copied selection from the Error List tool.&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*studio: Fixed bug#14237 where some manipulations on the UI could corrupt the EiffelStudio docking layout.&lt;br /&gt;
*studio: Fixed bug#12453 where VYCQ error would print the feature name in blue rather than in green.&lt;br /&gt;
*studio: Added a protection for bug#15116 where we could still try to access `content' while EiffelStudio has already destroyed the panel.&lt;br /&gt;
*studio: Fixed bug#15073 that Pick and drop from output window didn't work when no class tool was available.&lt;br /&gt;
*compiler: Fixed eweasel test#multicon050 where compiler did not handle renaming of a routine with an alias into a routine without one as it still thought the alias was available.&lt;br /&gt;
*compiler: Added printing of referenced configuration file in which there is a conflict. This fixes bug#15099.&lt;br /&gt;
*compiler: Fixed an incorrect VUTA(2) error being reported when compiling a static access call in void-safe mode. This fixes eweasel test#valid223.&lt;br /&gt;
*compiler: Fixed an incrementality corruption (bug#15061 and eweasel test#incr296) which would occur a feature has an invalid signature for one failed compilation before it is fixed again.&lt;br /&gt;
*compiler: Fixed bug#15027 where if you have a class which was originally only in an override cluster and then keep it in the override cluster but also now in a normal cluster, then we would not remove the compiled information from the override cluster which would cause in a later compilation the class to be forcibly removed from the system even though it is still in use.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*{{Red|base: it is now using the new alias syntax for operators instead of obsolete syntax based on `infix/prefix' keywords. As a result some of your code may not compile.}}&lt;br /&gt;
===Developer changes===&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.4_Releases&amp;diff=13336</id>
		<title>EiffelStudio 6.4 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.4_Releases&amp;diff=13336"/>
				<updated>2009-08-28T07:07:24Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Bug fixes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.4.x Releases=&lt;br /&gt;
&lt;br /&gt;
==6.4.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release. &lt;br /&gt;
===New features===&lt;br /&gt;
*compiler: Add support for transient attributes.&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed eweasel test#final084 where compiler would generate incorrect type at run-time causing some memory corruption or a general failure.&lt;br /&gt;
*compiler: Fixed eweasel test#final083 where compiler would crash when inlining certain type of code involving generic classes.&lt;br /&gt;
*base: Added missing `own_from_pointer' in .NET version of MANAGED_POINTER&lt;br /&gt;
*studio: Fixed issue where one could not change an integer based preference entry in EiffelStudio.&lt;br /&gt;
*studio: Fixed bug#14840: Extracted homonyms once, and now Estudio keeps trying to extract them again&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.9451 (Final Release, June 29th 2009) ==&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*libraries: Ensured void-safety of libraries under .NET too.&lt;br /&gt;
*compiler: Fixed issue where finalizing twice without a change in a row would cause the full recompilation of degree -2 and -3.&lt;br /&gt;
*compiler: Fixed an issue with documentation generation which was always failing.&lt;br /&gt;
*compiler: Fixed an issue when using `generating_type: TYPE [like Current]' in ANY causing the compiler to crash.&lt;br /&gt;
*testing: Fixed output tool documentation link.&lt;br /&gt;
*vision2: Fixed an issue with EV_GRID in the experimental version.&lt;br /&gt;
&lt;br /&gt;
==6.4.7.9263 (June 14th 2009, Release Candidate) ==&lt;br /&gt;
===New features===&lt;br /&gt;
*studio: Added support for new version of EiffelBase which is void-safe for ARRAY and SPECIAL. Because they are breaking changes, this is only available when starting the compiler or EiffelStudio in experimental mode (ec -experiment or estudio -experiment).&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: the WEL new project wizard will now freeze the code to avoid issue with user having to freeze the code for the inclusion of the Windows resources.&lt;br /&gt;
*iphone: Extended the iPhone library. One can now create a full blown application, but not yet handle the touch event.&lt;br /&gt;
*runtime: When handling a mismatch instead of generating the _REF classes for basic types, we generate directly an instance of the basic type so that one can do an object test on the basic type directly.&lt;br /&gt;
*runtime: Improved compatibility of storables between void-safe and non-void-safe systems so that a non-void-safe system can retrieve a storable created by a void-safe system by ignoring all the attachement marks.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*runtime: Fixed eweasel test#melt091 where the interpreter would crash if creating a manifest string, a once manifest string or an agent if the STRING or ROUTINE class got melted as part of a recompilation.&lt;br /&gt;
*vision2: Fixed bug#15507 where the vision2 demo was looking at the wrong place for the bitmaps.&lt;br /&gt;
*net: Fixed a memory leak in read and receive from SOCKET because we forgot to free the temporary buffer used to hold the data.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*base: Added in the non-void-safe version of EiffelBase a few routines that makes it possible to have code that compile both against the non-void-safe as well as the void-safe version of EiffelBase.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.8984 (June 1st 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
* compiler: Added support for iPhone platform.&lt;br /&gt;
* libraries: Added api_wrapper, encoding and internationalization libraries to delivery.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* studio: Added completion of attribute...end to the editor, with preferences.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* studio: Fixed GTK locking issue when exiting the debugger.&lt;br /&gt;
* studio: Fixed completion issue crashing when rapidly editing and filtering the list.&lt;br /&gt;
* studio: Fixed automatic scrolling of the testing output tool.&lt;br /&gt;
* runtime: Fixed eweasel test#thread010 where if a child thread would crash if its parent has already terminated and that child thread never started a thread.&lt;br /&gt;
* runtime: Fixed various SPECIAL initialization bugs with the new SPECIAL implementation (which is not yet included).&lt;br /&gt;
* compiler: Fixed eweasel test#incr322 and test#final079 where compiler would crash when a routine was implemented as an attribute that can be access statically in final mode.&lt;br /&gt;
* compiler: Improved inlining of deferred routines implemented as attributes or constants in INLINER by allowing their inlining.&lt;br /&gt;
* compiler: Made precompilation work on Mac OS X.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.8765 (May 19th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
* studio: Completion now has a feature/class description tool tip (on by default)&lt;br /&gt;
* Promoted the dynamic API wrapper framework to a library.&lt;br /&gt;
* runtime: added support for void-safe SPECIAL but EiffelBase is still using the non-void-safe version.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* studio: Fixed non-Windows bug where transition windows didn't appear due to GTK deferring GUI manipulation events.&lt;br /&gt;
* compiler: Fixed eweasel test#incr322 and test#final079 which caused a crash during finalization of a call to a deferred routine implemented as an attribute with a body or some assertions.&lt;br /&gt;
* compiler: Fixed bug#15798 by avoiding register propagation that does not work well when combined with multidot call chain (see test#attach065).&lt;br /&gt;
* runtime: Allowed for `attached' and `detachable' for creating types at runtime (previously it only supported ? and ! which are now obsolete).&lt;br /&gt;
* debugger: Fixed bug#15772 and bug#15772 where evaluating expressions involving ~ could yield the wrong result.&lt;br /&gt;
* debugger: Fixed bug#15134: Step Into goes to wrong line in debugger after sequence of changes.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*{{Red|time: DATE_TIME_VALUE is now a deferred class}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.8600 (May 10th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed eweasel test#term177 where having some routines using anchors to arguments from a non-generic class used in a generic class where a formal generic parameter is given as argument would cause the compiler to crash.&lt;br /&gt;
* compiler: Fixed eweasel test#term176 and test#incr323 where if you have a syntax error at degree 5 then the compiler would misbehave after fixing the syntax error.&lt;br /&gt;
* compiler: Fixed bug#15761 when an object test local was not set in the generated C code if the source is a creation expression (test#attach064).&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* net: Renamed privately exported `make_from_fd' to `make_from_descriptor_and_address'.&lt;br /&gt;
* compiler: Ensured that particular options specified in the library cannot be overridden in a project, because they apply to the source code (e.g., specify a variant of a syntax) rather than to the code generation (e.g., specify which assertions have to be monitored).&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.8493 (May 4th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*debugger: fixed bug#15557: Empty value shifts the popup window in Watch tool&lt;br /&gt;
*debugger: fixed recently introduced bug related to expression evaluation and conditional breakpoints.&lt;br /&gt;
*debugger: Prevented crash from &amp;quot;bug#15693: catcall and segfault produced&amp;quot; by handling erroneous cases in the debugger.&lt;br /&gt;
*debugger: fixed bug#15708: Incorrect VUOT error being reported in debugger watch window&lt;br /&gt;
*runtime: Fixed eweasel test#expanded008 and bug#15693 where if you had an expanded with references attributes then the garbage collector would not update the internal references of the expanded and cause some memory corruption.&lt;br /&gt;
*install: Fixed incorrect link for compatibility mode of EiffelStudio on Windows.&lt;br /&gt;
*install: Fixed improper COM registration of .NET consumer preventing compilation of .NET projects.&lt;br /&gt;
*compiler: Fixed broken generation of single threaded DLL.&lt;br /&gt;
*net: Made compilable in void-safe mode since new compiler is detecting errors that previous compiler did not catch.&lt;br /&gt;
*build: Fixed bug#15578 in EiffelBuild which causes it to report an exception trace when it should not. This was due to a bug introduced in our preference library which also was showing hidden preferences if no default value was provided in the configuration file.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*process: File redirection in the process library will now append to a file rather than recreating it.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.8382 (April 27th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*debugger: fixed recently introduced bug#15610: Feature call on void target in {DBG_EXPRESSION_EVALUATOR_B}.is_boolean_expression in EiffelStudio.&lt;br /&gt;
*debugger: fixed bug#15669 Feature call on void target in {AST_DEBUGGER_BREAKABLE_STRATEGY}.initialize_current_context&lt;br /&gt;
*debugger: improved support for object test locals&lt;br /&gt;
*runtime: Fixed a non-detection of stack overflow in a multithreaded application on Linux.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* compiler: Incremented ECF XML schema version to reflect the recent changes.&lt;br /&gt;
* compiler: Replaced ECF schema attribute ''syntax_level'' of an integer type with ''syntax'' of a string type that contains one of the three possible values.&lt;br /&gt;
* compiler: Replaced ECF schema attribute ''is_void_safe'' of a boolean type with ''void_safety'' of a string type that contains one of the three possible values (''none'' - no void safety checks, ''all'' - all void safety checks, ''initialization'' - on-demand void safety checks, i.e. only for entities that are attached).&lt;br /&gt;
* compiler: Application options are applied after applying options specified in the library when option ''Use application options'' is set to true.&lt;br /&gt;
* {{Red|compiler: Added compatibility for recognizing code using `infix/prefix' instead of `alias'.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.8212 (April 13th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed bug#15570 that caused the compiler to crash or misbehave when redeclaring a feature that has object tests in both preconditions and postconditions (test#attach061).&lt;br /&gt;
*compiler: Fixed eweasel test#melt012 where if you have a routine with a rescue clause where an exception is raised while executing the compound of a 'when' clause the interpreter stack would get corrupted.&lt;br /&gt;
*compiler:Fixed bug#15092: Adding pre-compilation task with empty command causes config file parse error.&lt;br /&gt;
*compiler: Fixed a bug on Windows where including some Eiffel multithreaded code in a DLL would cause a crash. This was due to the way we compiled our Thread Local Storage using a Microsoft optimization that only works for normal binaries, not DLLs.&lt;br /&gt;
*compiler: Fixed eweasel test#melt085 and test#melt086 where using Precursor in a manifest array, manifest tuple or expression of an object test would cause a crash at runtime.&lt;br /&gt;
&lt;br /&gt;
*studio: Fixed bug#15550 that object test local of a expression type wasn't formatted correctly in flat view.&lt;br /&gt;
*studio: Fixed bug#15584: Search report does not support standard shortcuts available elsewhere.&lt;br /&gt;
*studio: Fixed bug#15590 that &amp;quot;~&amp;quot; and &amp;quot;/~&amp;quot; were not highlighted as operators in the editor.&lt;br /&gt;
*runtime: Fixed eweasel test#thread003 and test#thread007 where you could have a memory corruption at runtime when calling {THREAD}.join and no children threads have been launched yet.&lt;br /&gt;
*runtime: Fixed test#thread008 where you could have a memory corruption at runtime when calling {MEMORY}.find_referers.&lt;br /&gt;
*runtime: Fixed test#thread002 where early termination of parent threads could corrupt memory if children thread are still alive.&lt;br /&gt;
*base: Fixed INTERNAL so that `set_reference_field' can be used to set a reference attribute to Void if the attribute is detachable.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.8090 (April 6th 2009)==&lt;br /&gt;
Placeholder for new stuff since last intermediate release. &lt;br /&gt;
===New features===&lt;br /&gt;
* EiffelParse: void-safe, added void-safe example.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*profiler: provides better precision of profiler result and standardized internal computation of the profiler to be independent of the platform on which profiling is done.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*debugger: better handling of object test locals in debugger (the scopes are not yet supported, and then object test with same name might cause trouble in watch tool).&lt;br /&gt;
*runtime: Fixed eweasel test#exec310 and bug#14477 where if you have a class name that is longer than 512 bytes or an attribute name longer than 512 bytes and you call `out' it would cause a buffer overflow.&lt;br /&gt;
*runtime: Fixed an unnoticeable performance issue with the C storable/retrieval mechanism (bug#14495).&lt;br /&gt;
*runtime: Fixed incorrect display of NATURAL_32 attributes when calling `out' (fixes eweasel test#exec298 and bug#13862.&lt;br /&gt;
*runtime: Fixed eweasel test#exec300 and test#store022 with the processing of deep_twin/deep_equal/store/retrieve of an expanded object.&lt;br /&gt;
*runtime: Fixed eweasel test#exec311 where profiling with invariant checking enabled would cause a profiler failure (profile stack botched).&lt;br /&gt;
*runtime: Fixed eweasel test#melt091 where if you somehow end up melting the code of STRING and that you have melted code that creates a manifest string it will cause the interpreter to crash.&lt;br /&gt;
*studio: Fixed bug#15546: Can't get a flat view of a compiled class.&lt;br /&gt;
*studio: Fixed bug#13986: Locale list becomes empty after &amp;quot;Restore defaults&amp;quot; action.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.7957 (March 29th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*{{Red|base: Implemented {EXCEPTION}.cause which returns the exception object that caused current exception in rescue execution.}}&lt;br /&gt;
*{{Red|compiler: Added support for detecting Mac OS X and VxWorks target compilation.}}&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*encoding: Cached the conversion descriptors on Unix systems to avoid many `iconv_open' calls, which increases performance by around 25% - 300% depending on platforms.&lt;br /&gt;
*net: Added ability to only listen on the loopback address in NETWORK_STREAM_SOCKET.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* studio: Fixed bug#15516: Error tool reshuffles needlessly.&lt;br /&gt;
* studio: Errors reported by one subsystem and then taken over by another now retain the previous selection in the error list tool.&lt;br /&gt;
* studio: Fixed some crashes when trying to execute tests for which there is no .exe or trying to open documentation from EiffelStudio and Firefox cannot open the links (fixed bug#15556).&lt;br /&gt;
* {{Red|base: Fixed the inconsistent behaviors of {EXCEPTIONS}.original* with 5.7 potentially breaking code using exceptions}}.&lt;br /&gt;
* compiler: Fixed eweasel test#exec151 where exceptions triggered in workbench mode where you have a mix of melted and frozen code could corrupt the stack.&lt;br /&gt;
* compiler: Fixed eweasel test#except035 by manually raising an exception if on Solaris based OS we read EOF and the file is either stdout or stderr. Other platforms remain unchanged.&lt;br /&gt;
*{{Red|net: Fixed some issues with the EiffelNet library when trying to listen for either any address or the loopback address in both IPv4 and IPv6 mode on Windows. It also solves a security issue since if you have IPv6 enabled, then listening to the loopback would also listen to any address on the IPv4 interface. This is a Windows only bug.}}&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* compiler: Relaxed note element in .ecf to accept anything.&lt;br /&gt;
* studio: Changed EIS to use note element in ecf in this style: &amp;lt;note&amp;gt;&amp;lt;eis name=&amp;quot;NAME1&amp;quot;&amp;gt;&amp;lt;eis name=&amp;quot;NAME2&amp;quot;&amp;gt;&amp;lt;/note&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.7848 (March 23rd 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Better formatting of verbatim strings, that guarantees that copy/pasting from the formatted text will yield the same string content as the one in the Eiffel source code.&lt;br /&gt;
*base: Changed IO_MEDIUM.last_string to be attached so that existing code can easily be migrated to void-safe without changes in the pattern `read_line/last_string'.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*{{Red|runtime: Improved signal handling to use more recent APIs when available. It especially fixes issue on Solaris where a signal handler was not reinstated after a SIGSEGV signal. It fixes eweasel test#except029.}}&lt;br /&gt;
*{{Red|runtime: Fixed a bug with exception generated during the evaluation of a once in melted mode. This fixes eweasel test#except014 and test#except030.}}&lt;br /&gt;
*runtime: Worked around a bug in the Sun C compiler which caused the creation of SPECIAL in melted code to always fail when runtime is compiled with optimizations. It fixes eweasel test#melt070, test#melt081, test#term139, test#store014 and test#tuple006.&lt;br /&gt;
*runtime: Fixed a potential infinite loop when exiting a crash application when while quitting a signal is received which cause our last print statement to also fail (case of SIGPIPE), then it will infinitely repeat that sequence. This fixes the issue where eweasel test#vsrp208, although it was passing, ec was still using 100% CPU.&lt;br /&gt;
*finish_freezing: Fixed various bugs introduced at rev#77762.&lt;br /&gt;
*{{Red|compiler: Fixed eweasel test#syntax042 and test#syntax047 as well as bug#15514 that allowed invalid characters in new C external specification. Removed generation of error when trying the old syntax, the syntax error will be based in the new syntax now. Added generation of warnings when using the old syntax and warnings are enabled.}}&lt;br /&gt;
*{{Red|compiler: Fixed eweasel test#final077 where the arguments passed to a creation expression where not properly processed when analyzing expressions. This caused the following instruction: &amp;quot;&amp;lt;e&amp;gt;l_x := x.y.z (create .make (l_x))&amp;lt;/e&amp;gt;&amp;quot; to override the value of `l_x' with the value of `x.y' which is wrong.}}&lt;br /&gt;
*studio: Fixed a bug where EiffelStudio would not see that the class text has changed while reporting an error and thus shows the text as it was last seen by EiffelStudio at the previous error reporting.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*base: Explicitly excluded non-void safe classes from the void-safe version of EiffelBase. The list of excluded classes are:&lt;br /&gt;
:* COMPACT_CURSOR_TREE&lt;br /&gt;
:* LINKED_CURSOR_TREE&lt;br /&gt;
:* TWO_WAY_CURSOR_TREE&lt;br /&gt;
:* COMPACT_TREE_CURSOR&lt;br /&gt;
:* LINKED_CURSOR_TREE_CURSOR&lt;br /&gt;
:* TWO_WAY_CURSOR_TREE_CURSOR&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
*compiler: Improved parser and changed factories so that we get proper position information for strings and verbatim strings.&lt;br /&gt;
*compiler: Improved parser benchmark tool so that one can provide the proper type of parser (obsolete, transitional, standard).&lt;br /&gt;
&lt;br /&gt;
==6.4.7.7762 (March 17th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*ec: Added command line version of auto test (not available with ecb)&lt;br /&gt;
*net: Unix part of EiffelNet is now also void-safe.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* debugger: watch tool now support object test locals in expression&lt;br /&gt;
* compiler: Conformance checks do not take attachment status of types into account for void-unsafe code.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* studio: Supported new attached syntax for code completion.&lt;br /&gt;
* studio: Replaced documentation generation marks !/? with attached/detachable keywords.&lt;br /&gt;
* compiler: Fixed potential issue which prevents error/warning source lines from being displayed.&lt;br /&gt;
* compiler: Fixed eweasel test#agent004 and test#agent010 by ensuring the result type of the agent is properly instantiated in the agent target type context.&lt;br /&gt;
* compiler: Fixed eweasel test#incr321 when if you finalize after removing a class from the system, then execution of workbench code fails.&lt;br /&gt;
* debugger: Fixed bug#15494: Cannot eval detached expression  (i.e VUTA error)&lt;br /&gt;
* debugger: display object test locals declared without type (i.e: attached foo as x)&lt;br /&gt;
* c_compiler: Updated to newer version of the MSYS DLL so that it should also work on Windows Vista 64-bit.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* studio: set the project name in status bar, when we load a configuration (i.e: even before any compilation)&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.7646 (March 9th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
* compiler: supported explicitly defined &amp;quot;stable&amp;quot; attributes. Stable attribute is an attribute of a detachable type that is never assigned void. This property makes it possible to apply to it most of the CAP rules suitable for read-only entities. The stable attributes can be declared using value ''stable'' of the note tag ''option'', for example: &amp;lt;e&amp;gt;&lt;br /&gt;
a: detachable MY_TYPE note option: stable attribute end&amp;lt;/e&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*Made the code of the Eiffel Matrix generator generates code that compiles without warnings.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*base: Fixed eweasel test#list003 where calling copy on a non-empty LINKED_LIST and providing the same list as argument would wipe out the content of the LINKED_LIST instead of preserving the elements.&lt;br /&gt;
*base: Fixed eweasel test#list014 where calling `merge_left' and `merge_right' on a TWO_WAY_LIST was violating the invariant.&lt;br /&gt;
*base: Fixed eweasel test#array005 where calling `wipe_out' on an ARRAY2 was violating the invariant.&lt;br /&gt;
*install: Fixed missing distribution of `syntax_updater' tool on Unix.&lt;br /&gt;
*dotnet: Fixed a crash while compiling a .NET system in void-safe mode when the class inherited from a .NET class.&lt;br /&gt;
*dotnet: Fixed bug in .NET code generation where if you do not specify a version of the .NET runtime in your config file, it will always use .NET 1.0 if installed causing the .NET metadata consumer to fail since it is compiled against v2.0 of .NET.&lt;br /&gt;
*install: Fixed a bug in the Makefile.SH needed to compile the C code of our Eiffel libraries which could cause the C compilation to fail on a multiprocessor machine.&lt;br /&gt;
*syntax_updater: Fixed a bug when converting a class that contains an attribute with an assign clause as well as an attribute clause (See updated eweasel test#rdtp001).&lt;br /&gt;
*{{red|store: Fixed bug#15470 introduced in 6.3 where some HASH_TABLE lookups failed because HASH_TABLE is now using `~' instead of `is_equal'. Now EiffelStore uses `same_string' to compare the keys of the HASH_TABLE}}&lt;br /&gt;
*studio: Fixed bug#15447 where selecting the properties entry for the context menu would cause a crash.&lt;br /&gt;
*debugger/studio: fixed bug#15232: Loop variants mess up debugger step-through&lt;br /&gt;
*debugger: Fixed bug#15300: Objects Tab&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*gobo: For the remaining of the 6.4 development, we are now using the latest version of the Gobo source code.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
*consumer: The .NET consumer is now compiled in void-safe mode. Changed the GUID of the COM component and version, that way it is easy to switch between the old and new consumer.&lt;br /&gt;
&lt;br /&gt;
==6.4.7.7440 (March 2nd 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*libraries: Have been updated to the new object test syntax.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*compiler: speed up C compilation of E1/eskelet.c in workbench mode when using VS 2005 C++ in 64-bit. We went from a benchmark of 3 minutes down to 1 minute. It is definitely a bug in VS since their 32-bit version compiles the same code in just a matter of a few seconds.&lt;br /&gt;
*compiler: Improved speed of error generation by caching certain disk access operations.&lt;br /&gt;
*studio: Vastly improved population of the error list tool when thousands or errors/warnings are generated.&lt;br /&gt;
*studio: Error list now shows a synchronization message (Windows only) when displaying the tool for the first time after a compilation.&lt;br /&gt;
*studio: Errors are now shown first in the error list tool, for better visibility.&lt;br /&gt;
*{{Red|compiler: Taken into account attachment status of formal generic constraints when checking conformance and detecting VUTA errors when target type is a formal generic.&lt;br /&gt;
:'''Important:''' default attachment status of the constraints follows the &amp;quot;attached-by-default&amp;quot; setting, so the code might need to be updated by adding a detachable mark in front of the formal generic constraints if the actual generic parameters can be detachable types.}}&lt;br /&gt;
*compiler: we now check that `is_equal' exists in ANY.&lt;br /&gt;
*compiler: Fixed bug#15343 when backups where very large if you referenced many .NET assemblies even when not compiling for .NET.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*runtime: Fixed eweasel test#conform008 where creating an attached formal generic parameter of a generic type whose actual generic parameter is a TUPLE type would not create the proper TUPLE type.&lt;br /&gt;
*debugger: fixed bug#15218: ~ not supported in the watch window.&lt;br /&gt;
*debugger: improved/fixed expression evaluation related to `a = b' and `a ~ b'. As well conditional breakpoint of type `Has Changed'&lt;br /&gt;
*compiler: Supported detection of VUTA(2) errors for unary and binary operators.&lt;br /&gt;
*compiler: Fixed multiple issues with validity checks involving multi-constraint formal generics and &amp;quot;like Current&amp;quot; types.&lt;br /&gt;
*compiler: Fixed system validity errors which were not previously detected or on the other hand rejected when it was correct. Fixes eweasel tests test#svalid019, test#svalid020 and test#multicon051.&lt;br /&gt;
*compiler: Fixed incorrect C code generation when calling routine of a generic class under some circumstances (see eweasel test#ccomp040 and test#ccomp083, it fixes bug#15375).&lt;br /&gt;
*compiler: Fixed bug with {SPECIAL}.put_default which did not insert the correct object for expanded generic derivations of SPECIAL. It fixes eweasel test#exec283 and test#catcall007.&lt;br /&gt;
*compiler: Fixed improper precedence of the new object test syntax. It fixes eweasel test#syntax056 and test#attach053.&lt;br /&gt;
*runtime: Fixed various memory corruption when manipulation large SPECIAL (i.e. whose actual size is greater than 4GB).&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*general: Updated all our libraries to use the new object test syntax.&lt;br /&gt;
*favorites: Data is now kept in project's session data; favorites are kept even after a recompilation from scratch.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.7252 (February 23rd 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*compiler: Added support for the new syntax for object test, i.e. &amp;lt;e&amp;gt;attached {T} exp as u&amp;lt;/e&amp;gt; instead of &amp;lt;e&amp;gt;{u: T} expr&amp;lt;/e&amp;gt;&lt;br /&gt;
*syntax_updater: Syntax updater will convert the old syntax for object test to the new one, and will also perform some optimizations, such as transforming &amp;lt;e&amp;gt;{t: like x} x&amp;lt;/e&amp;gt; into just &amp;lt;e&amp;gt;attached x as t&amp;lt;/e&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*compiler: Supported object tests using the same object test local name in a single feature provided that their scopes do not conflict.&lt;br /&gt;
*compiler: speed up parsing time in compiler that can provide about 3% speed up.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*runtime: Fixed bug#15280 and eweasel test#except034 that {EXCEPTION_MANAGER}.last_exception not cleared after successful retry if melted.&lt;br /&gt;
*compiler: Correctly reported VEVI error for attributes initialized from a creation procedure by calling a once routine because the latter is not guaranteed to be executed on subsequent calls.&lt;br /&gt;
*debugger: Fixed bug#15384: Debugger does not step at correct position (related to require else...)&lt;br /&gt;
*debugger: now the debugger remembers correctly the breakpoint, even when recompiling from scratch.&lt;br /&gt;
*compiler: Fixed some issues with non-conforming inheritance (bug#15224)&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.7062 (February 9th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
* Eiffel2Java: void-safe, added void-safe example.&lt;br /&gt;
* EiffelWeb: void-safe.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*compiler: attached attribute initialization in creation procedures is now detected not only by inspecting the top-level instructions, but also the nested complex instructions with several possible execution paths, like conditional instruction, multi-branch, etc.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*testing: Fixed a bug where minimization of test was not done resulting in very large regression tests.&lt;br /&gt;
*compiler: Fixed eweasel test#attach047 where type of array of string passed as argument to the creation procedure of the root class should have an attached actual argument type.&lt;br /&gt;
*compiler: Fixed eweasel test#svalid018 where a crash occurred in `process_converted_expr_as' because we failed to verify that the expression still compiles fine even if inherited, because although it might compile fine in the ancestor, in the descendant it might not if they use a different set of options (e.g. non-void-safe in parent and void-safe in descendant).&lt;br /&gt;
*eiffelweb: Fixed issue with `hexa_to_ascii' to make sure we process correctly even incorrectly encoded URL. Added `insert_pair_without_encoding' and `parse_urlencoded_input'. Fixed input_data to return an empty string and not to report an error and the content_length is empty as it is permitted to do so.&lt;br /&gt;
*eiffelweb: Fixed issue bug#15267 by inheriting from SHARED_STDIN and SHARED_STDOUT to provide `stdin' and `output' in CGI_IN_AND_OUT.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*{{Red|base: Made several changes in EiffelBase so that the same version can be compiled in void-safe mode as well as in non-void safe mode. The code that might not be compile anymore is `create {CELL [SOME]}' because default_create is not a creation procedure anymore.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
*studio: The Groups tool and Favorites tool are now based on ESF.&lt;br /&gt;
*studio: Significant changes made in ESF tool foundations to further optimize startup and memory performance. Panels are no longer created unless the panel UI is actually needed.&lt;br /&gt;
&lt;br /&gt;
==6.4.7.6930 (February 2nd 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*compiler: for enhanced backward compatibility with 6.3, estudio and ec/ecb have a new command line option `-compat' to launch EiffelStudio or the command line compiler with compilation settings compatible with those of 6.3. On Windows, you also have a new shortcut entry in the start menu for launching EiffelStudio in this compatibility mode.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*compiler: Better explanation for VDPR(3) errors when two or more precursor are available by listing all the precursors.&lt;br /&gt;
*compiler: Non-void arguments are now detected not only when they are specified in the voidness tests in immediate preconditions, but also in inherited ones.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed eweasel test#attach042 and test#attach043 where type of agent was incorrect when target was of type `like Current' or when the routine had no open arguments, in both cases the compiler generated detachable types when attached were expected.&lt;br /&gt;
*compiler: Fixed some regressions eweasel test#fixed119 and test#incr318.&lt;br /&gt;
*compiler: Fixed invalid precursor missed detection thus fixing eweasel test#valid117.&lt;br /&gt;
*runtime: Fixed eweasel test#runtime011 were a memory corruption could occur when twining a SPECIAL or a TUPLE object under certain circumstances.&lt;br /&gt;
*studio: Fixed a bug where editor will disappear when debugging.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*compiler: renamed VUPR errors to their ECMA name VDPR.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.6833 (January 26th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
*wel: now void-safe&lt;br /&gt;
*lex: now void-safe&lt;br /&gt;
*encoding: now void-safe&lt;br /&gt;
*process: now void-safe&lt;br /&gt;
*time: added void-safe sample&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*studio: Fixed bug#15253 where editor is missing from docking layout.&lt;br /&gt;
*base: Fixed bug#15266 where we incorrectly merged the code value for {IO_EXCEPTION} and {RUNTIME_IO_EXCEPTION} thus breaking existing code not based on Eiffel exception object. (eweasel test#except035)&lt;br /&gt;
*base: Fixed bug#15273 and eweasel test#except033 that an exception thrown through rescues caused infinite loop.&lt;br /&gt;
*studio: Fixed the bug &amp;quot;Show disambiguated names&amp;quot; and &amp;quot;Show obsolete items&amp;quot; button on completion window did not function correctly and made tooltips on option buttons translatable.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.6747 (January 19th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
*{{Red|base: Updated the IMMUTABLE_STRING classes to have an efficient string extraction query `shared_substring' which will let you create a substring of an existing immutable string without actually duplicating the data.}}&lt;br /&gt;
*studio: Added option in the new library dialog to show only void-safe libraries, for void-safe projects.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed a bug with pre/post actions which were always executed regardless of the specified condition.&lt;br /&gt;
*runtime: Fixed eweasel test#store020 where our recoverable store mechanism could not retrieve an object if it was generic and using a formal as actual generic parameter in a generic derivation using an expanded type. This is because in 6.2, we decided not to perform the instantiation of the attribute as it was not working properly when generic derivation is a generic expanded type. For the time being, if there is a mismatch where expected type is a FORMAL_TYPE, we try to instantiate it in the current processed type and if there is a match then we know it is ok, otherwise we reject the code. This also fixes bug#15256.&lt;br /&gt;
*runtime: Fixed eweasel test#store019 where using the SED facilities to store/retrieve attributes which are attached would fail.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.6645 (January 12th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*studio: Added compile_all, syntax_updater and Eiffel image embedder tool to the EiffelStudio delivery. They are located under $ISE_EIFFEL/tools/spec/$ISE_PLATFORM/bin.&lt;br /&gt;
*editor: Added `flush' to force a full load of texts.&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed bug#15235 where some C compilers do not like that we generate a C array of size 0.&lt;br /&gt;
*compiler: Fixed correctly location reporting of error classes, using the location where the code is written which differs from the current class being analyzed.&lt;br /&gt;
*compiler: Fixed bug#15139 by checking when parts of a multi-branch conditional instruction even when the inspect expression does not type check (see test#valid228).&lt;br /&gt;
*compiler: Fixed test#attach039 by using written class when evaluating precursor features as the current feature may be inherited.&lt;br /&gt;
*compiler: Fixed bug#15144 by checking that a self-initializing attribute is not processed recursively (see test#term169).&lt;br /&gt;
*compiler: Fixed bug#15129 by using a mixed routine-attribute table for attributes that may be self-initializing (see test#final072).&lt;br /&gt;
*studio: Fixed issue bug#15222 to respected existing note clause tags and values.&lt;br /&gt;
*finish_freezing: Fixed typo reported in bug#15239.&lt;br /&gt;
*net: Move definition of FD_SETSIZE before using the Windows header files so that we can really listen on 256 descriptors (breaking change introduced in the IPv6 version which is now the official).&lt;br /&gt;
===User changes===&lt;br /&gt;
*studio: Added EIS built-in variable &amp;quot;ISE_DOC_UUID&amp;quot; with value of &amp;quot;http://doc.eiffel.com/isedoc/uuid&amp;quot;.&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.6592 (January 5th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Automatic class licenser now preserves all other note clause terms when replacing a license in the class text.&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*studio: Fixed reporting of feature errors to report the correct class name when referring to parent class errors.&lt;br /&gt;
*studio: Fixed EIS tool broken by either compiler changes or improper attachment usage.&lt;br /&gt;
*studio: Fixed a library target compiled as an application target was not editable by EIS.&lt;br /&gt;
*studio: Fixed a bug that note elements were not properly setup when recomputing configuration, which caused missing of some EIS entries.&lt;br /&gt;
===User changes===&lt;br /&gt;
*{{red|net: The IPv6 version of the EiffelNet library is now the official one. The old one has been moved in the obsolete cluster.}}&lt;br /&gt;
*{{red|compiler: The compiler now accepts &amp;lt;e&amp;gt;attribute&amp;lt;/e&amp;gt; and &amp;lt;e&amp;gt;note&amp;lt;/e&amp;gt; as keyword by default.}}&lt;br /&gt;
*{{red|argument parser: The argument parser library introduces some breaking changes in deferred feature signatures due to the conversion to Void-Safe.}}&lt;br /&gt;
*studio: Added built-in EIS variable &amp;quot;ISE_DOC&amp;quot; with value of &amp;quot;http://doc.eiffel.com&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.6402 (December 27th 2008)==&lt;br /&gt;
===New features===&lt;br /&gt;
===Improvements===&lt;br /&gt;
*compiler: speed up degree 6 by not looking at the content of all .e files to figure out the associated class name. We now assume on the first pass that the file name is the class name. On EiffelStudio, if none of the file were buffered, we went from about 1 minute spent to just less than 3 seconds. The improvement should be even more when classes are on a remote drive.&lt;br /&gt;
*studio: Set current line number as initial line number of the Go to line dialog. This fixed bug#15193.&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed missing detection of VRFT errors in cases like &amp;quot;&amp;lt;e&amp;gt;a: TUPLE [a: TUPLE [out: INTEGER]]&amp;lt;/e&amp;gt;&amp;quot;. Fixes eweasel test#exec293.&lt;br /&gt;
*compiler: Fixed catcall checker crashing when enabled. Fixes eweasel test#term166.&lt;br /&gt;
*runtime: Fixed eweasel test#exec293 where accessing labels of a Void tuple would not cause a call on Void target exception.&lt;br /&gt;
*studio: Fixed a bug that shortcut preferences with `+'/`Numpad +' could not be modified.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*compiler: now the compiler does not produce the class progress output in batch mode. If you want the old behavior, you have to use -verbose option.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.7.6313 (December 22nd 2008)==&lt;br /&gt;
===New features===&lt;br /&gt;
*base: Added `same_keys' to HASH_TABLE. You can redefine this feature to use a different comparison criterion for the keys.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*compiler: Improved implementation of ~ and expanded comparison to use `is_equal' directly rather than using `equal'.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: Fixed eweasel test#exec292 where type of inherited formals where incorrectly interpreted in descendants.&lt;br /&gt;
*base: Fixed a bug that would not recognize a class name A_SOMETHING as a valid identifier for INTERNAL.&lt;br /&gt;
*studio: New library dialog now correctly sorts the contents base on the library name and not the path.&lt;br /&gt;
*studio: Fixed bug#15173: EiffelStudio crash when selecting library&lt;br /&gt;
*runtime: Fixed eweasel test#runtime010 where certain allocation patterns could cause a major slow down during a garbage collection cycle.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*{{Red|base: We do not use &amp;lt;e&amp;gt;is_equal&amp;lt;/e&amp;gt; in EiffelBase, but instead the ~ operator. This could break some of your code, especially with HASH_TABLE.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.4.76164 (December 15th 2008)==&lt;br /&gt;
===New features===&lt;br /&gt;
* studio: In-grid-item selection in Error List tool.&lt;br /&gt;
* editor: Customizing some editor attributes, fonts, line height and etc., per instance.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Tabulated format of copied selection from the Error List tool.&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*studio: Fixed bug#14237 where some manipulations on the UI could corrupt the EiffelStudio docking layout.&lt;br /&gt;
*studio: Fixed bug#12453 where VYCQ error would print the feature name in blue rather than in green.&lt;br /&gt;
*studio: Added a protection for bug#15116 where we could still try to access `content' while EiffelStudio has already destroyed the panel.&lt;br /&gt;
*studio: Fixed bug#15073 that Pick and drop from output window didn't work when no class tool was available.&lt;br /&gt;
*compiler: Fixed eweasel test#multicon050 where compiler did not handle renaming of a routine with an alias into a routine without one as it still thought the alias was available.&lt;br /&gt;
*compiler: Added printing of referenced configuration file in which there is a conflict. This fixes bug#15099.&lt;br /&gt;
*compiler: Fixed an incorrect VUTA(2) error being reported when compiling a static access call in void-safe mode. This fixes eweasel test#valid223.&lt;br /&gt;
*compiler: Fixed an incrementality corruption (bug#15061 and eweasel test#incr296) which would occur a feature has an invalid signature for one failed compilation before it is fixed again.&lt;br /&gt;
*compiler: Fixed bug#15027 where if you have a class which was originally only in an override cluster and then keep it in the override cluster but also now in a normal cluster, then we would not remove the compiled information from the override cluster which would cause in a later compilation the class to be forcibly removed from the system even though it is still in use.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*{{Red|base: it is now using the new alias syntax for operators instead of obsolete syntax based on `infix/prefix' keywords. As a result some of your code may not compile.}}&lt;br /&gt;
===Developer changes===&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.5_Releases&amp;diff=13162</id>
		<title>EiffelStudio 6.5 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.5_Releases&amp;diff=13162"/>
				<updated>2009-08-15T02:18:46Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Improvements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.5.x Releases=&lt;br /&gt;
&lt;br /&gt;
==6.5.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release. &lt;br /&gt;
===New features===&lt;br /&gt;
&lt;br /&gt;
* {{Red|web_browser: Added Web Browser widget {EV_WEB_BROWSER} (see new &amp;quot;web_browser&amp;quot; library) and example project (see example under $ISE_LIBRARY/examples/web_browser)}}&lt;br /&gt;
* {{Red|studio: GCC and MSC external compilation errors are now displayed in the error list, with linking to source Eiffel feature when the information is available.}}&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Improved error messages for VUAR/VJAR/VBAR errors to mention compatibility instead of just conformance.&lt;br /&gt;
*studio: Now double clicking on an ecf file will select the previously compiled target by default.&lt;br /&gt;
*ec: Fixed command line compilation to use the current working directory unless -project_path is specified (restoring pre-ecf behavior)&lt;br /&gt;
*ec: When an ecf file has been specified with -config, the previously compiled target is chosen as the first option in the compilable target list.&lt;br /&gt;
*AutoTest: Improved tag tree for displaying tests by merging view/filter box into one input field&lt;br /&gt;
*AutoTest: Potential test classes are traversed asynchronously after each compilation, allowing the user to continue working while tests are found. This also removes the need for special test clusters.&lt;br /&gt;
*{{Red|AutoTest library: {EQA_TEST_SET}.on_prepare is called during `default_create', which makes it simpler to use attached attributes in void-safe tests.}}&lt;br /&gt;
*AutoTest library: Moved actual test routine invocation into {EQA_TEST_SET}.run_test which can be used to nest the test routine call. This is used for example by Vision2 tests to launch the event loop before calling the test routine.&lt;br /&gt;
*{{Red|Docking library: Made Smart Docking library (including docking library examples) void-safe}}&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*base: Fixed bug#4118 where on .NET `put' had no effect on the actual process environment variables because the API was only available in .NET 2.0 which is what we support at the minimum.&lt;br /&gt;
*{{Red|base: Fixed bug in `copy' from HEAP_PRIORITY_QUEUE which would not do anything because it was simply copying itself, not other.}}&lt;br /&gt;
*{{Red|base: Fixed bug in `remove' from HEAP_PRIORITY_QUEUE which caused the internal structure to be referenced beyond its bounds.}}&lt;br /&gt;
*base: Fixed a bug in {MEMORY}.memory_map which would cause a precondition violation in one of its call.&lt;br /&gt;
*serialization: Fixed a bug in SED_INDEPENDENT_DESERIALIZER in the experimental branch where we could get an out of bound access because we incorrectly resized a SPECIAL.&lt;br /&gt;
*studio: Fixed bug preventing the an output from being selected on Windows.&lt;br /&gt;
*studio: Fixed duplicate output issue when a subsystem activates the outputs tool before showing it.&lt;br /&gt;
*studio: Fixed bug preventing the new features dialog from being displayed when using newer syntax.&lt;br /&gt;
*EiffelVision: Fixed potential crash with tab navigation code when a key press was sent to a widget that is in the process of being unparented.&lt;br /&gt;
*debugger: fixed#16013, now all READABLE_STRING_8/32 and descendant will be displayed as string literal in debugger tools.&lt;br /&gt;
*compiler: Fixed eweasel test#final084 where compiler would generate incorrect type at run-time causing some memory corruption or a general failure.&lt;br /&gt;
*compiler: Fixed eweasel test#final083 where compiler would crash when inlining certain type of code involving generic classes.&lt;br /&gt;
*compiler: Fixed issues in experimental version when introducing `generating_type: TYPE [like Current]' in ANY which was causing a few eweasel tests. Also add new test for bug found with manifest type (eweasel test#melt097 and test#valid257).&lt;br /&gt;
*base: Added missing `own_from_pointer' in .NET version of MANAGED_POINTER&lt;br /&gt;
*studio: Fixed issue where one could not change an integer based preference entry in EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
==6.5.7.9743 (July 13th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*base: Added `own_from_pointer' in C_STRING.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio:Made some bug fixes and improvements to the new output tool.&lt;br /&gt;
*studio: Added tooltip to precompilation wizard list to show item's ecf file path&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*autotest: Fixed bug#15875 where selecting a test class and choosing run had no effect, now it will run all the test cases defined in that class.&lt;br /&gt;
*base: Added missing `own_from_pointer' routine in the .NET version of MANAGED_POINTER&lt;br /&gt;
*base: Made TYPE class similar to the classic version.&lt;br /&gt;
*studio: Fixed bug#13103: Cannot set Shift+Esc as a shortcut in the preferences dialog.&lt;br /&gt;
*studio: Fixed typo reported by bug#13220 in the Metric tool.&lt;br /&gt;
*compiler: Fixed issue where one could not debug an application if the `executable_name' specified in the ECF contained the .exe suffix on Windows. This fixes bug#11834.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*compiler: the indexing value '''volatile''' previously introduced has been renamed into '''transient'''.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.7.9500==&lt;br /&gt;
===New features===&lt;br /&gt;
*{{Red|base: Changed {ANY}.generating_type to return an instance of TYPE}}&lt;br /&gt;
*{{Red|runtime: Added support for transient attributes for store/retrieve. A transient attribute is an attribute which is not stored at runtime and for which its absence in the retrieval system has no effect.}}&lt;br /&gt;
* compiler: Supported detection and validity error report for VSRP(3) (the root procedure is not precondition-free) (see test#vsrp301).&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=How_to_register_Eiffel_.NET_metadata_consumer_tool&amp;diff=13062</id>
		<title>How to register Eiffel .NET metadata consumer tool</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=How_to_register_Eiffel_.NET_metadata_consumer_tool&amp;diff=13062"/>
				<updated>2009-07-30T07:45:20Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;By default, the Eiffel .Net metadata consumer tool will be registered by EiffelStudio installer (the *.msi) automatically. However, if you are using EiffelStudio which downloaded from 7z package. You may need to register the Eiffel .Net metadata consumer tool manually. Otherwise, when you compile a .Net project in Eiffel Studio. You would get following error:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
VD71: Configuration error&lt;br /&gt;
&lt;br /&gt;
Error code: VD71&lt;br /&gt;
Configuration error&lt;br /&gt;
Could not load ISE Eiffel Metadata Consumer tool.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To register it, just open a command line console (cmd.exe). Change current working directory to your %ISE_EIFFEL%\studio\spec\%ISE_PLATFORM%\bin. Then type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
RegAsm EiffelSoftware.MetadataConsumer.dll&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that, the .Net metadata consumer tool should be registered successfully. You can enjoy your Eiffel .Net projects.&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=How_to_register_Eiffel_.NET_metadata_consumer_tool&amp;diff=13061</id>
		<title>How to register Eiffel .NET metadata consumer tool</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=How_to_register_Eiffel_.NET_metadata_consumer_tool&amp;diff=13061"/>
				<updated>2009-07-30T07:44:34Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;By default, the Eiffel .Net metadata consumer tool will be register by EiffelStudio installer (the *.msi) automatically. However, if you are using EiffelStudio which downloaded from 7z package. You may need to register the Eiffel .Net metadata consumer tool manually. Otherwise, when you compile a .Net project in Eiffel Studio. You would get following error:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
VD71: Configuration error&lt;br /&gt;
&lt;br /&gt;
Error code: VD71&lt;br /&gt;
Configuration error&lt;br /&gt;
Could not load ISE Eiffel Metadata Consumer tool.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To register it, just open a command line console (cmd.exe). Change current working directory to your %ISE_EIFFEL%\studio\spec\%ISE_PLATFORM%\bin. Then type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
RegAsm EiffelSoftware.MetadataConsumer.dll&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that, the .Net metadata consumer tool should be registered successfully. You can enjoy your Eiffel .Net projects.&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=How_to_register_Eiffel_.NET_metadata_consumer_tool&amp;diff=13060</id>
		<title>How to register Eiffel .NET metadata consumer tool</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=How_to_register_Eiffel_.NET_metadata_consumer_tool&amp;diff=13060"/>
				<updated>2009-07-30T07:02:51Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: New page: By default, the Eiffel .Net metadata consumer tool will be register by EiffelStudio installer (the *.msi) automatically. However, if you are using EiffelStudio which downloaded from 7z pac...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;By default, the Eiffel .Net metadata consumer tool will be register by EiffelStudio installer (the *.msi) automatically. However, if you are using EiffelStudio which downloaded from 7z package. You may need to register the Eiffel .Net metadata consumer tool manually. Otherwise, when you compile a .Net project in Eiffel Studio. You would get following error:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
VD71: Configuration error&lt;br /&gt;
&lt;br /&gt;
Error code: VD71&lt;br /&gt;
Configuration error&lt;br /&gt;
Could not load ISE Eiffel Metadata Consumer tool.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To register it, just open a command line console (cmd.exe). Change current working directory to your $ISE_EIFFEL\studio\spec\$ISE_PLATFORM\bin. Then type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
RegAsm EiffelSoftware.MetadataConsumer.dll&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that, the .Net metadata consumer tool should be registered successfully. You can enjoy your Eiffel .Net projects.&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.5_Releases&amp;diff=13046</id>
		<title>EiffelStudio 6.5 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.5_Releases&amp;diff=13046"/>
				<updated>2009-07-24T09:05:25Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* New features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.5.x Releases=&lt;br /&gt;
&lt;br /&gt;
==6.5.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release. &lt;br /&gt;
===New features===&lt;br /&gt;
&lt;br /&gt;
* {{Red|web_browser: Added Web Browser widget {EV_WEB_BROWSER} (see new &amp;quot;web_browser&amp;quot; library) and example project (see example under $ISE_LIBRARY/examples/web_browser)}}&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio: Improved error messages for VUAR/VJAR/VBAR errors to mention compatibility instead of just conformance.&lt;br /&gt;
*studio: Now double clicking on an ecf file will select the previously compiled target by default.&lt;br /&gt;
*ec: Fixed command line compilation to use the current working directory unless -project_path is specified (restoring pre-ecf behavior)&lt;br /&gt;
*ec: When an ecf file has been specified with -config, the previously compiled target is chosen as the first option in the compilable target list.&lt;br /&gt;
*AutoTest: Improved tag tree for displaying tests by merging view/filter box into one input field&lt;br /&gt;
*AutoTest: Potential test classes are traversed asynchronously after each compilation, allowing the user to continue working while tests are found. This also removes the need for special test clusters.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*base: Fixed bug#4118 where on .NET `put' had no effect on the actual process environment variables because the API was only available in .NET 2.0 which is what we support at the minimum.&lt;br /&gt;
*{{Red|base: Fixed bug in `copy' from HEAP_PRIORITY_QUEUE which would not do anything because it was simply copying itself, not other.}}&lt;br /&gt;
*{{Red|base: Fixed bug in `remove' from HEAP_PRIORITY_QUEUE which caused the internal structure to be referenced beyond its bounds.}}&lt;br /&gt;
*serialization: Fixed a bug in SED_INDEPENDENT_DESERIALIZER in the experimental branch where we could get an out of bound access because we incorrectly resized a SPECIAL.&lt;br /&gt;
*studio: Fixed bug preventing the an output from being selected on Windows.&lt;br /&gt;
*studio: Fixed duplicate output issue when a subsystem activates the outputs tool before showing it.&lt;br /&gt;
*studio: Fixed bug preventing the new features dialog from being displayed when using newer syntax.&lt;br /&gt;
*EiffelVision: Fixed potential crash with tab navigation code when a key press was sent to a widget that is in the process of being unparented.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.7.9743 (July 13th 2009)==&lt;br /&gt;
===New features===&lt;br /&gt;
*base: Added `own_from_pointer' in C_STRING.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*studio:Made some bug fixes and improvements to the new output tool.&lt;br /&gt;
*studio: Added tooltip to precompilation wizard list to show item's ecf file path&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*autotest: Fixed bug#15875 where selecting a test class and choosing run had no effect, now it will run all the test cases defined in that class.&lt;br /&gt;
*base: Added missing `own_from_pointer' routine in the .NET version of MANAGED_POINTER&lt;br /&gt;
*base: Made TYPE class similar to the classic version.&lt;br /&gt;
*studio: Fixed bug#13103: Cannot set Shift+Esc as a shortcut in the preferences dialog.&lt;br /&gt;
*studio: Fixed typo reported by bug#13220 in the Metric tool.&lt;br /&gt;
*compiler: Fixed issue where one could not debug an application if the `executable_name' specified in the ECF contained the .exe suffix on Windows. This fixes bug#11834.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
*compiler: the indexing value '''volatile''' previously introduced has been renamed into '''transient'''.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.5.7.9500==&lt;br /&gt;
===New features===&lt;br /&gt;
*{{Red|base: Changed {ANY}.generating_type to return an instance of TYPE}}&lt;br /&gt;
*{{Red|runtime: Added support for transient attributes for store/retrieve. A transient attribute is an attribute which is not stored at runtime and for which its absence in the retrieval system has no effect.}}&lt;br /&gt;
* compiler: Supported detection and validity error report for VSRP(3) (the root procedure is not precondition-free) (see test#vsrp301).&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Start_with_Smart_Docking_library&amp;diff=12624</id>
		<title>Start with Smart Docking library</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Start_with_Smart_Docking_library&amp;diff=12624"/>
				<updated>2009-06-16T07:38:31Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you just start work with the Smart Docking library. It is recommend that you to compile and play with the examples in $EIFFEL_SRC/example/docking folder. There are two examples:&lt;br /&gt;
&lt;br /&gt;
== Simple ==&lt;br /&gt;
&lt;br /&gt;
Snapshot:&lt;br /&gt;
&lt;br /&gt;
[[Image:start_with_smart_docking_library_1.png]]&lt;br /&gt;
&lt;br /&gt;
What you will find:&lt;br /&gt;
&lt;br /&gt;
The basic features of Smart Docking library.&lt;br /&gt;
*You can try to drag the zones with name `Content 1' and `Content 2', move them around and undock them.&lt;br /&gt;
*See the nice dragging feedbacks. &lt;br /&gt;
*Try to dock `Content 1' at the sides of `Content 2', or try to tab `Content 1' with `Content 2'.&lt;br /&gt;
&lt;br /&gt;
You can also play with the tool bar:&lt;br /&gt;
*Undock the tool bar.&lt;br /&gt;
*Dock the tool bar at top/bottom/left/right side of main window. &lt;br /&gt;
*Resize the floating tool bar to several rows.&lt;br /&gt;
&lt;br /&gt;
`Ctrl + Tab' is supported, too.&lt;br /&gt;
&lt;br /&gt;
== Docking Control ==&lt;br /&gt;
&lt;br /&gt;
Snapshot:&lt;br /&gt;
&lt;br /&gt;
[[Image:start_with_smart_docking_library_2.png]]&lt;br /&gt;
&lt;br /&gt;
What you will find:&lt;br /&gt;
&lt;br /&gt;
You can try almost all the features of Smart Docking library just by pressing the buttons on the control panel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====General====&lt;br /&gt;
&lt;br /&gt;
[[Image:start_with_smart_docking_library_3.png]]&lt;br /&gt;
&lt;br /&gt;
*Create Tool Content: Create a content which type is tool. &lt;br /&gt;
*Create Editor Content: Create a content which type is editor.&lt;br /&gt;
*Place Holder close: Close the place holder zone which is the grey area in the main window.&lt;br /&gt;
*Show All Indicators: When dragging a zone, should Smart Docking library show all indicators same time when use transparent rectangle style feedback?&lt;br /&gt;
*Sliding Speed: Control the speed of auto hide tab stub sliding animation.0 means no animation.&lt;br /&gt;
*Show Tab Stub Text: Should auto hide tab stubs of a group always showing all the texts even some of them not active.&lt;br /&gt;
*Navigation Dialog Shortcut: Set the accelerator of zone navigation dialog.&lt;br /&gt;
*Lock Editors: Enable/Disable docking mechanism of all editor type contents.&lt;br /&gt;
*Lock Tools: Enable/Disable docking mechanism of all tool type contents.&lt;br /&gt;
*Lock Tool Bars: Enable/Disable docking mechanism of all tool bars contents.&lt;br /&gt;
*Main Background Color: Set the background color of main window when no content docking.&lt;br /&gt;
*Save Layout: Save current whole docking layout to a file.&lt;br /&gt;
*Save Tool Layout: Save current tool type contents layout to a file.&lt;br /&gt;
*Save Editor Layout: Save current editor type contents layout to a file.&lt;br /&gt;
*Open Layout: Restore all contents docking layout from a file.&lt;br /&gt;
*Open Tool Layout: Open tool type contents docking layout from a file.&lt;br /&gt;
*Open Editor Layout: Open editor type contents docking layout from a file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Attribute====&lt;br /&gt;
&lt;br /&gt;
[[Image:start_with_smart_docking_library_4.png]]&lt;br /&gt;
&lt;br /&gt;
*Apply Changes: Set current values to target selected content.&lt;br /&gt;
*Refresh: If selected content's attribute changed, press this button to update the values showing in the control panel.&lt;br /&gt;
*Show All: Make all the contents visible.&lt;br /&gt;
*Hide: Hide current selected content.&lt;br /&gt;
*Close: Close current selected content. After close, the content is removed from Smart Docking library. It can't be visible again by pressing `Show All' button.&lt;br /&gt;
*Short title: The title which is showing on auto hide tab stub and notebook tab.&lt;br /&gt;
*Long title: The title which is showing on the top side title bar of a content.&lt;br /&gt;
*Tab tooltip: The tooltip text of content notebook book tab.&lt;br /&gt;
*Description: When showing zone navigation dialog (default invoked by `Ctrl + Tab'), we use this description texts for the content.&lt;br /&gt;
*Detail: When showing zone navigation dialog, we use this detail texts for the content.&lt;br /&gt;
*Pixmap: The icon showing on content notebook tab and auto hide tab if Gdi+ not available on Windows platform.&lt;br /&gt;
*Pixel Buffer: The icon showing on content notebook tab and auto hide tab if Gdi+ available on Windows platform.&lt;br /&gt;
*Enable Mini Tool Bar: Add/remove mini tool bar to target content. The mini tool bar is showing at the right side of content's title bar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Transform====&lt;br /&gt;
&lt;br /&gt;
[[Image:start_with_smart_docking_library_5.png]]&lt;br /&gt;
&lt;br /&gt;
*Apply Changes: Apply docking operations to target selected content.&lt;br /&gt;
*Type Editor: Set content's type to editor type.&lt;br /&gt;
*Type Tool: Set content's type to tool type.&lt;br /&gt;
*Type Place Holder: Set content's type to place holder type.&lt;br /&gt;
*Position Top: Set content's dock at top level of main window. You can select one of four directions from right side `Directions' options.&lt;br /&gt;
*Position Tab With: Set content's tab with another content. You can select another content from right side `Existing Contents', and use the `Direction' options to decide tab at left or right side.&lt;br /&gt;
*Position Relative: Set content's dock at one side of another content. You can select another content from right side `Existing Contents', and use the `Direction' options to decide dock at one side of top/bottom/left/right.&lt;br /&gt;
*Position Auto Hide: Set content's auto hide which will showing a tab stub at one side of main window. You can select the direction at the right side `Direction' options.&lt;br /&gt;
*Position Float: Undock current selected content. You can specify floating position from right side `Screen Position'.&lt;br /&gt;
*Default Editor: If current selected content is editor type content, you can set the content to default editor position which is holding by the place holder content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Tool Bar====&lt;br /&gt;
&lt;br /&gt;
[[Image:start_with_smart_docking_library_6.png]]&lt;br /&gt;
&lt;br /&gt;
*Existing ToolBars: Show all existing tool bar in this project. By default, no tool bar available.&lt;br /&gt;
*Create Tool Bar: Create a Smart Docking library tool bar and add it at the top side of main window.&lt;br /&gt;
*Add Button: Add a tool bar button to selected tool bar in the `Existing ToolBars' list. You should press `Set Top' button to update the target tool bar.&lt;br /&gt;
*Add Build-in Widget: Add any Vision2 widgets to the selected tool bar. You should press `Set Top' button to update the target tool bar.&lt;br /&gt;
*Add Toggle Button: Add a toggle button to the selected tool bar. You should press `Set Top' button to update the target tool bar.&lt;br /&gt;
*Add Build-in Resizable: Add a resizable tool bar button to the selected tool bar. A resizable tool bar item can be resized directly by dragging the end of the item. You should press `Set Top' button to update the target tool bar.&lt;br /&gt;
*Add Radio Button: Add a radio button to the selected tool bar. The button is kind of toggle button which selected state is mutually exclusive with respect to other tool bar radio buttons in a tool bar. You should press `Set Top' button to update the target tool bar.&lt;br /&gt;
*Add Separator: Add a tool bar separator to the selected tool bar. You should press `Set Top' button to update the target tool bar.&lt;br /&gt;
*Add Menu Button: Add a menu item to the selected tool bar. You should press `Set Top' button to update the target tool bar. For the moment (2007 Aug), this kind of item is not fully developed.&lt;br /&gt;
*Show: Show the selected tool bar.&lt;br /&gt;
*Hide: Hide the selected tool bar.&lt;br /&gt;
*Close: Close the selected tool bar. The tool bar will be removed from the Smart Docking library. It can't be visible again by press the `Show' button.&lt;br /&gt;
*Set title: Set the title of the selected tool bar.&lt;br /&gt;
*Set top: Set the selected tool bar docking at top/bottom/left/right side of main window.&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=What_the_Smart_Docking_library_looks_like&amp;diff=12622</id>
		<title>What the Smart Docking library looks like</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=What_the_Smart_Docking_library_looks_like&amp;diff=12622"/>
				<updated>2009-06-16T07:35:05Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: What is Smart Docking library looks like moved to What the Smart Docking library looks like: The title was misspelled&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Docking]]&lt;br /&gt;
&lt;br /&gt;
== Multiple levels of docking and nesting ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Smart_Docking_multi_level_docking.PNG]]&lt;br /&gt;
&lt;br /&gt;
'''Figure 1:''' The innermost, red rectangle has one Zone called &amp;quot;Content 1&amp;quot; which is docked to the left side of Zone &amp;quot;Content 2&amp;quot;. The green rectangle contains the &amp;quot;Content 1&amp;quot; and &amp;quot;Content 2&amp;quot; Zones. It is itself docked to the top side of Zone &amp;quot;Content 3&amp;quot;. Combining those 3 zones together, we get the blue rectangle, and this blue rectangle is docking at the left side of &amp;quot;Content 4&amp;quot; zone and so forth. As you guess, this kind of recursive docking zones can dock endlessly. &lt;br /&gt;
&lt;br /&gt;
A ''Zone'' is an special widget, managed by the Smart Docking library and contains the widgets of the client programmer. Normally it has a title at the top which is generated by the Smart Docking library automatically.&lt;br /&gt;
&lt;br /&gt;
== Auto hide zones with vertical title tabs when docking left/right ==&lt;br /&gt;
&lt;br /&gt;
[[Image:What_is_Smart_Docking_library_looks_like_auto_hide_zone.png]]&lt;br /&gt;
&lt;br /&gt;
'''Figure 2:''' This picture shows two auto hide tabs, at the top and on the left side, each belonging to - and displaying the name - of a Zone. (Right or bottom positions can also be specified). If the user hovers his pointer over the &amp;quot;Content 1&amp;quot; tab  for a short time (or click on the &amp;quot;Content 1&amp;quot; tab), the &amp;quot;Content 1&amp;quot; zone will appear as can be seen on the right side of the image. When showing the &amp;quot;Content 1&amp;quot;, there is a window sliding animation effect. Client programmers can cancel this effect after configure Smart Docking library. If end user's pointer leave the red rectangle area of right side image and the &amp;quot;Content 1&amp;quot; tab stub area for a moment. &amp;quot;Content 1&amp;quot; zone will disappear automatically. It will return to the state showing in the left side of image. So we call this feature &amp;quot;Auto Hide&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
When tab stubs stay at left/right side of main window, the titles of the hidden zone are displayed vertically.&lt;br /&gt;
&lt;br /&gt;
== Content types ==&lt;br /&gt;
&lt;br /&gt;
A Zone's content can be set of 'editor' or 'tool' type via the set_type feature of SD_CONTENT.&lt;br /&gt;
The two types have a different look (see Figure 3) and different behavior when being dragged (See next topic).&lt;br /&gt;
&lt;br /&gt;
[[Image:What_is_Smart_Docking_library_looks_like_figure_1.png]]&lt;br /&gt;
&lt;br /&gt;
== Only one editor's docking area. ==&lt;br /&gt;
&lt;br /&gt;
SD_CONTENTs which are not editor type can’t dragged into the editors area. See figure 4. Vice versa. Editor type SD_CONTENTs can't floating. See figure 5.&lt;br /&gt;
&lt;br /&gt;
[[Image:What_is_Smart_Docking_library_looks_like_figure_2.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:What_is_Smart_Docking_library_looks_like_figure_3.png]]&lt;br /&gt;
&lt;br /&gt;
== The tool bar is also dockable ==&lt;br /&gt;
&lt;br /&gt;
* Multiple tool bars in a single row.&lt;br /&gt;
&lt;br /&gt;
[[Image:What_is_Smart_Docking_library_looks_like_multi_tool_bar_in_single_row.png]]&lt;br /&gt;
&lt;br /&gt;
End user can drag the head of a tool bar. See figure 6 top side, end user is dragging the tool bar to the right side of first tool bar. The result is showing in the bottom side of figure 6.&lt;br /&gt;
&lt;br /&gt;
* Audo hide tool bar buttons when not enough space.&lt;br /&gt;
&lt;br /&gt;
[[Image:What_is_Smart_Docking_library_looks_like_auto_hide_tool_bar_button.png]]&lt;br /&gt;
&lt;br /&gt;
See figure 7. The top side shows a window which has enough width for all tool bar buttons in current row. We resize the main window to a smaller size. In the middle image, two tool bar buttons are hidden, because there is not enough space to show. The hidden buttons are &amp;quot;Bar 2 (3)&amp;quot; and &amp;quot;Bar 3 (4)&amp;quot;. At this time, if end user presses the button at the end of tool bar, a dialog with the hidden tool bar buttons will appear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Resize tool bar zone manually.&lt;br /&gt;
&lt;br /&gt;
[[Image:What_is_Smart_Docking_library_looks_like_resize_tool_bar_width_manually.png]]&lt;br /&gt;
&lt;br /&gt;
See figure 8. There is not enough space for all tool bar buttons, end user can drag the head of a tool bar (the yellow circle) to change the width of tool bars. In top window, left tool bar buttons &amp;quot;Bar 1 (3)&amp;quot; and &amp;quot;Bar 1 (4)&amp;quot; is visible, and right tool bar has invisible tool bar buttons. After end user dragging, the left tool bar width changed to a smaller size and right tool bar width changed to a larger size. So at the bottom window, left tool bar button “Bar 1 (3)” and “Bar 1 (4)” is invisible, right tool bar have enough space to show all the tool bar buttons.&lt;br /&gt;
&lt;br /&gt;
* Tool bar can float.&lt;br /&gt;
 &lt;br /&gt;
[[Image:What_is_Smart_Docking_library_looks_like_tool_bar_floating.png]]&lt;br /&gt;
&lt;br /&gt;
See figure 9. If end user drag the head a tool bar to a place except the four borders areas of main window (or end user can press Ctrl key when dragging the tool bar at borders areas), the tool bar will floating.&lt;br /&gt;
&lt;br /&gt;
* When tool bar floating, user can drag border of tool bar and resize tool bar buttons to different rows.&lt;br /&gt;
&lt;br /&gt;
[[Image:What_is_Smart_Docking_library_looks_like_resize_floating_tool_bar.png]]&lt;br /&gt;
&lt;br /&gt;
See figure 10. End user can drag any side of floating tool bar to resize the tool bar. When the size of floating tool bars changing, Smart Docking library will automatically rearrange the tool bar buttons positions.&lt;br /&gt;
&lt;br /&gt;
* Customize supported.&lt;br /&gt;
&lt;br /&gt;
[[Image:What_is_Smart_Docking_library_looks_like_tool_bar_customize.png]]&lt;br /&gt;
&lt;br /&gt;
After end user press the last button at a docking tool bar, or after end user press the drop down button at floating tool bar title bar, a pop up window with customize button will show. Press customize button, &amp;quot;Customize Toolbar&amp;quot; dialog will appear. End user can change tool bar button visibility and order in the dialog.&lt;br /&gt;
&lt;br /&gt;
* Double click on the header of a docking tool bar, it'll float to last floating position and last floating size. Or double click title bar of floating tool bar zone, it'll dock to last docked row and position.&lt;br /&gt;
&lt;br /&gt;
* Tool bar can also dock at left and right side of main window.&lt;br /&gt;
&lt;br /&gt;
== Docking feedbacks ==&lt;br /&gt;
* There are two kinds of docking feedback currently available:&lt;br /&gt;
&lt;br /&gt;
[[Image:What_is_Smart_Docking_library_looks_like_two_docking_feedback_styles.png]]&lt;br /&gt;
&lt;br /&gt;
In figure 12 top part is the style used in Windows which have per-pixel alpha blend indicators and a transparent dragging window feedback rectangle.&lt;br /&gt;
In figure 12 bottom part, is the other one used in UNIX like system or Windows when using remote desktop (terminal service). It have a half-tone rectangle to represent dragging window area. The style uses a solid border rectangle on UNIX. The pointer cursor and feedback rectangle will change base on current pointer position.&lt;br /&gt;
&lt;br /&gt;
* Client programmer can make there own docking feedbacks if they wish. &lt;br /&gt;
Client programmers can inherit from SD_HOT_ZONE, implemented a set of docking feedbacks for main window, normal docking window and tabbed docking window. Then implemented a new SD_HOT_ZONE_ABSTRACT_FACTORY.&lt;br /&gt;
&lt;br /&gt;
== Ctrl + Tab navigation ==&lt;br /&gt;
&lt;br /&gt;
[[Image:What_is_Smart_Docking_library_looks_like_ctrl_tab.png]]&lt;br /&gt;
&lt;br /&gt;
After end user pressed &amp;quot;Ctrl + Tab&amp;quot; key, a zone navigation dialog will appear. As you seen in figure 13, the zones are separate to two categories automatically. End users can see description and detail information in the dialog. After end user released &amp;quot;Ctrl&amp;quot; key, the dialog will disappear and the zone represented by selected item in the dialog will be selected and will has focus.&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=What_is_Smart_Docking_library_looks_like&amp;diff=12623</id>
		<title>What is Smart Docking library looks like</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=What_is_Smart_Docking_library_looks_like&amp;diff=12623"/>
				<updated>2009-06-16T07:35:05Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: What is Smart Docking library looks like moved to What the Smart Docking library looks like: The title was misspelled&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[What the Smart Docking library looks like]]&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Debug_generated_C_code&amp;diff=12577</id>
		<title>Debug generated C code</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Debug_generated_C_code&amp;diff=12577"/>
				<updated>2009-06-08T09:19:30Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Tell linker to add debug information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sometimes you need debug Eiffel generated C codes, this is how to.&lt;br /&gt;
&lt;br /&gt;
You should first have Visual Studio installed.&lt;br /&gt;
&lt;br /&gt;
===There are two things you need to do before debugging generated C codes===&lt;br /&gt;
&lt;br /&gt;
====Tell C compiler to add debug information====&lt;br /&gt;
&lt;br /&gt;
Change Eiffel C compilation config file &amp;quot;config.eif&amp;quot; (located at $ISE_EIFFEL\studio\config\win64\msc)&lt;br /&gt;
&lt;br /&gt;
From&lt;br /&gt;
    optimize: &amp;quot;-Ox -MT&amp;quot;&lt;br /&gt;
To&lt;br /&gt;
    optimize: &amp;quot;-Od -Zi -MT &lt;br /&gt;
&lt;br /&gt;
Then you can start C compile in Eiffel projects with debugging information.&lt;br /&gt;
&lt;br /&gt;
====Tell linker to add debug information====&lt;br /&gt;
&lt;br /&gt;
After successfully C compilation and link, open command console, change directory to W_code (or F_code, using bottom right two buttons of C Output tool is easiest way)&lt;br /&gt;
&lt;br /&gt;
In command console, run&lt;br /&gt;
&lt;br /&gt;
    link @your_project_name.lnk -DEBUG&lt;br /&gt;
&lt;br /&gt;
Please change &amp;quot;your_project_name&amp;quot; to your real project name. This will link your execution binary with debugging information. Make sure you are using Microsoft’s link.exe but not Cygwin's link.exe&lt;br /&gt;
&lt;br /&gt;
===Start debug C codes in Visual Studio===&lt;br /&gt;
&lt;br /&gt;
Now you can attach the Eiffel process in Visual Studio and debug. Don't forget to catch all exceptions in Visual Studio.&lt;br /&gt;
&lt;br /&gt;
If you want to debug Eiffel generated DLL's C codes, when coping the DLL, you must copy the &amp;quot;.pdb&amp;quot; with the DLL together since &amp;quot;.pdb&amp;quot; file contains debugging information for Visual Studio.&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Debug_generated_C_code&amp;diff=12576</id>
		<title>Debug generated C code</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Debug_generated_C_code&amp;diff=12576"/>
				<updated>2009-06-08T09:18:33Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: New page: Sometimes you need debug Eiffel generated C codes, this is how to.  You should first have Visual Studio installed.  ===There are two things you need to do before debugging generated C code...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sometimes you need debug Eiffel generated C codes, this is how to.&lt;br /&gt;
&lt;br /&gt;
You should first have Visual Studio installed.&lt;br /&gt;
&lt;br /&gt;
===There are two things you need to do before debugging generated C codes===&lt;br /&gt;
&lt;br /&gt;
====Tell C compiler to add debug information====&lt;br /&gt;
&lt;br /&gt;
Change Eiffel C compilation config file &amp;quot;config.eif&amp;quot; (located at $ISE_EIFFEL\studio\config\win64\msc)&lt;br /&gt;
&lt;br /&gt;
From&lt;br /&gt;
    optimize: &amp;quot;-Ox -MT&amp;quot;&lt;br /&gt;
To&lt;br /&gt;
    optimize: &amp;quot;-Od -Zi -MT &lt;br /&gt;
&lt;br /&gt;
Then you can start C compile in Eiffel projects with debugging information.&lt;br /&gt;
&lt;br /&gt;
====Tell linker to add debug information====&lt;br /&gt;
&lt;br /&gt;
After successfully C compilation and link, open command console, change directory to W_code (or F_code, using bottom right two buttons in C Output is easiest way)&lt;br /&gt;
&lt;br /&gt;
In command console, run&lt;br /&gt;
&lt;br /&gt;
    link @your_project_name.lnk -DEBUG&lt;br /&gt;
&lt;br /&gt;
Please change &amp;quot;your_project_name&amp;quot; to your real project name. This will link your execution binary with debugging information. Make sure you are using Microsoft’s link.exe but not Cygwin's link.exe&lt;br /&gt;
&lt;br /&gt;
===Start debug C codes in Visual Studio===&lt;br /&gt;
&lt;br /&gt;
Now you can attach the Eiffel process in Visual Studio and debug. Don't forget to catch all exceptions in Visual Studio.&lt;br /&gt;
&lt;br /&gt;
If you want to debug Eiffel generated DLL's C codes, when coping the DLL, you must copy the &amp;quot;.pdb&amp;quot; with the DLL together since &amp;quot;.pdb&amp;quot; file contains debugging information for Visual Studio.&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Automatic_Build_Scripts&amp;diff=12555</id>
		<title>Automatic Build Scripts</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Automatic_Build_Scripts&amp;diff=12555"/>
				<updated>2009-05-15T09:21:44Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* Based on geant */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Compiler]]&lt;br /&gt;
[[Category:Build Scripts]]&lt;br /&gt;
This page references different build scripts that automate the process of building EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
= Platform independent =&lt;br /&gt;
== Based on geant ==&lt;br /&gt;
* To build a working delivery out of the trunk source code&lt;br /&gt;
 svn checkout https://svn.origo.ethz.ch/eiffelstudio/trunk trunk&lt;br /&gt;
 set EIFFEL_SRC to point to this path  trunk/Src&lt;br /&gt;
 &lt;br /&gt;
Geant executable is located at $ISE_EIFFEL/gobo/spec/$ISE_PLATFORM/bin. You can simply run command &lt;br /&gt;
&lt;br /&gt;
    geant&lt;br /&gt;
&lt;br /&gt;
in top level of $EIFFEL_SRC folder, then geant will print:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
usage:&lt;br /&gt;
 geant check_setup         Check if your setup is ok for compilation &lt;br /&gt;
 geant clean               Clean up the folders&lt;br /&gt;
 geant clobber             Clean, and delete generated files in folders&lt;br /&gt;
 geant prepare             Prepare folders for development on `ec'&lt;br /&gt;
                           Note: folders=runtime, il runtime, C_library,&lt;br /&gt;
                                       library, framework.&lt;br /&gt;
 geant compile             Compile 'ec' finalized&lt;br /&gt;
 geant compile_workbench   Compile 'ec' workbench&lt;br /&gt;
 ---- &lt;br /&gt;
 geant make_delivery       Build a complete delivery &lt;br /&gt;
&lt;br /&gt;
defines:&lt;br /&gt;
  -Dcompile_dir=PATH     Build intermediate binaries in PATH&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
So all you need to do is:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
geant check_setup&lt;br /&gt;
geant prepare&lt;br /&gt;
geant make_delivery &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Warnings: &lt;br /&gt;
 The scripts are not fully tested, and may not be very well written for now&lt;br /&gt;
 (it contains unfinished code .. especially regarding setup building)&lt;br /&gt;
 On Windows:&lt;br /&gt;
    - It may have issue with dotnet (windows)&lt;br /&gt;
    - It requires: sed, tar, and bash (for runtime). You can use cygwin for that.&lt;br /&gt;
    - Extracting the Gobo library may crash &amp;quot;tar&amp;quot; ... need to check&lt;br /&gt;
 On linux:&lt;br /&gt;
    - You need to answer a few questions, mostly for runtime configuration&lt;br /&gt;
 &lt;br /&gt;
 However, the scripts are working and can be helpful to build EiffelStudio without too much trouble.&lt;br /&gt;
&lt;br /&gt;
* Note: If there are built executables in the build folder (subfolder bin/), these executables are used for the delivery instead of recompiling from source. To make sure that the Delivery is built from scratch, the 'bin/' - folder should be removed from the build directory.&lt;br /&gt;
* If ever you have feedback, or comment, or anything, you can contact Jocelyn : mailto:jfiat@eiffel.com&lt;br /&gt;
&lt;br /&gt;
= Windows =&lt;br /&gt;
&lt;br /&gt;
[[User:Barnski|Bernardo Buss]] created a set of scripts for the automated compilation of EiffelStudio under Windows.&lt;br /&gt;
* Script: http://homepage.hispeed.ch/barnski/EiffelStudio_batch_files.zip&lt;br /&gt;
* Announcement: http://origo.ethz.ch/pipermail/es-devel/2006-April/000052.html&lt;br /&gt;
'''Note:'''&amp;lt;br&amp;gt;&lt;br /&gt;
* You may need to keep &amp;quot;2_checkout_dev.bat&amp;quot; up to date by yourself according to [[Compiling_EiffelStudio#Checking_out_from_SVN|Checking out from SVN]].&lt;br /&gt;
* It is possible that the '''batchfiles only work partial''' with EiffelStudio '''newer than version 5.7.0826''' (especially parts of the compilation process may differ too much).&lt;br /&gt;
'''Update:'''&amp;lt;br&amp;gt;&lt;br /&gt;
* [[User:Philipp|Philipp Bönhof]] improved the scripts with customizable parameters which should work with the newest pre-release of EiffelStudio. Download here: http://n.ethz.ch/student/pboenhof/autotest/eiffel_win_compilation_scripts.zip (updated: 2006-09-06)&lt;br /&gt;
&lt;br /&gt;
= Linux =&lt;br /&gt;
&lt;br /&gt;
Bernd Schoeller has developed a build script vor use with .acex configuration files. it is available for download at http://se.inf.ethz.ch/people/schoeller/download/build-ec-acex&lt;br /&gt;
&lt;br /&gt;
For use with the new .ecf configuration files, please use this updated version:&amp;lt;br/&amp;gt;&lt;br /&gt;
http://n.ethz.ch/~bherlig/download/build-ec-ecf.sh&lt;br /&gt;
&lt;br /&gt;
This script requires a single checkout from the SVN repository (with the EIFFEL_SVN environment variable pointing to it). It will compile the bench or the batch compiler (you need to modify the script for the second).&lt;br /&gt;
&lt;br /&gt;
== Gentoo ==&lt;br /&gt;
Ebuilds and installation instructions can be found [http://n.ethz.ch/~philipkr/eiffel-ebuilds.html here]&lt;br /&gt;
&lt;br /&gt;
= Mac OSX =&lt;br /&gt;
Now that Mac builds are available, I guess you can use the Linux script on Mac OS, too.&lt;br /&gt;
I prefer this more simple script though:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
cd $EIFFEL_SRC/C&lt;br /&gt;
make clobber&lt;br /&gt;
./quick_configure&lt;br /&gt;
&lt;br /&gt;
cd $EIFFEL_SRC/library/event/Clib&lt;br /&gt;
finish_freezing -library&lt;br /&gt;
cd $EIFFEL_SRC/library/net/Clib&lt;br /&gt;
finish_freezing -library&lt;br /&gt;
cd $EIFFEL_SRC/library/vision2/Clib&lt;br /&gt;
finish_freezing -library&lt;br /&gt;
cd $EIFFEL_SRC/library/vision2/implementation/gtk/Clib&lt;br /&gt;
finish_freezing -library&lt;br /&gt;
&lt;br /&gt;
cd $EIFFEL_SRC/Eiffel/Ace&lt;br /&gt;
ec -config ec.ecf -target bench -finalize -c_compile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This basically automates the steps described [[Compiling_EiffelStudio|here]].&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Smart_Docking_library&amp;diff=12534</id>
		<title>Smart Docking library</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Smart_Docking_library&amp;diff=12534"/>
				<updated>2009-05-06T01:53:45Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* What it looks like */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Docking]]&lt;br /&gt;
&lt;br /&gt;
== What it looks like ==&lt;br /&gt;
[[What_is_Smart_Docking_library_looks_like|What is Smart Docking library looks like.]]&lt;br /&gt;
&lt;br /&gt;
== How to use ==&lt;br /&gt;
&lt;br /&gt;
[[Start_with_Smart_Docking_library|Start with Smart Docking library.]]&lt;br /&gt;
&lt;br /&gt;
[[how_to_use_smart_docking|How to use Smart Docking library basic features. ]]&lt;br /&gt;
&lt;br /&gt;
[[How_to_use_smart_docking_advanced|How to use Smart Docking advanced features. ]]&lt;br /&gt;
&lt;br /&gt;
== Bugs and Feedback ==&lt;br /&gt;
&lt;br /&gt;
[[Docking Feedback|Docking library bugs and feedback.  ]]&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Void-Safe_EiffelStudio_Status&amp;diff=12431</id>
		<title>Void-Safe EiffelStudio Status</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Void-Safe_EiffelStudio_Status&amp;diff=12431"/>
				<updated>2009-03-17T02:10:59Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* EiffelStudio Dependency Tree (With Void-Safe Status) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:EiffelStudio]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* The tree is specific on Windows, it is slightly different on Linux.&lt;br /&gt;
* EiffelBase is ignored, which is already void-safe.&lt;br /&gt;
* The same library is only expanded once prefixed with &amp;quot;|---&amp;quot;, &amp;quot;+---&amp;quot; for collapsed.&lt;br /&gt;
* Void-safe libraries are in green. Those in red are in progress of conversion.&lt;br /&gt;
* The batch compiler dependencies are in bold.&lt;br /&gt;
&lt;br /&gt;
== EiffelStudio Dependency Tree (With Void-Safe Status) ==&lt;br /&gt;
&lt;br /&gt;
---&amp;amp;nbsp;Libraries&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---auto_test&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''compiler_kernel'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|cli_writer}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|dotnet_loader}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|environment}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|time}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|wel}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''configuration_compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''configuration_parser'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|eiffel_identifier}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|interface_names}} [[User:Ted|Ted]]'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|encoding}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|i18n}} [[User:Ted|Ted]]'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|encoding}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|uuid}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{red|consumer}}''' [[User:Manus|Manu]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|assembly_resolver}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|dotnet_helper}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|ecchecker}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|assembly_resolver}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|logger}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''emitter_loader'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|dotnet_loader}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''parser'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''framework_file'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|consumer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_helper}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---emitter_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|gobo_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|i18n}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{red|preferences_reg}}''' [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|process}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|resources}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''ecosystem'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|consumer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_helper}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---emitter_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|i18n}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|preferences_reg}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|resources}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|patterns}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''tagging'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---ecosystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|testing}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|argument_parser}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|testing}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---command_tunnel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---compiler_kernel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---configuation_compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---configuation_gui&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---docking&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''framework'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---docking&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''pe_reader'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{red|consumer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---{{green|curl}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---debugger&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|cli_debugger}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---compiler_kernel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---framework&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---{{green|diff}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---docking&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''dotnet_assembly_information'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_helper}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|dotnet_helper}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---ecosystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---editor&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|encoding}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|lex}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|preferences_reg}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|testing}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---emitter_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|encoding}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---framework&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''framework_patterns'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---graph&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|i18n}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|lex}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---memory_analyzer&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---graph&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''parser_extension'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---pe_reader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{red|preferences_reg}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|resources}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''services_framework'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---tagging&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---testing_engine&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---auto_test&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---debugger&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---ecosystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---tagging&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|testing}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|testing}} (testing_library)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---{{green|uri_launcher}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|api_wrapper}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|threading}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|patterns}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---vision2_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''xml'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Void-Safe_EiffelStudio_Status&amp;diff=12156</id>
		<title>Void-Safe EiffelStudio Status</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Void-Safe_EiffelStudio_Status&amp;diff=12156"/>
				<updated>2009-03-04T08:04:02Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: /* EiffelStudio Dependency Tree (With Void-Safe Status) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:EiffelStudio]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* The tree is specific on Windows, it is slightly different on Linux.&lt;br /&gt;
* EiffelBase is ignored, which is already void-safe.&lt;br /&gt;
* The same library is only expanded once prefixed with &amp;quot;|---&amp;quot;, &amp;quot;+---&amp;quot; for collapsed.&lt;br /&gt;
* Void-safe libraries are in green. Those in red are in progress of conversion.&lt;br /&gt;
* The batch compiler dependencies are in bold.&lt;br /&gt;
&lt;br /&gt;
== EiffelStudio Dependency Tree (With Void-Safe Status) ==&lt;br /&gt;
&lt;br /&gt;
---&amp;amp;nbsp;Libraries&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---auto_test&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''compiler_kernel'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|cli_writer}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|dotnet_loader}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|environment}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|time}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|wel}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''configuration_compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''configuration_parser'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|eiffel_identifier}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|interface_names}} [[User:Ted|Ted]]'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|encoding}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|i18n}} [[User:Ted|Ted]]'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|encoding}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|uuid}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{red|consumer}}''' [[User:Manus|Manu]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{red|assembly_resolver}}''' [[User:Manus|Manu]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{red|ecchecker}}''' [[User:Manus|Manu]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|assembly_resolver}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''logger'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''emitter_loader'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|dotnet_loader}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''parser'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''framework_file'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|consumer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''dotnet_helper'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---emitter_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|gobo_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|i18n}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''preferences_reg'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|process}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{red|resources}}'''[[user: Larryl|Larry]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''ecosystem'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|consumer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---dotnet_helper&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---emitter_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|i18n}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---preferences_reg&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|resources}}[[user: Larryl|Larry]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''patterns'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''tagging'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---ecosystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---patterns&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|testing}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|argument_parser}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|testing}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---command_tunnel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---compiler_kernel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---configuation_compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---configuation_gui&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|cli_writer}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---docking&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''framework'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---docking&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''pe_reader'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{red|consumer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---{{green|curl}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---debugger&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|cli_debugger}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|cli_writer}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---compiler_kernel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---framework&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---{{green|diff}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---docking&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''dotnet_assembly_information'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---dotnet_helper&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---dotnet_helper&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|dotnet_loader}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---ecosystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---editor&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|encoding}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|lex}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---preferences_reg&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|testing}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|eiffel_identifier}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---emitter_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|encoding}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---framework&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''framework_patterns'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---graph&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|i18n}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|interface_names}} [[User:Ted|Ted]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|lex}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---memory_analyzer&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---graph&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''parser_extension'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---patterns&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---pe_reader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---preferences_reg&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{red|resources}}[[user: Larryl|Larry]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''services_framework'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---patterns&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---tagging&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---testing_engine&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---auto_test&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---debugger&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---ecosystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|environment}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|gobo_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---patterns&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---tagging&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|testing}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|testing}} (testing_library)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---uri_launcher&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---api_wrapper&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---patterns&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---threading&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---patterns&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---vision2_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''xml'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{red|gobo}} [[User:Jfiat|Jfiat]]&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Void-Safe_EiffelStudio_Status&amp;diff=11989</id>
		<title>Void-Safe EiffelStudio Status</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Void-Safe_EiffelStudio_Status&amp;diff=11989"/>
				<updated>2009-02-10T02:45:03Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:EiffelStudio]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* The tree is specific on Windows, it is slightly different on Linux.&lt;br /&gt;
* EiffelBase is ignored, which is already void-safe.&lt;br /&gt;
* The same library is only expanded once prefixed with &amp;quot;|---&amp;quot;, &amp;quot;+---&amp;quot; for collapsed.&lt;br /&gt;
* Void-safe libraries are in green.&lt;br /&gt;
* The batch compiler dependencies are in bold.&lt;br /&gt;
&lt;br /&gt;
== EiffelStudio Dependency Tree (With Void-Safe Status) ==&lt;br /&gt;
&lt;br /&gt;
---&amp;amp;nbsp;Libraries&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---auto_test&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''compiler_kernel'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''cli_writer'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''dotnet_loader'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''environment'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''gobo'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|time}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|wel}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''configuration_compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''configuration_parser'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''eiffel_identifier'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---'''{{green|base_extension}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''interface_names'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|encoding}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''i18n'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|uuid}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''consumer'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''assembly_resolver'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''ecchecker'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---assembly_resolver&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''logger'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''emitter_loader'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''dotnet_loader'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''parser'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---eiffel_identifier&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---consumer&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''dotnet_helper'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---dotnet_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---eiffel_identifier&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---emitter_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''gobo_extension'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---i18n&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---interface_names&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''preferences_reg'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|process}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''resources'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''ecosystem'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---cli_writer&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---consumer&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---dotnet_helper&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---dotnet_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---eiffel_identifier&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---emitter_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---i18n&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---interface_names&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---preferences_reg&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---resources&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''patterns'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''tagging'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---ecosystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---patterns&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''testing'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|argument_parser}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---testing&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---cli_writer&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---command_tunnel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---compiler_kernel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---configuation_compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---configuation_gui&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---cli_writer&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---docking&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---eiffel_identifier&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''framework'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---docking&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---interface_names&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---interface_names&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''pe_reader'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---dotnet_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---consumer&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---{{green|curl}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---debugger&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---cli_debugger&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---cli_writer&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---dotnet_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---cli_writer&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---compiler_kernel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---dotnet_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---eiffel_identifier&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---framework&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---interface_names&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---diff&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---docking&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''dotnet_assembly_information'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---dotnet_helper&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---dotnet_helper&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---dotnet_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---ecosystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---editor&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|encoding}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|lex}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---preferences_reg&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---testing&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---eiffel_identifier&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---emitter_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|encoding}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---framework&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''framework_patterns'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---gobo_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---graph&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---i18n&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---interface_names&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|lex}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---memory_analyzer&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---graph&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''parser_extension'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---patterns&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---pe_reader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---preferences_reg&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---resources&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''services_framework'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---patterns&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---tagging&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---testing_engine&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---auto_test&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---debugger&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---ecosystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---patterns&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---tagging&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---testing&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---testing (testing_library)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---uri_launcher&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---api_wrapper&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---bridge&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---threading&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---bridge&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---vision2_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''xml'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Void-Safe_EiffelStudio_Status&amp;diff=11988</id>
		<title>Void-Safe EiffelStudio Status</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Void-Safe_EiffelStudio_Status&amp;diff=11988"/>
				<updated>2009-02-10T02:43:14Z</updated>
		
		<summary type="html">&lt;p&gt;Larryl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:EiffelStudio]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* The tree is specific on Windows, it is slightly different on Linux.&lt;br /&gt;
* EiffelBase is ignored, which is already void-safe.&lt;br /&gt;
* The same library is only expanded once prefixed with &amp;quot;|---&amp;quot;, &amp;quot;+---&amp;quot; for collapsed.&lt;br /&gt;
* Void-safe libraries are in green.&lt;br /&gt;
* The batch compiler dependencies are in bold.&lt;br /&gt;
&lt;br /&gt;
== EiffelStudio Dependency Tree (With Void-Safe Status) ==&lt;br /&gt;
&lt;br /&gt;
---&amp;amp;nbsp;Libraries&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---auto_test&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''compiler_kernel'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''cli_writer'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''dotnet_loader'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''environment'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''gobo'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|time}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|wel}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''configuration_compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''configuration_parser'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''eiffel_identifier'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''interface_names'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|encoding}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''i18n'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|uuid}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''consumer'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''assembly_resolver'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''ecchecker'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---assembly_resolver&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''logger'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''emitter_loader'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''dotnet_loader'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''parser'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---eiffel_identifier&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---consumer&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''dotnet_helper'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---dotnet_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---eiffel_identifier&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---emitter_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''gobo_extension'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---i18n&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---interface_names&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''preferences_reg'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''{{green|process}}'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''resources'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''ecosystem'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---cli_writer&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---consumer&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---dotnet_helper&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---dotnet_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---eiffel_identifier&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---emitter_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---i18n&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---interface_names&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---preferences_reg&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---resources&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''patterns'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''tagging'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---ecosystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---patterns&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''testing'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|argument_parser}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---testing&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---cli_writer&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---command_tunnel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---compiler_kernel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---configuation_compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---configuation_gui&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---cli_writer&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---docking&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---eiffel_identifier&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''framework'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|base_extension}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---docking&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---interface_names&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---interface_names&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---'''pe_reader'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---dotnet_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---consumer&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---{{green|curl}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---debugger&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---cli_debugger&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---cli_writer&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---dotnet_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---cli_writer&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---compiler_kernel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---dotnet_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---eiffel_identifier&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---framework&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---interface_names&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---diff&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---docking&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''dotnet_assembly_information'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---dotnet_helper&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---dotnet_helper&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---dotnet_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---ecosystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---editor&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|encoding}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---{{green|lex}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---preferences_reg&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---testing&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---eiffel_identifier&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---emitter_loader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|encoding}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---framework&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''framework_patterns'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---gobo_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---graph&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---i18n&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---interface_names&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|lex}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---memory_analyzer&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---graph&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''parser_extension'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---patterns&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---pe_reader&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---preferences_reg&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---resources&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''services_framework'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---patterns&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---tagging&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---testing_engine&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---auto_test&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---compiler&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---configuration_parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---debugger&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---ecosystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---environment&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|net}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---parser_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---patterns&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---tagging&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---testing&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---testing (testing_library)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|time}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---uri_launcher&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---api_wrapper&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---bridge&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|---threading&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|thread}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---bridge&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---{{green|process}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|uuid}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---vision2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---vision2_extension&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
+---{{green|wel}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|---'''xml'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;+---gobo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Larryl</name></author>	</entry>

	</feed>