Highlights
Erlang 5.2/OTP R9B
This document describes the major new features and changes in version R9B of
Erlang/OTP. The changes are described as a comparision with the original
R8B release and some of them have already been delivered as patches to R8B
and/or R7B. For more detailed information, please refer to the release notes
for the individual applications. Interesting news in this release is that we
have integrated results from the ASTEC-HiPE
research project as part of the product. See Hipe and Packages below
for more info on that.
Asn1, compiler and runtime functions for ASN.1
- New option optimize in combination with per_bin and ber_bin which makes
the encode/decode functions much faster than before. In rough terms the
encode/decode is 2 times faster when optimize is used.
- It is now possible to add options to the Erlang compiler to be used when
compiling the generated .erl file. Any option that is not recognized as a
specific ASN.1 option will be passed to the final step like: erlc
+debug_info Mymodule.asn or asn1ct:compile('Mymodule',[debug_info]).
- The feature "multi file compilation" which compiles several
ASN.1 modules together and produces one .erl file is improved.
Comet, COM client for Erlang (REMOVED)
The Comet application is removed from the product because we currently have no
resources to maintain it. We plan to make it available on the Open Source site.
It still works on Windows NT 4, but there are problems on Windows XP.
Compiler
- The documentation for the 'compile' module now lists several options that
were previously undocumented or only documented in the 'erl_lint'
documentation. One very useful option is warn_unused_vars, which
also is improved in the compiler. Use of this option can reveal bugs and
dead code, it is highly recommended.
- The endianess specification 'native' has been added to the bit syntax. It
will resolve to either big or little endian at load time. It is specially
useful for communcating with linked-in drivers.
cosEvent, Orber OMG Event Service
Unchanged since Erlang/OTP R8B.
cosEventDomain, OMG Event Domain Admin Service NEW
A new Corba service "cosEventDomain" is added as a separate
application. cosEventDomain is compliant with the OMG service
CosEventDomainAdmin.
cosFileTransfer
Unchanged since Erlang/OTP R8B.
cosNotification, Orber OMG Notification Service
Minor changes.
cosProperty, Orber OMG Property Service
Unchanged since Erlang/OTP R8B
cosTime, Orber OMG Timer and TimerEvent Services
Unchanged since Erlang/OTP R8B.
cosTransactions, Orber OMG Transaction Service
Minor changes.
Crypto, MD5, SHA and CBC-DES encryption/decryption
No changes since OTP R8B.
Debugger
Minor bugfixes.
ERTS, Erlang emulator
- The previous hard system limit of 255 known remote nodes has been removed.
With the exception of node-name atoms, all data regarding remote nodes is
now garbage collected.
- Major improvements regarding memory handling, introduction of sl_alloc
version 1 default and sl_alloc version 2 which makes it possible to tune the
memory allocation behaviour to best suite a certain system. A number of
other memory handling improvements are also added.
- The endianess specification 'native' has been added to the bit syntax. It
will resolve to either big or little endian at load time. It is specially
useful for communcating with linked-in drivers.
Erl_Interface, low level interface to C
Minor bugfixes.
EVA, a multi-featured event and alarm handler
Minor updates.
Et, an Event Tracer with graphical viewing of trace data NEW
The two major components of the Event Tracer (ET) tool is a graphical sequence
chart viewer (et_viewer) and its backing storage (et_collector).
One collector may be used as backing storage for several simultaneous viewers
where each one may display a different view of the same trace data.
GS, a Graphics System
GS is updated to use Tcl/Tk 8.3.4. This is a major update since GS previously
used an ancient version of Tcl/Tk.
HiPE, High Performance Erlang NEW
A number of useful and promising features from the HiPE project at Uppsala
University is integrated into this version of Erlang/OTP. The major features
are:
- Native code generation for Sparc (Solaris) and x86 (Linux). The native
option to the compiler is used to select this codegeneration. It is then
possible to run the generated modules together with the ordinary interpreted
modules on a standard OTP R9B system.
The native codegeneration can give significant performance improvements
especially on sequential code. See http://www.csd.uu.se/projects/hipe/hipe.html
for more info. This feature is intended for evaluation and may be supported
in future versions. Feedback is velcome.
- "Shared heap" a new approach to memory handling within the
Erlang emulator where all Erlang processes share a common heap. This way of
handling memory is very interesting and have a potential to reduce memory
consumption an improve performance. A separate emulator is built to support
"shared_heap", it is started with 'erl -shared'. This
feature is intended for evaluation and may be supported in future versions.
Feedback is velcome.
IC, an IDL compiler
A number of minor improvements and corrections.
Inets, HTTP server and FTP client.
- A HTTP client is added to the application. Author: Johan Blom of Mobile
Arts AB. It is provided as is with very limited documentation in this
version but we plan to support it fully in coming versions of Inets.
- Updated to handle HTTP/1.1.
Jinterface, low level interface to Java
No changes since R8B.
Kernel
- The set_net_ticktime/[1,2] and get_net_ticktime/0 functions has been added
to the net_kernel module (see net_kernel(3)) which makes it possible to
change the net_tick time during operation.
- There are new functions bchunk/2,3 in the disk_log
module that are to be used like chunk/2,3 but return objects as
binaries.
- The loading of BEAM code at start-up of embedded systems has been
optimized: if the thread pool is non-empty (see the system flag +A
in erl(3)) and files are read from a file system (the default, see
the value efile of the -loader flag in erl(3))
disk seek times have been reduced.
Megaco, a Megaco/H.248 protocol stack
- The binary codecs ber_bin and per_bin is now both compiled with the
+optimize asn1-compiler flag for better runtime performance.
- The previously included tool, et, has been moved out of the Megaco
application. It is now provided as a separate application called Et.
Mnemosyne, query language support for Mnesia
No changes since R8B.
Mnesia, a heavy duty real-time distributed database
- The table fragmentation functionality in Mnesia has been improved.
- Select and match_object is done in parallel which should improve
performance.
- A new concept of hash modules has been introduced. This means that a user
now can define its own mapping between record keys and the actual table
fragment hosting the record.
- Improved table loading performance during startup. Mnesia should be able
to utilize the network bandwidth better, and Mnesia also uses new dets
functionality to improve the loading of disc_only_copies tables, if
possible.
Mnesia_Session, a foreign language interface to Mnesia
Minor bugfixes.
Observer NEW
Observer is a new application with various facilities for
"observing" a live system with minimal disturbance. The application is
fully functional and supported, but the functionality and API's are still in
beta-status i.e they can be changed in the next versions. We are very interested
in feedback from users regarding the functionality in Observer.
Observer currently contains two different parts:
- Trace Tool Builder , a base for building trace tools
for single node or distributed Erlang systems.
- Erlang Top, a tool for monitoring of Erlang
processes similar to the UNIX top utility.
ODBC
- The Erlang ODBC application consists of both Erlang and C code. The C code
is now delivered as a precompiled executable for Windows and Solaris.
- Various optimizations.
- New API that has an Erlang/OTP touch and feel instead of being a
C-interface with Erlang syntax. The old interface is deprecated and will be
removed in Erlang/OTP R10.
Orber, a CORBA Object Request Broker
- Support for fragmented IIOP-1.2 messages.
- Possible to add and use the IOR component TAG_ALTERNATE_IIOP_ADDRESS.
- Unique VMCID:s assigned to Orber by the OMG.
- Supports the Fixed datatype.
- Possible to add new initial references.
- The NameService can be configured to be stored on disk.
- It is now possible to set Orber's configuration parameters in, for
example, an Erlang shell.
- Possible to list which port numbers Orber may use locally when connecting
to another ORB.
- Improved documentation.
- Several new debugging facilities:
- Two IIOP trace interceptors included (different verbosity).
- Type checking within an Erlang node.
- OrberWeb, which is an extension of the WebTool application.
- IOR dump.
OS_Mon, monitoring of disk usage and OS resources
- cpu_sup:util/0 and cpu_sup:util/1 which returns information about cpu
utilization have been added. For further information see cpu_sup(3).
- Nodename is now used as key in loadtable (os_mon mib).
- The loadCpuLoad5, loadCpuLoad15 values has been added to the os_mon mib.
Packages NEW
This is an extension to Erlang with structured program module packages, in a
simple, straightforward and useful way. The implementation is done by Richard
Carlsson from the HiPE team at Uppsala University and is intended for
evaluation. This or a slightly modified solution may be supported in future
versions of Erlang/OTP. The debugger might have some problems with the naming of
modules when packages are used. See http://www.erlang.se/publications/packages.html
for more info. There is also a paper about Packages at http://www.it.uu.se/research/reports/2000-001.
Parsetools, parsing and lexical analysis tools
No changes since R8B.
Pman, graphical process manager
Minor changes.
Runtime_Tools
- Trace ports can now be opened on remote nodes
- It is possible to use the local node as a "trace control node",
i.e. trace only remote nodes.
- The function dbg:i/0 now prints information about all traced
nodes
- Added a number of functions for controlling tracing on remote nodes.
SASL, release handling tools
Minor updates.
SNMP
Minor additions and bugfixes.
SSL
Minor changes.
STDLIB, Erlang standard libraries
- A number of improvements in dets.
- The function ets:select_count/2 is added to the stdlib
application.
- New functions sofs:extension/3 and sofs:partition/3.
- A new module ms_transform which implements a parse transform that
translates 'fun' syntax into "match specifications". This
simplifies writing of "match specifications" used in ets:select
and in dbg.
- The undocumented and deprecated modules bplus_tree and unix
has been removed.
Toolbar
Minor changes.
Tools
There is a new tool cprof, a call count profiler. It is something
inbetween cover and fprof, and can be used to get a picture of
which functions are most frequently called.
See tools user's guide and reference manual.
TV, grapical table visualizer
Minor changes.
WebTool
Minor changes.