প্রকল্প সম্পর্কে

Cosmopolitan Libc একটি C লাইব্রেরি এবং টুলচেইন যা C/C++ কে Java-এর মতো build-once run-anywhere ভাষার মতো আচরণ করায়, কিন্তু interpreter বা virtual machine প্রয়োজন হয় না। এটি স্টক GCC এবং Clang পুনর্গঠন করে একটি POSIX-অনুমোদিত polyglot executable ফরম্যাট তৈরি করে যা Linux, macOS, Windows, FreeBSD, OpenBSD 7.3, NetBSD এবং BIOS-এ নেটিভভাবে চলে, শক্তিশালী কর্মক্ষমতা এবং অত্যন্ত ছোট footprint লক্ষ্য করে। শুরু করার মূল বিষয় হল cosmocc কম্পাইলার, যা cosmo.zip থেকে zip হিসেবে বিতরণ করা হয়। আনপ্যাক করার পর, একটি সাধারণ hello.c ফাইল `cosmocc -o hello hello.c` দিয়ে কম্পাইল করা যায় এবং সরাসরি চালানো যায়। রানটাইম ডিফল্টভাবে ভারী troubleshooting বৈশিষ্ট্য লিংক করে: `--strace` সিস্টেম কল লগ করে এবং `--ftrace` ফাংশন কল লগ করে, উভয়ই kprintf সুবিধা ব্যবহার করে, যা KPRINTF_LOG পরিবেশ পরিবর্তনশীলের মাধ্যমে ফাইলে পুনঃনির্দেশিত করা যায়। টুলচেইনটি প্রচলিত autotools-ভিত্তিক ওপেন সোর্স প্রকল্পও তৈরি করতে পারে, CC এবং CXX কে cosmo কম্পাইলারে export করে এবং configure, make এবং make install চালিয়ে। Cosmopolitan নিজেও সমর্থিত প্ল্যাটফর্মে সোর্স থেকে তৈরি করা যায়; Makefile স্বয়ংক্রিয়ভাবে cosmocc ডাউনলোড করে। ape/apeinstall.sh এর মাধ্যমে সিস্টেম-ব্যাপী APE Loader ইনস্টল করার পরামর্শ দেওয়া হয়, এবং Linux-এ এটি binfmt_misc-এর সাথে নিবন্ধিত হয় অতিরিক্ত কর্মক্ষমতার জন্য। বিল্ড GNU Make ব্যবহার করে, cosmo.zip থেকে একটি bootstrap make উপলব্ধ। রিপোজিটরি বড় হওয়ায়, পৃথক টার্গেট তৈরি করা যায়, যেমন একটি একক POSIX পরীক্ষা বা একটি সম্পূর্ণ পরীক্ষা প্যাকেজ। বিল্ড মোডগুলির মধ্যে রয়েছে `m=tiny` অত্যন্ত ছোট বাইনারির জন্য (12kb পর্যন্ত ছোট) এবং `m=tinylinux` অন্যান্য অপারেটিং সিস্টেম ছাঁটাই করতে এবং Musl Libc-এর মতো আচরণ করতে। ডিবাগিং নির্দেশিকা UTF-8 charset এবং লেআউটের জন্য GDB কনফিগারেশন, .dbg ফাইল চালানো এবং স্বাধীনভাবে ডিবাগ প্রতীক লোড করার বিষয়টি কভার করে। প্ল্যাটফর্ম নোট শেল (zsh 5.9+ সুপারিশ করা হয়, পুরানো শেল এবং Python subprocess-এর জন্য workaround সহ), Linux সিস্টেম যা MZ executable-কে WINE-এ পুনঃনির্দেশিত করে বা run-detector ত্রুটি প্রিন্ট করে, এবং WSL, যেখানে WSLInterop binfmt_misc নিষ্ক্রিয় করার পরামর্শ দেওয়া হয়। প্রকল্পটি সর্বনিম্ন সমর্থিত প্ল্যাটফর্ম সংস্করণ তালিকাভুক্ত করে, যার মধ্যে AMD K8, Intel Core, Linux 2.6.18, Windows 8 (পুরানো Windows-এর জন্য একটি কমিউনিটি vista branch সহ), Darwin 23.1.0+, OpenBSD 7.3, FreeBSD 13 এবং NetBSD 9.2। উন্নয়ন আলোচনা একটি Discord সার্ভারে হয়, এবং তহবিল GitHub Sponsors এবং Patreon-এর মাধ্যমে আসে।