mirror of
https://github.com/Nexoniarz/Finch.git
synced 2026-11-03 16:54:25 +00:00
Targets, the target's C compiler (FINCH_CC) for linking, C import for the target (--target to libclang, its headers), the AAPCS64 and Microsoft x64 ways of passing structs by value (and the System V one), dllexport for libraries on Windows, .exe names, and running the program through wine or qemu-aarch64. std/ gets time_windows.fch and proc_windows.fch: a module has a version per system (name_windows.fch, name_macos.fch, name_linux.fch) that wins over name.fch. stdin, stdout and stderr work where C makes them macros. Run for real: all 27 programs under tests/run and tests/new pass on ARM64 Linux under qemu and on Windows under Wine (MinGW), structs by value and callbacks included. macOS is only checked as far as clang accepts the IR; there is no emulator for it here.
6 lines
365 B
C
6 lines
365 B
C
/* The Windows functions std/time_windows.fch needs. Declared here, not by including <windows.h>:
|
|
libclang can't parse that header with MinGW's intrinsics. Both are in kernel32. */
|
|
unsigned long long GetTickCount64(void);
|
|
void Sleep(unsigned long milliseconds);
|
|
int QueryPerformanceCounter(long long *count);
|
|
int QueryPerformanceFrequency(long long *frequency);
|