Hierarchy changes in EiffelStudio 7.0

by Emmanuel Stapf (modified: 2011 Dec 09)

In the 7.0 release, we have changed the hierarchy structure used by EiffelStudio to store either private settings or user settings. In previous revisions, we had the following depending on your platform.

Platform Private Settings User Settings
Unix $HOME/.es/68/ $HOME/.es68/
Windows %LOCALAPPDATA%\Eiffel Software\eiffel68\ %USERPROFILE%\Documents\Eiffel 6.8 User Files\
Mac OS X $HOME/.es/68/ $HOME/Eiffel 6.8 User Files

In the newly released 7.0 the paths are now:

Platform Private Settings User Settings
Unix $HOME/.es/7.0/ $HOME/.es/eiffel_user_files/7.0/
Windows %LOCALAPPDATA%\Eiffel Software\.es\7.0\ %USERPROFILE%\Documents\Eiffel User Files\7.0\
Mac OS X $HOME/.es/7.0/ $HOME/Eiffel User Files/7.0

As you can see the private settings are more consistent apart from their root location which is the same on Unix/Mac but different on Windows. Same for user settings which only differ by their root location and the name of `Eiffel User Files' which is in lower case and without spaces for Unix.

Using this simplified layout, there is another change introduced in the 7.0 release. The location of the precompiled libraries. By default, they used to be in $ISE_EIFFEL/precomp/spec/$ISE_PLATFORM for both Windows and Unix. Unfortunately if EiffelStudio is installed as an administrator, you most likely don't have permission to write in that location. In 7.0, the precompilation directory has changed to point to the precomp sub-directory of the user settings location (see above).

For platforms that provided some installation packages (e.g. Windows or Debian based Linux), it also means that there is no more precompilation step during installation. From now on, the precompilations will be built the first time they are needed. If the location is not of your liking, you can override it by defining the ISE_PRECOMP environment variable to point to a different location.

Some other minor changes in the hierarchy of EiffelStudio is the introduction of a contrib and unstable directory that follows the library categorization structure described at http://dev.eiffel.com/Library_Categorization. This categorization makes it easier to find libraries by basing the search on a particular domain. The contrib directory includes external contributions made by Eiffel users for Eiffel users. The unstable directory includes some Eiffel Software specific work which is not yet ready for prime time which nevertheless might be of interest for experienced users who are not afraid of getting their hands dirty.

If you have libraries that you feel would fit nicely in the contrib directory, let me know, we will be happy to include them.