मुझे लगता है कि यह एक डायनामाइट विचार है, और एक विशेषता है जिसे मैं पसंद करूंगा! क्या आपने इस बारे में कोई विचार दिया है कि आप इस सुविधा के साथ इंटरफ़ेस कैसे करना चाहते हैं?
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');
आइए कहें कि हमारे धागे में हम पुन: संकलन के दौरान "बार" को कॉल करना शुरू करते हैं। क्या कॉल ब्लॉक तब तक किया जाता है जब तक कि पुनर्मूल्यांकन नहीं किया जाता है और फिर नया फ़ंक्शन कॉल करता है? संकलन पूरा होने तक पुराना फ़ंक्शन अभी भी मौजूद है? क्या होगा अगर हमारे पास एक फ़ंक्शन पॉइंटर है, तो पुन: संकलन के बाद, यह कहां इंगित करता है? मूल कार्य या नए के लिए?
क्या किसी के पास कोई विचार है कि इसे कैसे आगे बढ़ने के तरीके में लागू किया जा सकता है?
स्रोत
2010-08-31 01:54:34
मुझे ऑब्जेक्ट्स के साथ ऐसा करने जा रहा है। विचार यह है कि जब हम अद्यतन करने योग्य वस्तुओं में कोई कोड नहीं चल रहा है तो हम अपडेट करते हैं। फिर हम सभी उदाहरणों को क्रमबद्ध करते हैं, और अद्यतन करते हैं और रिलिकिंक करते हैं। फिर सभी उदाहरणों को फिर से बनाएं, सभी पॉइंटर्स को deserialize और अद्यतन करें। वोला, केक का टुकड़ा :-) – BarsMonster