Re: [eiffel-users] Gobo Eiffel 26.03 released
'Germán Arias' via Eiffel Users <eiffel-users-/[email protected]> Wed, 1 Apr 2026 09:29:24 +0200
| Newsgroups | gmane.comp.lang.eiffel.ise,gmane.comp.lang.eiffel.gobo.devel |
|---|---|
| Message-ID | <trinity-cb556db6-e3d4-4fa3-a3bb-6fd1d4b28783-1775028564616@3c-app-mailcom-bs05> |
<html><head></head><body><div style=3D"font-family: Verdana;font-size: 12.0= px;"><div>Hi,</div> <div> </div> <div>I tried moving the code to eiffel-iup.c. I created the .o file with th= e command (linux):</div> <div> </div> <div>cc -c eiffel-iup.c -o eiffel-iup.o -I/home/german/Instalados/gobo/tool= /gec/backend/c/runtime</div> <div> </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'll try again tomorrow. </div> <div> </div> <div>The other option of moving the callbacks to external routines isn'= t very clear to me, since those are functions that must be called from C.&n= bsp;</div> <div> </div> <div>Regards</div> <div>Germán</div> <div> </div> <div> <div> <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> martes 31 de marzo de= 2026 a las 8:08<br/> <b>De:</b> "Eric Bezault" <ericb-D6Qt/9opevxWk0Htik3J/[email protected]><br/> <b>Para:</b> eiffel-users-/[email protected]<br/> <b>CC:</b> "Gobo Developers Mailing List" <gobo-eiffel-de= [email protected]><br/> <b>Asunto:</b> Re: [eiffel-users] Gobo Eiffel 26.03 released</div> <div name=3D"quoted-content">Hi Germán,<br/> <br/> I managed to reproduce the problem. It's because<br/> `callbacks.h` 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/> "C inline use <some_include_file.h>"<br/> alias<br/> "[<br/> C code here<br/> ]"<br/> end<br/> <br/> - or you move the C functions into a separate C file<br/> `callbacks.c`, you create a Makefile to compile it,<br/> and you add the resulting object file in `library.ecf`.<br/> <br/> --<br/> Eric Bezault <ericb-D6Qt/9opevxWk0Htik3J/[email protected]><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, 'Germán Arias' via Eiffel Users wrote:<b= r/> > Hi<br/> > I changed it. Whit this change examples 1 and 2 compiles without<br/> > problem, but example 3 shows the same problem. So, it seems that depen= ds<br/> > on the complexity of the program. The headers callbacks.h and<br/> > converter.h have a protection #ifndef, but don't works. I will try= to<br/> > reproduce it with a minum example.<br/> > Regards<br/> > Germán<br/> > *Enviar:* lunes 30 de marzo de 2026 a las 0:48<br/> > *De:* "Eric Bezault" <ericb-D6Qt/9opevxWk0Htik3J/[email protected]><br/> > *Para:* eiffel-users-/[email protected]<br/> > *CC:* "Gobo Developers Mailing List" <gobo-eiffel-<b= r/> > [email protected]><br/> > *Asunto:* Re: [eiffel-users] Gobo Eiffel 26.03 released<br/> > Hi Germán,<br/> ><br/> > I see the following in your library ECF file:<br/> ><br/> > <external_include location=3D"${GOBO}/tool/gec/runtime/c/&= quot;/><br/> ><br/> > It should be:<br/> ><br/> > <external_include location=3D"${GOBO}/tool/gec/backend/c/r= untime/"/><br/> ><br/> > If it does not fix the issue, please create a ticket at<br/> > <a href=3D"https://github.com/gobo-eiffel/gobo/issues" target=3D"_blan= k">https://github.com/gobo-eiffel/gobo/issues</a> <<a href=3D"https://gi= thub.com/gobo-" target=3D"_blank">https://github.com/gobo-</a><br/> > eiffel/gobo/issues> explaining how<br/> > to reproduce the problem.<br/> ><br/> > Thanks.<br/> ><br/> > --<br/> > Eric Bezault <ericb-D6Qt/9opevxWk0Htik3J/[email protected]><br/> > Eiffel expert - available for freelance work<br/> > <a href=3D"https://www.gobosoft.com" target=3D"_blank">https://www.gob= osoft.com</a> <<a href=3D"https://www.gobosoft.com" target=3D"_blank">ht= tps://www.gobosoft.com</a>><br/> ><br/> ><br/> > On 30/03/2026 6:47, 'Germán Arias' via Eiffel Users wro= te:<br/> > > Hi Eric<br/> > > Today I update to Gobo 26.03, I was using 25.10. I'm working = again in<br/> > > Eiffel-IUP. But with this new version I'm unable to compile m= y project.<br/> > > I get errors about duplication in the definitions of callbacks. T= he<br/> > > callbacks are in a C header file, this file is referenced only on= ce<br/> > > time. But the compiler say these appear in two diffrent object fi= les<br/> > > (form example, program_2.o and program_3.o). Not sure how solve t= his.<br/> > > Any advace? Thanks<br/> > > By the way, Eiffel-IUP is now at codeberg.org<br/> > > Germán<br/> > > *Enviar:* domingo 8 de marzo de 2026 a las 8:23<br/> > > *De:* "Eric Bezault" <ericb-D6Qt/9opevxWk0Htik3J/[email protected]><br= /> > > *Para:* "Eiffel Users" <eiffel-users@googlegrou= ps.com>, "Gobo Developers<br/> > > Mailing List" <gobo-eiffel-develop-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org&= gt;<br/> > > *Asunto:* [eiffel-users] Gobo Eiffel 26.03 released<br/> > > Hello,<br/> > ><br/> > > The Gobo Eiffel Project provides the Eiffel community with free a= nd<br/> > > portable Eiffel tools and libraries.<br/> > > Please see the release notes here:<br/> > ><br/> > > <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> <https://<br/> > github.com/gobo-eiffel/gobo/blob/master/History.md> <https://<br= /> > > github.com/gobo-eiffel/gobo/blob/master/History.md><br/> > ><br/> > > Gobo Eiffel works fine with EiffelStudio 25.12 and<br/> > > Gobo Eiffel 26.03 itself.<br/> > ><br/> > > The Gobo Eiffel package can be downloaded from GitHub:<br/> > ><br/> > > <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> <https://<br/> > github.com/gobo-eiffel/gobo/releases/tag/gobo-26.03> <https://<b= r/> > > github.com/gobo-eiffel/gobo/releases/tag/gobo-26.03><br/> > ><br/> > > The Gobo Eiffel documentation can be browsed on-line at:<br/> > ><br/> > > <a href=3D"https://www.gobosoft.com" target=3D"_blank">https://ww= w.gobosoft.com</a> <<a href=3D"https://www.gobosoft.com" target=3D"_blan= k">https://www.gobosoft.com</a>> <https://<br/> > <a href=3D"http://www.gobosoft.com" target=3D"_blank">www.gobosoft.com= </a> <<a href=3D"https://www.gobosoft.com" target=3D"_blank">https://www= .gobosoft.com</a>>><br/> > ><br/> > > Gobo Eiffel is also available from VS Code:<br/> > ><br/> > > <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/> > eiffel <<a href=3D"https://marketplace.visualstudio.com/items" targ= et=3D"_blank">https://marketplace.visualstudio.com/items</a>?<br/> > itemName=3Dgobosoft.gobo-eiffel><br/> > > <<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/> > eiffel <<a href=3D"https://marketplace.visualstudio.com/items" targ= et=3D"_blank">https://marketplace.visualstudio.com/items</a>?<br/> > itemName=3Dgobosoft.gobo-eiffel>><br/> > ><br/> > > In addition to syntax highlighting, code completion and code navi= gation,<br/> > > it reports syntax and validity errors inline as you type.<br/> > > Please try it out, and do not hesitate to give it five stars if<b= r/> > > you like it.<br/> > ><br/> > > Happy Eiffeling.<br/> > ><br/> > > --<br/> > > Eric Bezault <ericb-D6Qt/9opevxWk0Htik3J/[email protected]><br/> > > Eiffel expert - available for freelance work<br/> > > <a href=3D"https://www.gobosoft.com" target=3D"_blank">https://ww= w.gobosoft.com</a> <<a href=3D"https://www.gobosoft.com" target=3D"_blan= k">https://www.gobosoft.com</a>> <https://<br/> > <a href=3D"http://www.gobosoft.com" target=3D"_blank">www.gobosoft.com= </a> <<a href=3D"https://www.gobosoft.com" target=3D"_blank">https://www= .gobosoft.com</a>>><br/> > ><br/> > > --<br/> > > You received this message because you are subscribed to the Googl= e<br/> > > Groups "Eiffel Users" group.<br/> > > To unsubscribe from this group and stop receiving emails from it,= send<br/> > > an email to eiffel-users+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]<br/> > > 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/> > eiffel- <<a href=3D"https://groups.google.com/d/msgid/eiffel-" targ= et=3D"_blank">https://groups.google.com/d/msgid/eiffel-</a>><br/> > > users/de9d8cc7-d5a5-4bbd-b2b9-0c62cf40f833%40gobosoft.com <htt= ps://<br/> > > groups.google.com/d/msgid/eiffel-users/de9d8cc7-d5a5-4bbd-<br/> > > b2b9-0c62cf40f833%40gobosoft.com>.<br/> > ><br/> > > --<br/> > > You received this message because you are subscribed to the Googl= e<br/> > > Groups "Eiffel Users" group.<br/> > > To unsubscribe from this group and stop receiving emails from it,= send<br/> > > an email to eiffel-users+unsubscribe-/[email protected] <mailto:= eiffel-<br/> > > users+unsubscribe-/[email protected]>.<br/> > > 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/> > eiffel- <<a href=3D"https://groups.google.com/d/msgid/eiffel-" targ= et=3D"_blank">https://groups.google.com/d/msgid/eiffel-</a>><br/> > > users/trinity-30705480-bb99-42dd-817f-563fe58edebb-1774846036320%= 403c-<br/> > > app-mailcom-bs08 <<a href=3D"https://groups.google.com/d/msgid= /eiffel-users/" target=3D"_blank">https://groups.google.com/d/msgid/eiffel-= users/</a><br/> > <<a href=3D"https://groups.google.com/d/msgid/eiffel-users/" target= =3D"_blank">https://groups.google.com/d/msgid/eiffel-users/</a>><br/> > > trinity-30705480-bb99-42dd-817f-563fe58edebb-1774846036320%403c-a= pp-<br/> > > mailcom-bs08?utm_medium=3Demail&utm_source=3Dfooter>.<br/> ><br/> ><br/> ><br/> > --<br/> > You received this message because you are subscribed to the Google<br/= > > Groups "Eiffel Users" group.<br/> > To unsubscribe from this group and stop receiving emails from it, send= <br/> > an email to eiffel-users+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]<br/> > 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/> > users/f549468e-1ed4-4195-900a-38ce18c0579c%40gobosoft.com <https://= <br/> > groups.google.com/d/msgid/eiffel-users/<br/> > f549468e-1ed4-4195-900a-38ce18c0579c%40gobosoft.com>.<br/> ><br/> > --<br/> > You received this message because you are subscribed to the Google<br/= > > Groups "Eiffel Users" group.<br/> > To unsubscribe from this group and stop receiving emails from it, send= <br/> > an email to eiffel-users+unsubscribe-/[email protected] <mailto:eiffe= l-<br/> > users+unsubscribe-/[email protected]>.<br/> > 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/> > users/trinity-a3f633fc-12c3-4ea7-aa07-6b4c59c9143a-1774921206832%403c-= <br/> > app-mailcom-bs07 <<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/> > trinity-a3f633fc-12c3-4ea7-aa07-6b4c59c9143a-1774921206832%403c-app-<b= r/> > mailcom-bs07?utm_medium=3Demail&utm_source=3Dfooter>.<br/> <br/> --<br/> You received this message because you are subscribed to the Google Groups &= quot;Eiffel Users" 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></body></html> <p></p> -- <br /> You received this message because you are subscribed to the Google Groups &= quot;Eiffel Users" 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-cb556db6-e3d4-4fa3-a3bb-6fd1d4b28783-1775028564616%403= c-app-mailcom-bs05?utm_medium=3Demail&utm_source=3Dfooter">https://groups.g= oogle.com/d/msgid/eiffel-users/trinity-cb556db6-e3d4-4fa3-a3bb-6fd1d4b28783= -1775028564616%403c-app-mailcom-bs05</a>.<br />