इस प्रोजेक्ट के बारे में
कॉस्मोपॉलिटन लिब्सी एक C लाइब्रेरी और टूलचेन है जो C/C++ को बिल्ड-वन्स रन-एनीवेयर भाषा की तरह व्यवहार कराता है, भावना में Java के समान, लेकिन बिना किसी इंटरप्रेटर या वर्चुअल मशीन की आवश्यकता के। यह स्टॉक GCC और Clang को पुनः कॉन्फ़िगर करके एक POSIX-अनुमोदित पॉलीग्लॉट एक्ज़ीक्यूटेबल फ़ॉर्मेट उत्पन्न करता है जो Linux, macOS, Windows, FreeBSD, OpenBSD 7.3, NetBSD और BIOS पर नेटिव रूप से चलता है, जिसका लक्ष्य मजबूत प्रदर्शन और बहुत छोटा फ़ुटप्रिंट है।
शुरुआत cosmocc कंपाइलर पर केंद्रित है, जो cosmo.zip से एक zip के रूप में वितरित होता है। अनपैक करने के बाद, एक साधारण hello.c को `cosmocc -o hello hello.c` से कंपाइल किया जा सकता है और सीधे चलाया जा सकता है। रनटाइम डिफ़ॉल्ट रूप से भारी ट्रबलशूटिंग सुविधाओं को लिंक करता है: `--strace` सिस्टम कॉल लॉग करता है और `--ftrace` फ़ंक्शन कॉल लॉग करता है, दोनों kprintf सुविधा का उपयोग करते हैं, जिसे KPRINTF_LOG एनवायरनमेंट वेरिएबल के माध्यम से एक फ़ाइल में रीडायरेक्ट किया जा सकता है।
टूलचेन पारंपरिक autotools-आधारित ओपन सोर्स प्रोजेक्ट्स को भी बना सकता है, CC और CXX को cosmo कंपाइलर्स पर एक्सपोर्ट करके और configure, make और make install चलाकर। कॉस्मोपॉलिटन स्वयं समर्थित प्लेटफ़ॉर्म पर सोर्स से बनाया जा सकता है; Makefile स्वचालित रूप से cosmocc डाउनलोड करता है। ape/apeinstall.sh के माध्यम से सिस्टमवाइड APE Loader इंस्टॉल करने की सिफारिश की जाती है, और Linux पर यह अतिरिक्त प्रदर्शन के लिए binfmt_misc के साथ रजिस्टर होता है। बिल्ड GNU Make का उपयोग करते हैं, cosmo.zip से एक बूटस्ट्रैप make उपलब्ध है। चूंकि रिपॉज़िटरी बड़ी है, व्यक्तिगत टार्गेट बनाए जा सकते हैं, जैसे एकल POSIX टेस्ट या पूरा टेस्ट पैकेज। बिल्ड मोड में `m=tiny` बहुत छोटी बाइनरी (12kb तक छोटी) के लिए और `m=tinylinux` अन्य ऑपरेटिंग सिस्टम को ट्रिम करके Musl Libc की तरह अधिक व्यवहार करने के लिए शामिल हैं।
डीबगिंग मार्गदर्शन में UTF-8 चारसेट और लेआउट के लिए GDB कॉन्फ़िगरेशन, .dbg फ़ाइलें चलाना, और डीबग सिंबल्स को स्वतंत्र रूप से लोड करना शामिल है। प्लेटफ़ॉर्म नोट्स शेल्स (zsh 5.9+ की सिफारिश, पुराने शेल्स और Python subprocess के लिए वर्कअराउंड के साथ), Linux सिस्टम जो MZ एक्ज़ीक्यूटेबल्स को WINE पर गलत रूट करते हैं या run-detector त्रुटियां प्रिंट करते हैं, और WSL को संबोधित करते हैं, जहां WSLInterop binfmt_misc को अक्षम करने की सलाह दी जाती है। प्रोजेक्ट न्यूनतम समर्थित प्लेटफ़ॉर्म संस्करणों को सूचीबद्ध करता है, जिसमें AMD K8, Intel Core, Linux 2.6.18, Windows 8 (पुराने Windows के लिए एक कम्युनिटी vista ब्रांच के साथ), Darwin 23.1.0+, OpenBSD 7.3, FreeBSD 13 और NetBSD 9.2 शामिल हैं। विकास चर्चा एक Discord सर्वर पर होती है, और फंडिंग GitHub Sponsors और Patreon के माध्यम से आती है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.