Bug fix release : otp_src_R7B-2 From snapshot : 20010305 There is no patch from otp_src_R7B-1 to otp_src_R7B-2, you have to download the full release. There is still a configure bug that has the unfortunate effect that configure fails but it looks like a success. The "make" command will fail instead. The reason of the configure failure was that the SSL library was not found. If you have this problem you will find the line configure: error: No OpenSSL or SSLeay found in the configure output. SSL is not required to build Erlang/OTP, do % ./configure --without-ssl or find out where your SSL files are and do % ./configure --with-ssl=PATH-TO-SSL-TOP-DIR --------------------------------------------------------------------------- The patch handling was changed so now there are new releases and one patch to get you from the previous release to the current release. In more detail: 1. We release fully tested source base releases. This is R7B-0, R8A-0, i.e. those ending in "-0". 2. We release selected source snapshots. This is snapshots that contains important changes and that passed the testing. These snapshots will be named R7B-1, R7B-2, ...... 3. We will release combined patches, i.e. one large patch that patch from R7B-0 to R7B-1, a second one from R7B-1 to R7B-2 etc. Note that the result after patching will not be exactly the same as the snapshot. Some precompiled BEAM files in the bootstrap part may differ. 4. When a move from one source release to the next require changes in the bootstrap compiler, then there will be no patch to upgrade. This forces a complete source release download with the correct binary BEAM files. 5. Binary releases for Linux, FreeBSD and Windows will be built from the complete source snapshots, i.e. not from a base source release with applied patches. --------------------------------------------------------------------------- The changes from the previous patch level are runtime_tools/kernel/erts OTP-3401 Heart could time out due to system time adjustments. Heart is now modified to use timestamps unrelated to system dates. OTP-3815 zlib in the emulator (used during compress/decompress of files) did not use the right memory allocation routines on vxworks. OTP-3819 Instability problems in the erlang emulator introduced in R7 are now corrected: - The R7B01 emulator may now be restarted after halting without rebooting the VxWorks node. - Parallel portprogrm execution no longer may cause memory access errors in tExecTask. - Use of list_to_binary may no longer cause stack overruns for the emulator. OTP-3824 Name clashes between Erlang emulator and erl_interface on VxWorks removed. OTP-3832 A bug in efile_drv that randomly caused memory access violation when using file:get_cwd() has been fixed. OTP-3845 In some cases, the debugger would in a call to undefined function erts_debug:apply/4. OTP-3888 Running erlang in an console on Windows (erl) no longer causes output from erlang to be blocked. Using Ctrl-C to interrupt emulator now works as expected. OTP-3747 A number of bug fixes and improvements have been done OTP-3592 to applications runtime_tools, OTP-3744 kernel and erts: - A read timeout no longer resets the sequential trace token. This is an incompatibility towards the previous behaviour. Use seq_trace:set_token([]) to reset the sequential trace token. - seq_trace:get_token/0 and seq_trace:set_token/1 now have compatible token formats. - dbg:trace_port/2 and dbg:trace_client/2,3 now supports trace to and read from a size limited "wrap file set". - dbg:trace_port_control/1 now supports operation get_listen_port for the ip trace driver. - New match spec functions {is_seq_trace} and {get_seq_trace} has been added to test and read the sequential trace token in match specs. - New match spec functions {get_tcw} and {set_tcw Value} that reads and sets a "trace control word" in the node has been added. The "trace control word" is a word in each Erlang node of at least 24 bits. There are also enhancements of BIFs erlang:system_info(trace_control_word) and erlang:system_flag(trace_control_word, Value) for the same purpose. - A new match spec function {silent, TrueOrFalse} for setting a silent call trace flag per process that inhibits call trace messages, both local and global, has been added. The BIF erlang:trace/3 has been extended to recognize the flag 'silent' to start a call trace in silent mode. - Some bugs in the dbg module has been fixed, e.g the 'old_trace_call' flag has been removed from the 'all' flags list, and the dbg server no longer hangs if the supplied tracer fails to start. - A bug in the emulator that made 'EXIT' messages from a process involved in a sequential call trace get overwritten by the sequential trace token itself has been fixed. - The documentation regarding the above has been updated. Especially, the fact that the match spec function {return_trace} destroys the tail recursiveness of the traced function has been pointed out. asn1 OTP-3830 PER: Trailing zeroes in a BIT STRING declared without named bits should not be removed in the encodings. OTP-3713 PER: Constraints are not propagated when types are referring to each other. Example: TBCD-STRING ::= OCTET STRING LAI ::= TBCD-STRING (SIZE(3)) The size constraint is not passed on during encode,decode resulting in wrong encoding for PER , it is coded with a length determinant which should not be there when the length is fixed. For BER this does not matter because the constraints does not affect the encodings. OTP-3796 The generated code gets wrong if there are several ENUMERATED fields in a SEQUENCE or SET. OTP-3811 BER:Decode of a type T ::= SEQUENCE OF C fails if C is encoded with indefinite length. compiler OTP-3831 Modules containing long literals string concatenated with variables would take long time to compile and the beam module would be unecesserialy large. OTP-3885 By default, debug information is no longer included in beam modules. Use the compiler option debug_info to include debug information. debugger OTP-3829 The debugger could not be run in embedded mode, because the dbg_ets module was not listed in the app file. OTP-3845 In some cases, the debugger would in a call to undefined function erts_debug:apply/4. erl_interface OTP-3809 A race-condition bug in the term allocation routines was corrected. OTP-3810 erl_interface could not be linked with pthreads. OTP-3820 The TCB of VxWorks processes no longer grows when erl_errno is accessed. On Pthreads plattforms the use of erl_errno no longer crashes programs using multithreading. OTP-3824 Name clashes between Erlang emulator and erl_interface on VxWorks removed. gs OTP-3789 A timing problem sometimes caused a crash when a window was destroyed. inets -------- Better handling of invalid server response (e.g. as a result of an erroneous server config). OTP-3892 Invalid guard in function ftp:open/2. This problem exist only in inets-2.5.4. Use ftp:open/3 instead. OTP-3751 Support for choosing port number when opening FTP connection. It is now possible to open a connection using a user specified port number. Default is still 21. OTP-3755 Wrong return value from FTP function recv_bin. The function actually returned: {ok,{ok,binary()}} instead of {ok,binary()} OTP-3793 The HTTP server hangs due to unhandled info: {'EXIT',<0.12542.6>,badsig} Crash of the listener process for this reason not handled. kernel OTP-3773 A hanging bug in the protocol between dist_ac and application_controller has been fixed. It occurred when dist_ac had stopped an application with {ac_change_application_req,AppName,stop_it} and then tried to start it with {ac_change_application_req, AppName,{takeover,FromNode,RestartType}}. OTP-3780 If a new application was added using code:replace_path/2, the code:lib_dir/1 function would fail on the new application name. OTP-3798 The internal inet_db counter next_id did not keep within the bounds [0, 65535] imposed by DNS query field width. The reply was then not recognized since the reply id was truncated to 16 bits. This bug is now fixed. OTP-3807 The default receive buffer size for UDP has been restored to 8192 bytes, which it was before R7. OTP-3823 gen_upd:recv/2,3 now works better. The option combination [binary, {active, false}] was broken. OTP-3836 gen_tcp:connect/3,4, and gen_udp:send/4 now exits with badarg if an IP address tuple with a field integer value that is is not in the range 0 through 255 is passed as argument. Previously this caused a function clause. OTP-3883 The function inet:gethostbyname/2,3 sometimes returned {error, timeout} when failing to lookup a name. This has been changed to the more appropriate response {error, nxdomain}. OTP-3886 The function inet:gethostbyname/2,3 now accepts an IP-string as the Name argument for all resolver types. This previously did not work for the built in DNS resolver, nor for the /etc/hosts file resolver. OTP-3887 The native version of the resolver for erlang no longer may crash the system due to external causes like catatonic DNS servers. OTP-3894 When a host machine was misconfigured so that inet:gethostbyname/1 returned an empty hostname for the host on which an erlang node was started, inet_config crashed with a function clause during node start on some platforms. This has now been fixed. stdlib OTP-3909 Dets file repair failed with {error, eaccess} on the Windows platforms in stdlib-1.9.3 (patched R7B). This is now corrected and dets files can be repaired. OTP-3877 Ets:info/2 and dets:info/2 no longer returns values other than 'undefined' for non existing ets/dets tables. The behaviour is now as described in the documentation. OTP-3882 The (betatest) ets:select/2 call in R7B may no longer crash the emulator. This only affects customers beta testing this functionality. OTP-3746 The ets module now contains iterator functions foldl/3 and foldr/3 analogous to the ones in the lists module. OTP-3782 Somewhat faster repair of dets files. tools OTP-3879 The functions xref:m/1 and xref:d/1 return a list of undefined functions in case the BEAM files do not contain debug information.