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

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Covariance_through_renaming&amp;diff=7512</id>
		<title>Talk:Covariance through renaming</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Covariance_through_renaming&amp;diff=7512"/>
				<updated>2007-02-22T11:38:45Z</updated>
		
		<summary type="html">&lt;p&gt;Eiffel: Renaming not essential; precondition is what makes this work&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The key insight here is that it is inappropriate and unworkable to try to use the type system to model the eating habits of herbivores. Any real-world animals will have eating preferences too complex to model through the type system anyway, even if it did not cause catcalls.&lt;br /&gt;
&lt;br /&gt;
The precondition &amp;quot;likes&amp;quot; solves the problem. And once you have the problem solved this way, there is no need for the renaming and the introduction of new, unrelated 'eat' features in descendants. Just redefine &amp;quot;likes&amp;quot; for each kind of animal. [[User:Eiffel|Eiffel]] 12:38, 22 February 2007 (CET)&lt;/div&gt;</summary>
		<author><name>Eiffel</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_5.7_Releases&amp;diff=3180</id>
		<title>EiffelStudio 5.7 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_5.7_Releases&amp;diff=3180"/>
				<updated>2006-06-05T13:14:47Z</updated>
		
		<summary type="html">&lt;p&gt;Eiffel: /* 5.7.59395 */ Added date of release&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]&lt;br /&gt;
