Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Feb 19, 2014
  1. @rickard-green
Commits on Jul 9, 2013
  1. @rickard-green

    Refuse to build SMP runtime by default without native atomics

    rickard-green authored
    Build with fallback can be enabled by passing the `configure` command
    line argument `--disable-smp-require-native-atomics`
Commits on Jun 14, 2011
  1. @rickard-green

    Improve ethread atomics

    rickard-green authored
    The ethread atomics API now also provide double word size atomics.
    Double word size atomics are implemented using native atomic
    instructions on x86 (when the cmpxchg8b instruction is available)
    and on x86_64 (when the cmpxchg16b instruction is available). On
    other hardware where 32-bit atomics or word size atomics are
    available, an optimized fallback is used; otherwise, a spinlock,
    or a mutex based fallback is used.
    The ethread library now performs runtime tests for presence of
    hardware features, such as for example SSE2 instructions, instead
    of requiring this to be determined at compile time.
    There are now functions implementing each atomic operation with the
    following implied memory barrier semantics: none, read, write,
    acquire, release, and full. Some of the operation-barrier
    combinations aren't especially useful. But instead of filtering
    useful ones out, and potentially miss a useful one, we implement
    them all.
    A much smaller set of functionality for native atomics are required
    to be implemented than before. More or less only cmpxchg and a
    membar macro are required to be implemented for each atomic size.
    Other functions will automatically be constructed from these. It is,
    of course, often wise to implement more that this if possible from a
    performance perspective.
Commits on Sep 22, 2010
  1. @rickard-green
Commits on Aug 27, 2010
  1. @rickard-green

    Fix SSL build failure when building in minimal source tree

    rickard-green authored
    Building in a source tree without prebuilt platform independent
    build results failed on the SSL examples when cross building.
    This has been solved by not building the SSL examples during a
    cross build.
Commits on Aug 10, 2010
  1. @rickard-green

    Rewrite ethread library

    rickard-green authored
    Large parts of the ethread library have been rewritten. The
    ethread library is an Erlang runtime system internal, portable
    thread library used by the runtime system itself.
    Most notable improvement is a reader optimized rwlock
    implementation which dramatically improve the performance of
    read-lock/read-unlock operations on multi processor systems by
    avoiding ping-ponging of the rwlock cache lines. The reader
    optimized rwlock implementation is used by miscellaneous
    rwlocks in the runtime system that are known to be read-locked
    frequently, and can be enabled on ETS tables by passing the
    `{read_concurrency, true}' option upon table creation. See the
    documentation of `ets:new/2' for more information.
    The ethread library can now also use the libatomic_ops library
    for atomic memory accesses. This makes it possible for the
    Erlang runtime system to utilize optimized atomic operations
    on more platforms than before. Use the
    `--with-libatomic_ops=PATH' configure command line argument
    when specifying where the libatomic_ops installation is
    located. The libatomic_ops library can be downloaded from:
    The changed API of the ethread library has also caused
    modifications in the Erlang runtime system. Preparations for
    the to come "delayed deallocation" feature has also been done
    since it depends on the ethread library.
    Note: When building for x86, the ethread library will now use
    instructions that first appeared on the pentium 4 processor. If
    you want the runtime system to be compatible with older
    processors (back to 486) you need to pass the
    `--enable-ethread-pre-pentium4-compatibility' configure command
    line argument when configuring the system.
Commits on Mar 22, 2010
  1. @rickard-green

    OTP-8512 Add Erlangish MarkDown to Erlangish XML support

    rickard-green authored Erlang/OTP committed
    The,, and "readme files" are
    now included in both the HTML and the PDF documentation.
Commits on Feb 18, 2010
  1. @rickard-green

    OTP-8449 Documentation improvements.

    rickard-green authored Erlang/OTP committed
              The most important "readme" files now use Markdown notation. HTML
              versions of these files are now also automatically generated and
              included in the HTML documentation.
              - Building and Installing Erlang/OTP - $ERL_TOP/
              (previously known as $ERL_TOP/README).
              - Cross Compiling Erlang/OTP - $ERL_TOP/
              - How to Build Erlang/OTP on Windows - $ERL_TOP/
              (previously known as $ERL_TOP/README.win32).
Commits on Feb 3, 2010
  1. @rickard-green

    OTP-8323 Cross compilation improvements and other build system

    rickard-green authored Erlang/OTP committed
              Most notable:
              Lots of cross compilation improvements. The old cross compilation
              support was more or less non-existing as well as broken. Please,
              note that the cross compilation support should still be
              considered as experimental. Also note that old cross compilation
              configurations cannot be used without modifications. For more
              information on cross compiling Erlang/OTP see the
              $ERL_TOP/xcomp/README file.
              Support for staged install using <url
              ESTDIR</url>. The old broken INSTALL_PREFIX has also been fixed.
              For more information see the $ERL_TOP/README file.
              Documentation of the release target of the top Makefile. For more
              information see the $ERL_TOP/README file.
              make install now by default creates relative symbolic links
              instead of absolute ones. For more information see the
              $ERL_TOP/README file.
              $ERL_TOP/configure --help=recursive now works and prints help for
              all applications with configure scripts.
              Doing make install, or make release directly after make all no
              longer triggers miscellaneous rebuilds.
              Existing bootstrap system is now used when doing make install, or
              make release without a preceding make all.
              The crypto and ssl applications use the same runtime library path
              when dynamically linking against and The
              runtime library search path has also been extended.
              The configure scripts of erl_interface and odbc now search for
              thread libraries and thread library quirks the same way as erts
              The configure script of the odbc application now also looks for
              odbc libraries in lib64 and lib/64 directories when building on a
              64-bit system.
              The file in the erl_interface application is now
              automatically generated in instead of statically updated which
              reduces the risk of configure tests without any effect.
Something went wrong with that request. Please try again.