Age | Commit message (Collapse) | Author |
|
The BEAM compiler chooses not to perform tailcall optimisations for some
calls in tail position, for example to some built-in functions. However,
when the ErLLVM HiPE backend is used, LLVM may choose to perform
tailcall optimisation on these calls, breaking the expected semantics.
To preserve the precise semantics exhibited by BEAM, the 'notail'
marker, present in LLVM since version 3.8, is added to call instructions
that BEAM has not turned into tail calls, which inhibits LLVM from
performing tail-call optimisation in turn.
|
|
* hasse/dialyzer/fix_bsl:
dialyzer: Fix bsl/2 bug
|
|
* hasse/stdlib/fix_shell_evaluator:
stdlib: Garbage the shell's evaluator process more often
|
|
The variable 'S' was used twice. If the test case failed
because there were unused functions in asn1_SUITE, there
would be an ugly badmatch exception instead of the intended
nice error message.
|
|
A minor fix.
If the Erlang shell saves no results (history(0) or results(0)), the
evaluator process now garbage collects itself. This means that any
huge binaries created by the evaluation are reclaimed faster than
before.
|
|
* hasse/stdlib/unicode_stacktrace/OTP-14847/ERL-553:
stdlib: Handle Unicode when formatting stacktraces
|
|
|
|
|
|
* hasse/stdlib/find_src/OTP-14832/ERL-527:
stdlib: Correct a filelib test case
stdlib: Let filelib:find_source() search subdirs
|
|
* ingela/ssl/test-cuddle:
ssl: Call clean version function
|
|
Make sure tests are run with intended version settings.
|
|
See also ERL-553 and ERL-544 (commit c3ddb0f).
|
|
'john/runtime_tools/reduce-sysinfo-to_file-memory-use/OTP-14816' into maint
|
|
Not supported in newer LibreSSL.
|
|
Also modified erl_bif_types:infinity_bsl() when called with zero as
first argument. As of writing this, erlang:'bsl'/2 is modified on the
master branch to never fail if called with a huge second argument.
|
|
* siri/cdv/many-links/OTP-14725:
[observer] Improve performance for many links or monitors
|
|
|
|
* ingela/ssl/timeout-cuddle:
ssl: Tune timeouts
|
|
|
|
The previous implementation generated a term, converted it to plain
text with io_lib:format/2, and then converted that to a binary
before writing it to disk.
We now emit the term as we go, which should make it a bit safer to
extract this information under load.
|
|
When a process has many links and/or monitors, it could earlier take
very long time to display the process information window. This is now
improved by only showing a few links and monitors, and then an link
named "more..." to expand the rest.
Reading of the "Link list" from a crashdump is also improved.
|
|
m_strRec.str7 is long[3][2], not long[2][3]
which seem to trip up -O2 loop unrolling.
|
|
beam_validator: Strengthen validation of GC instructions
OTP-14863
|
|
'hasse/stdlib/incomplete_erl_tar_function_spec/OTP-14860/PR-1670' into maint
* hasse/stdlib/incomplete_erl_tar_function_spec/OTP-14860/PR-1670:
dialyzer: Add a test of erl_tar:table/1,2
Fix false Dialyzer warnings for erl_tar:table/1
|
|
* hans/ssh/docker_compat_tests/OTP-14194:
ssh: A compatibility testing suite using dockers This suite tests compatibility with different combinations of OpenSSH and OpenSSL. The peer SSH is running in a docker container.
|
|
|
|
'tar_entry()' values are only returned if we specify the 'verbose'
option when calling table/2, which table/1 doesn't do.
Now, it appears that Dialyzer as of OTP 20 is clever enough to realize
that the return type of table/1 must intersect with the return type of
table/2, and so it ignores the fact that table/1 says it returns
strings, and therefore its callers are expected to be dealing with
'tar_entry()' tuples, and never with strings.
This is obviously a mismatch between what the code does and what the
spec says is does, leading to false Dialyzer warnings on code that uses
table/1 (and, presumably, also table/2 when called without
the 'verbose' option.)
|
|
* siri/etop/include/ERL-534/OTP-14842:
[observer] Use include_lib instead of include with relative path
Add runtime_tools/include to tertiary bootstrap
|
|
* hasse/dialyzer/fix_abs/OTP-14858/ERL-551:
dialyzer: Correct handling of erlang:abs/1
|
|
into maint
* siri/cdv/crash-when-truncated-in-mod-attr/ERL-537/OTP-14846:
[cdv] Don't crash when dump is truncated in module attributes
|
|
* ingela/dtls/test-cuddle:
dtls: Filter out rc4 for DTLS psk suites
dtls: We do not need to wait for DTLS over UDP server
|
|
See also https://bugs.erlang.org/browse/ERL-551.
|
|
This suite tests compatibility with different combinations of OpenSSH and OpenSSL. The peer SSH is running in a docker container.
|
|
beam_validator did not verify that the Y registers were initialized
before executing the following instructions that could cause a GC:
bs_append/8
bs_init2/6
bs_init_bits/6
gc_bif1/5
gc_bif2/6
gc_bif3/7
test_heap/2
That means that, for example, an incorrect optimization that replaced
an 'allocate_zero' instruction with an 'allocate' instruction when it
was not safe, would not be rejected by beam_validtor, but would
instead cause a crash or other undefined behavior at runtime.
Also fix a minor bug in beam_type exposed by the stronger checking.
When compiling from .S files, beam_type did not handle the
init/1 instruction and could produce unsafe code.
|
|
Stream ciphers are not valid fro DTLS
|
|
Client will retransmit until server becomes responsive
|
|
|
|
The Design Principles states that an application can have Erlang
source files one level below the "src" directory, and now
filelib:find_source() by default searches one level below "src".
The same applies to "esrc". That directory is only mentioned in
filename(3).
|
|
|
|
The type optimizations for is_record and test_arity checked whether
the arity was equal to the size stored in the type information,
which is incorrect since said size is the *minimum* size of the
tuple (as determined by previous instructions) and not its exact
size.
A future patch to the 'master' branch will restore these
optimizations in a safe manner.
|
|
* ingela/ssl/error-handling-race/ERL-539/OTP-14852:
ssl: Prevent error handling race condition
|
|
ERL-539
|
|
Fix GC bug for HiPE primop bs_put_utf8
|
|
by preventing it from doing GC, which generated code relies on.
|
|
This bug was introduced by commit 3b964e8dbaa0cd73ca7a983b3ce948e0dbd2c35c
|
|
* hans/ssh/cuddle_ssh_test:
ssh: Better reports in some test case failures
ssh: Tests - timeout catches external ssh that does not disconnect
|
|
* hans/ssh/cuddle_ssh_dbg:
ssh: ssh_dbg updates
|
|
* hasse/cover/fix_counting/OTP-14817/PR-1641:
tools: Correct a counting bug in Cover
|
|
into maint
* origin/ingela/inets/remove-legacy-test-suite:
inets: Remove old legacy SUITE
|
|
|