Bug fix release : otp_src_R11B-5
Build date      : 2007-06-12

This is bug fix release 5 for the R11B release.
You can download the full source distribution from
 
  http://www.erlang.org/download/otp_src_R11B-5.tar.gz
  http://www.erlang.org/download/otp_src_R11B-5.readme (this file)

Note: To unpack the TAR archive you need a GNU TAR compatible
program. For instance, on MacOS X before 10.3 you must 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_R11B-5.exe


On-line documentation can be found at http://www.erlang.org/doc/.
You can also download the complete HTML documentation or the Unix manual files

  http://www.erlang.org/download/otp_doc_html_R11B-5.tar.gz
  http://www.erlang.org/download/otp_doc_man_R11B-5.tar.gz

We also want to thank those that sent us patches, suggestions and bug
reports,

The OTP Team


--- HIGHLIGHTS ------------------------------------------------------------

    OTP-6605  Erlang/OTP is now also distributed with most platform
	      independent build results pre-built. For more information see
	      the README file in the top directory.

    OTP-6641  New application: DocBuilder, providing functionality for
	      generating HTML documentation for Erlang modules and
	      Erlang/OTP applications from XML source code and/or EDoc
	      comments in Erlang source code.

	      This is the first version of DocBuilder to be released as
	      part of Erlang/OTP. Previously it has been used as an
	      internal tool only.


--- documentation ------------------------------------------------------------

    OTP-6675  Corrected an error in Getting Started: the operator for "less
	      than or equal" is =<. (Thanks to Douglas Livingstone).

	      Fixed a typo in Reference Manual/Compilation and Code
	      Loading/Code Replacement. (Thanks to Matthias Lang).

	      Corrected an error in Reference Manual/Expressions/Try, the
	      syntax of a try expression of is try Exprs ..., not try Expr
	      .... (Thanks to Erik Stenman).


--- otp ------------------------------------------------------------

    OTP-6605  Erlang/OTP is now also distributed with most platform
	      independent build results pre-built. For more information see
	      the README file in the top directory.

    OTP-6742  The makefile variable ERL_FLAGS has been removed from all
	      makefiles in OTP, since it collided with the environment
	      variable ERL_FLAGS which is used by the Erlang runtime
	      system. The collision occurred when the user had the
	      environment variable ERL_FLAGS set while building OTP. The
	      environment variable ERL_FLAGS can now be used to pass flags
	      to the Erlang runtime system also when building OTP.


--- appmon-2.1.9 ------------------------------------------------------------

    OTP-6683  Fixed dialyzer warning in appmon_info.

    OTP-6725  Obsolete guard tests (such as list()) have been replaced with
	      the modern guard tests (such as is_list()).


--- asn1-1.4.5 ------------------------------------------------------------

    OTP-6601  Merging modules by inline earlier disabled the driver (used
	      in modules generated with [ptimized]/[optimized,driver]
	      options). Now this is repaired.

    OTP-6698  The compiler now handle all forms of ObjectSetSpec according
	      to ITU-T recommendation X.681 (ISO/IEC 8824-2:2002).

    OTP-6702  Checking phase now aware of which module an INSTANCE OF is
	      declared in.

    OTP-6707  Enhanced support of referencing object sets by
	      ObjectSetFromObjects.

    OTP-6717  Support for parameterized object in an object set.


--- compiler-4.4.5 ------------------------------------------------------------

    OTP-6630  The compiler would crash if you tried to combine to non-list
	      literals with '++' (for instance, an_atom++"string").

    OTP-6689  Minor Makefile changes.


--- cosEvent-2.1.1 ------------------------------------------------------------

    OTP-6701  Minor Makefile changes.


--- cosEventDomain-1.1.1 ------------------------------------------------------------

    OTP-6701  Minor Makefile changes.


--- cosFileTransfer-1.1.3 ------------------------------------------------------------

    OTP-6701  Minor Makefile changes.


--- cosNotification-1.1.5 ------------------------------------------------------------

    OTP-6701  Minor Makefile changes.


