A Case for Replacing the C Backend — Discussion Paper for Review by Eiffel Software Engineering
(20-25 minutes: 5000 words on eiffel.org)
Dear Finnian,
Thanks for this carefully argued proposal.
(I note that you entered it as a blog article; great. Here is the link for those who might not have seen it: https://www.eiffel.org/blog/Finnian%20Reilly/2026/05/zig-intermediate-language-eiffelstudio.)
Disclaimer: I know little about Zig -- only what I have found in your message, in Wikipedia and a few other places.
It looks like the retargeting to Zig could technically be done, but it is likely to be a significant effort. The basic question to me is the rationale for it:
I should also point out that for all the effort put into .NET retargeting, and all the good technical arguments for it, we have not seen much traction there. Most people seem still to prefer the good old C-based platform, even if they do not use SCOOP. I do not fully know why but the reality is undeniable.
I do not necessarily believe that C as a target language will be with us forever, and as a result I welcome this discussion, but the choice of replacement has to be made very carefully. We have to start with the basic question: what should we do to increase the attractiveness of Eiffel? It seems to me that a key technical obstacle at this point, rather than the melt/freeze/finalize split, is the difficulty of writing completely seamless applications that work throughout desktop platforms (Windows, Linux, MacOS), the browser, and mobile platforms (iOS, Android), with everything supported across all of them, including graphics and concurrency. Does Zig retargeting help here?
But let’s continue the discussion.
Thanks again,
-- BM
From: eiffel...@googlegroups.com <eiffel...@googlegroups.com> On Behalf Of Finnian Reilly
Sent: 30 May, 2026 8:53
To: Eiffel Users <eiffel...@googlegroups.com>
Subject: [eiffel-users] Zig as an Intermediate Language for EiffelStudio
A Case for Replacing the C Backend — Discussion Paper for Review by Eiffel Software Engineering
[Rest of quoted message removed since it is in the blog article at https://www.eiffel.org/blog/Finnian%20Reilly/2026/05/zig-intermediate-language-eiffelstudio -- BM]
.
Dear Bertrand,
Thank you for your thoughtful and detailed response. Having the designer of Eiffel engage directly with the paper within 24 hours was more than I could have hoped for.
Your points have caused me to revise my position in two places. On the frozen/finalised divergence argument, I examined my own commit history across 1,891 commits and found only three genuine behavioural discrepancies — all on EiffelStudio 16.05, all in 2021, and all likely fixed in subsequent releases. You are right that the problem is rare. The paper overstated that pillar and I have withdrawn it as a primary justification.
On the .NET backend precedent, I had no good answer and have said so plainly. If a mature, well-resourced target with a large developer ecosystem failed to attract adoption, it is a sobering caution for any backend proposal.
Your reframe of the real obstacle — seamless cross-platform development across desktop, browser, and mobile — is the most important contribution your response made. The paper was addressing a real but secondary problem. That primary question deserves its own discussion and I hope this one prompts it.
I have incorporated your observations into a new Bertrand Meyer's Response section in the article, and rewritten the conclusion in light of both your input and Eric Bezault's earlier technical corrections. The revised conclusion is considerably more modest than the original — which I think makes it more honest.
What survives scrutiny is a limited but actionable recommendation: adopting zig cc as the C compiler for freeze and finalise, which Eric has already validated in Gobo Eiffel and which requires no changes to the code generator. Everything beyond that is, as you say, a question that must be approached carefully and from first principles.
Thanks again for taking the time.
Finnian
On 2 Jun 2026, at 10:53 AM, Finnian Reilly <frei...@gmail.com> wrote:
--
You received this message because you are subscribed to the Google Groups "Eiffel Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to eiffel-users...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/eiffel-users/b26472c0-c83c-4ecc-b73d-8fcffe35bdfcn%40googlegroups.com.
and I linked to it in the paper.
regards
Finnian