aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2018-01-19ErLLVM: Preserve precise BEAM tailcall semanticsMagnus Lång
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.
2018-01-19Merge branch 'hasse/dialyzer/fix_bsl' into maintHans Bolinder
* hasse/dialyzer/fix_bsl: dialyzer: Fix bsl/2 bug
2018-01-17Merge branch 'hasse/stdlib/fix_shell_evaluator' into maintHans Bolinder
* hasse/stdlib/fix_shell_evaluator: stdlib: Garbage the shell's evaluator process more often
2018-01-17asn1_SUITE: Fix failure in xref_export_all/1Björn Gustavsson
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.
2018-01-16stdlib: Garbage the shell's evaluator process more oftenHans Bolinder
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.
2018-01-16Merge branch 'hasse/stdlib/unicode_stacktrace/OTP-14847/ERL-553' into maintHans Bolinder
* hasse/stdlib/unicode_stacktrace/OTP-14847/ERL-553: stdlib: Handle Unicode when formatting stacktraces
2018-01-15Merge branch 'sverker/cuddle-big-bin-tests' into maintSverker Eriksson
2018-01-15Merge branch 'sverker/ic-test-cuddle' into maintSverker Eriksson
2018-01-15Merge branch 'hasse/stdlib/find_src/OTP-14832/ERL-527' into maintHans Bolinder
* hasse/stdlib/find_src/OTP-14832/ERL-527: stdlib: Correct a filelib test case stdlib: Let filelib:find_source() search subdirs
2018-01-15Merge branch 'ingela/ssl/test-cuddle' into maintIngela Anderton Andin
* ingela/ssl/test-cuddle: ssl: Call clean version function
2018-01-15ssl: Call clean version functionIngela Anderton Andin
Make sure tests are run with intended version settings.
2018-01-15stdlib: Handle Unicode when formatting stacktracesHans Bolinder
See also ERL-553 and ERL-544 (commit c3ddb0f).
2018-01-15Merge branch ↵John Högberg
'john/runtime_tools/reduce-sysinfo-to_file-memory-use/OTP-14816' into maint
2018-01-12crypto: Disable RSA sslv23 padding for LibreSSL >= 2.6.1Hans Nilsson
Not supported in newer LibreSSL.
2018-01-12dialyzer: Fix bsl/2 bugHans Bolinder
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.
2018-01-12Merge branch 'siri/cdv/many-links/OTP-14725' into maintSiri Hansen
* siri/cdv/many-links/OTP-14725: [observer] Improve performance for many links or monitors
2018-01-11ssl: Correct function for listing RC4 suitesIngela Anderton Andin
2018-01-11Merge branch 'ingela/ssl/timeout-cuddle' into maintIngela Anderton Andin
* ingela/ssl/timeout-cuddle: ssl: Tune timeouts
2018-01-11ssl: Tune timeoutsIngela Anderton Andin
2018-01-11Reduce memory use of system_information:to_file/1John Högberg
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.
2018-01-10[observer] Improve performance for many links or monitorsSiri Hansen
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.
2018-01-10ic: Fix faulty test codeSverker Eriksson
m_strRec.str7 is long[3][2], not long[2][3] which seem to trip up -O2 loop unrolling.
2018-01-10Merge pull request #1674 from bjorng/bjorn/compiler/beam_validatorBjörn Gustavsson
beam_validator: Strengthen validation of GC instructions OTP-14863
2018-01-10Merge branch ↵Hans Bolinder
'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
2018-01-09Merge branch 'hans/ssh/docker_compat_tests/OTP-14194' into maintHans Nilsson
* 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.
2018-01-09dialyzer: Add a test of erl_tar:table/1,2Hans Bolinder
2018-01-09Fix false Dialyzer warnings for erl_tar:table/1Guilherme Andrade
'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.)
2018-01-09Merge branch 'siri/etop/include/ERL-534/OTP-14842' into maintSiri Hansen
* siri/etop/include/ERL-534/OTP-14842: [observer] Use include_lib instead of include with relative path Add runtime_tools/include to tertiary bootstrap
2018-01-09Merge branch 'hasse/dialyzer/fix_abs/OTP-14858/ERL-551' into maintHans Bolinder
* hasse/dialyzer/fix_abs/OTP-14858/ERL-551: dialyzer: Correct handling of erlang:abs/1
2018-01-09Merge branch 'siri/cdv/crash-when-truncated-in-mod-attr/ERL-537/OTP-14846' ↵Siri Hansen
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
2018-01-09Merge branch 'ingela/dtls/test-cuddle' into maintIngela Anderton Andin
* ingela/dtls/test-cuddle: dtls: Filter out rc4 for DTLS psk suites dtls: We do not need to wait for DTLS over UDP server
2018-01-08dialyzer: Correct handling of erlang:abs/1Hans Bolinder
See also https://bugs.erlang.org/browse/ERL-551.
2018-01-08ssh: A compatibility testing suite using dockersHans Nilsson
This suite tests compatibility with different combinations of OpenSSH and OpenSSL. The peer SSH is running in a docker container.
2018-01-08beam_validator: Strengthen validation of GC instructionsBjörn Gustavsson
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.
2018-01-07dtls: Filter out rc4 for DTLS psk suitesIngela Anderton Andin
Stream ciphers are not valid fro DTLS
2018-01-06dtls: We do not need to wait for DTLS over UDP serverIngela Anderton Andin
Client will retransmit until server becomes responsive
2018-01-05stdlib: Correct a filelib test caseHans Bolinder
2018-01-05stdlib: Let filelib:find_source() search subdirsHans Bolinder
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).
2018-01-05hipe: Avoid out-of-memory crash for bs_SUITE:bs_constructSverker Eriksson
2018-01-04Remove unsafe is_record/test_arity optimizationsJohn Högberg
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.
2018-01-04Merge branch 'ingela/ssl/error-handling-race/ERL-539/OTP-14852' into maintIngela Anderton Andin
* ingela/ssl/error-handling-race/ERL-539/OTP-14852: ssl: Prevent error handling race condition
2018-01-04ssl: Prevent error handling race conditionIngela Anderton Andin
ERL-539
2018-01-03Merge PR-1664 from sverker/sverker/hipe-bs_put_utf8-gc-bug OTP-14850Sverker Eriksson
Fix GC bug for HiPE primop bs_put_utf8
2018-01-03Fix bug in hipe primop bs_put_utf8Sverker Eriksson
by preventing it from doing GC, which generated code relies on.
2018-01-03[cdv] Don't crash when dump is truncated in module attributesSiri Hansen
This bug was introduced by commit 3b964e8dbaa0cd73ca7a983b3ce948e0dbd2c35c
2017-12-22Merge branch 'hans/ssh/cuddle_ssh_test' into maintHans Nilsson
* hans/ssh/cuddle_ssh_test: ssh: Better reports in some test case failures ssh: Tests - timeout catches external ssh that does not disconnect
2017-12-22Merge branch 'hans/ssh/cuddle_ssh_dbg' into maintHans Nilsson
* hans/ssh/cuddle_ssh_dbg: ssh: ssh_dbg updates
2017-12-22Merge branch 'hasse/cover/fix_counting/OTP-14817/PR-1641' into maintHans Bolinder
* hasse/cover/fix_counting/OTP-14817/PR-1641: tools: Correct a counting bug in Cover
2017-12-21Merge remote-tracking branch 'origin/ingela/inets/remove-legacy-test-suite' ↵Ingela Anderton Andin
into maint * origin/ingela/inets/remove-legacy-test-suite: inets: Remove old legacy SUITE
2017-12-21ssh: ssh_dbg updatesHans Nilsson