Age | Commit message (Collapse) | Author |
|
base64:decode(List) optimized reimplementation
OTP-14624
|
|
|
|
* siri/rb/fix-bad_form/ERL-261/OTP-13906:
[rb] Don't fail for unexpected type of report
|
|
* bjorn/compiler/match-literals:
Optimize instructions for comparing a register with a literal
Optimize matching of literals for single-valued types
|
|
* maint:
fix win32 share filename join/split (#1604)
Correct io_vec handling
|
|
* dgud/wx/fix-empty-binaries/OTP-14688:
Correct io_vec handling
|
|
Handle UNC (shared) path on win32, previously "//dir/.." and "\\\\dir\.." was cleaned up to
"/dir/.." which was not correct.
OTP-14693
|
|
Conflicts:
lib/ssl/src/inet_tls_dist.erl
|
|
* ingela/ssl/dist-crl:
ssl: Do not provide IP address to ssl:connect in erlang distribution over TLS
|
|
|
|
* ingela/public_key/ecc-keys/RRL-482/OTP-14620:
public_key: Handle formatting of ECC params from DER to crypto API
|
|
Solves ERL-482
|
|
We can avoid calling eq() from the is_eq_exact_literal/3
and is_ne_exact_literal/3 instructions if the source operand is
an immediate (since a literal is either a boxed or a list, never
an immediate).
|
|
If a type only has one clause and if the pattern is literal,
the matching can be done more efficiently by directly comparing
with the literal.
Example:
find(String, "") -> String;
find(String, <<>>) -> String;
find(String, SearchPattern) ->
.
.
.
Without this optimization, the relevant part of the code would look
this:
{test,bs_start_match2,{f,3},2,[{x,1},0],{x,2}}.
{test,bs_test_tail2,{f,4},[{x,2},0]}.
return.
{label,3}.
{test,is_nil,{f,4},[{x,1}]}.
return.
{label,4}.
.
.
.
That is, if {x,1} is a binary, a match context will be built to
test whether {x,1} is an empty binary.
With the optimization, the code will look this:
{test,is_eq_exact,{f,3},[{x,1},{literal,<<>>}]}.
return.
{label,3}.
{test,is_nil,{f,4},[{x,1}]}.
return.
{label,4}.
.
.
.
|
|
As TLS clients will perform a hostname check against certificates
the IP-address does not make much sense.
|
|
* maint:
Bump version of crash dumps to 0.4
Verify that binaries of different sizes are dumped correctly
Don't dump literal areas that are not referenced at all
Dump literals separately to avoid incomplete heap data
Implement dumping of maps in crash dumps
Buffer writing of crash dumps
Conflicts:
erts/emulator/beam/erl_alloc.types
|
|
* bjorn/improve-crash-dumps/OTP-14685:
Bump version of crash dumps to 0.4
Verify that binaries of different sizes are dumped correctly
Don't dump literal areas that are not referenced at all
Dump literals separately to avoid incomplete heap data
Implement dumping of maps in crash dumps
Buffer writing of crash dumps
|
|
typo in OTP Design Principles
|
|
OTP-13764
Implement uniform floats with decreasing distance towards 0.0
|
|
* bjorn/erts/cuddle-with-tests:
Eliminate use of deprecated functions in string
Eliminate warnings for ignoring the result of an expression
|
|
|
|
|
|
|
|
When a literal was used from several processes, the literal would
be dumped in only one of the processes. The other processes
that referenced the literals would have incomplete heap data.
|
|
Maps would be dumped as the atom 'undefined', which is
not very informative.
|
|
Writing of crash dumps were done using unbuffered IO. This
is slow since many small writes are done.
Use a FILE* with an allocated buffer to obtain buffered IO.
I wrote a small test program that created 50000 binaries of 200 bytes
each and then created a crash dump. The crash dumping was an order of
magnitude faster with buffered IO than without.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* lukas/erts/win_user_home_dir/OTP-14691:
erts: Use PROFILE dir as home on windows
|
|
|
|
* ingela/dtls/no-packet-upd/OTP-14664:
ssl: No support for packet option over unreliable transport
|
|
* sverker/on_load-nonblocking/OTP-14680:
erts: Remove scheduler blocking during finish_after_on_load_2
|
|
|
|
* sverker/dist-send-noreply-opt/OTP-14689:
erts: Improve distribution send operations
|
|
|
|
* ingela/ssl/extend-hostname-check/OTP-14632/OTP-14655:
ssl: Fix test cases to work on all test platforms
public_key: Fix dialyzer spec
ssl: Sessions must be registered with SNI if exists
ssl: Extend hostname check to fallback to checking IP-address
public_key, ssl: Handles keys so that APIs are preserved correctly
|
|
* siri/observer/multiple-ms-clauses/ERL-489:
Allow multiple clauses in match spec
|
|
rb would fail to show an error_logger report which was not a
list. This is now corrected and any term is allowed (as specified in
the error_logger reference manual).
|
|
* maint:
stdlib: Make ets:i/1 exit cleaner upon ^D (old Erlang shell)
|
|
* hasse/stdlib/fix_ets_i_1/OTP-14663:
stdlib: Make ets:i/1 exit cleaner upon ^D (old Erlang shell)
|
|
Can not depend on internal knowledge of binaries any more
it changed and caused at least opengl to crash in OTP-20.1
|
|
|
|
|
|
* lukas/jinterface/disable-travis:
jinterface: Skip tests when hostname cannot be resolved
|
|
* dgud/dot_erlang/OTP-14439:
fixup! Do not load .erlang from current dir
erlc: Do not load .erlang
escript: Do not load .erlang
dialyzer: Do not load .erlang
reltool: Add no_dot_erlang bootfiles
Enable usage of no_dot_erlang in bootstrap
Do not load .erlang from current dir
|
|
* dgud/kernel/get_chars_raw_echo_off:
Let io:get_chars/2 (echo off) fetch chars without eol
|