[erlang-questions] -pidname( <atom> ) Was: Why we need a -module() attribute?

Joe Armstrong erlang@REDACTED
Fri Feb 26 16:21:23 CET 2016

Yes !

I suggested something similar years ago.

I think there should be a process declaration (analogous) to -module(Name)

Something like


The main reason is linguistic. We cannot talk about 'the process foo'
or 'a foo process'.

Processes don't have names so we can't about them, instead we have to
use a linguistic circumlocution. Instead of saying " a foo process" we
have to say "a process started by evaluating spawn(foo, ....)"

I suggest two alternatives:


    start(Args) -> ... end



    start_one(Args) -> ...

The primitive spawn should be removed and replaced with

    Pid = create_process foo(Args)   which would  equivalent to
spawn(foo, start, Args)

   register should be removed and replaced with

     create_global foo(Args) which would be equivalent to

     register(foo, spawn(foo, start_one, Args))All

All this can be done with simple preprocessing :-)



On Fri, Feb 26, 2016 at 7:02 AM, Valentin Micic <valentin@REDACTED> wrote:
> Almost all process registrations should be local to the module that
> registers
> them.  I proposed
>      -pidname(<atom>).
> for declaring a module-locale atomic variable to hold pids.  This would be
> both
> safer than the global registry and more efficient.  The global registry
> would
> remain for those things that genuinely need to be global.
> Presuming that the module name is , say,  test,  how is:
> -pidname( test )
> different from:
> register( ?MODULE, self() )?
> Also, how would you run multiple instances of the same module within the
> same run-time?
> Your proposal may appear to solve one problem (that is, if one chose to call
> it a problem), but appears to introduce at least one more.
> V/
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions

More information about the erlang-questions mailing list