[erlang-questions] Erlang/OTP R15B has been released

Damian Dobroczyński qoocku@REDACTED
Thu Dec 15 10:52:15 CET 2011


W dniu 15.12.2011 10:21, Lukas Larsson pisze:
> OTP-9621 is the ticket number relating to this change.
> 
> OTP-9621  Add '-callback' attributes in stdlib's behaviours
> 
> 	      Replace the behaviour_info(callbacks) export in stdlib's
> 	      behaviours with -callback' attributes for all the callbacks.
> 	      Update the documentation with information on the callback
> 	      attribute Automatically generate 'behaviour_info' function
> 	      from '-callback' attributes
> 
> 	      'behaviour_info(callbacks)' is a special function that is
> 	      defined in a module which describes a behaviour and returns a
> 	      list of its callbacks.
> 
> 	      This function is now automatically generated using the
> 	      '-callback' specs. An error is returned by lint if user
> 	      defines both '-callback' attributes and the behaviour_info/1
> 	      function. If no type info is needed for a callback use a
> 	      generic spec for it. Add '-callback' attribute to language
> 	      syntax
> 
> 	      Behaviours may define specs for their callbacks using the
> 	      familiar spec syntax, replacing the '-spec' keyword with
> 	      '-callback'. Simple lint checks are performed to ensure that
> 	      no callbacks are defined twice and all types referred are
> 	      declared.
> 
> 	      These attributes can be then used by tools to provide
> 	      documentation to the behaviour or find discrepancies in the
> 	      callback definitions in the callback module.
> 
> 	      Add callback specs into 'application' module in kernel Add
> 	      callback specs to tftp module following internet
> 	      documentation Add callback specs to inets_service module
> 	      following possibly deprecated comments
> 
> 
> Lukas
> 
> On Thu, Dec 15, 2011 at 8:00 AM, Jack Moffitt <jack@REDACTED> wrote:
>>
>>> PS. It's of course not a big deal, but it's a bit of a pity that behaviour
>>> callbacks was not listed in the R15B release highlights... It's a language
>>> addition after all, which had to wait for quite a long time in order to be
>>> included in a major instead of some minor release.
>>
>> I can't seem to find any mention of it in the README either. Would you
>> mind pointing us to some documentation of this new feature? It sounds
>> interesting.
>>
>> jack.

Just be aware of dialyzer "feature" which is it recognizes only
"-behavioUr" attribute spelling not "-behaviOr" - if you have some of
the latter you end up cleaning your code from "-behavior" replacing with
"-behaviour" or manually fix the code in dialyzer_behaviors.erl file,
line 78 and recompile.

-- D.



More information about the erlang-questions mailing list