--- cosProperty-1.1.4 ------------------------------------------------------------

    OTP-6701  Minor Makefile changes.


--- cosTime-1.1.1 ------------------------------------------------------------

    OTP-6701  Minor Makefile changes.


--- cosTransactions-1.2.2 ------------------------------------------------------------

    OTP-6701  Minor Makefile changes.


--- crypto-1.5.1.1 ------------------------------------------------------------

    OTP-6680  The linked in driver for the crypto application is now linked
	      statically against the OpenSSL libraries, to avoid
	      installation and runtime problems in connection to the
	      OpenSSL library locations.

    OTP-6689  Minor Makefile changes.


--- debugger-3.1.1.1 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.

    OTP-6725  Obsolete guard tests (such as list()) have been replaced with
	      the modern guard tests (such as is_list()).


--- dialyzer-1.7.0 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.

    OTP-6736  Dialyzer can now use success typings to find discrepancies.
	      As a consequence significantly more discrepancies are
	      detected. The downside is that the analysis takes about 2 to
	      2.5 times longer than in previous versions, and may also
	      result in some warnings that might be harder to interpret
	      even though they are correct. This has been a major change,
	      worth of increasing the version number.

	      New command-line options:

	      --succ_typings Use the success typings analysis.

	      --dataflow (default) Use the previous analysis.

	      The new type unit() has been introduced to handle the return
	      type of non-terminating functions such as servers.

	      Dialyzer's code server uses a compressed representation and
	      the analysis requires significantly less memory than in
	      previous versions.


--- docbuilder-0.9 ------------------------------------------------------------

    OTP-6641  New application: DocBuilder, providing functionality for
	      generating HTML documentation for Erlang modules and
	      Erlang/OTP applications from XML source code and/or EDoc
	      comments in Erlang source code.

	      This is the first version of DocBuilder to be released as
	      part of Erlang/OTP. Previously it has been used as an
	      internal tool only.


--- edoc-0.7.3 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.

    OTP-6737  Dialyzer warnings were eliminated.


--- erts-5.5.4.1 ------------------------------------------------------------

    OTP-6598  Setting the time on the system while using heart on a linux
	      machine where the emulator was built with clock_gettime
	      support (default from Linux 2.6/erts-5.5.4 and upwards),
	      could make the heart command fire. This was due to bug in the
	      heart executable which is now corrected.


--- erts-5.5.4.2 ------------------------------------------------------------

    OTP-6580  The default stack size for threads in the async-thread pool
	      has been shrunk to 8 kilowords, i.e., 32 KB on 32-bit
	      architectures. This small default size has been chosen since
	      the amount of async-threads might be quite large. The default
	      stack size is enough for drivers delivered with Erlang/OTP,
	      but might not be sufficiently large for other dynamically
	      linked in drivers that use the <c>driver_async()</c>
	      functionality. A suggested stack size for threads in the
	      async-thread pool can be configured via the <c>+a</c> command
	      line argument of <c>erl(1)</c>.

    OTP-6602  When a port steals control over a file descriptor from
	      another port, the stealing port tests if the other port is
	      alive. This in order to be able to give an accurate error
	      message. In the runtime system with SMP support, this test
	      was done without appropriate locks held. This could in worst
	      case lead to an erroneous error message; therefore, this bug
	      is to be considered harmless.


--- erts-5.5.4.3 ------------------------------------------------------------

    OTP-6592  process_flag/2 accepts the new flag sensitive.

    OTP-6627  process_flag(trap_exit, Bad) where Bad was a
	      term not equal to true or false, didn't fail
	      with badarg as it should; instead, the failure was
	      silently ignored. This bug was introduced in
	      erts-5.5.2

    OTP-6628  The minimum and default stack size for async-threads has been
	      increased to 16 kilowords. This since the previous minimum
	      and default stack size of 8 kilowords proved to be too small
	      (introduced in erts-5.5.4.2).


