2011-03-23 11 views
5

में किए गए परिवर्तनों को नहीं उठाता है मेरे पास एक लीनिंग परियोजना स्थापित है। क्लोजर स्रोत फ़ाइलों में से एक में मैंने कुछ रिकॉर्ड परिभाषित किए हैं। मेरा वर्कफ़्लो आम तौर पर emacs शुरू करना और 'लीन swank' आरईपीएल से कनेक्ट करना है। एक बार जब मैं आरईपीएल से कनेक्ट हो जाता हूं तो मैं उपयुक्त नेमस्पेस और सी-सी सी-के फाइल में स्विच करता हूं, इसलिए मैं फ़ाइल में आरईपीएल और कोड के साथ काम करना शुरू कर सकता हूं। हालांकि, अगर मैं उस फ़ाइल में रिकॉर्ड में बदलाव करता हूं और सी-सी सी-के, तो आरपीएल परिवर्तन नहीं उठाता है।क्लोजर आरईपीएल defrecord

तो, जैसा कि यह खड़ा है, हर बार मुझे रिकॉर्ड में बदलाव करने की ज़रूरत है, मुझे लीन स्विंक प्रक्रिया को रोकना है, इसे पुनरारंभ करना है, और इसे emacs से पुनः कनेक्ट करना है। यह बहुत पुराना हो रहा है। मैं क्या खो रहा हूँ? मैंने सी-सी सी-के बजाय सी-सी सी-एल की कोशिश की है, लेकिन यह काम नहीं करता है। मैंने प्रोजेक्ट रूट में 'क्लास' डीआईआर को हटाने का प्रयास किया है, लेकिन यह भी नहीं है।

मैं किसी भी अंतर्दृष्टि या सिफारिशों की सराहना करता हूं।

इसके अलावा, एक तरफ के रूप में, मैं हमेशा नामस्थान में काम कर रहा हूं जहां रिकॉर्ड परिभाषित किए गए हैं।

संपादित करें: मैं वास्तव में defrecord में एक प्रोटोकॉल के कार्यान्वयन को बदल रहा हूँ। एक बार जब मैं इसे बदलता हूं और सी-सी सी-के का उपयोग करके संकलित करता हूं, और आरईपीएल में एक नया रिकॉर्ड बनाता हूं, तो आरईपीएल अभी भी पुराने प्रोटोकॉल कार्यान्वयन का उपयोग कर रहा है।

+0

आप एक में पेस्ट कर सकता है प्रतिलिपि से स्निपेट पुराने मूल्य को दिखा रहा है, इसे बदल रहा है और फिर नया मान। मुझे लगता है कि यह संदर्भ जोड़ने में मदद करेगा ताकि हम –

+0

@ आर्थर की मदद कर सकें: मुझे इसे और स्पष्ट करना चाहिए था। मैं defrecord में एक प्रोटोकॉल के कार्यान्वयन को बदल रहा हूं, और जब मैं यह परिवर्तन करता हूं, तो आरईपीएल अभी भी पुराने कार्यान्वयन का उपयोग कर रहा है - रिकॉर्ड का एक नया उदाहरण बनाने के बाद भी। – mofeeta

+0

मुझे सामान्य लिस्प से केवल स्लिम/स्वैंक पता है। मुझे आश्चर्य है कि आप व्यक्तिगत अपरिवर्तनीय रूपों को संकलित करने के लिए 'सी-सी सी-सी 'का उपयोग नहीं करते हैं। वैसे, वर्तमान फ़ाइल और बिंदु पर आरईपीएल के पैकेज और निर्देशिका को स्विच करने के लिए 'सी-सी ~' है। – Svante

उत्तर

4

मैं एक उदाहरण का उपयोग कर सकता हूं, लेकिन शायद आप रिकॉर्ड के विनाश को बदल रहे हैं और परिवर्तन से पहले किए गए कुछ रिकॉर्डों के उदाहरण देख रहे हैं?

यदि आप प्रतिलिपि से रिकॉर्ड का एक उदाहरण परिभाषित करते हैं, तो defrecord बदलें, प्रतिलिपि पुनः लोड करें, और फिर एक अलग नाम के साथ एक नया बनाओ, क्या आप दोनों प्रतियां और उनके बीच अंतर देख सकते हैं।

मैं अपने प्रोजेक्ट कॉल (use :reload-all ... all the namespaces in my project ...) तो मैं सिर्फ इस फाइल और पुनः लोड कर सकते में एक फ़ाइल होने से भ्रम की स्थिति इस तरह की से बचने की कोशिश फिर से लोड-सब बाहर फेंक वर्ष वर बाइंडिंग आदि