अभ्यास में एक मुद्दा एलएलवीएम एक चलती लक्ष्य के बहुत अधिक रहा है।
जीएचसी को एलएलवीएम के कई संस्करणों का समर्थन करने की कोशिश करने में कुछ परेशानी हुई है। इस बारे में ghc-dev मेलिंग सूची पर एक सक्रिय discussion है।
बीटीडब्ल्यू, वर्तमान में एचएसीएल में एलवीएम बैकएंड है, हास्केल को सीएमएम भाषा में अनुवादित किया गया है (जो मुझे लगता है कि ज्यादातर सीटीजी भाषा से कुछ रजिस्टरों के साथ विस्तारित है), और उपर्युक्त होने के कारण परेशान कठिनाइयों, अनावश्यक अनुकूलन किए जा रहे हैं जो संकलन को धीमा कर देते हैं।
इसके अलावा, ऐतिहासिक रूप से, और वर्तमान में AFAIK, एलएलवीएम प्रोजेक्ट पोर्टेबल प्लेटफ़ॉर्म प्रदान करने से प्राथमिकता नहीं देता है, और कुछ डेवलपर्स ने यह वर्णन किया है कि यह is a compiler IR and not a form of portable assembly language है।
एलएलवीएम आईआर जो आप एक इरादा लक्ष्य के लिए लिखते हैं, वह एक अलग लक्षित लक्ष्य के लिए उपयोगी नहीं हो सकता है। तुलना के लिए, सी-- वेबसाइट वास्तव में इसे पोर्टेबल असेंबली के रूप में संदर्भित करती है। "आप एक पोर्टेबल असेंबली भाषा के साथ बहुत खुश होंगे जो हो सकता है ..." their website से उद्धरण है। उस वेबसाइट में पोर्टेबल कार्यान्वयन कचरा संग्रह और अपवाद हैंडलिंग को आसानी से चलाने के लिए रनटाइम इंटरफ़ेस का भी उल्लेख किया गया है।
तो आप सी के बारे में सोच सकते हैं कि सीईएल और जावा बाइट कोड और एलएलवीएम आईआर के साथ एक समान पोर्टेबल आम जमीन के रूप में थोड़ा सा सामान्य है जो आपके सभी बैकएंडों के लिए एक अभिव्यक्तिपूर्ण सामान्य-ग्राउंड के रूप में है जो एकाधिक लक्ष्यों के लिए सामान्य निम्न स्तर के अनुकूलन को एकीकृत करने की सुविधा प्रदान करता है। एलएलवीएम आईआर भी अतिरिक्त बोनस प्रदान करता है कि एलएलवीएम प्रोजेक्ट उन निम्न स्तर के अनुकूलन को लागू करेगा। ऐसा कहा जा रहा है कि, कुछ तरीकों से एलएलवीएम आईआर को वास्तव में सी से अधिक स्तर माना जा सकता है, उदाहरण के लिए एलएलवीएम आईआर के विभिन्न प्रकार हैं जहां सी में - सबकुछ बस थोड़ा वैक्टर है।
आपको ब्लॉग –
प्राप्त करने की आवश्यकता है, आपको इस तरह के लंबे उद्धरणों के लिए उद्धरण विकल्प का उपयोग करने की आवश्यकता है। – Unknown
संपादन यह दिखाता है कि यह * ब्लॉग से चिपकाया गया था। – ShreevatsaR