منصوبے کے بارے میں

Cosmopolitan Libc ایک C لائبریری اور ٹول چین ہے جو C/C++ کو ایک بار بنائیں ہر جگہ چلائیں زبان کی طرح برتاؤ کراتا ہے، جس کا مقصد Java کی طرح ہے لیکن اسے interpreter یا virtual machine کی ضرورت نہیں۔ یہ موجودہ GCC اور Clang کو دوبارہ ترتیب دیتا ہے تاکہ POSIX سے منظور شدہ polyglot executable فارمیٹ تیار ہو جو Linux، macOS، Windows، FreeBSD، OpenBSD 7.3، NetBSD اور BIOS پر مقامی طور پر چلتا ہے، جس کا ہدف مضبوط کارکردگی اور بہت کم فٹ پرنٹ ہے۔ شروعات cosmocc compiler پر مرکوز ہیں، جو cosmo.zip سے zip کے طور پر تقسیم ہوتا ہے۔ اسے کھولنے کے بعد، ایک سادہ hello.c کو `cosmocc -o hello hello.c` سے کمپائل کیا جا سکتا ہے اور براہ راست چلایا جا سکتا ہے۔ runtime بطور ڈیفالٹ بھاری troubleshooting خصوصیات کو لنک کرتا ہے: `--strace` سسٹم کالز لاگ کرتا ہے اور `--ftrace` فنکشن کالز لاگ کرتا ہے، دونوں kprintf سہولت استعمال کرتے ہیں، جسے KPRINTF_LOG ماحولیاتی متغیر کے ذریعے فائل میں ری ڈائریکٹ کیا جا سکتا ہے۔ ٹول چین روایتی autotools پر مبنی اوپن سورس پروجیکٹس بھی بنا سکتا ہے، CC اور CXX کو cosmo compilers پر export کر کے اور configure، make اور make install چلا کر۔ Cosmopolitan خود بھی معاون پلیٹ فارمز پر سورس سے بنایا جا سکتا ہے؛ Makefile خود بخود cosmocc ڈاؤن لوڈ کرتا ہے۔ ape/apeinstall.sh کے ذریعے systemwide APE Loader انسٹال کرنے کی سفارش کی جاتی ہے، اور Linux پر یہ اضافی کارکردگی کے لیے binfmt_misc کے ساتھ رجسٹر ہوتا ہے۔ بلڈز GNU Make استعمال کرتے ہیں، جس کے لیے bootstrap make cosmo.zip سے دستیاب ہے۔ چونکہ repository بڑی ہے، انفرادی targets بنائے جا سکتے ہیں، جیسے ایک POSIX test یا پورا test package۔ بلڈ موڈز میں `m=tiny` بہت چھوٹی binaries کے لیے (12kb تک چھوٹی) اور `m=tinylinux` دیگر آپریٹنگ سسٹمز کو کم کرنے اور Musl Libc کی طرح برتاؤ کرنے کے لیے شامل ہیں۔ ڈیبگنگ رہنمائی میں UTF-8 charsets اور layouts کے لیے GDB کنفیگریشن، .dbg فائلیں چلانا، اور ڈیبگ سمبلز کو آزادانہ طور پر لوڈ کرنا شامل ہے۔ پلیٹ فارم نوٹس shells (zsh 5.9+ تجویز کردہ، پرانے shells اور Python subprocess کے لیے workarounds کے ساتھ)، Linux سسٹمز جو MZ executables کو WINE پر غلط روٹ کرتے ہیں یا run-detector errors دکھاتے ہیں، اور WSL پر بات کرتے ہیں، جہاں WSLInterop binfmt_misc کو غیر فعال کرنے کی سفارش کی جاتی ہے۔ پروجیکٹ کم از کم معاون پلیٹ فارم ورژنز کی فہرست دیتا ہے، جن میں AMD K8، Intel Core، Linux 2.6.18، Windows 8 (پرانے Windows کے لیے community vista branch کے ساتھ)، Darwin 23.1.0+، OpenBSD 7.3، FreeBSD 13 اور NetBSD 9.2 شامل ہیں۔ ترقیاتی بحث Discord سرور پر ہوتی ہے، اور فنڈنگ GitHub Sponsors اور Patreon کے ذریعے آتی ہے۔