Age | Commit message (Collapse) | Author |
|
|
|
This change saves about about a minute when running the
cover-compiled compiler tests.
|
|
|
|
|
|
Use `counters:add/3` instead of `ets:update_counter/3`
for counting the number of times a line is executed.
By default, the reference to the counter array for each module will be
stored in a persistent term and retrieved every time a counter is
updated. This makes the compiler test suite with coverage enabled run
*almost* twice as fast (on my computer, in about 6 minutes down from
more than 11 minutes).
To get even more speed, the new `cover:local_only/0` function can be
called to put cover into a mode where the cover-compiled code can only
be run on the local node. In this mode, the cover-compiled modules in
a more efficient way by compiling the counter reference into the
code. This shaves off about one more minute, making the compiler test
suite with coverage enabled run *more than* twice as fast (in about 5
minutes on my computer).
|
|
Test TLS 1.3 connectivity between ssl server and
openssl s_client.
Change-Id: I926229d6bc9e6670ebe0190b491257876845b570
|
|
|
|
* sverker/enif_select-faulty-assert:
erts: Fix faulty debug assert in enif_select
|
|
* sverker/map-from-ks-vs-bug/OTP-15567:
erts: Add test for bug in enif_make_maps_from_arrays
erts: Fix bug in erts_map_from_ks_and_vs
|
|
* siri/ct_netconfc/edit-config-list/OTP-15298:
[ct] Allow ct_netconfc:edit_config/3,4,5 to take a list of XML elements
|
|
* siri/ct_telnet/div-improvements/OTP-15229:
[ct] Add option {newline,string()} to ct_telnet:cmd and ct_telnet:send
[ct] Improve error handling of bad regular expressions to ct_telnet
|
|
reltool: Add load_dot_erlang rel option
OTP-15571
|
|
* hans/crypto/disable_blake2_libressl/OTP-15564:
crypto: Disable blake2 in LibreSSL (not supported)
|
|
|
|
|
|
* maint:
dialyzer: Fix a bug affecting keyfind/keysearch/keymember
|
|
* dialyzer/hasse/fix_bug_erl_bif_types/OTP-15570:
dialyzer: Fix a bug affecting keyfind/keysearch/keymember
|
|
beam_ssa_type: Propagate the 'none' type from calls
|
|
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.
|
|
* `open/1-2` can return `{error, system_limit}`
* `recv/3` can return `{error, timeout}`
|
|
* `connect/3` can return `{error, timeout}`
* `accept/1` cannot return `{error, timeout}`
* `recv/3` can return `{error, timeout}`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
set_aliased_type already preserves fragility when updating the type
of a fragile register.
|
|
|
|
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.
|
|
|
|
Change-Id: Ia84c71214b5379baec3455f0e416a9ea73584750
|
|
Change-Id: I87f2111cd557a0000cfd8ab4d50f4e58787bf104
|
|
- 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
|
|
|
|
|
|
|
|
flight_state is used to handle retransmission timers for DTLS over udp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|