<?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=Classens</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=Classens"/>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/Special:Contributions/Classens"/>
		<updated>2026-04-30T03:16:39Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Syntax_checking&amp;diff=2318</id>
		<title>Syntax checking</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Syntax_checking&amp;diff=2318"/>
				<updated>2006-04-27T14:32:13Z</updated>
		
		<summary type="html">&lt;p&gt;Classens: /* Software Requirement Specification (SaRS) */ added link&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 highlighted and eventualy also options for correcting the error should be proposed.&lt;br /&gt;
&lt;br /&gt;
The Project is named '''SynChé''', which is a combination of syntax and checking.&lt;br /&gt;
The ''é'' at the end is important, as a cool name needs either a recursive acronym or a special character from a non English language.&lt;br /&gt;
&lt;br /&gt;
=Software Requirement Specification (SaRS)=&lt;br /&gt;
you can find our SaRS [[Syntax_checking/SRS|here]] (comming soon)&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
* Get home-grown EiffelStudio up and running.&lt;br /&gt;
&lt;br /&gt;
==M2: May 2nd==&lt;br /&gt;
* '''Put your name in this Wiki!'''&lt;br /&gt;
* Analyse source code to certain degree, so discussion about interfaces between parser and visual is possible&lt;br /&gt;
&lt;br /&gt;
==M3: May 9th==&lt;br /&gt;
* Full SRS written&lt;br /&gt;
* Further Project Milestones specified, based on SRS and knowledge about code&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-ui es-ui@origo.ethz.ch]. &lt;br /&gt;
At this point, the team is divided into two groups at this point, one responsible for the parser, the other one for visual feedback (like underlininig).&lt;br /&gt;
&lt;br /&gt;
== Visual Feedback ==&lt;br /&gt;
* [[User:jabernet| Janick Bernet]] (scapegoat aka project leader)&lt;br /&gt;
* [[User:fdevries| Fabien de Vries]]&lt;br /&gt;
* [[User:indermum| Matthias Indermühle]]&lt;br /&gt;
* [[User:clerco| Olivier Clerc]]&lt;br /&gt;
&lt;br /&gt;
== Parser ==&lt;br /&gt;
* [[User:maser| Martin Luder]]&lt;br /&gt;
* [[User:chrhuber| Christoph Huber]]&lt;br /&gt;
&lt;br /&gt;
== Assistant ==&lt;br /&gt;
* [[User:classens| Stephan Classen]]&lt;/div&gt;</summary>
		<author><name>Classens</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EMU&amp;diff=2317</id>
		<title>EMU</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EMU&amp;diff=2317"/>
				<updated>2006-04-27T14:30:04Z</updated>
		
		<summary type="html">&lt;p&gt;Classens: outsourced the srs for bether readability&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
