2015-09-21 2 views
6

के साथ विभेदक दस्तावेज़ीकरण यदि मैं अपनी लाइब्रेरी पर cabal build करता हूं, तो अगली बार जब मैं cabal build चलाता हूं, तो मुझे केवल परिवर्तनों से प्रभावित फ़ाइलों को पुन: संकलित करना होगा। मुझे cabal haddock कमांड के साथ एक ही व्यवहार नहीं मिल रहा है: जब मैं फ़ाइल को बदलने के बाद इसे चलाता हूं, तो कैबल/हैडॉक पिछले सभी कामों को फेंकने और खरोंच से शुरू होता है। यह बल्कि समय लेने वाला है; दस्तावेज़ीकरण के लिए अलग-अलग अपडेट प्राप्त करने का कोई तरीका है?हैडॉक

दस्तावेज उत्पन्न करने के लिए यहां dump of the command cabal issues है।

+0

मुझे याद नहीं है: क्या आप किसी ऐसे चीज़ से लिंक करते हैं जो मौजूद नहीं है? '' MyModule'' का उपयोग करने की तरह और आपके पास 'MyModule' उपलब्ध नहीं है। क्योंकि अगर यह केवल एक चेतावनी देता है और दौड़ना जारी रखता है तो व्यवहार की आवश्यकता होती है: मौजूदा फ़ाइलों या फ़ाइलों के अतिरिक्त में कोई भी परिवर्तन अन्य मॉड्यूल के दस्तावेज़ों के आउटपुट को संशोधित कर सकता है। – Bakuriu

+0

मुझे विश्वास है कि वैश्विक सूचकांक पृष्ठों का पुनर्निर्माण करने में बहुत समय व्यतीत होता है। यदि वे पृष्ठ नहीं बनाए गए थे तो बहुत समय बचाया जा सकता था। कैडल के साथ -v ध्वज का उपयोग यह देखने के लिए करें कि क्या हैडॉक कमांड निष्पादित किए जा रहे हैं। – ErikR

+0

@ बाकुरीयू अगर मैं एक फ़ाइल के शीर्ष पर एक यादृच्छिक 'आयात मॉड्यूलडोज़ोटोटिक्स' जोड़ता हूं, हैडॉक शॉर्ट सर्किट और किसी दस्तावेज़ को आउटपुट नहीं करता है। अगर मैं किसी अन्य प्रकार की संकलन त्रुटि (उदाहरण के लिए एक वाक्यविन्यास त्रुटि) को मजबूर करता हूं, तो हैडॉक त्रुटि के साथ मॉड्यूल तक दस्तावेज आउटपुट करता है, लेकिन फिर छोटे सर्किट और शेष मॉड्यूल के लिए आउटपुट दस्तावेज नहीं करता है। – crockeea

उत्तर

1

processModules प्रलेखन कहते हैं:

GHC एपीआई का उपयोग कर और जिसके परिणामस्वरूप वाक्य रचना के पेड़ प्रसंस्करण मॉड्यूल की सूची typechecking द्वारा इंटरफेस और एक लिंक माहौल बनाएँ।

और यह haddock का मूल कार्य है। तो एटीएम उत्तर आपके प्रश्न नहीं है।

cabal build बिल्कुल cabal haddock मदद नहीं करता है, के रूप में विभिन्न मापदंडों के साथ haddock प्रकार-जांच मॉड्यूल (जैसे __HADDOCK__ सीपीपी चर सक्षम)

बनाना विश्वसनीय वृद्धिशील हेडेक पीढ़ी, कठिन है कोड के रूप में निर्भरता ग्राफ में बाद में कर सकते हैं उस बिंदु से पहले मॉड्यूल दस्तावेज को बदलें: विशेष रूप से उदाहरण सूची। शायद कोई मॉड्यूल इंटरफेस डंप कर सकता है।

देख रहे हैं at the code of processModules पहला कदम ऐसा कुछ है जो वृद्धिशील हो सकता है, बाकी वैश्विक जानकारी का उपयोग कर रहा है।

अधिकतम i.e. --haddock-options=--verbosity=2 पर वर्बोसिटी चालू करने का प्रयास करें और जांचें कि Creating interfaces... और Attaching instances... के बीच कितना समय व्यतीत किया गया है।

+0

'कैबल हैडॉक - हैडॉक-विकल्प = - verbosity = 2'" इंटरफेस बनाने "या" संलग्न उदाहरण "के बारे में कुछ भी प्रिंट नहीं करता है। – crockeea

+0

@ एरिक, ऐसा लगता है कि आपको 'हैडॉक' वर्बोज आउटपुट प्राप्त करने के लिए 'कैबल' को '-v3' देना होगा। ओटीओएच ऐसा लगता है कि ज्यादातर समय 'इंटरफेस बनाना ...' और 'उदाहरणों को ध्यान में रखते हुए' के ​​बीच में खर्च किया जाता है। शायद एक अनुकूलन अवसर है। – phadej

+0

"अटैचिंग इंस्टेंस" और "इंटरफेस बनाना" दोनों मूल रूप से तात्कालिक हैं, लेकिन "मॉड्यूल जांचना" चरण प्रत्येक मॉड्यूल के लिए एक उल्लेखनीय समय लेता है। – crockeea

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