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

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Automatic_Build_Scripts&amp;diff=8746</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=8746"/>
				<updated>2007-06-11T09:32:32Z</updated>
		
		<summary type="html">&lt;p&gt;Sieberst: /* Based on geant */&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;
= Platform independent =&lt;br /&gt;
== Based on geant ==&lt;br /&gt;
* To build a working delivery out of the trunk source code&lt;br /&gt;
 svn checkout https://eiffelsoftware.origo.ethz.ch/svn/es/trunk trunk&lt;br /&gt;
 set EIFFEL_SRC to point to this path&lt;br /&gt;
 &lt;br /&gt;
 And then use the geant script located under trunk/Src/scripts/build.eant&lt;br /&gt;
 geant -b $EIFFEL_SRC/scripts/build.eant build_es&lt;br /&gt;
 &lt;br /&gt;
 This will create in the current directory a delivery in the EiffelXX. &lt;br /&gt;
 You just need to point ISE_EIFFEL to this location to have a working EiffelStudio delivery&lt;br /&gt;
&lt;br /&gt;
* Warnings: &lt;br /&gt;
 The scripts are not fully tested, and may not be very well written for now&lt;br /&gt;
 (it contains unfinished code .. especially regarding setup building)&lt;br /&gt;
 On Windows:&lt;br /&gt;
    - It may have issue with dotnet (windows)&lt;br /&gt;
    - It requires: sed, tar, and bash (for runtime). You can use cygwin for that.&lt;br /&gt;
    - Extracting the Gobo library may crash &amp;quot;tar&amp;quot; ... need to check&lt;br /&gt;
 On linux:&lt;br /&gt;
    - You need to answer a few questions, mostly for runtime configuration&lt;br /&gt;
 &lt;br /&gt;
 However, the scripts are working and can be helpful to build EiffelStudio without too much trouble.&lt;br /&gt;
