Re: other annotations

Michael Truog <[email protected]>
Newsgroups gmane.comp.lang.erlang.general
Message-ID <[email protected]>
On 1/28/21 4:11 AM, Richard Carlsson wrote:
> Den tors 28 jan. 2021 kl 11:23 skrev Loïc Hoguin <[email protected] 
> <mailto:[email protected]>>:
>
>     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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.