Skip to content


Subversion checkout URL

You can clone with
Download ZIP

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: wyborowiec/otp
head fork: wyborowiec/otp
Checking mergeability… Don’t worry, you can still create the pull request.
Commits on Oct 18, 2011
@laf0rge laf0rge asn1rt_check: Fix transform_to_EXTERNAL1990 for binary input
If ber_bin is used, decoded EXTERNAL types will include a binary
Data_value in the {'EXTERNAL', ...} tuple.  When handing such a tuple to
the encoder again, we should properly encode it.

To do so, we treat a binary data part just like a list data part.
Commits on Nov 01, 2011
@bwhittle bwhittle prim_file:exists/{1,2} which is lightweight file existence check
This function is meant to be faster / simpler check for the existence
of a file or directory.  Most all erlang functions that do this end
up calling prim_file:read_file_info at some point.   When
read_file_info is used as a simple existence check, time is wasted
collecting file stats data only to turn around and throw the data
away.  If a file exists, read_file_info can take three times longer
to return than when the file doesn't exist.  Return values are true,
false, or {error, eisdir}.  The low level implementation of this
function was already defined via efile_may_openfile, this patch just
exposes it to prim_file.  filelib:is_dir/1, filelib:is_file/1,
filelib:is_regular/1 could be changed from calling read_file_info to
prim_file:exists/{1,2} or better yet to calling to a yet unwritten
file:exists/{1,2} function.
Commits on Nov 02, 2011
@weicao weicao fix eunit to print stacktrace correctly if test cases throw any excep…

R15 adds file and lineno in the result of erlang:get_stacktrace/0, so
eunit should be updated accordingly to accomodate the new stacktrace format.
Fix eunit_lib:print_exception when erlang:get_stacktrace returns {M,F,A,[]}
Commits on Nov 11, 2011
@legoscia legoscia Include fixture setup and cleanup errors in Eunit Surefire report
An error during fixture setup means that some tests could not be run,
and therefore needs to be highlighted in the test report.  Likewise, a
cleanup failure is often a problem that needs to be looked into.

Since setup and cleanup are not part of any single test in Eunit's
view, I include them as phantom test cases in the report whenever they
Commits on Nov 25, 2011
@dch dch add escript win32 alternative invocation (thanks Pierre Rouleau)
On Windows, escript may be passed different arvg[0] values depending
on how it was started up.

This patch allows for escript to be started as "escript.exe"
(current behaviour) and also "escript" which is more likely when
called from the default Windows cmd.exe shell.
Commits on Nov 28, 2011
@bjorng bjorng andor_SUITE: Don't native-compile
Temporary commit to avoid the failures in t_andalso/1 and
t_orelse/1 test cases.
@bjorng bjorng Disable native code if on_load is used
The on_load functionality does not work yet (will cause a crash)
if a module has been native-compiled. Fix it by disabling
native-code compilation if a module has an on_load attribute.
@bjorng bjorng seq_trace_SUITE: Don't native-compile
Sequential tracing does not work on native-compiled modules.

(Other kind of tracing also don't work, but those test case
are already skipped.)
@bjorng bjorng Inline less aggressively for native-code compilation
The native code compiler will get very slow if we do aggressive
inlining with the old inliner (i.e. without subsequent optimizations),
and the test case self_compile_old_inliner/1 may fail due to
a time-trap timeout.

Fix this by inlining less aggressively if we are compiling natively.
@bjorng bjorng Avoid crash by skipping compilation_SUITE:on_load/1
compilation_SUITE:on_load/1 crashes if the compilation_SUITE module is
natively compiled. I don't know the exact reason for that, but it
seems to be that the module 'on_load' (which is not native-compiled)
is loaded and unloaded multiple times, and that it does not contain
exactly the same functions each time (inlining cause a function and a
function call to be removed).
Commits on Dec 21, 2011
Carlos Varela Paz erts: Fix localtime BIFs does not update system timezone configuration
If in a running node the host machine changes its timezone
configuration, the BIFs time, date, localtime and
universal_time_to_localtime does not reflect the change until the node
is restarted.

