Re: [eiffel-users] Gobo Eiffel 26.03 released

'Germán Arias' via Eiffel Users <eiffel-users-/[email protected]> Thu, 2 Apr 2026 02:45:53 +0200
Newsgroups gmane.comp.lang.eiffel.ise,gmane.comp.lang.eiffel.gobo.devel
Message-ID <trinity-a6836cef-b2ed-4ae6-b078-ad9c5ca9d590-1775090752938@3c-app-mailcom-bs05>
<html><head></head><body><div style=3D"font-family: Verdana;font-size: 12.0=
px;"><div>&nbsp;</div>

<div>
<div>Hi Eric</div>

<div>&nbsp;</div>

<div>I bulid Gobo with Gcc and all works fine now</div>

<div>&nbsp;</div>

<div>Thanks</div>

<div>Germ&aacute;n&nbsp;</div>

<div>&nbsp;
<div name=3D"quote" style=3D"margin:10px 5px 5px 10px; padding: 10px 0 10px=
 10px; border-left:2px solid #C3D9E5; word-wrap: break-word; -webkit-nbsp-m=
ode: space; -webkit-line-break: after-white-space;">
<div style=3D"margin:0 0 10px 0;"><b>Enviar:</b>&nbsp;mi&eacute;rcoles 1 de=
 abril de 2026 a las 1:29<br/>
<b>De:</b>&nbsp;&quot;&#39;Germ&aacute;n Arias&#39; via Eiffel Users&quot; =
&lt;eiffel-users-/[email protected]&gt;<br/>
<b>Para:</b>&nbsp;eiffel-users-/[email protected]<br/>
<b>CC:</b>&nbsp;eiffel-users-/[email protected], &quot;Gobo Developers Mailin=
g List&quot; &lt;gobo-eiffel-develop-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org&gt;<br/>
<b>Asunto:</b>&nbsp;Re: [eiffel-users] Gobo Eiffel 26.03 released</div>

<div name=3D"quoted-content">
<div style=3D"font-family: Verdana;font-size: 12.0px;">
<div>Hi,</div>

<div>&nbsp;</div>

<div>I tried moving the code to eiffel-iup.c. I created the .o file with th=
e command (linux):</div>

<div>&nbsp;</div>

<div>cc -c eiffel-iup.c -o eiffel-iup.o -I/home/german/Instalados/gobo/tool=
/gec/backend/c/runtime</div>

<div>&nbsp;</div>

<div>This file is now added to library.ecf. With this, the example1 compile=
s without problem. But when executed, it chashes when clicking a button (wh=
e a callback should be executed). I&#39;ll try again tomorrow.&nbsp;</div>

<div>&nbsp;</div>

<div>The other option of moving the callbacks to external routines isn&#39;=
t very clear to me, since those are functions that must be called from C.&n=
bsp;</div>

<div>&nbsp;</div>

<div>Regards</div>

<div>Germ&aacute;n</div>

<div>&nbsp;</div>

<div>
<div>
<div style=3D"margin: 10.0px 5.0px 5.0px 10.0px;padding: 10.0px 0 10.0px 10=
.0px;border-left: 2.0px solid rgb(195,217,229);">
<div style=3D"margin: 0 0 10.0px 0;"><b>Enviar:</b>&nbsp;martes 31 de marzo=
 de 2026 a las 8:08<br/>
<b>De:</b>&nbsp;&quot;Eric Bezault&quot; &lt;ericb-D6Qt/9opevxWk0Htik3J/[email protected]&gt;<br/>
<b>Para:</b>&nbsp;eiffel-users-/[email protected]<br/>
<b>CC:</b>&nbsp;&quot;Gobo Developers Mailing List&quot; &lt;gobo-eiffel-de=
[email protected]&gt;<br/>
<b>Asunto:</b>&nbsp;Re: [eiffel-users] Gobo Eiffel 26.03 released</div>

