Bug fix release : otp_src_R10B-3
Build from snapshot : 2005-02-10
This is a bug fix release 3 for the R10B release.
You can download the full source distribution from
http://www.erlang.org/download/otp_src_R10B-3.tar.gzhttp://www.erlang.org/download/otp_src_R10B-3.readme
Note: To unpack the TAR archive you need a GNU TAR compatible
program. For instance, on MacOS X you need to use the 'gnutar' command;
you can't use the 'tar' command or StuffIt to unpack the sources.
For installation instructions please read the README that is part of
the distribution.
The Windows binary distribution can be downloaded from
http://www.erlang.org/download/otp_win32_R10B-3.exe
The documentation at http://www.erlang.org will be updated. You can
also download the complete HTML documentation or the Unix manual files
http://www.erlang.org/download/otp_doc_html_R10B-3.tar.gzhttp://www.erlang.org/download/otp_doc_man_R10B-3.tar.gz
For some OTP applications there are more detailed release notes in the
HTML documentation.
We also want to thank those that sent us patches, suggestions and bug
reports,
The OTP Team
--- otp --------------------------------------------------------------
OTP-5346 Linked in drivers in the crypto, and asn1 applications are
now compiled with the -D_THREAD_SAFE and -D_REENTRANT
switches on unix when the emulator has thread support
enabled.
Linked in drivers on MacOSX are not compiled with the
undocumented -lbundle1.o switch anymore. Thanks to Sean Hinde
who sent us a patch.
The linked in driver in crypto, and the port program in ssl,
now compile on OSF1.
Minor Makefile improvements in runtime_tools.
--- erts -------------------------------------------------------------
OTP-5234 Minor update of the internal documentation of the epmd
protocol.
The listen port of epmd has now been registered at IANA:
http://www.iana.org/assignments/port-numbers
OTP-5297 The function erlang:float/1 can now be used in match
specifications and is recognized by dbg:fun2ms/1 and
ets:fun2ms/1. This addition is part of the work to
"harmonize" match specification guards with Erlang guards.
OTP-5324 The register/2 BIF would return 'true' even if the second
argument was not a pid for living process. Corrected to cause
an exception.
OTP-5340 In the 'bag' type of ets tables, elements having the same key
were supposed to be ordered in insertion order. That was not
the if a rehash occurred.
OTP-5361 Fixed a bug in the hybrid heap in distributed send
operations.
OTP-5376 A BIF erlang:raise/3 has been added. See the manual for
details. It is intended for internal system programming only
and advanced error handling.
OTP-5384 run_erl.c now works on Mac OS X and FreeBSD.
OTP-5386 Mikael Pettersson (HiPE) corrected a few bugs in the emulator
that caused problems when compiled with the experimental
gcc-4.0.0.
--- kernel -----------------------------------------------------------
OTP-5363 The application master for an application now terminates the
application faster, which reduces the risk for timeouts in
other parts of the system
OTP-5376 A BIF erlang:raise/3 has been added. See the manual for
details. It is intended for internal system programming only
and advanced error handling.
--- stdlib -----------------------------------------------------------
OTP-5276 The deprecated attribute is now checked by the linter.
See xref(3) for a description of the deprecated
attribute.
OTP-5327 Several bugs in the Erlang shell have been fixed.
OTP-5329 Some dead code reported by Dialyzer was eliminated.
OTP-5335 The restricted shell will now indicate if the return value
from a user predicate is on an incorrect form.
OTP-5338 The linter could output invalid warnings about bit patterns
in record initializations. This problem has been fixed.
OTP-5341 ordsets:is_set(NoList), where NoList is any term except a
list, would crash. For consistency with sets:is_set/1
and gb_sets:is_set/1, it now returns 'false'.
--- compiler ---------------------------------------------------------
OTP-5342 Given bit syntax construction in certain complex contexts
involving a catch, the compiler would either crash or
terminate due to failure in an internal consistency check.
(Thanks to Fredrik Thulin.)
Matches such as '<<103133:64/float>> = <<103133:64/float>>'
used to fail. Now they succeed.
Shadowing of variables in bit syntax matches
in fun heads such as in 'L = 8, F = fun(<<L:L,B:L>>) -> B
end' was handled incorrectly by the compiler. The fun used to
be compiled as if it was written 'fun(<<8:8,B:8>>)', while it
should be compiled in the same way as 'fun(<<L:8,B:L>>)'.
A bug in the validation pass has been corrected. It
sometimes occurred when the compiler optimized by reusing
code for causing an exception when the reused code was called
from within catch or try-catch statements. Then the validator
refused to approve the code and complained about
unknown_catch_try_state.
Corrected a bug in the optimizer that would cause the
compiler to crash. (Thanks to Peter-Henry Mander.)
There a now warnings generated if a bit syntax construction
will fail at run-time because of a type mismatch (e.g. <<an_atom:8>>).
OTP-5371 Binary pattern mattern such as 't(<<A:8>> = <<A:8>)' used to
silently fail at runtime (i.e. never match). The compiler now
generates an error for any such patterns.
--- parsetools -------------------------------------------------------
OTP-5369 A bug in the file parsetools/include/yeccpre.hrl
caused yecc:parse_and_scan/1 to always report a parse
failure when the lexer reported end-of-file. This problem has
been fixed.
--- hipe -------------------------------------------------------------
OTP-5385 A few bugs were corrected in the hipe application.
--- runtime_tools ----------------------------------------------------
OTP-5329 A bug in 'dbg' when tracing to wrap trace files has been corrected.
It failed to delete any already existing wrap trace files
with the same names when starting a new wrap trace.
(The bug was found by Dialyzer.)
--- tools ------------------------------------------------------------
OTP-5071 The Xref analysis 'locals_not_used' could return too many
functions. This problem has been fixed.
OTP-5305 The cover tool could not always compile parse
transformed modules. This problem has been fixed.
--- sasl -------------------------------------------------------------
OTP-5287 A bug that made it impossible to call rb:show(N) (N being an
integer) twice without getting an error has been fixed.
--- gs, tv, appmon, debugger, pman, toolbar --------------------------
OTP-5381 The graphic applications now search for HTML documentation in
the correct place.
--- inets ------------------------------------------------------------
OTP-5188 The inets supervision tree has been reorganized to create a
better balance between the inets services. Preferably they
should not effect each other. The ftp service has also been
included in the inets supervision tree, it was for reasons
unknown, not included before.
OTP-5189 The service concept in inets is now better documented.
OTP-5249 The URI check that disables relative links that goes outside
the server-root still missed a few cases, in spite of the
improvement in OTP-5140.
OTP-5261 The inets shutdown times have proven to be too short under
some circumstances, as a heavy load, therefore they have been
prolonged.
OTP-5303 The http client pipelining implementation has been rewritten
as the old implementation was too optimistic about when to
pipeline. In the process of doing this also the error
handling was improved, better clean up is performed when the
request handling process terminates and better handling of
the case that the httpc_manager process dies and is
restarted.
OTP-5304 Options for automatic redirection and pipelining is now
available in the http client API.
OTP-5309 Improved handling of status codes 30X and 50X.
Fixed Bugs and Malfunctions:
OTP-5368 When sending a request through a proxy the absolute URI must
be used.
Improvements and New Features:
OTP-5331 Basic support for cookies was implemented. Later some more
functions to inspect cookies may be added.
OTP-5379 A top tftp supervisor was added in preparation for adding a
tftp service in a future inets release.
--- megaco ------------------------------------------------------------
OTP-5296 The error counter medGwyGatewayNumErrors not working. This
counter is incremented by the megaco application when decode
of a message fails. Due to the construction of the decoders,
nothing beyond the error reason (in the text case, basically
an unintelligible list of tokens) is returned. E.g. not the
Mid needed to be able to deduce which MG (conn-handle), this
message came from. This resulted in an increment of the
"global" medGwyGatewayNumErrors counter instead of the
connection specific. This has been fixed. In the text case by
adding a mini decoder, that basically only decodes the
message as far as the Mid (if the error is in or before the
Mid, then this decoder also fails).
OTP-5310 When the megaco:cancel/2 function is called, the megaco
application is supposed to perform a cleanup. E.g. remove
aut-dated request and reply records. For the reply-records
this did not work, since it only removed those record which
had the state field set to wait_for_ack, and not aborted! If
the state had been set to aborted and not yet been removed
(which normally happens when the reply_timer times out) when
the disconnect and cancel functions where called, those
records would never be removed. This means that if eventually
a transaction was received which had the same transaction-id
as the aborted reply, this whould just be ignored!
OTP-5312 Incorrect definition of hexdig in the flex-scanner.
OTP-5313 Various cleanup of the v2 text parser:
1) Removed unused Nonterminal and rule digitMapName.
2) Removed superflous transactionRequest rule's.
(this was probably a leftover from RFC2885)
Improvements and new features:
OTP-5204 Implementation of the Megaco v2 corrigendum 1 (03/2004).
This means in short:
- The ModemDescriptor has been deprecated. If this
descriptor is found in a received message it will be
ignored (removed from the message).
If an attempt is made to encode a message containing a
ModemDescriptor, an error will be returned.
If in the binary codec case, encoding-config contains native,
then the ModemDescriptor will however be included in the message
when encoding and also decoded. This means that it in this case
it is up the user to never include the ModemDescriptor in a
transmitted message and to ignore it, if received.
- Addition of the EmergencyOffToken, which is used in the
contextProperty.
OTP-5220 Added receiving pending limit config property. This is the limit for
the number of pending messages that is accepted before a request is
considered "a lost cause".
OTP-5236 Added support for preliminary version 3. Based on TD-33. See chapter
Handling megaco versions on how to configure and use the preliminary
version 3 (prev3a).
OTP-5351 Added configure thread support.
Fixed bugs and malfunctions:
OTP-5352 When text encoding the ServiceChangeParm in v2, the serviceChangeInfo
field was ignored.
OTP-5353 When text parsing serviceChangeParm in v2, all of auditItem was put
into the auditToken field of the AuditDescriptor (the serviceChangeInfo
field of the ServiceChangeParm record). The indAudterminationAudit
should go into the auditPropertyToken field.
Incompatibilities:
OTP-5220 The config property orig_pending_limit has been renamed to
sent_pending_limit.
--- mnesia ------------------------------------------------------------
Fixed Bugs and Malfunctions:
OTP-5289 Reading bad backup files failed completly, now it just
ignores the bad parts.
OTP-5300 Disk tables could be loaded in wrong order at startup,
changes made when a node was down could be missed.
OTP-5328 A call to mnesia:add_table_copy could hang if the node which
the table was copied from crashed.
OTP-5358 Mnesia could crash during the start phase if a mnesia table
was deleted by another node.
Improvements and New Features:
OTP-5347 Introduced a new env parameter pid_sort_order which
should be set to r9b_plain on non unpatched R9B
systems to be able to use mnesia on mixed systems with
unpatched R9B nodes. This is a workaround for a specific
upgrade problem when mixing certain emulators versions so it
should not be used unless needed.
--- snmp ------------------------------------------------------------
Improvements and new features:
OTP-5286 [manager] Added possibility to monitor a registered user.
See snmpm:register_user_monitor.
OTP-5298 [agent] Improved symbolic store. Alias and Oids where stored with
similar key's (seperated by types: atom() and lists() respectively).
Also added new function: snmpa:which_aliasnames.
OTP-5308 [agent] The agent local_db volatile storage method uses an ets-table
which is private. This table has been made protected in order to
make it easier to bedug and test the snmp agent.
Reported Fixed Bugs and Malfunctions:
OTP-5273 Misspelled deprecated function. Non-existent function
snmp:is_constistent/1 was marked as depricated. Should have been
snmp:is_consistent/1).
OTP-5281 [agent] Unclear documentation for function snmpa:send_notification.
The Recv argument (specifically the {M,F,A} variant).
OTP-5299 [manager] It was never documented how the default user behaviour
could be overriden (default user is the module snmpm_user_default).
See application configuration or configuration params.
OTP-5306 [manager] The server process contained a bug that caused it to
crash, if it received an exit message from it's gct (GC timer)
process and it's verbosity was log or higher. This also effects
the application dowgrade.
OTP-5307 [agent] The agent config file, target_addr.conf, was incorrectly
described in the Target Address Definitions chapter of the User's
Guide. The EngineId option was left out.
OTP-5314 [manager] When a InformRequest is received, the manager sends a
response message. This did not include the varbinds of the original
message. See RFC 3416, chapter 4.2.7.
OTP-5315 [manager] Erroneous function guards made it possible to update
some agent info (that should be "static").
OTP-5364 [manager] Manager synchronous get-function with timeout erroneous.
Results in a function clause.
OTP-5365 Replace in decoder fun's of the "old style" fun format, {atom(), atom()},
with a proper fun, e.g. "fun the_function/1".
OTP-5367 [manager] Register agent using the config file agents.conf failed due to
incorrect function guard.
--
Björn Gustavsson, Erlang/OTP, Ericsson AB