mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
_Bool is defined in C99 which we use already. In practice it's 1 byte just like char, so this shouldn't have any impact on the built object. But this patch removes LTO errors when linking C code with C++ code. Indeed, the linker would raise type mismatch because in C++ bool is defined to _Bool whereas in C it would be defined to char.
liba is an adhoc libc. Warning: you must call "liba_init()" before using liba. We need a very small subset of the functionality provided by the standard C library. We could use an available libc implementation, but those are usually way too large and may have problematic licenses. It wouldn't even be fair to call liba a libc at all since it doesn't come close to implementing a significant portion of the standard. However, we do need some functionality usually provided by libc, so instead of reinventing the wheel we just implement the same entities (types, functions, etc…).