[erlang-questions] OTP-9649 and further changes

Björn Gustavsson bgustavsson@REDACTED
Tue Jan 24 08:22:20 CET 2012

2012/1/24 Yurii Rashkovskii <yrashk@REDACTED>:
> Björn,
> Is there any way tuple module calls can be separated from parametrized
> modules and subsequently documented and become part of standard
> Erlang?


The problem with the current implementation of "tuple modules"
is that the M in apply(M, F, A) and M:F(...) has a strange type, i.e. M can
be either an atom or a tuple. Unless we implement parameterized modules,
we want M to be only an atom. (There is a run-time cost in the
implementation of apply/3 to allow parameterized modules/"tuple modules",
and parameterized modules prevented an optimization I wanted to do in the
compiler for R15B.)

We might consider an alternative implementation of "tuple modules"
that does not use apply(M, F, A) or M:F(...), using either new BIFs or new
syntax. (Example: tuple_module_apply(M, F, A) could behave as apply/3
currently behaves, or alternatively only allow M to be a tuple. This is not
a serious suggestion, just an example to make it clear what I mean.)

I suggest that you write an EEP.

Björn Gustavsson, Erlang/OTP, Ericsson AB

More information about the erlang-questions mailing list