2010-08-25 7 views
6

कोई भी जीआईएल-कम एलएलवीएम-आधारित भाषा है, जो मुख्य रूप से जेआईटी-निष्पादन के लिए लक्षित है जो फ्लाई पर कोड के भाग को फिर से लोड करने की अनुमति देता है?एलएलवीएम-आधारित भाषा की तलाश है जो द्विआधारी ऑन-द-फ्लाई

1 वर्ग को फिर से संकलित करने की तरह, और पूरे कार्यक्रम को रोक दिए बिना इसे पुनः लोड करें।

किसी ने भी कोशिश की?

क्लैंग के साथ ऐसा करने का कोई मौका (निश्चित रूप से, डेवलपर्स सावधानी, प्रतिबंध और मैन्युअल राज्य हैंडलिंग के बड़े सौदे के साथ)?

उत्तर

2

मुझे लगता है कि यह एक डायनामाइट विचार है, और एक विशेषता है जिसे मैं पसंद करूंगा! क्या आपने इस बारे में कोई विचार दिया है कि आप इस सुविधा के साथ इंटरफ़ेस कैसे करना चाहते हैं?

obj1 = Foo() 
compiler.Recompile(Foo, '/some/path/myapp/newsrc/foo.blah'); 
obj2 = Foo() 
// Would this be True? 
type(obj1) == type(obj2) 

मुझे लगता है कि आप मौजूदा उदाहरणों को पुन: संकलित द्वारा अपरिवर्तित रहने की उम्मीद करते हैं? ऐसा लगता है कि यह कार्यों के साथ आसान होगा, जब तक वे एक ही प्रोटोटाइप रखते थे, लेकिन कक्षाओं के साथ ऐसा करना ऐसा लगता है कि यह गन्दा हो जाएगा।

इसके अलावा, थ्रेडिंग के बारे में क्या करना है?

Thread.start(wait 1; bar();); // bar is a function 
compiler.Recompile(bar, '/some/path/myapp/newsrc/bar.blah'); 

आइए कहें कि हमारे धागे में हम पुन: संकलन के दौरान "बार" को कॉल करना शुरू करते हैं। क्या कॉल ब्लॉक तब तक किया जाता है जब तक कि पुनर्मूल्यांकन नहीं किया जाता है और फिर नया फ़ंक्शन कॉल करता है? संकलन पूरा होने तक पुराना फ़ंक्शन अभी भी मौजूद है? क्या होगा अगर हमारे पास एक फ़ंक्शन पॉइंटर है, तो पुन: संकलन के बाद, यह कहां इंगित करता है? मूल कार्य या नए के लिए?

क्या किसी के पास कोई विचार है कि इसे कैसे आगे बढ़ने के तरीके में लागू किया जा सकता है?

+0

मुझे ऑब्जेक्ट्स के साथ ऐसा करने जा रहा है। विचार यह है कि जब हम अद्यतन करने योग्य वस्तुओं में कोई कोड नहीं चल रहा है तो हम अपडेट करते हैं। फिर हम सभी उदाहरणों को क्रमबद्ध करते हैं, और अद्यतन करते हैं और रिलिकिंक करते हैं। फिर सभी उदाहरणों को फिर से बनाएं, सभी पॉइंटर्स को deserialize और अद्यतन करें। वोला, केक का टुकड़ा :-) – BarsMonster

0

हम्म, मेरे सिर के ऊपर से कुछ भी नहीं सोच सकता। एकमात्र प्रमुख उत्पाद जिसे मैं सोच सकता हूं JRebel है, लेकिन यह जावा के लिए है।

0

जाहिर है, यह अभी तक मौजूद नहीं है।

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

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