Andrew Kelley a34a51ef6e aro: use ArrayList in GCCDetector instead of BoundedArray
These arrays don't really all have an upper bound of 16; in fact they
have different upper bounds. Presumably the reason 16 was used for all
of them was to avoid code bloat with BoundedArray. Well, now even more
code bloat has been eliminated because now it's using
`ArrayList([]const u8)` which is certainly instantiated elsewhere.
Furthermore, the different corrected upper bounds can be specified at
each instance of the array list.
2023-11-22 11:33:34 -07:00
..
2023-11-15 11:26:49 +02:00
2023-11-15 11:26:49 +02:00
2023-11-15 11:26:49 +02:00
2023-11-15 11:26:49 +02:00
2023-11-15 11:26:49 +02:00

Aro

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!
$