Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Erlang/OTP 19.2 is the second service release for the 19 major release.
The service release contains mostly bug fixes and characteristics
improvements.
Some highlights for 19.2
* STDLIB: The new behaviour gen_statem has been improved with 3 new
features: the possibility to use old style non-proxy timeouts
for gen_statem:call/2,3, state entry code, and state
timeouts. These are backwards compatible. Minor code and
documentation improvements has been performed including a
borderline semantics correction of timeout zero handling.
* SSL: Experimental version of DTLS. It is runnable but not complete
and cannot be considered reliable for production usage. To use
DTLS add the option {protocol, dtls} to ssl:connect and ssl:listen.
* SSH: Extended the option silently_accept_hosts for ssh:connect to
make it possible for the client to check the SSH host key
fingerprint string. Se the reference manual for SSH.
* ~40 contributions since the previous service release OTP 19.1
You can find the README and the full listing of changes for this
service release at
http://www.erlang.org/download/otp_src_19.2.readme
|
|
|
|
|
|
|
|
There's no guarantee that __errno is free for own use.
(On NetBSD it isn't!)
|
|
Some highlights of the release are:
- erts: Improved dirty scheduler support. A purge of a module will
- not have to wait for completion of all ongoing dirty NIF calls.
- erts: Improved accuracy of timeouts on MacOS X.
- kernel: Add net_kernel:setopts/2 and net_kernel:getopts/2 to
- control options for distribution sockets in runtime.
- asn1: Compiling multiple ASN.1 modules in the same directory with
- parallel make (make -j) should now be safe.
- httpd: support for PUT and DELETE in mod_esi
- ~30 contributions since 19.0
You can find the Release Notes with more detailed info at
http://www.erlang.org/download/otp_src_19.1.readme
|
|
|
|
- compiler, stdlib:
- New preprocessor macros ?FUNCTION_NAME, ?FUNCTION_ARITY
- New preprocessor directives -error(Term) and -warning(Term) to
cause a compilation error or warning, respectively.
- gen_statem a new state machine behavior
- mnesia_ext: plugin of external storage solutions to mnesia
- crypto: uses EVP interface in OpenSSL resulting in generally
better performance and support for HW acceleration
- ssh: performance improvements, uses the new gen_statem behavior
- ssl: enhanced error log messages
- dialyzer: the support for maps is very much extended both the
type specification syntax and the type analysis.
- erts:
- erlang:open_port(spawn, ...) 3-5 times faster
- tracing, extensive improvements (scalability, speed, match
specifications on send/receive, support for lttng, ...)
- dirty schedulers improved
- per process configurable handling of message_queue
- fast loading of multiple modules
- max_heap_size process flag
- erts/kernel: Experimental support for Unix Domain Sockets
Full changelog:
http://erlang.org/download/otp_src_19.0.readme
|
|
|
|
|
|
|
|
original manifest.xml file and the output from "svccfg export".
|
|
Some highlights of the release are:
- New statistics info about runnable and active processes & ports.
- Time warp improvements: dbg:p/2 and erlang:trace/3 with
monotonic_timestamp | strict_monotonic_timestamp.
- Introduced a validation callback for heart.
- The module overload in sasl has been deprecated.
- ~90 contributions since 18.2
Full release notes:
http://erlang.org/download/otp_src_18.3.readme
|
|
|
|
|
|
|
|
erlang 18.2.1
Due to a bug in the handling of paths on windows none of the following
would work with paths containing a space:
- ct_run
- dialyzer
- erlc
- escript
- typer
This also contains a fix for HiPE enabled emulator for FreeBSD.
erlang 18.2
- ssl: Add configurable upper limit for session cache.
- erts: Add function enif_getenv to read OS environment variables in
a portable way from NIFs.
- kernel: Add {line_delim, byte()} option to inet:setopts/2 and
decode_packet/3
- ssh: The 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384' and
'ecdsa-sha2-nistp521' signature algorithms for ssh are implemented.
See RFC 5656.
- ssh: The ssh:daemon option dh_gex_groups is extended to read a user
provided ssh moduli file with generator-modulus pairs. The file is
in openssh format.
- Thanks to 41 different contributors!
|
|
|
|
Reviewed by wiz@
|
|
|
|
Problems found with existing digests:
Package nhc98 distfile nhc98src-1.22.tar.gz
a8adc8f22371998ee0657bc0e01058a57d876abc [recorded]
81975fcb5f1dda5efeaabc30ce8c6dceae55e591 [calculated]
Problems found locating distfiles:
Package gcc-aux: missing distfile ada-bootstrap.i386.dragonfly.36A.tar.bz2
Package gcc-aux: missing distfile ada-bootstrap.i386.freebsd.84.tar.bz2
Package gcc-aux: missing distfile ada-bootstrap.x86_64.dragonfly.36A.tar.bz2
Package gcc-aux: missing distfile ada-bootstrap.x86_64.freebsd.84.tar.bz2
Package gcc-aux: missing distfile ada-bootstrap.x86_64.solaris.511.tar.bz2
Package gcc5-aux: missing distfile ada-bootstrap.i386.dragonfly.36A.tar.bz2
Package gcc5-aux: missing distfile ada-bootstrap.i386.freebsd.84.tar.bz2
Package gcc5-aux: missing distfile ada-bootstrap.x86_64.dragonfly.36A.tar.bz2
Package gcc5-aux: missing distfile ada-bootstrap.x86_64.freebsd.84.tar.bz2
Package gcc5-aux: missing distfile ada-bootstrap.x86_64.solaris.511.tar.bz2
Package ghc7: missing distfile ghc-7.6.3-boot-i386-unknown-freebsd.tar.xz
Package icc11: missing distfile l_cproc_p_11.1.080.tgz
Package jini: missing distfile jini-1_2_1_001-src.zip
Package oo2c: missing distfile oo2c_32-2.0.11.tar.bz2
Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-freebsd-10-amd64-20150301.tar.xz
Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-5-i386-20150301.tar.xz
Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-6-i386-20150301.tar.xz
Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-7-earmv6hf-20150306.tar.xz
Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-7-sparc64-20150301.tar.xz
Package openjdk7: missing distfile openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.8-amd64-20140719.tar.bz2
Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-freebsd-10-amd64-20150301.tar.xz
Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-5-i386-20150301.tar.xz
Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-6-i386-20150301.tar.xz
Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-7-earmv6hf-20150306.tar.xz
Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-7-sparc64-20150301.tar.xz
Package openjdk8: missing distfile openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.8-amd64-20140719.tar.bz2
Package oracle-jdk8: missing distfile jdk-8u60-linux-i586.tar.gz
Package oracle-jdk8: missing distfile jdk-8u60-solaris-x64.tar.gz
Package oracle-jre8: missing distfile jre-8u60-linux-i586.tar.gz
Package oracle-jre8: missing distfile jre-8u60-solaris-x64.tar.gz
Package sun-jdk6: missing distfile jdk-6u45-linux-i586.bin
Package sun-jdk6: missing distfile jdk-6u45-solaris-i586.sh
Package sun-jdk7: missing distfile jdk-7u72-linux-i586.tar.gz
Package sun-jdk7: missing distfile jdk-7u72-solaris-i586.tar.gz
Package sun-jre6: missing distfile jce_policy-6.zip
Package sun-jre6: missing distfile jre-6u45-linux-x64.bin
Package sun-jre6: missing distfile jre-6u45-solaris-x64.sh
Package sun-jre7: missing distfile jre-7u72-linux-i586.tar.gz
Package sun-jre7: missing distfile jre-7u72-solaris-i586.tar.gz
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
|
|
Some highlights of the release are:
- ssl: Add possibility to downgrade an SSL/TLS connection to a tcp
connection, and give back the socket control to a user process.
- ssh: The following new key exchange algorithms are implemented:
'ecdh-sha2-nistp256', 'ecdh-sha2-nistp384', 'ecdh-sha2-nistp521',
'diffie-hellman-group14-sha1', 'diffie-hellman-group-exchange-sha1'
and 'diffie-hellman-group-exchange-sha256'. This raises the
security level considerably.
- kernel,stdlib,sasl: A mechanism for limiting the amount of text
that the built-in error logger events will produce has been
introduced. It is useful for limiting both the size of log files
and the CPU time used to produce them.
Full release notes:
http://www.erlang.org/download/otp_src_18.1.readme
|
|
|
|
settings of INSTALL_UNSTRIPPED=yes for Darwin in individual packages.
|
|
patches from Steven Williamson.
|
|
|
|
|
|
- Starting from 18.0 Erlang/OTP is released under the APL 2.0
- erts: The time functionality has been extended. This includes a new API
for time, as well as "time warp" modes which alters the behavior when
system time changes. You are strongly encouraged to use the new API
instead of the old API based on erlang:now/0. erlang:now/0 has been
deprecated since it is a scalability bottleneck.
- erts: Beside the API changes and time warp modes a lot of scalability
and performance improvements regarding time management has been made
- erts: The previously introduced "eager check I/O" feature is now enabled
by default.
- erts/compiler: enhanced support for maps. Big maps new uses a HAMT
(Hash Array Mapped Trie) representation internally which makes them more
efficient. There is now also support for variables as map keys.
- dialyzer: The -dialyzer() attribute can be used for suppressing warnings
in a module by specifying functions or warning options.
- ssl: Remove default support for SSL-3.0 and added padding check
for TLS-1.0 due to the Poodle vulnerability.
- ssl: Remove default support for RC4 cipher suites, as they are consider
too weak.
- stdlib: Allow maps for supervisor flags and child specs
- stdlib: New functions in ets:
- take/2. Works the same as ets:delete/2 but
also returns the deleted object(s).
- ets:update_counter/4 with a default object as
argument
Full changelog:
http://www.erlang.org/download/otp_src_18.0.readme
|
|
having a PKGNAME of p5-*, or depending such a package,
for perl-5.22.0.
|
|
|
|
erlang-17.5
================================
Highlights:
- ERTS: Added command line argument option for setting the initial size
of process dictionaries.
- Diameter: configurable incoming_max len and string_decode for diameter
messages
- Bugfixes and minor small features in applications such as compiler,
common_test, crypto, debugger, eldap, erts, hipe, inets, ssh, ssl,...
Full changelog:
http://www.erlang.org/download/otp_src_17.5.readme
erlang-17.4
================================
Highlights:
- eldap: Nearly all TCP options are possible to give in the eldap:open/2 call.
- ssh: Added API functions ptty_alloc/3 and ptty_alloc/4, to allocate
a pseudo tty.
- ssl: Handle servers that may send an empty SNI extension to the client.
Full changelog:
http://www.erlang.org/download/otp_src_17.4.readme
erlang-17.3
================================
Highlights:
- erts: Introduced enif_schedule_nif() which allows a long running NIF
to be broken into separate NIF invocations without the help of a wrapper
function written in Erlang
- common_test: Experimental support for running Quickcheck and PropEr tests
from common_test suites is added. Examples of usage in the suites for
the ssh and inets applications
- Bugfixes and minor new features in applications such as asn1, erts, kernel,
stdlib, diameter, ssh, mnesia, ssl, jinterface
Full changelog:
http://www.erlang.org/download/otp_src_17.3.readme
erlang-17.1
================================
Highlights:
- crypto: Add aes_cfb8 cypher to crypto:block_encrypt and block_decrypt.
- diameter: Add result code counters for CEA, DWA, and DPA.
- erts: The following built in functions in the erlang and binary modules
now bump an appropriate amount of reductions and yield when
out of reductions:
binary_to_list/1, binary_to_list/3, bitstring_to_list/1,
list_to_binary/1, iolist_to_binary/1, list_to_bitstring/1,
binary:list_to_bin/1
- hipe: Handle Maps instructions get_map_elements, put_map_assoc,
put_map_exact in the HiPE native code compiler.
- mnesia: The time for inserting locks for a transaction with large
number of locks is reduced significantly.
- ssh: Option max_sessions added to ssh:daemon/{2,3}.
- stdlib: Add maps:get/3 to maps module. The function will return the
supplied default value if the key does not exist in the map.
Full changelog:
http://www.erlang.org/download/otp_src_17.1.readme
erlang-17.0
================================
Highlights:
- Erlang/OTP has been ported to the realtime operating system OSE.
- Maps, a new dictionary data type (experimental)
- A more natural mapping from ASN.1 OCTET STRING and BIT STRING to
Erlang types, and other ASN.1 improvements and optimizations
- The {active, N} socket option for TCP, UDP, and SCTP
- A new (optional) scheduler utilization balancing mechanism
- Migration of memory carriers has been enabled by default on all
ERTS internal memory allocators
- Increased garbage collection tenure rate
- Experimental "dirty schedulers" functionality
- Funs can now be given names
- Miscellaneous unicode support enhancements
- A new version scheme for OTP its applications has been introduced
Full changelog:
http://www.erlang.org/download/otp_src_17.0.readme
erlang 16.1.3.1 (R16B03-1)
================================
Highlights:
- The ODBC application was missing in the prebuilt Windows installers
- 3 corrections in the SSL application:
- Add missing validation of the server_name_indication option and test
for its explicit use.
- Elliptic curve selection in server mode now properly selects a curve
suggested by the client, if possible.
- The server did not indicate support for secure renegotiation during
TLS extension handling.
- In the syntax tools application a bug was introduced which broke
reverting of local funs. This is now corrected (thanks to Anthony Ramine)
- wx - Solved a problem which caused the debugger to crash when closing
a window. Fixed static linking on Mac.
- xmerl - Fixed a problem in the SAX-parser when the header of
the next document was appearing in the buffer when using
the xmerl_sax_parser:stream/2 function.
Full changelog:
http://www.erlang.org/download/otp_src_R16B03-1.readme
erlang-16.1.3 (R16B03)
================================
Highlights:
- A new memory allocation feature called "super carrier" has been introduced.
It can for example be used for pre-allocation of all memory that the
runtime system should be able to use. It is enabled by passing the +MMscs
(size in MB) command line argument. For more information see
the documentation of the +MMsco, +MMscrfsd, +MMscrpm, +MMscs, +MMusac, and,
+Mlpm command line arguments in the erts_alloc(3) documentation.
- The ldap client eldap now supports the start_tls operation. This upgrades
an existing tcp connection to encryption using tls,
see eldap:start_tls/2 and /3.
- The ftp client (inets application) now supports ftp over tls (ftps).
Full changelog:
http://www.erlang.org/download/otp_src_R16B03.readme
|
|
|
|
"unixodbc" option is selected.
This change prevent configure from picking up system installed
iodbc on Mac OS X 10.10.
|
|
with no probes enabled.
Bump PKGREVISION.
|
|
|
|
Do it for all packages that
* mention perl, or
* have a directory name starting with p5-*, or
* depend on a package starting with p5-
like last time, for 5.18, where this didn't lead to complaints.
Let me know if you have any this time.
|
|
|
|
|
|
"Since b29ecbd (OTP-10418, R15B03) Erlang does not compile anymore with
old versions of GCC that do not have atomic ops builtins on platforms
where there is no native ethread implementation (e.g. ARM): (...)
Please note however that I will be merging this branch as well,
which will mean that you have to explicitly tell configure that
you intend to use the fallback atomic operations though
--disable-native-ethr-impls or --disable-smp-require-native-atomics."
Translated: On NetBSD-5.1 (with gcc-4.1.3) the erlang package
didn't compile because of
> ../include/internal/gcc/ethr_membar.h:49:4: error:
> #error "No __sync_val_compare_and_swap"
Adding the abovementioned option --disable-native-ethr-impls make the
Erlang runtime system use the original (now fallback) code. This should
maybe be an pkg option, but for now this has to do.
|
|
R16B02 is the second maintenance release for the R16B major release.
You can find the README file for the release at
http://www.erlang.org/download/otp_src_R16B02.readme
R16B01 is the first maintenance release for the R16B major release.
You can find the README file for the release at
http://www.erlang.org/download/otp_src_R16B01.readme
Highlights for R16B01:
OTP-10279 == erts ==
Support for migration of memory carriers between memory
allocator instances has been introduced.
By default this feature is not enabled and do not effect the
characteristics of the system. When enabled it has the
following impact on the characteristics of the system:
-- Reduced memory footprint when the memory load is unevenly
distributed between scheduler specific allocator instances.
-- Depending on the default allocaton strategy used on a
specific allocator there might or might not be a slight
performance loss.
-- When enabled on the fix_alloc allocator, a different
strategy for management of fix blocks will be used.
-- The information returned from
erlang:system_info({allocator, A}), and
erlang:system_info({allocator_sizes, A}) will be slightly
different when this feature has been enabled. An mbcs_pool
tuple will be present giving information about abandoned
carriers, and in the fix_alloc case no fix_types tuple will
be present.
For more information, see the documentation of the +M<S>acul
command line argument.
OTP-11009 == ssl public_key crypto common_test dialyzer ssh stdlib snmp
inets ==
Integrate elliptic curve contribution from Andreas Schultz
In order to be able to support elliptic curve cipher suites
in SSL/TLS, additions to handle elliptic curve infrastructure
has been added to public_key and crypto.
This also has resulted in a rewrite of the crypto API to gain
consistency and remove unnecessary overhead. All OTP
applications using crypto has been updated to use the new
API.
Impact: Elliptic curve cryptography (ECC) offers equivalent
security with smaller key sizes than other public key
algorithms. Smaller key sizes result in savings for power,
memory, bandwidth, and computational cost that make ECC
especially attractive for constrained environments.
OTP-11159 == erts ==
Lift static limitation (FD_SETSIZE) for file descriptors on
Mac OS X. (Thanks to Anthony Ramine)
|
|
|
|
|
|
|
|
R16B is a major new release of Erlang/OTP.
Detailed information on changes can be fetched at
http://www.erlang.org/download/otp_src_R16B.readme
--- HIGHLIGHTS ----------------------------------------------------------
OTP-7786 == ssh ==
Added User Guide for the SSH application
OTP-9892 == erts ==
Process optimizations. The most notable:
-- New internal process table implementation allowing for
both parallel reads as well as writes. Especially read
operations have become really cheap. This reduce contention
in various situations. For example when, spawning processes,
terminating processes, sending messages, etc.
-- Optimizations of run queue management reducing contention.
-- Optimizations of process state changes reducing
contention.
These changes imply changes of the characteristics the
system. Most notable: changed timing in the system.
OTP-9974 == erts ==
Non-blocking code loading. Earlier when an Erlang module was
loaded, all other execution in the VM were halted while the
load operation was carried out in single threaded mode. Now
modules are loaded without blocking the VM. Processes may
continue executing undisturbed in parallel during the entire
load operation. The load operation is completed by making the
loaded code visible to all processes in a consistent way with
one single atomic instruction. Non-blocking code loading will
improve realtime characteristics when modules are
loaded/upgraded on a running SMP system.
OTP-10256 == inets ==
httpc: The HTTP client now supports HTTPS through proxies
OTP-10336 == erts ==
Major port improvements. The most notable:
-- New internal port table implementation allowing for both
parallel reads as well as writes. Especially read operations
have become really cheap.This reduce contention in various
situations. For example when, creating ports, terminating
ports, etc.
-- Dynamic allocation of port structures. This allow for a
much larger maximum amount of ports allowed as a default. The
previous default of 1024 has been raised to 65536. Maximum
amount of ports can be set using the +Q command line flag of
erl(1). The previously used environment variable
ERL_MAX_PORTS has been deprecated and scheduled for removal
in OTP-R17.
-- Major rewrite of scheduling of port tasks. Major benefits
of the rewrite are reduced contention on run queue locks, and
reduced amount of memory allocation operations needed. The
rewrite was also necessary in order to make it possible to
schedule signals from processes to ports.
-- Improved internal thread progress functionality for easy
management of unmanaged threads. This improvement was
necessary for the rewrite of the port task scheduling.
-- Rewrite of all process to port signal implementations in
order to make it possible to schedule those operations. All
port operations can now be scheduled which allows for reduced
lock contention on the port lock as well as truly
asynchronous communication with ports.
-- Optimized lookup of port handles from drivers.
-- Optimized driver lookup when creating ports.
-- Preemptable erlang:ports/0 BIF.
-- Improving responsiveness by bumping reductions for a
process calling a driver callback directly.
These changes imply changes of the characteristics of the
system. The most notable:
-- Order of signal delivery -- The previous implementation of
the VM has delivered signals from processes to ports in a
synchronous stricter fashion than required by the language.
As of ERTS version 5.10, signals are truly asynchronously
delivered. The order of signal delivery still adheres to the
requirements of the language, but only to the requirements.
That is, some signal sequences that previously always were
delivered in one specific order may now from time to time be
delivered in different orders. This may cause Erlang programs
that have made false assumptions about signal delivery order
to fail even though they previously succeeded. For more
information about signal ordering guarantees, see the chapter
on communication in the ERTS user's guide. The +n command
line flag of erl(1) can be helpful when trying to find
signaling order bugs in Erlang code that have been exposed by
these changes.
-- Latency of signals sent from processes to ports -- Signals
from processes to ports where previously always delivered
immediately. This kept latency for such communication to a
minimum, but it could cause lock contention which was very
expensive for the system as a whole. In order to keep this
latency low also in the future, most signals from processes
to ports are by default still delivered immediately as long
as no conflicts occur. Such conflicts include not being able
to acquire the port lock, but also include other conflicts.
When a conflict occur, the signal will be scheduled for
delivery at a later time. A scheduled signal delivery may
cause a higher latency for this specific communication, but
improves the overall performance of the system since it
reduce lock contention between schedulers. The default
behavior of only scheduling delivery of these signals on
conflict can be changed by passing the +spp command line flag
to erl(1). The behavior can also be changed on port basis
using the parallelism option of the open_port/2 BIF.
-- Execution time of the erlang:ports/0 BIF -- Since
erlang:ports/0 now can be preempted, the responsiveness of
the system as a whole has been improved. A call to
erlang:ports/0 may, however, take a much longer time to
complete than before. How much longer time heavily depends on
the system load.
-- Reduction cost of calling driver callbacks -- Calling a
driver callback is quite costly. This was previously not
reflected in reduction cost at all. Since the reduction cost
now has increased, a process performing lots of direct driver
calls will be scheduled out more frequently than before.
Potential incompatibilities:
-- driver_send_term() has been deprecated and has been
scheduled for removal in OTP-R17. Replace usage of
driver_send_term() with usage of erl_drv_send_term().
-- driver_output_term() has been deprecated and has been
scheduled for removal in OTP-R17. Replace usage of
driver_output_term() with usage of erl_drv_output_term().
-- The new function erl_drv_busy_msgq_limits() has been added
in order to able to control management of port queues.
The driver API version has been bumped to 2.1 from 2.0 due to
the above changes in the driver API.
OTP-10410 == asn1 ==
The options for the ASN.1 compiler has been drastically
simplified. The backend is chosen by using ber, per, or uper.
The options optimize, nif, and driver are no longer needed.
The old options will still work, but will issue a warning.
Another change is that generated encode/2 function will
always return a binary (some backends used to return an
iolist).
OTP-10588 == asn1 ==
The ASN.1 compiler will now always include necessary run-time
functions in the generated Erlang modules (except for
asn1rt_nif which is still neeeded). If the option 'inline' is
used the ASN.1 compiler will generate a warning. But if
'{inline,OutputFile}' is use, the ASN.1 compiler will refuse
to compile the file. (Use a .set.asn file if you need to
remove the output file.)
The 'BIT STRING' type will now be decoded as Erlang
bitstrings by default. Use the new legacy_bit_string option
to encode as lists of ones and zeroes. (The
compact_bit_string option still works as before.)
Open types are now always returned as binaries (when there is
no information allowing them to be decoded).
--- POTENTIAL INCOMPATIBILITIES -----------------------------------------
OTP-9052 == common_test ==
Removed depricated run_test program, use ct_run instead.
OTP-9881 == common_test ==
It is now possible to let a test specification include other
test specifications. Included specs can either be joined with
the source spec (and all other joined specs), resulting in
one single test run, or they can be executed in separate test
runs. Also, a start flag/option, join_specs, has been
introduced, to be used in combination with the spec option.
With join_specs, Common Test can be told to either join
multiple test specifications, or run them separately. Without
join_specs, the latter behaviour is default. Note that this
is a change compared to earlier versions of Common Test,
where specifications could only be joined. More information
can be found in the Running Tests chapter in the User's Guide
(see the Test Specifications section).
OTP-10117 == inviso ==
The inviso application has been removed.
OTP-10170 == erts pman ==
Tuple funs (deprecated in R15B) are no longer supported.
OTP-10195 == edoc ==
Since EDoc 0.7.7 (R14B02) separate values of union types can
be annotated. However, the parser has hitherto chosen not to
add the necessary parentheses due to backwards compatibility.
From this release on code traversing the output of
edoc_parser needs to take care of parentheses around separate
values of union types. Examples of such code are layout
modules and doclet modules.
OTP-10336 == erts ==
Major port improvements. The most notable:
-- New internal port table implementation allowing for both
parallel reads as well as writes. Especially read operations
have become really cheap.This reduce contention in various
situations. For example when, creating ports, terminating
ports, etc.
-- Dynamic allocation of port structures. This allow for a
much larger maximum amount of ports allowed as a default. The
previous default of 1024 has been raised to 65536. Maximum
amount of ports can be set using the +Q command line flag of
erl(1). The previously used environment variable
ERL_MAX_PORTS has been deprecated and scheduled for removal
in OTP-R17.
-- Major rewrite of scheduling of port tasks. Major benefits
of the rewrite are reduced contention on run queue locks, and
reduced amount of memory allocation operations needed. The
rewrite was also necessary in order to make it possible to
schedule signals from processes to ports.
-- Improved internal thread progress functionality for easy
management of unmanaged threads. This improvement was
necessary for the rewrite of the port task scheduling.
-- Rewrite of all process to port signal implementations in
order to make it possible to schedule those operations. All
port operations can now be scheduled which allows for reduced
lock contention on the port lock as well as truly
asynchronous communication with ports.
-- Optimized lookup of port handles from drivers.
-- Optimized driver lookup when creating ports.
-- Preemptable erlang:ports/0 BIF.
-- Improving responsiveness by bumping reductions for a
process calling a driver callback directly.
These changes imply changes of the characteristics of the
system. The most notable:
-- Order of signal delivery -- The previous implementation of
the VM has delivered signals from processes to ports in a
synchronous stricter fashion than required by the language.
As of ERTS version 5.10, signals are truly asynchronously
delivered. The order of signal delivery still adheres to the
requirements of the language, but only to the requirements.
That is, some signal sequences that previously always were
delivered in one specific order may now from time to time be
delivered in different orders. This may cause Erlang programs
that have made false assumptions about signal delivery order
to fail even though they previously succeeded. For more
information about signal ordering guarantees, see the chapter
on communication in the ERTS user's guide. The +n command
line flag of erl(1) can be helpful when trying to find
signaling order bugs in Erlang code that have been exposed by
these changes.
-- Latency of signals sent from processes to ports -- Signals
from processes to ports where previously always delivered
immediately. This kept latency for such communication to a
minimum, but it could cause lock contention which was very
expensive for the system as a whole. In order to keep this
latency low also in the future, most signals from processes
to ports are by default still delivered immediately as long
as no conflicts occur. Such conflicts include not being able
to acquire the port lock, but also include other conflicts.
When a conflict occur, the signal will be scheduled for
delivery at a later time. A scheduled signal delivery may
cause a higher latency for this specific communication, but
improves the overall performance of the system since it
reduce lock contention between schedulers. The default
behavior of only scheduling delivery of these signals on
conflict can be changed by passing the +spp command line flag
to erl(1). The behavior can also be changed on port basis
using the parallelism option of the open_port/2 BIF.
-- Execution time of the erlang:ports/0 BIF -- Since
erlang:ports/0 now can be preempted, the responsiveness of
the system as a whole has been improved. A call to
erlang:ports/0 may, however, take a much longer time to
complete than before. How much longer time heavily depends on
the system load.
-- Reduction cost of calling driver callbacks -- Calling a
driver callback is quite costly. This was previously not
reflected in reduction cost at all. Since the reduction cost
now has increased, a process performing lots of direct driver
calls will be scheduled out more frequently than before.
Potential incompatibilities:
-- driver_send_term() has been deprecated and has been
scheduled for removal in OTP-R17. Replace usage of
driver_send_term() with usage of erl_drv_send_term().
-- driver_output_term() has been deprecated and has been
scheduled for removal in OTP-R17. Replace usage of
driver_output_term() with usage of erl_drv_output_term().
-- The new function erl_drv_busy_msgq_limits() has been added
in order to able to control management of port queues.
The driver API version has been bumped to 2.1 from 2.0 due to
the above changes in the driver API.
OTP-10410 == asn1 ==
The options for the ASN.1 compiler has been drastically
simplified. The backend is chosen by using ber, per, or uper.
The options optimize, nif, and driver are no longer needed.
The old options will still work, but will issue a warning.
Another change is that generated encode/2 function will
always return a binary (some backends used to return an
iolist).
OTP-10417 == kernel sasl ==
It is no longer possible to have {Mod,Vsn} in the 'modules'
list in a .app file.
This was earlier possible, although never documented in the
.app file reference manual. It was however visible in the
documentation of application:load/[1,2], where the same term
as in a .app file can be used as the first argument.
The possibility has been removed since the Vsn part was never
used.
OTP-10451 == ssl ==
Remove filter mechanisms that made error messages backwards
compatible with old ssl but hid information about what
actually happened.
This does not break the documented API however other reason
terms may be returned, so code that matches on the reason
part of {error, Reason} may fail.
OTP-10490 == stdlib ==
If a child process fails in its start function, then the
error reason was earlier only reported as an error report
from the error_handler, and supervisor:start_link would only
return {error,shutdown}. This has been changed so the
supervisor will now return {error,{shutdown,Reason}}, where
Reason identifies the failing child and its error reason.
(Thanks to Tomas Pihl)
OTP-10523 == tools ==
A new function, cover:flush(Nodes), is added which will fetch
data from remote nodes without stopping cover on those nodes.
This is used by test_server and common_test when it is safe
to assume that the node will be terminated after the test
anyway. The purpose is to avoid processes crashing when
re-loading the original beam if the processes is still
running old code.
Remote nodes will now continue to count code coverage if the
connection to the main node is broken. Earlier, a broken
connection would cause the cover_server on the remote node to
die and thus any still cover compiled modules would cause
process crash when trying to insert cover data in ets tables
that used to exist on the cover_server. The new functionality
also involves synchronization with the main node if the nodes
are reconnected.
OTP-10588 == asn1 ==
The ASN.1 compiler will now always include necessary run-time
functions in the generated Erlang modules (except for
asn1rt_nif which is still neeeded). If the option 'inline' is
used the ASN.1 compiler will generate a warning. But if
'{inline,OutputFile}' is use, the ASN.1 compiler will refuse
to compile the file. (Use a .set.asn file if you need to
remove the output file.)
The 'BIT STRING' type will now be decoded as Erlang
bitstrings by default. Use the new legacy_bit_string option
to encode as lists of ones and zeroes. (The
compact_bit_string option still works as before.)
Open types are now always returned as binaries (when there is
no information allowing them to be decoded).
OTP-10613 == ssl ==
Removed deprecated function ssl:pid/0, it has been pointless
since R14 but has been keep for backwards compatibility.
OTP-10633 == erts ==
Erlang specification 4.7.3 defines max tuple size to 65535
elements It is now enforced to no more than 16777215 elements
(arity 24 bits)
Previous edge cases (28 bits) were not validated and could
cause undefined behaviour.
OTP-10647 == erts ==
The previous default of a maximum of 32768 simultaneous
processes has been raised to 262144. This value can be
changed using the the +P command line flag of erl(1). Note
that the value passed now is considered as a hint, and that
actual value chosen in most cases will be a power of two.
OTP-10812 == stdlib ==
filelib:wildcard("some/relative/path/*.beam", Path) would
fail to match any file. That is, filelib:wildcard/2 would not
work if the first component of the pattern did not contain
any wildcard characters. (A previous attempt to fix the
problem in R15B02 seems to have made matters worse.)
(Thanks to Samuel Rivas and Tuncer Ayaz.)
There is also an incompatible change to the Path argument. It
is no longer allowed to be a binary.
OTP-10872 == erts ==
As of ERTS-5.10/OTP-R16A node names passed in the EPMD
protocol are required to be encoded in UTF-8. Since EPMD
previously accepted latin1 encoded node names this is an
incompatibility. However, since Erlang nodes always have
required characters in node names to be 7-bit ASCII
characters (and still do require this), this incompatibility
should not effect anyone using EPMD as an Erlang Port Mapper
Daemon.
|
|
a) refer 'perl' in their Makefile, or
b) have a directory name of p5-*, or
c) have any dependency on any p5-* package
Like last time, where this caused no complaints.
|
|
|
|
Changes in R15B03-1
After the release of R15B03 a very unfortunate bug in ssl:ssl_accept/2
(accept with timeout) was detected. This bug will have negative impact
on a number of popular http servers and server frameworks written in
Erlang.
The differences from R15B03 are in ssl-5.1.2 and erts-5.9.3.1.
Full log at http://www.erlang.org/download/otp_src_R15B03-1.readme
Changes in R15B03
Mostly bug fixes and small improvements.
Full log at http://www.erlang.org/download/otp_src_R15B03.readme
Changes in R15B02
Highlights
OTP-8871 == ssl ==
Experimental support for TLS 1.1 is now available, will be
officially supported from OTP-R16. Thanks to Andreas Schultz
for implementing the first version.
OTP-8872 == ssl ==
Experimental support for TLS 1.2 is now available, will be
officially supported from OTP-R16. Thanks to Andreas Schultz
for implementing the first version.
OTP-10113 == ssl ==
Removed some bottlenecks increasing the applications
parallelism especially for the client side.
Full log at http://www.erlang.org/download/otp_src_R15B02.readme
|
|
|
|
are called p5-*.
I hope that's all of them.
|