<div>Hi Germ&aacute;n,<br/>
<br/>
I managed to reproduce the problem. It&#39;s because<br/>
&#96;callbacks.h&#96; is not a real header file. It contains<br/>
the code of C functions. So as soon as the generated<br/>
C code contains several C files, these C functions<br/>
get duplicated. So, in case of example3:<br/>
<br/>
geant compile_ge<br/>
<br/>
works fine because there is only one generated C file.<br/>
But with:<br/>
<br/>
geant compile_debug_ge<br/>
<br/>
it does not work because there are two generated C files.<br/>
<br/>
There are two solutions:<br/>
<br/>
- either you manage to move the C functions into external<br/>
routines of the Eiffel code, using something like:<br/>
<br/>
foo (some arguments): some_result_type<br/>
external<br/>
&quot;C inline use &lt;some_include_file.h&gt;&quot;<br/>
alias<br/>
&quot;[<br/>
C code here<br/>
]&quot;<br/>
end<br/>
<br/>
- or you move the C functions into a separate C file<br/>
&#96;callbacks.c&#96;, you create a Makefile to compile it,<br/>
and you add the resulting object file in &#96;library.ecf&#96;.<br/>
<br/>
--<br/>
Eric Bezault &lt;ericb-D6Qt/9opevxWk0Htik3J/[email protected]&gt;<br/>
Eiffel expert - available for freelance work<br/>
<a href=3D"https://www.gobosoft.com" target=3D"_blank">https://www.gobosoft=
.com</a><br/>
<br/>
<br/>
<br/>
On 31/03/2026 3:40, &#39;Germ&aacute;n Arias&#39; via Eiffel Users wrote:<b=
r/>
&gt; Hi<br/>
&gt; I changed it. Whit this change examples 1 and 2 compiles without<br/>
&gt; problem, but example 3 shows the same problem. So, it seems that depen=
ds<br/>
&gt; on the complexity of the program. The headers callbacks.h and<br/>
&gt; converter.h have a protection #ifndef, but don&#39;t works. I will try=
 to<br/>
