arocc
1.0.0
คอมไพเลอร์ AC โดยมีเป้าหมายเพื่อให้การคอมไพล์รวดเร็วและการใช้หน่วยความจำเหลือน้อยพร้อมการวินิจฉัยที่ดี
Aro ถูกรวมไว้เป็นส่วนหน้า C ทางเลือกในคอมไพเลอร์ Zig สำหรับ translate-c
และในที่สุดก็รวบรวมไฟล์ C โดยการแปลเป็น Zig ก่อน Aro ได้รับการพัฒนาในhttps://github.com/Vexu/arocc และการพึ่งพา Zig จะได้รับการอัปเดตจากที่นั่นเมื่อจำเป็น
ปัจจุบัน C มาตรฐานส่วนใหญ่รองรับได้ถึง C23 และเช่นเดียวกับส่วนขยายทั่วไปหลายรายการจาก GNU, MSVC และ Clang
การสร้างโค้ดพื้นฐานได้รับการสนับสนุนสำหรับ x86-64 linux และสามารถสร้างสวัสดีโลกที่ถูกต้องได้:
$ 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!
ข้อมูลต่อไปนี้จะถือว่าแพ็กเกจของคุณมีไฟล์ build.zig.zon
zig fetch --save git+https://github.com/Vexu/arocc.git
เพิ่มสิ่งต่อไปนี้ใน build.zig
ของคุณ:
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" ,
});
ตอนนี้คุณสามารถทำ
const aro = @import ( "aro" );
ในรหัสซิกของคุณ