zig/lib/compiler/aro
Alex Rønne Petersen 5d019abe4e start adding big endian RISC-V support
The big endian RISC-V effort is mostly driven by MIPS (the company) which is
pivoting to RISC-V, and presumably needs a big endian variant to fill the niche
that big endian MIPS (the ISA) did.

GCC already supports these targets, but LLVM support will only appear in 22;
this commit just adds the necessary target knowledge and checks on our end.
2025-08-25 16:15:17 +02:00
..
aro start adding big endian RISC-V support 2025-08-25 16:15:17 +02:00
backend std.ArrayList: make unmanaged the default 2025-08-11 15:52:49 -07:00
aro.zig sync Aro dependency 2024-09-09 12:35:49 +03:00
backend.zig make aro-based translate-c lazily built from source 2024-02-28 13:21:05 -07:00
README.md Sync Aro sources (#19199) 2024-03-06 14:17:41 -05: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 && ./zig-out/bin/arocc hello.c -o hello
$ ./hello
Hello, world!