aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2019-07-11Merge branch 'maint'John Högberg
* maint: compiler: Fix compiler crash introduced by OTP-15952
2019-07-11Merge branch 'john/compiler/fix-bad-try_catch-recv-fix/OTP-15953/ERL-999' ↵John Högberg
into maint * john/compiler/fix-bad-try_catch-recv-fix/OTP-15953/ERL-999: compiler: Fix compiler crash introduced by OTP-15952
2019-07-10compiler: Fix compiler crash introduced by OTP-15952John Högberg
An assertion in code generation would fail when the common exit block was ?BADARG_BLOCK, as some operations expect to always "fail" directly to that block (= throw an exception) and we had inserted a dummy block in between. Other operations could also get funny fail labels, jumping to blocks that immediately jumped to {f,0}, but these were all cleaned up by beam_jump, sweeping the bug under the rug.
2019-07-10Merge branch 'maint'John Högberg
* maint: Updated OTP version Prepare release # Conflicts: # OTP_VERSION # make/otp_version_tickets_in_merge
2019-07-10Merge branch 'maint-22' into maintJohn Högberg
* maint-22: Updated OTP version Prepare release # Conflicts: # make/otp_version_tickets
2019-07-09Updated OTP versionOTP-22.0.6Erlang/OTP
2019-07-09Prepare releaseErlang/OTP
2019-07-09Merge branch 'rickard/test-fixes-21' into maint-22Erlang/OTP
* rickard/test-fixes-21: Fix unstable test dump_SUITE:signal_abort Fix unstable node_container_SUITE:magic_ref test Fix unstable node_container_SUITE:node_controller_refc test Fix unstable tests process_SUITE:no_priority_inversion{,2}
2019-07-09Merge branch 'ingela/ssl/alert-error-enhancment/OTP-15943' into maint-22Erlang/OTP
* ingela/ssl/alert-error-enhancment/OTP-15943: ssl: Enhance error handling
2019-07-09Merge branch 'john/compiler/fix-fail-path-exceptions-bsm/OTP-15946' into ↵Erlang/OTP
maint-22 * john/compiler/fix-fail-path-exceptions-bsm/OTP-15946: beam_ssa_bsm: Leave ?BADARG_BLOCK alone when cloning fail path
2019-07-09Merge branch 'john/compiler/fix-unsafe-tuple_size-opt/OTP-15945' into maint-22Erlang/OTP
* john/compiler/fix-unsafe-tuple_size-opt/OTP-15945: beam_ssa_opt: Do not apply tuple_size optimization outside guards
2019-07-09Merge branch 'john/hipe/catch-miscompilation/OTP-15949' into maint-22Erlang/OTP
* john/hipe/catch-miscompilation/OTP-15949: dialyzer: Remove native code compilation hipe: Disable compilation on encountering try/catch
2019-07-09Merge branch 'john/compiler/fix-try_catch-receives/OTP-15952' into maint-22Erlang/OTP
* john/compiler/fix-try_catch-receives/OTP-15952: compiler: Fix broken 'receive' in try/catch blocks
2019-07-09Merge branch 'maint'John Högberg
* maint: compiler: Fix broken 'receive' in try/catch blocks
2019-07-09Merge branch 'john/compiler/fix-try_catch-receives/OTP-15952' into maintJohn Högberg
* john/compiler/fix-try_catch-receives/OTP-15952: compiler: Fix broken 'receive' in try/catch blocks
2019-07-09compiler: Fix broken 'receive' in try/catch blocksJohn Högberg
This fix is rather ugly and tacked-on, but I'm not comfortable refactoring the pass in an emergency patch.
2019-07-08Merge branch 'maint'Micael Karlberg
2019-07-08Merge branch 'bmk/erts/esock/20190701/improve_multicast_test' into maintMicael Karlberg
2019-07-08Merge branch 'maint'Micael Karlberg
2019-07-08Merge branch 'bmk/erts/esock/20190626/finalize_counters/OTP-15818' into maintMicael Karlberg
2019-07-08Merge branch 'maint'Micael Karlberg
2019-07-08Merge branch 'bmk/erts/esock/20190624/socket_command/OTP-15817' into maintMicael Karlberg
2019-07-08Merge branch 'maint'Raimo Niskanen
* maint: Refine test cases Remove test code that fails on Windows
2019-07-08Merge branch 'raimo/udp-send-TOS/OTP-15422' into maintRaimo Niskanen
* raimo/udp-send-TOS/OTP-15422: Refine test cases Remove test code that fails on Windows
2019-07-08Merge branch 'maint'Micael Karlberg
2019-07-08Merge branch 'bmk/erts/esock/20190614/split_modules/OTP-15765' into maintMicael Karlberg
2019-07-08Merge branch 'maint'Micael Karlberg
2019-07-08Merge branch 'bmk/snmp/20190624/compile_time_info/OTP-15330' into maintMicael Karlberg
2019-07-08[snmp] Compile time no longer availableMicael Karlberg
The function 'snmp:print_version_info/0' which prints various (version) info, attempted to extract the "compile time" of each module in the snmp app. This info used to be availabe in the module_info of each module, but has been removed (a "long" time ago). This resulted in a pointless "Not Found" beeing printed. This has now been removed from the into printed. OTP-15330
2019-07-08Merge branch 'maint'Micael Karlberg
2019-07-08Merge branch 'bmk/snmp/20190627/dialyzer/OTP-15932' into maintMicael Karlberg
2019-07-08[snmp] Updated copyright end dateMicael Karlberg
OTP-15932
2019-07-08Merge branch 'maint'Micael Karlberg
2019-07-08Merge branch 'bmk/snmp/20190607/discover_slooow_vm_issues' into maintMicael Karlberg
2019-07-08Merge branch 'maint'Rickard Green
* maint: Fix unstable test dump_SUITE:signal_abort Fix unstable node_container_SUITE:magic_ref test Fix unstable node_container_SUITE:node_controller_refc test Fix unstable tests process_SUITE:no_priority_inversion{,2}
2019-07-08Merge branch 'rickard/test-fixes-21' into maintRickard Green
* rickard/test-fixes-21: Fix unstable test dump_SUITE:signal_abort Fix unstable node_container_SUITE:magic_ref test Fix unstable node_container_SUITE:node_controller_refc test Fix unstable tests process_SUITE:no_priority_inversion{,2}
2019-07-08Fix unstable test dump_SUITE:signal_abortRickard Green
Sometimes processes have not had the time to spread from one scheduler. Force spread by using the undocumented 'scheduler' option.
2019-07-08Merge branch 'rickard/test-fixes-20' into rickard/test-fixes-21Rickard Green
* rickard/test-fixes-20: Fix unstable node_container_SUITE:magic_ref test Fix unstable node_container_SUITE:node_controller_refc test Fix unstable tests process_SUITE:no_priority_inversion{,2}
2019-07-08Fix unstable node_container_SUITE:magic_ref testRickard Green
2019-07-08Fix unstable node_container_SUITE:node_controller_refc testRickard Green
2019-07-08Fix unstable tests process_SUITE:no_priority_inversion{,2}Rickard Green
Sometimes processes have not had the time to spread from one scheduler. Force spread by using the undocumented 'scheduler' option.
2019-07-08Merge pull request #2318 from jhogberg/john/compiler/union-types/OTP-15892John Högberg
Extend the compiler's type representation
2019-07-08Merge branch 'maint'John Högberg
* maint: dialyzer: Remove native code compilation hipe: Disable compilation on encountering try/catch
2019-07-08Merge branch 'john/hipe/catch-miscompilation/OTP-15949' into maintJohn Högberg
* john/hipe/catch-miscompilation/OTP-15949: dialyzer: Remove native code compilation hipe: Disable compilation on encountering try/catch
2019-07-05beam_ssa_opt: Sink get_tuple_element before type optimizationJohn Högberg
Eagerly extracting elements can be quite problematic now that we have union types. Consider the following: 0: %% _0 is {ok, #record{}} | {error,atom()} _1 = get_tuple_element _0, literal 0 _2 = get_tuple_element _0, literal 1 switch _1, label 0, [ { literal ok, label 1 }, { literal error, label 2 } ] 1: %% _0 is known to be {ok,#record{}} here 2: %% _0 is known to be {error,atom()} here The type pass is clever enough to see that _0 has the types noted above, but because the type of _2 is set in the first block where we didn't have that information yet, it's still #record{} | atom() in both branches. Sinking these instructions to when they are used greatly improves the type information in many cases, but it does have a few limitations and using it in both of the above branches would take us back to square one.
2019-07-05beam_ssa_type: Infer types on switch failureJohn Högberg
If we know that the checked value is a singleton at the fail block, it's safe to infer types as if we've made a direct comparison against that value.
2019-07-05Merge branch 'sverker/hash-improve-shrink'Sverker Eriksson
* sverker/hash-improve-shrink: erts: Tweak hash shrink limit erts: Improve hash shrinking
2019-07-05erts: Tweak hash shrink limitSverker Eriksson
* Only shrink when we can remove one segment and still remain below 50% table load. * Only shrink down to two table segments. It just leads to a lot of potentially "unnecessary" rehashing to have a chance of getting rid of the last extra segment before the last delete op. I don't think it's worth it.
2019-07-05Merge branch 'maint'Sverker Eriksson
2019-07-05Merge branch 'sverker/valgrind-hipe-suppression' into maintSverker Eriksson
* sverker/valgrind-hipe-suppression: erts: Suppress valgrind warning in offset_heap_ptr