<?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=Bayt</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=Bayt"/>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/Special:Contributions/Bayt"/>
		<updated>2026-05-28T00:18:58Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=TODOs&amp;diff=3902</id>
		<title>TODOs</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=TODOs&amp;diff=3902"/>
				<updated>2006-07-01T06:52:38Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:TODOs]]&lt;br /&gt;
Here is the list TODOs for the entire project buildup:&lt;br /&gt;
&lt;br /&gt;
* Automatic build scripts (responsible: [[User:Schoelle| Bernd]]) and coordinate with [[User:Baumanda| Daniel]] for Debian uploads.&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Main_Page&amp;diff=2906</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Main_Page&amp;diff=2906"/>
				<updated>2006-05-18T05:34:05Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: removed questionnaire link and announcement&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to [http://www.eiffel.com/ Eiffel Software]'s Wiki, the home page for Eiffel Software's Open Source initiative in collaboration with the [http://se.inf.ethz.ch/ Chair of Software Engineering] at [http://www.ethz.ch| ETH Zurich].&lt;br /&gt;
&lt;br /&gt;
{{block|'''Project ideas'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you'd like to contribute to the progress of Eiffel technology but don't know where to start, be sure to&lt;br /&gt;
take a look at the [[:Category:Projects| project suggestion pages]]. They contain lots of great ideas for projects large and small!}}&lt;br /&gt;
&lt;br /&gt;
To download or look at the source code of EiffelStudio, please go to the [[Repository| SVN repository]] page.&lt;br /&gt;
&lt;br /&gt;
To compile the source code, you will need a snapshot of the current development release of EiffelStudio. To get it go to the [[Downloads| Downloads]] page.&lt;br /&gt;
&lt;br /&gt;
=== Wiki Contents ===&lt;br /&gt;
&lt;br /&gt;
* [[:Category:EiffelStudio|EiffelStudio]]&lt;br /&gt;
* [[:Category:EiffelBuild|EiffelBuild]]&lt;br /&gt;
* [[:Category:Compiler| Eiffel Compiler]]&lt;br /&gt;
* [[:Category:Runtime| Eiffel Runtime]]&lt;br /&gt;
* [[:Category:Library| Eiffel Libraries]]:&lt;br /&gt;
** [[:Category:EiffelBase| EiffelBase]]&lt;br /&gt;
** [[:Category:EiffelVision2| EiffelVision2]]&lt;br /&gt;
** [[:Category:WEL| WEL]]&lt;br /&gt;
* [[:Category:Documentation| Documentation]]&lt;br /&gt;
* [[Repository| SVN repository]] &lt;br /&gt;
* [[Contributing| How To Contribute?]]&lt;br /&gt;
* [[:Category:Projects| Projects and project suggestions]]&lt;br /&gt;
* [[URLs| Useful URLs]]&lt;br /&gt;
* [[TODOs| Project TODOs]]&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Main_Page&amp;diff=2724</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Main_Page&amp;diff=2724"/>
				<updated>2006-05-09T08:42:59Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to [http://www.eiffel.com/ Eiffel Software]'s Wiki, the home page for Eiffel Software's Open Source initiative in collaboration with the [http://se.inf.ethz.ch/ Chair of Software Engineering] at [http://www.ethz.ch| ETH Zurich].&lt;br /&gt;
&lt;br /&gt;
{{block|'''Questionnaire'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bernd and Till are writing about the progress of the EiffelStudio project and have compiled a questionnaire. It would be great if everyone completed it, so they can gain a comprehensive overview. The questionnaire can be found [http://eiffelsoftware.origo.ethz.ch/questionnaire.html here] - thanks for participating! }}&lt;br /&gt;
&lt;br /&gt;
{{block|'''Project ideas'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you'd like to contribute to the progress of Eiffel technology but don't know where to start, be sure to&lt;br /&gt;
take a look at the [[:Category:Projects| project suggestion pages]]. They contain lots of great ideas for projects large and small!}}&lt;br /&gt;
&lt;br /&gt;
To download or look at the source code of EiffelStudio, please go to the [[Repository| SVN repository]] page.&lt;br /&gt;
&lt;br /&gt;
To compile the source code, you will need a snapshot of the current development release of EiffelStudio. To get it go to the [[Downloads| Downloads]] page.&lt;br /&gt;
&lt;br /&gt;
=== Wiki Contents ===&lt;br /&gt;
&lt;br /&gt;
* [[:Category:EiffelStudio|EiffelStudio]]&lt;br /&gt;
* [[:Category:EiffelBuild|EiffelBuild]]&lt;br /&gt;
* [[:Category:Compiler| Eiffel Compiler]]&lt;br /&gt;
* [[:Category:Runtime| Eiffel Runtime]]&lt;br /&gt;
* [[:Category:Library| Eiffel Libraries]]:&lt;br /&gt;
** [[:Category:EiffelBase| EiffelBase]]&lt;br /&gt;
** [[:Category:EiffelVision2| EiffelVision2]]&lt;br /&gt;
** [[:Category:WEL| WEL]]&lt;br /&gt;
* [[:Category:Documentation| Documentation]]&lt;br /&gt;
* [[Repository| SVN repository]] &lt;br /&gt;
* [[Contributing| How To Contribute?]]&lt;br /&gt;
* [[:Category:Projects| Projects and project suggestions]]&lt;br /&gt;
* [[URLs| Useful URLs]]&lt;br /&gt;
* [[TODOs| Project TODOs]]&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_5.7_Releases&amp;diff=2721</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=2721"/>
				<updated>2006-05-09T06:55:57Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: /* 5.7.x */  typo&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;
= 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;
* Added missing configuration file for precompiled libraries.&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;
&lt;br /&gt;
==5.7.1005==&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;
&lt;br /&gt;
==5.7.0826==&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;
* Compilation progress now appears in status bar.&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Folding_support&amp;diff=2549</id>
		<title>Talk:Folding support</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Folding_support&amp;diff=2549"/>
				<updated>2006-05-03T17:29:09Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: added tips&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[User:Bayt|Bayt]]&lt;br /&gt;
&lt;br /&gt;
The folding support should be included the: EDITABLE_TEXT_PANEL&lt;br /&gt;
&lt;br /&gt;
= ADT =&lt;br /&gt;
WhatWhereWhenHowWhy&amp;lt;br/&amp;gt;&lt;br /&gt;
[[User:Sanakan|Sanakan]] 16:59, 26 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
discuss what the ADT of the widget should be like:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Unthomas|Unthomas]] 14:05, 1 May 2006 (CEST) &amp;lt;br/&amp;gt;&lt;br /&gt;
Here a link to an interesting paper about ADTs and text editors (node 15):&lt;br /&gt;
http://www.cs.unm.edu/~crowley/papers/sds/sds.html &amp;lt;br/&amp;gt;&lt;br /&gt;
Are you able to see the figures?&lt;br /&gt;
&lt;br /&gt;
: no images over here, either... but here's a download of said paper: [http://citeseer.ist.psu.edu/rd/0%2C162545%2C1%2C0.25%2CDownload/http://citeseer.ist.psu.edu/compress/0/papers/cs/1797/http:zSzzSzwww.bolthole.comzSzjwordzSzwppaper.ps.gz/crowley98data.ps crowley98data.ps]&amp;lt;br/&amp;gt;[[User:Sanakan|Sanakan]] 01:06, 2 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
= working title of the project =&lt;br /&gt;
&lt;br /&gt;
A few ideas:&lt;br /&gt;
* Folding -&amp;gt; falten -&amp;gt; eiffel-origami&lt;br /&gt;
* FEES : Folding editor for Eiffel Studio&lt;br /&gt;
* hidden beauty project&lt;br /&gt;
* HYCs : Hide your code&lt;br /&gt;
* Folding Fields&lt;br /&gt;
* Heilige Dreifaltigkeit&lt;br /&gt;
&lt;br /&gt;
any comments from team members?&lt;br /&gt;
&lt;br /&gt;
[[User:Sanakan|Sanakan]] 22:02, 19 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[User:Bayt|Bayt]]&lt;br /&gt;
I really like origamiE :-)&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=TODOs&amp;diff=2545</id>
		<title>TODOs</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=TODOs&amp;diff=2545"/>
				<updated>2006-05-03T13:44:37Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: moved to RT&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:TODOs]]&lt;br /&gt;
Here is the list TODOs for the entire project buildup:&lt;br /&gt;
&lt;br /&gt;
* create SA branch (responsible: [[User:Schoelle| Bernd]])&lt;br /&gt;
* Automatic build scripts (responsible: [[User:Schoelle| Bernd]]) and coordinate with [[User:Baumanda| Daniel]] for Debian uploads.&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Main_Page&amp;diff=2261</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Main_Page&amp;diff=2261"/>
				<updated>2006-04-26T12:49:37Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: removed mailinglists link  - it is in the sidebar now&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to [http://www.eiffel.com/ Eiffel Software]'s Wiki, the home page for Eiffel Software's Open Source initiative in collaboration with the [http://se.inf.ethz.ch/ Chair of Software Engineering] at [http://www.ethz.ch| ETH Zurich].&lt;br /&gt;
&lt;br /&gt;
{{block|'''Project ideas'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you'd like to contribute to the progress of Eiffel technology but don't know where to start, be sure to&lt;br /&gt;
take a look at the [[:Category:Projects| project suggestion pages]]. They contain lots of great ideas for projects large and small!}}&lt;br /&gt;
&lt;br /&gt;
To download or look at the source code of EiffelStudio, please go to the [[Repository| SVN repository]] page.&lt;br /&gt;
&lt;br /&gt;
To compile the source code, you will need a snapshot of the current development release of EiffelStudio. To get it go to the [[Downloads| Downloads]] page.&lt;br /&gt;
&lt;br /&gt;
=== Wiki Contents ===&lt;br /&gt;
&lt;br /&gt;
* [[:Category:EiffelStudio|EiffelStudio]]&lt;br /&gt;
* [[:Category:EiffelBuild|EiffelBuild]]&lt;br /&gt;
* [[:Category:Compiler| Eiffel Compiler]]&lt;br /&gt;
* [[:Category:Runtime| Eiffel Runtime]]&lt;br /&gt;
* [[:Category:Library| Eiffel Libraries]]:&lt;br /&gt;
** [[:Category:EiffelBase| EiffelBase]]&lt;br /&gt;
** [[:Category:EiffelVision2| EiffelVision2]]&lt;br /&gt;
** [[:Category:WEL| WEL]]&lt;br /&gt;
* [[:Category:Documentation| Documentation]]&lt;br /&gt;
* [[Downloads| Downloads]]&lt;br /&gt;
* [[Repository| SVN repository]] &lt;br /&gt;
* [[Contributing| How To Contribute?]]&lt;br /&gt;
* [[:Category:Projects| Projects and project suggestions]]&lt;br /&gt;
* [[URLs| Useful URLs]]&lt;br /&gt;
* [[TODOs| Project TODOs]]&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Compiling_EiffelStudio&amp;diff=2142</id>
		<title>Compiling EiffelStudio</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Compiling_EiffelStudio&amp;diff=2142"/>
				<updated>2006-04-25T08:31:15Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: /* Compiling run-time on Windows */  typo&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/downloads/builds/. This version still requires a registration (we missed to remove the registration cluster while compiling). You need to '''activate''' EiffelStudio (see below), because in some cases the compiler won't work correctly if not activated. [[Installing EiffelStudio]] is covered in its own article.&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]]&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 an environment variable called '''EIFFEL_SRC''' 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 57dev&lt;br /&gt;
svn co %SVNURL%/trunk/Delivery 57dev/Delivery&lt;br /&gt;
svn co %SVNURL%/trunk/free_add_ons 57dev/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 57dev&lt;br /&gt;
svn co $SVNURL/trunk/Delivery 57dev/Delivery&lt;br /&gt;
svn co $SVNURL/trunk/free_add_ons 57dev/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 57dev&lt;br /&gt;
svn up&lt;br /&gt;
svn up free_add_ons&lt;br /&gt;
svn up Delivery&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing gobo==&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.&amp;lt;br/&amp;gt;&lt;br /&gt;
As the anonymous CVS on sourceforge is currently broken, use the following link from the gobo newsgroup to get the [http://www.gobosoft.com/download/gobo-cvs-060418.zip CVS-checkout of 18.April].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows specific===&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;
===Unix specific===&lt;br /&gt;
&lt;br /&gt;
You have to unzip the gobo distribution from $EIFFEL_SRC/free_add_ons/gobo/gobo_34_unix.tgz and extract it into $EIFFEL_SRC/library. Here is the list of commands to do this:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EIFFEL_SRC/library&lt;br /&gt;
tar -xvzf $EIFFEL_SRC/free_add_ons/gobo/gobo_34_unix.tgz&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;
'''Important:''' if you are using the setup as described in [[Installing Microsoft C compiler]] please read this first: [http://origo.ethz.ch/pipermail/es-devel/2006-April/000082.html mail from manus]&amp;lt;br&amp;gt; you need to replace this file: &amp;lt;code&amp;gt;%EIFFEL_SRC%/C/CONFIGS/windows-msc-x86&amp;lt;/code&amp;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) 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;
&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;
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;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;
===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/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;
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%/Eiffel/library/cli_writer/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/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;br /&gt;
&lt;br /&gt;
'''Note:''' These changes are not required if you try to compile a finalized version of EiffelStudio, but only if you want to create a workbench version of EiffelStudio for development and debugging.&lt;br /&gt;
&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;
The basic steps are:&lt;br /&gt;
* compile it under linux (as described above, but finalize with ec -ace &amp;lt;chosen_ace_file&amp;gt; -finalize -c_compile)&lt;br /&gt;
* copy the F_Code directory to the mac (and build the whole source arround it... so that it almost looks like under linux).&lt;br /&gt;
* compile it there using make (compile all the dependencies as described above, then try to compile ...  &amp;amp; ok change a lot of stuff in the Makefile.SH's or do it otherwise! )&lt;br /&gt;
* fix whatever problems appear&lt;br /&gt;
&lt;br /&gt;
for more information : try the experimental release from http://eiffelsoftware.origo.ethz.ch/downloads/porting/ and have a look at the basher.sh - skript&lt;br /&gt;
&lt;br /&gt;
You can get the F_code build under Linux with gcc-3.3 and gtk2.8.17 (same as available under darwin ports) here [24.04.06]: http://n.ethz.ch/student/dfurrer/files/f_code.tar.gz&lt;br /&gt;
&lt;br /&gt;
still todo : script to generate a working environement for EiffelStudio&lt;br /&gt;
&lt;br /&gt;
note : it seems to be neccessary to install gtk-2.6 if you want to build a working environement for EiffelStudio (neccessary for some vision2-libraries)&lt;br /&gt;
&lt;br /&gt;
a first (binary) experimental releas is available from http://eiffelsoftware.origo.ethz.ch/downloads/builds/experimental/&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Automatic_Build_Scripts&amp;diff=2139</id>
		<title>Automatic Build Scripts</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Automatic_Build_Scripts&amp;diff=2139"/>
				<updated>2006-04-25T06:56:56Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Compiler]]&lt;br /&gt;
[[Category:EiffelStudio]]&lt;br /&gt;
This page references different build scripts that automate the process of building EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
&lt;br /&gt;
Bernardo Buss created a set of scripts for the automated compilation of EiffelStudio under Windows.&lt;br /&gt;
* Script: http://homepage.hispeed.ch/barnski/EiffelStudio_batch_files.zip&lt;br /&gt;
* Announcement: http://origo.ethz.ch/pipermail/es-devel/2006-April/000052.html&lt;br /&gt;
Updated &amp;quot;2_checkout_dev.bat&amp;quot; according to [[Compiling_EiffelStudio#Checking_out_from_SVN|Checking out from SVN]].&amp;lt;br&amp;gt;&lt;br /&gt;
'''Note:'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Additionally there is the checkout for two delivery paths, which are necessary for building the Delivery after compilation.&lt;br /&gt;
* You may need to keep &amp;quot;2_checkout_dev.bat&amp;quot; up to date by yourself according to [[Compiling_EiffelStudio#Checking_out_from_SVN|Checking out from SVN]].&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
&lt;br /&gt;
Bernd Schoeller has developed a build script available for download at http://se.inf.ethz.ch/people/schoeller/download/build-studio&lt;br /&gt;
&lt;br /&gt;
This script requires a single checkout from the SVN repository (with the EIFFEL_SVN environment variable pointing to it). It will compile the bench or the batch compiler (you need to modify the script for the second).&lt;br /&gt;
&lt;br /&gt;
== Mac OSX ==&lt;br /&gt;
&lt;br /&gt;
None yet.&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Compiling_EiffelStudio&amp;diff=2138</id>
		<title>Compiling EiffelStudio</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Compiling_EiffelStudio&amp;diff=2138"/>
				<updated>2006-04-25T06:54:17Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: /* Compilation methods */&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/downloads/builds/. This version still requires a registration (we missed to remove the registration cluster while compiling). You need to '''activate''' EiffelStudio (see below), because in some cases the compiler won't work correctly if not activated. [[Installing EiffelStudio]] is covered in its own article.&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]]&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 an environment variable called '''EIFFEL_SRC''' 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 57dev&lt;br /&gt;
svn co %SVNURL%/trunk/Delivery 57dev/Delivery&lt;br /&gt;
svn co %SVNURL%/trunk/free_add_ons 57dev/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 57dev&lt;br /&gt;
svn co $SVNURL/trunk/Delivery 57dev/Delivery&lt;br /&gt;
svn co $SVNURL/trunk/free_add_ons 57dev/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 57dev&lt;br /&gt;
svn up&lt;br /&gt;
svn up free_add_ons&lt;br /&gt;
svn up Delivery&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing gobo==&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.&amp;lt;br/&amp;gt;&lt;br /&gt;
As the anonymous CVS on sourceforge is currently broken, use the following link from the gobo newsgroup to get the [http://www.gobosoft.com/download/gobo-cvs-060418.zip CVS-checkout of 18.April].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows specific===&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;
===Unix specific===&lt;br /&gt;
&lt;br /&gt;
You have to unzip the gobo distribution from $EIFFEL_SRC/free_add_ons/gobo/gobo_34_unix.tgz and extract it into $EIFFEL_SRC/library. Here is the list of commands to do this:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EIFFEL_SRC/library&lt;br /&gt;
tar -xvzf $EIFFEL_SRC/free_add_ons/gobo/gobo_34_unix.tgz&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:&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) 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;
&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;
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;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;
===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/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;
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%/Eiffel/library/cli_writer/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/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;br /&gt;
&lt;br /&gt;
'''Note:''' These changes are not required if you try to compile a finalized version of EiffelStudio, but only if you want to create a workbench version of EiffelStudio for development and debugging.&lt;br /&gt;
&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;
The basic steps are:&lt;br /&gt;
* compile it under linux (as described above, but finalize with ec -ace &amp;lt;chosen_ace_file&amp;gt; -finalize -c_compile)&lt;br /&gt;
* copy the F_Code directory to the mac (and build the whole source arround it... so that it almost looks like under linux).&lt;br /&gt;
* compile it there using make (compile all the dependencies as described above, then try to compile ...  &amp;amp; ok change a lot of stuff in the Makefile.SH's or do it otherwise! )&lt;br /&gt;
* fix whatever problems appear&lt;br /&gt;
&lt;br /&gt;
for more information : try the experimental release from http://eiffelsoftware.origo.ethz.ch/downloads/porting/ and have a look at the basher.sh - skript&lt;br /&gt;
&lt;br /&gt;
You can get the F_code build under Linux with gcc-3.3 and gtk2.8.17 (same as available under darwin ports) here [24.04.06]: http://n.ethz.ch/student/dfurrer/files/f_code.tar.gz&lt;br /&gt;
&lt;br /&gt;
still todo : script to generate a working environement for EiffelStudio&lt;br /&gt;
&lt;br /&gt;
note : it seems to be neccessary to install gtk-2.6 if you want to build a working environement for EiffelStudio (neccessary for some vision2-libraries)&lt;br /&gt;
&lt;br /&gt;
a first (binary) experimental releas is available from http://eiffelsoftware.origo.ethz.ch/downloads/builds/experimental/&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Compiling_EiffelStudio&amp;diff=2136</id>
		<title>Compiling EiffelStudio</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Compiling_EiffelStudio&amp;diff=2136"/>
				<updated>2006-04-25T06:51:39Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: /* Compilation methods */  typo&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/downloads/builds/. This version still requires a registration (we missed to remove the registration cluster while compiling). You need to '''activate''' EiffelStudio (see below), because in some cases the compiler won't work correctly if not activated. [[Installing EiffelStudio]] is covered in its own article.&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]]&lt;br /&gt;
&lt;br /&gt;
===Compilation methods===&lt;br /&gt;
Currently there are two compilation methods. &lt;br /&gt;
* You can either compile EiffelStudio from scratch following the instructions in this document.&lt;br /&gt;
* Alternatively you can use one of the [[Automatic Build Scripts]]&lt;br /&gt;
If possible, use the compilation script and report any errors to the 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 an environment variable called '''EIFFEL_SRC''' 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 57dev&lt;br /&gt;
svn co %SVNURL%/trunk/Delivery 57dev/Delivery&lt;br /&gt;
svn co %SVNURL%/trunk/free_add_ons 57dev/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 57dev&lt;br /&gt;
svn co $SVNURL/trunk/Delivery 57dev/Delivery&lt;br /&gt;
svn co $SVNURL/trunk/free_add_ons 57dev/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 57dev&lt;br /&gt;
svn up&lt;br /&gt;
svn up free_add_ons&lt;br /&gt;
svn up Delivery&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing gobo==&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.&amp;lt;br/&amp;gt;&lt;br /&gt;
As the anonymous CVS on sourceforge is currently broken, use the following link from the gobo newsgroup to get the [http://www.gobosoft.com/download/gobo-cvs-060418.zip CVS-checkout of 18.April].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows specific===&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;
===Unix specific===&lt;br /&gt;
&lt;br /&gt;
You have to unzip the gobo distribution from $EIFFEL_SRC/free_add_ons/gobo/gobo_34_unix.tgz and extract it into $EIFFEL_SRC/library. Here is the list of commands to do this:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EIFFEL_SRC/library&lt;br /&gt;
tar -xvzf $EIFFEL_SRC/free_add_ons/gobo/gobo_34_unix.tgz&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:&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) 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;
&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;
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;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;
===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/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;
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%/Eiffel/library/cli_writer/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/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;br /&gt;
&lt;br /&gt;
'''Note:''' These changes are not required if you try to compile a finalized version of EiffelStudio, but only if you want to create a workbench version of EiffelStudio for development and debugging.&lt;br /&gt;
&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;
The basic steps are:&lt;br /&gt;
* compile it under linux (as described above, but finalize with ec -ace &amp;lt;chosen_ace_file&amp;gt; -finalize -c_compile)&lt;br /&gt;
* copy the F_Code directory to the mac (and build the whole source arround it... so that it almost looks like under linux).&lt;br /&gt;
* compile it there using make (compile all the dependencies as described above, then try to compile ...  &amp;amp; ok change a lot of stuff in the Makefile.SH's or do it otherwise! )&lt;br /&gt;
* fix whatever problems appear&lt;br /&gt;
&lt;br /&gt;
for more information : try the experimental release from http://eiffelsoftware.origo.ethz.ch/downloads/porting/ and have a look at the basher.sh - skript&lt;br /&gt;
&lt;br /&gt;
You can get the F_code build under Linux with gcc-3.3 and gtk2.8.17 (same as available under darwin ports) here [24.04.06]: http://n.ethz.ch/student/dfurrer/files/f_code.tar.gz&lt;br /&gt;
&lt;br /&gt;
still todo : script to generate a working environement for EiffelStudio&lt;br /&gt;
&lt;br /&gt;
note : it seems to be neccessary to install gtk-2.6 if you want to build a working environement for EiffelStudio (neccessary for some vision2-libraries)&lt;br /&gt;
&lt;br /&gt;
a first (binary) experimental releas is available from http://eiffelsoftware.origo.ethz.ch/downloads/builds/experimental/&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=TODOs&amp;diff=2118</id>
		<title>TODOs</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=TODOs&amp;diff=2118"/>
				<updated>2006-04-24T06:42:49Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: updated todo's&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:TODOs]]&lt;br /&gt;
Here is the list TODOs for the entire project buildup:&lt;br /&gt;
&lt;br /&gt;
* create SA branch (responsible: [[User:Schoelle| Bernd]])&lt;br /&gt;
* Design new EiffelStudio logo (responsible: [[User:Bayt| Bayt]])&lt;br /&gt;
** done, waiting for feedback&lt;br /&gt;
** Replace favicon of page with logo (responsible: [[User:Bayt| Bayt]])&lt;br /&gt;
* Get valid ssl certificate from Switch (responsible: [[User:Bayt| Bayt]])&lt;br /&gt;
** assigned to [[User:Luc| Luc]]&lt;br /&gt;
* Migration of yahoogroup mailinglist here after EiffelWorld newsletter (responsible: [[User:Luc| Luc]])&lt;br /&gt;
** Give list of subscribed people to [[User:Luc| Luc]] (responsible: [[User:Manus| Manus]])&lt;br /&gt;
* Automatic build scripts (responsible: [[User:Schoelle| Bernd]]) and coordinate with [[User:Baumanda| Daniel]] for Debian uploads.&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Multi_screen_support&amp;diff=2059</id>
		<title>Multi screen support</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Multi_screen_support&amp;diff=2059"/>
				<updated>2006-04-21T14:04:17Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
[[Category:EiffelVision2]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
The aim of this project is to enhance Vision with a support for multiple screens.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
&lt;br /&gt;
==M2: May ??? ==&lt;br /&gt;
* To be completed by the team&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
Everyone interested in this project is welcome to join our mailinglist [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-ui| es-ui@origo.ethz.ch]&lt;br /&gt;
&lt;br /&gt;
* TODO add project leader (Project leader)&lt;br /&gt;
* TODO add project members&lt;br /&gt;
* [[User:Serafin| Serafin]]&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Folding_support&amp;diff=2039</id>
		<title>Folding support</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Folding_support&amp;diff=2039"/>
				<updated>2006-04-21T07:56:27Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
[[Category:EiffelVision2]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
The aim of this project is to enhance Vision with a RichText control that supports folding. The goal is to make this surface in the editor windows of EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
&lt;br /&gt;
==M2: May ??? ==&lt;br /&gt;
* implement support for word wrapping&lt;br /&gt;
* To be completed by the team&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
Everyone intrested in this project is welcome to join our mailinglist [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-ui es-ui@origo.ethz.ch]&lt;br /&gt;
&lt;br /&gt;
* [[User:Sanakan| Sanakan]] (Project leader)&lt;br /&gt;
* TODO add 2nd project leader Mario Deuss (Project leader)&lt;br /&gt;
* TODO add project members&lt;br /&gt;
* [[User:Exception| Exception]]&lt;br /&gt;
* [[User:Panarium| Panarium]]&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelVision_accelerators&amp;diff=2038</id>
		<title>EiffelVision accelerators</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelVision_accelerators&amp;diff=2038"/>
				<updated>2006-04-21T07:54:47Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:EiffelVision2]]&lt;br /&gt;
[[Category:Projects]]&lt;br /&gt;
&lt;br /&gt;
The EiffelVision2 accelerator addition Wiki page.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
This page discusses the initial design of a new shortcut propagation mechanism that may be built into EiffelVision 2. The initial requirement indicated that a widget should be able to handle a shortcut accelerator and execute an action. If a widget does not handle the shortcut, the shortcut key combination will be propagate to the parent contain. This process continues until either a shortcut has been handled or the top-level windows has been reached, in which case there is no parent widget.&lt;br /&gt;
&lt;br /&gt;
== Proposal ==&lt;br /&gt;
During a design meeting a number of designed were proffered as designs that could be used at the EV_WIDGET level. However, through a process of elimination and evolution a design was decided upon that is simple, backwards compatible and whose interface is more akin to EiffelVision 2 action sequences used to date. The design of the interface proved important to provide backwards compatibility.&lt;br /&gt;
&lt;br /&gt;
For this proposal to correctly function it is imperative that the widget who recieved focused last be given initial rights to process an accelerator key combination. The widget will then handle any unhandled accelerator key combinations by propagating it to a parent container.&lt;br /&gt;
&lt;br /&gt;
It is proposed that an action sequence, similar to the action sequence for accelerators on EV_APPLICATION, be added to EV_WIDGET or EV_WIDGET_I (interface). Adding to the interface is preferable to prevent code duplication for each supported platform. EV_WIDGET(_I) would also host a feature that is responsible for receiving an accelerator key combination, for the sake of reference it will be called `process_accelerator'. `process_accelerator' will iterate the accelerator action sequence to determine if any item in the sequence matches the accelerator key combination passed to `process_accelerator'. If there is a match then agents on the action sequence item (presumably EV_ACCELERATOR) will be executed. &lt;br /&gt;
&lt;br /&gt;
For propagation, the initial requirement is that any unhandled shortcut be propagated to a widget's parent container. In this case the simple detection of an item in the accelerator action sequence, on the widget, that matches the accelerator key combination passed to `process_accelerator' would suffice. However, users may want to force propagation. &lt;br /&gt;
&lt;br /&gt;
The proposed solution is to extend EV_ACCELERATOR, either by adding to EV_ACCELERATOR or through sub-classing, with a propagate state flag. Again for the sake of reference it will be called `propagate_accelerator'. Clients would simple set `propagate_accelerator' if they wanted to propagate the accelerator to parent widget container.&lt;br /&gt;
&lt;br /&gt;
With the addition of `propagate_accelerator' on the widget's accelerator action sequence, `process_accelerator' could have to check the state flag of any applicable accelerator action sequence item to determine if the accelerator should be propagate. The state flag should be logically OR-ed so that multiple accelerator action sequence items, matching the passed accelerator key combination to `process_accelerator', will propagate the accelerator if one item requests propagation. Failure to find an item in the accelerator action  sequence should remain an cause to propagate the accelerator to the widget's parent container.&lt;br /&gt;
&lt;br /&gt;
== The Proposed Design ==&lt;br /&gt;
As stated, the design is simple.&lt;br /&gt;
&lt;br /&gt;
  class EV_WIDGET_I&lt;br /&gt;
  &lt;br /&gt;
    -- class features elided for clarity.&lt;br /&gt;
  &lt;br /&gt;
  feature -- Agents&lt;br /&gt;
  &lt;br /&gt;
    accelerator_actions: EV_NOTIFY_ACTION_SEQUENCE&lt;br /&gt;
        -- Accelerator actions for `Current' widget&lt;br /&gt;
  &lt;br /&gt;
  feature {EV_WIDGET} -- Propagation&lt;br /&gt;
  &lt;br /&gt;
    process_accelerator (a_accl: EV_ACCELERATROR) is&lt;br /&gt;
        -- Process actions for accelerator `a_accl'.&lt;br /&gt;
      require&lt;br /&gt;
        a_accl_attached: a_accl /= Void&lt;br /&gt;
      do&lt;br /&gt;
        -- Loop through `accelerator_actions'.&lt;br /&gt;
        -- If an accelerator matches `a_accl' call action sequence on accelerator.&lt;br /&gt;
        -- Query the accelerator item in the `accelerator_actions' for the `propagate_accelerator' state flag&lt;br /&gt;
        -- Locigally or `propagate_accelerator' with locally scoped state flag (`should_prop').&lt;br /&gt;
  &lt;br /&gt;
        -- After loop has completed, examine `should_prop'.&lt;br /&gt;
        -- If true or no accelerator was found call parent widget's `process_accelerator'&lt;br /&gt;
      end&lt;br /&gt;
  &lt;br /&gt;
  end -- class EV_WIDGET_I&lt;br /&gt;
&lt;br /&gt;
The proposed design does require a change in EV_ACCELERATOR. It was discussed if EV_ACCELERATOR should be descended and specialized, but instead EV_APPLICATION will receive a new attribute and assigner - `propagate_accelerator' and `propagate_accelerator'&lt;br /&gt;
&lt;br /&gt;
  class EV_ACCELERATOR&lt;br /&gt;
  &lt;br /&gt;
    -- class features elided for clarity.&lt;br /&gt;
  &lt;br /&gt;
  feature -- Access&lt;br /&gt;
  &lt;br /&gt;
    propagate_accelerator: BOOLEAN assign set_propagate_accelerator&lt;br /&gt;
        -- Should accelerator be propagated to parent widgets?&lt;br /&gt;
  &lt;br /&gt;
  feature -- Status Setting&lt;br /&gt;
  &lt;br /&gt;
    enable_propagation is&lt;br /&gt;
        -- Enable accelerator to be propagated to parent containers.&lt;br /&gt;
      do&lt;br /&gt;
        propagate_accelerator := True&lt;br /&gt;
      ensure&lt;br /&gt;
        propagate_accelerator_set: propagate_accelerator = True&lt;br /&gt;
      end&lt;br /&gt;
  &lt;br /&gt;
    disable_propagation is&lt;br /&gt;
        -- Prevent accelerator to be propagated to parent containers.&lt;br /&gt;
      do&lt;br /&gt;
        propagate_accelerator := False&lt;br /&gt;
      ensure&lt;br /&gt;
        propagate_accelerator_set: propagate_accelerator = False&lt;br /&gt;
      end&lt;br /&gt;
  &lt;br /&gt;
  end -- class EV_ACCELERATOR&lt;br /&gt;
&lt;br /&gt;
By the proposed design any existing application using EV_ACCELERATORs on an EV_APPLICATION should not be affected. Instead, now, of the top-level window receiving notification the last focused widget will handle the accelerator. If the widget does not handle the accelerator or the accelerator should be propagated, then the parent widget's implementation is executed. Existing developed application do not yet know about shortcut propagation so the accelerator will be propagated back until it reaches the top-level window, which as an end result exhibits the same behavior.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
&lt;br /&gt;
==M2: May ??? ==&lt;br /&gt;
* To be completed by the team&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
Everyone intrested in this project is welcome to join our mailinglist [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-vision es-vision@origo.ethz.ch]&lt;br /&gt;
&lt;br /&gt;
* TODO add project leader (Project leader)&lt;br /&gt;
* TODO add project members&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Syntax_checking&amp;diff=2037</id>
		<title>Syntax checking</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Syntax_checking&amp;diff=2037"/>
				<updated>2006-04-21T07:48:10Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: Mailinglist created&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
[[Category:Editor]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
The aim of this project is to have a syntax checking done as you type.&lt;br /&gt;
Syntax errors should be highlited and eventualy also options for correcting the error should be propossed.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
&lt;br /&gt;
==M2: May ??? ==&lt;br /&gt;
* To be completed by the team&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
* [[User:jabernet| Janick Bernet]] (big boss and scapegoat)&lt;br /&gt;
* [[User:maser| Martin Luder]]&lt;br /&gt;
* [[User:clerco| Olivier Clerc]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Everyone intrested in this project is welcome to join our mailinglist [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-ui| es-ui@origo.ethz.ch]&lt;br /&gt;
&lt;br /&gt;
* TODO add project leader&lt;br /&gt;
* TODO add project members&lt;br /&gt;
* [[User:FoB| Stephan Classen]]&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Multi_screen_support&amp;diff=2036</id>
		<title>Multi screen support</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Multi_screen_support&amp;diff=2036"/>
				<updated>2006-04-21T07:47:39Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: Mailinglist created&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
[[Category:EiffelVision2]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
The aim of this project is to enhance Vision with a support for multiple screens.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
&lt;br /&gt;
==M2: May ??? ==&lt;br /&gt;
* To be completed by the team&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
Everyone intrested in this project is welcome to join our mailinglist [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-ui| es-ui@origo.ethz.ch]&lt;br /&gt;
&lt;br /&gt;
* TODO add project leader Mario Deuss (Project leader)&lt;br /&gt;
* TODO add project members&lt;br /&gt;
* [[User:Serafin| Serafin]]&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Folding_support&amp;diff=2035</id>
		<title>Folding support</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Folding_support&amp;diff=2035"/>
				<updated>2006-04-21T07:47:06Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: Mailinglist created&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
[[Category:EiffelVision2]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
The aim of this project is to enhance Vision with a RichText control that supports folding. The goal is to make this surface in the editor windows of EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
&lt;br /&gt;
==M2: May ??? ==&lt;br /&gt;
* implement support for word wrapping&lt;br /&gt;
* To be completed by the team&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
Everyone intrested in this project is welcome to join our mailinglist [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-ui| es-ui@origo.ethz.ch]&lt;br /&gt;
&lt;br /&gt;
* [[User:Sanakan| Sanakan]] (Project leader)&lt;br /&gt;
* TODO add 2nd project leader Mario Deuss (Project leader)&lt;br /&gt;
* TODO add project members&lt;br /&gt;
* [[User:Exception| Exception]]&lt;br /&gt;
* [[User:Panarium| Panarium]]&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Vision2_and_Unicode&amp;diff=2034</id>
		<title>Vision2 and Unicode</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Vision2_and_Unicode&amp;diff=2034"/>
				<updated>2006-04-21T07:46:34Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: Mailinglist created&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:EiffelVision2]]&lt;br /&gt;
[[Category:Projects]]&lt;br /&gt;
[[Category:Unicode]]&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Have a look at the [[WEL_and_Unicode|description made for the WEL library]]. The same applies to EiffelVision2.&lt;br /&gt;
&lt;br /&gt;
=Readings=&lt;br /&gt;
&lt;br /&gt;
==Unicode==&lt;br /&gt;
* http://de.wikipedia.org/wiki/Unicode&lt;br /&gt;
* http://www.unicode.org/&lt;br /&gt;
** http://www.unicode.org/standard/WhatIsUnicode.html&lt;br /&gt;
** http://www.unicode.org/standard/standard.html&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
&lt;br /&gt;
==M2: May ??? ==&lt;br /&gt;
* implement multi screen support for Vision: [[Multi screen support]]&lt;br /&gt;
* collaborate with the internationalization team (TODO add link to their project page)&lt;br /&gt;
* write a decent STRING_32 implementation for &lt;br /&gt;
** string comparisons&lt;br /&gt;
** lower/upper case conversion&lt;br /&gt;
** some of it is already in Gobo but not completely as efficient as it should&lt;br /&gt;
* To be completed by the team&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
Everyone intrested in this project is welcome to join our mailinglist [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-vision| es-vision@origo.ethz.ch]&lt;br /&gt;
&lt;br /&gt;
* Project Leader: Raffaele&lt;br /&gt;
* [[User:Serafin| Serafin]]&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Communication=&lt;br /&gt;
We agreed to communicate via [http://de.wikipedia.org/wiki/Irc IRC] (orwell.freenode.net/es-vision).&lt;br /&gt;
For Windows user there are different programs available. For example:&lt;br /&gt;
* [http://hydrairc.com/index.php?page=downloads HydraIRC]&lt;br /&gt;
* [http://www.mirc.com/get.html mirc]&lt;br /&gt;
&lt;br /&gt;
Linux user (for ex.) one of the following&lt;br /&gt;
* xchat&lt;br /&gt;
* irssi (console-app.)&lt;br /&gt;
&lt;br /&gt;
after downloading and installing, you can connect to a server with the command&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/server &amp;lt;serveradress&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where &amp;lt;serveradress&amp;gt; is (for ex.) orwell.freenode.net ([http://freenode.net/irc_servers.shtml more freenode servers]).&lt;br /&gt;
&lt;br /&gt;
to enter our channel, type:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/join #es-vision&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
also you can set/change your nickname with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/nick &amp;lt;new_nick&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where &amp;lt;new_nick&amp;gt; is you nickname.&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelVision_accelerators&amp;diff=2033</id>
		<title>EiffelVision accelerators</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelVision_accelerators&amp;diff=2033"/>
				<updated>2006-04-21T07:45:27Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: Mailinglist created&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:EiffelVision2]]&lt;br /&gt;
[[Category:Projects]]&lt;br /&gt;
&lt;br /&gt;
The EiffelVision2 accelerator addition Wiki page.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
This page discusses the initial design of a new shortcut propagation mechanism that may be built into EiffelVision 2. The initial requirement indicated that a widget should be able to handle a shortcut accelerator and execute an action. If a widget does not handle the shortcut, the shortcut key combination will be propagate to the parent contain. This process continues until either a shortcut has been handled or the top-level windows has been reached, in which case there is no parent widget.&lt;br /&gt;
&lt;br /&gt;
== Proposal ==&lt;br /&gt;
During a design meeting a number of designed were proffered as designs that could be used at the EV_WIDGET level. However, through a process of elimination and evolution a design was decided upon that is simple, backwards compatible and whose interface is more akin to EiffelVision 2 action sequences used to date. The design of the interface proved important to provide backwards compatibility.&lt;br /&gt;
&lt;br /&gt;
For this proposal to correctly function it is imperative that the widget who recieved focused last be given initial rights to process an accelerator key combination. The widget will then handle any unhandled accelerator key combinations by propagating it to a parent container.&lt;br /&gt;
&lt;br /&gt;
It is proposed that an action sequence, similar to the action sequence for accelerators on EV_APPLICATION, be added to EV_WIDGET or EV_WIDGET_I (interface). Adding to the interface is preferable to prevent code duplication for each supported platform. EV_WIDGET(_I) would also host a feature that is responsible for receiving an accelerator key combination, for the sake of reference it will be called `process_accelerator'. `process_accelerator' will iterate the accelerator action sequence to determine if any item in the sequence matches the accelerator key combination passed to `process_accelerator'. If there is a match then agents on the action sequence item (presumably EV_ACCELERATOR) will be executed. &lt;br /&gt;
&lt;br /&gt;
For propagation, the initial requirement is that any unhandled shortcut be propagated to a widget's parent container. In this case the simple detection of an item in the accelerator action sequence, on the widget, that matches the accelerator key combination passed to `process_accelerator' would suffice. However, users may want to force propagation. &lt;br /&gt;
&lt;br /&gt;
The proposed solution is to extend EV_ACCELERATOR, either by adding to EV_ACCELERATOR or through sub-classing, with a propagate state flag. Again for the sake of reference it will be called `propagate_accelerator'. Clients would simple set `propagate_accelerator' if they wanted to propagate the accelerator to parent widget container.&lt;br /&gt;
&lt;br /&gt;
With the addition of `propagate_accelerator' on the widget's accelerator action sequence, `process_accelerator' could have to check the state flag of any applicable accelerator action sequence item to determine if the accelerator should be propagate. The state flag should be logically OR-ed so that multiple accelerator action sequence items, matching the passed accelerator key combination to `process_accelerator', will propagate the accelerator if one item requests propagation. Failure to find an item in the accelerator action  sequence should remain an cause to propagate the accelerator to the widget's parent container.&lt;br /&gt;
&lt;br /&gt;
== The Proposed Design ==&lt;br /&gt;
As stated, the design is simple.&lt;br /&gt;
&lt;br /&gt;
  class EV_WIDGET_I&lt;br /&gt;
  &lt;br /&gt;
    -- class features elided for clarity.&lt;br /&gt;
  &lt;br /&gt;
  feature -- Agents&lt;br /&gt;
  &lt;br /&gt;
    accelerator_actions: EV_NOTIFY_ACTION_SEQUENCE&lt;br /&gt;
        -- Accelerator actions for `Current' widget&lt;br /&gt;
  &lt;br /&gt;
  feature {EV_WIDGET} -- Propagation&lt;br /&gt;
  &lt;br /&gt;
    process_accelerator (a_accl: EV_ACCELERATROR) is&lt;br /&gt;
        -- Process actions for accelerator `a_accl'.&lt;br /&gt;
      require&lt;br /&gt;
        a_accl_attached: a_accl /= Void&lt;br /&gt;
      do&lt;br /&gt;
        -- Loop through `accelerator_actions'.&lt;br /&gt;
        -- If an accelerator matches `a_accl' call action sequence on accelerator.&lt;br /&gt;
        -- Query the accelerator item in the `accelerator_actions' for the `propagate_accelerator' state flag&lt;br /&gt;
        -- Locigally or `propagate_accelerator' with locally scoped state flag (`should_prop').&lt;br /&gt;
  &lt;br /&gt;
        -- After loop has completed, examine `should_prop'.&lt;br /&gt;
        -- If true or no accelerator was found call parent widget's `process_accelerator'&lt;br /&gt;
      end&lt;br /&gt;
  &lt;br /&gt;
  end -- class EV_WIDGET_I&lt;br /&gt;
&lt;br /&gt;
The proposed design does require a change in EV_ACCELERATOR. It was discussed if EV_ACCELERATOR should be descended and specialized, but instead EV_APPLICATION will receive a new attribute and assigner - `propagate_accelerator' and `propagate_accelerator'&lt;br /&gt;
&lt;br /&gt;
  class EV_ACCELERATOR&lt;br /&gt;
  &lt;br /&gt;
    -- class features elided for clarity.&lt;br /&gt;
  &lt;br /&gt;
  feature -- Access&lt;br /&gt;
  &lt;br /&gt;
    propagate_accelerator: BOOLEAN assign set_propagate_accelerator&lt;br /&gt;
        -- Should accelerator be propagated to parent widgets?&lt;br /&gt;
  &lt;br /&gt;
  feature -- Status Setting&lt;br /&gt;
  &lt;br /&gt;
    enable_propagation is&lt;br /&gt;
        -- Enable accelerator to be propagated to parent containers.&lt;br /&gt;
      do&lt;br /&gt;
        propagate_accelerator := True&lt;br /&gt;
      ensure&lt;br /&gt;
        propagate_accelerator_set: propagate_accelerator = True&lt;br /&gt;
      end&lt;br /&gt;
  &lt;br /&gt;
    disable_propagation is&lt;br /&gt;
        -- Prevent accelerator to be propagated to parent containers.&lt;br /&gt;
      do&lt;br /&gt;
        propagate_accelerator := False&lt;br /&gt;
      ensure&lt;br /&gt;
        propagate_accelerator_set: propagate_accelerator = False&lt;br /&gt;
      end&lt;br /&gt;
  &lt;br /&gt;
  end -- class EV_ACCELERATOR&lt;br /&gt;
&lt;br /&gt;
By the proposed design any existing application using EV_ACCELERATORs on an EV_APPLICATION should not be affected. Instead, now, of the top-level window receiving notification the last focused widget will handle the accelerator. If the widget does not handle the accelerator or the accelerator should be propagated, then the parent widget's implementation is executed. Existing developed application do not yet know about shortcut propagation so the accelerator will be propagated back until it reaches the top-level window, which as an end result exhibits the same behavior.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
&lt;br /&gt;
==M2: May ??? ==&lt;br /&gt;
* To be completed by the team&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
&lt;br /&gt;
Everyone intrested in this project is welcome to join our mailinglist [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-vision| es-vision@origo.ethz.ch]&lt;br /&gt;
&lt;br /&gt;
* TODO add project leader (Project leader)&lt;br /&gt;
* TODO add project members&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Cocoa_for_EiffelVision2&amp;diff=2032</id>
		<title>Cocoa for EiffelVision2</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Cocoa_for_EiffelVision2&amp;diff=2032"/>
				<updated>2006-04-21T07:44:28Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: /* Team */  added link to mailinglist&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
[[Category:EiffelVision2]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
The goal of this project is to provide Vision with a cocoa backend to make it truly native on the mac.&lt;br /&gt;
For more information please refer to the [[Talk:Cocoa_for_EiffelVision2|discussion page]]. See also [[OSX_release_infrastructure]].&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
* get EiffelStudio 5.7 compiled under OS X&lt;br /&gt;
&lt;br /&gt;
==M2: May 2nd ==&lt;br /&gt;
* Get a Vision window displayed with a Cocoa window (involves eventloop porting)&lt;br /&gt;
&lt;br /&gt;
==M3: May ==&lt;br /&gt;
* To be completed by the team&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
Everyone intrested in this project is welcome to join our mailinglist [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-mac| es-mac@origo.ethz.ch]&lt;br /&gt;
&lt;br /&gt;
* [[User:Upeter| Upeter]] (Project leader)&lt;br /&gt;
* [[User:Maeli| Maeli]]&lt;br /&gt;
* [[User:Dfurrer| Dfurrer]]&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;br /&gt;
* [[User: nih| nih]]&lt;br /&gt;
* [[User:Spooky| Jann]]&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Cocoa_for_EiffelVision2&amp;diff=2031</id>
		<title>Cocoa for EiffelVision2</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Cocoa_for_EiffelVision2&amp;diff=2031"/>
				<updated>2006-04-21T07:43:01Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: /* M1: April 25th */  Mailinglists are set up now&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
[[Category:EiffelVision2]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
The goal of this project is to provide Vision with a cocoa backend to make it truly native on the mac.&lt;br /&gt;
For more information please refer to the [[Talk:Cocoa_for_EiffelVision2|discussion page]]. See also [[OSX_release_infrastructure]].&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
* get EiffelStudio 5.7 compiled under OS X&lt;br /&gt;
&lt;br /&gt;
==M2: May 2nd ==&lt;br /&gt;
* Get a Vision window displayed with a Cocoa window (involves eventloop porting)&lt;br /&gt;
&lt;br /&gt;
==M3: May ==&lt;br /&gt;
* To be completed by the team&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
Everyone intrested in this project is welcome to join our mailinglist es-mac@origo.ethz.ch&lt;br /&gt;
&lt;br /&gt;
* [[User:Upeter| Upeter]] (Project leader)&lt;br /&gt;
* [[User:Maeli| Maeli]]&lt;br /&gt;
* [[User:Dfurrer| Dfurrer]]&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;br /&gt;
* [[User: nih| nih]]&lt;br /&gt;
* [[User:Spooky| Jann]]&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Folding_support&amp;diff=1986</id>
		<title>Talk:Folding support</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Folding_support&amp;diff=1986"/>
				<updated>2006-04-19T21:44:13Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== working title of the project ==&lt;br /&gt;
&lt;br /&gt;
A few ideas:&lt;br /&gt;
* Folding -&amp;gt; falten -&amp;gt; eiffel-origami&lt;br /&gt;
* FEES : Folding editor for Eiffel Studio&lt;br /&gt;
* hidden beauty project&lt;br /&gt;
* HYCs : Hide your code&lt;br /&gt;
* Folding Fields&lt;br /&gt;
&lt;br /&gt;
any comments from team members?&lt;br /&gt;
&lt;br /&gt;
[[User:Sanakan|Sanakan]] 22:02, 19 April 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[User:Bayt|Bayt]]&lt;br /&gt;
I really like origamiE :-)&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Compiling_EiffelStudio&amp;diff=1962</id>
		<title>Compiling EiffelStudio</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Compiling_EiffelStudio&amp;diff=1962"/>
				<updated>2006-04-18T22:12:04Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: /* Checking out from SVN */&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/downloads/builds/. This version still requires a registration (we missed to remove the registration cluster while compiling). You need to '''activate''' EiffelStudio (see below), because in some cases the compiler won't work correctly if not activated. [[Installing EiffelStudio]] is covered in its own article.&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]]&lt;br /&gt;
&lt;br /&gt;
===Compilation methods===&lt;br /&gt;
Currently there are two compilation methods. &lt;br /&gt;
* You can either compile EiffelStudio from scratch following the instructions in this document. This is the only method on Windows.&lt;br /&gt;
* Alternatively (on Linux/UNIX) you can use a compilation script that Bernd Schoeller has kindly posted to the developer mailinglist: [http://origo.ethz.ch/pipermail/es-devel/2006-April/000016.html Linux compilation script]&lt;br /&gt;
If possible, use the compilation script and report any errors to the 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 an environment variable called '''EIFFEL_SRC''' 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;
'''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/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/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;
&lt;br /&gt;
To update the sourcefiles to the latest revision, perform the following steps:&lt;br /&gt;
&lt;br /&gt;
'''Bash and Windows'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd 57dev&lt;br /&gt;
svn up C&lt;br /&gt;
svn up Eiffel&lt;br /&gt;
svn up free_add_ons&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;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
As the anonymous CVS on sourceforge is currently broken, use the following link from the gobo newsgroup to get the [http://www.gobosoft.com/download/gobo-cvs-060418.zip CVS-checkout of 18.April].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows specific===&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;
===Unix specific===&lt;br /&gt;
&lt;br /&gt;
You have to unzip the gobo distribution from $EIFFEL_SRC/free_add_ons/gobo/gobo_34_unix.tgz and extract it into $EIFFEL_SRC/library. Here is the list of commands to do this:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EIFFEL_SRC/library&lt;br /&gt;
tar -xvzf $EIFFEL_SRC/free_add_ons/gobo/gobo_34_unix.tgz&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:&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;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;
===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;
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;
&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;br /&gt;
&lt;br /&gt;
'''Note:''' These changes are not required if you try to compile a finalized version of EiffelStudio, but only if you want to create a workbench version of EiffelStudio for development and debugging.&lt;br /&gt;
&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;
The basic steps are:&lt;br /&gt;
* compile it under linux&lt;br /&gt;
* copy the F_Code directory to the mac&lt;br /&gt;
* compile it there using make&lt;br /&gt;
* fix whatever problems appear&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Multi_screen_support&amp;diff=1961</id>
		<title>Multi screen support</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Multi_screen_support&amp;diff=1961"/>
				<updated>2006-04-18T21:17:57Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: Added Serafin&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
[[Category:EiffelVision2]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
The aim of this project is to enhance Vision with a support for multiple screens.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
* set up mailinglist es-ui@origo.ethz.ch ([[User:Schoelle|Bernd]])&lt;br /&gt;
&lt;br /&gt;
==M2: May ??? ==&lt;br /&gt;
* To be completed by the team&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
Everyone intrested in this project is welcome to join our mailinglist es-ui@origo.ethz.ch&lt;br /&gt;
&lt;br /&gt;
* TODO add project leader Mario Deuss (Project leader)&lt;br /&gt;
* TODO add project members&lt;br /&gt;
* [[User:Serafin| Serafin]]&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Vision2_and_Unicode&amp;diff=1960</id>
		<title>Vision2 and Unicode</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Vision2_and_Unicode&amp;diff=1960"/>
				<updated>2006-04-18T21:17:16Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: Added Serafin&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:EiffelVision2]]&lt;br /&gt;
[[Category:Projects]]&lt;br /&gt;
[[Category:Unicode]]&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Have a look at the [[WEL_and_Unicode|description made for the WEL library]]. The same applies to EiffelVision2.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
* set up mailinglist es-vision@origo.ethz.ch ([[User:Schoelle|Bernd]])&lt;br /&gt;
&lt;br /&gt;
==M2: May ??? ==&lt;br /&gt;
* implement multi screen support for Vision: [[Multi screen support]]&lt;br /&gt;
* collaborate with the internationalization team (TODO add link to their project page)&lt;br /&gt;
* write a decent STRING_32 implementation for &lt;br /&gt;
** string comparisons&lt;br /&gt;
** lower/upper case conversion&lt;br /&gt;
** some of it is already in Gobo but not completely as efficient as it should&lt;br /&gt;
* To be completed by the team&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
Everyone intrested in this project is welcome to join our mailinglist es-vision@origo.ethz.ch&lt;br /&gt;
&lt;br /&gt;
* TODO add project leader (Project leader)&lt;br /&gt;
* TODO add project members&lt;br /&gt;
* [[User:Serafin| Serafin]]&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Vision2_and_Unicode&amp;diff=1959</id>
		<title>Talk:Vision2 and Unicode</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Vision2_and_Unicode&amp;diff=1959"/>
				<updated>2006-04-18T21:13:41Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: added howto&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Howto=&lt;br /&gt;
The basic ideas are the following:&lt;br /&gt;
*Do the Unicode stuff first as an outside library that takes STRING_GENERAL instances as argument&lt;br /&gt;
**The implementation should be as compact as possible for the tables, and of course very efficient. This is actually a quite difficult work since it requires some reading of the Unicode standard.&lt;br /&gt;
*Implement helper classes using RAW_FILE as argument to read text file in a special unicode encoding&lt;br /&gt;
**Looks like there are some kind of standard out there using BOM&lt;br /&gt;
*update editor to accepts STRING_GENERAL instances as arguments and thus enabling user to enter unicode characters&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Multi_screen_support&amp;diff=1958</id>
		<title>Talk:Multi screen support</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Multi_screen_support&amp;diff=1958"/>
				<updated>2006-04-18T21:06:16Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: updated howto&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Howto=&lt;br /&gt;
The basic approach would be:&lt;br /&gt;
*improve the EV_SCREEN class to handle multiple screens and then let Vision and later ES make use of it&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Vision2_and_Unicode&amp;diff=1957</id>
		<title>Vision2 and Unicode</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Vision2_and_Unicode&amp;diff=1957"/>
				<updated>2006-04-18T21:02:14Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: added reference to other part of this groups project: multi screen support for vision&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:EiffelVision2]]&lt;br /&gt;
[[Category:Projects]]&lt;br /&gt;
[[Category:Unicode]]&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Have a look at the [[WEL_and_Unicode|description made for the WEL library]]. The same applies to EiffelVision2.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
* set up mailinglist es-vision@origo.ethz.ch ([[User:Schoelle|Bernd]])&lt;br /&gt;
&lt;br /&gt;
==M2: May ??? ==&lt;br /&gt;
* implement multi screen support for Vision: [[Multi screen support]]&lt;br /&gt;
* collaborate with the internationalization team (TODO add link to their project page)&lt;br /&gt;
* write a decent STRING_32 implementation for &lt;br /&gt;
** string comparisons&lt;br /&gt;
** lower/upper case conversion&lt;br /&gt;
** some of it is already in Gobo but not completely as efficient as it should&lt;br /&gt;
* To be completed by the team&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
Everyone intrested in this project is welcome to join our mailinglist es-vision@origo.ethz.ch&lt;br /&gt;
&lt;br /&gt;
* TODO add project leader (Project leader)&lt;br /&gt;
* TODO add project members&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Editor&amp;diff=1956</id>
		<title>Editor</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Editor&amp;diff=1956"/>
				<updated>2006-04-18T21:01:04Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
&lt;br /&gt;
Editor enhancements for ES 5.7:&lt;br /&gt;
&lt;br /&gt;
* Tabbed Editor&lt;br /&gt;
* [[Folding support]]&lt;br /&gt;
* [[Multi screen support]]&lt;br /&gt;
* Fully customizable UI layout, UI docking&lt;br /&gt;
&lt;br /&gt;
Future plans:&lt;br /&gt;
* Source code formatter&lt;br /&gt;
* Editing shortcuts&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Multi_screen_support&amp;diff=1954</id>
		<title>Multi screen support</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Multi_screen_support&amp;diff=1954"/>
				<updated>2006-04-18T21:00:25Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
[[Category:EiffelVision2]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
The aim of this project is to enhance Vision with a support for multiple screens.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
* set up mailinglist es-ui@origo.ethz.ch ([[User:Schoelle|Bernd]])&lt;br /&gt;
&lt;br /&gt;
==M2: May ??? ==&lt;br /&gt;
* To be completed by the team&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
Everyone intrested in this project is welcome to join our mailinglist es-ui@origo.ethz.ch&lt;br /&gt;
&lt;br /&gt;
* TODO add project leader Mario Deuss (Project leader)&lt;br /&gt;
* TODO add project members&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Editor&amp;diff=1951</id>
		<title>Editor</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Editor&amp;diff=1951"/>
				<updated>2006-04-18T20:58:50Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
&lt;br /&gt;
Editor enhancements for ES 5.7:&lt;br /&gt;
&lt;br /&gt;
* Tabbed Editor&lt;br /&gt;
* [[Folding support]]&lt;br /&gt;
* Multi screen support&lt;br /&gt;
* Fully customizable UI layout, UI docking&lt;br /&gt;
&lt;br /&gt;
Future plans:&lt;br /&gt;
* Source code formatter&lt;br /&gt;
* Editing shortcuts&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Vision2_and_Unicode&amp;diff=1950</id>
		<title>Vision2 and Unicode</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Vision2_and_Unicode&amp;diff=1950"/>
				<updated>2006-04-18T20:58:17Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: update milestones&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:EiffelVision2]]&lt;br /&gt;
[[Category:Projects]]&lt;br /&gt;
[[Category:Unicode]]&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Have a look at the [[WEL_and_Unicode|description made for the WEL library]]. The same applies to EiffelVision2.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
* set up mailinglist es-vision@origo.ethz.ch ([[User:Schoelle|Bernd]])&lt;br /&gt;
&lt;br /&gt;
==M2: May ??? ==&lt;br /&gt;
* implement multi screen support for Vision&lt;br /&gt;
* collaborate with the internationalization team (TODO add link to their project page)&lt;br /&gt;
* write a decent STRING_32 implementation for &lt;br /&gt;
** string comparisons&lt;br /&gt;
** lower/upper case conversion&lt;br /&gt;
** some of it is already in Gobo but not completely as efficient as it should&lt;br /&gt;
* To be completed by the team&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
Everyone intrested in this project is welcome to join our mailinglist es-vision@origo.ethz.ch&lt;br /&gt;
&lt;br /&gt;
* TODO add project leader (Project leader)&lt;br /&gt;
* TODO add project members&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Folding_support&amp;diff=1949</id>
		<title>Folding support</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Folding_support&amp;diff=1949"/>
				<updated>2006-04-18T20:53:47Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: added input from manus&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
[[Category:EiffelVision2]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
The aim of this project is to enhance Vision with a RichText control that supports folding. The goal is to make this surface in the editor windows of EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
* set up mailinglist es-ui@origo.ethz.ch ([[User:Schoelle|Bernd]])&lt;br /&gt;
&lt;br /&gt;
==M2: May ??? ==&lt;br /&gt;
* implement support for word wrapping&lt;br /&gt;
* To be completed by the team&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
Everyone intrested in this project is welcome to join our mailinglist es-ui@origo.ethz.ch&lt;br /&gt;
&lt;br /&gt;
* [[User:Sanakan| Sanakan]] (Project leader)&lt;br /&gt;
* TODO add 2nd project leader Mario Deuss (Project leader)&lt;br /&gt;
* TODO add project members&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Editor&amp;diff=1947</id>
		<title>Editor</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Editor&amp;diff=1947"/>
				<updated>2006-04-18T20:49:32Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
&lt;br /&gt;
Editor enhancements for ES 5.7:&lt;br /&gt;
&lt;br /&gt;
* Tabbed Editor&lt;br /&gt;
* [[Folding support]]&lt;br /&gt;
* Fully customizable UI layout, UI docking&lt;br /&gt;
&lt;br /&gt;
Future plans:&lt;br /&gt;
* Source code formatter&lt;br /&gt;
* Editing shortcuts&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Editor&amp;diff=1946</id>
		<title>Editor</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Editor&amp;diff=1946"/>
				<updated>2006-04-18T20:48:26Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
&lt;br /&gt;
Editor enhancements.&lt;br /&gt;
&lt;br /&gt;
* Tabbed Editor (Team at Eiffel Software)&lt;br /&gt;
* Source code formatter&lt;br /&gt;
* Editing shortcuts&lt;br /&gt;
* [[Folding support]]&lt;br /&gt;
* Fully customizable UI layout, UI docking&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Category:Projects&amp;diff=1945</id>
		<title>Category:Projects</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Category:Projects&amp;diff=1945"/>
				<updated>2006-04-18T20:46:51Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: added unicode link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projects and project suggestions.&lt;br /&gt;
&lt;br /&gt;
* Build infrastructure&lt;br /&gt;
**[[Build_tool | Build tool]]&amp;lt;br&amp;gt;&lt;br /&gt;
**[[Debian_packages | Debian packages]]&amp;lt;br&amp;gt;&lt;br /&gt;
**[[OSX_release_infrastructure|OSX release infrastructure]]&lt;br /&gt;
**[[Component_standards| Standards and tools for Eiffel based components]]&lt;br /&gt;
&lt;br /&gt;
* UI&lt;br /&gt;
**[[Vision2_Accelerator|Vision2 Accelerator]]&amp;lt;br&amp;gt;&lt;br /&gt;
**[[Vision2_and_Unicode|Unicode support for Vision2]]&amp;lt;br&amp;gt;&lt;br /&gt;
**[[Editor|Editor]]&amp;lt;br&amp;gt;&lt;br /&gt;
**[[EiffelBuild_Integration|EiffelBuild Integration]]&amp;lt;br&amp;gt;&lt;br /&gt;
**[[Cocoa_for_EiffelVision2|Cocoa for EiffelVision2]]&lt;br /&gt;
&lt;br /&gt;
* Library&lt;br /&gt;
**[[Scintilla_component| Multiplatform editor component: Scintilla]]&amp;lt;br&amp;gt;&lt;br /&gt;
**[[Gecko_component| Multiplatform layout engine component: Mozilla/Gecko]]&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Cocoa_for_EiffelVision2&amp;diff=1944</id>
		<title>Cocoa for EiffelVision2</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Cocoa_for_EiffelVision2&amp;diff=1944"/>
				<updated>2006-04-18T20:44:47Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: Added link to OS X release infrastrucutre page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
[[Category:EiffelVision2]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
The goal of this project is to provide Vision with a cocoa backend to make it truly native on the mac.&lt;br /&gt;
For more information please refer to the [[Talk:Cocoa_for_EiffelVision2|discussion page]]. See also [[OSX_release_infrastructure]].&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
* get EiffelStudio 5.7 compiled under OS X&lt;br /&gt;
* set up mailinglist es-mac@origo.ethz.ch ([[User:Schoelle|Bernd]])&lt;br /&gt;
&lt;br /&gt;
==M2: May 2nd ==&lt;br /&gt;
* Get a Vision window displayed with a Cocoa window (involves eventloop porting)&lt;br /&gt;
&lt;br /&gt;
==M3: May ==&lt;br /&gt;
* To be completed by the team&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
Everyone intrested in this project is welcome to join our mailinglist es-mac@origo.ethz.ch&lt;br /&gt;
&lt;br /&gt;
* [[User:Upeter| Upeter]] (Project leader)&lt;br /&gt;
* [[User:Maeli| Maeli]]&lt;br /&gt;
* [[User:Dfurrer| Dfurrer]]&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;br /&gt;
* TODO add Roland Haeuslers nick&lt;br /&gt;
* TODO add Jan Roeders Nick&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Folding_support&amp;diff=1942</id>
		<title>Folding support</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Folding_support&amp;diff=1942"/>
				<updated>2006-04-18T20:42:00Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: Sanakan was faster&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
[[Category:EiffelVision2]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
The aim of this project is to enhance Vision with a RichText control that supports folding. The goal is to make this surface in the editor windows of EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
* set up mailinglist es-ui@origo.ethz.ch ([[User:Schoelle|Bernd]])&lt;br /&gt;
&lt;br /&gt;
==M2: May ??? ==&lt;br /&gt;
* To be completed by the team&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
Everyone intrested in this project is welcome to join our mailinglist es-ui@origo.ethz.ch&lt;br /&gt;
&lt;br /&gt;
* [[User:Sanakan| Sanakan]] (Project leader)&lt;br /&gt;
* TODO add 2nd project leader Mario Deuss (Project leader)&lt;br /&gt;
* TODO add project members&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Editor&amp;diff=1937</id>
		<title>Editor</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Editor&amp;diff=1937"/>
				<updated>2006-04-18T20:25:19Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
&lt;br /&gt;
Editor enhancements.&lt;br /&gt;
&lt;br /&gt;
* Tabbed Editor (Team at Eiffel Software)&lt;br /&gt;
* Source code formatter&lt;br /&gt;
* Editing shortcuts&lt;br /&gt;
* Folding support&lt;br /&gt;
* Fully customizable UI layout, UI docking (Team at Eiffel Software)&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Vision2_and_Unicode&amp;diff=1935</id>
		<title>Vision2 and Unicode</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Vision2_and_Unicode&amp;diff=1935"/>
				<updated>2006-04-18T20:07:56Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:EiffelVision2]]&lt;br /&gt;
[[Category:Projects]]&lt;br /&gt;
[[Category:Unicode]]&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Have a look at the [[WEL_and_Unicode|description made for the WEL library]]. The same applies to EiffelVision2.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
* set up mailinglist es-vision@origo.ethz.ch ([[User:Schoelle|Bernd]])&lt;br /&gt;
&lt;br /&gt;
==M2: May ??? ==&lt;br /&gt;
* collaborate with the internationalization team (TODO add link to their project page)&lt;br /&gt;
* write a decent STRING_32 implementation for &lt;br /&gt;
** string comparisons&lt;br /&gt;
** lower/upper case conversion&lt;br /&gt;
** some of it is already in Gobo but not completely as efficient as it should&lt;br /&gt;
* To be completed by the team&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
Everyone intrested in this project is welcome to join our mailinglist es-vision@origo.ethz.ch&lt;br /&gt;
&lt;br /&gt;
* TODO add project leader (Project leader)&lt;br /&gt;
* TODO add project members&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelVision_accelerators&amp;diff=1934</id>
		<title>EiffelVision accelerators</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelVision_accelerators&amp;diff=1934"/>
				<updated>2006-04-18T20:04:07Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:EiffelVision2]]&lt;br /&gt;
[[Category:Projects]]&lt;br /&gt;
&lt;br /&gt;
The EiffelVision2 accelerator addition Wiki page.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
This page discusses the initial design of a new shortcut propagation mechanism that may be built into EiffelVision 2. The initial requirement indicated that a widget should be able to handle a shortcut accelerator and execute an action. If a widget does not handle the shortcut, the shortcut key combination will be propagate to the parent contain. This process continues until either a shortcut has been handled or the top-level windows has been reached, in which case there is no parent widget.&lt;br /&gt;
&lt;br /&gt;
== Proposal ==&lt;br /&gt;
During a design meeting a number of designed were proffered as designs that could be used at the EV_WIDGET level. However, through a process of elimination and evolution a design was decided upon that is simple, backwards compatible and whose interface is more akin to EiffelVision 2 action sequences used to date. The design of the interface proved important to provide backwards compatibility.&lt;br /&gt;
&lt;br /&gt;
For this proposal to correctly function it is imperative that the widget who recieved focused last be given initial rights to process an accelerator key combination. The widget will then handle any unhandled accelerator key combinations by propagating it to a parent container.&lt;br /&gt;
&lt;br /&gt;
It is proposed that an action sequence, similar to the action sequence for accelerators on EV_APPLICATION, be added to EV_WIDGET or EV_WIDGET_I (interface). Adding to the interface is preferable to prevent code duplication for each supported platform. EV_WIDGET(_I) would also host a feature that is responsible for receiving an accelerator key combination, for the sake of reference it will be called `process_accelerator'. `process_accelerator' will iterate the accelerator action sequence to determine if any item in the sequence matches the accelerator key combination passed to `process_accelerator'. If there is a match then agents on the action sequence item (presumably EV_ACCELERATOR) will be executed. &lt;br /&gt;
&lt;br /&gt;
For propagation, the initial requirement is that any unhandled shortcut be propagated to a widget's parent container. In this case the simple detection of an item in the accelerator action sequence, on the widget, that matches the accelerator key combination passed to `process_accelerator' would suffice. However, users may want to force propagation. &lt;br /&gt;
&lt;br /&gt;
The proposed solution is to extend EV_ACCELERATOR, either by adding to EV_ACCELERATOR or through sub-classing, with a propagate state flag. Again for the sake of reference it will be called `propagate_accelerator'. Clients would simple set `propagate_accelerator' if they wanted to propagate the accelerator to parent widget container.&lt;br /&gt;
&lt;br /&gt;
With the addition of `propagate_accelerator' on the widget's accelerator action sequence, `process_accelerator' could have to check the state flag of any applicable accelerator action sequence item to determine if the accelerator should be propagate. The state flag should be logically OR-ed so that multiple accelerator action sequence items, matching the passed accelerator key combination to `process_accelerator', will propagate the accelerator if one item requests propagation. Failure to find an item in the accelerator action  sequence should remain an cause to propagate the accelerator to the widget's parent container.&lt;br /&gt;
&lt;br /&gt;
== The Proposed Design ==&lt;br /&gt;
As stated, the design is simple.&lt;br /&gt;
&lt;br /&gt;
  class EV_WIDGET_I&lt;br /&gt;
  &lt;br /&gt;
    -- class features elided for clarity.&lt;br /&gt;
  &lt;br /&gt;
  feature -- Agents&lt;br /&gt;
  &lt;br /&gt;
    accelerator_actions: EV_NOTIFY_ACTION_SEQUENCE&lt;br /&gt;
        -- Accelerator actions for `Current' widget&lt;br /&gt;
  &lt;br /&gt;
  feature {EV_WIDGET} -- Propagation&lt;br /&gt;
  &lt;br /&gt;
    process_accelerator (a_accl: EV_ACCELERATROR) is&lt;br /&gt;
        -- Process actions for accelerator `a_accl'.&lt;br /&gt;
      require&lt;br /&gt;
        a_accl_attached: a_accl /= Void&lt;br /&gt;
      do&lt;br /&gt;
        -- Loop through `accelerator_actions'.&lt;br /&gt;
        -- If an accelerator matches `a_accl' call action sequence on accelerator.&lt;br /&gt;
        -- Query the accelerator item in the `accelerator_actions' for the `propagate_accelerator' state flag&lt;br /&gt;
        -- Locigally or `propagate_accelerator' with locally scoped state flag (`should_prop').&lt;br /&gt;
  &lt;br /&gt;
        -- After loop has completed, examine `should_prop'.&lt;br /&gt;
        -- If true or no accelerator was found call parent widget's `process_accelerator'&lt;br /&gt;
      end&lt;br /&gt;
  &lt;br /&gt;
  end -- class EV_WIDGET_I&lt;br /&gt;
&lt;br /&gt;
The proposed design does require a change in EV_ACCELERATOR. It was discussed if EV_ACCELERATOR should be descended and specialized, but instead EV_APPLICATION will receive a new attribute and assigner - `propagate_accelerator' and `propagate_accelerator'&lt;br /&gt;
&lt;br /&gt;
  class EV_ACCELERATOR&lt;br /&gt;
  &lt;br /&gt;
    -- class features elided for clarity.&lt;br /&gt;
  &lt;br /&gt;
  feature -- Access&lt;br /&gt;
  &lt;br /&gt;
    propagate_accelerator: BOOLEAN assign set_propagate_accelerator&lt;br /&gt;
        -- Should accelerator be propagated to parent widgets?&lt;br /&gt;
  &lt;br /&gt;
  feature -- Status Setting&lt;br /&gt;
  &lt;br /&gt;
    enable_propagation is&lt;br /&gt;
        -- Enable accelerator to be propagated to parent containers.&lt;br /&gt;
      do&lt;br /&gt;
        propagate_accelerator := True&lt;br /&gt;
      ensure&lt;br /&gt;
        propagate_accelerator_set: propagate_accelerator = True&lt;br /&gt;
      end&lt;br /&gt;
  &lt;br /&gt;
    disable_propagation is&lt;br /&gt;
        -- Prevent accelerator to be propagated to parent containers.&lt;br /&gt;
      do&lt;br /&gt;
        propagate_accelerator := False&lt;br /&gt;
      ensure&lt;br /&gt;
        propagate_accelerator_set: propagate_accelerator = False&lt;br /&gt;
      end&lt;br /&gt;
  &lt;br /&gt;
  end -- class EV_ACCELERATOR&lt;br /&gt;
&lt;br /&gt;
By the proposed design any existing application using EV_ACCELERATORs on an EV_APPLICATION should not be affected. Instead, now, of the top-level window receiving notification the last focused widget will handle the accelerator. If the widget does not handle the accelerator or the accelerator should be propagated, then the parent widget's implementation is executed. Existing developed application do not yet know about shortcut propagation so the accelerator will be propagated back until it reaches the top-level window, which as an end result exhibits the same behavior.&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
* set up mailinglist es-vision@origo.ethz.ch ([[User:Schoelle|Bernd]])&lt;br /&gt;
&lt;br /&gt;
==M2: May ??? ==&lt;br /&gt;
* To be completed by the team&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
Everyone intrested in this project is welcome to join our mailinglist es-vision@origo.ethz.ch&lt;br /&gt;
&lt;br /&gt;
* TODO add project leader (Project leader)&lt;br /&gt;
* TODO add project members&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Cocoa_for_EiffelVision2&amp;diff=1932</id>
		<title>Cocoa for EiffelVision2</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Cocoa_for_EiffelVision2&amp;diff=1932"/>
				<updated>2006-04-18T20:01:58Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
[[Category:EiffelVision2]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
The goal of this project is to provide Vision with a cocoa backend to make it truly native on the mac.&lt;br /&gt;
For more information please refer to the [[Talk:Cocoa_for_EiffelVision2|discussion page]].&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
* get EiffelStudio 5.7 compiled under OS X&lt;br /&gt;
* set up mailinglist es-mac@origo.ethz.ch ([[User:Schoelle|Bernd]])&lt;br /&gt;
&lt;br /&gt;
==M2: May 2nd ==&lt;br /&gt;
* Get a Vision window displayed with a Cocoa window (involves eventloop porting)&lt;br /&gt;
&lt;br /&gt;
==M3: May ==&lt;br /&gt;
* To be completed by the team&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
Everyone intrested in this project is welcome to join our mailinglist es-mac@origo.ethz.ch&lt;br /&gt;
&lt;br /&gt;
* [[User:Upeter| Upeter]] (Project leader)&lt;br /&gt;
* [[User:Maeli| Maeli]]&lt;br /&gt;
* [[User:Dfurrer| Dfurrer]]&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;br /&gt;
* TODO add Roland Haeuslers nick&lt;br /&gt;
* TODO add Jan Roeders Nick&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Cocoa_for_EiffelVision2&amp;diff=1931</id>
		<title>Talk:Cocoa for EiffelVision2</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Cocoa_for_EiffelVision2&amp;diff=1931"/>
				<updated>2006-04-18T19:56:41Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: Moved Dfurrer's inputs here, reorganized layout and added cocoa link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cocoa, Carbon ???=&lt;br /&gt;
* Maybe we should not target Cocoa, but carbon, just like SWT: [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.swt/Eclipse%20SWT/carbon|carbon example in swt] could serve as inspiration for the backend.&lt;br /&gt;
* Info for [[http://developer.apple.com/cocoa|Cocoa]]&lt;br /&gt;
* Alternatively (and probably much easier) one could also make EiffelVision use the native GTK+ port instead of the X-version. But the state of Gtk+-Cocoa is unclear. ([[User:Dfurrer|Dfurrer]])&lt;br /&gt;
&lt;br /&gt;
=Howto=&lt;br /&gt;
The basic approach would be:&lt;br /&gt;
* to write a very simple Vision2 application only showing a window.&lt;br /&gt;
* then we will have to write all implementation classes for the Vision2 widgets that will use the cocoa or carbon widgets internally&lt;br /&gt;
* these will be empty at the beginning and then slowly filled&lt;br /&gt;
* then one would start from the Vision2 event loop and try to fill the first implementation class, the one for the window probably&lt;br /&gt;
* and from there one would go to the other widgets&lt;br /&gt;
&lt;br /&gt;
This is a very interesting project as it unifies many different widget toolkits, you learn lots about the widget toolkit on OS X. But it is also tricky because the widget toolkit on top of which you are also has bugs that you have to work around. For example in carbon the Bevel button in OS X does not display correctly when it's height is set to be smaller than 20 pixels. So if you provide an interface to that button, you would have to work around that.&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Cocoa_for_EiffelVision2&amp;diff=1928</id>
		<title>Cocoa for EiffelVision2</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Cocoa_for_EiffelVision2&amp;diff=1928"/>
				<updated>2006-04-18T19:52:02Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: Updated Cocoa for Vision project page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
[[Category:EiffelVision2]]&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
The goal of this project is to provide Vision with a cocoa backend to make it trulz native on the mac.&lt;br /&gt;
For more information please refer to the [[Talk:Cocoa_for_EiffelVision2|discussion page]].&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
* get EiffelStudio 5.7 compiled under OS X&lt;br /&gt;
* set up mailinglist es-mac@origo.ethz.ch ([[User:Schoelle|Bernd]])&lt;br /&gt;
&lt;br /&gt;
==M2: May 2nd ==&lt;br /&gt;
* Get a Vision window displayed with a Cocoa window (involves eventloop porting)&lt;br /&gt;
&lt;br /&gt;
==M3: May ==&lt;br /&gt;
* To be completed by the team&lt;br /&gt;
&lt;br /&gt;
=Team=&lt;br /&gt;
Everyone intrested in this project is welcomt to join our mailinglist es-mac@origo.ethz.ch&lt;br /&gt;
&lt;br /&gt;
* [[User:Upeter| Upeter]] (Project leader)&lt;br /&gt;
* [[User:Maeli| Maeli]]&lt;br /&gt;
* [[User:Dfurrer| Dfurrer]]&lt;br /&gt;
* [[User:Bayt| Bayt]]&lt;br /&gt;
* TODO add Roland Haeuslers nick&lt;br /&gt;
* TODO add Jan Roeders Nick&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EiffelStudio_Internals&amp;diff=1885</id>
		<title>EiffelStudio Internals</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EiffelStudio_Internals&amp;diff=1885"/>
				<updated>2006-04-13T09:19:05Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:EiffelStudio]]&lt;br /&gt;
[[Category:Compiler]]&lt;br /&gt;
[[Category:Presentations]]&lt;br /&gt;
List of presentations along with the date at which they were made or presented:&lt;br /&gt;
* April 12th 2006: [http://eiffelsoftware.origo.ethz.ch/downloads/presentations/EiffelStudio_internals.ppt EiffelStudio Internals] for ETH as part of the Software Architecture class. A Quicktime movie of this the talk is available [http://se.inf.ethz.ch/teaching/ss2006/0050/movies/ss06.meyer060412.mov here].&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Compiling_EiffelStudio&amp;diff=1873</id>
		<title>Compiling EiffelStudio</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Compiling_EiffelStudio&amp;diff=1873"/>
				<updated>2006-04-12T11:25:03Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: Added OS X compilation instructions&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). You need to '''activate''' EiffelStudio (see below), because in some cases the compiler won't work correctly if not activated. [[Installing EiffelStudio]] is covered in its own article.&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]]&lt;br /&gt;
&lt;br /&gt;
===Compilation methods===&lt;br /&gt;
Currently there are two compilation methods. &lt;br /&gt;
* You can either compile EiffelStudio from scratch following the instructions in this document. This is the only method on Windows.&lt;br /&gt;
* Alternatively (on Linux/UNIX) you can use a compilation script that Bernd Schoeller has kindly posted to the developer mailinglist: [http://origo.ethz.ch/pipermail/es-devel/2006-April/000016.html Linux compilation script]&lt;br /&gt;
If possible, use the compilation script and report any errors to the 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;
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;
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;
===Windows specific===&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;
===Unix specific===&lt;br /&gt;
&lt;br /&gt;
You have to unzip the gobo distribution from $EIFFEL_SRC/free_add_ons/gobo/gobo_34_unix.tgz and extract it into $EIFFEL_SRC/library. Here is the list of commands to do this:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EIFFEL_SRC/library&lt;br /&gt;
tar -xvzf $EIFFEL_SRC/free_add_ons/gobo/gobo_34_unix.tgz&lt;br /&gt;
&amp;lt;/pre&amp;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;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;
===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;
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;
&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;br /&gt;
&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;
The basic steps are:&lt;br /&gt;
* compile it under linux&lt;br /&gt;
* copy the F_Code directory to the mac&lt;br /&gt;
* compile it there using make&lt;br /&gt;
* fix whatever problems appear&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Compiling_EiffelStudio&amp;diff=1869</id>
		<title>Compiling EiffelStudio</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Compiling_EiffelStudio&amp;diff=1869"/>
				<updated>2006-04-12T09:19:58Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: &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). You need to '''activate''' EiffelStudio (see below), because in some cases the compiler won't work correctly if not activated. [[Installing EiffelStudio]] is covered in its own article.&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]]&lt;br /&gt;
&lt;br /&gt;
===Compilation methods===&lt;br /&gt;
Currently there are two compilation methods. &lt;br /&gt;
* You can either compile EiffelStudio from scratch following the instructions in this document. This is the only method on Windows.&lt;br /&gt;
* Alternatively (on Linux/UNIX) you can use a compilation script that Bernd Schoeller has kindly posted to the developer mailinglist: [http://origo.ethz.ch/pipermail/es-devel/2006-April/000016.html Linux compilation script]&lt;br /&gt;
If possible, use the compilation script and report any errors to the 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;
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;
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;
===Windows specific===&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;
===Unix specific===&lt;br /&gt;
&lt;br /&gt;
You have to unzip the gobo distribution from $EIFFEL_SRC/free_add_ons/gobo/gobo_34_unix.tgz and extract it into $EIFFEL_SRC/library. Here is the list of commands to do this:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $EIFFEL_SRC/library&lt;br /&gt;
tar -xvzf $EIFFEL_SRC/free_add_ons/gobo/gobo_34_unix.tgz&lt;br /&gt;
&amp;lt;/pre&amp;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;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;
===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;
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;
&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;br /&gt;
&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;
nothing documented yet...&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Editor&amp;diff=1868</id>
		<title>Editor</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Editor&amp;diff=1868"/>
				<updated>2006-04-12T09:13:10Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
&lt;br /&gt;
Editor enhancements.&lt;br /&gt;
&lt;br /&gt;
* Tabbed Editor (Team at Eiffel Software)&lt;br /&gt;
* Source code formatter&lt;br /&gt;
* Editing shortcuts&lt;br /&gt;
* Fully customizable UI layout, UI docking (Team at Eiffel Software)&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Talk:Cocoa_for_EiffelVision2&amp;diff=1861</id>
		<title>Talk:Cocoa for EiffelVision2</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Talk:Cocoa_for_EiffelVision2&amp;diff=1861"/>
				<updated>2006-04-12T06:59:21Z</updated>
		
		<summary type="html">&lt;p&gt;Bayt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Maybe we should not target Cocoa, but carbon, just like SWT:http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.swt/Eclipse%20SWT/carbon&lt;br /&gt;
&lt;br /&gt;
could serve as inspiration for the backend.&lt;br /&gt;
&lt;br /&gt;
The basic approach would be:&lt;br /&gt;
* to write a very simple Vision2 application only showing a window.&lt;br /&gt;
* then we will have to write all implementation classes for the Vision2 widgets that will use the cocoa or carbon widgets internally&lt;br /&gt;
* these will be empty at the beginning and then slowly filled&lt;br /&gt;
* then one would start from the Vision2 event loop and try to fill the first implementation class, the one for the window probably&lt;br /&gt;
* and from there one would go to the other widgets&lt;br /&gt;
&lt;br /&gt;
This is a very interesting project as it unifies many different widget toolkits, you learn lots about the widget toolkit on OS X. But it is also tricky because the widget toolkit on top of which you are also has bugs that you have to work around. For example in carbon the Bevel button in OS X does not display correctly when it's height is set to be smaller than 20 pixels. So if you provide an interface to that button, you would have to work around that.&lt;/div&gt;</summary>
		<author><name>Bayt</name></author>	</entry>

	</feed>