Below are not the release notes of EiffelStudio. It is the change log of EiffelStudio intermediate releases. The release notes of EiffelStudio can be found at the following [http://docs.eiffel.com/eiffelstudio/tools/eiffelstudio/reference/02_what_s_new URL].&lt;br /&gt;
&lt;br /&gt;
[http://eiffelsoftware.origo.ethz.ch/downloads/builds DOWNLOAD]&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 5.7.x Releases=&lt;br /&gt;
==5.7.x==&lt;br /&gt;
Placeholder for new stuff since last intermediate release.&lt;br /&gt;
===New features===&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
&lt;br /&gt;
==5.7.59395 (June 4th 2006)==&lt;br /&gt;
===New features===&lt;br /&gt;
* Updated starting dialog to provide more options when creating/opening projects.&lt;br /&gt;
* Only show classes context related in completion list, which also enabled prefix support in auto completion.&lt;br /&gt;
* Support static call on anchored type and formal type.&lt;br /&gt;
* Added ability to search a folder in search tool.&lt;br /&gt;
* Added possibility to have multiple file rules and condition them.&lt;br /&gt;
* Changed default assertion level of libraries to require.&lt;br /&gt;
* Changed root class behavior to check if there is a vscn conflict (other class with same name reachable from the root cluster).&lt;br /&gt;
* Eiffel Metadata Consumer (.NET) now presents itself, when active, in the system tray with a click-enabled balloon tip of status.&lt;br /&gt;
* Metadata Consumer tooltips can not be customized to a user specification, see [[MDC_InformationTips]] for more information.&lt;br /&gt;
* Allow to condition depending on compiler and .NET CLR version.&lt;br /&gt;
* Allow file exclusion rules to be conditioned.&lt;br /&gt;
* Changed way we handle platform and builds now it's either a list of included platforms or a list of excluded platforms&lt;br /&gt;
* Added new `-local' option to command line compiler. When specified no user file will be read or created. Making the compiler easier to perform batch compilation without interfering with your day to day work.&lt;br /&gt;
* No more .user file, they are now stored in a user directory and the settings are now saved on a per target basis.&lt;br /&gt;
* Implemented auto-completion after &amp;quot;create {like a_anchor}.&amp;quot;, &amp;quot;create {G}.&amp;quot;, &amp;quot;{like a_anchor}.&amp;quot;, &amp;quot;{G}.&amp;quot;.&lt;br /&gt;
* Implemented pick and drop after &amp;quot;create {like a_anchor}.&amp;quot;, &amp;quot;create {G}.&amp;quot;, &amp;quot;{like a_anchor}.&amp;quot;, &amp;quot;{G}.&amp;quot;.&lt;br /&gt;
* Implemented things like &amp;quot;create {FILE_NAME}Result.make&amp;quot; where make is pickable.&lt;br /&gt;
* Implemented inlined externals as specified in ECMA.&lt;br /&gt;
* Changed the arguments you can pass to `estudio'. You can specify just a project name, or one of the following command line options: ''-config config.ecf [-project_path path] [-clean] [-melt] [-finalize] [-freeze] [-precompile]''.&lt;br /&gt;
* Implemented that only those creations specified in the list of formal declarations can are inserted into the list when user tend to complete a creation routine.&lt;br /&gt;
* New EV_GRID_CHOICE_ITEM for EV_GRIDs.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
* Removed class header modifier from diagram tool since it can be replaced by new refactory tool.&lt;br /&gt;
&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* Fixed a bug that crashed class name auto completion if there where some conditioned groups&lt;br /&gt;
* Fixed a bug that wrong classes were located when typing overriding/overridden in address bar.&lt;br /&gt;
* Fixed a bug of class completion in New Class dialog/ Expression dialog that crashed the compiler.&lt;br /&gt;
* Fixed a small position issue of completion window which was too far off the text field when it appeared in upper.&lt;br /&gt;
* Fixed a bug during removal of a class in .NET&lt;br /&gt;
* Fixed two bugs with overrides where changes where not detected correctly.&lt;br /&gt;
* Fixed a bug if we changed from all_classes compilation to a normal compilation.&lt;br /&gt;
* Fixed a bug that a focused quick search bar did not show up when switching between windows.&lt;br /&gt;
* Fixed the doc generation bug of instruction like 'create {FILE_NAME}s.make_from_string (&amp;quot;&amp;quot;)' where s is STRING.&lt;br /&gt;
* Fixed the bug of displaying flat view of (create {RAW_FILE}.make (&amp;quot;&amp;quot;)).exists.&lt;br /&gt;
* Fixed a bug that instuction l_agent := agent {EV_TOOL_BAR_BUTTON}.set_text was displayed as l_agent := agent {EV_TOOL_BAR_BUTTON} ?.set_text&lt;br /&gt;
* Fixed a bug that l_agent := agent a_string.adape_size was not correctly displayed.&lt;br /&gt;
* Fixed a typo in the configuration file format it is now external_resource instead of external_ressource.&lt;br /&gt;
* Fixed a bug with precompiles if there were some changes with the basic classes.&lt;br /&gt;
* Fixed a bug if a class was renamed and we didn't check for conflicts of the new name with other classes.&lt;br /&gt;
* Fixed a bug if someone used the same group name in multiple targets that inherit from each other.&lt;br /&gt;
* Fixed change of current working directory when using File Open/Save dialogs on Windows.&lt;br /&gt;
* Fixed namespace inheritance in clusters, assemblies and libraries.&lt;br /&gt;
* Fixed crash during loading of a new project if some settings where wrong.&lt;br /&gt;
* Fixed problem if a relative path was specified as a project path.&lt;br /&gt;
* Fixed a memory corruption which would occur when a large amount of memory has been allocated and when the mechanism of partial scavenging fails (i.e. no objects moved) it would not free the `ps_to' zone and thus the GC crashes when encountering this block of memory which should have been freed in `split_to_block'.&lt;br /&gt;
* Fixed some bugs with class name changes.&lt;br /&gt;
* Fixed some bugs with assemblies.&lt;br /&gt;
* Fixed issue with `to_character_32' and conversion from a BOOLEAN, CHARACTER or CHARACTER_32 to a numerical type which would not give you the proper results when interpreted.&lt;br /&gt;
* Fixed issue with CHARACTER_32 which were still encoded as 16-bits value when used as attributes.&lt;br /&gt;
* Fixed most of memory leaks.&lt;br /&gt;
* Fixed a bug that completion after parenthesized arguments did not show named tuple generic labels.&lt;br /&gt;
* Fixed bug#10252 that read only class became editable when locating a feature through feature true or address bar.&lt;br /&gt;
* Fixed a bug that named_tuple_type.hash_code where hash_code could not be picked nor completable.&lt;br /&gt;
* Fixed a bug displaying flat of create {ARRAYED_LIST [STRING]}Result.make (0) where Result type is LIST [STRING].&lt;br /&gt;
* Fixed a problem if we have multiple libraries and remove a library in one library which is still used in another library.&lt;br /&gt;
* Fixed a problem in the location lookup of a class in the classes tree while using various libraries which have circular dependencies.&lt;br /&gt;
* Don't generate a warning for a changed metadata cache path if the path has only different casing.&lt;br /&gt;
* Fixed class rename refactoring detection of class names in comments from `CLASSNAME' to {CLASSNAME}.&lt;br /&gt;
* Fixed problem with different renamings or prefixes for the same assembly in different libraries.&lt;br /&gt;
* Added some missing explanations for errors and warnings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
* Refactored configuration library to be usable on .NET without unmanaged code.&lt;br /&gt;
&lt;br /&gt;
==5.7.58953 (May 14th 2006)==&lt;br /&gt;
* Added missing configuration file for precompiled libraries.&lt;br /&gt;
* Fixed resizing of debugger columns.&lt;br /&gt;
* Added resizing of columns within the content, not just using the header.&lt;br /&gt;
* Windows installer can now precompile base|wel|vision2 (did not work previously because configuration files were missing).&lt;br /&gt;
* Removed splash screen (windows) and text message (unix) for applications built with GPL release of EiffelStudio.&lt;br /&gt;
* Fixed a bug in .NET properties code generation that caused Vision2 precompilation to fail.&lt;br /&gt;
* .NET properties getter functions now have an assigner, if a setter routine is available.&lt;br /&gt;
* Fixed bug in overrides that caused problems with all_classes and precompile compilation.&lt;br /&gt;
* Changed classes tree behaviour for overridden and overrider classes to be more logical.&lt;br /&gt;
* Fixed two bugs that caused problems with usage of precompiles.&lt;br /&gt;
* Refactored code completion.&lt;br /&gt;
* Fixed the Pick and Drop issue for overriding/overridden classes.&lt;br /&gt;
* Improved Pick and Drop/code completion ability for loose types and named tuple.&lt;br /&gt;
* Debugger: the user can choose where the &amp;quot;Current Object&amp;quot;, &amp;quot;Locals&amp;quot;... items goes in the Objects tool (left or right grid)&lt;br /&gt;
* Added assigner feature icons for feature tool and completion list.&lt;br /&gt;
* Permitted assigning to static .NET properties.&lt;br /&gt;
* Reference a non-existing compiled assembly resource (*.resource files) no longer crashes compiled. A warning is now generated.&lt;br /&gt;
* Allow to use variables and environment variables in external resource locations.&lt;br /&gt;
* Fixed a bug that did not update changed prefixes or renamings on assemblies.&lt;br /&gt;
* Fixed a bug in configuration parsing that crashed the compiler in some cases with precompiles.&lt;br /&gt;
* Allow Pick and Drop on possible unsaved text.&lt;br /&gt;
* Activated PND in basic feature view.&lt;br /&gt;
* 99% fix the problem that sometimes code completion does not work for locals. The rest 1% is the possiblity completing in an uncompiled feature a like argument local.&lt;br /&gt;
* Enabled class auto completion in uncompiled classes.&lt;br /&gt;
* Allow code completion after labels of named tuple.&lt;br /&gt;
* Added labels of named tuple to completion list.&lt;br /&gt;
* Fixed a bug in New Feature command, also in the similar place of diagram tool.&lt;br /&gt;
* Refactored implementation of formatters in feature and class tool. Presentation under a multi-column list which enables user to sort results.&lt;br /&gt;
&lt;br /&gt;
==5.7.1005 (May 5th 2006)==&lt;br /&gt;
* All the 5.6 features are present in this release.&lt;br /&gt;
* Support for new project configuration file. At this stage the format is still in beta and therefore expect some future changes before the final release of 5.7. The major changes from semantics point of view are that ultimately we are switching from clusters to clusters/libraries paradigm. Classes of a library should be self-contained, no external references allowed. Library also contains necessary external headers and object files. Also in a cluster or a library, only one class with a given name is allowed.&lt;br /&gt;
* Diagram tool has been improved to take into account new libraries paradigm.&lt;br /&gt;
* Better display of clusters in cluster tree.&lt;br /&gt;
* Improved performance of runtime for large heap: for example if you have about 6GB of allocated memory the full collection time went from 10000s down to 30s when you have about 1GB of garbage and a lot of 0-sized objects.&lt;br /&gt;
* Documentation includes recent changes in library, but actually contains too much (e.g. implementation classes in Vision2)&lt;br /&gt;
* Pick and drop line is now a dashed line.&lt;br /&gt;
* Home key now goes to the first non-whitespace character of the line (can be disabled through the &amp;quot;Smart home&amp;quot; preference).&lt;br /&gt;
* Introduce `adapted' into TYPE for statically check conformance conversion.&lt;br /&gt;
&lt;br /&gt;
==5.7.0826 (March 26th 2006)==&lt;br /&gt;
First public release of the open source version of EiffelStudio. This version uses 5.6 Ace file.&lt;br /&gt;
* New search facility with quick search bar and project wide search with regular expression.&lt;br /&gt;
* New profiling output using EV_GRID.&lt;br /&gt;
* Ability to debug multithreaded applications, in particular to switch from one thread to another.&lt;br /&gt;
* New refactoring facilities: class and feature renaming, feature pull-up.&lt;br /&gt;
* C compilation output now appears in EiffelStudio.&lt;br /&gt;
* On Windows, C compilation will use all available CPUs making it much faster.&lt;br /&gt;
* Compilation progress now appears in status bar.&lt;br /&gt;
* Debugger: improve display performance of the values&lt;br /&gt;
* Debugger: Objects grids keep the layout (opened nodes), and highlight when a value changes (customizable)&lt;br /&gt;
* Debugger: Better support of once value (including in MT context). &lt;br /&gt;
* Debugger: In watches tools, when an expression raised an exception, display more information on the exception, including the trace (and improved error reporting).&lt;br /&gt;
* Debugger: add way to ignore (do not stop on) exceptions (both on classic or dotnet, even if the mecanism is slighty different)&lt;/div&gt;</summary>
		<author><name>Eiffel</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Compiling_EiffelStudio&amp;diff=1529</id>
		<title>Compiling EiffelStudio</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Compiling_EiffelStudio&amp;diff=1529"/>
				<updated>2006-04-07T21:16:26Z</updated>
		
		<summary type="html">&lt;p&gt;Eiffel: What I had to do to get 5.7-prerelease installed under Linux&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 5.7''' of EiffelStudio. You can download it from http://eiffelsoftware.origo.ethz.ch/builds. This version still requires a registration (we missed to remove the registration cluster while compiling). &lt;br /&gt;
&lt;br /&gt;
If you are a student of the Software Architecture course, you should have received a key by mail. If you are a regular ETH student, please contact [[User:Schoelle| Bernd Schoeller]]. Anybody else, please contact Eiffel Software for a valid key by emailing  register@eiffel.com stating your platform - you will receive back a Username (e.g. &amp;quot;Open Source Eiffel User&amp;quot; and a numeric &amp;quot;CD-Key&amp;quot; comprising five groups of five digits, separated by hyphens.&lt;br /&gt;
&lt;br /&gt;
There is a file in your distribution called INSTALL.readme that refers you to instructions in docs/installation/index.html, however this file is not present in the 5.7 pre-release (for Linux at least). Hopefully someone who knows how it's supposed to work will streamline the delivery and instructions, but the following worked for me under Linux:&lt;br /&gt;
&lt;br /&gt;
Set the ISE_EIFFEL environment variable to the directory in which you unpacked EiffelStudio. This will normally be a filesystem path ending in /Eiffel57.&lt;br /&gt;
&lt;br /&gt;
Set the ISE_PLATFORM environment variable to your platform (e.g. 'linux-x86'). The documentation refers to platforms such as 'linux-glibc' and 'linux-glibc2.1' but these seem to be obsolete and 'linux-x86' worked for me.&lt;br /&gt;
&lt;br /&gt;
From the Eiffel57 directory, type ./register and copy your Username and the five 5-digit groups of your license key to the corresponding fields. When you get it right, the &amp;quot;Register&amp;quot; button becomes active and you can click it.&lt;br /&gt;
&lt;br /&gt;
From the same directory, type ./make_install then (assuming you want to precompile the EiffelBase and Vision2 libraries) enter &amp;quot;Y&amp;quot; to each prompt. The system will chug away for a minute or two precompiling everything, whilst printing lots of output including a few C warnings that can probably be ignored.&lt;br /&gt;
&lt;br /&gt;
Make sure your PATH environment variable includes the 'bin' directory (for example ...Eiffel57/studio/spec/linux-x86/bin) then type 'estudio'. Although you have registered EiffelStudio, you must now activate it by going to  http://activate.eiffel.com&lt;br /&gt;
&lt;br /&gt;
Here you must choose a version number. There is no &amp;quot;5.7&amp;quot; option, but &amp;quot;5.6&amp;quot; worked for me. This leads to a screen where you copy in your Username and Registration Key, and receive an Activation Key. The web page claims that you can just copy and paste this into the first text box in the EiffelStudio activation dialog, but this didn't work for me and I had to copy each 5-digit numeric group into the corresponding text box. When you get it right, the &amp;quot;activate&amp;quot; box becomes enabled and you can click it, after which EiffelStudio will start up and offer to create a new application for you.&lt;br /&gt;
&lt;br /&gt;
==Extracting source code==&lt;br /&gt;
&lt;br /&gt;
===Checking out from SVN===&lt;br /&gt;
Define the '''EIFFEL_SRC''' environment variable. Usually we use the '''XXdev''' convention where XX is the version number from the current developped version of the compiler.&lt;br /&gt;
&lt;br /&gt;
Make sure that '''ISE_EIFFEL''', '''ISE_PLATFORM''' and '''ISE_C_COMPILER''' (on windows only) are properly defined&lt;br /&gt;
&lt;br /&gt;
Perform the following checkout procedures:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Windows'''&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 -N 57dev&lt;br /&gt;
svn co %SVNURL%/trunk/Src/bench/C 57dev/C&lt;br /&gt;
svn co %SVNURL%/trunk/Src/bench/Eiffel 57dev/Eiffel&lt;br /&gt;
svn co %SVNURL%/trunk/Src/common 57dev/Eiffel/common&lt;br /&gt;
svn co %SVNURL%/trunk/Delivery -N 57dev/Delivery&lt;br /&gt;
svn co %SVNURL%/trunk/free_add_ons 57dev/free_add_ons&lt;br /&gt;
&lt;br /&gt;
cd 57dev&lt;br /&gt;
svn up C_library&lt;br /&gt;
svn up dotnet&lt;br /&gt;
svn up library&lt;br /&gt;
svn up library.net&lt;br /&gt;
svn up tools&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 -N 57dev&lt;br /&gt;
svn co $SVNURL/trunk/Src/bench/C 57dev/C&lt;br /&gt;
svn co $SVNURL/trunk/Src/bench/Eiffel 57dev/Eiffel&lt;br /&gt;
svn co $SVNURL/trunk/Src/common 57dev/Eiffel/common&lt;br /&gt;
svn co $SVNURL/trunk/Delivery -N 57dev/Delivery&lt;br /&gt;
svn co $SVNURL/trunk/free_add_ons 57dev/free_add_ons&lt;br /&gt;
&lt;br /&gt;
cd 57dev&lt;br /&gt;
svn up C_library&lt;br /&gt;
svn up dotnet&lt;br /&gt;
svn up library&lt;br /&gt;
svn up library.net&lt;br /&gt;
svn up tools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Installing gobo===&lt;br /&gt;
&lt;br /&gt;
You have to unzip the gobo distribution from $EIFFEL_SRC/free_add_ons/gobo/gobo_34_win.tgz and extract it into $EIFFEL_SRC/library.&lt;br /&gt;
&lt;br /&gt;
Please make sure to use the version provided or the very latest version from CVS. All other versions (including the official 3.4 release) will not work because of name clashes in the UC_STRING class between GOBO and EiffelStudio.&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]. Once done you can do:&lt;br /&gt;
&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;
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) and `m' (Microsoft) 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 you do:&lt;br /&gt;
&amp;lt;pre&amp;gt;configure clean&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows 64 bits, you do:&lt;br /&gt;
&amp;lt;pre&amp;gt;configure cleand&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;./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;
===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;
&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/event/Clib&lt;br /&gt;
finish_freezing -library&lt;br /&gt;
cd $EIFFEL_SRC/library/net/Clib&lt;br /&gt;
finish_freezing -library&lt;br /&gt;
cd $EIFFEL_SRC/library/vision2/Clib&lt;br /&gt;
finish_freezing -library&lt;br /&gt;
cd $EIFFEL_SRC/library/vision2/implementation/gtk/Clib&lt;br /&gt;
finish_freezing -library&amp;lt;/pre&amp;gt;&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;
&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;
&amp;lt;pre&amp;gt;cd $EIFFEL_SRC/Eiffel/library/cli_writer/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. There are four ace files in $EIFFEL_SRC/Eiffel/Ace:&lt;br /&gt;
* batch.mswin.ace&lt;br /&gt;
* newbench.mswin.ace&lt;br /&gt;
* batch.unix.ace&lt;br /&gt;
* newbench.linux.ace&lt;br /&gt;
The first two are for windows, the last two for unix (even if the last one says `linux').&lt;br /&gt;
&lt;br /&gt;
To compile simply do:&lt;br /&gt;
&amp;lt;pre&amp;gt;ec -ace &amp;lt;chosen_ace_file&amp;gt; -c_compile&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note: the 'ec' binary produced by the newbench .ace file contains the full Eiffel compiler, including the batch version. 'estudio' is just a wrapper (available in Src/bench/C/ipc/daemon). So, you need either the one or the other.&lt;br /&gt;
&lt;br /&gt;
===Windows specific===&lt;br /&gt;
&lt;br /&gt;
At the end of the compilation for the workbench version, the C compilation will fail reporting an undefined reference to `nbref'. This is because the ace file has been built for the finalized version of EiffelStudio not the workbench version. To fix this problem do the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;copy ec.lnk h&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then edit the file `h' and replace '''mtcompiler.lib''' by '''mtwcompiler.lib'''.&lt;br /&gt;
Once this is done you can complete you do:&lt;br /&gt;
&amp;lt;pre&amp;gt;link @h&amp;lt;/pre&amp;gt;&lt;br /&gt;
In order to update to the new version of metadata consumer tool, follow the instructions described [[Compiling Metadata Consumer|here]].&lt;br /&gt;
&lt;br /&gt;
===Unix specific===&lt;br /&gt;
&lt;br /&gt;
Like the windows version the C compilation, it will fail, but this time for two reasons:&lt;br /&gt;
* nbref&lt;br /&gt;
* linking order causing many errors to be reported&lt;br /&gt;
&lt;br /&gt;
Here is the recommended way, make a copy of the generated Makefile and put it at the same level as your EIFGEN directory. Edit it and replace '''libmtcompiler.a''' by '''libmtwcompiler.a''', then search for &amp;quot;$(EXTERNALS) $(EIFLIB)&amp;quot; and replace it by &amp;quot;$(EIFLIB) $(EXTERNALS)&amp;quot;. Once this is done, you can do:&lt;br /&gt;
&amp;lt;pre&amp;gt;make -f ../../Makefile&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A little script that does the necessary changes: Place it at the same level as the EIFGEN directory is.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[bash,N]&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
cp EIFGEN/W_code/Makefile .&lt;br /&gt;
sed 's/libmtcompiler\.a/libmtwcompiler\.a/g' Makefile &amp;gt; tmp&lt;br /&gt;
sed 's/\$(EXTERNALS) \$(EIFLIB)/\$\(EIFLIB\) \$\(EXTERNALS\)/g' tmp &amp;gt; Makefile&lt;br /&gt;
cd EIFGEN/W_code&lt;br /&gt;
make -f ../../Makefile&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Eiffel</name></author>	</entry>

	</feed>