Language change proposal
Niclas Eklund
nick@REDACTED
Wed Oct 22 13:44:39 CEST 2003
Hello!
Xref supplies a very flexible solution. See ('-deprecated(...)'):
http://www.erlang.org/doc/r9c/lib/tools-2.3/doc/html/xref.html
/Nick
> Hi everybody - I'd like to propose the following language change:
>
> (It's *very* easy to implement)
>
> I want all Erlang modules to be tagged with a "language version"
>
> Like this ...
>
> ------------------------------------------------------------------------
>
> Suppose the next version of Erlang is 5.3 then:
>
> 1) All modules *must* start
>
> -module(XXXX).
> -vsn("5.3").
>
> 2) Any module *without* a version is assumed to be "5.2"
>
> 3) If there is no version the compiler should complain like hell
> with a warning that cannot be turned off that an explicit language
> version is not present.
>
> 4) There should be files called "depreciated_5.3.{erl,txt}"
> that tell the user what language language features and library
> routine have been depreciated in version 5.3
>
> The text file should describe the depreciated features.
>
> The Erlang file can be used by the compiler to provide warnings about
> depreciated features.
>
>
> Then - somewhat later - when we change to version 5.4
>
> The same rules apply - with one exception - warnings issued about
> depreciated constructs in 5.3 now become hard errors - and there is no
> way to turn off this behaviour.
>
> -------------------------------------------------------------------------
>
> Versions should be numbered X.Y.Z
>
> Bumping X is done for syntax changes to Erlang, or changes in the
> semantics if BIFs etc. (serious things).
>
> Bumping Y is done for depreciated library functions bug fixes in libraries
>
> Bumping Z is done for cosmetic reasons
>
> --------------------------------------------------------------------------
>
> *******
> * Why *
> *******
>
> We need enforceable mechanisms to *remove* things from the Erlang
> libraries and from the language.
>
> Erlang is getting bigger and things are not being removed.
>
> As regards customers who crave backwards compatibility tell them that
> if they want to use the new stuff they will have to change their code.
>
> The version that they used in their products should always be
> supported into the future - but the cost of doing so should increase
> as you bump the version numbers.
>
> This is *exactly* what the chip manufacturers do - have you ever
> tried to buy "old" memory chips - they cost a fortune !!!!
>
> IMHO their should be no language changes until it can be
> realistically demonstrated that we can remove things from the
> language.
>
> /Joe
More information about the erlang-questions
mailing list