Re: [eiffel-users] Gobo Eiffel 26.03 released

Eric Bezault <ericb-D6Qt/9opevxWk0Htik3J/[email protected]> Tue, 31 Mar 2026 16:08:07 +0200
Newsgroups gmane.comp.lang.eiffel.ise,gmane.comp.lang.eiffel.gobo.devel
Organization Gobo
Message-ID <[email protected]>
Hi Germ=C3=A1n,

I managed to reproduce the problem. It's because
`callbacks.h` is not a real header file. It contains
the code of C functions. So as soon as the generated
C code contains several C files, these C functions
get duplicated. So, in case of example3:

    geant compile_ge

works fine because there is only one generated C file.
But with:

    geant compile_debug_ge

it does not work because there are two generated C files.

There are two solutions:

- either you manage to move the C functions into external
   routines of the Eiffel code, using something like:

      foo (some arguments): some_result_type
         external
             "C inline use <some_include_file.h>"
         alias
             "[
                  C code here
             ]"
         end

- or you move the C functions into a separate C file
   `callbacks.c`, you create a Makefile to compile it,
   and you add the resulting object file in `library.ecf`.

--=20
Eric Bezault <ericb-D6Qt/9opevxWk0Htik3J/[email protected]>
Eiffel expert - available for freelance work
https://www.gobosoft.com