--- erts-5.5.5 ------------------------------------------------------------

    OTP-6591  The functions in gzio.c have been renamed to avoid conflict
	      with drivers that indirectly linked with an external zlib
	      library.

    OTP-6593  For scripts written using escript, there is a new function
	      escript:script_name/0, which can be used to retrieve the
	      pathame of the script. The documentation has been clarified
	      regarding pre-defined macros such as ?MODULE and the module
	      name.

    OTP-6600  The section Guards in the chapter The Abstract Format of the
	      ERTS User's Guide has been updated.

    OTP-6625  Corrected protocol layer flue for socket options SO_LINGER,
	      SO_SNDBUF and SO_RCVBUF, for SCTP.

    OTP-6681  The behaviour of the inet option {active,once} on peer close
	      is improved and documented.

    OTP-6684  The inet option send_timeout for connection oriented sockets
	      is added to allow for timeouts in communicating send requests
	      to the underlying TCP stack.

    OTP-6685  The emulator without SMP support dumped core if an
	      async-thread finished a job after the emulator had begun
	      writing an erl_crash.dump.

    OTP-6686  In bit syntax matching, integer fields with greater size than
	      16Mb would fail to match. (Thanks to Bertil Karlsson and
	      Francesco Pierfederici.)

	      Matching out a 32-bit integer not aligned on a byte boundary
	      from a binary could cause an heap overflow (and subsequent
	      termination of the emulator).

	      A module that contained bit syntax construction with a
	      literal field size greater than 16Mb would fail to load.

	      Several other similar bugs having to do with huge field sizes
	      were eliminated.

	      Attempting to construct a binary longer than 536870911 bytes
	      will now fail with a system_limit exception (rather than fail
	      in mysterious ways or construct an binary with incorrect
	      contents). Similarily, attempting to match a binary longer
	      than 536870911 bytes will now fail (instead of producing an
	      incorrect result). This limitation has been documented in the
	      Efficiency Guide. (The limit is in the 32-bit emulator; use
	      the 64-bit emulator if you need to handle larger binaries
	      than 536870911.)

    OTP-6692  Bugs in rem and div of very large numbers are corrected.

    OTP-6693  erlang:system_info({allocator, Alloc}) didn't allocate enough
	      heap when a bignum was part of the result which could cause
	      an emulator crash.

    OTP-6697  The command line flag -args_file FileName, and the
	      environment variables ERL_AFLAGS, and ERL_ZFLAGS for the erl
	      command have been added. For more information see the erl(1)
	      documentation.

    OTP-6699  It was previously not possible to pass erts_alloc the same
	      configuration via the command-line, as used by default.

	      A +M* command-line argument that configure a size of some
	      sort can now be passed a value that equals the size of the
	      address space. The value used, in this case, will be "the
	      size of the address space" - 1.

    OTP-6729  SysIOVec* driver_peekq(ErlDrvPort port, int *vlen) did not
	      update *vlen if port was invalid. *vlen is now set to -1 if
	      the port is invalid.

	      The efile driver expects *vlen to be updated also when the
	      port is invalid. This situation occurs seldom, but when the
	      runtime system has async-threads enabled and ports are killed
	      it can. When it occured the runtime system crashed.

    OTP-6731  The is_constant/1 type test has been deprecated.
	      is_constant/1 is improperly named and almost entirely
	      undocumented.


--- et-1.0.0.1 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.


--- gs-1.5.7 ------------------------------------------------------------

    OTP-6682  Fixed font size and some bugs in the generic file dialog,
	      which is undocumented and mainly intended for internal use
	      (today it is only used by Pman).

	      The file priv/bitmap/fup.bm has been added and the module
	      tool_genfd removed.

	      Also fixed dialyzer warning in gs_packer.

    OTP-6725  Obsolete guard tests (such as list()) have been replaced with
	      the modern guard tests (such as is_list()).


--- hipe-3.6.3 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.

    OTP-6738  Miscellanous updates.


--- ic-4.2.13 ------------------------------------------------------------

    OTP-6701  Minor Makefile changes.