&lt;br /&gt;
* Note: If there are built executables in the build folder (subfolder bin/), these executables are used for the delivery instead of recompiling from source. To make sure that the Delivery is built from scratch, the 'bin/' - folder should be removed from the build directory.&lt;br /&gt;
* If ever you have feedback, or comment, or anything, you can contact Jocelyn : mailto:jfiat@eiffel.com&lt;br /&gt;
&lt;br /&gt;
= Windows =&lt;br /&gt;
&lt;br /&gt;
[[User:Barnski|Bernardo Buss]] created a set of scripts for the automated compilation of EiffelStudio under Windows.&lt;br /&gt;
* Script: http://homepage.hispeed.ch/barnski/EiffelStudio_batch_files.zip&lt;br /&gt;
* Announcement: http://origo.ethz.ch/pipermail/es-devel/2006-April/000052.html&lt;br /&gt;
'''Note:'''&amp;lt;br&amp;gt;&lt;br /&gt;
* You may need to keep &amp;quot;2_checkout_dev.bat&amp;quot; up to date by yourself according to [[Compiling_EiffelStudio#Checking_out_from_SVN|Checking out from SVN]].&lt;br /&gt;
* It is possible that the '''batchfiles only work partial''' with EiffelStudio '''newer than version 5.7.0826''' (especially parts of the compilation process may differ too much).&lt;br /&gt;
'''Update:'''&amp;lt;br&amp;gt;&lt;br /&gt;
* [[User:Philipp|Philipp Bönhof]] improved the scripts with customizable parameters which should work with the newest pre-release of EiffelStudio. Download here: http://n.ethz.ch/student/pboenhof/autotest/eiffel_win_compilation_scripts.zip (updated: 2006-09-06)&lt;br /&gt;
&lt;br /&gt;
= Linux =&lt;br /&gt;
&lt;br /&gt;
Bernd Schoeller has developed a build script vor use with .acex configuration files. it is available for download at http://se.inf.ethz.ch/people/schoeller/download/build-ec-acex&lt;br /&gt;
&lt;br /&gt;
For use with the new .ecf configuration files, please use this updated version:&amp;lt;br/&amp;gt;&lt;br /&gt;
http://n.ethz.ch/~bherlig/download/build-ec-ecf.sh&lt;br /&gt;
&lt;br /&gt;
This script requires a single checkout from the SVN repository (with the EIFFEL_SVN environment variable pointing to it). It will compile the bench or the batch compiler (you need to modify the script for the second).&lt;br /&gt;
&lt;br /&gt;
== Gentoo ==&lt;br /&gt;
Ebuilds and installation instructions can be found [http://n.ethz.ch/~philipkr/eiffel-ebuilds.html here]&lt;br /&gt;
&lt;br /&gt;
= Mac OSX =&lt;br /&gt;
Now that Mac builds are available, I guess you can use the Linux script on Mac OS, too.&lt;br /&gt;
I prefer this more simple script though:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
cd $EIFFEL_SRC/C&lt;br /&gt;
make clobber&lt;br /&gt;
./quick_configure&lt;br /&gt;
&lt;br /&gt;
cd $EIFFEL_SRC/library/event/Clib&lt;br /&gt;
finish_freezing -library&lt;br /&gt;
cd $EIFFEL_SRC/library/net/Clib&lt;br /&gt;
finish_freezing -library&lt;br /&gt;
cd $EIFFEL_SRC/library/vision2/Clib&lt;br /&gt;
finish_freezing -library&lt;br /&gt;
cd $EIFFEL_SRC/library/vision2/implementation/gtk/Clib&lt;br /&gt;
finish_freezing -library&lt;br /&gt;
&lt;br /&gt;
cd $EIFFEL_SRC/Eiffel/Ace&lt;br /&gt;
ec -config ec.ecf -target bench -finalize -c_compile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This basically automates the steps described [[Compiling_EiffelStudio|here]].&lt;/div&gt;</summary>
		<author><name>Sieberst</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Automatic_Build_Scripts&amp;diff=8745</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=8745"/>
				<updated>2007-06-11T09:31:24Z</updated>
		
		<summary type="html">&lt;p&gt;Sieberst: &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;
= Platform independent =&lt;br /&gt;
== Based on geant ==&lt;br /&gt;
* To build a working delivery out of the trunk source code&lt;br /&gt;
 svn checkout https://eiffelsoftware.origo.ethz.ch/svn/es/trunk trunk&lt;br /&gt;
 set EIFFEL_SRC to point to this path&lt;br /&gt;
 &lt;br /&gt;
 And then use the geant script located under trunk/Src/scripts/build.eant&lt;br /&gt;
 geant -b $EIFFEL_SRC/scripts/build.eant build_es&lt;br /&gt;
 &lt;br /&gt;
 This will create in the current directory a delivery in the EiffelXX. &lt;br /&gt;
 You just need to point ISE_EIFFEL to this location to have a working EiffelStudio delivery&lt;br /&gt;
&lt;br /&gt;
* Warnings: &lt;br /&gt;
 The scripts are not fully tested, and may not be very well written for now&lt;br /&gt;
 (it contains unfinished code .. especially regarding setup building)&lt;br /&gt;
 On Windows:&lt;br /&gt;
    - It may have issue with dotnet (windows)&lt;br /&gt;
    - It requires: sed, tar, and bash (for runtime). You can use cygwin for that.&lt;br /&gt;
    - Extracting the Gobo library may crash &amp;quot;tar&amp;quot; ... need to check&lt;br /&gt;
 On linux:&lt;br /&gt;
    - You need to answer a few questions, mostly for runtime configuration&lt;br /&gt;
 &lt;br /&gt;
 However, the scripts are working and can be helpful to build EiffelStudio without too much trouble.&lt;br /&gt;
&lt;br /&gt;
* Note: If there are built executables in the build folder (in bin/), these executables are used for the delivery instead of recompiling from source. To make sure that the Delivery is built from scratch, the 'bin/' - folder of the build directory should be removed.&lt;br /&gt;
* If ever you have feedback, or comment, or anything, you can contact Jocelyn : mailto:jfiat@eiffel.com&lt;br /&gt;
&lt;br /&gt;
= Windows =&lt;br /&gt;
&lt;br /&gt;
[[User:Barnski|Bernardo Buss]] created a set of scripts for the automated compilation of EiffelStudio under Windows.&lt;br /&gt;
* Script: http://homepage.hispeed.ch/barnski/EiffelStudio_batch_files.zip&lt;br /&gt;
* Announcement: http://origo.ethz.ch/pipermail/es-devel/2006-April/000052.html&lt;br /&gt;
'''Note:'''&amp;lt;br&amp;gt;&lt;br /&gt;
* You may need to keep &amp;quot;2_checkout_dev.bat&amp;quot; up to date by yourself according to [[Compiling_EiffelStudio#Checking_out_from_SVN|Checking out from SVN]].&lt;br /&gt;
* It is possible that the '''batchfiles only work partial''' with EiffelStudio '''newer than version 5.7.0826''' (especially parts of the compilation process may differ too much).&lt;br /&gt;
'''Update:'''&amp;lt;br&amp;gt;&lt;br /&gt;
* [[User:Philipp|Philipp Bönhof]] improved the scripts with customizable parameters which should work with the newest pre-release of EiffelStudio. Download here: http://n.ethz.ch/student/pboenhof/autotest/eiffel_win_compilation_scripts.zip (updated: 2006-09-06)&lt;br /&gt;
&lt;br /&gt;
= Linux =&lt;br /&gt;
&lt;br /&gt;
Bernd Schoeller has developed a build script vor use with .acex configuration files. it is available for download at http://se.inf.ethz.ch/people/schoeller/download/build-ec-acex&lt;br /&gt;
&lt;br /&gt;
For use with the new .ecf configuration files, please use this updated version:&amp;lt;br/&amp;gt;&lt;br /&gt;
http://n.ethz.ch/~bherlig/download/build-ec-ecf.sh&lt;br /&gt;
&lt;br /&gt;
This script requires a single checkout from the SVN repository (with the EIFFEL_SVN environment variable pointing to it). It will compile the bench or the batch compiler (you need to modify the script for the second).&lt;br /&gt;
&lt;br /&gt;
== Gentoo ==&lt;br /&gt;
Ebuilds and installation instructions can be found [http://n.ethz.ch/~philipkr/eiffel-ebuilds.html here]&lt;br /&gt;
&lt;br /&gt;
= Mac OSX =&lt;br /&gt;
Now that Mac builds are available, I guess you can use the Linux script on Mac OS, too.&lt;br /&gt;
I prefer this more simple script though:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
cd $EIFFEL_SRC/C&lt;br /&gt;
make clobber&lt;br /&gt;
./quick_configure&lt;br /&gt;
&lt;br /&gt;
cd $EIFFEL_SRC/library/event/Clib&lt;br /&gt;
finish_freezing -library&lt;br /&gt;
cd $EIFFEL_SRC/library/net/Clib&lt;br /&gt;
finish_freezing -library&lt;br /&gt;
cd $EIFFEL_SRC/library/vision2/Clib&lt;br /&gt;
finish_freezing -library&lt;br /&gt;
cd $EIFFEL_SRC/library/vision2/implementation/gtk/Clib&lt;br /&gt;
finish_freezing -library&lt;br /&gt;
&lt;br /&gt;
cd $EIFFEL_SRC/Eiffel/Ace&lt;br /&gt;
ec -config ec.ecf -target bench -finalize -c_compile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This basically automates the steps described [[Compiling_EiffelStudio|here]].&lt;/div&gt;</summary>
		<author><name>Sieberst</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Capture_and_replay&amp;diff=8193</id>
		<title>Capture and replay</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Capture_and_replay&amp;diff=8193"/>
				<updated>2007-04-19T07:35:25Z</updated>
		
		<summary type="html">&lt;p&gt;Sieberst: /* Open Questions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the project page for capture &amp;amp; replay debugging&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
Capture/Replay should be implemented according to [1]:&lt;br /&gt;
*After defining the set of observed classes, an instrumented executable should be generated, that records all interactions between observed and unobserved objects.&lt;br /&gt;
*For the replay phase, unobserved classes are replaced  with stubs that replay their with the observed classes based on the recorded interactions. Thus it should be possible to replay a run for the set of observed classes.&lt;br /&gt;
&lt;br /&gt;
*Capture/Replay should at least be available for the Workbench (Frozen) C Code. The implementation for melted code is optional. It can't be avoided that parts of the work will depend on the compiler backend that is used. These dependencies should be isolated into separate classes and kept as small as possible.&lt;br /&gt;
&lt;br /&gt;
*The overhead of capture/replay should be measured to see if it could be used in practice.&lt;br /&gt;
&lt;br /&gt;
==Plan==&lt;br /&gt;
The project will be divided into several iterations to be able to work with both capture and replay as fast as possible.&lt;br /&gt;
&lt;br /&gt;
===iteration 0===&lt;br /&gt;
*Basic Capture&lt;br /&gt;
*Basic Replay&lt;br /&gt;
&lt;br /&gt;
===iteration 1===&lt;br /&gt;
*Fields&lt;br /&gt;
*Expanded Types&lt;br /&gt;
*Contracts&lt;br /&gt;
&lt;br /&gt;
===iteration 2===&lt;br /&gt;
*Polymorphism&lt;br /&gt;
*Genericity&lt;br /&gt;
*Onces&lt;br /&gt;
&lt;br /&gt;
===iteration 3===&lt;br /&gt;
*Agents&lt;br /&gt;
*Tuples&lt;br /&gt;
*Externals&lt;br /&gt;
&lt;br /&gt;
[[Image:Schedule 2007-03-27.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] Shrinivas Joshi and Alessandro Orso: Capture and Replay of User Executions to Improve Software Quality&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Common build errors==&lt;br /&gt;
Here's a draft of some lessons learned while building eiffel studio:&lt;br /&gt;
&lt;br /&gt;
* gcc: $ISE_EIFFEL/precomp/spec/linux-x86/EIFGENs/base/W_code/preobj.o: No such file or directory --&amp;gt; building of precompiles not successfully finished. Precompile $ISE_EIFFEL.&lt;br /&gt;
&lt;br /&gt;
==Other common errors==&lt;br /&gt;
* console applications in debug mode can't read from console, if the hosting eiffel studio was started in the background ('estudio &amp;amp;' instead 'estudio'). This is no bug, as '&amp;amp;' detaches the application from the standard input.&lt;br /&gt;
&lt;br /&gt;
==Open Questions==&lt;br /&gt;
* Why does Eiffel not support 'real' weak references? IDENTIFIED makes it necessary to modify a class before weak references to its objects are possible. Wouldn't it be possible to keep a table of Eiffel objects, which is ignored when calculating the reachable set of objects, but whose references are updated, when the GC moves objects? Instead of keeping the offset of the table entry (object_id of IDENTIFIED):&lt;br /&gt;
** an entry per weak reference could be made&lt;br /&gt;
** or an entry per object, but then it would be necessary to lookup in the table before  creating the reference&lt;/div&gt;</summary>
		<author><name>Sieberst</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Capture_and_replay&amp;diff=8192</id>
		<title>Capture and replay</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Capture_and_replay&amp;diff=8192"/>
				<updated>2007-04-19T07:35:06Z</updated>
		
		<summary type="html">&lt;p&gt;Sieberst: /* Open Questions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the project page for capture &amp;amp; replay debugging&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
Capture/Replay should be implemented according to [1]:&lt;br /&gt;
*After defining the set of observed classes, an instrumented executable should be generated, that records all interactions between observed and unobserved objects.&lt;br /&gt;
*For the replay phase, unobserved classes are replaced  with stubs that replay their with the observed classes based on the recorded interactions. Thus it should be possible to replay a run for the set of observed classes.&lt;br /&gt;
&lt;br /&gt;
*Capture/Replay should at least be available for the Workbench (Frozen) C Code. The implementation for melted code is optional. It can't be avoided that parts of the work will depend on the compiler backend that is used. These dependencies should be isolated into separate classes and kept as small as possible.&lt;br /&gt;
&lt;br /&gt;
*The overhead of capture/replay should be measured to see if it could be used in practice.&lt;br /&gt;
&lt;br /&gt;
==Plan==&lt;br /&gt;
The project will be divided into several iterations to be able to work with both capture and replay as fast as possible.&lt;br /&gt;
&lt;br /&gt;
===iteration 0===&lt;br /&gt;
*Basic Capture&lt;br /&gt;
*Basic Replay&lt;br /&gt;
&lt;br /&gt;
===iteration 1===&lt;br /&gt;
*Fields&lt;br /&gt;
*Expanded Types&lt;br /&gt;
*Contracts&lt;br /&gt;
&lt;br /&gt;
===iteration 2===&lt;br /&gt;
*Polymorphism&lt;br /&gt;
*Genericity&lt;br /&gt;
*Onces&lt;br /&gt;
&lt;br /&gt;
===iteration 3===&lt;br /&gt;
*Agents&lt;br /&gt;
*Tuples&lt;br /&gt;
*Externals&lt;br /&gt;
&lt;br /&gt;
[[Image:Schedule 2007-03-27.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] Shrinivas Joshi and Alessandro Orso: Capture and Replay of User Executions to Improve Software Quality&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Common build errors==&lt;br /&gt;
Here's a draft of some lessons learned while building eiffel studio:&lt;br /&gt;
&lt;br /&gt;
* gcc: $ISE_EIFFEL/precomp/spec/linux-x86/EIFGENs/base/W_code/preobj.o: No such file or directory --&amp;gt; building of precompiles not successfully finished. Precompile $ISE_EIFFEL.&lt;br /&gt;
&lt;br /&gt;
==Other common errors==&lt;br /&gt;
* console applications in debug mode can't read from console, if the hosting eiffel studio was started in the background ('estudio &amp;amp;' instead 'estudio'). This is no bug, as '&amp;amp;' detaches the application from the standard input.&lt;br /&gt;
&lt;br /&gt;
==Open Questions==&lt;br /&gt;
* Why does Eiffel not support 'real' weak references? IDENTIFIED makes it necessary to modify a class before weak references to its objects are possible. Wouldn't it be possible to keep a table of Eiffel objects, which is ignored when calculating the reachable set of objects, but whose references are updated, when the GC moves objects? Instead of keeping the offset of the table entry (object_id of IDENTIFIED):&lt;br /&gt;
** an entry per weak reference could be made&lt;br /&gt;
** or an entry per object, but then it would be necessary to lookup in the table before  crating the reference&lt;/div&gt;</summary>
		<author><name>Sieberst</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Capture_and_replay&amp;diff=8191</id>
		<title>Capture and replay</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Capture_and_replay&amp;diff=8191"/>
				<updated>2007-04-19T07:34:19Z</updated>
		
		<summary type="html">&lt;p&gt;Sieberst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the project page for capture &amp;amp; replay debugging&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
Capture/Replay should be implemented according to [1]:&lt;br /&gt;
*After defining the set of observed classes, an instrumented executable should be generated, that records all interactions between observed and unobserved objects.&lt;br /&gt;
*For the replay phase, unobserved classes are replaced  with stubs that replay their with the observed classes based on the recorded interactions. Thus it should be possible to replay a run for the set of observed classes.&lt;br /&gt;
&lt;br /&gt;
*Capture/Replay should at least be available for the Workbench (Frozen) C Code. The implementation for melted code is optional. It can't be avoided that parts of the work will depend on the compiler backend that is used. These dependencies should be isolated into separate classes and kept as small as possible.&lt;br /&gt;
&lt;br /&gt;
*The overhead of capture/replay should be measured to see if it could be used in practice.&lt;br /&gt;
&lt;br /&gt;
==Plan==&lt;br /&gt;
The project will be divided into several iterations to be able to work with both capture and replay as fast as possible.&lt;br /&gt;
&lt;br /&gt;
===iteration 0===&lt;br /&gt;
*Basic Capture&lt;br /&gt;
*Basic Replay&lt;br /&gt;
&lt;br /&gt;
===iteration 1===&lt;br /&gt;
*Fields&lt;br /&gt;
*Expanded Types&lt;br /&gt;
*Contracts&lt;br /&gt;
&lt;br /&gt;
===iteration 2===&lt;br /&gt;
*Polymorphism&lt;br /&gt;
*Genericity&lt;br /&gt;
*Onces&lt;br /&gt;
&lt;br /&gt;
===iteration 3===&lt;br /&gt;
*Agents&lt;br /&gt;
*Tuples&lt;br /&gt;
*Externals&lt;br /&gt;
&lt;br /&gt;
[[Image:Schedule 2007-03-27.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] Shrinivas Joshi and Alessandro Orso: Capture and Replay of User Executions to Improve Software Quality&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Common build errors==&lt;br /&gt;
Here's a draft of some lessons learned while building eiffel studio:&lt;br /&gt;
&lt;br /&gt;
* gcc: $ISE_EIFFEL/precomp/spec/linux-x86/EIFGENs/base/W_code/preobj.o: No such file or directory --&amp;gt; building of precompiles not successfully finished. Precompile $ISE_EIFFEL.&lt;br /&gt;
&lt;br /&gt;
==Other common errors==&lt;br /&gt;
* console applications in debug mode can't read from console, if the hosting eiffel studio was started in the background ('estudio &amp;amp;' instead 'estudio'). This is no bug, as '&amp;amp;' detaches the application from the standard input.&lt;br /&gt;
&lt;br /&gt;
==Open Questions==&lt;br /&gt;
* Why does Eiffel not support 'real' weak references? IDENTIFIED makes it necessary to modify a class before weak references to its objects are possible. Wouldn't it be possible to keep a table of Eiffel objects, which is ignored when calculating the reachable set of objects, but whose references are updated, when the GC moves objects? Instead of keeping the offset of the table entry (object_id of IDENTIFIED), either a entry per weak reference could be made, or an entry per object, but then it would be necessary to lookup in the table before  crating the reference&lt;/div&gt;</summary>
		<author><name>Sieberst</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Capture_and_replay&amp;diff=8175</id>
		<title>Capture and replay</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Capture_and_replay&amp;diff=8175"/>
				<updated>2007-04-18T11:49:47Z</updated>
		
		<summary type="html">&lt;p&gt;Sieberst: /* Other common errors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the project page for capture &amp;amp; replay debugging&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
Capture/Replay should be implemented according to [1]:&lt;br /&gt;
*After defining the set of observed classes, an instrumented executable should be generated, that records all interactions between observed and unobserved objects.&lt;br /&gt;
*For the replay phase, unobserved classes are replaced  with stubs that replay their with the observed classes based on the recorded interactions. Thus it should be possible to replay a run for the set of observed classes.&lt;br /&gt;
&lt;br /&gt;
*Capture/Replay should at least be available for the Workbench (Frozen) C Code. The implementation for melted code is optional. It can't be avoided that parts of the work will depend on the compiler backend that is used. These dependencies should be isolated into separate classes and kept as small as possible.&lt;br /&gt;
&lt;br /&gt;
*The overhead of capture/replay should be measured to see if it could be used in practice.&lt;br /&gt;
&lt;br /&gt;
==Plan==&lt;br /&gt;
The project will be divided into several iterations to be able to work with both capture and replay as fast as possible.&lt;br /&gt;
&lt;br /&gt;
===iteration 0===&lt;br /&gt;
*Basic Capture&lt;br /&gt;
*Basic Replay&lt;br /&gt;
&lt;br /&gt;
===iteration 1===&lt;br /&gt;
*Fields&lt;br /&gt;
*Expanded Types&lt;br /&gt;
*Contracts&lt;br /&gt;
&lt;br /&gt;
===iteration 2===&lt;br /&gt;
*Polymorphism&lt;br /&gt;
*Genericity&lt;br /&gt;
*Onces&lt;br /&gt;
&lt;br /&gt;
===iteration 3===&lt;br /&gt;
*Agents&lt;br /&gt;
*Tuples&lt;br /&gt;
*Externals&lt;br /&gt;
&lt;br /&gt;
[[Image:Schedule 2007-03-27.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] Shrinivas Joshi and Alessandro Orso: Capture and Replay of User Executions to Improve Software Quality&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Common build errors==&lt;br /&gt;
Here's a draft of some lessons learned while building eiffel studio:&lt;br /&gt;
&lt;br /&gt;
* gcc: $ISE_EIFFEL/precomp/spec/linux-x86/EIFGENs/base/W_code/preobj.o: No such file or directory --&amp;gt; building of precompiles not successfully finished. Precompile $ISE_EIFFEL.&lt;br /&gt;
&lt;br /&gt;
==Other common errors==&lt;br /&gt;
* console applications in debug mode can't read from console, if the hosting eiffel studio was started in the background ('estudio &amp;amp;' instead 'estudio'). This is no bug, as '&amp;amp;' detaches the application from the standard input.&lt;/div&gt;</summary>
		<author><name>Sieberst</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Capture_and_replay&amp;diff=8174</id>
		<title>Capture and replay</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Capture_and_replay&amp;diff=8174"/>
				<updated>2007-04-18T11:46:51Z</updated>
		
		<summary type="html">&lt;p&gt;Sieberst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the project page for capture &amp;amp; replay debugging&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
Capture/Replay should be implemented according to [1]:&lt;br /&gt;
*After defining the set of observed classes, an instrumented executable should be generated, that records all interactions between observed and unobserved objects.&lt;br /&gt;
*For the replay phase, unobserved classes are replaced  with stubs that replay their with the observed classes based on the recorded interactions. Thus it should be possible to replay a run for the set of observed classes.&lt;br /&gt;
&lt;br /&gt;
*Capture/Replay should at least be available for the Workbench (Frozen) C Code. The implementation for melted code is optional. It can't be avoided that parts of the work will depend on the compiler backend that is used. These dependencies should be isolated into separate classes and kept as small as possible.&lt;br /&gt;
&lt;br /&gt;
*The overhead of capture/replay should be measured to see if it could be used in practice.&lt;br /&gt;
&lt;br /&gt;
==Plan==&lt;br /&gt;
The project will be divided into several iterations to be able to work with both capture and replay as fast as possible.&lt;br /&gt;
&lt;br /&gt;
===iteration 0===&lt;br /&gt;
*Basic Capture&lt;br /&gt;
*Basic Replay&lt;br /&gt;
&lt;br /&gt;
===iteration 1===&lt;br /&gt;
*Fields&lt;br /&gt;
*Expanded Types&lt;br /&gt;
*Contracts&lt;br /&gt;
&lt;br /&gt;
===iteration 2===&lt;br /&gt;
*Polymorphism&lt;br /&gt;
*Genericity&lt;br /&gt;
*Onces&lt;br /&gt;
&lt;br /&gt;
===iteration 3===&lt;br /&gt;
*Agents&lt;br /&gt;
*Tuples&lt;br /&gt;
*Externals&lt;br /&gt;
&lt;br /&gt;
[[Image:Schedule 2007-03-27.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] Shrinivas Joshi and Alessandro Orso: Capture and Replay of User Executions to Improve Software Quality&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Common build errors==&lt;br /&gt;
Here's a draft of some lessons learned while building eiffel studio:&lt;br /&gt;
&lt;br /&gt;
* gcc: $ISE_EIFFEL/precomp/spec/linux-x86/EIFGENs/base/W_code/preobj.o: No such file or directory --&amp;gt; building of precompiles not successfully finished. Precompile $ISE_EIFFEL.&lt;br /&gt;
&lt;br /&gt;
==Other common errors==&lt;br /&gt;
* console applications in debug mode can't read from console, if the hosting eiffel studio was started in the background ('estudio &amp;amp;' instead 'estudio')&lt;/div&gt;</summary>
		<author><name>Sieberst</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Capture_and_replay&amp;diff=8116</id>
		<title>Capture and replay</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Capture_and_replay&amp;diff=8116"/>
				<updated>2007-04-17T11:37:03Z</updated>
		
		<summary type="html">&lt;p&gt;Sieberst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the project page for capture &amp;amp; replay debugging&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
Capture/Replay should be implemented according to [1]:&lt;br /&gt;
*After defining the set of observed classes, an instrumented executable should be generated, that records all interactions between observed and unobserved objects.&lt;br /&gt;
*For the replay phase, unobserved classes are replaced  with stubs that replay their with the observed classes based on the recorded interactions. Thus it should be possible to replay a run for the set of observed classes.&lt;br /&gt;
&lt;br /&gt;
*Capture/Replay should at least be available for the Workbench (Frozen) C Code. The implementation for melted code is optional. It can't be avoided that parts of the work will depend on the compiler backend that is used. These dependencies should be isolated into separate classes and kept as small as possible.&lt;br /&gt;
&lt;br /&gt;
*The overhead of capture/replay should be measured to see if it could be used in practice.&lt;br /&gt;
&lt;br /&gt;
==Plan==&lt;br /&gt;
The project will be divided into several iterations to be able to work with both capture and replay as fast as possible.&lt;br /&gt;
&lt;br /&gt;
===iteration 0===&lt;br /&gt;
*Basic Capture&lt;br /&gt;
*Basic Replay&lt;br /&gt;
&lt;br /&gt;
===iteration 1===&lt;br /&gt;
*Fields&lt;br /&gt;
*Expanded Types&lt;br /&gt;
*Contracts&lt;br /&gt;
&lt;br /&gt;
===iteration 2===&lt;br /&gt;
*Polymorphism&lt;br /&gt;
*Genericity&lt;br /&gt;
*Onces&lt;br /&gt;
&lt;br /&gt;
===iteration 3===&lt;br /&gt;
*Agents&lt;br /&gt;
*Tuples&lt;br /&gt;
*Externals&lt;br /&gt;
&lt;br /&gt;
[[Image:Schedule 2007-03-27.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] Shrinivas Joshi and Alessandro Orso: Capture and Replay of User Executions to Improve Software Quality&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Common build errors==&lt;br /&gt;
Here's a draft of some lessons learned while building eiffel studio:&lt;br /&gt;
&lt;br /&gt;
* gcc: $ISE_EIFFEL/precomp/spec/linux-x86/EIFGENs/base/W_code/preobj.o: No such file or directory --&amp;gt; building of precompiles not successfully finished. Precompile $ISE_EIFFEL.&lt;/div&gt;</summary>
		<author><name>Sieberst</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Capture_and_replay&amp;diff=7743</id>
		<title>Capture and replay</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Capture_and_replay&amp;diff=7743"/>
				<updated>2007-03-27T09:17:10Z</updated>
		
		<summary type="html">&lt;p&gt;Sieberst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the project page for capture &amp;amp; replay debugging&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
Capture/Replay should be implemented according to [1]:&lt;br /&gt;
*After defining the set of observed classes, an instrumented executable should be generated, that records all interactions between observed and unobserved objects.&lt;br /&gt;
*For the replay phase, unobserved classes are replaced  with stubs that replay their with the observed classes based on the recorded interactions. Thus it should be possible to replay a run for the set of observed classes.&lt;br /&gt;
&lt;br /&gt;
*Capture/Replay should at least be available for the Workbench (Frozen) C Code. The implementation for melted code is optional. It can't be avoided that parts of the work will depend on the compiler backend that is used. These dependencies should be isolated into separate classes and kept as small as possible.&lt;br /&gt;
&lt;br /&gt;
*The overhead of capture/replay should be measured to see if it could be used in practice.&lt;br /&gt;
&lt;br /&gt;
==Plan==&lt;br /&gt;
The project will be divided into several iterations to be able to work with both capture and replay as fast as possible.&lt;br /&gt;
&lt;br /&gt;
===iteration 0===&lt;br /&gt;
*Basic Capture&lt;br /&gt;
*Basic Replay&lt;br /&gt;
&lt;br /&gt;
===iteration 1===&lt;br /&gt;
*Fields&lt;br /&gt;
*Expanded Types&lt;br /&gt;
*Contracts&lt;br /&gt;
&lt;br /&gt;
===iteration 2===&lt;br /&gt;
*Polymorphism&lt;br /&gt;
*Genericity&lt;br /&gt;
*Onces&lt;br /&gt;
&lt;br /&gt;
===iteration 3===&lt;br /&gt;
*Agents&lt;br /&gt;
*Tuples&lt;br /&gt;
*Externals&lt;br /&gt;
&lt;br /&gt;
[[Image:Schedule 2007-03-27.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] Shrinivas Joshi and Alessandro Orso: Capture and Replay of User Executions to Improve Software Quality&lt;/div&gt;</summary>
		<author><name>Sieberst</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Capture_and_replay&amp;diff=7742</id>
		<title>Capture and replay</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Capture_and_replay&amp;diff=7742"/>
				<updated>2007-03-27T09:11:14Z</updated>
		
		<summary type="html">&lt;p&gt;Sieberst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the project page for capture &amp;amp; replay debugging&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
Capture/Replay should be implemented according to [1]:&lt;br /&gt;
*After defining the set of observed classes, an instrumented executable should be generated, that records all interactions between observed and unobserved objects.&lt;br /&gt;
*For the replay phase, unobserved classes are replaced  with stubs that replay their with the observed classes based on the recorded interactions. Thus it should be possible to replay a run for the set of observed classes.&lt;br /&gt;
&lt;br /&gt;
*Capture/Replay should at least be available for the Workbench (Frozen) C Code. The implementation for melted code is optional. It can't be avoided that parts of the work will depend on the compiler backend that is used. These dependencies should be isolated into separate classes and kept as small as possible.&lt;br /&gt;
&lt;br /&gt;
*The overhead of capture/replay should be measured to see if it could be used in practice.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] Shrinivas Joshi and Alessandro Orso: Capture and Replay of User Executions to Improve Software Quality&lt;br /&gt;
[[Image:Schedule 2007-03-27.png]]&lt;/div&gt;</summary>
		<author><name>Sieberst</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=File:Schedule_2007-03-27.png&amp;diff=7741</id>
		<title>File:Schedule 2007-03-27.png</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=File:Schedule_2007-03-27.png&amp;diff=7741"/>
				<updated>2007-03-27T09:09:21Z</updated>
		
		<summary type="html">&lt;p&gt;Sieberst: Capture &amp;amp; Replay: tentative Schedule (March 27, 2007)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Capture &amp;amp; Replay: tentative Schedule (March 27, 2007)&lt;/div&gt;</summary>
		<author><name>Sieberst</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Capture_and_replay&amp;diff=7740</id>
		<title>Capture and replay</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Capture_and_replay&amp;diff=7740"/>
				<updated>2007-03-27T08:55:28Z</updated>
		
		<summary type="html">&lt;p&gt;Sieberst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the project page for capture &amp;amp; replay debugging&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
Capture/Replay should be implemented according to [1]:&lt;br /&gt;
*After defining the set of observed classes, an instrumented executable should be generated, that records all interactions between observed and unobserved objects.&lt;br /&gt;
*For the replay phase, unobserved classes are replaced  with stubs that replay their with the observed classes based on the recorded interactions. Thus it should be possible to replay a run for the set of observed classes.&lt;br /&gt;
&lt;br /&gt;
*Capture/Replay should at least be available for the Workbench (Frozen) C Code. The implementation for melted code is optional. It can't be avoided that parts of the work will depend on the compiler backend that is used. These dependencies should be isolated into separate classes and kept as small as possible.&lt;br /&gt;
&lt;br /&gt;
*The overhead of capture/replay should be measured to see if it could be used in practice.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] Shrinivas Joshi and Alessandro Orso: Capture and Replay of User Executions to Improve Software Quality&lt;/div&gt;</summary>
		<author><name>Sieberst</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/index.php?title=Running_EiffelStudio_in_Workbench_mode&amp;diff=7682</id>
		<title>Running EiffelStudio in Workbench mode</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/index.php?title=Running_EiffelStudio_in_Workbench_mode&amp;diff=7682"/>
				<updated>2007-03-22T09:21:33Z</updated>
		
		<summary type="html">&lt;p&gt;Sieberst: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:EiffelStudio]]&lt;br /&gt;
[[Category:Compiler]]&lt;br /&gt;
Starting from revision 6.0 of EiffelStudio, we made it easier to run side by side an official version of EiffelStudio and its workbench version. To make sure this functionality is enabled you need to create a separate delivery of EiffelStudio located at the same place as the official version with the '''_wkbench'''  suffix.&lt;br /&gt;
&lt;br /&gt;
We assume that you have installed the official release of EiffelStudio in the following directory '''/apps/EiffelXX'''. Therefore in the '''/apps''' directory follow the [[Building_a_delivery|instruction on how to build a delivery]], but use the name EiffelXX_wkbench instead of EiffelXX.&lt;br /&gt;
&lt;br /&gt;
Now that you have done that, simply copy your workbench binaries into EiffelXX_wkbench/studio/spec/$ISE_PLATFORM/bin. It is also possible to directly link 'ec' from the workbench binaries (located in $EIFFEL_SRC/Eiffel/Ace/EIFGENs/bench/W_code/).&lt;br /&gt;
&lt;br /&gt;
Create the precompiles for EiffelXX_wkbench using ec from EiffelXX_wkbench.&lt;br /&gt;
&lt;br /&gt;
Make sure that $EIFFEL_SRC is set.&lt;/div&gt;</summary>
		<author><name>Sieberst</name></author>	</entry>

	</feed>