2016-03-20 14 views
6

के साथ जल्दबाजी/हप्लेग्राउंड का उपयोग कैसे करें मुझे टूलेल के साथ हास्केल, भाषा के साथ कुछ परिचितता है, लेकिन टूलचैन के साथ इतना कुछ नहीं है। (मैंने कैबल और स्टैक अस्तित्व से पहले हास्केल के साथ खेला।) मुझे बताया गया है कि स्टैक वह उपकरण है जिसका उपयोग मुझे हास्केल परियोजनाओं के प्रबंधन के लिए करना चाहिए। मैं जल्दबाजी लाइब्रेरी सीखने की कोशिश कर रहा हूं, और मैंने कोशिश की है कि पहले ट्यूटोरियल पर मैं stymied हो रहा है, क्योंकि मैं hplayground स्थापित नहीं कर सकता। मैंने एक स्टैक प्रोजेक्ट बनाया; मेरी stack.yamlस्टैक

extra-deps: 
- ghc-simple-0.3 
- haste-compiler-0.5.3 
- shellmate-0.2.3 
- haste-perch-0.1.0.9 
- hplayground-0.1.3.1 

है और मेरी .cabal फ़ाइल में सूचीबद्ध hplayground है निर्माण निर्भर करता है। लेकिन जब मैं स्टैक बिल्ड चलाता हूं, तो मुझे ये त्रुटियां मिलती हैं:

Configuring haste-perch-0.1.0.9... 
Building haste-perch-0.1.0.9... 
Preprocessing library haste-perch-0.1.0.9... 

Haste/Perch.hs:17:15: Warning: 
    -XOverlappingInstances is deprecated: instead use per-instance pragmas OVERLAPPING/OVERLAPPABLE/OVERLAPS 

Haste/App/Perch.hs:18:15: Warning: 
    -XOverlappingInstances is deprecated: instead use per-instance pragmas OVERLAPPING/OVERLAPPABLE/OVERLAPS 
[1 of 2] Compiling Haste.App.Perch (Haste/App/Perch.hs, .stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/Haste/App/Perch.o) 

Haste/App/Perch.hs:61:15: Not in scope: ‘newTextElem’ 

Haste/App/Perch.hs:71:9: 
    Not in scope: ‘setAttr’ 
    Perhaps you meant ‘jsSetAttr’ (imported from Haste.App) 

Haste/App/Perch.hs:76:15: 
    Not in scope: ‘newElem’ 
    Perhaps you meant one of these: 
    ‘nelem’ (line 75), ‘notElem’ (imported from Prelude) 

और इसी तरह की सभी त्रुटियां। क्या मैं गलत कर रहा हूँ पर कोई विचार?

अधिक व्यापक रूप से: उठने के लिए तेज़, आसान तरीका क्या है और हास्केल टूलचेन के साथ अनुभव नहीं किया गया है?

उत्तर

2

जल्दबाजी की घटना एपीआई 0.4 और 0.5 के बीच श्रृंखला मरम्मत कर ली, और HPlayground 0.4 पर अब भी है। यदि आप इसका उपयोग करना चाहते हैं, तो दुर्भाग्यवश दुर्भाग्य से 0.4 तक गिरना होगा जब तक कि हिमलेग्राउंड 0.5 के लिए पैच न हो जाए।

सामान्य रूप से प्रारंभ करने के लिए, आपको pre-build binaries इंस्टॉल करना चाहिए यदि आप एक गैर-लिनक्स प्लेटफॉर्म पर हैं (और शायद यदि आप लिनक्स प्लेटफ़ॉर्म पर भी हैं, तो आप मैन-पेज और अन्य niceties प्राप्त करते हैं); निर्माण प्रक्रिया मुश्किल हो सकती है और त्रुटियों के लिए प्रवण है।

एक बार ऐसा करने के बाद, आप docs and resources पृष्ठ को haste-lang.org पर देख सकते हैं, जिसमें एपीआई दस्तावेज़, वीडियो ट्यूटोरियल, स्रोत कोड उदाहरण और अधिक के लिंक शामिल हैं।

3

एक बार जब आप GHC स्थापित किया है और कबाल स्थापित आप के रूप में (http://haste-lang.org/downloads/ से) इस प्रकार जल्दबाजी संकलक स्थापित करना होगा: "hastec" (जल्दबाजी संकलक) के लिए उपलब्ध होना चाहिए

$ cabal update 
$ cabal install haste-compiler 
$ haste-boot 

यह करने के बाद हैस्सेल को जावास्क्रिप्ट में संकलित करने के लिए उपयोग करें। इसके अलावा, "जल्दबाजी-कैबल" (कैबल का जल्द संस्करण) आपके कार्यक्रमों में उपयोग के लिए जल्दबाजी जैसे पेस्टरी जैसे पुस्तकालयों को स्थापित करने के लिए उपलब्ध होना चाहिए।

जल्दबाजी के लिए रीडेमे फ़ाइल (https://github.com/agocorona/haste-perch) में जल्दबाजी-पेच स्थापित करने के लिए निर्देश शामिल हैं। वे निर्देश जल्दबाजी-स्थापित करने के लिए "जल्दबाजी-inst" का उपयोग करते हैं लेकिन "जल्दबाजी-inst" अप्रचलित है (और अब मौजूद नहीं है)। जल्दबाजी-बसेरा स्थापित करने के लिए नीचे दिए गए संशोधित निर्देशों का उपयोग करें:

>git clone http://github.com/agocorona/haste-perch.git 
>cd haste-perch 
>haste-cabal install 

मैं जल्दबाजी-बसेरा स्थापित करने और सफलतापूर्वक उदाहरण है कि यह साथ आया था का निर्माण करने में सक्षम था।

मैंने हप्लेग्राउंड बनाने की भी कोशिश की लेकिन संकलन समस्याओं में भाग गया जो ऐसा लगता था कि वे कोड के कारण जल्द से जल्द 0.5 का उपयोग करने के लिए अपडेट नहीं किए गए थे। उदाहरण के लिए, "onclick" अब और नहीं जल्दबाजी के पिछले संस्करणों लेकिन में एक वैध पहचानकर्ता था:

src/Haste/HPlay/View.hs:820:45: 
    Not in scope: data constructor ‘OnClick’ 
    Perhaps you meant ‘Click’ (line 1017)