With the updated version I get this error:
    
    
    $ nim c -r --cc:clang --clang.exe="zigcc" --clang.linkerexe="zigcc" borrame
    ...
    /home/jose/.cache/nim/borrame_d/@mborrame.nim.c:90:2: error: use of 
undeclared identifier 'struct_lv_color_t'
       90 |         struct_lv_color_t color;
          |         ^
    /home/jose/.cache/nim/borrame_d/@mborrame.nim.c:92:69: error: use of 
undeclared identifier 'color'
       92 |         nimlf_(4, 
"/home/jose/src/nimlang/lvgl.nim/examples/borrame.nim");      color = 
lv_color_hex(((NU32)14935));
          |                                                                     
            ^
    2 errors generated.
    Error: execution of an external compiler program 'zigcc -c -w 
-ferror-limit=3 -pthread 
-I/home/jose/src/nimlang/lvgl.nim/src/lvgl/submodules/lvgl   
-I/home/jose/.choosenim/toolchains/nim-2.0.6/lib 
-I/home/jose/src/nimlang/lvgl.nim/examples -o 
/home/jose/.cache/nim/borrame_d/@mborrame.nim.c.o 
/home/jose/.cache/nim/borrame_d/@mborrame.nim.c' failed with exit code: 1
    
    
    Run

The generated C code:
    
    
    N_LIB_PRIVATE N_NIMCALL(void, main__borrame_u2)(void) {
            struct_lv_color_t color;
            nimfr_("main", 
"/home/jose/src/nimlang/lvgl.nim/examples/borrame.nim");
            nimlf_(4, "/home/jose/src/nimlang/lvgl.nim/examples/borrame.nim");  
color = lv_color_hex(((NU32)14935));
            nimln_(5);  echoBinSafe(TM__nnU0fWpUVhSBXtxRF6Sf1A_2, 1);
            popFrame();
    }
    
    
    Run

This `struct_lv_color_t color;` in the generated code doesn't make much sense 
in my opinion. In the [original 
library](https://github.com/lvgl/lvgl/blob/3d32aa97918cc1cfcbfb21db797ba85e55496217/src/misc/lv_color.h#L89-L93)
 we have:
    
    
    typedef struct {
        uint8_t blue;
        uint8_t green;
        uint8_t red;
    } lv_color_t;
    
    
    Run

and Futhark is creating:
    
    
      struct_lv_color_t* {.pure, inheritable, bycopy.} = object
        blue*: uint8             ## Generated based on 
/home/jose/src/nimlang/lvgl.nim/src/lvgl/submodules/lvgl/src/core/../misc/../font/../draw/../misc/lv_color.h:89:9
        green*: uint8
        red*: uint8
    
    
    Run

while `c2nim` creates for that snippet:
    
    
    type
      lv_color_t* {.importc: "lv_color_t", header: "a.c", bycopy.} = object
        blue* {.importc: "blue".}: uint8_t
        green* {.importc: "green".}: uint8_t
        red* {.importc: "red".}: uint8_t
    
    
    Run

Reply via email to