Language change proposal

WILLIAMS Dominic D.WILLIAMS@REDACTED
Wed Oct 22 14:26:54 CEST 2003


From: Joe Armstrong
> 
> I want all Erlang modules to be tagged with a "language version"
> 

I wholeheartedly share the concern for managing language and library
evolutions. Doing this properly would be another major strength of
Erlang over many other environments.

As to the details, I would prefer that whatever mechanism is used to
deprecate libraries (modules, functions) be designed to serve the same
purpose for external libraries (not only those provided as part of the
Erlang/OTP distribution) and application development in general.

Also, I am not very keen on having to add a vsn attribute to every
module I develop. I would prefer these issues to be manageable in one
place for an entire build tree (i.e. in an (E)makefile).

I would therefore (respectfully) suggest an alternative scheme:

1) The compiler would by default assume the latest version of the
   language is being used. When a language feature becomes deprecated,
   the compiler rejects code using this feature unless a specific
   compiler directive has been used to allow it.

2) Functions would be deprecated by adding an obsolete attribute that
   would list obsolete functions in the same format as export/import:

-module(my_module).
-export([a/1,b/2,c/3]).
-obsolete([b/2]).

This could be used (by the Erlang development team) for core
libraries, as well as (by the rest of us) for our own libraries,
frameworks and applications...

Regards,

Dominic Williams.



More information about the erlang-questions mailing list