Fabien-Chouteau / atomic

Standalone binding to GCC atomic built-ins
MIT License
3 stars 3 forks source link

[Bug] atomic.ads fails compilation #3

Open pjljvandelaar opened 1 year ago

pjljvandelaar commented 1 year ago

Hi Atomic-Developers,

I tried to build septum.gpr with alire. septum.gpr uses atomic 0.4.1.

The build however fails with

...
Note: Building septum/septum.gpr...
Setup
   [mkdir]        object directory for project Atomic
   [mkdir]        library directory for project Atomic
   [mkdir]        object directory for project Dir_Iterators
   [mkdir]        library directory for project Dir_Iterators
   [mkdir]        object directory for project Progress_Indicators
   [mkdir]        library directory for project Progress_Indicators
   [mkdir]        object directory for project Trendy_Terminal
   [mkdir]        library directory for project Trendy_Terminal
   [mkdir]        object directory for project Septum
   [mkdir]        exec directory for project Septum
Compile
   [Ada]          septum.adb
   [Ada]          trendy_terminal-windows.ads
   [Ada]          trendy_terminal-platform.adb
   [Ada]          trendy_terminal.ads
   [Ada]          trendy_terminal-vt100.adb
   [Ada]          trendy_terminal-string_vectors.ads
   [Ada]          trendy_terminal-maps.adb
   [Ada]          trendy_terminal-lines.adb
   [Ada]          trendy_terminal-lines-line_vectors.ads
   [Ada]          trendy_terminal-io.adb
   [Ada]          trendy_terminal-io-line_editors.adb
   [Ada]          trendy_terminal-histories.adb
   [Ada]          trendy_terminal-environments.adb
   [Ada]          trendy_terminal-completions.adb
   [Ada]          progress_indicators.ads
   [Ada]          progress_indicators-work_trackers.adb
   [Ada]          progress_indicators-spinners.adb
   [Ada]          progress_indicators-bars.adb
   [Ada]          dir_iterators.ads
   [Ada]          dir_iterators-recursive.adb
   [Ada]          dir_iterators-ancestor.adb
   [Ada]          atomic.adb
atomic.ads:91:19: error: ghost entity cannot appear in this context

   compilation of atomic.adb failed

gprbuild: *** compilation phase failed
ERROR: Command ["gprbuild", "-s", "-j0", "-p", "-P", "C:\path\to\septum\septum.gpr"] exited with code 4
ERROR: Compilation failed.

Looking at https://github.com/Fabien-Chouteau/atomic/blob/14bb7db33dff4b6f1219967a809d0f787cae33cb/src/atomic.ads#L91 I was unable to understand why.

Hope you can solve it soon!

Greetings, Pierre

Fabien-Chouteau commented 1 year ago

Hi @pjljvandelaar,

Which version of compiler are you using here?

pjljvandelaar commented 1 year ago

Hi @Fabien-Chouteau

I have only installed GNATPRO 23.0.

I am using (according to alr toolchain --select)

Note: gnat is currently not configured. (alr will use the version found in the environment.)
Note: Currently configured: gprbuild=22.0.1

For more info:

> alr toolchain
CRATE        VERSION STATUS    NOTES
gprbuild     22.0.1  Default
gnat_arm_elf 12.2.1  Available
gnat_native  12.1.2  Available
>  alr config
last_build_profile=DEVELOPMENT
toolchain.assistant=false
msys2.install_dir=C:\Users\laarpjljvd\.cache\alire\msys64
toolchain.use.gprbuild=gprbuild=22.0.1

Greetings, Pierre

P.S. If you want more info, just let me know!

pjljvandelaar commented 1 year ago

Note with gnat_native=12.2.1 compilation succeeds (with some warnings):

Note: Selected tool version gprbuild=22.0.1
Note: Deploying gnat_native=12.2.1...
############################################################################################################################################################################################################ 100.0%
Note: gnat_native=12.2.1 installed successfully.

PS C:\path\to\septum> alr build
Note: Building ansiada/ansi.gpr...
Compile
   [Ada]          ansi-demo.adb
   [Ada]          ansi.ads
