Evan Haas e6b9312bd0 aro: Add stub definitions to enable bootstrapping
Co-authored-by: Veikka Tuominen <git@vexu.eu>
2023-11-03 22:18:40 +02:00
..
2023-11-02 22:45:58 -07:00
2023-11-02 22:45:58 -07:00
2023-11-02 22:45:58 -07:00
2023-10-01 23:51:54 +03:00
2023-11-02 22:45:58 -07:00
2023-10-17 11:55:01 +03:00
2023-11-02 22:45:58 -07:00
2023-11-02 22:45:58 -07:00
2023-10-01 23:51:54 +03:00
2023-10-17 11:55:01 +03:00
2023-11-02 22:45:58 -07:00
2023-11-02 22:45:58 -07:00
2023-11-02 22:45:58 -07:00
2023-10-17 11:55:01 +03:00
2023-10-01 23:51:54 +03:00
2023-10-01 23:51:54 +03:00
2023-10-01 23:51:54 +03:00
2023-11-02 22:45:58 -07:00
2023-10-17 11:55:01 +03:00
2023-10-01 23:51:54 +03:00
2023-10-01 23:51:54 +03:00
2023-11-02 22:45:58 -07:00
2023-10-01 23:51:54 +03:00
2023-11-02 22:45:58 -07:00
2023-10-17 11:55:01 +03:00
2023-11-02 22:45:58 -07:00
2023-11-02 22:45:58 -07:00
2023-11-02 22:45:58 -07:00
2023-11-02 22:45:58 -07:00
2023-11-02 22:45:58 -07:00
2023-10-01 23:51:54 +03:00
2023-11-02 22:45:58 -07:00
2023-11-02 22:45:58 -07:00
2023-10-01 23:51:54 +03:00
2023-11-02 22:45:58 -07:00

Aro

A C compiler with the goal of providing fast compilation and low memory usage with good diagnostics.

Aro is included as an alternative C frontend in the Zig compiler for translate-c and eventually compiling C files by translating them to Zig first. Aro is developed in https://github.com/Vexu/arocc and the Zig dependency is updated from there when needed.

Currently most of standard C is supported up to C23 and as are many of the common extensions from GNU, MSVC, and Clang

Basic code generation is supported for x86-64 linux and can produce a valid hello world:

$ cat hello.c
extern int printf(const char *restrict fmt, ...);
int main(void) {
    printf("Hello, world!\n");
    return 0;
}
$ zig build run -- hello.c -o hello
$ ./hello
Hello, world!
$