Bunny351: here's the code in question added by zilti 2 days ago

(define-foreign-type Renderer (struct "SDL_Renderer"))
(define-foreign-type Window (struct "SDL_Window"))

(define (create-window-and-renderer title width height window-flags)
  (let-location ((window (c-pointer Window) null)
                 (renderer (c-pointer Renderer) null))
    (values
     ((foreign-lambda bool "SDL_CreateWindowAndRenderer"
        c-string int int WindowFlags Window Renderer)
      title width height (foldl bitwise-ior 0 window-flags) window renderer)
     window renderer)))



====== Compiler error:

csc sdl3-lowlevel.impl.scm -L -lSDL3 -I/gnu/store/b4c0yb8fy37xq3bsbs9rzifbd3r8y7vz-sdl3-3.2.10/include/ -L/gnu/store/b4c0yb8fy37xq3bsbs9rzifbd3r8y7vz-sdl3-3.2.10/lib/
sdl3-lowlevel.c: In Funktion »stub1415«:
sdl3-lowlevel.c:411:8: Fehler: Variable »t4« hat Initialisierung, aber unvollständigen Typ
  411 | struct SDL_Window t4=(struct SDL_Window )C_build_struct(struct SDL_Window,C_a4);
      |        ^~~~~~~~~~
In Datei, eingebunden von sdl3-lowlevel.c:8:
/gnu/store/nlqimavmcdmc3dyz22bdvb03vq1bilgm-chicken-6-6.0.0pre3/include/chicken/chicken.h:1697:44: Fehler: Speichergröße von »_a« ist unbekannt
 1697 | #define C_build_struct(t, x)           ({t _a;_a = *((t *)C_data_pointer(x));_a;})
      |                                            ^~
sdl3-lowlevel.c:411:42: Anmerkung: bei Substitution des Makros »C_build_struct«
  411 | struct SDL_Window t4=(struct SDL_Window )C_build_struct(struct SDL_Window,C_a4);
      |                                          ^~~~~~~~~~~~~~
/gnu/store/nlqimavmcdmc3dyz22bdvb03vq1bilgm-chicken-6-6.0.0pre3/include/chicken/chicken.h:1697:52: Fehler: falsche Verwendung des undefinierten Typs »struct SDL_Window«
 1697 | #define C_build_struct(t, x)           ({t _a;_a = *((t *)C_data_pointer(x));_a;})
      |                                                    ^
sdl3-lowlevel.c:411:42: Anmerkung: bei Substitution des Makros »C_build_struct«
  411 | struct SDL_Window t4=(struct SDL_Window )C_build_struct(struct SDL_Window,C_a4);
      |                                          ^~~~~~~~~~~~~~
sdl3-lowlevel.c:411:19: Fehler: Speichergröße von »t4« ist unbekannt
  411 | struct SDL_Window t4=(struct SDL_Window )C_build_struct(struct SDL_Window,C_a4);
      |                   ^~
sdl3-lowlevel.c:412:8: Fehler: Variable »t5« hat Initialisierung, aber unvollständigen Typ
  412 | struct SDL_Renderer t5=(struct SDL_Renderer )C_build_struct(struct SDL_Renderer,C_a5);
      |        ^~~~~~~~~~~~
/gnu/store/nlqimavmcdmc3dyz22bdvb03vq1bilgm-chicken-6-6.0.0pre3/include/chicken/chicken.h:1697:44: Fehler: Speichergröße von »_a« ist unbekannt
 1697 | #define C_build_struct(t, x)           ({t _a;_a = *((t *)C_data_pointer(x));_a;})
      |                                            ^~
sdl3-lowlevel.c:412:46: Anmerkung: bei Substitution des Makros »C_build_struct«
  412 | struct SDL_Renderer t5=(struct SDL_Renderer )C_build_struct(struct SDL_Renderer,C_a5);
      |                                              ^~~~~~~~~~~~~~
/gnu/store/nlqimavmcdmc3dyz22bdvb03vq1bilgm-chicken-6-6.0.0pre3/include/chicken/chicken.h:1697:52: Fehler: falsche Verwendung des undefinierten Typs »struct SDL_Renderer«
 1697 | #define C_build_struct(t, x)           ({t _a;_a = *((t *)C_data_pointer(x));_a;})
      |                                                    ^
sdl3-lowlevel.c:412:46: Anmerkung: bei Substitution des Makros »C_build_struct«
  412 | struct SDL_Renderer t5=(struct SDL_Renderer )C_build_struct(struct SDL_Renderer,C_a5);
      |                                              ^~~~~~~~~~~~~~
sdl3-lowlevel.c:412:21: Fehler: Speichergröße von »t5« ist unbekannt
  412 | struct SDL_Renderer t5=(struct SDL_Renderer )C_build_struct(struct SDL_Renderer,C_a5);
      |                     ^~

Error: shell command terminated with non-zero exit status 1: 'gcc' 'sdl3-lowlevel.c' '-o' 'sdl3-lowlevel.o' '-c' '-fno-strict-aliasing' '-fwrapv' '-DHAVE_CHICKEN_CONFIG_H' '-DC_ENABLE_PTABLES' '-Os' '-fomit-frame-pointer' '-I/gnu/store/b4c0yb8fy37xq3bsbs9rzifbd3r8y7vz-sdl3-3.2.10/include/' '-I/gnu/store/nlqimavmcdmc3dyz22bdvb03vq1bilgm-chicken-6-6.0.0pre3/include/chicken'
make: *** [Makefile:2: sdl3-lowlevel] Fehler 1