عن المشروع

Cosmopolitan Libc هي مكتبة C وأدوات بناء تجعل C/C++ تعمل كلغة تُبنى مرة واحدة وتعمل في أي مكان، شبيهة بروح Java لكن دون الحاجة لمترجم أو آلة افتراضية. تعيد تهيئة GCC وClang القياسيين لإنتاج صيغة تنفيذية متعددة الأنظمة معتمدة من POSIX تعمل أصلياً على لينكس وماك وويندوز وفري BSD وأوبن BSD 7.3 ونت BSD وBIOS، بهدف تحقيق أداء قوي وحجم صغير جداً. البدء يتمحور حول مترجم cosmocc، الموزع كملف مضغوط من cosmo.zip. بعد فك الضغط، يمكن تجميع ملف hello.c بسيط باستخدام `cosmocc -o hello hello.c` وتشغيله مباشرة. يربط وقت التشغيل ميزات استكشاف الأخطاء الثقيلة افتراضياً: `--strace` يسجل استدعاءات النظام و`--ftrace` يسجل استدعاءات الدوال، وكلاهما يستخدم أداة kprintf، التي يمكن توجيهها إلى ملف عبر متغير البيئة KPRINTF_LOG. يمكن للأدوات أيضاً بناء مشاريع مفتوحة المصدر التقليدية القائمة على autotools عن طريق تصدير CC وCXX إلى مترجمات cosmo وتشغيل configure وmake وmake install. يمكن بناء Cosmopolitan نفسه من المصدر على الأنظمة المدعومة؛ يقوم ملف Makefile بتنزيل cosmocc تلقائياً. يُنصح بتثبيت مُحمّل APE على مستوى النظام عبر ape/apeinstall.sh، وعلى لينكس يسجل مع binfmt_misc لأداء إضافي. تستخدم البناءات GNU Make، مع توفر make تمهيدي من cosmo.zip. نظراً لحجم المستودع الكبير، يمكن بناء أهداف فردية، مثل اختبار POSIX واحد أو حزمة اختبار كاملة. تشمل أوضاع البناء `m=tiny` لملفات ثنائية صغيرة جداً (حتى 12 كيلوبايت) و`m=tinylinux` لتقليص أنظمة التشغيل الأخرى والتصرف أكثر مثل Musl Libc. إرشادات التصحيح تغطي إعداد GDB لمجموعات الأحرف UTF-8 والتخطيطات، وتشغيل ملفات .dbg، وتحميل رموز التصحيح بشكل مستقل. تتناول ملاحظات المنصات الأصداف (يُنصح بـ zsh 5.9+، مع حلول للأصداف الأقدم وPython subprocess)، وأنظمة لينكس التي توجه ملفات MZ التنفيذية إلى WINE أو تطبع أخطاء كاشف التشغيل، وWSL حيث يُنصح بتعطيل WSLInterop binfmt_misc. يسرد المشروع الحد الأدنى من إصدارات المنصات المدعومة، بما في ذلك AMD K8 وIntel Core ولينكس 2.6.18 وويندوز 8 (مع فرع مجتمعي لـ vista للأنظمة الأقدم) وداروين 23.1.0+ وأوبن BSD 7.3 وفري BSD 13 ونت BSD 9.2. تجري مناقشات التطوير على خادم Discord، ويأتي التمويل عبر GitHub Sponsors وPatreon.