<?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=Patrickr</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=Patrickr"/>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/Special:Contributions/Patrickr"/>
		<updated>2026-04-29T16:53:32Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Persistence_unified&amp;diff=11291</id>
		<title>Talk:Persistence unified</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Persistence_unified&amp;diff=11291"/>
				<updated>2008-07-16T17:02:45Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I like the fact that object versioning is being considered, this consumes a lot of my time with current serialization methods in other languages.&lt;br /&gt;
&lt;br /&gt;
One question I have though is does the actual persistance mechanism have to be done by the programmer at all?  Right now there is a type of &amp;quot;persistance&amp;quot; already in the language; the compiler determines how an object should be &amp;quot;blobbed&amp;quot; in to system memory.  A binary serialization could essentially be &amp;quot;blobbing&amp;quot; the exact same memory representation of the object to disk and when it is reloaded, swizzling the pointers to the new memory locations.  The compiler could determine the way to &amp;quot;blob&amp;quot; the object in to an XML format breaking all objects down to types handled built in by the compiler; string versions of integers, reals, strings directly copied out, SPECIAL in a hex string format, etc.&lt;br /&gt;
&lt;br /&gt;
This way when the system is compiled, a feature of ANY could be generated by the compiler itself and systems wouldn't have to be modified at all.&lt;br /&gt;
&lt;br /&gt;
Is this approach insufficient?&lt;br /&gt;
--[[User:Clemahieu|Clemahieu]] 18:18, 4 October 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What about concurrency with persistence? What if someone access information and another one updates it at the same time?&lt;br /&gt;
--[[User:Patrickr|Patrickr]] 10:02, 16 July 2008 (PDT)&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Environment_Roadmap&amp;diff=8507</id>
		<title>Environment Roadmap</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Environment_Roadmap&amp;diff=8507"/>
				<updated>2007-05-18T17:23:52Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: /* UI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:EiffelStudio]]&lt;br /&gt;
&lt;br /&gt;
A [http://eiffelsoftware.origo.ethz.ch/index.php/Language_road_map separate page] gives the detailed roadmap for implementation of the '''full ISO/ECMA Eiffel standard'''.&lt;br /&gt;
&lt;br /&gt;
Roadmap information for EiffelStudio releases:&lt;br /&gt;
&lt;br /&gt;
==EiffelStudio 6.2 (2nd quarter 2008)==&lt;br /&gt;
* Attached mechanism&lt;br /&gt;
* Non-conforming inheritance&lt;br /&gt;
* Proper semantics of feature replication&lt;br /&gt;
* Ability to download libraries/applications from a website directly from EiffelStudio (see [[Configuration_Discovery|Discovering Configuration Files]])&lt;br /&gt;
&lt;br /&gt;
===Ports===&lt;br /&gt;
* Mac native support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==EiffelStudio 6.1 (4th quarter 2007)==&lt;br /&gt;
===UI===&lt;br /&gt;
* Customizable menus and toolbars&lt;br /&gt;
===Library===&lt;br /&gt;
* Resource library&lt;br /&gt;
===Compiler===&lt;br /&gt;
* Progress bar for degree 6, C compilation and automatic precompilation&lt;br /&gt;
* Exception as object&lt;br /&gt;
* Object test syntax support&lt;br /&gt;
* Reading of UTF-8 Eiffel source file&lt;br /&gt;
&lt;br /&gt;
===Internal===&lt;br /&gt;
* Reduce size of C generated in workbench mode&lt;br /&gt;
&lt;br /&gt;
==EiffelStudio 6.0 (2nd quarter 2007)==&lt;br /&gt;
===UI===&lt;br /&gt;
* &amp;lt;del&amp;gt;Improved docking facilities in EiffelStudio to fully control the layout of EiffelStudio&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Configurable pick-and-drop: user can choose between a contextual menu or pick-and-drop within the EiffelStudio environment&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Internationalization support&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Customizable shortcuts&amp;lt;/del&amp;gt;&lt;br /&gt;
* Keyboard support for code browsing/activation - Esc to go to context reference in editor, F9 to set a breakpoint, etc.&lt;br /&gt;
&lt;br /&gt;
===Compiler===&lt;br /&gt;
* &amp;lt;del&amp;gt;Warning/error for changed environment variables used in a project configuration file&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;&amp;quot;Hidden&amp;quot; clusters in libraries, clusters that are not accessible if the library is used (like libraries in libraries are not accessible).&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Clean up &amp;quot;inheritance&amp;quot; rules for project settings (e.g. assertion levels of libraries)&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Addition of binary and octal notation for manifest integers&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Internal===&lt;br /&gt;
* &amp;lt;del&amp;gt;Clean up delivery, names of tools, directory layout.&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Get rid of *.wb files and store this in the user settings.&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EiffelStudio 5.7 (4th quarter 2006)==&lt;br /&gt;
* This is the first open source version of EiffelStudio. Look at the [http://eiffelsoftware.origo.ethz.ch/index.php/EiffelStudio_5.7_Releases release notes of 5.7] for more information.&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Compiling_EiffelStudio&amp;diff=8486</id>
		<title>Compiling EiffelStudio</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Compiling_EiffelStudio&amp;diff=8486"/>
				<updated>2007-05-15T04:54:17Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Compiler]]&lt;br /&gt;
[[Category:EiffelStudio]]&lt;br /&gt;
&lt;br /&gt;
== Installing EiffelStudio ==&lt;br /&gt;
&lt;br /&gt;
To compile EiffelStudio, you need an already working EiffelStudio compiler on your machine. The current source tree '''requires at least version 6.0''' of EiffelStudio. You can download it from http://eiffelsoftware.origo.ethz.ch/downloads/builds/. Read the [http://docs.eiffel.com/eiffelstudio/installation/index.html existing documentation] to install EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' on Windows you will need the Microsoft C compiler to compile Eiffel Studio. How to install the free version of the Microsoft C compiler: [[Installing Microsoft C compiler]]. It is not possible to compile EiffelStudio with the free Borland compiler.&lt;br /&gt;
&lt;br /&gt;
===Compilation methods===&lt;br /&gt;
Currently there are two compilation methods. &lt;br /&gt;
* You can use one of the [[Automatic Build Scripts]]&lt;br /&gt;
* Alternatively you can compile EiffelStudio from scratch following the instructions in this document.&lt;br /&gt;
&lt;br /&gt;
If possible, use the [[Automatic Build Scripts]] and report any errors to the [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-devel developer mailing list].&lt;br /&gt;
&lt;br /&gt;
==Extracting source code==&lt;br /&gt;
&lt;br /&gt;
===Checking out from SVN===&lt;br /&gt;
#Point the environment variables called '''EIFFEL_SRC''' and '''ISE_LIBRARY''' to the directory where you want to compile EiffelStudio&amp;lt;br&amp;gt;Usually we use the '''XXdev''' convention for this directory name - where XX is the version number from the current developped version of the compiler.&lt;br /&gt;
#Make sure that '''ISE_EIFFEL''', '''ISE_PLATFORM''' and '''ISE_C_COMPILER''' (on windows only) are properly defined&lt;br /&gt;
#Perform the following checkout procedures:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DOS'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set SVNURL=https://eiffelsoftware.origo.ethz.ch/svn/es&lt;br /&gt;
svn co %SVNURL%/trunk/Src 60dev&lt;br /&gt;
svn co %SVNURL%/trunk/Delivery 60dev/Delivery&lt;br /&gt;
svn co %SVNURL%/trunk/Documentation 60dev/Documentation&lt;br /&gt;
svn co %SVNURL%/trunk/free_add_ons 60dev/free_add_ons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bash'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SVNURL=https://eiffelsoftware.origo.ethz.ch/svn/es&lt;br /&gt;
svn co $SVNURL/trunk/Src 60dev&lt;br /&gt;
svn co $SVNURL/trunk/Delivery 60dev/Delivery&lt;br /&gt;
svn co $SVNURL/trunk/Documentation 60dev/Documentation&lt;br /&gt;
svn co $SVNURL/trunk/free_add_ons 60dev/free_add_ons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To update the sourcefiles to the latest revision, perform the following steps:&lt;br /&gt;
&lt;br /&gt;
'''Bash and DOS'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd 60dev&lt;br /&gt;
svn up&lt;br /&gt;
svn up free_add_ons&lt;br /&gt;
svn up Delivery&lt;br /&gt;
svn up Documentation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compiling C libraries==&lt;br /&gt;
&lt;br /&gt;
===Compiling run-time on Windows===&lt;br /&gt;
&lt;br /&gt;
Before being able to compile the run-time, you need to ensure that '''bash''' is in your '''PATH'''. You can download it from [http://www.cygwin.com http://www.cygwin.com]. Also make sure, that the path to the binaries of your c compiler is placed before the path to cygwin or else the wrong linker will be used. Once done you can do:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DOS'''&lt;br /&gt;
&amp;lt;pre&amp;gt;cd %EIFFEL_SRC%/C&lt;br /&gt;
configure [win32|win64] [b|m]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bash'''&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EIFFEL_SRC/C&lt;br /&gt;
./configure.bat [win32|win64] [b|m]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first argument indicated whether you are compiling the run-time for 32 or 64 bits. The second one is to tell which C compiler will be used. For now only `b' (Borland), `m' (Microsoft) and `m6' (for those forced to use Microsoft VC++ 6.0) are officially supported. We also informally support `g' (GCC) and `l' (LCC).&lt;br /&gt;
&lt;br /&gt;
On Windows 32 bits to clean up all the generated files '''(including the library files needed by EiffelStudio)''' it suffices to do:&lt;br /&gt;
&lt;br /&gt;
'''DOS'''&lt;br /&gt;
&amp;lt;pre&amp;gt;configure clean&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Bash'''&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure.bat clean&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Compiling run-time on Unix===&lt;br /&gt;
&lt;br /&gt;
The command is simply:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EIFFEL_SRC/C&lt;br /&gt;
./quick_configure&amp;lt;/pre&amp;gt;&lt;br /&gt;
This requires that '''ISE_PLATFORM''' is properly defined. The `quick_configure' script will look for the file CONFIGS/$ISE_PLATFORM and use it to extract the platform specific information to compile the run-time. If not found then an error will be reported.&lt;br /&gt;
&lt;br /&gt;
To clean up the generated files '''including the library files needed by EiffelStudio''':&lt;br /&gt;
&amp;lt;pre&amp;gt;make clobber&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Compiling C code from libraries===&lt;br /&gt;
&lt;br /&gt;
Here is the list of commands to compile all required C libraries on Windows:&lt;br /&gt;
&lt;br /&gt;
'''DOS'''&lt;br /&gt;
&amp;lt;pre&amp;gt;cd %EIFFEL_SRC%\library\net\Clib&lt;br /&gt;
make_msc.bat&lt;br /&gt;
cd %EIFFEL_SRC%\library\vision2\Clib&lt;br /&gt;
make_msc.bat&lt;br /&gt;
cd %EIFFEL_SRC%\library\wel\Clib&lt;br /&gt;
make_msc.bat&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Bash'''&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EIFFEL_SRC/library/net/Clib&lt;br /&gt;
./make_msc.bat&lt;br /&gt;
cd $EIFFEL_SRC/library/vision2/Clib&lt;br /&gt;
./make_msc.bat&lt;br /&gt;
cd $EIFFEL_SRC/library/wel/Clib&lt;br /&gt;
./make_msc.bat&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Unix it is slightly different:&lt;br /&gt;
&amp;lt;pre&amp;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&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure that '''ISE_EIFFEL''' is set correctly to your current &amp;quot;EiffelStudio&amp;quot; installation!&lt;br /&gt;
&lt;br /&gt;
===Compiling C code from C_library===&lt;br /&gt;
&lt;br /&gt;
This is only required on Windows to read PNG file. On Unix, this is not required because it is included in GTK+2.4. Simply do the following:&lt;br /&gt;
&lt;br /&gt;
'''DOS'''&lt;br /&gt;
&amp;lt;pre&amp;gt;cd %EIFFEL_SRC%/C_library/zlib&lt;br /&gt;
make_msc.bat&lt;br /&gt;
cd %EIFFEL_SRC%/C_library/libpng&lt;br /&gt;
make_msc.bat&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Bash'''&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EIFFEL_SRC/C_library/zlib&lt;br /&gt;
./make_msc.bat&lt;br /&gt;
cd $EIFFEL_SRC/C_library/libpng&lt;br /&gt;
./make_msc.bat&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Compiling C code from compiler===&lt;br /&gt;
&lt;br /&gt;
This is only required on Windows as this C code is a tiny wrapper around the Microsoft C++ API to generate and to debug .NET code.&lt;br /&gt;
&lt;br /&gt;
To compile it, you first need to install the Microsoft .NET SDK. You can download it from their website.&lt;br /&gt;
&lt;br /&gt;
After installing it, you need to update your '''LIB''' and '''INCLUDE''' environment variable to include the path the lib and include directory of the .NET Framework SDK.&lt;br /&gt;
&lt;br /&gt;
Once properly installed, you can do:&lt;br /&gt;
&lt;br /&gt;
'''DOS'''&lt;br /&gt;
&amp;lt;pre&amp;gt;cd %EIFFEL_SRC%/framework/cli_writer/Clib&lt;br /&gt;
nmake&lt;br /&gt;
cd %EIFFEL_SRC%/framework/cli_debugger/Clib&lt;br /&gt;
nmake&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Bash'''&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EIFFEL_SRC/framework/cli_writer/Clib&lt;br /&gt;
nmake&lt;br /&gt;
cd $EIFFEL_SRC/framework/cli_debugger/Clib&lt;br /&gt;
nmake&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compiling EiffelStudio==&lt;br /&gt;
&lt;br /&gt;
Now that we have taken care of the C code compilation we can compile the compiler. We assume that '''ec''' is in your path.&lt;br /&gt;
&lt;br /&gt;
The configuration file of the compiler contains two active targets:&lt;br /&gt;
* '''batch''': for the command line compiler.&lt;br /&gt;
* '''bench''': for the graphical compiler, aka EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
Go to $EIFFEL_SRC/Eiffel/Ace and type the following command and replace ''target_name'' with either '''batch''' or '''bench'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ec -config ec.ecf -target target_name -c_compile&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Gotcha===&lt;br /&gt;
Also, if you encounter problems with your self-compiled version of EiffelStudio, you might try to compile it with GCC 3.x. Version 4 of GCC has a slight change in semantics and EiffelStudio has not been updated. You can see the change in behavior in the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[c,N]&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int a;&lt;br /&gt;
int b;&lt;br /&gt;
int *pointer;&lt;br /&gt;
&lt;br /&gt;
int foo()&lt;br /&gt;
{&lt;br /&gt;
  pointer = &amp;amp;b;&lt;br /&gt;
  return 4;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char** argv) &lt;br /&gt;
{&lt;br /&gt;
  a = 3;&lt;br /&gt;
  b = 0;&lt;br /&gt;
&lt;br /&gt;
  pointer = &amp;amp;a;&lt;br /&gt;
&lt;br /&gt;
  *pointer = foo();&lt;br /&gt;
&lt;br /&gt;
  printf (&amp;quot;You are using GCC %d.%d\n&amp;quot;,a,b);&lt;br /&gt;
  return 0;  &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mac OS X specific===&lt;br /&gt;
&lt;br /&gt;
Get a mac binary from [[EiffelOnMac|here]], then follow the instructions for unix.&lt;br /&gt;
&lt;br /&gt;
==Launching the Compiler==&lt;br /&gt;
&lt;br /&gt;
There are two ways of launching the compiler:&lt;br /&gt;
# Command line compiler: add the following arguments '''-config path_to_config_file.ecf'''. This will compile the project represented by `path_to_config_file.ecf'&lt;br /&gt;
# Graphical compiler (aka EiffelStudio): add the following argument '''-gui'''.&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Valgrind_Converter&amp;diff=7420</id>
		<title>Valgrind Converter</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Valgrind_Converter&amp;diff=7420"/>
				<updated>2007-02-16T10:27:23Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
== Overview ==&lt;br /&gt;
The valgrind converter allows to convert the translated C names in valgrind/callgrind files back to the original Eiffel names.&lt;br /&gt;
&lt;br /&gt;
== Command-line Options ==&lt;br /&gt;
To see the list of available command-line options and their help information, use the '/?' switch.&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
This tool was developed and maintained by [[User:Patrickr|Patrickr]].&lt;br /&gt;
&lt;br /&gt;
Location: https://eiffelsoftware.origo.ethz.ch/svn/contrib/users/patrickr/valgrind_converter&lt;br /&gt;
&lt;br /&gt;
== Change Log ==&lt;br /&gt;
'''[[User:Patrickr|Patrickr]] 14:45, 14 February 2007 (CET)'''&lt;br /&gt;
*Initial Upload&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Compile_All_Tool&amp;diff=7418</id>
		<title>Compile All Tool</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Compile_All_Tool&amp;diff=7418"/>
				<updated>2007-02-14T13:45:57Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: reverted back accidental changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
== Overview ==&lt;br /&gt;
The Compile All Tool can be used to check if all targets in a directory compile. It recursively scans all directories and looks for files with a .ecf extension. For each configuration file all targets are first clean melted, then frozen and at the end finalized.&lt;br /&gt;
&lt;br /&gt;
== Command-line Options ==&lt;br /&gt;
To see the list of available command-line options and their help information, use the '/?' switch.&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
This tool was developed and maintained by [[User:Patrickr|Patrickr]].&lt;br /&gt;
&lt;br /&gt;
Location: https://origo.ethz.ch/eiffelsoftware/es/trunk/Src/tools/compile_all &lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
=== Checking everything in the trunk still compiles ===&lt;br /&gt;
To check if everything in the trunk still compiles, use the following setup:&lt;br /&gt;
&lt;br /&gt;
#create a directory where to put the EIFGENs into, e.g. C:\compile&lt;br /&gt;
#compile_all -l C:\60dev -eifgen C:\compile -ignore C:\60dev\tools\compile_all\baseline\trunk.ini -no_clean -no_c_compile -no_freeze -no_finalize&lt;br /&gt;
&lt;br /&gt;
== Change Log ==&lt;br /&gt;
'''[[User:Patrickr|Patrickr]] 20:20, 15 November 2006 (CET)'''&lt;br /&gt;
&lt;br /&gt;
*New Feature: Added possibility to only do some compilation modes&lt;br /&gt;
*New Feature: Added possibility to specify a compilation directory&lt;br /&gt;
*New Feature: Ignore file for files/targets to ignore&lt;br /&gt;
&lt;br /&gt;
'''[[User:Patrickr|Patrickr]] 01:32, 10 October 2006 (CEST)'''&lt;br /&gt;
*Initial Upload&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Valgrind_Converter&amp;diff=7417</id>
		<title>Valgrind Converter</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Valgrind_Converter&amp;diff=7417"/>
				<updated>2007-02-14T13:45:22Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: Initial version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
== Overview ==&lt;br /&gt;
The Compile All Tool can be used to check if all targets in a directory compile. It recursively scans all directories and looks for files with a .ecf extension. For each configuration file all targets are first clean melted, then frozen and at the end finalized.&lt;br /&gt;
&lt;br /&gt;
== Command-line Options ==&lt;br /&gt;
To see the list of available command-line options and their help information, use the '/?' switch.&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
This tool was developed and maintained by [[User:Patrickr|Patrickr]].&lt;br /&gt;
&lt;br /&gt;
Location: https://eiffelsoftware.origo.ethz.ch/svn/contrib/users/patrickr/valgrind_converter&lt;br /&gt;
&lt;br /&gt;
== Change Log ==&lt;br /&gt;
'''[[User:Patrickr|Patrickr]] 14:45, 14 February 2007 (CET)'''&lt;br /&gt;
*Initial Upload&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Compile_All_Tool&amp;diff=7416</id>
		<title>Compile All Tool</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Compile_All_Tool&amp;diff=7416"/>
				<updated>2007-02-14T13:45:00Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
== Overview ==&lt;br /&gt;
The Compile All Tool can be used to check if all targets in a directory compile. It recursively scans all directories and looks for files with a .ecf extension. For each configuration file all targets are first clean melted, then frozen and at the end finalized.&lt;br /&gt;
&lt;br /&gt;
== Command-line Options ==&lt;br /&gt;
To see the list of available command-line options and their help information, use the '/?' switch.&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
This tool was developed and maintained by [[User:Patrickr|Patrickr]].&lt;br /&gt;
&lt;br /&gt;
Location: https://eiffelsoftware.origo.ethz.ch/svn/contrib/users/patrickr/valgrind_converter&lt;br /&gt;
&lt;br /&gt;
== Change Log ==&lt;br /&gt;
'''[[User:Patrickr|Patrickr]] 14:45, 14 February 2007 (CET)'''&lt;br /&gt;
*Initial Upload&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=User:Patrickr&amp;diff=7415</id>
		<title>User:Patrickr</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=User:Patrickr&amp;diff=7415"/>
				<updated>2007-02-14T10:03:57Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: /* Contrib */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:People]]&lt;br /&gt;