&gt; reproduce it with a minum example.<br/>
&gt; Regards<br/>
&gt; Germ&aacute;n<br/>
&gt; *Enviar:*&nbsp;lunes 30 de marzo de 2026 a las 0:48<br/>
&gt; *De:*&nbsp;&quot;Eric Bezault&quot; &lt;ericb-D6Qt/9opevxWk0Htik3J/[email protected]&gt;<br/>
&gt; *Para:*&nbsp;eiffel-users-/[email protected]<br/>
&gt; *CC:*&nbsp;&quot;Gobo Developers Mailing List&quot; &lt;gobo-eiffel-<b=
r/>
&gt; [email protected]&gt;<br/>
&gt; *Asunto:*&nbsp;Re: [eiffel-users] Gobo Eiffel 26.03 released<br/>
&gt; Hi Germ&aacute;n,<br/>
&gt;<br/>
&gt; I see the following in your library ECF file:<br/>
&gt;<br/>
&gt; &lt;external_include location=3D&quot;&#36;{GOBO}/tool/gec/runtime/c/&=
quot;/&gt;<br/>
&gt;<br/>
&gt; It should be:<br/>
&gt;<br/>
&gt; &lt;external_include location=3D&quot;&#36;{GOBO}/tool/gec/backend/c/r=
untime/&quot;/&gt;<br/>
&gt;<br/>
&gt; If it does not fix the issue, please create a ticket at<br/>
&gt; <a href=3D"https://github.com/gobo-eiffel/gobo/issues" target=3D"_blan=
k">https://github.com/gobo-eiffel/gobo/issues</a> &lt;<a href=3D"https://gi=
thub.com/gobo-" target=3D"_blank">https://github.com/gobo-</a><br/>
&gt; eiffel/gobo/issues&gt; explaining how<br/>
&gt; to reproduce the problem.<br/>
&gt;<br/>
&gt; Thanks.<br/>
&gt;<br/>
&gt; --<br/>
&gt; Eric Bezault &lt;ericb-D6Qt/9opevxWk0Htik3J/[email protected]&gt;<br/>
&gt; Eiffel expert - available for freelance work<br/>
&gt; <a href=3D"https://www.gobosoft.com" target=3D"_blank">https://www.gob=
osoft.com</a> &lt;<a href=3D"https://www.gobosoft.com" target=3D"_blank">ht=
tps://www.gobosoft.com</a>&gt;<br/>
&gt;<br/>
&gt;<br/>
&gt; On 30/03/2026 6:47, &#39;Germ&aacute;n Arias&#39; via Eiffel Users wro=
te:<br/>
&gt; &gt; Hi Eric<br/>
&gt; &gt; Today I update to Gobo 26.03, I was using 25.10. I&#39;m working =
again in<br/>
&gt; &gt; Eiffel-IUP. But with this new version I&#39;m unable to compile m=
y project.<br/>
&gt; &gt; I get errors about duplication in the definitions of callbacks. T=
he<br/>
&gt; &gt; callbacks are in a C header file, this file is referenced only on=
ce<br/>
&gt; &gt; time. But the compiler say these appear in two diffrent object fi=
les<br/>
&gt; &gt; (form example, program_2.o and program_3.o). Not sure how solve t=
his.<br/>
&gt; &gt; Any advace? Thanks<br/>
&gt; &gt; By the way, Eiffel-IUP is now at codeberg.org<br/>
&gt; &gt; Germ&aacute;n<br/>
&gt; &gt; *Enviar:*&nbsp;domingo 8 de marzo de 2026 a las 8:23<br/>
&gt; &gt; *De:*&nbsp;&quot;Eric Bezault&quot; &lt;ericb-D6Qt/9opevxWk0Htik3J/[email protected]&gt;<br=
/>
&gt; &gt; *Para:*&nbsp;&quot;Eiffel Users&quot; &lt;eiffel-users@googlegrou=
ps.com&gt;, &quot;Gobo Developers<br/>
&gt; &gt; Mailing List&quot; &lt;gobo-eiffel-develop-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org&=
gt;<br/>
&gt; &gt; *Asunto:*&nbsp;[eiffel-users] Gobo Eiffel 26.03 released<br/>
&gt; &gt; Hello,<br/>
&gt; &gt;<br/>
&gt; &gt; The Gobo Eiffel Project provides the Eiffel community with free a=
nd<br/>
&gt; &gt; portable Eiffel tools and libraries.<br/>
&gt; &gt; Please see the release notes here:<br/>
&gt; &gt;<br/>
&gt; &gt; <a href=3D"https://github.com/gobo-eiffel/gobo/blob/master/Histor=
y.md" target=3D"_blank">https://github.com/gobo-eiffel/gobo/blob/master/His=
tory.md</a> &lt;https://<br/>
&gt; github.com/gobo-eiffel/gobo/blob/master/History.md&gt; &lt;https://<br=
/>
&gt; &gt; github.com/gobo-eiffel/gobo/blob/master/History.md&gt;<br/>
&gt; &gt;<br/>
&gt; &gt; Gobo Eiffel works fine with EiffelStudio 25.12 and<br/>
&gt; &gt; Gobo Eiffel 26.03 itself.<br/>
&gt; &gt;<br/>
&gt; &gt; The Gobo Eiffel package can be downloaded from GitHub:<br/>
&gt; &gt;<br/>
&gt; &gt; <a href=3D"https://github.com/gobo-eiffel/gobo/releases/tag/gobo-=
26.03" target=3D"_blank">https://github.com/gobo-eiffel/gobo/releases/tag/g=
obo-26.03</a> &lt;https://<br/>
&gt; github.com/gobo-eiffel/gobo/releases/tag/gobo-26.03&gt; &lt;https://<b=
r/>
&gt; &gt; github.com/gobo-eiffel/gobo/releases/tag/gobo-26.03&gt;<br/>
&gt; &gt;<br/>
&gt; &gt; The Gobo Eiffel documentation can be browsed on-line at:<br/>
&gt; &gt;<br/>
&gt; &gt; <a href=3D"https://www.gobosoft.com" target=3D"_blank">https://ww=
w.gobosoft.com</a> &lt;<a href=3D"https://www.gobosoft.com" target=3D"_blan=
k">https://www.gobosoft.com</a>&gt; &lt;https://<br/>
&gt; <a href=3D"http://www.gobosoft.com" target=3D"_blank">www.gobosoft.com=
</a> &lt;<a href=3D"https://www.gobosoft.com" target=3D"_blank">https://www=
.gobosoft.com</a>&gt;&gt;<br/>
&gt; &gt;<br/>
&gt; &gt; Gobo Eiffel is also available from VS Code:<br/>
&gt; &gt;<br/>
&gt; &gt; <a href=3D"https://marketplace.visualstudio.com/items?itemName=3D=
gobosoft.gobo-" target=3D"_blank">https://marketplace.visualstudio.com/item=
s?itemName=3Dgobosoft.gobo-</a><br/>
&gt; eiffel &lt;<a href=3D"https://marketplace.visualstudio.com/items" targ=
et=3D"_blank">https://marketplace.visualstudio.com/items</a>?<br/>
&gt; itemName=3Dgobosoft.gobo-eiffel&gt;<br/>
&gt; &gt; &lt;<a href=3D"https://marketplace.visualstudio.com/items?itemNam=
e=3Dgobosoft.gobo-" target=3D"_blank">https://marketplace.visualstudio.com/=
items?itemName=3Dgobosoft.gobo-</a><br/>
&gt; eiffel &lt;<a href=3D"https://marketplace.visualstudio.com/items" targ=
et=3D"_blank">https://marketplace.visualstudio.com/items</a>?<br/>
&gt; itemName=3Dgobosoft.gobo-eiffel&gt;&gt;<br/>
&gt; &gt;<br/>
&gt; &gt; In addition to syntax highlighting, code completion and code navi=
gation,<br/>
&gt; &gt; it reports syntax and validity errors inline as you type.<br/>
&gt; &gt; Please try it out, and do not hesitate to give it five stars if<b=
r/>
&gt; &gt; you like it.<br/>
&gt; &gt;<br/>
&gt; &gt; Happy Eiffeling.<br/>
&gt; &gt;<br/>
&gt; &gt; --<br/>
&gt; &gt; Eric Bezault &lt;ericb-D6Qt/9opevxWk0Htik3J/[email protected]&gt;<br/>
&gt; &gt; Eiffel expert - available for freelance work<br/>
&gt; &gt; <a href=3D"https://www.gobosoft.com" target=3D"_blank">https://ww=
w.gobosoft.com</a> &lt;<a href=3D"https://www.gobosoft.com" target=3D"_blan=
k">https://www.gobosoft.com</a>&gt; &lt;https://<br/>
&gt; <a href=3D"http://www.gobosoft.com" target=3D"_blank">www.gobosoft.com=
</a> &lt;<a href=3D"https://www.gobosoft.com" target=3D"_blank">https://www=
.gobosoft.com</a>&gt;&gt;<br/>
&gt; &gt;<br/>
&gt; &gt; --<br/>
&gt; &gt; You received this message because you are subscribed to the Googl=
e<br/>
&gt; &gt; Groups &quot;Eiffel Users&quot; group.<br/>
&gt; &gt; To unsubscribe from this group and stop receiving emails from it,=
 send<br/>
