क्या Clang / LLVM प्राइम टाइम के लिए तैयार है? [बन्द है]


9

Gcc के बजाय Clang का उपयोग किया जा सकता है? उस पर आपका क्या अनुभव है? अभी तक क्या नुकसान हैं?

संकलन का प्रदर्शन gcc से बहुत बेहतर है लेकिन इसे निष्पादित करते समय उत्पन्न कोड के प्रदर्शन के बारे में?

लिनक्स या विंडोज पर चलने के लिए फ्रंट-एंड (आईडीई) के रूप में अच्छे उपकरण हैं?

संपादित करें: मेरा मतलब है सी संकलक। C ++ यह अभी तक अच्छा नहीं है।

जवाबों:


9

अपडेट: अब (2013) क्लैंग प्राइम टाइम के लिए तैयार है और इसका इस्तेमाल गूगल जैसी कुछ कंपनियां करती हैं। हालांकि यह विंडोज पर पूरी तरह से उपयोग करने योग्य नहीं है, इस प्लेटफॉर्म पर काम एक "प्रगति में काम" है। LLVM / Clang वर्तमान में MacOSX / XCode पर डिफ़ॉल्ट कंपाइलर है, लेकिन यह LLVM वालों की तुलना में बिल्कुल समान रिलीज नहीं है, इसलिए मामूली अंतर (ज्यादातर संस्करण संख्याओं के अंतर) से सावधान रहें।


अच्छी तरह से क्लैंग देव मेलिंग सूची के बाद , हाल ही में ट्रंक संस्करण सफलतापूर्वक निर्माण किया गया है:

  • लिनक्स कर्नेल (एक हालिया संशोधन)
  • Qt (यह विशेष रूप से निर्माण प्रक्रिया भी है, जाहिरा तौर पर)
  • क्रोमियम (हाल ही में संशोधन)

इसलिए, मैं कहूंगा कि आने वाला संस्करण (2.9) एक अच्छा "प्राइम टाइम के लिए तैयार" संकलक हो सकता है।

हालाँकि, यदि आपके प्रोजेक्ट में ए प्लानिंग और बजट है, तो शायद यह एक अच्छा विचार नहीं है कि एक कंपाइलर की कोशिश की जाए जो अभी तक भारी परीक्षण नहीं किया गया है। यदि आपको क्लैंग डेवलपर्स समुदाय को प्रयोग करने और प्रतिक्रिया प्रदान करने की अनुमति है, तो इसके लिए जाएं, यह हर किसी के लिए जीत है। यदि नहीं, तो शायद आपको अपने प्रोजेक्ट पर काम करते समय भरोसा करने के लिए "स्थिर जमीन" होने के लिए gcc (इसके हाल के संस्करणों में) जैसे परिपक्व और भारी-भरकम उपयोग किए गए कंपाइलर का उपयोग करना चाहिए।


बस पूरकता के लिए, यह एक पेशेवर परियोजना नहीं है ... फिर भी, यह लगभग 20% कार्य-समय की परियोजना है।
मनेरियो

मैंने एक गैर-पेशेवर क्रॉस-प्लेटफ़ॉर्म प्रोजेक्ट पर क्लैंग की कोशिश की होगी। वास्तव में यही मैं अभी कोशिश कर रहा हूं।
क्लेम

धन्यवाद। मेरी चिंता परियोजना के भविष्य को लेकर है। मैं एक प्रयोग के रूप में शुरू करूंगा लेकिन मैं जल्द से जल्द ऐसा करने की इच्छा रखता हूं।
मनेरियो

यदि यह एक लंबी अवधि की परियोजना है, तो इसे स्थिर, सही, अनुकूलित और पूर्ण-सी ++ 0x फ़ीचर्ड (यदि आप c ++ का उपयोग करते हैं) एक बार CLang से लाभान्वित हो सकते हैं। क्योंकि यह लक्ष्य वहाँ से बाहर तेजी से संकलक होना है और जाहिर है, यह पहले से ही है। और यह महत्वपूर्ण है।
स्क्वैच

1
Clang भी iOS, Xcode का निर्माण कर रहा है, और बहुत ज्यादा सब कुछ Apple शिपिंग है।
माइक वेलर

8

खैर, यह निश्चित रूप से मैक ओएस एक्स पर प्राइमटाइम के लिए तैयार है, क्योंकि कई मैक ओएस एक्स ऐप को क्लैंग का उपयोग करके संकलित किया गया है। लेकिन अन्य प्लेटफार्मों पर भी, सी समर्थन बहुत ठोस है, और टीम ने सी ++ समर्थन के साथ शानदार प्रगति की है।

सामान्यतया, क्लैग कोड को gcc से अधिक तेजी से संकलित करता है , लेकिन gcc बेहतर-अनुकूलित कोड बनाता है। (ऐसे किनारे मामले हैं जहां यह सच नहीं है, लेकिन सामान्य तौर पर, यह वर्तमान स्थिति है।)


मैं एक ही समस्या देखता हूं, क्लैंग अभी भी MacOS / BSD से बंधा हुआ है।
मनिएरो

मैंने विंडोज 7 पर CLang की कोशिश की और यह सही ढंग से काम किया। मैंने इसे उबंटू पर भी आजमाया। मुझे लगता है कि आपकी जानकारी अद्यतित नहीं है, लेकिन यह तर्क है क्योंकि पिछले महीनों में बहुत सारे क्रॉस-प्लेटफ़ॉर्म फ़िक्स प्रयास किए गए हैं। तो शायद अगले संस्करण के बाहर होने के बाद यह इतना मैक-केंद्रित नहीं होगा।
21

1
@ अस्वीकरण: मैं क्लैंग प्रति से , लेकिन पूरे पारिस्थितिकी तंत्र के बारे में नहीं कह रहा हूं । मैं Win7 व्हाइटआउट समस्याओं पर कुछ चीजों की कोशिश की, लेकिन सिर्फ संकलक cli पर।
मनेरियो

मैंने पाया है कि क्लैंग ने अपनी परियोजना के लिए जीसीसी की तुलना में अधिक तेजी से द्विआधारी बनाया। यह कम से कम इसे आज़माने के लायक है।
केंडल हॉपकिंस

इसके अलावा, अब iOS के लिए डिफ़ॉल्ट कंपाइलर है।
mamcx 18

3

आपको वास्तव में एक विशिष्ट संकलक पर निर्भर नहीं होना चाहिए जब तक कि आपको वास्तव में आवश्यकता न हो। तो आप एक मेकफाइल या कुछ और पर सब कुछ ठीक काम करना चाहिए संकलक को बदलने में सक्षम होना चाहिए।

यहां मैं मुख्य रूप से अपने टॉय प्रोजेक्ट्स के लिए क्लैंग का उपयोग करता हूं, क्योंकि यह तेज है, और बहुत अधिक महत्वपूर्ण है: इसके त्रुटि संदेश बहुत स्पष्ट हैं। लेकिन जब मुझे gdb का उपयोग करने की आवश्यकता होती है, मैं gcc और -ggdb के साथ संकलन करता हूं। तो क्लैंग अभी तक पूर्ण नहीं है, और मेरा एकमात्र संकलक नहीं हो सकता है।

(BTW: मैं x86 gentoo पर हूं, और परियोजनाएं C और C ++ में हैं)

संपादित करें : स्पष्ट करने के लिए, क्लैंग तेजी से चलता है (कुछ मामलों में, बहुत तेज)। मैं फैंसी अनुकूलन के बारे में परवाह नहीं करता।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.