2012-05-07 9 views
5

मैं ghc 7.4 में अपग्रेड करने के बाद, मुझे विभिन्न स्क्रिप्ट से import System को हटाना पड़ा, लेकिन इससे उन्हें जीएचसी 6.0 से रनहास्केल के साथ असंगत बना दिया गया, जो अभी भी कई वातावरणों में उपयोग किया जाता है।रनहास्केल - ghc 7.4 और 6 के साथ संगत स्क्रिप्ट कैसे बनाएं?

क्या दोनों संस्करणों का समर्थन करने का कोई तरीका है?

संदेश मैं जब मैं GHC 7.4 में import System साथ एक स्क्रिप्ट चलाने:

% ./script.hs 
    Could not find module `System' 
    It is a member of the hidden package `haskell98-2.0.0.1'. 
    Use -v to see a list of the files searched for. 
+3

जीएचसी 6.0 अभी भी क्यों उपयोग किया जाता है? यह 2003 से है। –

+0

मैं कहूंगा, '{- # भाषा सीपीपी # -}' के साथ [सामान्य मैनिप्ल्यूशंस] (http://hackage.haskell.org/packages/archive/containers/0.5.0.0/doc/html /src/Data-Graph.html), लेकिन मुझे नहीं लगता कि जीएचसी-6.0 ने इसे लिखने का तरीका समर्थित किया है :) ध्यान दें कि यहां तक ​​कि सबसे हालिया गले भी पदानुक्रमित नामकरण योजना का समर्थन करते हैं। – applicative

उत्तर

5

System मॉड्यूल एक पुराने हास्केल-98 अनुकूलता मॉड्यूल था, और इसकी सभी कार्यक्षमता System.Cmd, System.Environment और System.Exit मॉड्यूल है, जो सभी के बाद से कम से कम रूप में वापस दूर GHC 5.04 के रूप में उपलब्ध किया गया है में पाया जा सकता है, तो यह होना चाहिए इसके बजाय उन मॉड्यूल के कुछ उचित सबसेट का उपयोग करने के लिए अपने आयात विवरणों को ठीक करने का एक साधारण मामला।

+0

मैं 'सिस्टम' आयात करने के लिए 'System.Process' का उपयोग कर रहा था; 'System.Cmd' संगत तरीका है, धन्यवाद! – Penz

6

System मॉड्यूल एक पदावनत गैर श्रेणीबद्ध हास्केल 98 मॉड्यूल है, आपको प्रासंगिक पदानुक्रमित मॉड्यूल (जैसे System.Environment, System.IO, और System.Exit आयात करना चाहिए; पूरी सूची के लिए base package देखें) आपको इसकी आवश्यकता है। इसे पूरा करने का सबसे आसान तरीका शायद System आयात को निकालना होगा, और संकलक त्रुटियों से आपको कौन सी परिभाषाओं की आवश्यकता है, यह जानने के लिए Hoogle का उपयोग करें।

पुराने जीएचसी में, हास्केल 98 मॉड्यूल का उपयोग पदानुक्रमित मॉड्यूल के साथ किया जा सकता है, लेकिन यह अब संभव नहीं है। आयात को बदलना अपेक्षाकृत आसान होना चाहिए, और आपके कार्यक्रम को नवीनतम हास्केल 2010 मानक के साथ अद्यतित कर देगा।

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