mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
setjmp is not guaranteed to collect all registers without modification on all platforms. This fixes the following bug: when the pointer of a newly allocated object on the Python heap is stored in rpb registers on x86_64 arch, it was not collected by the garbarge collector.
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…).