From a175f808c69f2ad944e92d0006c66c258fc10fc7 Mon Sep 17 00:00:00 2001 From: Patrik Nyblom Date: Tue, 27 Nov 2012 16:26:24 +0100 Subject: Teach Win installer to handle redist on w2012/w8 Also made check for DLL version against redistributables instead of towards installed system, as some builds required redistributables everytime (installed dll on build machine had higher version than the redist)... --- erts/etc/win32/nsis/Makefile | 10 ++++++++-- erts/etc/win32/nsis/dll_version_helper.sh | 16 ++++++++++++++-- erts/etc/win32/nsis/erlang20.nsi | 13 ++++++++++++- 3 files changed, 34 insertions(+), 5 deletions(-) (limited to 'erts') diff --git a/erts/etc/win32/nsis/Makefile b/erts/etc/win32/nsis/Makefile index a53ac708f8..7bcecaa264 100644 --- a/erts/etc/win32/nsis/Makefile +++ b/erts/etc/win32/nsis/Makefile @@ -62,9 +62,15 @@ else endif REDIST_FILE=$(shell (sh ./find_redist.sh || echo "")) +ifeq ($(MSYSTEM),MINGW32) + NICEREDISTFILE=$(shell (msys2win_path.sh -m "$(REDIST_FILE)" 2>/dev/null || echo "")) +else + NICEREDISTFILE=$(shell (cygpath -d -m "$(REDIST_FILE)" 2>/dev/null || echo "")) +endif + REDIST_TARGET=$(shell (sh ./find_redist.sh -n || echo "")) -REDIST_DLL_VERSION=$(shell (sh ./dll_version_helper.sh || echo "")) -REDIST_DLL_NAME=$(shell (sh ./dll_version_helper.sh -n || echo "")) +REDIST_DLL_VERSION=$(shell (sh ./dll_version_helper.sh $(NICEREDISTFILE) || echo "")) +REDIST_DLL_NAME=$(shell (sh ./dll_version_helper.sh -n $(NICEREDISTFILE) || echo "")) release_spec: @NSIS_VER=`makensis /hdrinfo | head -1 | awk '{print $$2}'`; \ diff --git a/erts/etc/win32/nsis/dll_version_helper.sh b/erts/etc/win32/nsis/dll_version_helper.sh index 96e4532b7a..0d9ba4248d 100755 --- a/erts/etc/win32/nsis/dll_version_helper.sh +++ b/erts/etc/win32/nsis/dll_version_helper.sh @@ -25,6 +25,13 @@ # echo "8.0.50727.763" # exit 0 +if [ "$1" = "-n" ]; then + SWITCH=$1 + shift +else + SWITCH="" +fi + cat > hello.c < #include @@ -42,11 +49,16 @@ if [ '!' -f hello.exe.manifest ]; then # need another way of getting the version DLLNAME=`dumpbin.exe -imports hello.exe | egrep MSVCR.*dll` DLLNAME=`echo $DLLNAME` + if [ '!' -z "$1" ]; then + FILETOLOOKIN=$1 + else + FILETOLOOKIN=$DLLNAME + fi cat > helper.c < #include -#define REQ_MODULE "$DLLNAME" +#define REQ_MODULE "$FILETOLOOKIN" int main(void) { @@ -100,7 +112,7 @@ else NAME=`grep ' Date: Mon, 7 Jan 2013 12:00:39 +0100 Subject: Prepare release --- erts/doc/src/notes.xml | 207 +++++++++++++++++++++++++++++++++++++++++++++++++ erts/vsn.mk | 2 +- 2 files changed, 208 insertions(+), 1 deletion(-) (limited to 'erts') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index e996d3e8e3..de6696671b 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,213 @@

This document describes the changes made to the ERTS application.

+
Erts 5.10 + +
Fixed Bugs and Malfunctions + + +

+ Set new peeled off SCTP socket to nonblocking socket + (Thanks to Jonas Falkevik)

+

+ Own Id: OTP-10491

+
+ +

+ Fix various typos (thanks to Tuncer Ayaz)

+

+ Own Id: OTP-10611

+
+
+
+ + +
Improvements and New Features + + +

+ A boolean socket option 'ipv6_v6only' for IPv6 sockets + has been added. The default value of the option is OS + dependent, so applications aiming to be portable should + consider using {ipv6_v6only,true} when creating an + inet6 listening/destination socket, and if + neccesary also create an inet socket on the same + port for IPv4 traffic. See the documentation.

+

+ Own Id: OTP-8928 Aux Id: kunagi-193 [104]

+
+ +

It is now allowed to define stubs for BIFs, to allow + type specs to be written for BIFs. For example, if there + is BIF called lists:member/2, a dummy definition + of lists:member/2 is now allowed.

+

+ Own Id: OTP-9861

+
+ +

+ Code loading and upgrade are now done without blocking + the emulator in single threaded mode. This will improve + realtime characteristics when code is loaded/upgraded on + a running SMP system.

+

+ Own Id: OTP-9974

+
+ +

In the SMP emulator, turning on and off tracing will + no longer take down the system to single-scheduling.

+

+ Own Id: OTP-10122

+
+ +

+ Tuple funs (deprecated in R15B) are no longer supported.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-10170

+
+ +

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. 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. +

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. +

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.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-10336 Aux Id: kunagi-138 + [b5b97f67-fe34-46dc-93e6-a2931576db12]

+
+ +

+ 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.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-10633

+
+ +

+ 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.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-10647 Aux Id: OTP-10336

+
+
+
+ +
+
Erts 5.9.3.1
Known Bugs and Problems diff --git a/erts/vsn.mk b/erts/vsn.mk index 34410354bc..90e67aa474 100644 --- a/erts/vsn.mk +++ b/erts/vsn.mk @@ -17,7 +17,7 @@ # %CopyrightEnd% # -VSN = 5.9.3.1 +VSN = 5.10 SYSTEM_VSN = R15B03 # Port number 4365 in 4.2 -- cgit v1.2.3