--- inets-4.7.12 ------------------------------------------------------------

    OTP-6573  [httpd] - When calling httpd:restart there was a file
	      descriptor and ets table leek due to the fact that the
	      semantics of the function restart is not restart but reload.

    OTP-6596  [tftp] Crash in tftp_engine:terminate/3 caused big crash
	      report. The file was however transferred as normal, but the
	      ugly printout is now gone.


--- inets-4.7.13 ------------------------------------------------------------

    OTP-6642  [tftp] The TFTP client/server implements now a more relaxed
	      interpretation of the RFC 1350 regarding re-receive of data
	      packets. If multiple copies of the same data packet is
	      received the spurious ones are silently ignored.


--- inets-4.7.14 ------------------------------------------------------------

    OTP-6691  [tftp] The TFTP client/server implements now a more relaxed
	      interpretation of the RFC 1350 regarding re-receive of
	      acknowledgments. If multiple copies of the same
	      acknowledgments is received the spurious ones are silently
	      ignored.


--- inets-4.7.15 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.

    OTP-6706  [tftp] The TFTP client/server implements now a more relaxed
	      interpretation of the RFC 1350 regarding re-receive of
	      acknowledgments. If multiple copies of the same
	      acknowledgments is received the spurious ones are silently
	      ignored. This fix was intended for inets-4.7.14 but
	      accidently it was not included in that release.


--- inets-4.7.16 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.


--- inviso-0.3 ------------------------------------------------------------

    OTP-6677  In this release the first working version of the inviso_tool
	      is included. Updates and small bugfixes in the inviso
	      application.


--- inviso-0.4 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.

    OTP-6703  A bug in inviso_rt_meta caused an ETS table containing
	      information on initiated (init_tpm) functions to be lost when
	      suspending tracing. Further an enhancement to inviso_rt has
	      been introduced making it possible to activate process trace
	      flags based on globally registered names. It is then not an
	      error to activate a global name on a node where the name does
	      not reside. The process count in the return value will simply
	      be set to zero (hence exactly one node in the NodeResult part
	      of the return value will indicate one matching process
	      found). A bug was found in fetch_log API. At the same time
	      the fetch_log functionality was enhanced to also offer flow
	      control making fetcher processes send chunks of transferred
	      file data at a slower pace.


--- kernel-2.11.4.1 ------------------------------------------------------------

    OTP-6594  A bug in gen_udp:open that broke the 'fd' option has been
	      fixed.


--- kernel-2.11.4.2 ------------------------------------------------------------

    OTP-6592  process_flag/2 accepts the new flag sensitive.

    OTP-6627  process_flag(trap_exit, Bad) where Bad was a
	      term not equal to true or false, didn't fail
	      with badarg as it should; instead, the failure was
	      silently ignored. This bug was introduced in
	      erts-5.5.2

    OTP-6628  The minimum and default stack size for async-threads has been
	      increased to 16 kilowords. This since the previous minimum
	      and default stack size of 8 kilowords proved to be too small
	      (introduced in erts-5.5.4.2).


--- kernel-2.11.5 ------------------------------------------------------------

    OTP-6537  The shell has been updated to fix the following flaws: Shell
	      process exit left you with an unresponsive initial shell if
	      not using oldshell. Starting a restricted shell with a
	      nonexisting callback module resulted in a shell where no
	      commands could be used, not even init:stop/0. Fun's could not
	      be used as parameters to local shell functions (in
	      shell_default or user_default) when restricted_shell was
	      active.

    OTP-6615  The undocumented feature gen_tcp:fdopen/2 was broken in
	      R11B-4. It is now fixed again.

    OTP-6625  Corrected protocol layer flue for socket options SO_LINGER,
	      SO_SNDBUF and SO_RCVBUF, for SCTP.

    OTP-6676  Corrected cancelation of timers in three places in the
	      inet_res module. (Problem found by Dialyzer.)

    OTP-6681  The behaviour of the inet option {active,once} on peer close
	      is improved and documented.

    OTP-6684  The inet option send_timeout for connection oriented sockets
	      is added to allow for timeouts in communicating send requests
	      to the underlying TCP stack.

    OTP-6689  Minor Makefile changes.

    OTP-6715  The documentation of process_flag(priority, Level) has been
	      updated, see the erlang(3) documentation.


