2010-09-24 5 views
7

तो नियमित क्लोजर प्रतिलिपि ठीक काम करती है, (read-line) इनपुट एकत्र करती है, फिर इसे echos। lein repl का उपयोग करते हुए, कभी भी किसी इनपुट इनपुट को इकोज़ नहीं करता है, और न ही यह मुझे किसी भी stdin पढ़ने के आदेशों से वापस आने की अनुमति देता है।क्लोजर लीन (रीड-लाइन) stdin woes

मुझे यकीन है कि को में रीबंड करने के साथ कुछ करना है, लेकिन यह सोच रहा था कि कोई कामकाज/ठीक है या नहीं?

धन्यवाद।

उत्तर

5

यह चींटी में एक बग के कारण है; यह उस सबप्रोसेस से stdin स्ट्रीम को रोकता है जो इसे इस्तेमाल होने से लॉन्च करता है। लेकिन टेलनेट चाल काम करना चाहिए क्योंकि लीन प्रतिलिपि सॉकेट प्रतिकृति सर्वर लॉन्च करती है; यह ठीक काम करता है।

+0

धन्यवाद, मैं इसे आज़मा दूंगा, हालांकि यह समस्या वास्तव में कीचड़ में प्रकट होती है, मेरी पोस्ट ने इसे प्रतिलिपि/swank करने के लिए नीचे संकुचित कर दिया, लेकिन टेलनेट मेरे लिए नहीं करेगा। दिलचस्प बात यह है कि केक में यह समस्या मौजूद नहीं है। केक (रीड-लाइन) लटका नहीं है, बल्कि यह खाली स्ट्रिंग के साथ आता है। क्या आप कह रहे हैं कि मैं लीन स्विंक लॉन्च कर सकता हूं और फिर जब यह (रीड-लाइन) और ब्लॉक हो जाता है, तो मैं टेलनेट के माध्यम से कनेक्ट कर सकता हूं और फिर किसी भी स्टडीन सामान के लिए इसका उपयोग कर सकता हूं, जो फिर प्रतिलिपि/swank में दिखाई देगा? –

+0

यह बहुत अजीब है; मुझे समझ में नहीं आता कि टेलनेट इस तरह कैसे असफल हो सकता है। लेकिन मैंने बस एक बगफिक्स को प्रतिलिपि बनाने के लिए धक्का दिया, और अब मेरे लिए प्रतिलिपि में रीड-लाइन काम करता है। मुझे बताएं कि यह आपके लिए नवीनतम 1.4.0-स्नैपशॉट में काम करता है; यदि नहीं, तो कृपया कोई समस्या खोलें या मेलिंग सूची थ्रेड शुरू करें। – technomancy

2

टेलनेट के माध्यम से आरईपीएल से कनेक्ट करें।

$ lein repl 
REPL started; server listening on localhost:63849. 
user=> 
[1]+ Stopped     lein repl 
$ telnet localhost 63849 
Trying ::1... 
Trying 127.0.0.1... 
Connected to localhost. 
Escape character is '^]'. 
user=> (read-line) 
hello 
"hello" 
user=> 
+1

जो यहां काम नहीं करता है, टेलनेट लोकलहोस्ट * पोर्ट * कोई भी प्रतिकृति संकेत नहीं लाता है। मैंने नवीनतम रिलीज और विकास दोनों की कोशिश की है। मैं जेएसई 1.6 का उपयोग कर ओएसएक्स पर हूं, यह महत्वपूर्ण नहीं है, लेकिन यह देखने की कोशिश कर रहा है कि हमारे पास समकक्ष विन्यास है या नहीं। –

+0

उबंटू यहां जेडीके 1.6 के साथ। अपनी/etc/होस्ट फ़ाइल जांचें। क्या स्थानीयहोस्ट 127.0.0.1 तक बाध्य है? क्या आपने लीन प्रक्रिया को सही ढंग से पृष्ठभूमि में रखा था? शायद विभिन्न टर्मिनल विंडोज़ पर लीन और टेलनेट शुरू करने का प्रयास करें? यह विफल होने की सलाह है, मैं आपको 'केक' (http://www.assembla.com/wiki/show/clojure/Getting_Started_with_Cake) देने का सुझाव देता हूं। –

1

यह अब मेरे लिए काम करता है:

(use 'swank.core) 
(with-read-line-support 
    (println "a line from Emacs:" (read-line))) 
: अपने पढ़ने लाइन के साथ पढ़ने के लिए ऑनलाइन समर्थन जो एनएस में है swank.core [स्वांक-clojure 1.4 + के बाद से मेरा मानना ​​है कि] मैक्रो के साथ कॉल लपेटें

फिक्स के लिए ताविस जुड के लिए धन्यवाद।

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

  • कोई संबंधित समस्या नहीं^_^