==Name==&lt;br /&gt;
EMU stands for '''Eiffel Multi User'''.&lt;br /&gt;
==Goal==&lt;br /&gt;
The aim of this project is to integrate a simple repository functionality into EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Software Requirements Specification=&lt;br /&gt;
You can find our SRS [[EMU/SRS|here]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
* set up mailinglist es-emu@origo.ethz.ch ([[User:Schoelle|Bernd]])&lt;br /&gt;
* wiki page up to date&lt;br /&gt;
* everyone managed to compile Eiffelstudio&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;
&lt;br /&gt;
=Team=&lt;br /&gt;
Everyone interested in this project is welcome to join our mailinglist [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-emu es-emu@origo.ethz.ch]&lt;br /&gt;
&lt;br /&gt;
* [[User:Barnski| Bernhard Buss]] (project leader)&lt;br /&gt;
* [[User:Zandrea| Andrea Zimmermann]]&lt;br /&gt;
* [[User:Kamala| Claudia Kuster]]&lt;br /&gt;
* [[User:sdomenic| Domenic Schröder]]&lt;br /&gt;
* [[User:luc3D| Lucien Hansen]]&lt;br /&gt;
* [[User:ramons| Ramon Schwammberger]]&lt;br /&gt;
* [[User:Trickli| Tobias Rickli]]&lt;br /&gt;
* [[User:classens| Stephan Classen]]&lt;/div&gt;</summary>
		<author><name>Classens</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EMU/SRS&amp;diff=2316</id>
		<title>EMU/SRS</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EMU/SRS&amp;diff=2316"/>
				<updated>2006-04-27T14:29:22Z</updated>
		
		<summary type="html">&lt;p&gt;Classens: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Parts=&lt;br /&gt;
* EMU-Protocol&lt;br /&gt;
* EMU-Server&lt;br /&gt;
* EMU-Client&lt;br /&gt;
* EMU-IDE integration&lt;br /&gt;
&lt;br /&gt;
=Developer Requirements=&lt;br /&gt;
==EMU-Protocol==&lt;br /&gt;
defines Client/Server communication with&lt;br /&gt;
* client/server states&lt;br /&gt;
* available messages&lt;br /&gt;
* client/server actions&lt;br /&gt;
&lt;br /&gt;
==EMU-Server==&lt;br /&gt;
* stores and manages code-repository&lt;br /&gt;
* synchronizes code of clients&lt;br /&gt;
* manages Locking-System&lt;br /&gt;
* Account-System&lt;br /&gt;
* project update&lt;br /&gt;
* add/create new code (classes)&lt;br /&gt;
* change-logging&lt;br /&gt;
* optional: Media-upload&lt;br /&gt;
* optional: BackUp-System&lt;br /&gt;
* optional: Release-versions&lt;br /&gt;
* optional: Server-Admin-Tool&lt;br /&gt;
&lt;br /&gt;
===Locking-System===&lt;br /&gt;
* list of locked code&lt;br /&gt;
* check if code (class) is locked&lt;br /&gt;
* lock / unlock code (class)&lt;br /&gt;
&lt;br /&gt;
===Code-Synchronization===&lt;br /&gt;
* broadcast code-changes&lt;br /&gt;
* bring user code up to date&lt;br /&gt;
&lt;br /&gt;
===Account-System===&lt;br /&gt;
The server uses an account-system to organize its projects and users.&lt;br /&gt;
Every project has its own users assigned.&lt;br /&gt;
&lt;br /&gt;
====Project-Accounts====&lt;br /&gt;
* project name&lt;br /&gt;
* project-admin(s)&lt;br /&gt;
* user lists&lt;br /&gt;
* project status&lt;br /&gt;
* editable / creatable with a project-admin-tool&lt;br /&gt;
&lt;br /&gt;
====User-Accounts====&lt;br /&gt;
* usernames&lt;br /&gt;
* used for logins&lt;br /&gt;
* assign locked code &amp;amp; changes to users&lt;br /&gt;
* online status&lt;br /&gt;
&lt;br /&gt;
==Change-Log==&lt;br /&gt;
Every lock/unlock action is locked with following data:&lt;br /&gt;
* user name&lt;br /&gt;
* date and time&lt;br /&gt;
* type of action&lt;br /&gt;
* code element (class name)&lt;br /&gt;
&lt;br /&gt;
==EMU-Client==&lt;br /&gt;
* interface for IDE and server&lt;br /&gt;
* provides features to login and communicate with server on an abstract base&lt;br /&gt;
* upload/download code elements to/from server&lt;br /&gt;
* notify IDE of server-messages (code-updates)&lt;br /&gt;
* modular / independent of IDE-integration&lt;br /&gt;
* optional: upload media files&lt;br /&gt;
&lt;br /&gt;
===IDE-Notifications===&lt;br /&gt;
The client needs to notify the IDE of the new changes.&lt;br /&gt;
&lt;br /&gt;
==EMU-IDE integration==&lt;br /&gt;
* minimal change to existing ES-classes and features.&lt;br /&gt;
* modular integration: activatable and removable / hideable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=User Requirements=&lt;br /&gt;
* easy to use&lt;br /&gt;
* target is a small project group of up to 20 developers.&lt;br /&gt;
* code synchronisation process mostly hidden from user&lt;br /&gt;
* minimal extra work (less total work)&lt;br /&gt;
* better efficiency&lt;/div&gt;</summary>
		<author><name>Classens</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Compiling_EiffelStudio&amp;diff=2140</id>
		<title>Compiling EiffelStudio</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Compiling_EiffelStudio&amp;diff=2140"/>
				<updated>2006-04-25T06:58:47Z</updated>
		
		<summary type="html">&lt;p&gt;Classens: /* Compiling run-time on Windows */  note to the special file windows-msc-x86&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]] pleas 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>Classens</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Syntax_checking&amp;diff=2107</id>
		<title>Syntax checking</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Syntax_checking&amp;diff=2107"/>
				<updated>2006-04-23T08:27:19Z</updated>
		
		<summary type="html">&lt;p&gt;Classens: /* Team */&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;
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:jabernet| Janick Bernet]] (big boss and scapegoat)&lt;br /&gt;
* [[User:maser| Martin Luder]]&lt;br /&gt;
* [[User:clerco| Olivier Clerc]]&lt;br /&gt;
* [[User:classens| Stephan Classen]]&lt;/div&gt;</summary>
		<author><name>Classens</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EMU&amp;diff=2106</id>
		<title>EMU</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EMU&amp;diff=2106"/>
				<updated>2006-04-23T08:26:02Z</updated>
		
		<summary type="html">&lt;p&gt;Classens: /* Team */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
