एरलांग कंपाइलर संकलन समय में अपरिभाषित कार्यों का पता क्यों नहीं लगाता है।एरलांग क्यों करता है: foo() संकलित करें?
अगर मैं test.erl लिखें:
-module(test).
-export([start/0]).
start() ->
erlang:foo().
यह ठीक संकलित करता है।
Eshell V5.6.5 (abort with ^G)
1> c(test).
{ok,test}
2>
लेकिन रनटाइम क्रैश हो जाता है।
2> test:start().
** exception error: undefined function erlang:foo/0
कंपाइलर संकलन के दौरान इस बारे में कोई त्रुटि या चेतावनी क्यों जारी नहीं करता है? इसे निर्यात किए गए कार्यों के बारे में पता होना चाहिए, है ना?
न केवल कोड पथ बल्कि एरलंग क्लस्टर में अन्य नोड्स।कोड को एरलांग वीएम में लोड करने के लिए स्थानीय होना आवश्यक नहीं है और निष्पादित किया गया है। –
मैंने वास्तव में इसके बारे में सोचा नहीं था। एरलांग कुकबुक पर एक त्वरित नज़र यह कैसे बदलता है। http://www.trapexit.org/Remote_Code_Load –
इसके अलावा, आप रनटाइम पर मॉड्यूल को प्रतिस्थापित या अनलोड करने के लिए स्वतंत्र हैं, इसलिए यदि संकलक अब चेक किया गया है, तो भी यह बाद में विफल हो सकता है। – archaelus