Why a 4.7 MB redistributable runtime is the missing piece for Eiffel library deployment
Contents
EiffelStudio is an exceptionally capable development environment. Its command-line compiler ec can build a complete Eiffel application without the IDE, and the finalized C output in the F_code folder is portable, auditable C that any C compiler can process. For developers building applications this workflow is well understood and well supported.
For library deployment the situation is different and more difficult. A project like xpact — a proposed Eiffel reimplementation of the widely-deployed libexpat XML parser with full Design by Contract annotations — needs to be consumable by developers who have no Eiffel knowledge and no EiffelStudio installation. A C developer linking against xpact should see a standard shared library and a C header. A Python developer should be able to install it via pip. A CI pipeline should be able to build it from source with nothing more than a C compiler and make.
Currently none of this is straightforward. Compiling the F_code output of an EiffelStudio finalization requires the Eiffel runtime headers and libraries, which are embedded inside the full EiffelStudio installation. A downstream builder who wants to compile xpact from source must install several hundred megabytes of EiffelStudio toolchain to access a few megabytes of runtime support files. This is a significant and unnecessary barrier to adoption.
Full article
https://www.eiffel-loop.com/article/eiffelstudio-fcode-sdk-v3.html