==Contact==&lt;br /&gt;
*Mail: [mailto:patrickr@eiffel.com patrickr@eiffel.com]&lt;br /&gt;
*GMT-8 (Santa Barbara)&lt;br /&gt;
*Skype: patrickruckstuhl&lt;br /&gt;
&lt;br /&gt;
==Current projects==&lt;br /&gt;
&lt;br /&gt;
==Past projects==&lt;br /&gt;
*Diff Library&lt;br /&gt;
*[[Refactoring|Refactoring facilities for EiffelStudio]]&lt;br /&gt;
*[[LinuxUnixLayout|Installation layout on Unix/Linux]]&lt;br /&gt;
*[[Configuration|New configuration system]]&lt;br /&gt;
&lt;br /&gt;
==Contrib==&lt;br /&gt;
https://eiffelsoftware.origo.ethz.ch/svn/contrib/users/patrickr&lt;br /&gt;
&lt;br /&gt;
*eiffel: a bash autocompletion script for the ec command line command&lt;br /&gt;
*valgrind_converter: a tool that converts the c names in a valgrind/callgrind file back to Eiffel names&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=User:Patrickr&amp;diff=7414</id>
		<title>User:Patrickr</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=User:Patrickr&amp;diff=7414"/>
				<updated>2007-02-14T10:03:14Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: /* Past projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:People]]&lt;br /&gt;
==Contact==&lt;br /&gt;
*Mail: [mailto:patrickr@eiffel.com patrickr@eiffel.com]&lt;br /&gt;
*GMT-8 (Santa Barbara)&lt;br /&gt;
*Skype: patrickruckstuhl&lt;br /&gt;
&lt;br /&gt;
==Current projects==&lt;br /&gt;
&lt;br /&gt;
==Past projects==&lt;br /&gt;
*Diff Library&lt;br /&gt;
*[[Refactoring|Refactoring facilities for EiffelStudio]]&lt;br /&gt;
*[[LinuxUnixLayout|Installation layout on Unix/Linux]]&lt;br /&gt;
*[[Configuration|New configuration system]]&lt;br /&gt;
&lt;br /&gt;
==Contrib==&lt;br /&gt;
https://eiffelsoftware.origo.ethz.ch/svn/contrib/users/patrickr&lt;br /&gt;
&lt;br /&gt;
*eiffel: a bash autocompletion script for the ec command line command&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=User:Patrickr&amp;diff=7413</id>
		<title>User:Patrickr</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=User:Patrickr&amp;diff=7413"/>
				<updated>2007-02-14T10:02:52Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: /* Current projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:People]]&lt;br /&gt;
==Contact==&lt;br /&gt;
*Mail: [mailto:patrickr@eiffel.com patrickr@eiffel.com]&lt;br /&gt;
*GMT-8 (Santa Barbara)&lt;br /&gt;
*Skype: patrickruckstuhl&lt;br /&gt;
&lt;br /&gt;
==Current projects==&lt;br /&gt;
&lt;br /&gt;
==Past projects==&lt;br /&gt;
*Diff Library&lt;br /&gt;
*[[Refactoring|Refactoring facilities for EiffelStudio]]&lt;br /&gt;
&lt;br /&gt;
==Contrib==&lt;br /&gt;
https://eiffelsoftware.origo.ethz.ch/svn/contrib/users/patrickr&lt;br /&gt;
&lt;br /&gt;
*eiffel: a bash autocompletion script for the ec command line command&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.0_Releases&amp;diff=7294</id>
		<title>EiffelStudio 6.0 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.0_Releases&amp;diff=7294"/>
				<updated>2007-01-31T21:45:04Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: /* Bug fixes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.0.x Releases=&lt;br /&gt;
&lt;br /&gt;
==6.0.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release.&lt;br /&gt;
===New features===&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* runtime: {{Red|Fixed a memory corruption which could occur when performing a deep_twin on an object whose graph contains a TUPLE object. See test#tuple006.}}&lt;br /&gt;
* studio: Fixed bug#11848 and bug#11939 related to the `Debugging Options' dialog which could randomly crash (related to test#tuple006 issue).&lt;br /&gt;
* EiffelStore: Fixed ODBC on Linux.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==6.0.6.6309 (January 27th 2007)==&lt;br /&gt;
===New features===&lt;br /&gt;
* studio: Finished internationalizing starting dialog, wizards.&lt;br /&gt;
* studio: {{red|Integrated Smart Docking library.}}&lt;br /&gt;
* studio: {{red|Integrated tab editor mechanism.}}&lt;br /&gt;
* studio: Added preference &amp;quot;Maximum processor usage&amp;quot; to dictate the maximum number of processors/cores to use when compile c-code.&lt;br /&gt;
* EiffelWizard: Introduced i18n library to make it possible to display in different languages.&lt;br /&gt;
* compiler: .NET Enums are can be automatically converted to INTEGERs&lt;br /&gt;
* compiler: indexing tags ''interface_metadata'' and ''class_metadata'' are supported on feature level like this is done on class level and allow to specify custom attributes for associated methods only in interface type or only in implementation type.&lt;br /&gt;
* compiler: Static access on external routines is allowed even if not marked frozen (this simply applies a relaxed rule that was adopted by ECMA).&lt;br /&gt;
* debugger: dropping feature or class stones on breakpoints tool to add related breakpoint&lt;br /&gt;
* debugger: enhanced breakpoint mechanism by adding print message, hit count (condition), and provide &amp;quot;Is True&amp;quot; and &amp;quot;Has Changed&amp;quot; condition.&lt;br /&gt;
* studio: Integrated encoding library and internationalized part of batch compiler.&lt;br /&gt;
* base: Added facilities to read/write REAL_32 and REAL_64 values in big and little endian format in MANAGED_POINTER&lt;br /&gt;
* net: {{red|Updated reading routines of EiffelNet so that for all basic types they would read all the required bytes, not just stop after the first reading. This is important as in some very bad network situation or if you have some signals you could mess up the reading by only reading half of the expected bytes.}}&lt;br /&gt;
&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* studio: Fixed bug#11760 that replacing on empty result crashed es.&lt;br /&gt;
* studio: Auto-complete members for open target agents have been corrected. bug#11767.&lt;br /&gt;
* studio: Fixed bug#11772 that a crash occurred while renaming clusters in property tool.&lt;br /&gt;
* compiler: Fixed bug causing test#dotnet046 to fail, now functions that are .NET properties can be called and executed from client code.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* studio: Added new docking feedback indicators.&lt;br /&gt;
* compiler: added conversion of TYPED_POINTER to POINTER before reattachment to reference entity so that the behaviour is the same in classic and .NET modes&lt;br /&gt;
* compiler: All versioned COM import interfaces now have versioned interface member names based on the trailing version number of the interface name, as this meta information is not available in any other way. This greatly improves the versioned names and makes implementing interfaces much easier.&lt;br /&gt;
* compiler: The unique keyword will yield a syntax warning if enabled.&lt;br /&gt;
* debugger: improved cosmetic of debugger's exception handling dialog&lt;br /&gt;
* base: Changed INTERNAL so that it does not have the `is_pre_ecma_mapping_disabled' attribute. If you were setting it to True, you should instead create an instance of ECMA_INTERNAL (fixes bug#11792).&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
*debugger: refactored breakpoints and exceptions processing for easier integration of other projects on debugger.&lt;br /&gt;
*compiler: updated compiler to compile FreeELKS library, however it cannot yet be executed.&lt;br /&gt;
&lt;br /&gt;
==6.0.65740 (December 25th 2006)==&lt;br /&gt;
===New features===&lt;br /&gt;
* debugger: console based debugger is now working for classic, dotnet, on windows and unices (-debug or via -loop : still experimental)&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* compiler: fixed a bug in .NET consumer that can cause some assemblies to be consume infinitely.&lt;br /&gt;
* compiler: fixed a .NET bug that prevents System.Windows.Forms.Panel from being compiled correct and subsequently causing a compilation to fail, due to incorrect an mapped inherit property and assigner. This addresses test#dotnet043.&lt;br /&gt;
* compiler: Fixed bug#11758 for eweasel test#incr279, where the compiler would crash when generating the call to '''Precursor''' when both the current class and the parent class had their number of formal generics changed.&lt;br /&gt;
* compiler: Fixed bug#11766 for eweasel test#term146 and test#incr129 where the compiler would crash at degree 4 when checking the conformance of a feature, and the signature involves a type which have an incorrect parent hierarchy (i.e. one parent does not have the right number of actual generic parameters).&lt;br /&gt;
* store: {{Red| Fixed bug#10523: if you create a DB_REPOSITORY before being connected to the database, some of the queries made on the database are not returning the proper result in ODBC(e.g. odbc_sensitive_mixed will return 0 instead of 3 for an ORACLE database). By adding the precondition we nicely solve the problem by forcing client to connect first before creating an instance of DB_REPOSITORY.}}&lt;br /&gt;
* store: {{Red| Fixed some issues related to the new implementation of expanded semantics which would break some introspection part of EiffelStore.}}&lt;br /&gt;
* favorites: fixed bug#11745 &amp;quot;feature item&amp;quot; favorites were being lost on restarting EiffelStudio&lt;br /&gt;
* gui: fixed bug#11749 with debugger's grid being empty.&lt;br /&gt;
* debugger: fixed bug#11755: empty string with huge capacity were slow to be displayed.&lt;br /&gt;
* debugger: improved display of objects tool header bar. (minor)&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* base: sped up {SPECIAL}.copy_data which was not inlined.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==6.0.65604 (December 17th 2006)==&lt;br /&gt;
===New features===&lt;br /&gt;
* compiler: improved backup mechanism so that overridden classes are copied in the library where they are defined (they were previously copied in the library where the override cluster was defined).&lt;br /&gt;
* studio: {{red|Integrated the internationalization library. Added a preference named &amp;quot;general.locale&amp;quot; to switch among languages. English and Chinese are available for the moment}}&lt;br /&gt;
* debugger: added auto expressions on watch tools&lt;br /&gt;
* studio: Added metric history support. Calculated metrics with their inputs can be sent into history so they can be recalculated afterwards.&lt;br /&gt;
* general: Revision number of EiffelStudio has changed because we reached the limit set by most OS for the revision (65535). So now it is split into revision.build, that is to say rev 65570 will read 6.5570.&lt;br /&gt;
* debugger: added an experimental console based debugger.&lt;br /&gt;
&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* compiler: {{Red|Fixed issue with inline agents where if you have one and during a compilation from scratch you have a compiler error, then fixing this error and recompiling, it would crash when melting or freezing (test#incr277).}}&lt;br /&gt;
* compiler: Fixed issue with C compilation linking error when a generic class which have an invariant clause has its formal generics changed (test#incr278).&lt;br /&gt;
* compiler: Fixed C compilation error on Windows for trying to compile empties Cxxx directories (test#ccomp061).&lt;br /&gt;
* compiler: Fixed incorrect code generation of agents on attribute when target is open (test#exec264).&lt;br /&gt;
* compiler: Fixed incremental bug when an agent creation based on a feature whose signature changes for less arguments (test#incr276).&lt;br /&gt;
* compiler: Fixed a backup creation bug when two classes from the same cluster/library have the same original file name, the backup would only contain one or the other because we use the original file name. Now we use the original class name.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* base: Sped up HASH_TABLE iteration and lookup by about 8% or more.&lt;br /&gt;
* base: TUPLE can now compare items using reference equality (=) or object comparison (is_equal).&lt;br /&gt;
* vision2: Changed behavior of {EV_TITLED_WINDOW}.raise to always make sure the window is visible on screen (show if hidden, restore if minimized).&lt;br /&gt;
* vision2: Fixed behavior of is_show_requested and is_displayed for EV_GRID and its items so that it conforms to the widget behavior in Vision2.&lt;br /&gt;
* wel/vision2: {{Red|Raised compatibility bar to Windows 2000 or greater. No more support for Windows 98 or NT 4.0}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
* debugger: deep refactoring (reduce the number of onces, renamed and moved some debugger related data)&lt;br /&gt;
* studio: to help track incremental compilation bugs, we build a replay backup window that given a backup directory will go through each compilation and perform them the way it was done by the end user.&lt;br /&gt;
&lt;br /&gt;
==6.0.65344 (December 3rd 2006)==&lt;br /&gt;
===New features===&lt;br /&gt;
* compiler: {{Red|A root type can now be a generic derivation.}}&lt;br /&gt;
* studio: {{Red|Project settings such as arguments/working directory/location are now stored in a user specific location that does not depend on the UUID of the project, but on its path.}}&lt;br /&gt;
* compiler: {{Red|Integers can now also be specified with binary and octal representation}}&lt;br /&gt;
* compiler: {{Red|Manifest characters can now also be specified with binary, octal and hexadecimal representation. Manifest characters can be specified up to 32 Bit.}}&lt;br /&gt;
* compiler: {{Red|Possibility for &amp;quot;hidden/implementation&amp;quot; clusters in libraries, clusters that are not accessible if the library is used (like libraries in libraries are not accessible).}}&lt;br /&gt;
* compiler: {{Red|Added supplier_precondition assertion level that enables to only check preconditions of trusted libraries.}}&lt;br /&gt;
* debugger: {{Red|New Debugging options dialog (to set the arguments and other)}}&lt;br /&gt;
* compiler: Don't do an expensive degree 6 when we freeze or finalize.&lt;br /&gt;
* compiler: Newly added clusters are recursive by default.&lt;br /&gt;
* studio: Favorites are now stored in the user settings.&lt;br /&gt;
* compiler: Warning if an environment variable has changed and opportunity to (temporarily) use the old, stored value&lt;br /&gt;
* compiler: Trigger a full configuration rebuild if environment variables have changed&lt;br /&gt;
* compiler: Added configurable (project to class-level) optimization for .NET project that will mark all classes frozen if they are not descended by another.&lt;br /&gt;
* studio: Add assemblies dialog shows more assembly information.&lt;br /&gt;
* studio: Some diagram generation for assemblies&lt;br /&gt;
* studio:Display documentation for .NET Framework assemblies on .NET 2.0&lt;br /&gt;
* studio: Display features tree for .NET classes.&lt;br /&gt;
* studio: Display uncompiled .NET classes.&lt;br /&gt;
* debugger: Now we can pass modified environment variables to the debuggee application.&lt;br /&gt;
* compiler: Externals (includes, objects, resources, ...) can now be relative to the ecf file by using the new replacement $ECF_CONFIG_PATH.&lt;br /&gt;
* compiler: UUID is not needed for non library systems. If no uuid is specified a random one will be generated. (Startup dialog may not work correct if the config has not been saved with the random generated uuid)&lt;br /&gt;
* debugger: New contextual menu on breakpoints tool for multiple action on class (enable first bp on all features ...)&lt;br /&gt;
* studio: Only expand the currently used target in the project settings.&lt;br /&gt;
* compiler: Changed version of configuration format to 1.1.0&lt;br /&gt;
* compiler: Only print warnings for unknown attributes and tags if we detect an unknown version (try to be upward compatible).&lt;br /&gt;
* compiler: Speed up consumer cache synchronization so working with large .NET caches or large assembly sets is much faster.&lt;br /&gt;
* debugger: now it is possible to restart the debuggee without unraising and raising again the debugger's interface&lt;br /&gt;
* debugger: now we keep the layout for each watch tool in preferences.&lt;br /&gt;
* compiler: Custom conditions now also take environment variables into account.&lt;br /&gt;
* compiler: Display unsubstitued path to cluster/assembly/library if a file/directory open error occurs.&lt;br /&gt;
* studio: Added a cancel button in the dialog of the automatic precompilation to cancel the precompilation.&lt;br /&gt;
* COM Wizard: EiffelStudio button is enabled also if the Eiffel compilation fails.&lt;br /&gt;
* compiler: Generate an error if a configuration file used in a precompile has structurally been changed as the precompile is not usable in this case anymore.&lt;br /&gt;
* base: The HASH_TABLE in base has two new possibilities to detect/prevent catcalls, they can be enabled by enabling assertion checking and enabling the debug clauses prevent_hash_table_catcall and detect_hash_table_catcall.&lt;br /&gt;
* studio: {{Red|Added dependency view so supplier/client dependency of a group/folder/class can be investigated. Feature calls are included in dependency view.}}&lt;br /&gt;
* studio: Added syntactical supplier/client support in class view.&lt;br /&gt;
&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* COM wizard: {{Red|Time library was not included which lead to problems if a COM component used the DATE_TIME data type.}}&lt;br /&gt;
* compiler: {{Red|Fixed incrementality bug with agents where finalizing and then freezing would cause some unresolved externals.}}&lt;br /&gt;
* compiler: Don't do an expensive degree 6 if assertion level or similar project settings have changed.&lt;br /&gt;
* studio: Decreased amount of created GDI objects on windows in some grids.&lt;br /&gt;
* studio: Fixed a problem with externals in the project settings.&lt;br /&gt;
* studio: Fixed viewpoint handling for assemblies&lt;br /&gt;
* studio: Fixed output to file redirection in the process library on windows.&lt;br /&gt;
* studio: Fixed samples that would not compile.&lt;br /&gt;
* compiler: Fixed a crash if a library without an UUID is used.&lt;br /&gt;
* compiler: Fixed a problem that classes that were not visible before did not get compiled when they were made visible.&lt;br /&gt;
* compiler: Fixed CECIL name if there is a renaming specified in the visible clause.&lt;br /&gt;
* compiler: Fixed VTCT error was not detected if a prefix/renaming changed on an assembly or library.&lt;br /&gt;
* vision2: Fixed bug when setting a pixmap on a menu entry which has a submenu, the submenu would disappear.&lt;br /&gt;
* compiler: Fixed a bug in the check if local assemblies are present.&lt;br /&gt;
* compiler: Fixed some problems with sub clusters of overrides.&lt;br /&gt;
* compiler: Interpolate environment variables also in metadata cache path specified on the command line.&lt;br /&gt;
* compiler: Fixed some bugs in the documentation generation related to sub clusters.&lt;br /&gt;
* compiler: Option changes always led to an expensive degree 6 even if a fast degree 6 would have been enough.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* base: {{Red|EXECUTION_ENVIRONMENT.get will only retrieve environment variable. It won't retrieve a value from the registry key on Windows (from HKLM\Software\ISE\Eiffelxx\app_name). This also means that MELT_PATH on Windows cannot be set in registry; this is not really a problem since now you do not need to set it since the W_code knows where to find it.}}&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
* cli_debugger is now under framework, and the corresponding clib has to be compiled.&lt;br /&gt;
* New delivery scripts on unix will now compress packages using bzip2 as they are about 30% smaller than the packages build with gzip.&lt;br /&gt;
* The eifinit/studio folder has now been moved into studio/eifinit&lt;br /&gt;
* build has been renamed into esbuilder&lt;br /&gt;
* vision2_tour has been renamed into vision2_demo&lt;br /&gt;
* Possibility to build a delivery which fits into the unix directory layout.&lt;br /&gt;
* Use the normal HASH_TABLE in the compiler.&lt;br /&gt;
* ID_AS does no longer inherit from STRING, instead it has a name_id and the string is stored in NAMES_HEAP&lt;br /&gt;
* Added additional applicable inspect-able types to VOMB1 error help text.&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.0_Releases&amp;diff=6308</id>
		<title>EiffelStudio 6.0 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.0_Releases&amp;diff=6308"/>
				<updated>2006-11-21T23:57:36Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: /* New features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.0.x Releases=&lt;br /&gt;
==6.0.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release.&lt;br /&gt;
===New features===&lt;br /&gt;
* A root type can now be a generic derivation.&lt;br /&gt;
* Project settings such as arguments/working directory/location are now stored in a user specific location that does not depend on the UUID of the project, but on its path.&lt;br /&gt;
* Possibility for &amp;quot;hidden/implementation&amp;quot; clusters in libraries, clusters that are not accessible if the library is used (like libraries in libraries are not accessible).&lt;br /&gt;
* Don't do an expensive degree 6 when we freeze or finalize.&lt;br /&gt;
* Newly added clusters are recursive by default.&lt;br /&gt;
* Favorites are now stored in the user settings.&lt;br /&gt;
* Warning if an environment variable has changed and opportunity to (temporarily) use the old, stored value&lt;br /&gt;
* Trigger a full configuration rebuild if environment variables have changed&lt;br /&gt;
* Added configurable (project to class-level) optimization for .NET project that will mark all classes frozen if they are not descended by another.&lt;br /&gt;
* Add assemblies dialog shows more assembly information.&lt;br /&gt;
* Some diagram generation for assemblies&lt;br /&gt;
* Display documentation for .NET Framework assemblies on .NET 2.0&lt;br /&gt;
* Display features tree for .NET classes.&lt;br /&gt;
* Display uncompiled .NET classes.&lt;br /&gt;
* New Debugging options dialog (to set the arguments and other)&lt;br /&gt;
* Now we can pass modified environment variables to the debuggee application.&lt;br /&gt;
* Externals (includes, objects, resources, ...) can now be relative to the ecf file by using the new replacement $ECF_CONFIG_PATH.&lt;br /&gt;
* UUID is not needed for non library systems. If no uuid is specified a random one will be generated. (Startup dialog may not work correct if the config has not been saved with the random generated uuid)&lt;br /&gt;
* Integers can now also be specified with binary and octal representation&lt;br /&gt;
* Manifest characters can now also be specified with binary, octal and hexadecimal representation. Manifest characters can be specified up to 32 Bit.&lt;br /&gt;
* New contextual menu on breakpoints tool for multiple action on class (enable first bp on all features ...)&lt;br /&gt;
* Only expand the currently used target in the project settings.&lt;br /&gt;
* Changed version of configuration format to 1.1.0&lt;br /&gt;
* Only print warnings for unknown attributes and tags if we detect an unknown version (try to be upward compatible).&lt;br /&gt;
* Speed up consumer cache synchronization so working with large .NET caches or large assembly sets is much faster.&lt;br /&gt;
* Debugger: now it is possible to restart the debuggee without unraising and raising again the debugger's interface&lt;br /&gt;
* Debugger tools: now we keep the layout for each watch tool in preferences.&lt;br /&gt;
* Custom conditions now also take environment variables into account.&lt;br /&gt;
* Display unsubstitued path to cluster/assembly/library if a file/directory open error occurs.&lt;br /&gt;
* Added a cancel button in the dialog of the automatic precompilation to cancel the precompilation.&lt;br /&gt;
* COM Wizard: EiffelStudio button is enabled also if the Eiffel compilation fails.&lt;br /&gt;
* Generate an error if a configuration file used in a precompile has structurally been changed as the precompile is not usable in this case anymore.&lt;br /&gt;
* The HASH_TABLE in base has two new possibilities to detect/prevent catcalls, they can be enabled by enabling assertion checking and enabling the debug clauses prevent_hash_table_catcall and detect_hash_table_catcall.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* Don't do an expensive degree 6 if assertion level or similar project settings have changed.&lt;br /&gt;
* Decreased amount of created GDI objects on windows in some grids.&lt;br /&gt;
* Fixed a problem with externals in the project settings.&lt;br /&gt;
* Fixed viewpoint handling for assemblies&lt;br /&gt;
* Fixed output to file redirection in the process library on windows.&lt;br /&gt;
* Fixed samples that would not compile.&lt;br /&gt;
* Fixed a crash if a library without an UUID is used.&lt;br /&gt;
* Fixed a problem that classes that were not visible before did not get compiled when they were made visible.&lt;br /&gt;
* Fixed CECIL name if there is a renaming specified in the visible clause.&lt;br /&gt;
* Fixed VTCT error was not detected if a prefix/renaming changed on an assembly or library.&lt;br /&gt;
* Vision2: Fixed bug when setting a pixmap on a menu entry which has a submenu, the submenu would disappear.&lt;br /&gt;
* COM wizard: Time library was not included which lead to problems if a COM component used the DATE_TIME data type.&lt;br /&gt;
* Fixed a bug in the check if local assemblies are present.&lt;br /&gt;
* Fixed some problems with sub clusters of overrides.&lt;br /&gt;
* Interpolate environment variables also in metadata cache path specified on the command line.&lt;br /&gt;
* Fixed some bugs in the documentation generation related to sub clusters.&lt;br /&gt;
* Option changes always led to an expensive degree 6 even if a fast degree 6 would have been enough.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* EXECUTION_ENVIRONMENT.get will only retrieve environment variable. It won't retrieve a value from the registry key on Windows (from HKLM\Software\ISE\Eiffelxx\app_name). This also means that MELT_PATH on Windows cannot be set in registry; this is not really a problem since now you do not need to set it since the W_code knows where to find it.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
* cli_debugger is now under framework, and the corresponding clib has to be compiled.&lt;br /&gt;
* New delivery scripts on unix will now compress packages using bzip2 as they are about 30% smaller than the packages build with gzip.&lt;br /&gt;
* The eifinit/studio folder has now been moved into studio/eifinit&lt;br /&gt;
* build has been renamed into esbuilder&lt;br /&gt;
* vision2_tour has been renamed into vision2_demo&lt;br /&gt;
* Possibility to build a delivery which fits into the unix directory layout.&lt;br /&gt;
* Use the normal HASH_TABLE in the compiler.&lt;br /&gt;
* ID_AS does no longer inherit from STRING, instead it has a name_id and the string is stored in NAMES_HEAP&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.0_Releases&amp;diff=6307</id>
		<title>EiffelStudio 6.0 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.0_Releases&amp;diff=6307"/>
				<updated>2006-11-21T23:55:53Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: /* Developer changes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.0.x Releases=&lt;br /&gt;
==6.0.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release.&lt;br /&gt;
===New features===&lt;br /&gt;
* A root type can now be a generic derivation.&lt;br /&gt;
* Project settings such as arguments/working directory/location are now stored in a user specific location that does not depend on the UUID of the project, but on its path.&lt;br /&gt;
* Possibility for &amp;quot;hidden/implementation&amp;quot; clusters in libraries, clusters that are not accessible if the library is used (like libraries in libraries are not accessible).&lt;br /&gt;
* Don't do an expensive degree 6 when we freeze or finalize.&lt;br /&gt;
* Newly added clusters are recursive by default.&lt;br /&gt;
* Favorites are now stored in the user settings.&lt;br /&gt;
* Warning if an environment variable has changed and opportunity to (temporarily) use the old, stored value&lt;br /&gt;
* Trigger a full configuration rebuild if environment variables have changed&lt;br /&gt;
* Added configurable (project to class-level) optimization for .NET project that will mark all classes frozen if they are not descended by another.&lt;br /&gt;
* Add assemblies dialog shows more assembly information.&lt;br /&gt;
* Some diagram generation for assemblies&lt;br /&gt;
* Display documentation for .NET Framework assemblies on .NET 2.0&lt;br /&gt;
* Display features tree for .NET classes.&lt;br /&gt;
* Display uncompiled .NET classes.&lt;br /&gt;
* New Debugging options dialog (to set the arguments and other)&lt;br /&gt;
* Now we can pass modified environment variables to the debuggee application.&lt;br /&gt;
* Externals (includes, objects, resources, ...) can now be relative to the ecf file by using the new replacement $ECF_CONFIG_PATH.&lt;br /&gt;
* UUID is not needed for non library systems. If no uuid is specified a random one will be generated. (Startup dialog may not work correct if the config has not been saved with the random generated uuid)&lt;br /&gt;
* Integers can now also be specified with binary and octal representation&lt;br /&gt;
* Manifest characters can now also be specified with binary, octal and hexadecimal representation. Manifest characters can be specified up to 32 Bit.&lt;br /&gt;
* New contextual menu on breakpoints tool for multiple action on class (enable first bp on all features ...)&lt;br /&gt;
* Only expand the currently used target in the project settings.&lt;br /&gt;
* Changed version of configuration format to 1.1.0&lt;br /&gt;
* Only print warnings for unknown attributes and tags if we detect an unknown version (try to be upward compatible).&lt;br /&gt;
* Speed up consumer cache synchronization so working with large .NET caches or large assembly sets is much faster.&lt;br /&gt;
* Debugger: now it is possible to restart the debuggee without unraising and raising again the debugger's interface&lt;br /&gt;
* Debugger tools: now we keep the layout for each watch tool in preferences.&lt;br /&gt;
* Custom conditions now also take environment variables into account.&lt;br /&gt;
* Display unsubstitued path to cluster/assembly/library if a file/directory open error occurs.&lt;br /&gt;
* Added a cancel button in the dialog of the automatic precompilation to cancel the precompilation.&lt;br /&gt;
* COM Wizard: EiffelStudio button is enabled also if the Eiffel compilation fails.&lt;br /&gt;
* Generate an error if a configuration file used in a precompile has structurally been changed as the precompile is not usable in this case anymore.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* Don't do an expensive degree 6 if assertion level or similar project settings have changed.&lt;br /&gt;
* Decreased amount of created GDI objects on windows in some grids.&lt;br /&gt;
* Fixed a problem with externals in the project settings.&lt;br /&gt;
* Fixed viewpoint handling for assemblies&lt;br /&gt;
* Fixed output to file redirection in the process library on windows.&lt;br /&gt;
* Fixed samples that would not compile.&lt;br /&gt;
* Fixed a crash if a library without an UUID is used.&lt;br /&gt;
* Fixed a problem that classes that were not visible before did not get compiled when they were made visible.&lt;br /&gt;
* Fixed CECIL name if there is a renaming specified in the visible clause.&lt;br /&gt;
* Fixed VTCT error was not detected if a prefix/renaming changed on an assembly or library.&lt;br /&gt;
* Vision2: Fixed bug when setting a pixmap on a menu entry which has a submenu, the submenu would disappear.&lt;br /&gt;
* COM wizard: Time library was not included which lead to problems if a COM component used the DATE_TIME data type.&lt;br /&gt;
* Fixed a bug in the check if local assemblies are present.&lt;br /&gt;
* Fixed some problems with sub clusters of overrides.&lt;br /&gt;
* Interpolate environment variables also in metadata cache path specified on the command line.&lt;br /&gt;
* Fixed some bugs in the documentation generation related to sub clusters.&lt;br /&gt;
* Option changes always led to an expensive degree 6 even if a fast degree 6 would have been enough.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* EXECUTION_ENVIRONMENT.get will only retrieve environment variable. It won't retrieve a value from the registry key on Windows (from HKLM\Software\ISE\Eiffelxx\app_name). This also means that MELT_PATH on Windows cannot be set in registry; this is not really a problem since now you do not need to set it since the W_code knows where to find it.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
* cli_debugger is now under framework, and the corresponding clib has to be compiled.&lt;br /&gt;
* New delivery scripts on unix will now compress packages using bzip2 as they are about 30% smaller than the packages build with gzip.&lt;br /&gt;
* The eifinit/studio folder has now been moved into studio/eifinit&lt;br /&gt;
* build has been renamed into esbuilder&lt;br /&gt;
* vision2_tour has been renamed into vision2_demo&lt;br /&gt;
* Possibility to build a delivery which fits into the unix directory layout.&lt;br /&gt;
* Use the normal HASH_TABLE in the compiler.&lt;br /&gt;
* ID_AS does no longer inherit from STRING, instead it has a name_id and the string is stored in NAMES_HEAP&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Agent_problems&amp;diff=6295</id>
		<title>Talk:Agent problems</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Agent_problems&amp;diff=6295"/>
				<updated>2006-11-21T17:59:17Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Is CAT Call ==&lt;br /&gt;
&lt;br /&gt;
'''--[[User:Schoelle|Schoelle]] 09:26, 21 November 2006 (CET)'''&lt;br /&gt;
&lt;br /&gt;
First comment: I assume you are missing a 'l_f := f'. &lt;br /&gt;
&lt;br /&gt;
Second comment: this is a well known CAT call, caused by the (unsound) inheritance relation 'X[A] is subtype of X[B]' if 'A is subtype of B'. &lt;br /&gt;
&lt;br /&gt;
'''--[[User:konradm|konradm]]'''&lt;br /&gt;
&lt;br /&gt;
This article is in a very early state, so don't bother commenting to much on it. The intention is to list all the problems of the mechanism. Especially the fact that one has to type in a whole lot of type information for very little guarantees from the type system.&lt;br /&gt;
&lt;br /&gt;
I am aware that I am not the first one to be aware of this problem. But I am not sure whether this problem is revered to as a CAT call. When it is, and when the new CAT call solution will indeed be implemented, what are the consequences? You can only make agents to features with arguments of detachable type?&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=REAL_64_(issues)&amp;diff=6226</id>
		<title>REAL 64 (issues)</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=REAL_64_(issues)&amp;diff=6226"/>
				<updated>2006-11-17T18:55:15Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ELKS]]&lt;br /&gt;
This page describes issues with the current implementation of REAL_64 in comparison to the [[REAL_64 (interface)|interface description]] or desired output when nothing is specified.&lt;br /&gt;
&lt;br /&gt;
===is_equal and NaN===&lt;br /&gt;
&lt;br /&gt;
The floating point standard says that 'NaN = NaN' is false. But in order to uphold the postcondition of 'NaN.twin' which says that 'Result.is_equal (Current)' the comparison with 'is_equal' should yield true. &lt;br /&gt;
&lt;br /&gt;
At the moment 'is_equal' for reals is optimized in the compiler and is replaced by '=' and thus the postcondition of 'twin' is violated.&lt;br /&gt;
&lt;br /&gt;
===floor, ceiling, rounded and truncated_to_integer===&lt;br /&gt;
&lt;br /&gt;
Currently when doing a 'floor', 'ceiling', 'rounded' or 'truncate_to_integer' with a number which is too large (e.g. 2^31) the result is {INTEGER}.min_value. &lt;br /&gt;
&lt;br /&gt;
The change in the sign is a not expected behavior and violates (informal) contracts.&lt;br /&gt;
&lt;br /&gt;
===divisible===&lt;br /&gt;
&lt;br /&gt;
By providing NaN and INF every real value can be divided by every other real value. Thus a call of 'divisible' should always return true. This arises again in INTEGER.infix &amp;quot;/&amp;quot;. A call to 12 / 0 is not allowed by the current contract but should just return INF.&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Compile_All_Tool&amp;diff=6110</id>
		<title>Compile All Tool</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Compile_All_Tool&amp;diff=6110"/>
				<updated>2006-11-16T01:44:47Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: /* Change Log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
== Overview ==&lt;br /&gt;
The Compile All Tool can be used to check if all targets in a directory compile. It recursively scans all directories and looks for files with a .ecf extension. For each configuration file all targets are first clean melted, then frozen and at the end finalized.&lt;br /&gt;
&lt;br /&gt;
== Command-line Options ==&lt;br /&gt;
To see the list of available command-line options and their help information, use the '/?' switch.&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
This tool was developed and maintained by [[User:Patrickr|Patrickr]].&lt;br /&gt;
&lt;br /&gt;
Location: https://origo.ethz.ch/eiffelsoftware/es/trunk/Src/tools/compile_all &lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
=== Checking everything in the trunk still compiles ===&lt;br /&gt;
To check if everything in the trunk still compiles, use the following setup:&lt;br /&gt;
&lt;br /&gt;
#create a directory where to put the EIFGENs into, e.g. C:\compile&lt;br /&gt;
#compile_all -l C:\60dev -eifgen C:\compile -ignore C:\60dev\tools\compile_all\baseline\trunk.ini -no_clean -no_c_compile -no_freeze -no_finalize&lt;br /&gt;
&lt;br /&gt;
== Change Log ==&lt;br /&gt;
'''[[User:Patrickr|Patrickr]] 01:32, 10 October 2006 (CEST)'''&lt;br /&gt;
*Initial Upload&lt;br /&gt;
&lt;br /&gt;
'''[[User:Patrickr|Patrickr]] 20:20, 15 November 2006 (CET)'''&lt;br /&gt;
&lt;br /&gt;
*New Feature: Added possibility to only do some compilation modes&lt;br /&gt;
*New Feature: Added possibility to specify a compilation directory&lt;br /&gt;
*New Feature: Ignore file for files/targets to ignore&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Compile_All_Tool&amp;diff=6109</id>
		<title>Compile All Tool</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Compile_All_Tool&amp;diff=6109"/>
				<updated>2006-11-16T00:16:48Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
== Overview ==&lt;br /&gt;
The Compile All Tool can be used to check if all targets in a directory compile. It recursively scans all directories and looks for files with a .ecf extension. For each configuration file all targets are first clean melted, then frozen and at the end finalized.&lt;br /&gt;
&lt;br /&gt;
== Command-line Options ==&lt;br /&gt;
To see the list of available command-line options and their help information, use the '/?' switch.&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
This tool was developed and maintained by [[User:Patrickr|Patrickr]].&lt;br /&gt;
&lt;br /&gt;
Location: https://origo.ethz.ch/eiffelsoftware/es/trunk/Src/tools/compile_all &lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
=== Checking everything in the trunk still compiles ===&lt;br /&gt;
To check if everything in the trunk still compiles, use the following setup:&lt;br /&gt;
&lt;br /&gt;
#create a directory where to put the EIFGENs into, e.g. C:\compile&lt;br /&gt;
#compile_all -l C:\60dev -eifgen C:\compile -ignore C:\60dev\tools\compile_all\baseline\trunk.ini -no_clean -no_c_compile -no_freeze -no_finalize&lt;br /&gt;
&lt;br /&gt;
== Change Log ==&lt;br /&gt;
'''[[User:Patrickr|Patrickr]] 01:32, 10 October 2006 (CEST)'''&lt;br /&gt;
*Initial Upload&lt;br /&gt;
&lt;br /&gt;
'''[[User:Patrickr|Patrickr]] 20:20, 15 November 2006 (CET)'''&lt;br /&gt;
&lt;br /&gt;
*New Feature: Added possibility to only do some compilation modes&lt;br /&gt;
*New Feature: Added possibility to specify a compilation directory&lt;br /&gt;
*New Feature: Ignore files for files/targets to ignore&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Compile_All_Tool&amp;diff=6108</id>
		<title>Compile All Tool</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Compile_All_Tool&amp;diff=6108"/>
				<updated>2006-11-16T00:09:19Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: /* Change Log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
== Overview ==&lt;br /&gt;
The Compile All Tool can be used to check if all targets in a directory compile. It recursively scans all directories and looks for files with a .ecf extension. For each configuration file all targets are first clean melted, then frozen and at the end finalized.&lt;br /&gt;
&lt;br /&gt;
== Command-line Options ==&lt;br /&gt;
To see the list of available command-line options and their help information, use the '/?' switch.&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
This tool was developed and maintained by [[User:Patrickr|Patrickr]].&lt;br /&gt;
&lt;br /&gt;
Location: https://origo.ethz.ch/eiffelsoftware/es/trunk/Src/tools/compile_all &lt;br /&gt;
&lt;br /&gt;
== Change Log ==&lt;br /&gt;
'''[[User:Patrickr|Patrickr]] 01:32, 10 October 2006 (CEST)'''&lt;br /&gt;
*Initial Upload&lt;br /&gt;
&lt;br /&gt;
'''[[User:Patrickr|Patrickr]] 20:20, 15 November 2006 (CET)'''&lt;br /&gt;
&lt;br /&gt;
*New Feature: Added possibility to only do some compilation modes&lt;br /&gt;
*New Feature: Added possibility to specify a compilation directory&lt;br /&gt;
*New Feature: Ignore files for files/targets to ignore&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Environment_Roadmap&amp;diff=6106</id>
		<title>Environment Roadmap</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Environment_Roadmap&amp;diff=6106"/>
				<updated>2006-11-15T21:23:22Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: /* Internal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:EiffelStudio]]&lt;br /&gt;
Roadmap information for EiffelStudio releases:&lt;br /&gt;
&lt;br /&gt;
==6.2==&lt;br /&gt;
* Attached mechanism&lt;br /&gt;
&lt;br /&gt;
==6.1==&lt;br /&gt;
* Non-conforming inheritance&lt;br /&gt;
* Proper semantics of feature replication&lt;br /&gt;
* Configurable commands (i.e. location and shortcut)&lt;br /&gt;
* Exception as object&lt;br /&gt;
* Resource library&lt;br /&gt;
&lt;br /&gt;
==6.0 (1st quarter 2007)==&lt;br /&gt;
===UI===&lt;br /&gt;
* Improved docking facilities in EiffelStudio to fully control the layout of EiffelStudio&lt;br /&gt;
* Configurable pick-and-drop: user can choose between a contextual menu or pick-and-drop within the EiffelStudio environment&lt;br /&gt;
* Internationalization support&lt;br /&gt;
* Keyboard support for code browsing/activation - F12 to go to context reference in editor, F9 to set a breakpoint, etc.&lt;br /&gt;
&lt;br /&gt;
===Compiler===&lt;br /&gt;
* Progress bar for degree 6, C compilation and automatic precompilation&lt;br /&gt;
* Object test syntax support&lt;br /&gt;
* &amp;lt;del&amp;gt;Warning/error for changed environment variables used in a project configuration file&amp;lt;/del&amp;gt;&lt;br /&gt;
* Ability to download libraries/applications from a website directly from EiffelStudio (see [[Configuration_Discovery|Discovering Configuration Files]])&lt;br /&gt;
* Reading of UTF-8 Eiffel source file&lt;br /&gt;
* &amp;lt;del&amp;gt;&amp;quot;Hidden&amp;quot; clusters in libraries, clusters that are not accessible if the library is used (like libraries in libraries are not accessible).&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Clean up &amp;quot;inheritance&amp;quot; rules for project settings (e.g. assertion levels of libraries)&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Addition of binary and octal notation for manifest integers&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ports===&lt;br /&gt;
* Mac native support&lt;br /&gt;
&lt;br /&gt;
===Internal===&lt;br /&gt;
* Reduce size of C generated in workbench mode&lt;br /&gt;
* &amp;lt;del&amp;gt;Clean up delivery, names of tools, directory layout.&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Get rid of *.wb files and store this in the user settings.&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==5.7==&lt;br /&gt;
* This is the first open source version of EiffelStudio. Look at the [http://eiffelsoftware.origo.ethz.ch/index.php/EiffelStudio_5.7_Releases release notes of 5.7] for more information.&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Compile_All_Tool&amp;diff=6105</id>
		<title>Compile All Tool</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Compile_All_Tool&amp;diff=6105"/>
				<updated>2006-11-15T19:20:08Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: /* Change Log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
== Overview ==&lt;br /&gt;
The Compile All Tool can be used to check if all targets in a directory compile. It recursively scans all directories and looks for files with a .ecf extension. For each configuration file all targets are first clean melted, then frozen and at the end finalized.&lt;br /&gt;
&lt;br /&gt;
== Command-line Options ==&lt;br /&gt;
To see the list of available command-line options and their help information, use the '/?' switch.&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
This tool was developed and maintained by [[User:Patrickr|Patrickr]].&lt;br /&gt;
&lt;br /&gt;
Location: https://origo.ethz.ch/eiffelsoftware/es/trunk/Src/tools/compile_all &lt;br /&gt;
&lt;br /&gt;
== Change Log ==&lt;br /&gt;
'''[[User:Patrickr|Patrickr]] 01:32, 10 October 2006 (CEST)'''&lt;br /&gt;
*Initial Upload&lt;br /&gt;
&lt;br /&gt;
'''[[User:Patrickr|Patrickr]] 20:20, 15 November 2006 (CET)'''&lt;br /&gt;
&lt;br /&gt;
*New Feature: Added possibility to only do some compilation modes&lt;br /&gt;
*New Feature: Added possibility to specify a compilation directory&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=ECMA_Implementation&amp;diff=6093</id>
		<title>ECMA Implementation</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=ECMA_Implementation&amp;diff=6093"/>
				<updated>2006-11-15T00:17:48Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: Improved layout&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECMA]]&lt;br /&gt;
[[Category:Projects]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
Below is the list of tasks required in order to implement the full [http://www.ecma-international.org/publications/standards/Ecma-367.htm ECMA 367] specification of the Eiffel language. The list is divided in two parts, easy and complex tasks. The complex tasks are ordered from what we feel the most important to implement to the less important. The tasks refer to a chapter number, if that number is X, it corresponds to chapter 8.X of the [http://www.ecma-international.org/publications/standards/Ecma-367.htm ECMA 367] standard.&lt;br /&gt;
&lt;br /&gt;
==Easy tasks==&lt;br /&gt;
* &amp;lt;del&amp;gt;Chapter 3 Remove a restriction that any creation procedure of a root class is either argumentless or has 1 argument of type ARRAY [STRING].&amp;lt;/del&amp;gt; {{Red|Done in 6.0}}&lt;br /&gt;
* &amp;lt;del&amp;gt;Chapter 3 Check that root class is not deferred (Update validity error)&amp;lt;/del&amp;gt; {{Red|Done in 6.0}}&lt;br /&gt;
* &amp;lt;del&amp;gt;Chapter 3 Support generic derivation as a root type.&amp;lt;/del&amp;gt; {{Red|Done in 6.0}}&lt;br /&gt;
* Chapter 4 Replace &amp;quot;indexing&amp;quot; with &amp;quot;note&amp;quot;. &lt;br /&gt;
* &amp;lt;del&amp;gt;Chapter 5 Support new syntax for constant attributes: ... = Manifest_constant&amp;lt;/del&amp;gt; {{Red|Done in 5.7}}&lt;br /&gt;
* &amp;lt;del&amp;gt;Chapter 5 Remove keyword &amp;quot;is&amp;quot; from feature declaration.&amp;lt;/del&amp;gt; {{Red|Done in 5.7}}&lt;br /&gt;
* Chapter 5 Add Attachment_mark (&amp;quot;?&amp;quot;|&amp;quot;!&amp;quot;) syntax for any type declarations. &lt;br /&gt;
* Chapter 6 Support for inherit {NONE} syntax &lt;br /&gt;
* Chapter 6 Implement VHPR(6): end keyword is present if the Feature_adaption clause is not empty. &lt;br /&gt;
* Chapter 7 Implement VLEL(3): which allow `f' to appear twice as long as it belongs to two different lists &lt;br /&gt;
* Chapter 9 Type of assertion violation exception which should be ASSERTION_VIOLATION. &lt;br /&gt;
* Chapter 11 Change VTAT to take into account the possibility of anchored types to be defined in terms of other anchored types. &lt;br /&gt;
* Chapter 17 Invert Variant and Invariant order for assertion checking in a loop? &lt;br /&gt;
* Chapter 20 Change our implementation as `create x.make (a)' is internally transformed into `x := create {like x}.make (a)' which are semantically identical when `x' is a reference, but not when `x' is expanded where there will be an additional copy. &lt;br /&gt;
* Chapter 22 Change VBAR to take conversion into account. &lt;br /&gt;
* Chapter 23 Use new syntax for Parenthesized_target (&amp;quot;(|&amp;quot; and &amp;quot;|)&amp;quot;). &lt;br /&gt;
* Chapter 23 Add validity rule VUNO for non-object call. &lt;br /&gt;
* Chapter 23 Change VUAR(2) to allow conversion of feature arguments. &lt;br /&gt;
* &amp;lt;del&amp;gt;Chapter 27 Implementation of PREDICATE.&amp;lt;/del&amp;gt; {{Red|Done in 5.7}}&lt;br /&gt;
* Chapter 28 Make sure we have the right operator precedence. &lt;br /&gt;
* Chapter 29 Introduce notion of constant manifest type, constant type. &lt;br /&gt;
* &amp;lt;del&amp;gt;Chapter 31 Support syntax for external signature using a keyword &amp;quot;signature&amp;quot;.&amp;lt;/del&amp;gt; {{Red|Done in 5.7}}&lt;br /&gt;
* &amp;lt;del&amp;gt;Chapter 31 Support syntax for external file use.&amp;lt;/del&amp;gt; {{Red|Done in 5.7}}&lt;br /&gt;
* &amp;lt;del&amp;gt;Chapter 31 Support C external syntax and associated validity rules&amp;lt;/del&amp;gt; {{Red|Done in 5.7}}&lt;br /&gt;
* &amp;lt;del&amp;gt;Chapter 31 Support C++ external syntax&amp;lt;/del&amp;gt; {{Red|Done in 5.7}}&lt;br /&gt;
* &amp;lt;del&amp;gt;Chapter 31 Support DLL external syntax.&amp;lt;/del&amp;gt; {{Red|Done in 5.7}}&lt;br /&gt;
* Chapter 32 Allow only blanks (and no other break characters) in &amp;quot;and then&amp;quot; and &amp;quot;or else&amp;quot;. &lt;br /&gt;
* &amp;lt;del&amp;gt;Chapter 32 Add hexadecimal notation for a character code '%/.../'.&amp;lt;/del&amp;gt; {{Red|Done in 6.0}}&lt;br /&gt;
* &amp;lt;del&amp;gt;Chapter 32 Add binary and octal notation for integers.&amp;lt;/del&amp;gt; {{Red|Done in 6.0}}&lt;br /&gt;
&lt;br /&gt;
==Complex tasks==&lt;br /&gt;
* Chapter 26 Implement exceptions as objects &lt;br /&gt;
* Chapter 24 Support void-safe calls. &lt;br /&gt;
* Other New expanded semantic &lt;br /&gt;
* Chapter 9 Support for `only' postcondition clauses &lt;br /&gt;
* &amp;lt;del&amp;gt;Chapter 13 Support tuple types with labels.&amp;lt;/del&amp;gt; {{Red|Done in 5.7}}&lt;br /&gt;
* &amp;lt;del&amp;gt;Chapter 27 Implementation of inline agents.&amp;lt;/del&amp;gt; {{Red|Done in 5.7}}&lt;br /&gt;
* Chapter 23 Support lazy locals and attributes (attached or expanded entities). &lt;br /&gt;
* Chapter 12 Support Rename and Constraint_creators in generic constraint with new VTGC. &lt;br /&gt;
* Chapter 15 Support conversion with associated validity rules. &lt;br /&gt;
* Chapter 32 Support 32-bit Unicode characters as encoding variant of source code. &lt;br /&gt;
* Other Full system validity checking &lt;br /&gt;
* Chapter 5 Support explicit &amp;quot;attribute&amp;quot; form of Feature_value that allows to attach subclauses: Obsolete, Header_comment, Pre- and Postconditions to attribute. &lt;br /&gt;
* &amp;lt;del&amp;gt;Chapter 30 Implement CHARACTER, STRING, REAL, INTEGER and NATURAL as alias for a given sized variant of CHARACTER_XX, STRING_XX, REAL_XX, INTEGER_XX and NATURAL_XX.&amp;lt;/del&amp;gt; {{Red|Done in 5.7}}&lt;br /&gt;
* Chapter 32 Make header comment a syntactical variant of a note subclause item &amp;quot;what&amp;quot;. &lt;br /&gt;
* Chapter 23 Change order of a routine execution: initialization of local variables goes after evaluation of a precondition and class invariant. &lt;br /&gt;
* Chapter 30 Implement CHARACTER_GENERAL, INTEGER_GENERAL, REAL_GENERAL &lt;br /&gt;
* Chapter 17 Implement inspect where choices are of type STRING or TYPE [G]. &lt;br /&gt;
* Chapter 21 Add new equality operators &amp;quot;~&amp;quot; and &amp;quot;/~&amp;quot;. &lt;br /&gt;
* Chapter 25 Handle catcalls. &lt;br /&gt;
* Chapter 6 New order in the Feature_adaptation clause (main difference is rename clause at the end rather than at the beginning). &lt;br /&gt;
* Chapter 16 Proper implementation of replication semantics rule for `select' and `non-conforming inheritance'. &lt;br /&gt;
* Chapter 10 Ensures that `redefine' implies a redeclaration (no effecting as it allows it today) &lt;br /&gt;
* Chapter 12 Add multiple constraints and VTMC. &lt;br /&gt;
* Chapter 6 Implement VHPR(5): no two ancestors types of D are different generic derivations of the same class &lt;br /&gt;
* Chapter 10 Ensures that `undefine' can have a redeclaration that is deferred with same signature. &lt;br /&gt;
* Chapter 10 Check Join Semantics rule implementation (especially assertions). &lt;br /&gt;
* Chapter 23 Add VUTA to disallow calls on void-unsafe targets. &lt;br /&gt;
* Chapter 23 Add exception and the corresponding class VOID_TARGET for calls on void target. &lt;br /&gt;
* Chapter 23 Add a feature ANY.onces and an associated class to refresh once features. &lt;br /&gt;
* Chapter 26 Checks that all possible path of execution that might raise an exception are properly handled (i.e. following the code path diagram that we used in the ECMA minutes). &lt;br /&gt;
* Chapter 28 Implement Object_test &lt;br /&gt;
* Chapter 9 Rules (which are not yet in the standard) talking about recursive checking of assertions with the various proposed levels. &lt;br /&gt;
* Chapter 3 Check that a root creation procedure meets VSRP. &lt;br /&gt;
* Chapter 8 Support of once with a key. &lt;br /&gt;
* Chapter 12 Full implementation (directly or indirectly) recursive formal generics. &lt;br /&gt;
* Chapter 5 Support &amp;quot;convert&amp;quot; mark in Operator_alias. &lt;br /&gt;
* Chapter 14 Implement conformance of tuple type to ARRAY. &lt;br /&gt;
* Chapter 20 Ensures that preconditions of a creation routine are `creation-valid'. &lt;br /&gt;
* Chapter 28 Update semantic of Address &lt;br /&gt;
* Chapter 25 Ensure semantics of ARRAY.put and ARRAY.force as if they assign a formal argument to an attribute (is this really for ARRAY? Should be NATIVE_ARRAY/SPECIAL) &lt;br /&gt;
* Chapter 12 Add optional frozen mark to formal generics and handle frozen actual generics (defined by &amp;quot;frozen&amp;quot; mark in formal generics).&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.0_Releases&amp;diff=6091</id>
		<title>EiffelStudio 6.0 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.0_Releases&amp;diff=6091"/>
				<updated>2006-11-14T23:53:30Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: /* Bug fixes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.0.x Releases=&lt;br /&gt;
==6.0.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release.&lt;br /&gt;
===New features===&lt;br /&gt;
* Project settings such as arguments/working directory/location are now stored in a user specific location that does not depend on the UUID of the project, but on its path.&lt;br /&gt;
* Possibility for &amp;quot;hidden/implementation&amp;quot; clusters in libraries, clusters that are not accessible if the library is used (like libraries in libraries are not accessible).&lt;br /&gt;
* Don't do an expensive degree 6 when we freeze or finalize.&lt;br /&gt;
* Newly added clusters are recursive by default.&lt;br /&gt;
* Favorites are now stored in the user settings.&lt;br /&gt;
* Warning if an environment variable has changed and opportunity to (temporarily) use the old, stored value&lt;br /&gt;
* Trigger a full configuration rebuild if environment variables have changed&lt;br /&gt;
* Added configurable (project to class-level) optimization for .NET project that will mark all classes frozen if they are not descended by another.&lt;br /&gt;
* Add assemblies dialog shows more assembly information.&lt;br /&gt;
* Some diagram generation for assemblies&lt;br /&gt;
* Display documentation for .NET Framework assemblies on .NET 2.0&lt;br /&gt;
* Display features tree for .NET classes.&lt;br /&gt;
* Display uncompiled .NET classes.&lt;br /&gt;
* New Debugging options dialog (to set the arguments and other)&lt;br /&gt;
* Now we can pass modified environment variables to the debuggee application.&lt;br /&gt;
* Externals (includes, objects, resources, ...) can now be relative to the ecf file by using the new replacement $ECF_CONFIG_PATH.&lt;br /&gt;
* UUID is not needed for non library systems. If no uuid is specified a random one will be generated. (Startup dialog may not work correct if the config has not been saved with the random generated uuid)&lt;br /&gt;
* Integers can now also be specified with binary and octal representation&lt;br /&gt;
* Manifest characters can now also be specified with binary, octal and hexadecimal representation. Manifest characters can be specified up to 32 Bit.&lt;br /&gt;
* New contextual menu on breakpoints tool for multiple action on class (enable first bp on all features ...)&lt;br /&gt;
* Only expand the currently used target in the project settings.&lt;br /&gt;
* Changed version of configuration format to 1.1.0&lt;br /&gt;
* Only print warnings for unknown attributes and tags if we detect an unknown version (try to be upward compatible).&lt;br /&gt;
* Speed up consumer cache synchronization so working with large .NET caches or large assembly sets is much faster.&lt;br /&gt;
* Debugger: now it is possible to restart the debuggee without unraising and raising again the debugger's interface&lt;br /&gt;
* Debugger tools: now we keep the layout for each watch tool in preferences.&lt;br /&gt;
* Custom conditions now also take environment variables into account.&lt;br /&gt;
* Display unsubstitued path to cluster/assembly/library if a file/directory open error occurs.&lt;br /&gt;
* Added a cancel button in the dialog of the automatic precompilation to cancel the precompilation.&lt;br /&gt;
* COM Wizard: EiffelStudio button is enabled also if the Eiffel compilation fails.&lt;br /&gt;
* Generate an error if a configuration file used in a precompile has structurally been changed as the precompile is not usable in this case anymore.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* Don't do an expensive degree 6 if assertion level or similar project settings have changed.&lt;br /&gt;
* Decreased amount of created GDI objects on windows in some grids.&lt;br /&gt;
* Fixed a problem with externals in the project settings.&lt;br /&gt;
* Fixed viewpoint handling for assemblies&lt;br /&gt;
* Fixed output to file redirection in the process library on windows.&lt;br /&gt;
* Fixed samples that would not compile.&lt;br /&gt;
* Fixed a crash if a library without an UUID is used.&lt;br /&gt;
* Fixed a problem that classes that were not visible before did not get compiled when they were made visible.&lt;br /&gt;
* Fixed CECIL name if there is a renaming specified in the visible clause.&lt;br /&gt;
* Fixed VTCT error was not detected if a prefix/renaming changed on an assembly or library.&lt;br /&gt;
* Vision2: Fixed bug when setting a pixmap on a menu entry which has a submenu, the submenu would disappear.&lt;br /&gt;
* COM wizard: Time library was not included which lead to problems if a COM component used the DATE_TIME data type.&lt;br /&gt;
* Fixed a bug in the check if local assemblies are present.&lt;br /&gt;
* Fixed some problems with sub clusters of overrides.&lt;br /&gt;
* Interpolate environment variables also in metadata cache path specified on the command line.&lt;br /&gt;
* Fixed some bugs in the documentation generation related to sub clusters.&lt;br /&gt;
* Option changes always led to an expensive degree 6 even if a fast degree 6 would have been enough.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* EXECUTION_ENVIRONMENT.get will only retrieve environment variable. It won't retrieve a value from the registry key on Windows (from HKLM\Software\ISE\Eiffelxx\app_name). This also means that MELT_PATH on Windows cannot be set in registry; this is not really a problem since now you do not need to set it since the W_code knows where to find it.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
* cli_debugger is now under framework, and the corresponding clib has to be compiled.&lt;br /&gt;
* New delivery scripts on unix will now compress packages using bzip2 as they are about 30% smaller than the packages build with gzip.&lt;br /&gt;
* The eifinit/studio folder has now been moved into studio/eifinit&lt;br /&gt;
* build has been renamed into esbuilder&lt;br /&gt;
* vision2_tour has been renamed into vision2_demo&lt;br /&gt;
* Possibility to build a delivery which fits into the unix directory layout.&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.0_Releases&amp;diff=6090</id>
		<title>EiffelStudio 6.0 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.0_Releases&amp;diff=6090"/>
				<updated>2006-11-14T23:36:54Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: /* Bug fixes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.0.x Releases=&lt;br /&gt;
==6.0.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release.&lt;br /&gt;
===New features===&lt;br /&gt;
* Project settings such as arguments/working directory/location are now stored in a user specific location that does not depend on the UUID of the project, but on its path.&lt;br /&gt;
* Possibility for &amp;quot;hidden/implementation&amp;quot; clusters in libraries, clusters that are not accessible if the library is used (like libraries in libraries are not accessible).&lt;br /&gt;
* Don't do an expensive degree 6 when we freeze or finalize.&lt;br /&gt;
* Newly added clusters are recursive by default.&lt;br /&gt;
* Favorites are now stored in the user settings.&lt;br /&gt;
* Warning if an environment variable has changed and opportunity to (temporarily) use the old, stored value&lt;br /&gt;
* Trigger a full configuration rebuild if environment variables have changed&lt;br /&gt;
* Added configurable (project to class-level) optimization for .NET project that will mark all classes frozen if they are not descended by another.&lt;br /&gt;
* Add assemblies dialog shows more assembly information.&lt;br /&gt;
* Some diagram generation for assemblies&lt;br /&gt;
* Display documentation for .NET Framework assemblies on .NET 2.0&lt;br /&gt;
* Display features tree for .NET classes.&lt;br /&gt;
* Display uncompiled .NET classes.&lt;br /&gt;
* New Debugging options dialog (to set the arguments and other)&lt;br /&gt;
* Now we can pass modified environment variables to the debuggee application.&lt;br /&gt;
* Externals (includes, objects, resources, ...) can now be relative to the ecf file by using the new replacement $ECF_CONFIG_PATH.&lt;br /&gt;
* UUID is not needed for non library systems. If no uuid is specified a random one will be generated. (Startup dialog may not work correct if the config has not been saved with the random generated uuid)&lt;br /&gt;
* Integers can now also be specified with binary and octal representation&lt;br /&gt;
* Manifest characters can now also be specified with binary, octal and hexadecimal representation. Manifest characters can be specified up to 32 Bit.&lt;br /&gt;
* New contextual menu on breakpoints tool for multiple action on class (enable first bp on all features ...)&lt;br /&gt;
* Only expand the currently used target in the project settings.&lt;br /&gt;
* Changed version of configuration format to 1.1.0&lt;br /&gt;
* Only print warnings for unknown attributes and tags if we detect an unknown version (try to be upward compatible).&lt;br /&gt;
* Speed up consumer cache synchronization so working with large .NET caches or large assembly sets is much faster.&lt;br /&gt;
* Debugger: now it is possible to restart the debuggee without unraising and raising again the debugger's interface&lt;br /&gt;
* Debugger tools: now we keep the layout for each watch tool in preferences.&lt;br /&gt;
* Custom conditions now also take environment variables into account.&lt;br /&gt;
* Display unsubstitued path to cluster/assembly/library if a file/directory open error occurs.&lt;br /&gt;
* Added a cancel button in the dialog of the automatic precompilation to cancel the precompilation.&lt;br /&gt;
* COM Wizard: EiffelStudio button is enabled also if the Eiffel compilation fails.&lt;br /&gt;
* Generate an error if a configuration file used in a precompile has structurally been changed as the precompile is not usable in this case anymore.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* Don't do an expensive degree 6 if assertion level or similar project settings have changed.&lt;br /&gt;
* Decreased amount of created GDI objects on windows in some grids.&lt;br /&gt;
* Fixed a problem with externals in the project settings.&lt;br /&gt;
* Fixed viewpoint handling for assemblies&lt;br /&gt;
* Fixed output to file redirection in the process library on windows.&lt;br /&gt;
* Fixed samples that would not compile.&lt;br /&gt;
* Fixed a crash if a library without an UUID is used.&lt;br /&gt;
* Fixed a problem that classes that were not visible before did not get compiled when they were made visible.&lt;br /&gt;
* Fixed CECIL name if there is a renaming specified in the visible clause.&lt;br /&gt;
* Fixed VTCT error was not detected if a prefix/renaming changed on an assembly or library.&lt;br /&gt;
* Vision2: Fixed bug when setting a pixmap on a menu entry which has a submenu, the submenu would disappear.&lt;br /&gt;
* COM wizard: Time library was not included which lead to problems if a COM component used the DATE_TIME data type.&lt;br /&gt;
* Fixed a bug in the check if local assemblies are present.&lt;br /&gt;
* Fixed some problems with sub clusters of overrides.&lt;br /&gt;
* Interpolate environment variables also in metadata cache path specified on the command line.&lt;br /&gt;
* Fixed some bugs in the documentation generation related to sub clusters.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* EXECUTION_ENVIRONMENT.get will only retrieve environment variable. It won't retrieve a value from the registry key on Windows (from HKLM\Software\ISE\Eiffelxx\app_name). This also means that MELT_PATH on Windows cannot be set in registry; this is not really a problem since now you do not need to set it since the W_code knows where to find it.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
* cli_debugger is now under framework, and the corresponding clib has to be compiled.&lt;br /&gt;
* New delivery scripts on unix will now compress packages using bzip2 as they are about 30% smaller than the packages build with gzip.&lt;br /&gt;
* The eifinit/studio folder has now been moved into studio/eifinit&lt;br /&gt;
* build has been renamed into esbuilder&lt;br /&gt;
* vision2_tour has been renamed into vision2_demo&lt;br /&gt;
* Possibility to build a delivery which fits into the unix directory layout.&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.0_Releases&amp;diff=6089</id>
		<title>EiffelStudio 6.0 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.0_Releases&amp;diff=6089"/>
				<updated>2006-11-14T23:05:16Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: /* New features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.0.x Releases=&lt;br /&gt;
==6.0.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release.&lt;br /&gt;
===New features===&lt;br /&gt;
* Project settings such as arguments/working directory/location are now stored in a user specific location that does not depend on the UUID of the project, but on its path.&lt;br /&gt;
* Possibility for &amp;quot;hidden/implementation&amp;quot; clusters in libraries, clusters that are not accessible if the library is used (like libraries in libraries are not accessible).&lt;br /&gt;
* Don't do an expensive degree 6 when we freeze or finalize.&lt;br /&gt;
* Newly added clusters are recursive by default.&lt;br /&gt;
* Favorites are now stored in the user settings.&lt;br /&gt;
* Warning if an environment variable has changed and opportunity to (temporarily) use the old, stored value&lt;br /&gt;
* Trigger a full configuration rebuild if environment variables have changed&lt;br /&gt;
* Added configurable (project to class-level) optimization for .NET project that will mark all classes frozen if they are not descended by another.&lt;br /&gt;
* Add assemblies dialog shows more assembly information.&lt;br /&gt;
* Some diagram generation for assemblies&lt;br /&gt;
* Display documentation for .NET Framework assemblies on .NET 2.0&lt;br /&gt;
* Display features tree for .NET classes.&lt;br /&gt;
* Display uncompiled .NET classes.&lt;br /&gt;
* New Debugging options dialog (to set the arguments and other)&lt;br /&gt;
* Now we can pass modified environment variables to the debuggee application.&lt;br /&gt;
* Externals (includes, objects, resources, ...) can now be relative to the ecf file by using the new replacement $ECF_CONFIG_PATH.&lt;br /&gt;
* UUID is not needed for non library systems. If no uuid is specified a random one will be generated. (Startup dialog may not work correct if the config has not been saved with the random generated uuid)&lt;br /&gt;
* Integers can now also be specified with binary and octal representation&lt;br /&gt;
* Manifest characters can now also be specified with binary, octal and hexadecimal representation. Manifest characters can be specified up to 32 Bit.&lt;br /&gt;
* New contextual menu on breakpoints tool for multiple action on class (enable first bp on all features ...)&lt;br /&gt;
* Only expand the currently used target in the project settings.&lt;br /&gt;
* Changed version of configuration format to 1.1.0&lt;br /&gt;
* Only print warnings for unknown attributes and tags if we detect an unknown version (try to be upward compatible).&lt;br /&gt;
* Speed up consumer cache synchronization so working with large .NET caches or large assembly sets is much faster.&lt;br /&gt;
* Debugger: now it is possible to restart the debuggee without unraising and raising again the debugger's interface&lt;br /&gt;
* Debugger tools: now we keep the layout for each watch tool in preferences.&lt;br /&gt;
* Custom conditions now also take environment variables into account.&lt;br /&gt;
* Display unsubstitued path to cluster/assembly/library if a file/directory open error occurs.&lt;br /&gt;
* Added a cancel button in the dialog of the automatic precompilation to cancel the precompilation.&lt;br /&gt;
* COM Wizard: EiffelStudio button is enabled also if the Eiffel compilation fails.&lt;br /&gt;
* Generate an error if a configuration file used in a precompile has structurally been changed as the precompile is not usable in this case anymore.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* Don't do an expensive degree 6 if assertion level or similar project settings have changed.&lt;br /&gt;
* Decreased amount of created GDI objects on windows in some grids.&lt;br /&gt;
* Fixed a problem with externals in the project settings.&lt;br /&gt;
* Fixed viewpoint handling for assemblies&lt;br /&gt;
* Fixed output to file redirection in the process library on windows.&lt;br /&gt;
* Fixed samples that would not compile.&lt;br /&gt;
* Fixed a crash if a library without an UUID is used.&lt;br /&gt;
* Fixed a problem that classes that were not visible before did not get compiled when they were made visible.&lt;br /&gt;
* Fixed CECIL name if there is a renaming specified in the visible clause.&lt;br /&gt;
* Fixed VTCT error was not detected if a prefix/renaming changed on an assembly or library.&lt;br /&gt;
* Vision2: Fixed bug when setting a pixmap on a menu entry which has a submenu, the submenu would disappear.&lt;br /&gt;
* COM wizard: Time library was not included which lead to problems if a COM component used the DATE_TIME data type.&lt;br /&gt;
* Fixed a bug in the check if local assemblies are present.&lt;br /&gt;
* Fixed some problems with sub clusters of overrides.&lt;br /&gt;
* Interpolate environment variables also in metadata cache path specified on the command line.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* EXECUTION_ENVIRONMENT.get will only retrieve environment variable. It won't retrieve a value from the registry key on Windows (from HKLM\Software\ISE\Eiffelxx\app_name). This also means that MELT_PATH on Windows cannot be set in registry; this is not really a problem since now you do not need to set it since the W_code knows where to find it.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
* cli_debugger is now under framework, and the corresponding clib has to be compiled.&lt;br /&gt;
* New delivery scripts on unix will now compress packages using bzip2 as they are about 30% smaller than the packages build with gzip.&lt;br /&gt;
* The eifinit/studio folder has now been moved into studio/eifinit&lt;br /&gt;
* build has been renamed into esbuilder&lt;br /&gt;
* vision2_tour has been renamed into vision2_demo&lt;br /&gt;
* Possibility to build a delivery which fits into the unix directory layout.&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=User:Patrickr&amp;diff=6083</id>
		<title>User:Patrickr</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=User:Patrickr&amp;diff=6083"/>
				<updated>2006-11-14T22:04:20Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: /* Contact */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:People]]&lt;br /&gt;