&gt; &gt; an email to eiffel-users+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]<br/>
&gt; &gt; To view this discussion visit <a href=3D"https://groups.google.co=
m/d/msgid/" target=3D"_blank">https://groups.google.com/d/msgid/</a><br/>
&gt; eiffel- &lt;<a href=3D"https://groups.google.com/d/msgid/eiffel-" targ=
et=3D"_blank">https://groups.google.com/d/msgid/eiffel-</a>&gt;<br/>
&gt; &gt; users/de9d8cc7-d5a5-4bbd-b2b9-0c62cf40f833%40gobosoft.com &lt;htt=
ps://<br/>
&gt; &gt; groups.google.com/d/msgid/eiffel-users/de9d8cc7-d5a5-4bbd-<br/>
&gt; &gt; b2b9-0c62cf40f833%40gobosoft.com&gt;.<br/>
&gt; &gt;<br/>
&gt; &gt; --<br/>
&gt; &gt; You received this message because you are subscribed to the Googl=
e<br/>
&gt; &gt; Groups &quot;Eiffel Users&quot; group.<br/>
&gt; &gt; To unsubscribe from this group and stop receiving emails from it,=
 send<br/>
&gt; &gt; an email to eiffel-users+unsubscribe-/[email protected] &lt;mailto:=
eiffel-<br/>
&gt; &gt; users+unsubscribe-/[email protected]&gt;.<br/>
&gt; &gt; To view this discussion visit <a href=3D"https://groups.google.co=
m/d/msgid/" target=3D"_blank">https://groups.google.com/d/msgid/</a><br/>
&gt; eiffel- &lt;<a href=3D"https://groups.google.com/d/msgid/eiffel-" targ=
et=3D"_blank">https://groups.google.com/d/msgid/eiffel-</a>&gt;<br/>
&gt; &gt; users/trinity-30705480-bb99-42dd-817f-563fe58edebb-1774846036320%=
403c-<br/>
&gt; &gt; app-mailcom-bs08 &lt;<a href=3D"https://groups.google.com/d/msgid=
/eiffel-users/" target=3D"_blank">https://groups.google.com/d/msgid/eiffel-=
users/</a><br/>
&gt; &lt;<a href=3D"https://groups.google.com/d/msgid/eiffel-users/" target=
=3D"_blank">https://groups.google.com/d/msgid/eiffel-users/</a>&gt;<br/>
&gt; &gt; trinity-30705480-bb99-42dd-817f-563fe58edebb-1774846036320%403c-a=
pp-<br/>
&gt; &gt; mailcom-bs08?utm_medium=3Demail&amp;utm_source=3Dfooter&gt;.<br/>
&gt;<br/>
&gt;<br/>
&gt;<br/>
&gt; --<br/>
&gt; You received this message because you are subscribed to the Google<br/=
>
&gt; Groups &quot;Eiffel Users&quot; group.<br/>
&gt; To unsubscribe from this group and stop receiving emails from it, send=
<br/>
&gt; an email to eiffel-users+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]<br/>
&gt; To view this discussion visit <a href=3D"https://groups.google.com/d/m=
sgid/eiffel-" target=3D"_blank">https://groups.google.com/d/msgid/eiffel-</=
a><br/>
&gt; users/f549468e-1ed4-4195-900a-38ce18c0579c%40gobosoft.com &lt;https://=
<br/>
&gt; groups.google.com/d/msgid/eiffel-users/<br/>
&gt; f549468e-1ed4-4195-900a-38ce18c0579c%40gobosoft.com&gt;.<br/>
&gt;<br/>
&gt; --<br/>
&gt; You received this message because you are subscribed to the Google<br/=
>
&gt; Groups &quot;Eiffel Users&quot; group.<br/>
&gt; To unsubscribe from this group and stop receiving emails from it, send=
<br/>
&gt; an email to eiffel-users+unsubscribe-/[email protected] &lt;mailto:eiffe=
l-<br/>
&gt; users+unsubscribe-/[email protected]&gt;.<br/>
&gt; To view this discussion visit <a href=3D"https://groups.google.com/d/m=
sgid/eiffel-" target=3D"_blank">https://groups.google.com/d/msgid/eiffel-</=
a><br/>
&gt; users/trinity-a3f633fc-12c3-4ea7-aa07-6b4c59c9143a-1774921206832%403c-=
<br/>
&gt; app-mailcom-bs07 &lt;<a href=3D"https://groups.google.com/d/msgid/eiff=
el-users/" target=3D"_blank">https://groups.google.com/d/msgid/eiffel-users=
/</a><br/>
&gt; trinity-a3f633fc-12c3-4ea7-aa07-6b4c59c9143a-1774921206832%403c-app-<b=
r/>
&gt; mailcom-bs07?utm_medium=3Demail&amp;utm_source=3Dfooter&gt;.<br/>
<br/>
--<br/>
You received this message because you are subscribed to the Google Groups &=
quot;Eiffel Users&quot; group.<br/>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to eiffel-users+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]<br/>
To view this discussion visit <a href=3D"https://groups.google.com/d/msgid/=
eiffel-users/7e609cef-d787-46de-8606-2188e0e7153a%40gobosoft.com" target=3D=
"_blank">https://groups.google.com/d/msgid/eiffel-users/7e609cef-d787-46de-=
8606-2188e0e7153a%40gobosoft.com</a>.</div>
</div>
</div>
</div>
</div>

