[erlang-questions] Drive by mention of new features without explaination

Sverker Eriksson <>
Tue Dec 8 11:37:39 CET 2009

Björn Gustavsson wrote:
> Therefore, I suggest the following change for R13B04:
> The on_load function must return 'ok' if the function is to remain loaded.
> Returning any other value (or causing an exception) will cause the
> module to be unloaded.
> In addition, if the return value is {error,Anything}, a message will
> be written to the error_logger.

Actually load_nif returns {error, ReasonAtom, ReasonText} where the atom 
is "matchable" and the text human readable. Would it be better with 
{error, {Atom,Text}} maybe?

And right now I recommend matching against 'ok' which will get you that 
error tuple in the face, at least when playing in the shell:

on_load() ->
    ok = load_nif("./niftest", 0),

1> niftest:hello().

=ERROR REPORT==== 8-Dec-2009::11:01:37 ===
Error in process <0.35.0> with exit value: 
{{badmatch,{error,load_failed,"Failed to load NIF library ./niftest: 
'./niftest.so: cannot open shared object file: No such file or 

** exception error: undefined function niftest:hello/0

/Sverker, Erlang/OTP Ericsson

More information about the erlang-questions mailing list