Bind
   [gprbind]      ansi-demo.bexch
   [Ada]          ansi-demo.ali
Link
   [link]         ansi-demo.adb
Note: Building septum/septum.gpr...
Compile
   [Ada]          septum.adb
   [Ada]          trendy_terminal-windows.ads
   [Ada]          trendy_terminal-platform.adb
   [Ada]          trendy_terminal.ads
   [Ada]          trendy_terminal-vt100.adb
   [Ada]          trendy_terminal-string_vectors.ads
   [Ada]          trendy_terminal-maps.adb
   [Ada]          trendy_terminal-lines.adb
   [Ada]          trendy_terminal-lines-line_vectors.ads
   [Ada]          trendy_terminal-io.adb
   [Ada]          trendy_terminal-io-line_editors.adb
   [Ada]          trendy_terminal-histories.adb
   [Ada]          trendy_terminal-environments.adb
   [Ada]          trendy_terminal-completions.adb
   [Ada]          progress_indicators.ads
   [Ada]          progress_indicators-work_trackers.adb
   [Ada]          progress_indicators-spinners.adb
   [Ada]          progress_indicators-bars.adb
   [Ada]          dir_iterators.ads
   [Ada]          dir_iterators-recursive.adb
   [Ada]          dir_iterators-ancestor.adb
   [Ada]          atomic.adb
   [Ada]          atomic-unsigned.adb
   [Ada]          atomic-signed.adb
   [Ada]          atomic-unsigned_8.ads
   [Ada]          atomic-unsigned_32.ads
   [Ada]          atomic-unsigned_16.ads
   [Ada]          atomic-signed_8.ads
   [Ada]          atomic-signed_32.ads
   [Ada]          atomic-signed_16.ads
   [Ada]          sp.ads
   [Ada]          sp-config.adb
   [Ada]          sp-interactive.adb
   [Ada]          ansi.ads
   [Ada]          sp-file_system.adb
   [Ada]          sp-platform.adb
   [Ada]          sp-strings.adb
sp-interactive.adb:17:09: warning: unit "Ada.IO_Exceptions" is not referenced [-gnatwu]
sp-interactive.adb:26:08: warning: unit "SP.Platform" is not referenced [-gnatwu]
   [Ada]          sp-commands.adb
   [Ada]          sp-filters.adb
   [Ada]          sp-searches.adb
   [Ada]          sp-terminal.adb
   [Ada]          sp-contexts.adb
sp-searches.ads:29:05: warning: use clause for type "Ada.Containers.Count_Type" has no effect [-gnatwu]
   [Ada]          sp-memory.adb
sp-commands.adb:18:20: warning: unit "Ada.Containers.Vectors" is not referenced [-gnatwu]
   [Ada]          sp-progress.adb
sp-terminal.ads:20:06: warning: unit "System" is not referenced [-gnatwu]
   [Ada]          sp-cache.adb
sp-cache.adb:20:09: warning: unit "Ada.Task_Identification" is not referenced [-gnatwu]
sp-cache.adb:34:14: warning: function "+" is not referenced [-gnatwu]
Build Libraries
   [gprlib]       Atomic.lexch
   [gprlib]       Dir_Iterators.lexch
   [gprlib]       Progress_Indicators.lexch
   [archive]      libAtomic.a
   [gprlib]       Trendy_Terminal.lexch
   [archive]      libDir_Iterators.a
   [archive]      libProgress_Indicators.a   [archive]      libTrendy_Terminal.a

   [index]        libProgress_Indicators.a   [index]        libTrendy_Terminal.a

   [index]        libDir_Iterators.a   [index]        libAtomic.a

Bind
   [gprbind]      septum.bexch
   [Ada]          septum.ali
Link
   [link]         septum.adb
Build finished successfully in 78.22 seconds.
Fabien-Chouteau commented 1 year ago

So Atomic is not compatible with GNAT Pro 23 yet, you can use GNAT Pro 22 in the meantime.