==Contact==&lt;br /&gt;
*Mail: [mailto:patrickr@eiffel.com patrickr@eiffel.com]&lt;br /&gt;
*GMT-8 (Santa Barbara)&lt;br /&gt;
*Skype: patrickruckstuhl&lt;br /&gt;
&lt;br /&gt;
==Current projects==&lt;br /&gt;
*[[LinuxUnixLayout|Installation layout on Unix/Linux]]&lt;br /&gt;
*[[Configuration|New configuration system]]&lt;br /&gt;
&lt;br /&gt;
==Past projects==&lt;br /&gt;
*Diff Library&lt;br /&gt;
*[[Refactoring|Refactoring facilities for EiffelStudio]]&lt;br /&gt;
&lt;br /&gt;
==Contrib==&lt;br /&gt;
https://eiffelsoftware.origo.ethz.ch/svn/contrib/users/patrickr&lt;br /&gt;
&lt;br /&gt;
*eiffel: a bash autocompletion script for the ec command line command&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:ProposalLibraryDependencies&amp;diff=6080</id>
		<title>Talk:ProposalLibraryDependencies</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:ProposalLibraryDependencies&amp;diff=6080"/>
				<updated>2006-11-14T21:39:56Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''--[[User:Paulb|Paulb]] 21:23, 14 November 2006 (CET)'''&lt;br /&gt;
&lt;br /&gt;
I don't know if the Examples are going to turn into anything concrete. I don't like a useless &amp;quot;'''com.'''&amp;quot; prefix. &amp;quot;'''eiffel.'''&amp;quot; is useless also because it's an Eiffel library. I'm assuming you meant &amp;quot;'''eiffelsoftware.'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
My suggestions for naming conventions should be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;company&amp;gt;.&amp;lt;type&amp;gt;.&amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For EiffelBase: '''eiffelsoftware.library.base'''&lt;br /&gt;
*For a utiltiy framework: '''eiffelsoftware.framework.utilities'''&lt;br /&gt;
*For the Eiffel parser: '''eiffelsoftware.eiffel.parser'''&lt;br /&gt;
*For the Eiffel compiler: '''eiffelsoftware.eiffel.compiler'''&lt;br /&gt;
&lt;br /&gt;
'''--[[User:Patrickr|Patrickr]] 22:37, 14 November 2006 (CET)'''&lt;br /&gt;
&lt;br /&gt;
My idea was to use the url of the &amp;quot;company&amp;quot; producing the library to be sure that the name is unique, from most general to more specific. So for base from eiffel.com the idea was com.eiffel.base, gobo could then for example be net.sourceforge.gobo.base (basically the same schema that is used in the java world).&lt;br /&gt;
I would not put the type into the name, as there are no clear borders between a framework and a library and it's possible that a library can later turn into a framework.&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:ProposalLibraryDependencies&amp;diff=6079</id>
		<title>Talk:ProposalLibraryDependencies</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:ProposalLibraryDependencies&amp;diff=6079"/>
				<updated>2006-11-14T21:38:17Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''--[[User:Paulb|Paulb]] 21:23, 14 November 2006 (CET)'''&lt;br /&gt;
&lt;br /&gt;
I don't know if the Examples are going to turn into anything concrete. I don't like a useless &amp;quot;'''com.'''&amp;quot; prefix. &amp;quot;'''eiffel.'''&amp;quot; is useless also because it's an Eiffel library. I'm assuming you meant &amp;quot;'''eiffelsoftware.'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
My suggestions for naming conventions should be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;company&amp;gt;.&amp;lt;type&amp;gt;.&amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For EiffelBase: '''eiffelsoftware.library.base'''&lt;br /&gt;
*For a utiltiy framework: '''eiffelsoftware.framework.utilities'''&lt;br /&gt;
*For the Eiffel parser: '''eiffelsoftware.eiffel.parser'''&lt;br /&gt;
*For the Eiffel compiler: '''eiffelsoftware.eiffel.compiler'''&lt;br /&gt;
&lt;br /&gt;
'''--[[User:Patrickr|Patrickr]] 22:37, 14 November 2006 (CET)'''&lt;br /&gt;
&lt;br /&gt;
My idea was to use the url of the &amp;quot;company&amp;quot; producing the library to be sure that the name is unique, from most general to more specific. So for base from eiffel.com the idea was com.eiffel.base, gobo could then for example be net.sourceforge.gobo.base (basically the same schema that is used in the java world).&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:ProposalLibraryDependencies&amp;diff=6078</id>
		<title>Talk:ProposalLibraryDependencies</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:ProposalLibraryDependencies&amp;diff=6078"/>
				<updated>2006-11-14T21:37:45Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''--[[User:Paulb|Paulb]] 21:23, 14 November 2006 (CET)'''&lt;br /&gt;
&lt;br /&gt;
I don't know if the Examples are going to turn into anything concrete. I don't like a useless &amp;quot;'''com.'''&amp;quot; prefix. &amp;quot;'''eiffel.'''&amp;quot; is useless also because it's an Eiffel library. I'm assuming you meant &amp;quot;'''eiffelsoftware.'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
My suggestions for naming conventions should be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;company&amp;gt;.&amp;lt;type&amp;gt;.&amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For EiffelBase: '''eiffelsoftware.library.base'''&lt;br /&gt;
*For a utiltiy framework: '''eiffelsoftware.framework.utilities'''&lt;br /&gt;
*For the Eiffel parser: '''eiffelsoftware.eiffel.parser'''&lt;br /&gt;
*For the Eiffel compiler: '''eiffelsoftware.eiffel.compiler'''&lt;br /&gt;
&lt;br /&gt;
'''--[[User:Patrickr|Patrickr]] 22:37, 14 November 2006 (CET)'''&lt;br /&gt;
&lt;br /&gt;
My idea was to use the url of the &amp;quot;company&amp;quot; producing the library to be sure that the name is unique, from most general to more specific. So from base from eiffel.com the idea was com.eiffel.base, gobo could then for example be net.sourceforge.gobo.base (basically the same schema that is used in the java world).&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:EiffelStudio_Internationalization&amp;diff=6062</id>
		<title>Talk:EiffelStudio Internationalization</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:EiffelStudio_Internationalization&amp;diff=6062"/>
				<updated>2006-11-14T01:38:28Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''--[[User:Patrickr|Patrickr]] 17:31, 9 November 2006 (CET)'''&lt;br /&gt;
&lt;br /&gt;
The location for the mo files should be setup in the environment library, on Unix those files go under&lt;br /&gt;
 /usr/share/locale&lt;br /&gt;
&lt;br /&gt;
e.g.&lt;br /&gt;
 /usr/share/locale/en/LC_MESSAGES/eiffelstudio.mo&lt;br /&gt;
 /usr/share/locale/de/LC_MESSAGES/eiffelstudio.mo&lt;br /&gt;
 /usr/share/locale/de_CH/LC_MESSAGES/eiffelstudio.mo&lt;br /&gt;
&lt;br /&gt;
'''--[[User:Juliant|Juliant]] 19:53, 10 November 2006 (CET)'''&lt;br /&gt;
&lt;br /&gt;
Is it really necessary that the language can be changed while running EiffelStudio? I would say this is set once (even during installation). It wouldn't be a problem to just restart EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
'''--[[User:Ted|Ted]] 03:20, 13 November 2006 (CET)'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
What are the advantages of putting mo files under /usr/share/locale? mo files are not shared between applications and normally users do not need to change mo files.&lt;br /&gt;
All mo files are put in ES installation directory, we only need to store the locale id as a preference.&lt;br /&gt;
More over, mo files are implemented to be accepted by the library only with names of locale id.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
We need to decide whether the language can be switched at runtime. Of course, not doing this as most applications definitely reduces a lot of time.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''--[[User:Patrickr|Patrickr]] 17:13, 13 November 2006 (CET)'''&lt;br /&gt;
&lt;br /&gt;
On Unix there are rules where which part of an application belongs to. Standardising this locations makes various things easier.&lt;br /&gt;
I also think changing the language during runtime is not necessary.&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.0_Releases&amp;diff=6061</id>
		<title>EiffelStudio 6.0 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.0_Releases&amp;diff=6061"/>
				<updated>2006-11-14T01:08:48Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: /* Developer changes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.0.x Releases=&lt;br /&gt;
==6.0.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release.&lt;br /&gt;
===New features===&lt;br /&gt;
* Project settings such as arguments/working directory/location are now stored in a user specific location that does not depend on the UUID of the project, but on its path.&lt;br /&gt;
* Possibility for &amp;quot;hidden/implementation&amp;quot; clusters in libraries, clusters that are not accessible if the library is used (like libraries in libraries are not accessible).&lt;br /&gt;
* Don't do an expensive degree 6 when we freeze or finalize.&lt;br /&gt;
* Newly added clusters are recursive by default.&lt;br /&gt;
* Favorites are now stored in the user settings.&lt;br /&gt;
* Warning if an environment variable has changed and opportunity to (temporarily) use the old, stored value&lt;br /&gt;
* Trigger a full configuration rebuild if environment variables have changed&lt;br /&gt;
* Added configurable (project to class-level) optimization for .NET project that will mark all classes frozen if they are not descended by another.&lt;br /&gt;
* Add assemblies dialog shows more assembly information.&lt;br /&gt;
* Some diagram generation for assemblies&lt;br /&gt;
* Display documentation for .NET Framework assemblies on .NET 2.0&lt;br /&gt;
* Display features tree for .NET classes.&lt;br /&gt;
* Display uncompiled .NET classes.&lt;br /&gt;
* New Debugging options dialog (to set the arguments and other)&lt;br /&gt;
* Now we can pass modified environment variables to the debuggee application.&lt;br /&gt;
* Externals (includes, objects, resources, ...) can now be relative to the ecf file by using the new replacement $ECF_CONFIG_PATH.&lt;br /&gt;
* UUID is not needed for non library systems. If no uuid is specified a random one will be generated. (Startup dialog may not work correct if the config has not been saved with the random generated uuid)&lt;br /&gt;
* Integers can now also be specified with binary and octal representation&lt;br /&gt;
* Manifest characters can now also be specified with binary, octal and hexadecimal representation. Manifest characters can be specified up to 32 Bit.&lt;br /&gt;
* New contextual menu on breakpoints tool for multiple action on class (enable first bp on all features ...)&lt;br /&gt;
* Only expand the currently used target in the project settings.&lt;br /&gt;
* Changed version of configuration format to 1.1.0&lt;br /&gt;
* Only print warnings for unknown attributes and tags if we detect an unknown version (try to be upward compatible).&lt;br /&gt;
* Speed up consumer cache synchronization so working with large .NET caches or large assembly sets is much faster.&lt;br /&gt;
* Debugger: now it is possible to restart the debuggee without unraising and raising again the debugger's interface&lt;br /&gt;
* Debugger tools: now we keep the layout for each watch tool in preferences.&lt;br /&gt;
* Custom conditions now also take environment variables into account.&lt;br /&gt;
* Display unsubstitued path to cluster/assembly/library if a file/directory open error occurs.&lt;br /&gt;
* Added a cancel button in the dialog of the automatic precompilation to cancel the precompilation.&lt;br /&gt;
* COM Wizard: EiffelStudio button is enabled also if the Eiffel compilation fails.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* Don't do an expensive degree 6 if assertion level or similar project settings have changed.&lt;br /&gt;
* Decreased amount of created GDI objects on windows in some grids.&lt;br /&gt;
* Fixed a problem with externals in the project settings.&lt;br /&gt;
* Fixed viewpoint handling for assemblies&lt;br /&gt;
* Fixed output to file redirection in the process library on windows.&lt;br /&gt;
* Fixed samples that would not compile.&lt;br /&gt;
* Fixed a crash if a library without an UUID is used.&lt;br /&gt;
* Fixed a problem that classes that were not visible before did not get compiled when they were made visible.&lt;br /&gt;
* Fixed CECIL name if there is a renaming specified in the visible clause.&lt;br /&gt;
* Fixed VTCT error was not detected if a prefix/renaming changed on an assembly or library.&lt;br /&gt;
* Vision2: Fixed bug when setting a pixmap on a menu entry which has a submenu, the submenu would disappear.&lt;br /&gt;
* COM wizard: Time library was not included which lead to problems if a COM component used the DATE_TIME data type.&lt;br /&gt;
* Fixed a bug in the check if local assemblies are present.&lt;br /&gt;
* Fixed some problems with sub clusters of overrides.&lt;br /&gt;
* Interpolate environment variables also in metadata cache path specified on the command line.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* EXECUTION_ENVIRONMENT.get will only retrieve environment variable. It won't retrieve a value from the registry key on Windows (from HKLM\Software\ISE\Eiffelxx\app_name). This also means that MELT_PATH on Windows cannot be set in registry; this is not really a problem since now you do not need to set it since the W_code knows where to find it.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
* cli_debugger is now under framework, and the corresponding clib has to be compiled.&lt;br /&gt;
* New delivery scripts on unix will now compress packages using bzip2 as they are about 30% smaller than the packages build with gzip.&lt;br /&gt;
* The eifinit/studio folder has now been moved into studio/eifinit&lt;br /&gt;
* build has been renamed into esbuilder&lt;br /&gt;
* vision2_tour has been renamed into vision2_demo&lt;br /&gt;
* Possibility to build a delivery which fits into the unix directory layout.&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=ProposalLibraryDependencies&amp;diff=6053</id>
		<title>ProposalLibraryDependencies</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=ProposalLibraryDependencies&amp;diff=6053"/>
				<updated>2006-11-13T21:44:23Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:EiffelStudio]]&lt;br /&gt;
[[Category:Configuration]]&lt;br /&gt;
= Problem =&lt;br /&gt;
Almost every Eiffel library has dependencies on other Eiffel libraries, at the moment those dependencies are specified by using a hard coded file location or expecting the library to be under $ISE_LIBRARY. This solution is not optimal for several reasons: It does not allow flexible installation of additional libraries if the user does not have write permissions in the $ISE_LIBRARY directory, it does not allow to have different, incompatible versions of a library installed at the same time.&lt;br /&gt;
&lt;br /&gt;
= Proposal =&lt;br /&gt;
== Library creation ==&lt;br /&gt;
A library gets a unique name and a version number.&lt;br /&gt;
&lt;br /&gt;
== Library usage ==&lt;br /&gt;
Instead of specifying the configuration file of the library, the name of the library and (optionally) a min/max version are specified.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
A repository would map the name, version numbers to actual configuration files. Initially this could be implemented by giving a list of directories to search for libraries, later a possibility to get libraries from an online repository could be added (similar to the Debian apt system).&lt;br /&gt;
&lt;br /&gt;
=== Versioning ===&lt;br /&gt;
As it should be possible for a library author to differentiate between bugfixes that don't change the library interface and interface changes, the version numbers should be used similar to the way it is done with shared libraries in the Unix world. The version number consists of four components: major.minor.release.build as long as major.minor version is equal, the library is expected to have the same interface and a newer version would replace an older version. If major.minor version would change this would lead to an additional available version.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
'''library com.eiffel.base version 5.7.1.1'''&lt;br /&gt;
&lt;br /&gt;
'''library com.eiffel.wel version 2.1.2.3'''&lt;br /&gt;
*com.eiffel.base min_version=5.7 max_version=5.7&lt;br /&gt;
&lt;br /&gt;
'''library com.eiffel.vision2 version 2.5.3.1'''&lt;br /&gt;
*com.eiffel.base min_version=6.0 max_version=6.0&lt;br /&gt;
*com.eiffel.wel min_version=2.5 max_version=2.5&lt;br /&gt;
&lt;br /&gt;
Installing com.eiffel.base version 5.7.2.1 would replace 5.7.1.1, installing 6.1.1.1 would just additionally install the new version.&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=ProposalLibraryDependencies&amp;diff=6050</id>
		<title>ProposalLibraryDependencies</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=ProposalLibraryDependencies&amp;diff=6050"/>
				<updated>2006-11-13T20:24:38Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Problem =&lt;br /&gt;
Almost every Eiffel library has dependencies on other Eiffel libraries, at the moment those dependencies are specified by using a hard coded file location or expecting the library to be under $ISE_LIBRARY. This solution is not optimal for several reasons: It does not allow flexible installation of additional libraries if the user does not have write permissions in the $ISE_LIBRARY directory, it does not allow to have different, incompatible versions of a library installed at the same time.&lt;br /&gt;
&lt;br /&gt;
= Proposal =&lt;br /&gt;
== Library creation ==&lt;br /&gt;
A library gets a unique name and a version number.&lt;br /&gt;
&lt;br /&gt;
== Library usage ==&lt;br /&gt;
Instead of specifying the configuration file of the library, the name of the library and (optionally) a min/max version are specified.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
A repository would map the name, version numbers to actual configuration files. Initially this could be implemented by giving a list of directories to search for libraries, later a possibility to get libraries from an online repository could be added (similar to the Debian apt system).&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:EiffelStudio_Internationalization&amp;diff=6041</id>
		<title>Talk:EiffelStudio Internationalization</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:EiffelStudio_Internationalization&amp;diff=6041"/>
				<updated>2006-11-13T16:13:41Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''--[[User:Patrickr|Patrickr]] 17:31, 9 November 2006 (CET)'''&lt;br /&gt;
