aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2019-02-11Merge branch 'hans/crypto/disable_blake2_libressl/OTP-15564'Hans Nilsson
* hans/crypto/disable_blake2_libressl/OTP-15564: crypto: Disable blake2 in LibreSSL (not supported)
2019-02-11diameter: Update to use exported typesIngela Anderton Andin
2019-02-11Update primary bootstrapBjörn Gustavsson
2019-02-11Merge branch 'maint'Hans Bolinder
* maint: dialyzer: Fix a bug affecting keyfind/keysearch/keymember
2019-02-11Merge branch 'dialyzer/hasse/fix_bug_erl_bif_types/OTP-15570' into maintHans Bolinder
* dialyzer/hasse/fix_bug_erl_bif_types/OTP-15570: dialyzer: Fix a bug affecting keyfind/keysearch/keymember
2019-02-11Merge pull request #2134 from bjorng/bjorn/compiler/propagate-noneBjörn Gustavsson
beam_ssa_type: Propagate the 'none' type from calls
2019-02-11beam_ssa_type: Propagate the 'none' type from callsBjörn Gustavsson
Consider this pseudo code: f(...) -> Val = case Expr of ... -> ... ; ... -> ... ; ... -> my_abort(something_went_wrong) end, %% Here follows code that uses Val. . . . my_abort(Reason) -> throw({error,Reason}). The first two clauses in the case will probably provide some information about the type of the variable `Var`, information that would be useful for optimizing the code that follows the case. However, the third clause would ruin everything. The call to `my_abort/1` could return anything, and thus `Val` could also have any type. 294d66a295f6 introduced module-level type analysis, which will in general keep track of the return type of a local function call. However, it does not improve the optimization for this specific function. When a function never returns, that is, when its type is `none`, it does not propagate the `none` type, but instead pretends that the return type is `any`. This commit extends the handling of functions that don't return to properly handle the `none` type. Any instructions that directly follows the function that does not return will be discarded, and the call will be rewritten to a tail-recursive call. For this specific example, it means that the type for `Val` deduced from the first two clauses will be retained and can be used for optimizing the code after the case.
2019-02-09gen_udp: Update open/1-2 and recv/3 specsWojtek Mach
* `open/1-2` can return `{error, system_limit}` * `recv/3` can return `{error, timeout}`
2019-02-09gen_tcp: Update connect/3, accept/1, and recv/3 specsWojtek Mach
* `connect/3` can return `{error, timeout}` * `accept/1` cannot return `{error, timeout}` * `recv/3` can return `{error, timeout}`
2019-02-08ssl: Move and rename diffie_hellman_keys and srp_keys to kex_keysIngela Anderton Andin
2019-02-08ssl: Move key_algorithm to handshake_envIngela Anderton Andin
2019-02-08stdlib: Add ETS docs about partially bound key traversalSverker Eriksson
2019-02-08ssl: srpIngela Anderton Andin
2019-02-08ssl: RenameIngela Anderton Andin
2019-02-08beam_validator: type_test in BIFs that only fail on invalid typesJohn Högberg
2019-02-08beam_validator: Simplify complex branchesJohn Högberg
Branches where the state is altered on both success and failure are hard to follow and require juggling the current state, so this commit adds a helper function to make it easier.
2019-02-08beam_validator: Explain why verify_get_map wipes dst registersJohn Högberg
2019-02-08beam_validator: fconv means we have a numberJohn Högberg
2019-02-08beam_validator: Simplify update_ne/eq_typesJohn Högberg
2019-02-08beam_validator: Remove pointless fragility propagationJohn Högberg
set_aliased_type already preserves fragility when updating the type of a fragile register.
2019-02-08beam_validator: Misc cosmetic refactoringJohn Högberg
2019-02-08Fix nocatch on incoming answer with faulty Experimental-Result-CodeAnders Svensson
Failure to decode the Grouped AVP results in a throw from module diameter_gen, which is caught in the normal message decode, but wasn't when only the AVP is decoded from diameter_traffic (for error checking and counter increment). The result was no handle_answer/error callback, and an error return from diameter:call/4 when the detach option was not specified.
2019-02-08dialyzer: Fix a bug affecting keyfind/keysearch/keymemberHans Bolinder
2019-02-08ssl: Fix crash when sending AlertsPéter Dimitrov
Change-Id: Ia84c71214b5379baec3455f0e416a9ea73584750
2019-02-08ssl: Fix dialyzer warningPéter Dimitrov
Change-Id: I87f2111cd557a0000cfd8ab4d50f4e58787bf104
2019-02-08ssl: Improve TLS 1.3 statemPéter Dimitrov
- Store FinishedKey in cipher_state. - Implement state 'wait_finished'. - Calculate traffic secrets in 'wait_finished' after Finished received from client and go to state 'Connection'. - Drop 'change_cipher_spec' messages (middlebox compatibility mode). - Extend tests of 1-RTT. Change-Id: Id69619ec5da053ffaaef75378678a27afeef6916
2019-02-08ssl: Move diffie_hellman_params to handshake_envIngela Anderton Andin
2019-02-08ssl: Move and rename psk_identity state record fieldIngela Anderton Andin
2019-02-08ssl: Move premaster_secret to handshake_envIngela Anderton Andin
2019-02-08ssl: Make flight_state DTLS specificIngela Anderton Andin
flight_state is used to handle retransmission timers for DTLS over udp
2019-02-08ssl: Add private_key to connection_envIngela Anderton Andin
2019-02-08ssl: Remove unused record fieldIngela Anderton Andin
2019-02-08ssl: Add erl_dist_handle to connection_envIngela Anderton Andin
2019-02-08ssl: Add negotiated_version to connection_envIngela Anderton Andin
2019-02-08ssl: Add key exchange items to handshake_envIngela Anderton Andin
2019-02-08ssl: Add hashsign_algorithm and cert_hashsign_algorithm to handshake_envIngela Anderton Andin
2019-02-08ssl: Add downgrade handling to connection_envIngela Anderton Andin
Remove duplicate handsake history handling form ssl_config function. Later we might refactor to avoid duplication in TLS and DTLS code, but handshake history does not belong in ssl_config function.
2019-02-08ssl: Create connection_envIngela Anderton Andin
2019-02-08ssl: Handle renegotiation and extensions in handshake_envIngela Anderton Andin
2019-02-07Merge pull request #2135 from bjorng/bjorn/compiler/optimize-dominatorsBjörn Gustavsson
Optimize ssa_opt_sink for huge functions
2019-02-06erts: Fix faulty debug assert in enif_selectSverker Eriksson
2019-02-06erts: Add test for bug in enif_make_maps_from_arraysSverker Eriksson
2019-02-06Merge tag 'OTP-21.2' into sverker/map-from-ks-vs-bugSverker Eriksson
2019-02-06erts: Fix bug in erts_map_from_ks_and_vsSverker Eriksson
This sleeping bug was introduced in OTP 19.1 but not possible not provoke until OTP 21.0 when enif_make_map_from_arrays was introduced.
2019-02-06Merge branch 'maint'Rickard Green
* maint: Introduce ei_init() Fix bug in ei_accept_tmo Fix build of erl_interface on BSD
2019-02-06Merge branch 'rickard/ei-ext-maint/OTP-15442' into maintRickard Green
* rickard/ei-ext-maint/OTP-15442: Introduce ei_init() Fix bug in ei_accept_tmo Fix build of erl_interface on BSD
2019-02-06crypto: Disable blake2 in LibreSSL (not supported)Hans Nilsson
2019-02-06Merge pull request #2129 from hanssv/crypto/add_blake2_supportHans Nilsson
Add hash function BLAKE2 to crypto:hash/hmac OTP-15564
2019-02-06Merge branch 'maint'Sverker Eriksson
2019-02-06Merge branch 'sverker/fix-compile-warning' into maintSverker Eriksson
* sverker/fix-compile-warning: erts: Fix compiler warning for IS_SSMALL