--- megaco-3.6 ------------------------------------------------------------

Improvements and new features:

    OTP-6609  Improved erl_dist codec handling of megaco_compressed codec
	      config.

    OTP-6442  The behaviour megaco_transport have been updated to include
	      another legal return value for the send_message function.

    OTP-6441  Add ability to decrement the timeout time for incremental
	      timers.

    OTP-6185  Miscellaneous minor performance improvements of the text
	      codec's


Fixed bugs and malfunctions:

    OTP-6578  Missing documentation link in module megaco_user.


Incompatibilities:

    OTP-6609  The interface of the megaco_compressed callback module has been 
	      changed, see the megaco_edist_compress behaviour module for more 
	      details.


--- megaco-3.6.0.1 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.


--- mnemosyne-1.2.7.1 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.

    OTP-6728  Obsolete guard tests (such as list()) have been replaced with
	      the modern guard tests (such as is_list()).


--- mnesia-4.3.5 ------------------------------------------------------------

    OTP-6587  The internal index tables on bag tables where not always
	      cleaned correctly. Thanks Christopher Faulet and Salazard
	      Remy.

    OTP-6709  Changing the copy type with mnesia:change_table_copy/3 on a
	      node which was down was not handled correctly, that caused an
	      eternal table lock on the alive nodes. Thanks Hal Snyder.


--- mnesia_session-1.1.6.1 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.

    OTP-6728  Obsolete guard tests (such as list()) have been replaced with
	      the modern guard tests (such as is_list()).


--- observer-0.9.7.4 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.

    OTP-6725  Obsolete guard tests (such as list()) have been replaced with
	      the modern guard tests (such as is_list()).


--- odbc-2.0.8 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.


--- orber-3.6.6 ------------------------------------------------------------

    OTP-6696  It is now possible to configure incoming connections which
	      overrides some global configuration parameters. See
	      orber:add_listen_interface/2/3.

    OTP-6701  Minor Makefile changes.


--- os_mon-2.1.2.1 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.


--- otp_mibs-1.0.4.1 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.


--- parsetools-1.4.1.1 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.


--- pman-2.6 ------------------------------------------------------------

    OTP-6012  Some maintenance work to replace deprecated guard expressions
	      etc. somehow grew into a larger rewrite of parts of the Pman
	      code, fixing some of the more blatant errors and removing
	      unused code.

	      The default font has been changed, so now the entire text on
	      buttons etc. should be visible on most platforms.

	      Saving and restoring trace options to/from file now works.

	      Selecting different sets of processes to hide/view should now
	      work in a more consistent and logical way.

	      It is now possible to select more than one module or process
	      to hide/show.

    OTP-6689  Minor Makefile changes.


--- runtime_tools-1.6.6 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.

    OTP-6700  An experimental tool called erts_alloc_config has been added.
	      erts_alloc_config is intended to be used to aid creation of
	      an erts_alloc configuration that is suitable for a limited
	      number of runtime scenarios. For more information see the
	      erts_alloc_config(3) documentation.

    OTP-6703  A bug in inviso_rt_meta caused an ETS table containing
	      information on initiated (init_tpm) functions to be lost when
	      suspending tracing. Further an enhancement to inviso_rt has
	      been introduced making it possible to activate process trace
	      flags based on globally registered names. It is then not an
	      error to activate a global name on a node where the name does
	      not reside. The process count in the return value will simply
	      be set to zero (hence exactly one node in the NodeResult part
	      of the return value will indicate one matching process
	      found). A bug was found in fetch_log API. At the same time
	      the fetch_log functionality was enhanced to also offer flow
	      control making fetcher processes send chunks of transferred
	      file data at a slower pace.


--- sasl-2.1.5.1 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.

    OTP-6725  Obsolete guard tests (such as list()) have been replaced with
	      the modern guard tests (such as is_list()).


