Age | Commit message (Collapse) | Author |
|
|
|
|
|
into maint
* duncaen/crypto/fix-algo_cipher-array-size/PR-1140/OTP-13789:
Fix segfault in crypto by increasing algo_cipher array
|
|
* maint:
Update primary bootstrap
beam_block: Fix potentially unsafe optimization in move_allocates/1
|
|
* bjorn/compiler/not_live/ERL-202/OTP-13780:
beam_block: Fix potentially unsafe optimization in move_allocates/1
|
|
beam_block has an optimization that only is safe when it is applied
immediately after code generation. That is pointed out in a comment:
NOTE: Moving allocation instructions is only safe because it is done
immediately after code generation so that we KNOW that if {x,X} is
initialized, all x registers with lower numbers are also initialized.
That assumption may not be true after other optimizations, such as
the beam_utils:live_opt/1 optimization.
The new beam_reorder pass added in OTP 19 runs before beam_block.
Therefore, the optimization is potentially unsafe. The optimization
is also unsafe if compilation is started from assembly code in a
.S file.
Rewrite the optimization to make it safe. See the newly added comment
for details.
ERL-202
|
|
* maint:
Improve format_warning/1 spec
|
|
* elbrujohalcon/dialyzer/fix-spec/PR-1134/OTP-13786:
Improve format_warning/1 spec
|
|
|
|
|
|
|
|
|
|
|
|
maint
* ellbee/odbc/configure-OS-X-El-Capitan/PR-1137/OTP-13781:
Make ODBC configure handle OS X El Capitan
|
|
This speeds up the compilation of binary literals
with string values in them. For example, compiling
a file with a ~340kB binary would yield the following
times by the compiler:
Compiling "foo"
parse_module : 0.130 s 5327.6 kB
transform_module : 0.000 s 5327.6 kB
lint_module : 0.011 s 5327.8 kB
expand_module : 0.508 s 71881.2 kB
v3_core : 0.463 s 11.5 kB
Notice the increase in memory and processing time
in expand_module and v3_core. This happened because
expand_module would expand the string in binaries
into chars. For example, the binary <<"foo">>, which
is represented as
{bin, 1, [
{bin_element, 1, {string, 1, "foo"}, default, default}
]}
would be converted to
{bin, 1, [
{bin_element, 1, {char, 1, $f}, default, default},
{bin_element, 1, {char, 1, $o}, default, default},
{bin_element, 1, {char, 1, $o}, default, default}
]}
However, v3_core would then traverse all of those
characters and convert it into an actual binary, as it
is a literal value.
This patch addresses this issue by moving the expansion
of string into chars to v3_core and only if a literal
value cannot not be built. This reduces the compilation
time of the file mentioned above to the values below:
Compiling "bar"
parse_module : 0.134 s 5327.6 kB
transform_module : 0.000 s 5327.6 kB
lint_module : 0.005 s 5327.8 kB
expand_module : 0.000 s 5328.7 kB
v3_core : 0.013 s 11.2 kB
|
|
|
|
|
|
|
|
|
|
|
|
|
|
maint
* efine/inets/validate-inet6fb4/ERL-200/PR-1132/OTP-13776:
Test inet6fb4 in basic suite
Actually verify result of testcase
Fix inets_sup_SUITE for local tests
Add test for inet6fb4 validation
Fix httpd_conf:validate_properties/1 for ipfamily
|
|
|
|
* comtihon/fprof/fix-gc-tags/PR-1136/OTP-13778:
fix gc_start\end bug
|
|
|
|
* raimo/SCTP-socket-stats/ERL-102/OTP-13773:
Fix SCTP send stats in inet_drv
Test inet:getstat/1 dead for SCTP send
Fix test suite compilation warnings
|
|
|
|
|
|
The ERL-82 issue requests a way to calculate a CMAC in Erlang. The
AES128 CMAC is standartized in RFC 4493 and used e.g. for message
authentication in the LoRaWAN networks.
The CMAC is implemented by OpenSSL since v1.0.1, but as @IngelaAndin
stated in response to the ERL-82, the current crypto implementation
does not include functions that call those OpenSSL cryptolib functions.
This commit introduces a new function `crypto:cmac` that calls
the corresponding OpenSSL functions and calculates the CMAC.
Only the cmac_nif is implemented. The incremental functions (init,
update, final) are not provided because the current OpenSSL does
not allow custom memory allocators like `enif_alloc_resource`.
The Erlang user guide states that at least OpenSSL 0.9.8 is required,
so I added few #ifdefs so the code is compatible with all versions.
However, the OpenSSL pages say that the pre-1.0.1 versions (0.9.8 and
1.0.0) are no longer maintained. Even the 1.0.1 will be retired by
Dec 2016. Hence I believe that adding a 1.0.1-only function like CMAC
should be OK.
|
|
Change ODBC configure.in script to recognize OS X El Capitan (Darwin v15.x)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Let it handle `dial_warning()` input as well, to match what `format_warning/2` expects.
|
|
|
|
* okumin/kernel/remove-duplicated-line/PR-1119/OTP-13771:
Remove a duplicated pattern matching in erl_epmd.erl
|
|
|
|
maint
* lemenkov/kernel/fix-register_ipv6_epmd/PR-1129/OTP-13770:
Respect -proto_dist switch while connection to EPMD
|
|
|
|
Conflicts:
OTP_VERSION
erts/doc/src/notes.xml
erts/vsn.mk
lib/common_test/doc/src/notes.xml
lib/common_test/vsn.mk
lib/ssl/doc/src/notes.xml
lib/ssl/src/ssl.appup.src
lib/ssl/vsn.mk
lib/stdlib/test/ets_SUITE.erl
otp_versions.table
|
|
inets:start/2 fails when using the legacy option inet6fb4 with a
configuration proplist. It is not translated to inet as documented.
This breaks existing code that relies on the documented behavior.
This commit fixes the issue by translating inet6fb4 everywhere it is
encountered in httpd_conf:validate_properties/1.
From inets documentation (http://erlang.org/doc/man/httpd.html):
{ipfamily, inet | inet6}
Default is inet, legacy option inet6fb4 no longer makes sense
and will be translated to inet.
Fixes ERL-200.
|
|
|
|
* raimo/ssl/version-selection/maint-18/OTP-13753:
Improve version selection
|
|
* peppe/ct_telnet_duplicated_lines/OTP-13730:
Fix error with duplicated printouts by ct_telnet:expect/3
|
|
OTP-13730
|