&lt;br /&gt;
The location for the mo files should be setup in the environment library, on Unix those files go under&lt;br /&gt;
 /usr/share/locale&lt;br /&gt;
&lt;br /&gt;
e.g.&lt;br /&gt;
 /usr/share/locale/en/LC_MESSAGES/eiffelstudio.mo&lt;br /&gt;
 /usr/share/locale/de/LC_MESSAGES/eiffelstudio.mo&lt;br /&gt;
 /usr/share/locale/de_CH/LC_MESSAGES/eiffelstudio.mo&lt;br /&gt;
&lt;br /&gt;
'''--[[User:Juliant|Juliant]] 19:53, 10 November 2006 (CET)'''&lt;br /&gt;
&lt;br /&gt;
Is it really necessary that the language can be changed while running EiffelStudio? I would say this is set once (even during installation). It wouldn't be a problem to just restart EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
'''--[[User:Ted|Ted]] 03:20, 13 November 2006 (CET)'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
What are the advantages of putting mo files under /usr/share/locale? mo files are not shared between applications and normally users do not need to change mo files.&lt;br /&gt;
All mo files are put in ES installation directory, we only need to store the locale id as a preference.&lt;br /&gt;
More over, mo files are implemented to be accepted by the library only with names of locale id.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
We need to decide whether the language can be switched at runtime. Of course, not doing this as most applications definitely reduces a lot of time.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''--[[User:Patrickr|Patrickr]] 17:13, 13 November 2006 (CET)'''&lt;br /&gt;
&lt;br /&gt;
On Unix there are rules where which part of an application belongs to. Standardising this locations makes various things easier.&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:EiffelStudio_Internationalization&amp;diff=6040</id>
		<title>Talk:EiffelStudio Internationalization</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:EiffelStudio_Internationalization&amp;diff=6040"/>
				<updated>2006-11-13T16:13:30Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''--[[User:Patrickr|Patrickr]] 17:31, 9 November 2006 (CET)'''&lt;br /&gt;
&lt;br /&gt;
The location for the mo files should be setup in the environment library, on Unix those files go under&lt;br /&gt;
 /usr/share/locale&lt;br /&gt;
&lt;br /&gt;
e.g.&lt;br /&gt;
 /usr/share/locale/en/LC_MESSAGES/eiffelstudio.mo&lt;br /&gt;
 /usr/share/locale/de/LC_MESSAGES/eiffelstudio.mo&lt;br /&gt;
 /usr/share/locale/de_CH/LC_MESSAGES/eiffelstudio.mo&lt;br /&gt;
&lt;br /&gt;
'''--[[User:Juliant|Juliant]] 19:53, 10 November 2006 (CET)'''&lt;br /&gt;
&lt;br /&gt;
Is it really necessary that the language can be changed while running EiffelStudio? I would say this is set once (even during installation). It wouldn't be a problem to just restart EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
'''--[[User:Ted|Ted]] 03:20, 13 November 2006 (CET)'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
What are the advantages of putting mo files under /usr/share/locale? mo files are not shared between applications and normally users do not need to change mo files.&lt;br /&gt;
All mo files are put in ES installation directory, we only need to store the locale id as a preference.&lt;br /&gt;
More over, mo files are implemented to be accepted by the library only with names of locale id.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
We need to decide whether the language can be switched at runtime. Of course, not doing this as most applications definitely reduces a lot of time.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''--[[User:Patrickr|Patrickr]] 17:13, 13 November 2006 (CET)'''&lt;br /&gt;
On Unix there are rules where which part of an application belongs to. Standardising this locations makes various things easier.&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:EiffelStudio_Internationalization&amp;diff=6017</id>
		<title>Talk:EiffelStudio Internationalization</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:EiffelStudio_Internationalization&amp;diff=6017"/>
				<updated>2006-11-10T19:14:15Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''--[[User:Patrickr|Patrickr]] 17:31, 9 November 2006 (CET)'''&lt;br /&gt;
