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