Age | Commit message (Collapse) | Author |
|
Conflicts:
OTP_VERSION
|
|
|
|
|
|
|
|
|
|
|
|
* dgud/mnesia/restore-leak/OTP-13025:
mnesia: Fix mnesia:restore/2 which caused a disk_log leak
|
|
* ia/inets/string-not-atom/OTP-13022:
inets: Use ?MODULE_STRING instead of ?MODULE as argument should be a string
|
|
* ia/inets/custom-header-add-default/OTP-13013:
inets: Prepare for release
inets: Add new customize function response_default_headers
inets: Add behaviour httpd_custom_api
|
|
|
|
* essen/missing-behavior-absform:
Add missing behavior/behaviours to absform docs
|
|
* kostis/eldap-no-unmatched-returns:
Eliminate dialyzer warnings for unmatched_returns
|
|
|
|
* nybek/supervisor_reporting_error:
Fix supervisor reporting error
|
|
Introduced a leak of disk_log processes in the rewrite to try-catch.
|
|
|
|
|
|
Now runs release_docs och the smoke_test
Also in paralell
|
|
* maint:
ssh: 4.1->4.2
|
|
* hans/ssh/update_vsn.mk:
ssh: 4.1->4.2
|
|
|
|
* maint:
ssh: document dh-gex default values
ssh: document ecdh and hmac-sha2-512
|
|
* hans/ssh/doc_dh-gex_defaults:
ssh: document dh-gex default values
|
|
* hans/ssh/doc-ecdh_and_hmac512:
ssh: document ecdh and hmac-sha2-512
|
|
|
|
|
|
|
|
|
|
Conflicts:
OTP_VERSION
erts/doc/src/notes.xml
erts/vsn.mk
lib/debugger/doc/src/notes.xml
lib/debugger/vsn.mk
otp_versions.table
|
|
|
|
This enables the user to provide default HTTP header values for headers
that should always be sent. Note that these values
may override built in defaults.
|
|
Add this now as 18 allows optional callback specs
|
|
|
|
* stevendanna/eunit-doc-timeout:
Document eunit's default 5 second test timeout
OTP-13017
|
|
* entropiae/patch-1:
Fixed typo in otp design principles
OTP-13017
|
|
* legoscia/patch-10:
Fix typos in crypto documentation
OTP-13017
|
|
* c-rack/fix-list_to_bitstring-example:
Typos in documentation example of list_to_bitstring/1
OTP-13017
|
|
* knewter/perspektive:
[typo] perspektive -> perspective
OTP-13017
|
|
|
|
* lucafavatella/fix-snmp-doc-typo:
Fix typo in SNMP MIB in documentation
OTP-13017
|
|
|
|
* siri/ts_lib-get_arg/remove_space/OTP-13015:
Allow internal spaces in IFEQ test in generated Makefile
|
|
When generating Makefile from Makefile.src, ts_lib:get_arg/4 earlier
removed all spaces in the extracted argument. The code was probably
meant for removing leading and trailing spaces only, and is now
corrected to do so.
|
|
Another process may already have been placed in this slot
since the free och the process struct can be scheduled for
later.
|
|
|
|
* bjorn/compiler/misc:
Move select_val optimization from beam_clean to beam_peep
beam_type: Improve optimizations by keeping track of booleans
beam_type: Improve optimization by keeping track of integers
beam_type: Remove unused clause
beam_type: Fix forgotten change of internal representation
beam_dead: Improve optimization of literal binary matching
beam_dead: Optimize select_val instructions
Move out bit syntax optimizations from beam_block
sys_core_fold: Extend the list of BIFs that return integers
v3_codegen: Optimize matching of the final size-less binary segment
Regain full coverage of beam_block
|
|
There is an optimization in beam_clean that will remove values
having the same label as the failure label in a select_val
instruction. Conceptually, this optimization is in the wrong
module since ideally beam_clean is a mandatory pass that should
not do optimizations. Furthermore, this part of beam_clean is
called three times (from beam_dead, beam_peep, and as a compiler
pass from the 'compile' module), but it only does useful one of
the times it is called.
Therefore, move this optimization to the beam_peep pass.
The same optimization is done in beam_dead, but unfortunately it
misses some opportunities for optimization because the code sharing
optimization in beam_jump (share/1) runs after beam_dead. It would
be more satisfactory to have this optimization only in beam_dead,
but it turned out not to be trivial. If we try to run
beam_jump:share/1 before beam_dead, some optimizations will no
longer work in beam_dead because fallthroughs have been eliminated.
For the moment, the possible solutions to this problem seems to
involve more work and more complicated code than the gain from
eliminating the duplicated optimization would gain.
|
|
There is an optimization in beam_block to simplify a select_val
on a known boolean value. We can implement this optimization
in a cleaner way in beam_type and it will also be applicable
in more situations. (When I added the optimization to beam_type
without removing the optimization from beam_block, the optimization
was applied 66 times.)
|
|
The ASN.1 compiler often generates code similar to:
f(<<0:1,...>>) -> ...;
f(<<1:1,...>>) -> ....
Internally that will be rewritten to (conceptually):
f(<<B:1,Tail/binary>>) ->
case B of
0 ->
case Tail of ... end;
1 ->
case Tail of ... end;
_ ->
error(case_clause)
end.
Since B comes from a bit field of one bit, we know that the only
possible values are 0 and 1. Therefore the error clause can be
eliminated like this:
f(<<B:1,Tail/binary>>) ->
case B of
0 ->
case Tail of ... end;
_ ->
case Tail of ... end
end.
Similarly, we can also a deduce the range for an integer from
a 'band' operation with a literal integer.
While we are at it, also add a test case to improve the coverage.
|
|
The clause cannot possibly match, because there will always be
a {bif,...} clause that will match before reaching the fclearerror
instruction.
|