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" );
في الرمز البريدي الخاص بك.