Compiler Release Notes
Compiler Release Notes
Compiler 3.0.1
Improvements and new features
-
Several minor compiler bugs corncerning the bit syntax
were corrected.
Own Id: OTP-3707
Compiler 3.0
Known problems
-
Use of recursively defined records causes the compiler to
crash instead of reporting an error.
Own Id: OTP-2677
Fixed errors and malfunctions
-
The Erlang compiler builds lists and tuples in a smarter
way than previous compilers, meaning that literal lists and tuples
practically any size can now be built.
Own Id: OTP-2388
Aux Id: seq 821
-
Using a literal atom in a call to atom_to_list/1 resulted
in a compiled module that could not be loaded. This has been corrected.
Own Id: OTP-3438
Improvements and new features
-
We have made several changes to the garbage collector
and internal memory allocation routines to reduce
memory consumption and memory fragmentation.
Also, the compiler now makes sure that references
to any data that will not be used again will be killed,
so that the garbage collector can discard it as soon
as possible.
(Thanks to Claes Wickstrom at Bluetail who suggested
most of the changes to the garbage collector.)
Own Id: OTP-2375
Aux Id: seq 816, HA81951
-
It is now allowed to use an expression within a pattern,
if the expression uses only numeric or bitwise operators,
and can
be evaluated to a constant at compile-time. E.g.,
case X of
{1+2, T} -> T
end.
Own Id: OTP-3144
Aux Id: OTP-3143
-
There now exists syntax for constructing and matching
binaries. For more infomation, see Extensions to Erlang.
Also, the handling of small binaries (up to 64 bytes) has
been optimised, as well as splitting of binaries.
Own Id: OTP-3376
-
The construction
??Arg
for an argument to a macro
expands to a string containing the tokens of the argument,
similar to the #arg
stringifying construction in C.
Own Id: OTP-3425
-
The compiler now supports inlining within a module
(see the compiler documentation). Numerous known
problems and limitations have been corrected, and
the optimisation is better (for instance, tuples
used in cases for grouping are no longer built).
The earlier compiler versions v1 (R5) and v2 (R6)
have been discontinued because there are no longer
any reason to use them.
Own Id: OTP-3672
There are also release notes for
older versions.