The cause of this behaviour seems to be the lack of a
call to tzset() when the thread safe function is used.
The localtime manual page said:

   "According to POSIX.1-2004, localtime() is required to behave as
    though tzset() was called, while localtime_r() does not have
    this requirement.  For portable code tzset() should be called
    before localtime_r()."
Максим Зражевский Add support for NULL value in odbc:param_query
Support atom 'null' in odbc:param_query as database NULL value
Fix "ODBC: received unexpected info:{tcp_closed, ...}" when connection is terminating.
Fix possible access violation with 64bit ODBC.
Commits on Dec 31, 2011
@djui djui Fixes value returned by mnesia_loader:do_get_disc_copy2/4
Returns the same value for `mnesia_loader:disc_load_table/2' as
`mnesia_loader:net_load_table/4' if a table copy can not be found.

This patch was stuck as a pull request in GitHub (authored by Uwe
Commits on Jan 03, 2012
@tomas-abrahamsson tomas-abrahamsson Fix SCTP multihoming for IPv6
Setting several ip addresses for an SCTP socket worked for IPv4, but
for IPv6 the call to gen_sctp:open/1 failed with badarg.
Commits on Jan 04, 2012
@perhedeland perhedeland Fix returned error from gen_tcp:accept/1,2 when running out of ports
The {error, enfile} return value is badly misleading and confusing for
this case, since the Posix ENFILE errno value has a well-defined meaning
that has nothing to do with Erlang ports. The fix changes the return
value to {error, system_limit}, which is consistent with e.g. various
file(3) functions. inet:format_error/1 has also been updated to support
system_limit in the same manner as file:format_error/1.
Commits on Jan 07, 2012
@tuncer tuncer Fix typos in 1392462
@tuncer tuncer Fix typos in driver.xml and erl_driver.xml 4136021
@tuncer tuncer Fix typos in ct getting_started_chapter.xml e3c347c
Commits on Jan 13, 2012
@jcomellas jcomellas Avoid creating an undefined start_phases entry when generating a release
When a release is generated and the applications in the release do not
define a value for the start_phases entry of their .app files, reltool
will generate the following entry in the .app files of the release:

{start_phases, undefined}

If this happens, when trying to create a release upgrade systools will
fail because it doesn't allow the start_phases entry to be set to
undefined. This patch avoids this situation by not generating a
start_phases entry when it is set to undefined.
Commits on Jan 16, 2012
Tomas Pihl Have supervisor send errors up the chain
If a child fails to start, supervisor relies upon error_logger which does not
work when IO is inhibited. Instead pass the error up the chain and let someone
else use a proper Reason for any possible printouts.
Commits on Jan 17, 2012
@proxyles proxyles Fix assembler comment character for hipe on ppc 17ab3d9
Commits on Feb 04, 2012
Ricardo Fix port leaking after controlling_process(Port, self())
Add case to handle the situation when someone call
{gen_tcp,gen_udp}:controlling_process(Port, self()). Also improve spec
and doc from gen_udp and gen_sctp for controlling_process/2.

To reproduce the issue, open an UDP port:

4> {ok,Port} = gen_udp:open(9000, [binary]).
5> gen_udp:controlling_process(Port, self()).

Simulate error:

6> 1=2.
** exception error: no match of right hand side value 2

Here is the leak:

7> inet:i().
Port Module   Recv Sent Owner    Local Address Foreign Address State
581  inet_udp 0    0    <0.31.0> *:cslistener  *:*             BOUND
Commits on Feb 14, 2012
@gleber gleber Make erlang-mode more compatible with package.el
Package.el  and Emacs  package  repositories (like  ELPA or  Marmalade
place some requirements onto packages which are uploaded to them. This
commit does  minor cosmetic  changes which makes  it easier  to create
appropriate package file for those repositories.
Commits on Feb 21, 2012
@peerst peerst Add missing HAVE_IN6 && AF_INET6 ifdef
This prevents building for operating systems that do not yet have IPv6
compatible socket API.  Error can be reproduced by (cross)building for
a os that doesn't have these headers.  This will abort with a error
about incomplete type 'struct in6_addr'.  All other uses of IPv6 API
in inet_drv.c are conditionalized like in the patch.
Commits on Feb 22, 2012
@jimenezrick jimenezrick Fix a code snippet and two typos in the doc 67c16b4
@aronisstav aronisstav Small fixes for Dialyzer's testsuites generation 7554fad
@aronisstav aronisstav Prettify spec d96a00e
@aronisstav aronisstav Refactor function selection by Dialyzer's codeserver a9b2318
@aronisstav aronisstav Support alternative spelling of behaviour 8900a24
@aronisstav aronisstav Allow t_opaque_structure to handle multiple opaque types 2f8daab
@aronisstav aronisstav Refactorings in dialyzer_analysis_callgraph 4e11f88
@aronisstav aronisstav Cleanup debug messages in dialyzer_dataflow 7c3a98b
@aronisstav aronisstav Zero-arity unused functions Dialyzer patch
Dialyzer was not reporting unused functions with 0 arity. This was not
a real issue, until we found out that there could be cases where this
could lead to false warnings. This was the case in "no_local_return.erl".
@aronisstav aronisstav Cleanups in dialyzer_callgraph and dialyzer_dataflow
Refactorings, code movements and reflection of mutable variables in the code.
@aronisstav aronisstav Simplify dialyzer_succ_typings code bda48b9
@aronisstav aronisstav Remove redundant code ff5c8bf
@aronisstav aronisstav Further simplifications e2bf913
@aronisstav aronisstav Avoid unnecessary passing of huge terms in some closures
The relevant terms were instances of Dialyzer's typesig analysis state
that were stored together with some "dynamic" constraints in a dict. Due
to sharing this was not apparent until we tried to copy the dictionary.

Initial debugging was by Björn Gustavsson.
@aronisstav aronisstav Refactorings in dialyzer_typesig 81dddf0
@aronisstav aronisstav Remove callgraph from the state used during solving 42e1d86
@aronisstav aronisstav Simplify external vs bad calls check 25f3ba6
@aronisstav aronisstav Review by Kostis Sagonas and fixes 06d0fd4
Commits on Feb 24, 2012
@jimenezrick jimenezrick Remove trailing spaces f195d88
@jimenezrick jimenezrick Add the type restrictions in the code comments c165d6c
@jimenezrick jimenezrick Fix supervisor doc: Shutdown, MaxR and MaxT type specs
The next code snippets from supervisor.erl show that Shutdown from a
child specification must be greater than zero and the same applies to

--- supervisor.erl ----------------------------------------------------------
validShutdown(Shutdown, _)
  when is_integer(Shutdown), Shutdown > 0 -> true;
validShutdown(infinity, _)             -> true;
validShutdown(brutal_kill, _)          -> true;
validShutdown(Shutdown, _)             -> throw({invalid_shutdown, Shutdown}).

validIntensity(Max) when is_integer(Max),
                         Max >=  0 -> true;
validIntensity(What)               -> throw({invalid_intensity, What}).

validPeriod(Period) when is_integer(Period),
                         Period > 0 -> true;
validPeriod(What)                   -> throw({invalid_period, What}).
@jimenezrick jimenezrick Cosmetic: split very long lines from supervisor doc b5b00be
Commits on Feb 28, 2012
@jimenezrick jimenezrick Remove/add extra/missing white spaces 4c8b2b9
@jimenezrick jimenezrick Add start/0,1 and help/0 to etop's doc 33cc284
Commits on Feb 29, 2012
@jimenezrick jimenezrick Remove dashes from error_logger doc b65ab3a
@jimenezrick jimenezrick Fix small typo in kernel app doc 677f17a
Commits on Mar 01, 2012
@aronisstav aronisstav Fix bug in remote type solving 1f9f1f5
@jimenezrick jimenezrick Fix global:{random_exit_name,random_notify_name}/3 spec
Both functions return pid(), not 'none'. The one that always returns
'none' is notify_all_name/3.
@aronisstav aronisstav Unknown types are being reported by dialyzer's GUIs c6a8074
@jimenezrick jimenezrick Improve global:re_register_name/2,3 spec
Both functions always return `yes'.
@tuncer tuncer [erts,kernel,stdlib] fix escript/primary archive reloading
If the mtime of an escript/primary archive file changes after being
added to the code path, correctly reload the archive and update the

Thanks David Reid and Hakan Mattson.
@tuncer tuncer escript_SUITE: remove gratuitous space 239e801
Commits on Mar 05, 2012
@RoadRunnr RoadRunnr Some protocols (e.g. EAP-PEAP, EAP-TLS, EAP-TTLS) that use TLS as
transport layer need to generate additional application specific
key material. One way to generate such material is to use the TLS
PRF and key material from the TLS session itself.

This change makes it possible to use a TLS sessions PRF either with
the session internal or caller supplied key material to generate
additional key material.
Gustav Simonsson Merge branch 'bg/temp-hipe-fixes' into pu
Gustav Simonsson Merge branch 'bw/efile_exists' into pu
Gustav Simonsson Merge branch 'ta/prim_archive-reloading' into pu 4b15dac
Gustav Simonsson Merge branch 'hw/asn1rt_check-transform' into pu a775fb2
Gustav Simonsson Merge branch 'wc/fix-eunit-print-stacktrace' into pu ba88bd9
Gustav Simonsson Merge branch 'mh/eunit_surefire-fixture-errors' into pu b75c300
Gustav Simonsson Merge branch 'cv/update-localtime-configuration' into pu 5c0c742
Gustav Simonsson Merge branch 'mz/odbc-support-param_query' into pu 8e0457d
Gustav Simonsson Merge branch 'tab/fix-sctp-multihoming-IPv6' into pu 76345cc
Gustav Simonsson Merge branch 'ud/fix-return-do_get_disc_copy2' into pu 856e4af
Gustav Simonsson Merge branch 'ph/fix_enfile' into pu 87e060d
Gustav Simonsson Merge branch 'ta/docs15' into pu 332a44f
Gustav Simonsson Merge branch 'tp/supervisor-pass-on-errors' into pu c516e71
Gustav Simonsson Merge branch 'mp/fix-assembler-comment-char-for-hipe-ppc' into pu 227749b
Gustav Simonsson Merge branch 'jc/omit-undefined-start_phases' into pu 01ee1e3
Gustav Simonsson Merge branch 'dc/dch-fix-win32-escript' into pu 104d07d
Gustav Simonsson Merge branch 'rj/fix-gen_udp_tcp-leak' into pu 445dc98
Gustav Simonsson Merge branch 'gp/make_erlang_mode_elpa_friendly' into pu 8ceb9f4
Gustav Simonsson Merge branch 'ps/inet6-less-build-fix' into pu afdd3f8
Gustav Simonsson Merge branch 'rj/fix-misc-doc-typos' into pu 6d42e2a
Gustav Simonsson Merge branch 'rj/minor-doc-improvements' into pu 474ecf8
Gustav Simonsson Merge branch 'rj/fix-global-spec' into pu 8839e1a
Gustav Simonsson Merge branch 'rj/fix-supervisor-shutdown-doc' into pu b03cdd4
Gustav Simonsson Merge branch 'as/ssl-tls-prf-function' into pu 5891542
Gustav Simonsson Merge branch 'sa/dialyzer-fixes' into pu 5f668be
@proxyles proxyles Update preloaded modules 462d777