Compiler Release Notes
Compiler 4.1
Fixed errors and malfunctions
-
Fixed problem in optimizing of case patterns containing tuples.
(Own Id: OTP-3973)
(Aux Id: Seq 5243, Seq 7025)
-
Using the 'not' operator in guards could crash the emulator.
(Own Id: OTP-4194)
(Aux Id: seq7196, seq7232, seq7253)
-
A bug in the compilation of bit syntax matching could cause parts of
the binary to be skipped.
(Own Id: OTP-4219)
(Aux Id: seq7218)
Improvements and new features
-
The documentation for the 'compile' module now lists several options
that were previously undocumented or only documented in the 'erl_lint'
documentation (such as the highly useful warn_unused_vars).
(Own Id: OTP-4240)
-
The
-include
and -include_dir
directives
substitute environment variable values for first path components
beginning with a $
(dollar) sign.
(Own Id: OTP-4385)
(Aux Id: seq7349)
-
The endianess specification 'native' has been added to the bit syntax.
It will resolve to either big or little endian at load time. It is
specially useful for communcating with linked-in drivers.
(Own Id: OTP-4458)
-
'try' and 'cond' are keywords in R9 and must not be used as atom names
or field names in records (unless they are single-quoted). In the R9
release, the compiler options 'disable_try' and 'disable_cond' can be
used to allow 'try' and 'cond' to be used as in previous releases (to
allow compilation of old Erlang code).
The
'disable_try'/'disable_cond' options will be removed in the R10
release.
(*** POTENTIAL INCOMPATIBILITY ***)
(Own Id: OTP-4464)
There are also release notes for
older versions.