Eiffel Multi User: The aim of this project is to integrate a repository functionality into EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
=Software Requirements Specification=&lt;br /&gt;
==The Parts==&lt;br /&gt;
* EMU-Server (stores and manages code-repository)&lt;br /&gt;
* EMU-Client (communicates with EMU-Server)&lt;br /&gt;
* EMU-IDE integration&lt;br /&gt;
&lt;br /&gt;
==Developer Requirements==&lt;br /&gt;
===EMU-Server===&lt;br /&gt;
===EMU-Client===&lt;br /&gt;
===EMU-IDE integration===&lt;br /&gt;
* minimal change to existing ES-classes and features.&lt;br /&gt;
* modular integration: activatable and removable / hideable&lt;br /&gt;
&lt;br /&gt;
==User Requirements==&lt;br /&gt;
* easy to use&lt;br /&gt;
* target is a small project group of up to 20 developers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
* set up mailinglist es-emu@origo.ethz.ch ([[User:Schoelle|Bernd]])&lt;br /&gt;
* wiki page up to date&lt;br /&gt;
* everyone managed to compile Eiffelstudio&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 [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-emu es-emu@origo.ethz.ch]&lt;br /&gt;
&lt;br /&gt;
* [[User:Barnski| Bernhard Buss]] (project leader)&lt;br /&gt;
* [[User:Zandrea| Andrea Zimmermann]]&lt;br /&gt;
* [[User:Kamala| Claudia Kuster]]&lt;br /&gt;
* [[User:sdomenic| Domenic Schröder]]&lt;br /&gt;
* [[User:luc3D| Lucien Hansen]]&lt;br /&gt;
* [[User:ramons| Ramon Schwammberger]]&lt;br /&gt;
* [[User:classens| Stephan Classen]]&lt;/div&gt;</summary>
		<author><name>Classens</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EMU&amp;diff=2105</id>
		<title>EMU</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EMU&amp;diff=2105"/>
				<updated>2006-04-23T08:24:55Z</updated>
		
		<summary type="html">&lt;p&gt;Classens: /* Team */  added maillist link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