&lt;br /&gt;
The location for the mo files should be setup in the environment library, on Unix those files go under&lt;br /&gt;
 /usr/share/locale&lt;br /&gt;
&lt;br /&gt;
e.g.&lt;br /&gt;
 /usr/share/locale/en/LC_MESSAGES/eiffelstudio.mo&lt;br /&gt;
 /usr/share/locale/de/LC_MESSAGES/eiffelstudio.mo&lt;br /&gt;
 /usr/share/locale/de_CH/LC_MESSAGES/eiffelstudio.mo&lt;br /&gt;
&lt;br /&gt;
'''--[[User:Juliant|Juliant]] 19:53, 10 November 2006 (CET)'''&lt;br /&gt;
&lt;br /&gt;
Is it really necessary that the language can be changed while running EiffelStudio? I would say this is set once (even during installation). It wouldn't be a problem to just restart EiffelStudio.&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_6.0_Releases&amp;diff=6010</id>
		<title>EiffelStudio 6.0 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_6.0_Releases&amp;diff=6010"/>
				<updated>2006-11-10T16:35:11Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: /* Bug fixes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 6.0.x Releases=&lt;br /&gt;
==6.0.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release.&lt;br /&gt;
===New features===&lt;br /&gt;
* Project settings such as arguments/working directory/location are now stored in a user specific location that does not depend on the UUID of the project, but on its path.&lt;br /&gt;
* Possibility for &amp;quot;hidden/implementation&amp;quot; clusters in libraries, clusters that are not accessible if the library is used (like libraries in libraries are not accessible).&lt;br /&gt;
* Don't do an expensive degree 6 when we freeze or finalize.&lt;br /&gt;
* Newly added clusters are recursive by default.&lt;br /&gt;
* Favorites are now stored in the user settings.&lt;br /&gt;
* Warning if an environment variable has changed and opportunity to (temporarily) use the old, stored value&lt;br /&gt;
* Trigger a full configuration rebuild if environment variables have changed&lt;br /&gt;
* Added configurable (project to class-level) optimization for .NET project that will mark all classes frozen if they are not descended by another.&lt;br /&gt;
* Add assemblies dialog shows more assembly information.&lt;br /&gt;
* Some diagram generation for assemblies&lt;br /&gt;
* Display documentation for .NET Framework assemblies on .NET 2.0&lt;br /&gt;
* Display features tree for .NET classes.&lt;br /&gt;
* Display uncompiled .NET classes.&lt;br /&gt;
* New Debugging options dialog (to set the arguments and other)&lt;br /&gt;
* Now we can pass modified environment variables to the debuggee application.&lt;br /&gt;
* Externals (includes, objects, resources, ...) can now be relative to the ecf file by using the new replacement $ECF_CONFIG_PATH.&lt;br /&gt;
* UUID is not needed for non library systems. If no uuid is specified a random one will be generated. (Startup dialog may not work correct if the config has not been saved with the random generated uuid)&lt;br /&gt;
* Integers can now also be specified with binary and octal representation&lt;br /&gt;
* Manifest characters can now also be specified with binary, octal and hexadecimal representation. Manifest characters can be specified up to 32 Bit.&lt;br /&gt;
* New contextual menu on breakpoints tool for multiple action on class (enable first bp on all features ...)&lt;br /&gt;
* Only expand the currently used target in the project settings.&lt;br /&gt;
* Changed version of configuration format to 1.1.0&lt;br /&gt;
* Only print warnings for unknown attributes and tags if we detect an unknown version (try to be upward compatible).&lt;br /&gt;
* Speed up consumer cache synchronization so working with large .NET caches or large assembly sets is much faster.&lt;br /&gt;
* Debugger: now it is possible to restart the debuggee without unraising and raising again the debugger's interface&lt;br /&gt;
* Debugger tools: now we keep the layout for each watch tool in preferences.&lt;br /&gt;
* Custom conditions now also take environment variables into account.&lt;br /&gt;
* Display unsubstitued path to cluster/assembly/library if a file/directory open error occurs.&lt;br /&gt;
* Added a cancel button in the dialog of the automatic precompilation to cancel the precompilation.&lt;br /&gt;
* COM Wizard: EiffelStudio button is enabled also if the Eiffel compilation fails.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* Don't do an expensive degree 6 if assertion level or similar project settings have changed.&lt;br /&gt;
* Decreased amount of created GDI objects on windows in some grids.&lt;br /&gt;
* Fixed a problem with externals in the project settings.&lt;br /&gt;
* Fixed viewpoint handling for assemblies&lt;br /&gt;
* Fixed output to file redirection in the process library on windows.&lt;br /&gt;
* Fixed samples that would not compile.&lt;br /&gt;
* Fixed a crash if a library without an UUID is used.&lt;br /&gt;
* Fixed a problem that classes that were not visible before did not get compiled when they were made visible.&lt;br /&gt;
* Fixed CECIL name if there is a renaming specified in the visible clause.&lt;br /&gt;
* Fixed VTCT error was not detected if a prefix/renaming changed on an assembly or library.&lt;br /&gt;
* Vision2: Fixed bug when setting a pixmap on a menu entry which has a submenu, the submenu would disappear.&lt;br /&gt;
* COM wizard: Time library was not included which lead to problems if a COM component used the DATE_TIME data type.&lt;br /&gt;
* Fixed a bug in the check if local assemblies are present.&lt;br /&gt;
* Fixed some problems with sub clusters of overrides.&lt;br /&gt;
* Interpolate environment variables also in metadata cache path specified on the command line.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* EXECUTION_ENVIRONMENT.get will only retrieve environment variable. It won't retrieve a value from the registry key on Windows (from HKLM\Software\ISE\Eiffelxx\app_name). This also means that MELT_PATH on Windows cannot be set in registry; this is not really a problem since now you do not need to set it since the W_code knows where to find it.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
* cli_debugger is now under framework, and the corresponding clib has to be compiled.&lt;br /&gt;
* New delivery scripts on unix will now compress packages using bzip2 as they are about 30% smaller than the packages build with gzip.&lt;br /&gt;
* The eifinit/studio folder has now been moved into studio/eifinit&lt;br /&gt;
* build has been renamed into esbuilder&lt;br /&gt;
* vision2_tour has been renamed into vision2_demo&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=ConfigurationGuiLibrary&amp;diff=5998</id>
		<title>ConfigurationGuiLibrary</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=ConfigurationGuiLibrary&amp;diff=5998"/>
				<updated>2006-11-09T20:43:33Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Configuration]]&lt;br /&gt;
=Usage=&lt;br /&gt;
==Configuration Window==&lt;br /&gt;
The normal way to use the configuration gui library is to create an instance of CONFIGURATION_WINDOW which provides the project settings dialog from EiffelStudio.&lt;br /&gt;
==Property Grid==&lt;br /&gt;
It is also possible to use display a property grid with the settings for a target, class, cluster. To do this inherit from GROUP_PROPERTIES or TARGET_PROPERTIES which provide features to add properties of a group, target to a PROPERTY_GRID.&lt;br /&gt;
&lt;br /&gt;
See for example https://eiffelsoftware.origo.ethz.ch/svn/es/trunk/Src/Eiffel/interface/new_graphical/tools/eb_properties_tool.e&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=ConfigurationCompilerLibrary&amp;diff=5997</id>
		<title>ConfigurationCompilerLibrary</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=ConfigurationCompilerLibrary&amp;diff=5997"/>
				<updated>2006-11-09T20:35:18Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: /* rebuild */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Configuration]]&lt;br /&gt;
