vlang / v

Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io
MIT License
35.88k stars 2.17k forks source link

cannot run sokol/fonts.v in Mac OS Mojave ... #5069

Closed GaraSharp closed 4 years ago

GaraSharp commented 4 years ago

V version: V 0.1.27 6ca53d7 OS:Mac OS Mojave

What did you do? try to run example/sokol/fonts.v

$ v run fonts.v

What did you expect to see?

runs code normaly.

What did you see instead?

$ v run fonts.v 
fonts.v:64:2: warning: unused variable: `t` 
   62 | 
   63 | fn frame(user_data voidptr) {
   64 |     t := time.ticks()
      |     ^
   65 |     mut state := &AppState(user_data)
   66 |     state.render_font()
==================
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
...
==================
(Use `v -cg` to print the entire error message)

builder error: 
==================
C error. This should never happen.

If you were not working with C interop, please raise an issue on GitHub:

https://github.com/vlang/v/issues/new/choose

You can also use #help on Discord: https://discord.gg/vlang
spytheman commented 4 years ago

Can you try it with: v -v fonts.v please ?

GaraSharp commented 4 years ago

Thanks and sorry for delayed response. just tried,

$ v -v fonts.v 
builder.compile() pref:
all .v files before:
v_files_from_dir ("/Users/user/v_lang/v/vlib/builtin")
get_v_files(fonts.v)
> just compile one file: "fonts.v"
user_files: ['fonts.v']
x: "/Users/user/v/User/sokol_exam/modules"
v.module_search_paths:
['/Users/user/v/User/sokol_exam', '/Users/user/v/User/sokol_exam/modules', '/Users/user/v_lang/v/vlib', '/Users/user/.vmodules']
all .v files:
['/Users/user/v_lang/v/vlib/builtin/array.v', '/Users/user/v_lang/v/vlib/builtin/builtin.v', '/Users/user/v_lang/v/vlib/builtin/builtin_nix.c.v', '/Users/user/v_lang/v/vlib/builtin/cfns.c.v', '/Users/user/v_lang/v/vlib/builtin/float.v', '/Users/user/v_lang/v/vlib/builtin/int.v', '/Users/user/v_lang/v/vlib/builtin/map.v', '/Users/user/v_lang/v/vlib/builtin/option.v', '/Users/user/v_lang/v/vlib/builtin/sorted_map.v', '/Users/user/v_lang/v/vlib/builtin/string.v', '/Users/user/v_lang/v/vlib/builtin/utf8.v', 'fonts.v']
build_c(/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c)
fonts.v:64:2: warning: unused variable: `t` 
   62 | 
   63 | fn frame(user_data voidptr) {
   64 |     t := time.ticks()
      |     ^
   65 |     mut state := &AppState(user_data)
   66 |     state.render_font()
  >> trying to find strings in /Users/user/v_lang/v/strings ..
  >> trying to find strings in /Users/user/v/User/sokol_exam/strings ..
  >> trying to find strings in /Users/user/v/User/sokol_exam/modules/strings ..
  >> trying to find strings in /Users/user/v_lang/v/vlib/strings ..
  << found /Users/user/v_lang/v/vlib/strings .
v_files_from_dir ("/Users/user/v_lang/v/vlib/strings")
  >> trying to find strconv.ftoa in /Users/user/v_lang/v/strconv/ftoa ..
  >> trying to find strconv.ftoa in /Users/user/v/User/sokol_exam/strconv/ftoa ..
  >> trying to find strconv.ftoa in /Users/user/v/User/sokol_exam/modules/strconv/ftoa ..
  >> trying to find strconv.ftoa in /Users/user/v_lang/v/vlib/strconv/ftoa ..
  << found /Users/user/v_lang/v/vlib/strconv/ftoa .
v_files_from_dir ("/Users/user/v_lang/v/vlib/strconv/ftoa")
  >> trying to find hash.wyhash in /Users/user/v_lang/v/hash/wyhash ..
  >> trying to find hash.wyhash in /Users/user/v/User/sokol_exam/hash/wyhash ..
  >> trying to find hash.wyhash in /Users/user/v/User/sokol_exam/modules/hash/wyhash ..
  >> trying to find hash.wyhash in /Users/user/v_lang/v/vlib/hash/wyhash ..
  << found /Users/user/v_lang/v/vlib/hash/wyhash .
v_files_from_dir ("/Users/user/v_lang/v/vlib/hash/wyhash")
  >> trying to find strconv in /Users/user/v_lang/v/strconv ..
  >> trying to find strconv in /Users/user/v/User/sokol_exam/strconv ..
  >> trying to find strconv in /Users/user/v/User/sokol_exam/modules/strconv ..
  >> trying to find strconv in /Users/user/v_lang/v/vlib/strconv ..
  << found /Users/user/v_lang/v/vlib/strconv .
v_files_from_dir ("/Users/user/v_lang/v/vlib/strconv")
  >> trying to find sokol in /Users/user/v/User/sokol_exam/sokol ..
  >> trying to find sokol in /Users/user/v/User/sokol_exam/modules/sokol ..
  >> trying to find sokol in /Users/user/v_lang/v/vlib/sokol ..
  << found /Users/user/v_lang/v/vlib/sokol .
v_files_from_dir ("/Users/user/v_lang/v/vlib/sokol")
  >> trying to find sokol.sapp in /Users/user/v/User/sokol_exam/sokol/sapp ..
  >> trying to find sokol.sapp in /Users/user/v/User/sokol_exam/modules/sokol/sapp ..
  >> trying to find sokol.sapp in /Users/user/v_lang/v/vlib/sokol/sapp ..
  << found /Users/user/v_lang/v/vlib/sokol/sapp .
v_files_from_dir ("/Users/user/v_lang/v/vlib/sokol/sapp")
  >> trying to find sokol.gfx in /Users/user/v/User/sokol_exam/sokol/gfx ..
  >> trying to find sokol.gfx in /Users/user/v/User/sokol_exam/modules/sokol/gfx ..
  >> trying to find sokol.gfx in /Users/user/v_lang/v/vlib/sokol/gfx ..
  << found /Users/user/v_lang/v/vlib/sokol/gfx .
v_files_from_dir ("/Users/user/v_lang/v/vlib/sokol/gfx")
  >> trying to find sokol.sgl in /Users/user/v/User/sokol_exam/sokol/sgl ..
  >> trying to find sokol.sgl in /Users/user/v/User/sokol_exam/modules/sokol/sgl ..
  >> trying to find sokol.sgl in /Users/user/v_lang/v/vlib/sokol/sgl ..
  << found /Users/user/v_lang/v/vlib/sokol/sgl .
v_files_from_dir ("/Users/user/v_lang/v/vlib/sokol/sgl")
  >> trying to find sokol.sfons in /Users/user/v/User/sokol_exam/sokol/sfons ..
  >> trying to find sokol.sfons in /Users/user/v/User/sokol_exam/modules/sokol/sfons ..
  >> trying to find sokol.sfons in /Users/user/v_lang/v/vlib/sokol/sfons ..
  << found /Users/user/v_lang/v/vlib/sokol/sfons .
v_files_from_dir ("/Users/user/v_lang/v/vlib/sokol/sfons")
  >> trying to find os in /Users/user/v/User/sokol_exam/os ..
  >> trying to find os in /Users/user/v/User/sokol_exam/modules/os ..
  >> trying to find os in /Users/user/v_lang/v/vlib/os ..
  << found /Users/user/v_lang/v/vlib/os .
v_files_from_dir ("/Users/user/v_lang/v/vlib/os")
  >> trying to find time in /Users/user/v/User/sokol_exam/time ..
  >> trying to find time in /Users/user/v/User/sokol_exam/modules/time ..
  >> trying to find time in /Users/user/v_lang/v/vlib/time ..
  << found /Users/user/v_lang/v/vlib/time .
v_files_from_dir ("/Users/user/v_lang/v/vlib/time")
  >> trying to find math.bits in /Users/user/v_lang/v/math/bits ..
  >> trying to find math.bits in /Users/user/v/User/sokol_exam/math/bits ..
  >> trying to find math.bits in /Users/user/v/User/sokol_exam/modules/math/bits ..
  >> trying to find math.bits in /Users/user/v_lang/v/vlib/math/bits ..
  << found /Users/user/v_lang/v/vlib/math/bits .
v_files_from_dir ("/Users/user/v_lang/v/vlib/math/bits")
  >> trying to find sokol.c in /Users/user/v_lang/v/sokol/c ..
  >> trying to find sokol.c in /Users/user/v/User/sokol_exam/sokol/c ..
  >> trying to find sokol.c in /Users/user/v/User/sokol_exam/modules/sokol/c ..
  >> trying to find sokol.c in /Users/user/v_lang/v/vlib/sokol/c ..
  << found /Users/user/v_lang/v/vlib/sokol/c .
v_files_from_dir ("/Users/user/v_lang/v/vlib/sokol/c")
  >> trying to find sokol.f in /Users/user/v_lang/v/sokol/f ..
  >> trying to find sokol.f in /Users/user/v/User/sokol_exam/sokol/f ..
  >> trying to find sokol.f in /Users/user/v/User/sokol_exam/modules/sokol/f ..
  >> trying to find sokol.f in /Users/user/v_lang/v/vlib/sokol/f ..
  << found /Users/user/v_lang/v/vlib/sokol/f .
v_files_from_dir ("/Users/user/v_lang/v/vlib/sokol/f")
  >> trying to find fontstash in /Users/user/v_lang/v/fontstash ..
  >> trying to find fontstash in /Users/user/v/User/sokol_exam/fontstash ..
  >> trying to find fontstash in /Users/user/v/User/sokol_exam/modules/fontstash ..
  >> trying to find fontstash in /Users/user/v_lang/v/vlib/fontstash ..
  << found /Users/user/v_lang/v/vlib/fontstash .
v_files_from_dir ("/Users/user/v_lang/v/vlib/fontstash")
------ resolved dependencies graph: ------

 * strconv.ftoa -> math.bits
 * strconv -> strconv.ftoa
 * strconv -> strings
 * builtin -> strings
 * builtin -> strconv.ftoa
 * builtin -> hash.wyhash
 * builtin -> strconv
 * sokol.sapp -> builtin
 * sokol.gfx -> builtin
 * sokol.sgl -> builtin
 * os -> builtin
 * os -> strings
 * time -> builtin
 * sokol.c -> builtin
 * fontstash -> builtin
 * sokol.sfons -> builtin
 * sokol.sfons -> fontstash
 * sokol.f -> builtin
 * sokol.f -> fontstash
 * sokol -> builtin
 * sokol -> sokol.c
 * sokol -> sokol.f
 * main -> builtin
 * main -> sokol
 * main -> sokol.sapp
 * main -> sokol.gfx
 * main -> sokol.sgl
 * main -> sokol.sfons
 * main -> os
 * main -> time

------------------------------------------
------ imported modules: ------
['strings', 'hash.wyhash', 'math.bits', 'strconv.ftoa', 'strconv', 'builtin', 'sokol.sapp', 'sokol.gfx', 'sokol.sgl', 'os', 'time', 'sokol.c', 'fontstash', 'sokol.sfons', 'sokol.f', 'sokol', 'main']
-------------------------------
PARSE: 72ms
CHECK: 14ms
C GEN: 37ms
builder.cc() pref.out_name="/Users/user/v/User/sokol_exam/fonts"
cc() isprod=false outname=/Users/user/v/User/sokol_exam/fonts

==========
cc  -std=gnu11 -Wall -Wextra -Wno-unused-variable -Wno-unused-parameter -Wno-unused-result -Wno-unused-function -Wno-missing-braces -Wno-unused-label -Werror=implicit-function-declaration -o "/Users/user/v/User/sokol_exam/fonts" -x objective-c "/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c" -x none -mmacosx-version-min=10.7  -I "/Users/user/v_lang/v/thirdparty/sokol" -I "/Users/user/v_lang/v/thirdparty/sokol/util" -fobjc-arc -DSOKOL_METAL -framework Metal -framework Cocoa -framework MetalKit -framework QuartzCore -I "/usr/local/Cellar/freetype/2.10.1/include/freetype2" -I "/opt/local/include/freetype2" -L "/opt/local/lib" -lfreetype -lpng -lbz2 -lz -I "/Users/user/v_lang/v/thirdparty/fontstash"  
==================
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
...
==================
(Use `v -cg` to print the entire error message)

builder error: 
==================
C error. This should never happen.

If you were not working with C interop, please raise an issue on GitHub:

https://github.com/vlang/v/issues/new/choose

You can also use #help on Discord: https://discord.gg/vlang

I think, this problem from compilers' linker option. but I'm newbie about Mac OS, I have no idea ...

spytheman commented 4 years ago

Hm, that was still not enough to show what the linker was doing. Please try v -showcc -cg -cflags '-v' fonts.v

spytheman commented 4 years ago

For me, on MacOS 10.12.6, it compiles cleanly :thinking: so I think it may be a missing dependency like freetype or glfw. sokol fonts macos Can you also try: brew install glfw freetype ?

GaraSharp commented 4 years ago

Thanks ! Just tried like as follows :

OS versions

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.14.6
BuildVersion:   18G4032

(re)install glfw, freetype

$ brew install glfw freetype
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> Updated Formulae
console_bridge             dartsim                    docker-completion
create-dmg                 docker                     urdfdom

Warning: glfw 3.3.2 is already installed and up-to-date
To reinstall 3.3.2, run `brew reinstall glfw`
Warning: freetype 2.10.1 is already installed and up-to-date
To reinstall 2.10.1, run `brew reinstall freetype`
MacBook-Air:sokol_exam user$ brew reinstall glfw freetype
==> Downloading https://homebrew.bintray.com/bottles/glfw-3.3.2.mojave.bottle.ta
Already downloaded: /Users/user/Library/Caches/Homebrew/downloads/4f41836f41cf408edc872a98aef5dc5bfefba6ca6ec522c19b64bc124e2f6d23--glfw-3.3.2.mojave.bottle.tar.gz
==> Reinstalling glfw 
==> Pouring glfw-3.3.2.mojave.bottle.tar.gz
🍺  /usr/local/Cellar/glfw/3.3.2: 14 files, 492.8KB
==> Downloading https://homebrew.bintray.com/bottles/freetype-2.10.1.mojave.bott
==> Downloading from https://akamai.bintray.com/2f/2f5716f987df6f45a9d66e5f9af93
######################################################################## 100.0%
==> Reinstalling freetype 
==> Pouring freetype-2.10.1.mojave.bottle.tar.gz
🍺  /usr/local/Cellar/freetype/2.10.1: 61 files, 2.2MB

and diagnostic command line. sorry too long lines.

$ v -showcc -cg -cflags '-v' fonts.v
fonts.v:64:2: warning: unused variable: `t` 
   62 | 
   63 | fn frame(user_data voidptr) {
   64 |     t := time.ticks()
      |     ^
   65 |     mut state := &AppState(user_data)
   66 |     state.render_font()

==========
cc  -v -std=gnu11 -Wall -Wextra -Wno-unused-variable -Wno-unused-parameter -Wno-unused-result -Wno-unused-function -Wno-missing-braces -Wno-unused-label -g  -ferror-limit=5000  -Werror=implicit-function-declaration -o "/Users/user/v/User/sokol_exam/fonts" -x objective-c "/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c" -x none -mmacosx-version-min=10.7  -I "/Users/user/v_lang/v/thirdparty/sokol" -I "/Users/user/v_lang/v/thirdparty/sokol/util" -fobjc-arc -DSOKOL_METAL -framework Metal -framework Cocoa -framework MetalKit -framework QuartzCore -I "/usr/local/Cellar/freetype/2.10.1/include/freetype2" -I "/opt/local/include/freetype2" -L "/opt/local/lib" -lfreetype -lpng -lbz2 -lz -I "/Users/user/v_lang/v/thirdparty/fontstash"   -rdynamic 
Apple clang version 11.0.0 (clang-1100.0.33.17)
Target: x86_64-apple-darwin18.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
 "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" -cc1 -triple x86_64-apple-macosx10.7.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name fonts.tmp.c -mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim -fno-strict-return -masm-verbose -munwind-tables -faligned-alloc-unavailable -target-sdk-version=10.14 -target-cpu core2 -dwarf-column-info -debug-info-kind=standalone -dwarf-version=2 -debugger-tuning=lldb -ggnu-pubnames -target-linker-version 530 -v -resource-dir /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.0 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -I /Users/user/v_lang/v/thirdparty/sokol -I /Users/user/v_lang/v/thirdparty/sokol/util -D SOKOL_METAL -I /usr/local/Cellar/freetype/2.10.1/include/freetype2 -I /opt/local/include/freetype2 -I /Users/user/v_lang/v/thirdparty/fontstash -I/usr/local/include -Wall -Wextra -Wno-unused-variable -Wno-unused-parameter -Wno-unused-result -Wno-unused-function -Wno-missing-braces -Wno-unused-label -Werror=implicit-function-declaration -Wno-framework-include-private-from-public -Wno-atimport-in-framework-header -Wno-extra-semi-stmt -Wno-quoted-include-in-framework-header -std=gnu11 -fdebug-compilation-dir /Users/user/v/User/sokol_exam -ferror-limit 5000 -fmessage-length 0 -stack-protector 1 -mdarwin-stkchk-strong-link -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fobjc-runtime=macosx-10.7.0 -fobjc-arc -fobjc-exceptions -fexceptions -fmax-type-align=16 -fdiagnostics-show-option -o /var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/fonts-c69418.o -x objective-c /private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c
clang -cc1 version 11.0.0 (clang-1100.0.33.17) default target x86_64-apple-darwin18.7.0
ignoring nonexistent directory "/opt/local/include/freetype2"
ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/local/include"
ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/Library/Frameworks"
#include "..." search starts here:
#include <...> search starts here:
 /Users/user/v_lang/v/thirdparty/sokol
 /Users/user/v_lang/v/thirdparty/sokol/util
 /usr/local/Cellar/freetype/2.10.1/include/freetype2
 /Users/user/v_lang/v/thirdparty/fontstash
 /usr/local/include
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.0/include
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include
 /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include
 /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks (framework directory)
End of search list.
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:5991:1: warning: control may reach end of non-void function [-Wreturn-type]
}
^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:6080:27: warning: incompatible pointer types passing 'array_fixed_byteptr_100' (aka 'byteptr [100]') to parameter of type 'void **' [-Wincompatible-pointer-types]
                int nr_ptrs = backtrace(buffer, 100);
                                        ^~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/execinfo.h:35:21: note: passing argument to parameter here
int backtrace(void**,int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
                    ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:6081:24: warning: incompatible pointer types passing 'byteptr *' (aka 'unsigned char **') to parameter of type 'void *const *' [-Wincompatible-pointer-types]
                backtrace_symbols_fd(&buffer[skipframes], nr_ptrs - skipframes, 2);
                                     ^~~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/execinfo.h:42:39: note: passing argument to parameter here
void backtrace_symbols_fd(void* const*,int,int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
                                      ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:6129:26: warning: incompatible pointer types passing 'array_fixed_byteptr_100' (aka 'byteptr [100]') to parameter of type 'void **' [-Wincompatible-pointer-types]
        int nr_ptrs = backtrace(buffer, 100);
                                ^~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/execinfo.h:35:21: note: passing argument to parameter here
int backtrace(void**,int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
                    ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:6132:40: warning: incompatible pointer types passing 'byteptr *' (aka 'unsigned char **') to parameter of type 'void *const *' [-Wincompatible-pointer-types]
        charptr* csymbols = backtrace_symbols(&buffer[skipframes], nr_actual_frames);
                                              ^~~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/execinfo.h:41:38: note: passing argument to parameter here
char** backtrace_symbols(void* const*,int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
                                     ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:6144:21: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
                voidptr f = popen(cmd.str, "r");
                                  ^~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:236:25: note: passing argument to parameter here
FILE    *popen(const char *, const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_2_0, __DARWIN_ALIAS(popen)) __swift_unavailable_on("Use posix_spawn APIs or NSTask instead.", "Process spawning is unavailable.");
                           ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:6838:20: warning: comparison of integers of different signs: 'int' and 'u32' (aka 'unsigned int') [-Wsign-compare]
        for (int i = 0; i < d->size; i++) {
                        ~ ^ ~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:7185:28: warning: initializing 'byteptr' (aka 'unsigned char *') with an expression of type 'char [1]' converts between pointers to integer types with different sign [-Wpointer-sign]
                .v_error = (string){.str=""},
                                         ^~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:7197:28: warning: initializing 'byteptr' (aka 'unsigned char *') with an expression of type 'char [1]' converts between pointers to integer types with different sign [-Wpointer-sign]
                .v_error = (string){.str=""},
                                         ^~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:7662:20: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        int slen = strlen(cstr);
                          ^~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h:82:28: note: passing argument to parameter '__s' here
size_t   strlen(const char *__s);
                            ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:8194:1: warning: expression result unused [-Wunused-value]
_t1;
^~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:8826:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9085:22: warning: '&&' within '||' [-Wlogical-op-parentheses]
                        if (r >= 0xe1aab0 && r < 0xe1ac80 || r >= 0xe1b780 && r < 0xe1b880 || r >= 0xe28390 && r < 0xe28480 || r >= 0xefb8a0 && r < 0xefb8b0) {
                            ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~ ~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9085:22: note: place parentheses around the '&&' expression to silence this warning
                        if (r >= 0xe1aab0 && r < 0xe1ac80 || r >= 0xe1b780 && r < 0xe1b880 || r >= 0xe28390 && r < 0xe28480 || r >= 0xefb8a0 && r < 0xefb8b0) {
                                          ^
                            (                            )
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9085:55: warning: '&&' within '||' [-Wlogical-op-parentheses]
                        if (r >= 0xe1aab0 && r < 0xe1ac80 || r >= 0xe1b780 && r < 0xe1b880 || r >= 0xe28390 && r < 0xe28480 || r >= 0xefb8a0 && r < 0xefb8b0) {
                                                          ~~ ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9085:55: note: place parentheses around the '&&' expression to silence this warning
                        if (r >= 0xe1aab0 && r < 0xe1ac80 || r >= 0xe1b780 && r < 0xe1b880 || r >= 0xe28390 && r < 0xe28480 || r >= 0xefb8a0 && r < 0xefb8b0) {
                                                                           ^
                                                             (                            )
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9085:88: warning: '&&' within '||' [-Wlogical-op-parentheses]
                        if (r >= 0xe1aab0 && r < 0xe1ac80 || r >= 0xe1b780 && r < 0xe1b880 || r >= 0xe28390 && r < 0xe28480 || r >= 0xefb8a0 && r < 0xefb8b0) {
                                                                                           ~~ ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9085:88: note: place parentheses around the '&&' expression to silence this warning
                        if (r >= 0xe1aab0 && r < 0xe1ac80 || r >= 0xe1b780 && r < 0xe1b880 || r >= 0xe28390 && r < 0xe28480 || r >= 0xefb8a0 && r < 0xefb8b0) {
                                                                                                            ^
                                                                                              (                            )
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9085:121: warning: '&&' within '||' [-Wlogical-op-parentheses]
                        if (r >= 0xe1aab0 && r < 0xe1ac80 || r >= 0xe1b780 && r < 0xe1b880 || r >= 0xe28390 && r < 0xe28480 || r >= 0xefb8a0 && r < 0xefb8b0) {
                                                                                                                            ~~ ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9085:121: note: place parentheses around the '&&' expression to silence this warning
                        if (r >= 0xe1aab0 && r < 0xe1ac80 || r >= 0xe1b780 && r < 0xe1b880 || r >= 0xe28390 && r < 0xe28480 || r >= 0xefb8a0 && r < 0xefb8b0) {
                                                                                                                                             ^
                                                                                                                               (                            )
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9202:28: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        sapp_set_clipboard_string(str);
                                  ^~~
/Users/user/v_lang/v/thirdparty/sokol/sokol_app.h:7415:59: note: passing argument to parameter 'str' here
SOKOL_API_IMPL void sapp_set_clipboard_string(const char* str) {
                                                          ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9207:9: warning: returning 'const char *' from a function with result type 'byteptr' (aka 'unsigned char *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
        return sapp_get_clipboard_string();
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9227:9: warning: returning 'const void *' from a function with result type 'voidptr' (aka 'void *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
        return sapp_metal_get_device();
               ^~~~~~~~~~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9232:9: warning: returning 'const void *' from a function with result type 'voidptr' (aka 'void *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
        return sapp_metal_get_renderpass_descriptor();
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9237:9: warning: returning 'const void *' from a function with result type 'voidptr' (aka 'void *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
        return sapp_metal_get_drawable();
               ^~~~~~~~~~~~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9242:9: warning: returning 'const void *' from a function with result type 'voidptr' (aka 'void *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
        return sapp_macos_get_window();
               ^~~~~~~~~~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9247:9: warning: returning 'const void *' from a function with result type 'voidptr' (aka 'void *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
        return sapp_ios_get_window();
               ^~~~~~~~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9252:9: warning: returning 'const void *' from a function with result type 'voidptr' (aka 'void *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
        return sapp_d3d11_get_device();
               ^~~~~~~~~~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9257:9: warning: returning 'const void *' from a function with result type 'voidptr' (aka 'void *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
        return sapp_d3d11_get_device_context();
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9262:9: warning: returning 'const void *' from a function with result type 'voidptr' (aka 'void *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
        return sapp_d3d11_get_render_target_view();
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9267:9: warning: returning 'const void *' from a function with result type 'voidptr' (aka 'void *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
        return sapp_d3d11_get_depth_stencil_view();
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9272:9: warning: returning 'const void *' from a function with result type 'voidptr' (aka 'void *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
        return sapp_win32_get_hwnd();
               ^~~~~~~~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9277:9: warning: returning 'const void *' from a function with result type 'voidptr' (aka 'void *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
        return sapp_android_get_native_activity();
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9313:108: warning: implicit conversion from enumeration type 'sapp_event_type' (aka 'enum sapp_event_type') to different enumeration type 'sokol__sapp__EventType' [-Wenum-conversion]
        return _STR("evt: frame_count=%"PRIu64"\000, type=%.*s", 2, e->frame_count, sokol__sapp__EventType_str(e->type));
                                                                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~^~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9458:9: warning: implicit conversion from enumeration type 'sg_backend' (aka 'enum sg_backend') to different enumeration type 'sokol__gfx__Backend' [-Wenum-conversion]
        return sg_query_backend();
        ~~~~~~ ^~~~~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9473:30: warning: implicit conversion from enumeration type 'sokol__gfx__PixelFormat' to different enumeration type 'sg_pixel_format' (aka 'enum sg_pixel_format') [-Wenum-conversion]
        return sg_query_pixelformat(fmt);
               ~~~~~~~~~~~~~~~~~~~~ ^~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9528:34: warning: incompatible pointer types passing 'struct sg_buffer *' to parameter of type 'const sg_buffer_desc *' (aka 'const struct sg_buffer_desc *') [-Wincompatible-pointer-types]
        return sg_query_buffer_defaults(desc);
                                        ^~~~
/Users/user/v_lang/v/thirdparty/sokol/sokol_gfx.h:11674:78: note: passing argument to parameter 'desc' here
SOKOL_API_IMPL sg_buffer_desc sg_query_buffer_defaults(const sg_buffer_desc* desc) {
                                                                             ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9533:33: warning: incompatible pointer types passing 'struct sg_image *' to parameter of type 'const sg_image_desc *' (aka 'const struct sg_image_desc *') [-Wincompatible-pointer-types]
        return sg_query_image_defaults(desc);
                                       ^~~~
/Users/user/v_lang/v/thirdparty/sokol/sokol_gfx.h:11679:75: note: passing argument to parameter 'desc' here
SOKOL_API_IMPL sg_image_desc sg_query_image_defaults(const sg_image_desc* desc) {
                                                                          ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9538:34: warning: incompatible pointer types passing 'struct sg_shader *' to parameter of type 'const sg_shader_desc *' (aka 'const struct sg_shader_desc *') [-Wincompatible-pointer-types]
        return sg_query_shader_defaults(desc);
                                        ^~~~
/Users/user/v_lang/v/thirdparty/sokol/sokol_gfx.h:11684:78: note: passing argument to parameter 'desc' here
SOKOL_API_IMPL sg_shader_desc sg_query_shader_defaults(const sg_shader_desc* desc) {
                                                                             ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9543:36: warning: incompatible pointer types passing 'struct sg_pipeline *' to parameter of type 'const sg_pipeline_desc *' (aka 'const struct sg_pipeline_desc *') [-Wincompatible-pointer-types]
        return sg_query_pipeline_defaults(desc);
                                          ^~~~
/Users/user/v_lang/v/thirdparty/sokol/sokol_gfx.h:11689:84: note: passing argument to parameter 'desc' here
SOKOL_API_IMPL sg_pipeline_desc sg_query_pipeline_defaults(const sg_pipeline_desc* desc) {
                                                                                   ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9548:32: warning: incompatible pointer types passing 'struct sg_pass *' to parameter of type 'const sg_pass_desc *' (aka 'const struct sg_pass_desc *') [-Wincompatible-pointer-types]
        return sg_query_pass_defaults(desc);
                                      ^~~~
/Users/user/v_lang/v/thirdparty/sokol/sokol_gfx.h:11694:72: note: passing argument to parameter 'desc' here
SOKOL_API_IMPL sg_pass_desc sg_query_pass_defaults(const sg_pass_desc* desc) {
                                                                       ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9645:18: warning: assigning to 'const char *' from 'byteptr' (aka 'unsigned char *') converts between pointers to integer types with different sign [-Wpointer-sign]
        desc->vs.source = src.str;
                        ^ ~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9650:18: warning: assigning to 'const char *' from 'byteptr' (aka 'unsigned char *') converts between pointers to integer types with different sign [-Wpointer-sign]
        desc->fs.source = src.str;
                        ^ ~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9655:30: warning: assigning to 'const char *' from 'byteptr' (aka 'unsigned char *') converts between pointers to integer types with different sign [-Wpointer-sign]
        desc->vs.images[index].name = name.str;
                                    ^ ~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9656:32: warning: implicit conversion from enumeration type 'sokol__gfx__ImageType' to different enumeration type 'sg_image_type' (aka 'enum sg_image_type') [-Wenum-conversion]
        desc->vs.images[index].type = sokol__gfx__ImageType__2d;
                                    ~ ^~~~~~~~~~~~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9661:30: warning: assigning to 'const char *' from 'byteptr' (aka 'unsigned char *') converts between pointers to integer types with different sign [-Wpointer-sign]
        desc->fs.images[index].name = name.str;
                                    ^ ~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9662:32: warning: implicit conversion from enumeration type 'sokol__gfx__ImageType' to different enumeration type 'sg_image_type' (aka 'enum sg_image_type') [-Wenum-conversion]
        desc->fs.images[index].type = sokol__gfx__ImageType__2d;
                                    ~ ^~~~~~~~~~~~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9677:68: warning: assigning to 'const char *' from 'byteptr' (aka 'unsigned char *') converts between pointers to integer types with different sign [-Wpointer-sign]
        desc->vs.uniform_blocks[block_index].uniforms[uniform_index].name = name.str;
                                                                          ^ ~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9678:70: warning: implicit conversion from enumeration type 'sokol__gfx__UniformType' to different enumeration type 'sg_uniform_type' (aka 'enum sg_uniform_type') [-Wenum-conversion]
        desc->vs.uniform_blocks[block_index].uniforms[uniform_index].type = type;
                                                                          ~ ^~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9683:68: warning: assigning to 'const char *' from 'byteptr' (aka 'unsigned char *') converts between pointers to integer types with different sign [-Wpointer-sign]
        desc->fs.uniform_blocks[block_index].uniforms[uniform_index].name = name.str;
                                                                          ^ ~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9684:70: warning: implicit conversion from enumeration type 'sokol__gfx__UniformType' to different enumeration type 'sg_uniform_type' (aka 'enum sg_uniform_type') [-Wenum-conversion]
        desc->fs.uniform_blocks[block_index].uniforms[uniform_index].type = type;
                                                                          ~ ^~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9693:27: warning: assigning to 'const char *' from 'byteptr' (aka 'unsigned char *') converts between pointers to integer types with different sign [-Wpointer-sign]
        desc->images[index].name = name.str;
                                 ^ ~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:9694:29: warning: implicit conversion from enumeration type 'sokol__gfx__ImageType' to different enumeration type 'sg_image_type' (aka 'enum sg_image_type') [-Wenum-conversion]
        desc->images[index].type = sokol__gfx__ImageType__2d;
                                 ~ ^~~~~~~~~~~~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:10175:20: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
                char* s = getenv(key.str);
                                 ^~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h:147:26: note: passing argument to parameter here
char    *getenv(const char *);
                            ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:10192:17: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
                return setenv(name.str, value.str, overwrite);
                              ^~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h:237:26: note: passing argument to parameter '__name' here
int      setenv(const char * __name, const char * __value, int __overwrite) __DARWIN_ALIAS(setenv);
                             ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:10192:27: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
                return setenv(name.str, value.str, overwrite);
                                        ^~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h:237:47: note: passing argument to parameter '__value' here
int      setenv(const char * __name, const char * __value, int __overwrite) __DARWIN_ALIAS(setenv);
                                                  ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:10205:19: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
                return unsetenv(name.str);
                                ^~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h:252:27: note: passing argument to parameter here
int      unsetenv(const char *) __DARWIN_ALIAS(unsetenv);
                              ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:10222:38: warning: passing 'charptr' (aka 'char *') to parameter of type 'byteptr' (aka 'unsigned char *') converts between pointers to integer types with different sign [-Wpointer-sign]
                        string eline = cstring_to_vstring(e[i]);
                                                          ^~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:7661:36: note: passing argument to parameter 'cstr' here
string  cstring_to_vstring(byteptr cstr) {
                                   ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:10238:7: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        stat(path.str, &attr);
             ^~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h:361:26: note: passing argument to parameter here
int     stat(const char *, struct stat *) __DARWIN_INODE64(stat);
                         ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:10304:8: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        fputs(s.str, f->cfile);
              ^~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:157:35: note: passing argument to parameter here
int      fputs(const char * __restrict, FILE * __restrict) __DARWIN_ALIAS(fputs);
                                      ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:10311:8: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        fputs(s.str, f->cfile);
              ^~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:157:35: note: passing argument to parameter here
int      fputs(const char * __restrict, FILE * __restrict) __DARWIN_ALIAS(fputs);
                                      ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:10426:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:10450:1: warning: expression result unused [-Wunused-value]
_t1;
^~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:10474:1: warning: expression result unused [-Wunused-value]
_t5;
^~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:10483:1: warning: expression result unused [-Wunused-value]
_t6;
^~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:10494:1: warning: expression result unused [-Wunused-value]
_t1;
^~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:10641:16: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
                return popen(cpath, "r");
                             ^~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:236:25: note: passing argument to parameter here
FILE    *popen(const char *, const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_2_0, __DARWIN_ALIAS(popen)) __swift_unavailable_on("Use posix_spawn APIs or NSTask instead.", "Process spawning is unavailable.");
                           ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:10701:16: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
                ret = system(cmd.str);
                             ^~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h:190:25: note: passing argument to parameter here
int      system(const char *) __DARWIN_ALIAS_C(system);
                            ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:10767:17: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
                return access(path.str, _const_os__f_ok) != -1;
                              ^~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:430:25: note: passing argument to parameter here
int      access(const char *, int);
                            ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:10789:16: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        return access(path.str, _const_os__x_ok) != -1;
                      ^~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:430:25: note: passing argument to parameter here
int      access(const char *, int);
                            ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:10815:17: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
                return access(path.str, _const_os__w_ok) != -1;
                              ^~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:430:25: note: passing argument to parameter here
int      access(const char *, int);
                            ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:10828:17: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
                return access(path.str, _const_os__r_ok) != -1;
                              ^~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:430:25: note: passing argument to parameter here
int      access(const char *, int);
                            ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:10838:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:10846:10: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
                remove(path.str);
                       ^~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:174:25: note: passing argument to parameter here
int      remove(const char *);
                            ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:10857:9: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
                rmdir(path.str);
                      ^~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:473:24: note: passing argument to parameter here
int      rmdir(const char *);
                           ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:10996:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:11291:1: warning: expression result unused [-Wunused-value]
_t1;
^~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:11298:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:11307:12: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
                if (stat(path.str, &statbuf) != 0) {
                         ^~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h:361:26: note: passing argument to parameter here
int     stat(const char *, struct stat *) __DARWIN_INODE64(stat);
                         ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:11325:13: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
                if (lstat(path.str, &statbuf) != 0) {
                          ^~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h:358:27: note: passing argument to parameter here
int     lstat(const char *, struct stat *) __DARWIN_INODE64(lstat);
                          ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:11341:9: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
                chdir(path.str);
                      ^~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:433:24: note: passing argument to parameter here
int      chdir(const char *);
                           ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:11355:14: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign]
                if (getcwd(buf, 512) == 0) {
                           ^~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:448:20: note: passing argument to parameter here
char    *getcwd(char *, size_t);
                      ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:11373:29: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
                ret = ((charptr)(realpath(fpath.str, fullpath)));
                                          ^~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h:231:39: note: passing argument to parameter here
char    *realpath(const char * __restrict, char * __restrict) __DARWIN_EXTSN(realpath);
                                         ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:11373:40: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign]
                ret = ((charptr)(realpath(fpath.str, fullpath)));
                                                     ^~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h:231:58: note: passing argument to parameter here
char    *realpath(const char * __restrict, char * __restrict) __DARWIN_EXTSN(realpath);
                                                            ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:11513:7: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        stat(path.str, &attr);
             ^~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h:361:26: note: passing argument to parameter here
int     stat(const char *, struct stat *) __DARWIN_INODE64(stat);
                         ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:11548:1: warning: expression result unused [-Wunused-value]
_t3;
^~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:11573:1: warning: expression result unused [-Wunused-value]
_t1;
^~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:11597:8: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        chmod(path.str, mode);
              ^~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h:355:27: note: passing argument to parameter here
int     chmod(const char *, mode_t) __DARWIN_ALIAS(chmod);
                          ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:11644:24: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        voidptr dir = opendir(path.str);
                              ^~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/dirent.h:106:26: note: passing argument to parameter here
DIR *opendir(const char *) __DARWIN_ALIAS_I(opendir);
                         ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:11667:16: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        int r = mkdir(apath.str, 511);
                      ^~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h:359:27: note: passing argument to parameter here
int     mkdir(const char *, mode_t);
                          ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:11693:20: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        int res = symlink(origin.str, target.str);
                          ^~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:629:26: note: passing argument to parameter here
int      symlink(const char *, const char *);
                             ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:11693:32: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        int res = symlink(origin.str, target.str);
                                      ^~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:629:40: note: passing argument to parameter here
int      symlink(const char *, const char *);
                                           ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:12172:22: warning: incompatible pointer types passing 'time__InternalTimeBase *' (aka 'struct time__InternalTimeBase *') to parameter of type 'mach_timebase_info_t' (aka 'struct mach_timebase_info *') [-Wincompatible-pointer-types]
                mach_timebase_info(&_const_time__time_base);
                                   ^~~~~~~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/mach_time.h:47:26: note: passing argument to parameter 'info' here
        mach_timebase_info_t    info);
                                ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:12181:22: warning: incompatible pointer types passing 'time__InternalTimeBase *' (aka 'struct time__InternalTimeBase *') to parameter of type 'mach_timebase_info_t' (aka 'struct mach_timebase_info *') [-Wincompatible-pointer-types]
                mach_timebase_info(&_const_time__time_base);
                                   ^~~~~~~~~~~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/mach_time.h:47:26: note: passing argument to parameter 'info' here
        mach_timebase_info_t    info);
                                ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:12351:30: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        return fonsGetFontByName(s, name);
                                    ^~~~
/Users/user/v_lang/v/thirdparty/fontstash/fontstash.h:934:51: note: passing argument to parameter 'name' here
int fonsGetFontByName(FONScontext* s, const char* name)
                                                  ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:12361:27: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        return fonsAddFontMem(s, name, data, data_size, free_data);
                                 ^~~~
/Users/user/v_lang/v/thirdparty/fontstash/fontstash.h:891:52: note: passing argument to parameter 'name' here
int fonsAddFontMem(FONScontext* stash, const char* name, unsigned char* data, int dataSize, int freeData)
                                                   ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:12411:31: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        return fonsDrawText(s, x, y, str, end);
                                     ^~~
/Users/user/v_lang/v/thirdparty/fontstash/fontstash.h:1251:20: note: passing argument to parameter 'str' here
                                   const char* str, const char* end)
                                               ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:12411:36: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        return fonsDrawText(s, x, y, str, end);
                                          ^~~
/Users/user/v_lang/v/thirdparty/fontstash/fontstash.h:1251:37: note: passing argument to parameter 'end' here
                                   const char* str, const char* end)
                                                                ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:12416:33: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        return fonsTextBounds(s, x, y, str, end, bounds);
                                       ^~~
/Users/user/v_lang/v/thirdparty/fontstash/fontstash.h:1435:19: note: passing argument to parameter 'str' here
                                         const char* str, const char* end,
                                                     ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:12416:38: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        return fonsTextBounds(s, x, y, str, end, bounds);
                                            ^~~
/Users/user/v_lang/v/thirdparty/fontstash/fontstash.h:1435:36: note: passing argument to parameter 'end' here
                                         const char* str, const char* end,
                                                                      ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:12431:41: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        return fonsTextIterInit(s, iter, x, y, str, end);
                                               ^~~
/Users/user/v_lang/v/thirdparty/fontstash/fontstash.h:1314:37: note: passing argument to parameter 'str' here
                                         float x, float y, const char* str, const char* end)
                                                                       ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:12431:46: warning: passing 'byteptr' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        return fonsTextIterInit(s, iter, x, y, str, end);
                                                    ^~~
/Users/user/v_lang/v/thirdparty/fontstash/fontstash.h:1314:54: note: passing argument to parameter 'end' here
                                         float x, float y, const char* str, const char* end)
                                                                                        ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:12441:9: warning: returning 'const unsigned char *' from a function with result type 'byteptr' (aka 'unsigned char *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
        return fonsGetTextureData(s, width, height);
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:12517:35: warning: incompatible pointer types initializing 'const void *(*)(void)' with an expression of type 'voidptr ()' (aka 'void *()') [-Wincompatible-pointer-types]
                .mtl_renderpass_descriptor_cb = sokol__sapp__metal_get_renderpass_descriptor,
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:12518:22: warning: incompatible pointer types initializing 'const void *(*)(void)' with an expression of type 'voidptr ()' (aka 'void *()') [-Wincompatible-pointer-types]
                .mtl_drawable_cb = sokol__sapp__metal_get_drawable,
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:12523:34: warning: incompatible pointer types initializing 'const void *(*)(void)' with an expression of type 'voidptr ()' (aka 'void *()') [-Wincompatible-pointer-types]
                .d3d11_render_target_view_cb = sokol__sapp__d3d11_get_render_target_view,
                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:12524:34: warning: incompatible pointer types initializing 'const void *(*)(void)' with an expression of type 'voidptr ()' (aka 'void *()') [-Wincompatible-pointer-types]
                .d3d11_depth_stencil_view_cb = sokol__sapp__d3d11_get_depth_stencil_view,
                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:12530:19: warning: braces around scalar initializer [-Wbraced-scalar-init]
                .color_format = {0},
                                ^~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:12531:19: warning: braces around scalar initializer [-Wbraced-scalar-init]
                .depth_format = {0},
                                ^~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:12533:19: warning: braces around scalar initializer [-Wbraced-scalar-init]
                .face_winding = {0},
                                ^~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:12676:38: warning: integer literal is too large to be represented in a signed integer type, interpreting as unsigned [-Wimplicitly-unsigned-literal]
        _const_math__bits__max_u64 = ((u64)(18446744073709551615));
                                            ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:12697:407: warning: integer literal is too large to be represented in a signed integer type, interpreting as unsigned [-Wimplicitly-unsigned-literal]
((u64)(1)), ((u64)(10)), ((u64)(100)), ((u64)(1000)), ((u64)(10000)), ((u64)(100000)), ((u64)(1000000)), ((u64)(10000000)), ((u64)(100000000)), ((u64)(1000000000)), ((u64)(10000000000)), ((u64)(100000000000)), ((u64)(1000000000000)), ((u64)(10000000000000)), ((u64)(100000000000000)), ((u64)(1000000000000000)), ((u64)(10000000000000000)), ((u64)(100000000000000000)), ((u64)(1000000000000000000)), ((u64)(10000000000000000000)), 
                                                                                                                                                                                                                                                                                                                                                                                                                      ^
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:14643:13: warning: braces around scalar initializer [-Wbraced-scalar-init]
        .init_cb = {0},
                   ^~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:14644:14: warning: braces around scalar initializer [-Wbraced-scalar-init]
        .frame_cb = {0},
                    ^~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:14645:16: warning: braces around scalar initializer [-Wbraced-scalar-init]
        .cleanup_cb = {0},
                      ^~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:14646:14: warning: braces around scalar initializer [-Wbraced-scalar-init]
        .event_cb = {0},
                    ^~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:14647:13: warning: braces around scalar initializer [-Wbraced-scalar-init]
        .fail_cb = {0},
                   ^~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:14651:25: warning: braces around scalar initializer [-Wbraced-scalar-init]
        .cleanup_userdata_cb = {0},
                               ^~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:14652:23: warning: braces around scalar initializer [-Wbraced-scalar-init]
        .event_userdata_cb = {0},
                             ^~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:14653:22: warning: braces around scalar initializer [-Wbraced-scalar-init]
        .fail_userdata_cb = {0},
                            ^~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:14661:18: warning: initializing 'const char *' with an expression of type 'byteptr' (aka 'unsigned char *') converts between pointers to integer types with different sign [-Wpointer-sign]
        .window_title = title.str,
                        ^~~~~~~~~
/private/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c:14665:23: warning: initializing 'const char *' with an expression of type 'byteptr' (aka 'unsigned char *') converts between pointers to integer types with different sign [-Wpointer-sign]
        .html5_canvas_name = title.str,
                             ^~~~~~~~~
118 warnings generated.
 "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -export_dynamic -lto_library /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib -no_deduplicate -dynamic -arch x86_64 -macosx_version_min 10.7.0 -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -o /Users/user/v/User/sokol_exam/fonts -lcrt1.10.6.o -L/opt/local/lib /var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/fonts-c69418.o -framework Metal -framework Cocoa -framework MetalKit -framework QuartzCore -lfreetype -lpng -lbz2 -lz -L/usr/local/lib -force_load /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_macosx.a -framework Foundation -lobjc -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.0/lib/darwin/libclang_rt.osx.a
ld: warning: directory not found for option '-L/opt/local/lib'
Undefined symbols for architecture x86_64:
  "_objc_loadClassref", referenced from:
      __ARCLite__load() in libarclite_macosx.a(arclite.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
builder error: 
==================
C error. This should never happen.

If you were not working with C interop, please raise an issue on GitHub:

https://github.com/vlang/v/issues/new/choose

You can also use #help on Discord: https://discord.gg/vlang
spytheman commented 4 years ago

I only could find this that may be relevant to this issue: https://forums.developer.apple.com/thread/123123

Unfortunately, I do not have a mac with a more recent MacOS, so I can not test if that works :-| . Please, can you try doing v -showcc -cflags ' -Xlinker -U -Xlinker _objc_loadClassref ' run fonts.v ?

GaraSharp commented 4 years ago

Thank you for new reply ! just tried new command line,

$ v -showcc -cflags ' -Xlinker -U -Xlinker _objc_loadClassref ' run fonts.v
fonts.v:64:2: warning: unused variable: `t` 
   62 | 
   63 | fn frame(user_data voidptr) {
   64 |     t := time.ticks()
      |     ^
   65 |     mut state := &AppState(user_data)
   66 |     state.render_font()

==========
cc   -Xlinker -U -Xlinker _objc_loadClassref  -std=gnu11 -Wall -Wextra -Wno-unused-variable -Wno-unused-parameter -Wno-unused-result -Wno-unused-function -Wno-missing-braces -Wno-unused-label -Werror=implicit-function-declaration -o "/Users/user/v/User/sokol_exam/fonts" -x objective-c "/var/folders/2b/6h7q5wkj3vbgtt12092d2pj80000gn/T/v/fonts.tmp.c" -x none -mmacosx-version-min=10.7  -I "/Users/user/v_lang/v/thirdparty/sokol" -I "/Users/user/v_lang/v/thirdparty/sokol/util" -fobjc-arc -DSOKOL_METAL -framework Metal -framework Cocoa -framework MetalKit -framework QuartzCore -I "/usr/local/Cellar/freetype/2.10.1/include/freetype2" -I "/opt/local/include/freetype2" -L "/opt/local/lib" -lfreetype -lpng -lbz2 -lz -I "/Users/user/v_lang/v/thirdparty/fontstash"  
RUN
METAL
CREATE SHAER
CREATE SHAER

and new fonts.v app window appeared ! thanks !!

I only could find this that may be relevant to this issue: https://forums.developer.apple.com/thread/123123

I didn't know that latest Xcode has such problem ... so, your suggested command line option must need for, but such option is difficult for newbie such as me ...

this malfunction stands Xcode design, not V bug, I understand. idealy, no "special" case need for every environment I hope.

I am sorry for V developpers and this thread closing.

Thanks !