--- snmp-4.9.3 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.

    OTP-6712  Changing own [usm] passphrase when agent is multi-threaded
	      did not work.


--- ssh-0.9.9.1 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.


--- ssl-3.1.1 ------------------------------------------------------------

    OTP-6612  A bug in ssl_accept could cause all ssl connections to hang
	      when a connection attempt was closed by the client while the
	      server was in ssl_accept


--- ssl-3.1.1.1 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.


--- stdlib-1.14.5 ------------------------------------------------------------

    OTP-4738  Bugs have been fixed in Dets concerning comparison (==) and
	      matching (=:=).

	      The STDLIB manual pages have been updated as to more
	      carefully state when terms are matched and when they are
	      compared.

    OTP-6537  The shell has been updated to fix the following flaws: Shell
	      process exit left you with an unresponsive initial shell if
	      not using oldshell. Starting a restricted shell with a
	      nonexisting callback module resulted in a shell where no
	      commands could be used, not even init:stop/0. Fun's could not
	      be used as parameters to local shell functions (in
	      shell_default or user_default) when restricted_shell was
	      active.

    OTP-6585  The new compiler option warn_obsolete_guard can be used for
	      turning on warnings for calls to old type testing BIFs.

    OTP-6590  A bug in QLC's parse transform has been fixed.

    OTP-6593  For scripts written using escript, there is a new function
	      escript:script_name/0, which can be used to retrieve the
	      pathame of the script. The documentation has been clarified
	      regarding pre-defined macros such as ?MODULE and the module
	      name.

    OTP-6606  A bug concerning lists:sort/1 and lists:keysort/2 and a mix
	      of floating point numbers and integers has been fixed.

    OTP-6659  When calling erlang:garbage_collect/0 in the Erlang shell not
	      only the evaluator process (the one returned by calling
	      self() in the Erlang shell) is garbage collected, but also
	      the process holding the history list.

    OTP-6689  Minor Makefile changes.

    OTP-6711  Functions of the beam_lib module that used to catch
	      exceptions and return a tuple {'EXIT',Reason} now exit with
	      the reason Reason.

    OTP-6714  The erl_eval module now calls the non-local function handler
	      whenever an operator is evaluated (exceptions are andalso,
	      orelse, and catch). The non-local function handler is now
	      also called when the function or operator occurs in a guard
	      test (such calls used to be ignored).

	      These changes affect the Erlang shell when running in
	      restricted mode: the callback function non_local_allowed/3 is
	      now called for operators such as '!'/2. This means that
	      non_local_allowed/3 may need to be changed as to let
	      operators through. Note that erlang:'!'/2 as well as
	      erlang:send/2,3 have to be restricted in order to stop
	      message passing in the shell.


--- toolbar-1.3.0.1 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.

    OTP-6725  Obsolete guard tests (such as list()) have been replaced with
	      the modern guard tests (such as is_list()).


--- tools-2.5.5 ------------------------------------------------------------

    OTP-6586  Minor updates of Xref.

    OTP-6689  Minor Makefile changes.


--- tv-2.1.4.1 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.

    OTP-6728  Obsolete guard tests (such as list()) have been replaced with
	      the modern guard tests (such as is_list()).


--- typer-0.1.0.1 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.


--- webtool-0.8.3.1 ------------------------------------------------------------

    OTP-6689  Minor Makefile changes.

    OTP-6725  Obsolete guard tests (such as list()) have been replaced with
	      the modern guard tests (such as is_list()).


--- xmerl-1.1.3 ------------------------------------------------------------

    OTP-6599  Memory consumption decreased: moved transforming from utf-8
	      to unicode from an extra pass of the document to the occasion
	      when a character is parsed. Removed use of lists:subtract.
	      Those changes also speeds up parsing in some scenarios.


--- xmerl-1.1.4 ------------------------------------------------------------

    OTP-6679  An additional format is possible for the simple syntax: {Fun,
	      State}. The fun should retrieve the replacement in simple
	      syntax format. The semantics of fun: fun(State) -> code that
	      creates replacement, then returns {SimpleSyntax,NewState} |
	      done