*if config file changed&lt;br /&gt;
**if configuration group equivalent with old (no changes of the cluster/library/assembly/override structure)&lt;br /&gt;
***set options&lt;br /&gt;
***check modified&lt;br /&gt;
**else&lt;br /&gt;
***rebuild&lt;br /&gt;
*else&lt;br /&gt;
**check modified&lt;br /&gt;
&lt;br /&gt;
*if error like class not found that could be solved by rebuild&lt;br /&gt;
**rebuild&lt;br /&gt;
&lt;br /&gt;
=== set options ===&lt;br /&gt;
{{Class|CONF_RECOMPUTE_OPTIONS}}&lt;br /&gt;
&lt;br /&gt;
Set the options from the newly parsed configuration to the old configuration system.&lt;br /&gt;
&lt;br /&gt;
=== check modified ===&lt;br /&gt;
{{Class|CONF_MODIFIED_VISITOR}}&lt;br /&gt;
&lt;br /&gt;
Check for compiled classes that have been modified. In addition, check for classes added in override clusters and renamed classes which forces a rebuild.&lt;br /&gt;
&lt;br /&gt;
=== rebuild ===&lt;br /&gt;
{{Class|CONF_BUILD_VISITOR}}&lt;br /&gt;
Build or rebuild the whole information, if possible try to reuse class objects from the old configuration system.&lt;br /&gt;
&lt;br /&gt;
{{Class|CONF_CONSUMER_MANAGER}}&lt;br /&gt;
Is created and called by {{Class|CONF_BUILD_VISITOR}} and deals with (re)building/(re)consuming types of assemblies.&lt;br /&gt;
Assemblies are only partially consumed and if types of an assembly are actually used they are later fully consumed in degree 5 which calls the CONF_CONSUMER_MANAGER again.&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=ConfigurationParserLibrary&amp;diff=5996</id>
		<title>ConfigurationParserLibrary</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=ConfigurationParserLibrary&amp;diff=5996"/>
				<updated>2006-11-09T20:22:21Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: /* Retrieval and Storage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Configuration]]&lt;br /&gt;
== General==&lt;br /&gt;
The basic layout of a configuration system is a system that has multiple targets (which may inherit from each other), every target can have some libraries, assemblies override clusters and normal clusters. Clusters can have sub clusters.&lt;br /&gt;
[[Image:Config_basic_layout.png|||none]]&lt;br /&gt;
=== CONF_SYSTEM ===&lt;br /&gt;
Every configuration file describes one CONF_SYSTEM and has one or more CONF_TARGET associated. Normally a CONF_SYSTEM object is generated by parsing a configuration file with CONF_LOAD.&lt;br /&gt;
&lt;br /&gt;
==== Implementation ====&lt;br /&gt;
Every CONF_SYSTEM has an associated UUID. If there is no UUID specified in the configuration file a random one will be generated when the file is loaded. If a system is used as a library the UUID has to be specified in the configuration file as this is used to detect multiple usage of the same library.&lt;br /&gt;
&lt;br /&gt;
=== CONF_TARGET ===&lt;br /&gt;
The target is the basic block that an application or a library is built of. A target can extend another target. If a system can be used as a library, one target has to be specified as the library target.&lt;br /&gt;
&lt;br /&gt;
==== Implementation ====&lt;br /&gt;
In a fully parsed system, every CONF_SYSTEM has the application_target set. This is the back link in libraries to the target that represents the application.&lt;br /&gt;
&lt;br /&gt;
One thing to take into account when extending another target is, that only classes in clusters/libraries in a target can be reached.&lt;br /&gt;
e.g.&lt;br /&gt;
&lt;br /&gt;
*target common&lt;br /&gt;
**cluster a&lt;br /&gt;
*target special extends common&lt;br /&gt;
**cluster b&lt;br /&gt;
&lt;br /&gt;
If we compile target special, classes in b can use classes in a but classes in a can not use classes in b as this is not in the scope of a.&lt;br /&gt;
&lt;br /&gt;
=== CONF_LIBRARY ===&lt;br /&gt;
A CONF_LIBRARY node describes the use of a library in an application or another library. Once the configuration has been fully parsed it has a library target. All CONF_LIBRARY nodes for one library point to the same library_target.&lt;br /&gt;
&lt;br /&gt;
=== CONF_ASSEMBLY ===&lt;br /&gt;
A CONF_ASSEMBLY is very similar to a CONF_LIBRARY. Instead of a library_target there is a CONF_PHYSICAL_ASSEMBLY that all references to the same assembly share.&lt;br /&gt;
&lt;br /&gt;
=== CONF_CLUSTER ===&lt;br /&gt;
A CONF_CLUSTER represents a cluster that has actual classes in it.&lt;br /&gt;
&lt;br /&gt;
=== CONF_OVERRIDE ===&lt;br /&gt;
An override cluster is a normal cluster with the special thing, that classes in here with the same name than other classes override classes in the other cluster.&lt;br /&gt;
&lt;br /&gt;
=== CONF_ACCESS ===&lt;br /&gt;
For a class to be able to modify a configuration it needs to inherit from CONF_ACCESS.&lt;br /&gt;
&lt;br /&gt;
== Retrieval and Storage ==&lt;br /&gt;
Loading a configuration from a file.&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel,n]&lt;br /&gt;
	load_configuration (a_file: STRING) is&lt;br /&gt;
			-- Load configuration file `a_file'.&lt;br /&gt;
		require&lt;br /&gt;
			a_file_ok: a_file /= Void and then not a_file.is_empty&lt;br /&gt;
		local&lt;br /&gt;
			l_loader: CONF_LOAD&lt;br /&gt;
		do&lt;br /&gt;
			create l_loader.make (create {CONF_PARSE_FACTORY})&lt;br /&gt;
			l_loader.retrieve_configuration (a_file)&lt;br /&gt;
			if l_loader.is_error then&lt;br /&gt;
				display_error (l_loader.last_error)&lt;br /&gt;
			else&lt;br /&gt;
				system := l_loader.last_system&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Storing a configuration to a file.&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel,n]&lt;br /&gt;
	store_configuration (a_system: CONF_SYSTEM) is&lt;br /&gt;
			-- Store `a_system' to its configuration file.&lt;br /&gt;
		require&lt;br /&gt;
			a_system_ok: a_system /= Void&lt;br /&gt;
		do&lt;br /&gt;
			a_system.store&lt;br /&gt;
			if not a_system.store_successful then&lt;br /&gt;
				display_error (&amp;quot;Could not store system in &amp;quot; + a_system.file_name)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Importing an ACE file.&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel,n]&lt;br /&gt;
	import_ace (a_file: STRING) is&lt;br /&gt;
			-- Load configuration file `a_file'.&lt;br /&gt;
		require&lt;br /&gt;
			a_file_ok: a_file /= Void and then not a_file.is_empty&lt;br /&gt;
		local&lt;br /&gt;
			l_loader: CONF_LOAD_LACE&lt;br /&gt;
		do&lt;br /&gt;
			create l_loader.make (create {CONF_PARSE_FACTORY}, &amp;quot;ecf&amp;quot;)&lt;br /&gt;
			l_loader.retrieve_configuration (a_file)&lt;br /&gt;
			if l_loader.is_error then&lt;br /&gt;
				display_error (l_loader.last_error)&lt;br /&gt;
			else&lt;br /&gt;
				system := l_loader.last_system&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=ConfigurationParserLibrary&amp;diff=5995</id>
		<title>ConfigurationParserLibrary</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=ConfigurationParserLibrary&amp;diff=5995"/>
				<updated>2006-11-09T20:22:12Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: /* Retrieval and Storage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Configuration]]&lt;br /&gt;
== General==&lt;br /&gt;
The basic layout of a configuration system is a system that has multiple targets (which may inherit from each other), every target can have some libraries, assemblies override clusters and normal clusters. Clusters can have sub clusters.&lt;br /&gt;
[[Image:Config_basic_layout.png|||none]]&lt;br /&gt;
=== CONF_SYSTEM ===&lt;br /&gt;
Every configuration file describes one CONF_SYSTEM and has one or more CONF_TARGET associated. Normally a CONF_SYSTEM object is generated by parsing a configuration file with CONF_LOAD.&lt;br /&gt;
&lt;br /&gt;
==== Implementation ====&lt;br /&gt;
Every CONF_SYSTEM has an associated UUID. If there is no UUID specified in the configuration file a random one will be generated when the file is loaded. If a system is used as a library the UUID has to be specified in the configuration file as this is used to detect multiple usage of the same library.&lt;br /&gt;
&lt;br /&gt;
=== CONF_TARGET ===&lt;br /&gt;
The target is the basic block that an application or a library is built of. A target can extend another target. If a system can be used as a library, one target has to be specified as the library target.&lt;br /&gt;
&lt;br /&gt;
==== Implementation ====&lt;br /&gt;
In a fully parsed system, every CONF_SYSTEM has the application_target set. This is the back link in libraries to the target that represents the application.&lt;br /&gt;
&lt;br /&gt;
One thing to take into account when extending another target is, that only classes in clusters/libraries in a target can be reached.&lt;br /&gt;
e.g.&lt;br /&gt;
&lt;br /&gt;
*target common&lt;br /&gt;
**cluster a&lt;br /&gt;
*target special extends common&lt;br /&gt;
**cluster b&lt;br /&gt;
&lt;br /&gt;
If we compile target special, classes in b can use classes in a but classes in a can not use classes in b as this is not in the scope of a.&lt;br /&gt;
&lt;br /&gt;
=== CONF_LIBRARY ===&lt;br /&gt;
A CONF_LIBRARY node describes the use of a library in an application or another library. Once the configuration has been fully parsed it has a library target. All CONF_LIBRARY nodes for one library point to the same library_target.&lt;br /&gt;
&lt;br /&gt;
=== CONF_ASSEMBLY ===&lt;br /&gt;
A CONF_ASSEMBLY is very similar to a CONF_LIBRARY. Instead of a library_target there is a CONF_PHYSICAL_ASSEMBLY that all references to the same assembly share.&lt;br /&gt;
&lt;br /&gt;
=== CONF_CLUSTER ===&lt;br /&gt;
A CONF_CLUSTER represents a cluster that has actual classes in it.&lt;br /&gt;
&lt;br /&gt;
=== CONF_OVERRIDE ===&lt;br /&gt;
An override cluster is a normal cluster with the special thing, that classes in here with the same name than other classes override classes in the other cluster.&lt;br /&gt;
&lt;br /&gt;
=== CONF_ACCESS ===&lt;br /&gt;
For a class to be able to modify a configuration it needs to inherit from CONF_ACCESS.&lt;br /&gt;
&lt;br /&gt;
== Retrieval and Storage ==&lt;br /&gt;
Loading a configuration from a file.&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel,n]&lt;br /&gt;
	load_configuration (a_file: STRING) is&lt;br /&gt;
			-- Load configuration file `a_file'.&lt;br /&gt;
		require&lt;br /&gt;
			a_file_ok: a_file /= Void and then not a_file.is_empty&lt;br /&gt;
		local&lt;br /&gt;
			l_loader: CONF_LOAD&lt;br /&gt;
		do&lt;br /&gt;
			create l_loader.make (create {CONF_PARSE_FACTORY})&lt;br /&gt;
			l_loader.retrieve_configuration (a_file)&lt;br /&gt;
			if l_loader.is_error then&lt;br /&gt;
				display_error (l_loader.last_error)&lt;br /&gt;
			else&lt;br /&gt;
				system := l_loader.last_system&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Storing a configuration to a file.&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel,n]&lt;br /&gt;
	store_configuration (a_system: CONF_SYSTEM) is&lt;br /&gt;
			-- Store `a_system' to its configuration file.&lt;br /&gt;
		require&lt;br /&gt;
			a_system_ok: a_system /= Void&lt;br /&gt;
		do&lt;br /&gt;
			a_system.store&lt;br /&gt;
			if not a_system.store_successful then&lt;br /&gt;
				display_error (&amp;quot;Could not store system in &amp;quot; + a_system.file_name)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Importing a ACE file.&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel,n]&lt;br /&gt;
	import_ace (a_file: STRING) is&lt;br /&gt;
			-- Load configuration file `a_file'.&lt;br /&gt;
		require&lt;br /&gt;
			a_file_ok: a_file /= Void and then not a_file.is_empty&lt;br /&gt;
		local&lt;br /&gt;
			l_loader: CONF_LOAD_LACE&lt;br /&gt;
		do&lt;br /&gt;
			create l_loader.make (create {CONF_PARSE_FACTORY}, &amp;quot;ecf&amp;quot;)&lt;br /&gt;
			l_loader.retrieve_configuration (a_file)&lt;br /&gt;
			if l_loader.is_error then&lt;br /&gt;
				display_error (l_loader.last_error)&lt;br /&gt;
			else&lt;br /&gt;
				system := l_loader.last_system&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=ConfigurationParserLibrary&amp;diff=5994</id>
		<title>ConfigurationParserLibrary</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=ConfigurationParserLibrary&amp;diff=5994"/>
				<updated>2006-11-09T20:18:20Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Configuration]]&lt;br /&gt;
== General==&lt;br /&gt;
The basic layout of a configuration system is a system that has multiple targets (which may inherit from each other), every target can have some libraries, assemblies override clusters and normal clusters. Clusters can have sub clusters.&lt;br /&gt;
[[Image:Config_basic_layout.png|||none]]&lt;br /&gt;
=== CONF_SYSTEM ===&lt;br /&gt;
Every configuration file describes one CONF_SYSTEM and has one or more CONF_TARGET associated. Normally a CONF_SYSTEM object is generated by parsing a configuration file with CONF_LOAD.&lt;br /&gt;
&lt;br /&gt;
==== Implementation ====&lt;br /&gt;
Every CONF_SYSTEM has an associated UUID. If there is no UUID specified in the configuration file a random one will be generated when the file is loaded. If a system is used as a library the UUID has to be specified in the configuration file as this is used to detect multiple usage of the same library.&lt;br /&gt;
&lt;br /&gt;
=== CONF_TARGET ===&lt;br /&gt;
The target is the basic block that an application or a library is built of. A target can extend another target. If a system can be used as a library, one target has to be specified as the library target.&lt;br /&gt;
&lt;br /&gt;
==== Implementation ====&lt;br /&gt;
In a fully parsed system, every CONF_SYSTEM has the application_target set. This is the back link in libraries to the target that represents the application.&lt;br /&gt;
&lt;br /&gt;
One thing to take into account when extending another target is, that only classes in clusters/libraries in a target can be reached.&lt;br /&gt;
e.g.&lt;br /&gt;
&lt;br /&gt;
*target common&lt;br /&gt;
**cluster a&lt;br /&gt;
*target special extends common&lt;br /&gt;
**cluster b&lt;br /&gt;
&lt;br /&gt;
If we compile target special, classes in b can use classes in a but classes in a can not use classes in b as this is not in the scope of a.&lt;br /&gt;
&lt;br /&gt;
=== CONF_LIBRARY ===&lt;br /&gt;
A CONF_LIBRARY node describes the use of a library in an application or another library. Once the configuration has been fully parsed it has a library target. All CONF_LIBRARY nodes for one library point to the same library_target.&lt;br /&gt;
&lt;br /&gt;
=== CONF_ASSEMBLY ===&lt;br /&gt;
A CONF_ASSEMBLY is very similar to a CONF_LIBRARY. Instead of a library_target there is a CONF_PHYSICAL_ASSEMBLY that all references to the same assembly share.&lt;br /&gt;
&lt;br /&gt;
=== CONF_CLUSTER ===&lt;br /&gt;
A CONF_CLUSTER represents a cluster that has actual classes in it.&lt;br /&gt;
&lt;br /&gt;
=== CONF_OVERRIDE ===&lt;br /&gt;
An override cluster is a normal cluster with the special thing, that classes in here with the same name than other classes override classes in the other cluster.&lt;br /&gt;
&lt;br /&gt;
=== CONF_ACCESS ===&lt;br /&gt;
For a class to be able to modify a configuration it needs to inherit from CONF_ACCESS.&lt;br /&gt;
&lt;br /&gt;
== Retrieval and Storage ==&lt;br /&gt;
Loading a configuration from a file.&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel,n]&lt;br /&gt;
	load_configuration (a_file: STRING) is&lt;br /&gt;
			-- Load configuration file `a_file'.&lt;br /&gt;
		require&lt;br /&gt;
			a_file_ok: a_file /= Void and then not a_file.is_empty&lt;br /&gt;
		local&lt;br /&gt;
			l_loader: CONF_LOAD&lt;br /&gt;
		do&lt;br /&gt;
			create l_loader.make (create {CONF_PARSE_FACTORY})&lt;br /&gt;
			l_loader.retrieve_configuration (a_file)&lt;br /&gt;
			if l_loader.is_error then&lt;br /&gt;
				display_error (l_loader.last_error)&lt;br /&gt;
			else&lt;br /&gt;
				system := l_loader.last_system&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Storing a configuration to a file.&lt;br /&gt;
&amp;lt;code&amp;gt;[eiffel,n]&lt;br /&gt;
	store_configuration (a_system: CONF_SYSTEM) is&lt;br /&gt;
			-- Store `a_system' to its configuration file.&lt;br /&gt;
		require&lt;br /&gt;
			a_system_ok: a_system /= Void&lt;br /&gt;
		do&lt;br /&gt;
			a_system.store&lt;br /&gt;
			if not a_system.store_successful then&lt;br /&gt;
				display_error (&amp;quot;Could not store system in &amp;quot; + a_system.file_name)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=ConfigurationGuiLibrary&amp;diff=5993</id>
		<title>ConfigurationGuiLibrary</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=ConfigurationGuiLibrary&amp;diff=5993"/>
				<updated>2006-11-09T19:50:34Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Configuration]]&lt;br /&gt;
The normal way to use the configuration gui library is to create an instance of CONFIGURATION_WINDOW which provides the project settings dialog from EiffelStudio.&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:ProposalConfigurationDiscovery&amp;diff=5992</id>
		<title>Talk:ProposalConfigurationDiscovery</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:ProposalConfigurationDiscovery&amp;diff=5992"/>
				<updated>2006-11-09T19:42:39Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''--[[User:Patrickr|Patrickr]] 02:53, 14 September 2006 (CEST)'''&lt;br /&gt;
&lt;br /&gt;
Maybe we could think of libraries more like &amp;quot;plugins&amp;quot; for eiffelstudio (and maybe at a later point there could even be plugins).&lt;br /&gt;
I could imagine a dialog where I could select the libraries to download (and this would also handle dependencies).&lt;br /&gt;
&lt;br /&gt;
Points to think about I see are: dependency handling, nameing schema (for dependency handling), version handling (problems like library a needs version &amp;lt; 2 of b and library c needs version &amp;gt; 2 of b)&lt;br /&gt;
&lt;br /&gt;
In general it may make sense to have a look at how others have solved this problems (e.g. plugin system in eclipse, apt system in debian, ...)&lt;br /&gt;
&lt;br /&gt;
'''--[[User:Paco|Paco]] 10:08, 17 September 2006 (CEST)'''&lt;br /&gt;
&lt;br /&gt;
I would very much like to see an application that is independent of Eiffel&lt;br /&gt;
Studio that could handle installation of Eiffel libraries and components, and&lt;br /&gt;
also depenedencies between libraries and components. I think that looking at&lt;br /&gt;
other &amp;quot;package&amp;quot; handlers like APT is a very good start. Maybe apt could be used&lt;br /&gt;
&amp;quot;as is&amp;quot; but with little tweaks.  &lt;br /&gt;
&lt;br /&gt;
It is important that the application is independent of Eiffel Studio in the&lt;br /&gt;
sense that it can be upgraded independently of Eiffel Studio. In general it&lt;br /&gt;
would be good if the application is independent of Eiffel Studio, but at the&lt;br /&gt;
same time that it can easily be started/called from within Eiffel Studio.  &lt;br /&gt;
&lt;br /&gt;
Some general requirements are:&lt;br /&gt;
&lt;br /&gt;
* Ability to have multiple versions of a given library/component installed. This is useful both for people who are working in different projects using different library/component versions and when upgrading from one library/component version to another. &lt;br /&gt;
&lt;br /&gt;
* Eiffel Studio itself should be regarded as any other library/component as regards dependencies. Eg: &amp;quot;requires EiffelStudio 5.7|6.0&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
* A reference implementation of the application should be done as a command line program so that it is scriptable.  &lt;br /&gt;
&lt;br /&gt;
* It would be very nice if the application also could handle CVS/Subversion checkouts/updates for a given library/component (relying of course on the standard CVS/Subversion command line tools). &lt;br /&gt;
&lt;br /&gt;
A requirement on ace/ecf files is that it must be easy to switch between different versions of a given library/component. Ace/ecf files should also explicitly list which version of each library/component the system should be compiled against.&lt;br /&gt;
&lt;br /&gt;
'''--[[User:Patrickr|Patrickr]] 20:42, 9 November 2006 (CET)'''&lt;br /&gt;
&lt;br /&gt;
I think it would make sense to have the actual location of a configuration (local, FTP, HTTP, ...) independent from the specification in a library. I could imagine a system like the APT system on Debian, where for the library just a name is used and at another location the possible places for libraries is specified.&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:ProposalConfigurationDiscovery&amp;diff=5991</id>
		<title>Talk:ProposalConfigurationDiscovery</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:ProposalConfigurationDiscovery&amp;diff=5991"/>
				<updated>2006-11-09T19:42:12Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: Location independence&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''--[[User:Patrickr|Patrickr]] 02:53, 14 September 2006 (CEST)'''&lt;br /&gt;
&lt;br /&gt;
Maybe we could think of libraries more like &amp;quot;plugins&amp;quot; for eiffelstudio (and maybe at a later point there could even be plugins).&lt;br /&gt;
I could imagine a dialog where I could select the libraries to download (and this would also handle dependencies).&lt;br /&gt;
&lt;br /&gt;
Points to think about I see are: dependency handling, nameing schema (for dependency handling), version handling (problems like library a needs version &amp;lt; 2 of b and library c needs version &amp;gt; 2 of b)&lt;br /&gt;
&lt;br /&gt;
In general it may make sense to have a look at how others have solved this problems (e.g. plugin system in eclipse, apt system in debian, ...)&lt;br /&gt;
&lt;br /&gt;
'''--[[User:Paco|Paco]] 10:08, 17 September 2006 (CEST)'''&lt;br /&gt;
&lt;br /&gt;
I would very much like to see an application that is independent of Eiffel&lt;br /&gt;
Studio that could handle installation of Eiffel libraries and components, and&lt;br /&gt;
also depenedencies between libraries and components. I think that looking at&lt;br /&gt;
other &amp;quot;package&amp;quot; handlers like APT is a very good start. Maybe apt could be used&lt;br /&gt;
&amp;quot;as is&amp;quot; but with little tweaks.  &lt;br /&gt;
&lt;br /&gt;
It is important that the application is independent of Eiffel Studio in the&lt;br /&gt;
sense that it can be upgraded independently of Eiffel Studio. In general it&lt;br /&gt;
would be good if the application is independent of Eiffel Studio, but at the&lt;br /&gt;
same time that it can easily be started/called from within Eiffel Studio.  &lt;br /&gt;
&lt;br /&gt;
Some general requirements are:&lt;br /&gt;
&lt;br /&gt;
* Ability to have multiple versions of a given library/component installed. This is useful both for people who are working in different projects using different library/component versions and when upgrading from one library/component version to another. &lt;br /&gt;
&lt;br /&gt;
* Eiffel Studio itself should be regarded as any other library/component as regards dependencies. Eg: &amp;quot;requires EiffelStudio 5.7|6.0&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
* A reference implementation of the application should be done as a command line program so that it is scriptable.  &lt;br /&gt;
&lt;br /&gt;
* It would be very nice if the application also could handle CVS/Subversion checkouts/updates for a given library/component (relying of course on the standard CVS/Subversion command line tools). &lt;br /&gt;
&lt;br /&gt;
A requirement on ace/ecf files is that it must be easy to switch between different versions of a given library/component. Ace/ecf files should also explicitly list which version of each library/component the system should be compiled against.&lt;br /&gt;
&lt;br /&gt;
== Location independence ==&lt;br /&gt;
&lt;br /&gt;
I think it would make sense to have the actual location of a configuration (local, FTP, HTTP, ...) independent from the specification in a library. I could imagine a system like the APT system on Debian, where for the library just a name is used and at another location the possible places for libraries is specified.&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=ProposalConfigurationDiscovery&amp;diff=5987</id>
		<title>ProposalConfigurationDiscovery</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=ProposalConfigurationDiscovery&amp;diff=5987"/>
				<updated>2006-11-09T19:39:46Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: ConfigurationDiscovery moved to ProposalConfigurationDiscovery&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:EiffelStudio]]&lt;br /&gt;
[[Category:Configuration]]&lt;br /&gt;
The idea behind configuration discovery is to make it easier to package a library or an application for free access through the web. In other words, having a website which collects libraries and their configuration file and from which users can select a library and it gets automatically used by the compiler.&lt;br /&gt;
&lt;br /&gt;
==How==&lt;br /&gt;
Instead of having a location which is a path to a project configuration file on your file system you have a path to a URL (either ftp or HTTP). Then the compiler reads the configuration file and install all the needed files on your machine in a user defined directory (for caching purpose). Once it is done the compilation proceeds as usual.&lt;br /&gt;
&lt;br /&gt;
This will result into the following advantages:&lt;br /&gt;
* Easy to install libraries: no complicated setup, no environment variable required&lt;br /&gt;
* If library comes with some C code, C code gets compiled.&lt;br /&gt;
* Track dependency automatically&lt;br /&gt;
&lt;br /&gt;
==Issues==&lt;br /&gt;
* If a package requires a set of shared library, it is not straightforward to specify. For example EiffelVision2 on Unix requires GTK 2.4+ to be available; EiffelMedia requires SDL...&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:ProposalConfigurationDiscovery&amp;diff=5989</id>
		<title>Talk:ProposalConfigurationDiscovery</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:ProposalConfigurationDiscovery&amp;diff=5989"/>
				<updated>2006-11-09T19:39:46Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: Talk:ConfigurationDiscovery moved to Talk:ProposalConfigurationDiscovery&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''--[[User:Patrickr|Patrickr]] 02:53, 14 September 2006 (CEST)'''&lt;br /&gt;
&lt;br /&gt;
Maybe we could think of libraries more like &amp;quot;plugins&amp;quot; for eiffelstudio (and maybe at a later point there could even be plugins).&lt;br /&gt;
I could imagine a dialog where I could select the libraries to download (and this would also handle dependencies).&lt;br /&gt;
&lt;br /&gt;
Points to think about I see are: dependency handling, nameing schema (for dependency handling), version handling (problems like library a needs version &amp;lt; 2 of b and library c needs version &amp;gt; 2 of b)&lt;br /&gt;
&lt;br /&gt;
In general it may make sense to have a look at how others have solved this problems (e.g. plugin system in eclipse, apt system in debian, ...)&lt;br /&gt;
&lt;br /&gt;
'''--[[User:Paco|Paco]] 10:08, 17 September 2006 (CEST)'''&lt;br /&gt;
&lt;br /&gt;
I would very much like to see an application that is independent of Eiffel&lt;br /&gt;
Studio that could handle installation of Eiffel libraries and components, and&lt;br /&gt;
also depenedencies between libraries and components. I think that looking at&lt;br /&gt;
other &amp;quot;package&amp;quot; handlers like APT is a very good start. Maybe apt could be used&lt;br /&gt;
&amp;quot;as is&amp;quot; but with little tweaks.  &lt;br /&gt;
&lt;br /&gt;
It is important that the application is independent of Eiffel Studio in the&lt;br /&gt;
sense that it can be upgraded independently of Eiffel Studio. In general it&lt;br /&gt;
would be good if the application is independent of Eiffel Studio, but at the&lt;br /&gt;
same time that it can easily be started/called from within Eiffel Studio.  &lt;br /&gt;
&lt;br /&gt;
Some general requirements are:&lt;br /&gt;
&lt;br /&gt;
* Ability to have multiple versions of a given library/component installed. This is useful both for people who are working in different projects using different library/component versions and when upgrading from one library/component version to another. &lt;br /&gt;
&lt;br /&gt;
* Eiffel Studio itself should be regarded as any other library/component as regards dependencies. Eg: &amp;quot;requires EiffelStudio 5.7|6.0&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
* A reference implementation of the application should be done as a command line program so that it is scriptable.  &lt;br /&gt;
&lt;br /&gt;
* It would be very nice if the application also could handle CVS/Subversion checkouts/updates for a given library/component (relying of course on the standard CVS/Subversion command line tools). &lt;br /&gt;
&lt;br /&gt;
A requirement on ace/ecf files is that it must be easy to switch between different versions of a given library/component. Ace/ecf files should also explicitly list which version of each library/component the system should be compiled against.&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=ConfigurationDiscovery&amp;diff=5988</id>
		<title>ConfigurationDiscovery</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=ConfigurationDiscovery&amp;diff=5988"/>
				<updated>2006-11-09T19:39:46Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: ConfigurationDiscovery moved to ProposalConfigurationDiscovery&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[ProposalConfigurationDiscovery]]&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:ConfigurationDiscovery&amp;diff=5990</id>
		<title>Talk:ConfigurationDiscovery</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:ConfigurationDiscovery&amp;diff=5990"/>
				<updated>2006-11-09T19:39:46Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: Talk:ConfigurationDiscovery moved to Talk:ProposalConfigurationDiscovery&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Talk:ProposalConfigurationDiscovery]]&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:ProposalConfigurationDiscovery&amp;diff=5985</id>
		<title>Talk:ProposalConfigurationDiscovery</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:ProposalConfigurationDiscovery&amp;diff=5985"/>
				<updated>2006-11-09T19:38:53Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: Talk:Configuration Discovery moved to Talk:ConfigurationDiscovery&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''--[[User:Patrickr|Patrickr]] 02:53, 14 September 2006 (CEST)'''&lt;br /&gt;
&lt;br /&gt;
Maybe we could think of libraries more like &amp;quot;plugins&amp;quot; for eiffelstudio (and maybe at a later point there could even be plugins).&lt;br /&gt;
I could imagine a dialog where I could select the libraries to download (and this would also handle dependencies).&lt;br /&gt;
&lt;br /&gt;
Points to think about I see are: dependency handling, nameing schema (for dependency handling), version handling (problems like library a needs version &amp;lt; 2 of b and library c needs version &amp;gt; 2 of b)&lt;br /&gt;
&lt;br /&gt;
In general it may make sense to have a look at how others have solved this problems (e.g. plugin system in eclipse, apt system in debian, ...)&lt;br /&gt;
&lt;br /&gt;
'''--[[User:Paco|Paco]] 10:08, 17 September 2006 (CEST)'''&lt;br /&gt;
&lt;br /&gt;
I would very much like to see an application that is independent of Eiffel&lt;br /&gt;
Studio that could handle installation of Eiffel libraries and components, and&lt;br /&gt;
also depenedencies between libraries and components. I think that looking at&lt;br /&gt;
other &amp;quot;package&amp;quot; handlers like APT is a very good start. Maybe apt could be used&lt;br /&gt;
&amp;quot;as is&amp;quot; but with little tweaks.  &lt;br /&gt;
&lt;br /&gt;
It is important that the application is independent of Eiffel Studio in the&lt;br /&gt;
sense that it can be upgraded independently of Eiffel Studio. In general it&lt;br /&gt;
would be good if the application is independent of Eiffel Studio, but at the&lt;br /&gt;
same time that it can easily be started/called from within Eiffel Studio.  &lt;br /&gt;
&lt;br /&gt;
Some general requirements are:&lt;br /&gt;
&lt;br /&gt;
* Ability to have multiple versions of a given library/component installed. This is useful both for people who are working in different projects using different library/component versions and when upgrading from one library/component version to another. &lt;br /&gt;
&lt;br /&gt;
* Eiffel Studio itself should be regarded as any other library/component as regards dependencies. Eg: &amp;quot;requires EiffelStudio 5.7|6.0&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
* A reference implementation of the application should be done as a command line program so that it is scriptable.  &lt;br /&gt;
&lt;br /&gt;
* It would be very nice if the application also could handle CVS/Subversion checkouts/updates for a given library/component (relying of course on the standard CVS/Subversion command line tools). &lt;br /&gt;
&lt;br /&gt;
A requirement on ace/ecf files is that it must be easy to switch between different versions of a given library/component. Ace/ecf files should also explicitly list which version of each library/component the system should be compiled against.&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Configuration_Discovery&amp;diff=5984</id>
		<title>Configuration Discovery</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Configuration_Discovery&amp;diff=5984"/>
				<updated>2006-11-09T19:38:53Z</updated>
		
		<summary type="html">&lt;p&gt;Patrickr: Configuration Discovery moved to ConfigurationDiscovery&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[ConfigurationDiscovery]]&lt;/div&gt;</summary>
		<author><name>Patrickr</name></author>	</entry>

	</feed>