2013-08-06 5 views
16

क्या पुस्तकालय बनाने के दौरान सभी मॉड्यूल का पर्दाफाश करने के लिए Cabal बताना संभव है?कैबल - पुस्तकालय बनाने के दौरान सभी मॉड्यूल का पर्दाफाश करें

अभी मुझे Exposed-modules कैबल कॉन्फ़िगरेशन फ़ाइल अनुभाग में मॉड्यूल की बहुत लंबी सूची प्रदान करनी है।

+0

क्या आप पूछ रहे हैं कि कैबल प्रोजेक्ट में मॉड्यूल को 'कैबल' फ़ाइल में उल्लेख किए बिना कैसे शामिल किया जाए? – Heatsink

+0

@Heatsink, नहीं - यदि आप कैबेल के साथ लाइब्रेरी संकलित कर रहे हैं तो आपको '<...> .cabal' कॉन्फ़िगरेशन फ़ाइल लिखनी होगी। इस फ़ाइल में आप अनुभाग 'एक्सपोज़ड-मॉड्यूल' प्रदान करने के लिए उत्सुक हैं जिसमें आपको ** प्रत्येक ** मॉड्यूल को सूचीबद्ध करना है जिसे आप बेनकाब करना चाहते हैं। मैं ** सभी ** मॉड्यूल का पर्दाफाश करना चाहता हूं। –

+0

यह मेरे प्रश्न का उत्तर नहीं देता है। प्रत्येक मॉड्यूल को '.abal' फ़ाइल में सूचीबद्ध होना चाहिए। आंतरिक मॉड्यूल भी 'अन्य मॉड्यूल' में सूचीबद्ध होना चाहिए। क्या आप सभी मॉड्यूल सूचीबद्ध करने के वैकल्पिक तरीकों के लिए पूछ रहे हैं, या आप इसे सूचीबद्ध किए बिना मॉड्यूल का उपयोग करने के तरीकों के बारे में पूछ रहे हैं? – Heatsink

उत्तर

6

आधुनिक उत्तर stack + hpack स्पष्ट कैबल कॉन्फ़िगरेशन का उपयोग करने के बजाय है। यह स्वचालित रूप से पैकेज मॉड्यूल का पर्दाफाश कर सकता है और कई अन्य संवर्द्धन प्रदान करता है।

8

आपको कैबल कॉन्फ़िगरेशन फ़ाइल में सभी मॉड्यूल सूचीबद्ध करना होगा। आपके मामले में, आप exposed-module: के बाद मॉड्यूल की सूची डाल दें। मॉड्यूल की सूची लिखने का कोई आसान तरीका नहीं है।

कैबल स्वचालित रूप से उन फ़ाइलों को नहीं ढूंढ सकता जो निष्पादन योग्य या पुस्तकालय का हिस्सा हैं, इसलिए यह कॉन्फ़िगरेशन फ़ाइल में मॉड्यूल की सूची पर निर्भर करता है। जीएचसी के विपरीत, कैबल को स्रोत कोड में आयात विवरणों के आधार पर मॉड्यूल नहीं मिल सकते हैं। यदि आप प्रत्येक मॉड्यूल की सूची नहीं देते हैं, तो आप प्रोजेक्ट बनाने में सक्षम हो सकते हैं (क्योंकि जीएचसी स्रोत फाइलें पा सकता है), लेकिन cabal sdist जैसे अन्य कमांड सूचीबद्ध स्रोत फ़ाइलों तक नहीं पहुंच पाएंगे।

+8

यदि आप गैर-कैबलाइज्ड स्रोत पेड़ पर 'कैबल इनिट' चलाते हैं, तो यह 'खुला- मॉड्यूल 'स्वचालित रूप से, लेकिन आपको बाद में मैन्युअल रूप से फ़ील्ड को अपडेट करने की आवश्यकता होगी। –

+12

@ मिखाइलग्लुसेनकोव यह बहुत हास्यास्पद है। यह "init" (जो शायद कोई भी कभी भी उपयोग नहीं करता) पर आयात विवरणों को पार्स कर सकता है, लेकिन यह किसी भी अन्य कमांड के लिए ऐसा नहीं कर सकता है। यह निश्चित रूप से एक मुद्दा है। –

+2

क्या कोई बाहरी उपकरण है जो 'खुला-मॉड्यूल' अपडेट कर सकता है? या इसे 'ढेर' कर सकते हैं? –

संबंधित मुद्दे