Eiffel Multi User: The aim of this project is to integrate a repository functionality into EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
=Software Requirements Specification=&lt;br /&gt;
==The Parts==&lt;br /&gt;
* EMU-Server (stores and manages code-repository)&lt;br /&gt;
* EMU-Client (communicates with EMU-Server)&lt;br /&gt;
* EMU-IDE integration&lt;br /&gt;
&lt;br /&gt;
==Developer Requirements==&lt;br /&gt;
===EMU-Server===&lt;br /&gt;
===EMU-Client===&lt;br /&gt;
===EMU-IDE integration===&lt;br /&gt;
* minimal change to existing ES-classes and features.&lt;br /&gt;
* modular integration: activatable and removable / hideable&lt;br /&gt;
&lt;br /&gt;
==User Requirements==&lt;br /&gt;
* easy to use&lt;br /&gt;
* target is a small project group of up to 20 developers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
* set up mailinglist es-emu@origo.ethz.ch ([[User:Schoelle|Bernd]])&lt;br /&gt;
* wiki page up to date&lt;br /&gt;
* everyone managed to compile Eiffelstudio&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 [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-emu es-emu@origo.ethz.ch]&lt;br /&gt;
&lt;br /&gt;
* [[User:Barnski| Bernhard Buss]] (project leader)&lt;br /&gt;
* [[User:Zandrea| Andrea Zimmermann]]&lt;br /&gt;
* [[User:Kamala| Claudia Kuster]]&lt;br /&gt;
* [[User:sdomenic| Domenic Schröder]]&lt;br /&gt;
* [[User:luc3D| Lucien Hansen]]&lt;br /&gt;
* [[User:ramons| Ramon Schwammberger]]&lt;br /&gt;
* [[User:FoB| Stephan Classen]]&lt;/div&gt;</summary>
		<author><name>Classens</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Syntax_checking&amp;diff=2104</id>
		<title>Syntax checking</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Syntax_checking&amp;diff=2104"/>
				<updated>2006-04-23T08:23:56Z</updated>
		
		<summary type="html">&lt;p&gt;Classens: /* Team */&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>Classens</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Compiling_EiffelStudio&amp;diff=2060</id>
		<title>Compiling EiffelStudio</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Compiling_EiffelStudio&amp;diff=2060"/>
				<updated>2006-04-21T14:18:42Z</updated>
		
		<summary type="html">&lt;p&gt;Classens: /* 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 either compile EiffelStudio from scratch following the instructions in this document.&lt;br /&gt;
* Alternatively you can use a [[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;
'''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 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 Windows'''&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;
'''Windows''' (cmd)&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;
'''Windows'''&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;
'''Windows'''&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;
'''Windows'''&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;
'''Windows'''&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;
still todo : skript 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&lt;/div&gt;</summary>
		<author><name>Classens</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=EMU&amp;diff=2053</id>
		<title>EMU</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=EMU&amp;diff=2053"/>
				<updated>2006-04-21T11:17:38Z</updated>
		
		<summary type="html">&lt;p&gt;Classens: /* Team */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Projects]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
Eiffel Multi User: The aim of this project is to integrate a repository functionality into EiffelStudio.&lt;br /&gt;
&lt;br /&gt;
=Software Requirements Specification=&lt;br /&gt;
==The Parts==&lt;br /&gt;
* EMU-Server (stores and manages code-repository)&lt;br /&gt;
* EMU-Client (communicates with EMU-Server)&lt;br /&gt;
* EMU-IDE integration&lt;br /&gt;
&lt;br /&gt;
==Developer Requirements==&lt;br /&gt;
===EMU-Server===&lt;br /&gt;
===EMU-Client===&lt;br /&gt;
===EMU-IDE integration===&lt;br /&gt;
* minimal change to existing ES-classes and features.&lt;br /&gt;
* modular integration: activatable and removable / hideable&lt;br /&gt;
&lt;br /&gt;
==User Requirements==&lt;br /&gt;
* easy to use&lt;br /&gt;
* target is a small project group of up to 20 developers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Milestones=&lt;br /&gt;
&lt;br /&gt;
==M1: April 25th==&lt;br /&gt;
* set up mailinglist es-emu@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-emu@origo.ethz.ch&lt;br /&gt;
&lt;br /&gt;
* [[User:Barnski| Bernhard Buss]] (project leader)&lt;br /&gt;
* [[User:Kamala| Claudia Kuster]]&lt;br /&gt;
* [[User:FoB| Stephan Classen]]&lt;/div&gt;</summary>
		<author><name>Classens</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=User:Classens&amp;diff=2052</id>
		<title>User:Classens</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=User:Classens&amp;diff=2052"/>
				<updated>2006-04-21T11:16:34Z</updated>
		
		<summary type="html">&lt;p&gt;Classens: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Stephan Classen&lt;br /&gt;
&lt;br /&gt;
Teaching Assistant at ETH&amp;lt;br&amp;gt;&lt;br /&gt;
classens [A.T] student.ethz.ch&lt;br /&gt;
&lt;br /&gt;
Advisor for the projects:&lt;br /&gt;
*[[Syntax checking]]&lt;br /&gt;
*[[EMU]]&lt;/div&gt;</summary>
		<author><name>Classens</name></author>	</entry>

	</feed>