2014-07-14 6 views
18

cabal repl लाइब्रेरी को डीबग करने के लिए काफी उपयोगी है, हालांकि ghci में सभी संकुल छिपाए जाएंगे जो कैबल पैकेज की निर्भरता नहीं हैं। repl के लिए cabal build के लिए यह निश्चित रूप से अच्छी बात है, इसका मतलब है कि मैं एक त्वरित परीक्षण के लिए एक असंबंधित पैकेज से कुछ लोड नहीं कर सकता।कैबल प्रतिलिपि के माध्यम से आह्वान करते समय ghci को अतिरिक्त पैकेज लोड करने का कोई आसान तरीका है?

मैं कर सकते हैं:set -package जारी करके किसी भी पैकेज का उपयोग कर सकते हैं, लेकिन वह pacakge मैं पर काम कर रहा हूँ से सभी मॉड्यूल उतारना होगा, cabal repl की बात को पराजित किया।

बस स्थापित किए गए संकुल को लोड करने का एक अच्छा तरीका क्या है, लेकिन मेरी लाइब्रेरी पर निर्भरता के रूप में नहीं चाहते हैं?

उत्तर

23
cabal repl --ghc-option='-package xyz' 

इस पैकेज आप से cabal repl बुला रहे हैं और पैकेज xyz लोड होगा।

ऐसा करने के लिए है कि तथ्य यह है, यानी के बाद जब आप आरईपीएल में पहले से ही कर रहे हैं और एक अन्य पैकेज से एक अतिरिक्त सहायक मॉड्यूल लोड करना चाहते हैं:

GHCi> :set -package xyz 
GHCi> :m +XYZ.Module.You.Suddenly.Need 
+1

यद्यपि आप स्थानीय पैकेज के लिए एक पथ निर्दिष्ट किया जा सका, या एक गिट यूआरएल? – SwiftsNamesake

2

एक तरीका (हालांकि इष्टतम नहीं) आपके कैबेल फ़ाइल को संशोधित करना होगा और मैन्युअल/झूठा ध्वज extra_dependency जोड़ना होगा, एक सशर्त build-depends अनुभाग में आवश्यक निर्भरताओं को जोड़ें।

वास्तव में समस्या यह है कि आपको hidden लाइब्रेरी तक पहुंचने के लिए प्रत्येक को कैबल फ़ाइल मैन्युअल रूप से संपादित करने की आवश्यकता है, लेकिन कम से कम, आप लाइब्रेरी उन पुस्तकालयों पर आधिकारिक रूप से निर्भर नहीं हैं।

अन्यथा, आप अपने सैंडबॉक्स कैश को देखने के लिए मॉड्यूल पथ सेट करने में सक्षम हो सकते हैं।

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

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