On 31/03/2026 3:40, 'Germ=C3=A1n Arias' via Eiffel Users wrote:
> Hi
> I changed it. Whit this change examples 1 and 2 compiles without=20
> problem, but example 3 shows the same problem. So, it seems that depends=
=20
> on the complexity of the program. The headers callbacks.h and=20
> converter.h have a protection #ifndef, but don't works. I will try to=20
> reproduce it with a minum example.
> Regards
> Germ=C3=A1n
> *Enviar:*=C2=A0lunes 30 de marzo de 2026 a las 0:48
> *De:*=C2=A0"Eric Bezault" <ericb-D6Qt/9opevxWk0Htik3J/[email protected]>
> *Para:*=C2=A0eiffel-users-/[email protected]
> *CC:*=C2=A0"Gobo Developers Mailing List" <gobo-eiffel-=20
> [email protected]>
> *Asunto:*=C2=A0Re: [eiffel-users] Gobo Eiffel 26.03 released
> Hi Germ=C3=A1n,
>=20
> I see the following in your library ECF file:
>=20
> <external_include location=3D"${GOBO}/tool/gec/runtime/c/"/>
>=20
> It should be:
>=20
> <external_include location=3D"${GOBO}/tool/gec/backend/c/runtime/"/>
>=20
> If it does not fix the issue, please create a ticket at
> https://github.com/gobo-eiffel/gobo/issues <https://github.com/gobo-=20
> eiffel/gobo/issues> explaining how
> to reproduce the problem.
>=20
> Thanks.
>=20
> --
> Eric Bezault <ericb-D6Qt/9opevxWk0Htik3J/[email protected]>
> Eiffel expert - available for freelance work
> https://www.gobosoft.com <https://www.gobosoft.com>
>=20
>=20
> On 30/03/2026 6:47, 'Germ=C3=A1n Arias' via Eiffel Users wrote:
>  > Hi Eric
>  > Today I update to Gobo 26.03, I was using 25.10. I'm working again in
>  > Eiffel-IUP. But with this new version I'm unable to compile my project=
.
>  > I get errors about duplication in the definitions of callbacks. The
>  > callbacks are in a C header file, this file is referenced only once
>  > time. But the compiler say these appear in two diffrent object files
>  > (form example, program_2.o and program_3.o). Not sure how solve this.
>  > Any advace? Thanks
>  > By the way, Eiffel-IUP is now at codeberg.org
>  > Germ=C3=A1n
>  > *Enviar:*=C2=A0domingo 8 de marzo de 2026 a las 8:23
>  > *De:*=C2=A0"Eric Bezault" <ericb-D6Qt/9opevxWk0Htik3J/[email protected]>
>  > *Para:*=C2=A0"Eiffel Users" <eiffel-users-/[email protected]>, "Gobo Dev=
elopers
>  > Mailing List" <gobo-eiffel-develop-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>
>  > *Asunto:*=C2=A0[eiffel-users] Gobo Eiffel 26.03 released
>  > Hello,
>  >
>  > The Gobo Eiffel Project provides the Eiffel community with free and
>  > portable Eiffel tools and libraries.
>  > Please see the release notes here:
>  >
>  > https://github.com/gobo-eiffel/gobo/blob/master/History.md <https://=
=20
> github.com/gobo-eiffel/gobo/blob/master/History.md> <https://
>  > github.com/gobo-eiffel/gobo/blob/master/History.md>
>  >
>  > Gobo Eiffel works fine with EiffelStudio 25.12 and
>  > Gobo Eiffel 26.03 itself.
>  >
>  > The Gobo Eiffel package can be downloaded from GitHub:
>  >
>  > https://github.com/gobo-eiffel/gobo/releases/tag/gobo-26.03 <https://=
=20
> github.com/gobo-eiffel/gobo/releases/tag/gobo-26.03> <https://
>  > github.com/gobo-eiffel/gobo/releases/tag/gobo-26.03>
>  >
>  > The Gobo Eiffel documentation can be browsed on-line at:
>  >
>  > https://www.gobosoft.com <https://www.gobosoft.com> <https://=20
> www.gobosoft.com <https://www.gobosoft.com>>
>  >
>  > Gobo Eiffel is also available from VS Code:
>  >
>  > https://marketplace.visualstudio.com/items?itemName=3Dgobosoft.gobo-=
=20
> eiffel <https://marketplace.visualstudio.com/items?=20
> itemName=3Dgobosoft.gobo-eiffel>
>  > <https://marketplace.visualstudio.com/items?itemName=3Dgobosoft.gobo-=
=20
> eiffel <https://marketplace.visualstudio.com/items?=20
> itemName=3Dgobosoft.gobo-eiffel>>
>  >
>  > In addition to syntax highlighting, code completion and code navigatio=
n,
>  > it reports syntax and validity errors inline as you type.
>  > Please try it out, and do not hesitate to give it five stars if
>  > you like it.
>  >
>  > Happy Eiffeling.
>  >
>  > --
>  > Eric Bezault <ericb-D6Qt/9opevxWk0Htik3J/[email protected]>
>  > Eiffel expert - available for freelance work
>  > https://www.gobosoft.com <https://www.gobosoft.com> <https://=20
> www.gobosoft.com <https://www.gobosoft.com>>
>  >
>  > --
>  > 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+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
>  > To view this discussion visit https://groups.google.com/d/msgid/=20
> eiffel- <https://groups.google.com/d/msgid/eiffel->
>  > users/de9d8cc7-d5a5-4bbd-b2b9-0c62cf40f833%40gobosoft.com <https://
>  > groups.google.com/d/msgid/eiffel-users/de9d8cc7-d5a5-4bbd-
>  > b2b9-0c62cf40f833%40gobosoft.com>.
>  >
>  > --
>  > 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+unsubscribe-/[email protected] <mailto:eiffel-
>  > users+unsubscribe-/[email protected]>.
>  > To view this discussion visit https://groups.google.com/d/msgid/=20
> eiffel- <https://groups.google.com/d/msgid/eiffel->
>  > users/trinity-30705480-bb99-42dd-817f-563fe58edebb-1774846036320%403c-
>  > app-mailcom-bs08 <https://groups.google.com/d/msgid/eiffel-users/=20
> <https://groups.google.com/d/msgid/eiffel-users/>
>  > trinity-30705480-bb99-42dd-817f-563fe58edebb-1774846036320%403c-app-
>  > mailcom-bs08?utm_medium=3Demail&utm_source=3Dfooter>.
>=20
>=20
>=20
> --
> You received this message because you are subscribed to the Google=20
> Groups "Eiffel Users" group.
> To unsubscribe from this group and stop receiving emails from it, send=20
> an email to eiffel-users+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
> To view this discussion visit https://groups.google.com/d/msgid/eiffel-=
=20
> users/f549468e-1ed4-4195-900a-38ce18c0579c%40gobosoft.com <https://=20
> groups.google.com/d/msgid/eiffel-users/=20
> f549468e-1ed4-4195-900a-38ce18c0579c%40gobosoft.com>.
>=20
> --=20
> You received this message because you are subscribed to the Google=20
> Groups "Eiffel Users" group.
> To unsubscribe from this group and stop receiving emails from it, send=20
> an email to eiffel-users+unsubscribe-/[email protected] <mailto:eiffel-=20
> users+unsubscribe-/[email protected]>.
> To view this discussion visit https://groups.google.com/d/msgid/eiffel-=
=20
> users/trinity-a3f633fc-12c3-4ea7-aa07-6b4c59c9143a-1774921206832%403c-=20
> app-mailcom-bs07 <https://groups.google.com/d/msgid/eiffel-users/=20
> trinity-a3f633fc-12c3-4ea7-aa07-6b4c59c9143a-1774921206832%403c-app-=20
> mailcom-bs07?utm_medium=3Demail&utm_source=3Dfooter>.

--=20
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 e=
mail to eiffel-users+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
To view this discussion visit https://groups.google.com/d/msgid/eiffel-user=
s/7e609cef-d787-46de-8606-2188e0e7153a%40gobosoft.com.