<p>&nbsp;</p>
--<br/>
You received this message because you are subscribed to the Google Groups &=
quot;Eiffel Users&quot; group.<br/>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:eiffel-users+unsubscribe-/[email protected]" onclic=
k=3D"" target=3D"_blank">eiffel-users+unsubscribe-/[email protected]</a>.<br/=
>
To view this discussion visit <a href=3D"https://groups.google.com/d/msgid/=
eiffel-users/trinity-cb556db6-e3d4-4fa3-a3bb-6fd1d4b28783-1775028564616%403=
c-app-mailcom-bs05?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_b=
lank">https://groups.google.com/d/msgid/eiffel-users/trinity-cb556db6-e3d4-=
4fa3-a3bb-6fd1d4b28783-1775028564616%403c-app-mailcom-bs05</a>.</div>
</div>
</div>
</div></div></body></html>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;Eiffel Users&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:eiffel-users+unsubscribe-/[email protected]">eiffel=
-users+unsubscribe-/[email protected]</a>.<br />
To view this discussion visit <a href=3D"https://groups.google.com/d/msgid/=
eiffel-users/trinity-a6836cef-b2ed-4ae6-b078-ad9c5ca9d590-1775090752938%403=
c-app-mailcom-bs05?utm_medium=3Demail&utm_source=3Dfooter">https://groups.g=
oogle.com/d/msgid/eiffel-users/trinity-a6836cef-b2ed-4ae6-b078-ad9c5ca9d590=
-1775090752938%403c-app-mailcom-bs05</a>.<br />