Kompiler AC dengan tujuan menyediakan kompilasi cepat dan penggunaan memori rendah dengan diagnostik yang baik.
Aro disertakan sebagai frontend C alternatif dalam kompiler Zig untuk translate-c
dan akhirnya mengkompilasi file C dengan menerjemahkannya ke Zig terlebih dahulu. Aro dikembangkan di https://github.com/Vexu/arocc dan ketergantungan Zig diperbarui dari sana bila diperlukan.
Saat ini sebagian besar standar C didukung hingga C23 dan begitu pula banyak ekstensi umum dari GNU, MSVC, dan Clang
Pembuatan kode dasar didukung untuk linux x86-64 dan dapat menghasilkan hello world yang valid:
$ 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!
Berikut ini mengasumsikan bahwa paket Anda memiliki file build.zig.zon
.
zig fetch --save git+https://github.com/Vexu/arocc.git
Tambahkan yang berikut ini ke build.zig
Anda:
const aro = b . dependency ( "aro" , .{
. target = target ,
. optimize = optimize ,
});
exe . root_module . addImport ( "aro" , aro . module ( "aro" ));
// Optional; this will make aro's builtin includes (the `include` directory of this repo) available to `Toolchain`
b . installDirectory (.{
. source_dir = aro . path ( "include" ),
. install_dir = .prefix ,
. install_subdir = "include" ,
});
Sekarang kamu bisa melakukannya
const aro = @import ( "aro" );
dalam kode Zig Anda.