Language change proposal

Fredrik Linder fredrik.linder@REDACTED
Wed Oct 22 14:05:05 CEST 2003


This sounds like an excellent proposal!

/Fredrik

> -----Original Message-----
> From: owner-erlang-questions@REDACTED
> [mailto:owner-erlang-questions@REDACTED]On Behalf Of Joe Armstrong
> Sent: den 22 oktober 2003 13:27
> To: erlang-questions@REDACTED
> Subject: Language change proposal
>
>
>
> 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