Questions about multiple precompilation directories in Eiffel user files directory

35 views
Skip to first unread message

Thomas Goering

unread,
Jun 15, 2024, 12:06:42 PMJun 15
to eiffelstudio-dev
In my Eiffel user files directory (for EiffelStudio 23.09) there are now five directories with these names:

- precomp
- precomp-estudio
- precomp-finish_freezing
- precomp-iron
- precomp-wizard

When I open and compile one of the EiffelStudio's example projects and if they use precompiled libraries, they are precompiled in the "precomp" directory. The project settings reference them as e.g. "$ISE_PRECOMP\base-scoop-safe.ecf", so $ISE_PRECOMP seems to point by default to this directory.

Then there is something strange: If such a project is open (and compiled) and I open the precompilation wizard (Tools -> Precompilation Wizard...) I can see which of the libraries are already precompiled in this $ISE_PRECOMP directory and I can precompile more as well. (You can see the directory used in the Tooltip when you hover the mouse over a library name.)
But: When I open EiffelStudio without opening a project and then open the precompilation wizard, this tool uses the "precomp-wizard" directory and not "precomp". Therefore it doesn't display which libraries have been previously precompiled in the "precomp" directory.

First question: Why this difference when starting the precompilation wizard? What the point of having this "precomp-wizard" directory.

Then: What's the reason for the other "precomp-*" directories?

E.g. "precomp-estudio" seems to be generated at the first start of a new EiffelStudio installation (as well as "precomp") but it is empty in my case. "precomp-finish_freezing" is empty too.

I assume "precomp-iron" is used for precompiled libraries that are referenced from an IRON repository (I tried this once so there is some precompiled code in there).

Is all this, about the different precompilation directories, documented somewhere? Are there different environment variables for the directories (besides $ISE_PRECOMP)?

Thomas

Jocelyn Fiat

unread,
Jun 17, 2024, 3:29:46 AMJun 17
to eiffelst...@googlegroups.com
Hi Thomas,

This is an unwanted side effect.
We will see how to fix it.

For the details, before 23.09 we made a change so that different flavour of EiffelStudio compilers would have their own precomp folder (especially when working on EiffelStudio compiler project as a dev, it was a pain when working with workbench version of ec, as the precomp EIFGENs contents are not always compatible between workbench, and finalized ec).
However, each EiffelStudio tool re-uses the EIFFEL_LAYOUT component, and the precomp folder is created when this component is initialized. It should be only for the compiler.



--
For more messaging options, visit this group at http://forum.eiffel.com.
Information on the Eiffelstudio project: http://dev.eiffel.com.
---
You received this message because you are subscribed to the Google Groups "eiffelstudio-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to eiffelstudio-d...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/eiffelstudio-dev/984f0ac9-db2d-472f-91d0-84809683c477n%40googlegroups.com.


--
Jocelyn
------------------------------------------------------------------------
Eiffel Software
https://www.eiffel.com
Customer support: https://support.eiffel.com
User group: https://groups.google.com/forum/#!forum/eiffel-users
------------------------------------------------------------------------

Jocelyn Fiat

unread,
Jun 17, 2024, 4:01:07 AMJun 17
to eiffelst...@googlegroups.com
This is fixed for the next release. And there should be again only one precomp directory.
Sorry for the confusion.
Message has been deleted
Message has been deleted
Message has been deleted

Thomas Goering

unread,
Jun 19, 2024, 6:31:12 PMJun 19
to eiffelstudio-dev
Why do my answers to this topic get deleted?
 

Thomas Goering

unread,
Jun 20, 2024, 2:04:05 AMJun 20
to eiffelstudio-dev
Thank you!

Also thanks for the (quite new?) updated information on how to compile EiffelStudio from source code:


I used it to update my batch file that I use for preparing my environment when I compile and debug EiffelStudio.

One additional note:
The last time I compiled the C libraries was a couple of months ago. Today I updated my local EiffelStudio git repository clone and tried to compile the C libraries again (using geant prepare) I got some errors. It turned out that the installation of the .NET Framework 4.7 (!) SDK / Developer Pack was missing. After installing this everything was fine.
Until then I only included the .NET desktop environment during the Visual Studio Community 2022 installation which seems to include .NET Framework 4.7.2 development tools (and possibly a .NET SDK 8.0). Maybe this is worth to mention on the page or somewhere else (I did't find such up to date installation prerequisites).

Thomas

Thomas Goering

unread,
Jun 20, 2024, 2:04:05 AMJun 20
to eiffelstudio-dev
Why do my answers to this topic get deleted?

Jocelyn Fiat schrieb am Montag, 17. Juni 2024 um 10:01:07 UTC+2:

Thomas Goering

unread,
Jun 20, 2024, 2:04:06 AMJun 20
to eiffelstudio-dev
Thank you!

Also thanks for the (updated) instructions on how to compile EiffelStudio from source code:


I used it to update my local batch file that I use to prepare the environment and compile EiffelStudio.

Yesterday I also updated my local clone of the EiffelStudio git repository with the recent changes in it and wanted to recompile everything. Unfortunately compiling the C libraries reported errors when executing 'espawn "geant prepare"'. One was:

---
C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\NuGet\17.0\Microsoft.NuGet.targets(198,5): er
ror : Your project does not reference ".NETFramework,Version=v4.7" framework. Add a reference to ".NETFramework,Version
=v4.7" in the "TargetFrameworks" property of your project file and then re-run NuGet restore. [C:\Users\thomas\Document
s\GitHub\EiffelStudio\Src\Eiffel\eiffel\com_il_generation\Core\run-time\runtime.csproj]
---

After installing the .NET Framework 4.7 Developer Pack it worked. Until then I only installed Visual Studio Community 2022 including the .NET desktop development components and it worked previously (some weeks ago before updating the local EiffelStudio git repository).

Ok, so yesterday I got it all compiled. But today I got the same errors when compiling the C libraries using the geant command. And I found out that it works if I delete all previously generated files (using the Github Desktop application I delete all added files) in this compilation process before starting geant.

I am confused: Is the .NET Framework 4.7 really needed for the C library compilation process and what causes the errors to reappear without deleting the generated files?

If the .NET Framework 4.7 is needed it would be helpful to add this as a prerequisite on the above mentioned page (https://www.eiffel.org/node/490).

Thomas

BTW: I wrote and sent this answer already yesterday (with different text of course because I don't have a copy of it) but it seems that it was deleted. I also see a small note at the bottom on this page saying "Die post was deleted". Why was it deleted?

Jocelyn Fiat schrieb am Montag, 17. Juni 2024 um 10:01:07 UTC+2:

Jocelyn Fiat

unread,
Jun 20, 2024, 2:05:40 AMJun 20
to eiffelstudio-dev
I have no idea why. I just see that now ... your 3 last messages were deleted, in fact they were in the "Pending" messages.

I've just approved them manually.

Jocelyn Fiat

unread,
Jun 21, 2024, 8:09:08 AMJun 21
to eiffelstudio-dev
The explanation from a message sent to me 55 minutes ago ... so many hour after the facts.
Your message were classified as likely spam messages and thus sent to pending messages for approval.
Reply all
Reply to author
Forward
0 new messages