other annotations

Michael Truog mjtruog@REDACTED
Thu Jan 28 20:52:11 CET 2021


On 1/28/21 4:11 AM, Richard Carlsson wrote:
> Den tors 28 jan. 2021 kl 11:23 skrev Loïc Hoguin <essen@REDACTED 
> <mailto:essen@REDACTED>>:
>
>     By the way, if annotations are going to be a thing, it might be a
>     good
>     idea to make them more general so we can annotate other things,
>     such as
>     "pure function" / "side effect function" or "local send" / "remote
>     send". I would personally love to easily identify message sends to
>     remote nodes.
>
>
> These are also interesting things - maybe not inline but perhaps as 
> keywords on function definitions; we had some ideas about marking 
> functions as pure (for guards) back in the HiPE project, for example. 
> Like any kind of strict typing, you then get into the question about 
> such functions in other modules: If they can only be used locally, the 
> feature is perhaps too limited to be worth it. To put them in other 
> modules, you'd probably need to do name mangling like e.g. when 
> linking C++, to ensure both caller and callee are following the 
> conventions, and that might get too messy. I don't know anyone who has 
> prototyped that, though, so it's not clear how it would look and feel.
>
I added a description at https://bugs.erlang.org/browse/ERL-373 for 
using pure/impure instead of spec for Erlang type specifications (to 
provide the concept of a function type).  Adding it as something for 
dialyzer to evaluate would be helpful.  I don't believe it is very 
important to make it easy to create your own guard functions, but this 
could be a step in that direction.

Best Regards,
Michael
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20210128/24d138e1/attachment.htm>


More information about the erlang-questions mailing list