aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2019-08-14Merge pull request #2347 from ↵Björn Gustavsson
bjorng/bjorn/compiler/fix-receive-bug/ERL-1022/OTP-15982 Fix compiler crash when compiling some receive statements
2019-08-14Fix compiler crash when compiling some receive statementsBjörn Gustavsson
The compiler would crash when compiling the following code: do(Acc) -> receive {Pid, abc} -> ok; {Pid, []} -> ok; {Pid, _Res} -> exit(_Res) end, do([Pid | Acc]). The last clause that always raises an exception would confuse the compiler so that it would think that the `receive` statement was at the end of the function and it would generate incorrect code for the `do/1` call following the `receive`. https://bugs.erlang.org/browse/ERL-1022
2019-08-12Merge branch 'john/erts/bs_get_binary2-heap-binaries/OTP-15977' into maintJohn Högberg
* john/erts/bs_get_binary2-heap-binaries/OTP-15977: erts: Create heap binaries in binary:split/2-3 erts: Create heap binaries in binary_part/2-3 erts: Create heap binaries in split_binary/2 erts: Create heap binaries in bs_get_binary2 erts: Remove size check in bs_start_match erts: Disallow binaries whose size in bits exceeds UWORD_MAX
2019-08-09Merge pull request #2332 from the-mikedavis/patch-1Dan Gudmundsson
Correct documentation on dump_log_write_threshold default value
2019-08-09Merge remote-tracking branch 'upstream/pr/2201' into maintDan Gudmundsson
* upstream/pr/2201: Handle clicking links more than once in Observer's "Expanded term" OTP-15980
2019-08-09erts: Create heap binaries in bs_get_binary2John Högberg
ErlSubBin is a large struct that often dwarfs the region of memory it points at, and it's common for them to refer to a ProcBin which must be kept around as long as the SubBin lives, using up even more heap space and keeping the referenced binary alive regardless of how small the sub-binary is.
2019-08-09Merge branch 'dgud/observer/fix-darkmode/OTP-15916' into maintDan Gudmundsson
* dgud/observer/fix-darkmode/OTP-15916: observer: Fixes for html viewers observer: Support darkmode gui
2019-08-09Merge branch 'dgud/mnesia/sticky-bug/ERL-768/OTP-15979' into maintDan Gudmundsson
* dgud/mnesia/sticky-bug/ERL-768/OTP-15979: mnesia: Bump protocol version mnesia: Introduce sync_asym_trans protocol
2019-08-09Merge branch 'dgud/mnesia/add_table_copy_deadlock/ERL-872/OTP-15933' into maintDan Gudmundsson
* dgud/mnesia/add_table_copy_deadlock/ERL-872/OTP-15933: mnesia: Fix deadlock caused by add_table_copy
2019-08-07Update java docDan Gudmundsson
Replace deprecated <tt> with <code>
2019-08-06os_mon: Fix sscanf to use %llu instead of gnu specific %LuLukas Larsson
For instance musl does not recognize the %L modifier.
2019-08-06Fix syntax error in logger_disk_log_h.xmlShion Ryuu
2019-08-05Merge branch 'bjorn/compiler/fix-stack-init/ERL-1017/OTP-15968' into maintBjörn Gustavsson
* bjorn/compiler/fix-stack-init/ERL-1017/OTP-15968: Ensure that the stack slots are initialized when matching maps
2019-08-05Ensure that the stack slots are initialized when matching mapsBjörn Gustavsson
When matching a map, the compiler could fail to generate code that would initialize all stack slots (Y registers) properly. Here is a general outline of code that *could* cause this problem: foo(Key, Map) -> Res = case Map of #{Key := Val} -> %% Do something with Val here. . . . #{} -> [] end, %% The stack slot for Val might not have been initialized %% here if the key was not present in the map. . . . %% Use Res. . . . The code generator would wrongly assume that the map matching would always initialize the stack slot, and if nothing else happened to force that stack slot to be initialized, it would remain uninitialized, which would likely crash the runtime system at the next garbage collection. `beam_validator` is supposed to find these kind of problems, but a bug in `beam_validator` prevented it from detecting this problem. https://bugs.erlang.org/browse/ERL-1017
2019-08-05Merge branch 'john/compiler/fix-delayed-type-inference/OTP-15954/ERL-995' ↵John Högberg
into maint * john/compiler/fix-delayed-type-inference/OTP-15954/ERL-995: beam_validator: Values referenced by other values must be merged
2019-08-02Merge pull request #2336 from ↵Björn Gustavsson
bjorng/bjorn/compiler/fix-slow-beam_ssa_dead/ERL-1014/OTP-15966 Avoid extremely long compilation times for huge functions
2019-08-02Merge branch 'bjorn/compiler/length-misuse/ERL-1013' of ↵Björn Gustavsson
https://github.com/bjorng/otp into maint OTP-15970 * 'bjorn/compiler/length-misuse/ERL-1013' of https://github.com/bjorng/otp: Eliminate a crash in the type optimizer pass
2019-08-02Merge branch 'bjorn/compiler/fix-no_type_opt/ERL-997' of ↵Björn Gustavsson
https://github.com/bjorng/otp into maint OTP-15969 * 'bjorn/compiler/fix-no_type_opt/ERL-997' of https://github.com/bjorng/otp: Fix compiler crash when compiling with +no_type_opt
2019-08-01Merge branch 'bmk/snmp/20190731/correct_top_sup_stop' into maintMicael Karlberg
2019-08-01Avoid extremely long compilation times for huge functionsBjörn Gustavsson
Compiling this example takes less than a second for OTP 21: -define(B, {?A,?A,?A,?A,?A}). -define(C, {?B,?B,?B,?B,?B}). -define(D, {?C,?C,?C,?C,?C}). -define(E, {?D,?D,?D}). f() -> ?E = foo:bar(). The compilation time for OTP 22 is about 10 seconds. Most of the time is spent in `beam_ssa_dead`. This commit introduces several optimizations to bring the compilation time down to about a second. The most important of those optimizations is limiting the effort spent searching forward for a joining point for the success and failure labels for a two-way branch. This change is helped by the change of representation of variable sets from `ordsets` to `cerl_sets`. https://bugs.erlang.org/browse/ERL-1014
2019-08-01Merge branch 'bmk/megaco/20190710/test_tweaking' into maintMicael Karlberg
2019-08-01Merge branch 'bjorn/compiler/fix-unsafe-sharing/OTP-15963' into maintBjörn Gustavsson
* bjorn/compiler/fix-unsafe-sharing/OTP-15963: Fix unsafe code sharing
2019-07-31[snmp] Fixed agent|manager top supervisor stopMicael Karlberg
2019-07-31Merge branch 'bmk/snmp/manager/20190729/test_tweaking' into maintMicael Karlberg
2019-07-31[megaco|test] Add an event list to the test MGC/MGMicael Karlberg
To provide more info when analyzing failed test cases an "event" queue (of max size 10) is added to both the test MG and MGC. This event queue is printed when the process exist. Also, the multi_ack_timeout is wonky, so add anther platform (sunos) to the skip list...
2019-07-31ssl: Extend testsPéter Dimitrov
2019-07-31ssl: Fix better OpenSSL support in test frameworkIngela Anderton Andin
2019-07-31ssl: Avoid broken ALPN/NPN renegotiation in OpenSSLIngela Anderton Andin
All these test work fine with current OpenSSL master
2019-07-30Merge branch 'hans/ssh/early_crash_fail_logging/ERL-990/OTP-15962' into maintHans Nilsson
* hans/ssh/early_crash_fail_logging/ERL-990/OTP-15962: ssh: added log/4 ssh: Fix log problem in early stages of initialization ssh: Fix potential crash if failure in init of client
2019-07-30[megaco|test] Fix copyright end dateMicael Karlberg
2019-07-30Fix compiler crash when compiling with +no_type_optBjörn Gustavsson
If the `no_type_opt` option was given, the compiler would crash when attempting to compile containing with a `try`...`after` construct, such as this code: foo() -> try make_ref() after ok end. To avoid having this bug re-appear, test the `no_type_opt` option in the test suites. https://bugs.erlang.org/browse/ERL-997
2019-07-30Eliminate a crash in the type optimizer passBjörn Gustavsson
https://bugs.erlang.org/browse/ERL-1013
2019-07-29Merge branch 'bmk/snmp/manager/20190723/test_tweaking' into maintMicael Karlberg
2019-07-29Merge branch 'bmk/snmp/agent/20190718/fixing_test_exits' into maintMicael Karlberg
2019-07-29Fix unsafe code sharingBjörn Gustavsson
2019-07-29[snmp|manager|test] Make even deprecated test cases use tc_tryMicael Karlberg
Make even deprecated test cases use the tc_try function (so that all test cases look the same). Also make the skip reason for those test cases be slightly more readable.
2019-07-29[snmp|manager|test] Make use of the tc_try function(s)Micael Karlberg
Make use of the tc_try function(s) in all "active" test cases.
2019-07-29[snmp|test] Add utility functions for running test casesMicael Karlberg
Add a utility function, tc_try/2,3, for running test cases in a uniform way.
2019-07-29[megaco|test] More timing issuesMicael Karlberg
Adjusted some timeouts... Also, add time stamp to the 'delivery' printouts.
2019-07-29ssl: Remove NPN test from DTLS interop testsIngela Anderton Andin
OpenSSL does note seem to support NPN for DTLS so we will have to skip those test
2019-07-26ssl: Enable TLS 1.3 test groups in FTPéter Dimitrov
2019-07-26Merge branch 'peterdmv/ssl/psk' into maintPéter Dimitrov
* peterdmv/ssl/psk: ssl: Reorder testcases in ssl_api_SUITE ssl: Fix handshake pause in TLS 1.3 ssl: Implement option honor_cipher_order in TLS 1.3 ssl: Add test for option supported_groups ssl: Document option supported_groups ssl: Fix ssl_api_SUITE:connection_information ssl: Fix property tests for SSLv3 ssl: Update property tests with pre_shared_key ssl: Implement pre_shared_key extension ssl: Update property tests with psk_key_exchange_modes ssl: Implement psk_key_exchange_modes extension
2019-07-26ssl: Move reuseaddr test to tls_api_SUITEIngela Anderton Andin
2019-07-26ssl: Avoid devision with zero in ssl_bench_SUITEIngela Anderton Andin
When one test in ssl_bench_SUITE is run as a smoke test in the ordinary test runs it might get problems on windows as time measurement is to coarse
2019-07-25Correct dump_log_write_threshold default valueMichael Davis
```erl 1> mnesia:system_info(dump_log_time_threshold). 1000 ``` Looks like a missing `0`!
2019-07-25[megaco|test] Fixed timer 'start and stop' test caseMicael Karlberg
When cancel'ing a timer, the ok return is either: ok or {ok, Remaining} The test case did not handle this (expected 'ok').
2019-07-25[megaco|test] Improve skip'ing of codec casesMicael Karlberg
2019-07-25[megaco|test] Attempt to catch and handle skip'able TCP casesMicael Karlberg
When waiting for the server command handler to start listening, wait only for so long (5 seconds) and if it has not managed to start listening before then, we *skip* (because something is wrong with the *system*).
2019-07-25[megaco|test] General improvement to "skip handling"Micael Karlberg
2019-07-25ssl: Reorder testcases in ssl_api_SUITEPéter Dimitrov