[erlang-questions] Somebody please correct my -callback understanding
Damian Dobroczyński
qoocku@REDACTED
Wed Dec 14 19:52:17 CET 2011
Dnia śro, 14 gru 2011, 19:38:33 Daniel Luna pisze:
> 2011/12/14 Damian Dobroczyński <qoocku@REDACTED>:
>> Wow, It's a miracle! I've just found the answer and (what I understand)
>> a bug. IT IS "-behavior (...)" which is perfectly understood by the
>> compiler but not by by the dialyzer! Dialyzer expects "-behaviour (...)"
>> (note the different spelling).
>
> This is not a bug. Erlang has always used 'behaviour' (and
> 'behaviour_info'). See
> http://en.wikipedia.org/wiki/American_and_British_English_spelling_differences#-our.2C_-or
>
> As a side note, Erlang allows for any user defined elements starting with -.
>
> If you for example add the following line to your code
>
> -my_own_local_thing(whatever_data).
>
> then this is fully legal Erlang, and its effect is seen if you run
> Module:module_info()
>
> [...
> {attributes,[{behaviour,[supervisor]},
> {my_own_local_thing,[whatever_data]}]},
> ...]
>
> Cheers,
>
> Daniel
>From Erlang Reference Manual:
"""
-behaviour(Behaviour).
The atom Behaviour gives the name of the behaviour, which can be a user
defined behaviour or one of the OTP standard behaviours gen_server,
gen_fsm, gen_event or supervisor.
The spelling behavior is also accepted."""" <--- HERE
It's a bug. Besides as I mentioned, the compiler perfectly understand
the attribute "-behavior" giving me warnings about missing callbacks.
So, compiler understand and behave correctly with "-behavior" -
dialyzer don't.
(Unfortunately (or maybe not) my code if full of "behaviors" ;) just
because it is accepted and understood not even deprecated).
-- D.
More information about the erlang-questions
mailing list