[erlang-questions] [ANN] Annotations 0.0.2

Edmond Begumisa ebegumisa@REDACTED
Sat Feb 4 17:36:05 CET 2012


Excellent work :)

This is really nice to use with the OTP Event Tracer, which I use a lot  
with macros. Annotations are much cleaner.

- Edmond -

On Thu, 02 Feb 2012 07:37:37 +1100, Tim Watson <watson.timothy@REDACTED>  
wrote:

> Still in a very early state, https:://github.com/hyperthunk/annotations  
> now
> supports generating additional functions as well as instrumenting  
> existing
> (i.e., annotated) ones with before/after/around. As an example of how to
> use this, I've written up a sample application that can be used to  
> generate
> tedious/boilerplate wrapper functions:
> https://github.com/hyperthunk/delegate.
>
> A typical use of delegate is to remove the need to hand code the named
> 'wrapper' functions for this AST builder that produces a generic
> representation of applying a 'binary operator':
>
> -delegate([
>     %% pass the generated/target function name
>     %% in front of the input arguments
>     {args, ['$T', '$I']},
>     %% let the generated function(s) have a different arity
>     {arity, 2},
>     %% generate functions with/for each of these names...
>     {delegate, [
>            "eq", "gt",
>            "gteq", "lt",
>            "lteq", "like",
>            "contains", "starts_with",
>            "ends_with", "matches", "path_exists"
>     ]}]).
> binop(Op, Axis, {{_,_,_}, _}=Literal) ->
>     binop(Op, Axis, {literal, Literal});
> binop(Op, Axis, Literal) when is_integer(Literal) orelse
>                               is_float(Literal) orelse
>                               is_list(Literal) orelse
>                               is_record(Literal, semver) ->
>     binop(Op, Axis, {literal, Literal});
> binop(Op, Axis, {literal, _}=Literal) ->
>     {Axis, {operator, Op}, Literal}.
>
>
> None of this would be possible without the awesome parse_trans library,  
> so
> a big thank you is due to Ulf for that really killer tool! Roadmap for
> 0.0.3 is mainly runtime module/code changes via parse_trans_mod.


-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/



More information about the erlang-questions mailing list