aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2018-11-29Merge branch 'maint'Siri Hansen
2018-11-29Merge branch 'siri/logger/ets-read-concurrency/ERL-782/OTP-15453' into maintSiri Hansen
* siri/logger/ets-read-concurrency/ERL-782/OTP-15453: [logger] Add read_concurrency to options for logger ets table
2018-11-29Merge branch 'siri/logger/refactor-built-in-handlers' into maintSiri Hansen
* siri/logger/refactor-built-in-handlers: [logger] Write asynchronously to disk log [logger] Add statistics counter for drops due to message bursts [logger] Further refactor built-in handlers [logger] Move common handler code to logger_h_common
2018-11-29Merge branch 'lukas/ssl/dist_benchmarks'Lukas Larsson
* lukas/ssl/dist_benchmarks: stdlib: Adjust binary bench to be faster ssl: Add scheduler utilization benchmark of plain/tls dist ssl: Link to tstsrvr to group_leader in test ssl: Add some benchmarks to test
2018-11-29stdlib: Adjust binary bench to be fasterLukas Larsson
When benchmarking releases before OTP-22 the binary:match function is very slow so it takes a long time to run the benchmarks. This commit makes the benchmark run for a shorter time which will make the results a bit less stable, but it will cut 1 hour from the benchmark regression so we will have to live with that.
2018-11-29ssl: Add scheduler utilization benchmark of plain/tls distLukas Larsson
2018-11-29ssl: Link to tstsrvr to group_leader in testLukas Larsson
If the check_ssl_node_up call is made by an rpc:call the calling process will terminate and thus the tstsrvr loop would terminate too early. We instead link with the group leader so that the look still terminates, but only if the parent node does.
2018-11-29ssl: Add some benchmarks to testLukas Larsson
The ssl benchmarks tend to break when doing other changes in ssl, so we add some of the benchmarks to be run as part of normal testing.
2018-11-28Merge branch 'maint'Siri Hansen
2018-11-28Merge branch 'siri/logger/doc-macros-in-hrl/ERL-787' into maintSiri Hansen
* siri/logger/doc-macros-in-hrl/ERL-787: [logger] Document that macros are defined in logger.hrl
2018-11-28Merge pull request #2033 from bjorng/bjorn/compiler/sharingBjörn Gustavsson
Add a code sharing optimization pass
2018-11-28Merge branch 'maint'Siri Hansen
2018-11-28Merge pull request #2008 from aronisstav/reltool-fix-erl-libs-windowsSiri Hansen
Make reltool correctly handle Windows 'ERL_LIBS' OTP-15454
2018-11-28Cover more code in beam_jumpBjörn Gustavsson
The previous optimizations caused some code in beam_jump to become uncovered. Add tests to cover more code. Also remove a clause in beam_jump:opt/3 that does not seem possible to cover anymore (this is safe, because the clause was an optimization).
2018-11-28beam_jump: Eliminate jumps to return instructionsBjörn Gustavsson
Eliminate a jump to a return sequence, replacing the jump with the return sequence. This optimization always save execution time and may also save code space.
2018-11-28beam_jump: Remove the unused #st.index fieldBjörn Gustavsson
181cfc4ef9d1 stopping used #st.index.
2018-11-28Cover some code in beam_peepBjörn Gustavsson
Some lines in beam_peep were no longer covered when the sharing optimization was added to beam_ssa_opt. Also remove some code from beam_peep that no longer seems possible to cover.
2018-11-28Share the code for semantically equivalent blocksBjörn Gustavsson
Share code for semantically equivalent blocks referred to to by `br` and `switch` instructions. A similar optimization is done in `beam_jump`, but doing it here as well is beneficial as it may enable other optimizations. Also, if there are many semantically equivalent clauses, this optimization can substanstially decrease compilation times.
2018-11-27Merge branch 'maint'Siri Hansen
2018-11-27Merge branch 'siri/cdv/div-bugfixes/OTP-15391' into maintSiri Hansen
* siri/cdv/div-bugfixes/OTP-15391: [cdv] Handle multiple "Yc" lines refering to the same refc binary [cdv] Speed up reading of dump with many processes
2018-11-27Merge branch 'siri/cdv/truncated-literals/OTP-15377' into maintSiri Hansen
* siri/cdv/truncated-literals/OTP-15377: [cdv] Fix handling of truncated literals
2018-11-27[logger] Document that macros are defined in logger.hrlSiri Hansen
2018-11-27[logger] Add read_concurrency to options for logger ets tableSiri Hansen
2018-11-26Merge branch 'maint'Rickard Green
* maint: kernel: Fix bug in net_kernel for connection attempt from self
2018-11-26Merge branch ↵Rickard Green
'sverker/kernel/net_kernel-failed-accept_pending/ERL-781/OTP-15438' into maint * sverker/kernel/net_kernel-failed-accept_pending/ERL-781/OTP-15438: kernel: Fix bug in net_kernel for connection attempt from self
2018-11-23kernel: Fix bug in net_kernel for connection attempt from selfSverker Eriksson
net_kernel crashed due to invalid return from handle_info. Could only happen if erts_internal:new_connection fails due to non-atom Node or if Node is the own node name.
2018-11-22Merge branch 'maint'Björn Gustavsson
* maint: Fix inadvertently suppressed warning for unused variable
2018-11-22Merge pull request #2026 from bjorng/bjorn/stdlib/fix-missing-warning/ERL-762Björn Gustavsson
Fix inadvertently suppressed warning for unused variable OTP-15437
2018-11-22Merge branch 'maint'Hans Nilsson
* maint: ssh: Add forgotten doc about the files ssh_host_ed*_key
2018-11-22Merge branch 'hans/ssh/eddsa/OTP-15094' into maintHans Nilsson
* hans/ssh/eddsa/OTP-15094: ssh: Add forgotten doc about the files ssh_host_ed*_key
2018-11-21ssh: Add forgotten doc about the files ssh_host_ed*_keyHans Nilsson
2018-11-21Merge branch 'maint'Björn Gustavsson
* maint: Fix internal consistency failure for is_function/2 Conflicts: lib/compiler/src/beam_utils.erl
2018-11-21Merge pull request #2023 from bjorng/bjorn/compiler/misc-improvementsBjörn Gustavsson
Enhance compiler optimizations
2018-11-21Sort move instructions on the Y registerBjörn Gustavsson
Sort sequences of `move` instructions on the Y register. When moving from X registers to Y registers, having the instructions sorted on Y registers give the loader more opportunities to use `move_window{3,4,5}` instructions. For examples, the following five instructions: move_xy x(2) y(0) move_xy x(1) y(1) move_xy x(0) y(2) move_xy x(5) y(3) move_xy x(4) y(4) can be replaced with: move_window5_xxxxxy x(2) x(1) x(0) x(5) x(4) y(0) When the Y registers are not ordered so that `move_window5` can be used, the loader would typically combine the first three moves to a `move3_xyxyxy` instruction and the last two moves to a `move2_par_xyxy` instruction. When moving from Y registers to X registers, sorting on the Y registers could potentially be more cache-friendly. It could also be worthwhile investigating a new `move_window` instruction in the BEAM interpreter that could move values from contiguous Y registers to X registers. Note that `scripts/diffable` can generate diffable dissambly files for the loaded BEAM code: $ scripts/diffable --dis 0 $ scripts/diffable --dis 1 $ diff -u 0 1
2018-11-21Merge branch 'peterdmv/ssl/first_client_hello/OTP-15373'Péter Dimitrov
* peterdmv/ssl/first_client_hello/OTP-15373: ssl: Fix property tests ssl: Improve the "start" and "negotiated" states ssl: Improve TLS 1.3 state machine ssl: Fix handling of "signature_algs" in ClientHello ssl: Fix default values of "signature_algs" ssl: Auto generate build dependencies ssl: Fix encode/decode of ClientHello (TLS 1.3) ssl: Change defaults for "supported_groups" ssl: Fix compilation warnings ssl: Implement the 'key_share' extension Change-Id: I31d5d376cee586f4824cd38703d56920d372ed2e
2018-11-21Fix inadvertently suppressed warning for unused variableBjörn Gustavsson
An external fun could inadvertently suppress warnings for unused variables, such as in this example: bug() -> BugVar = foo(), if true -> fun m:f/1 end. There would be no warning that `BugVar` was unused. The bug was introduced in ff432e262e652, which was the commit that extended external funs to allow variables. https://bugs.erlang.org/browse/ERL-762
2018-11-20Merge branch 'sverker/ets-ordered-set-fixups'Sverker Eriksson
2018-11-20stdlib: Fix bug in ets_SUITE:smp_ordered_iterationSverker Eriksson
Did fail on really slow unlucky machines.
2018-11-20Fix internal consistency failure for is_function/2Björn Gustavsson
There could be an internal consistency failure when using is_function/2, because an optimization did not take into account that is_function/2 can fail. https://bugs.erlang.org/browse/ERL-778
2018-11-20ssl: Fix property testsPéter Dimitrov
Replace hardcoded max size in 'choose' function with the length of supported groups. Change-Id: I4ac595cfee2c3cf0c9d9e1cffd0988940130a0d6
2018-11-20ssl: Improve the "start" and "negotiated" statesPéter Dimitrov
This change adds the capability to the TLS 1.3 server to process ClientHello messages and answer with ServerHello. Change-Id: I13f6cfac932574300338e7301c6162252a591c70
2018-11-20ssl: Improve TLS 1.3 state machinePéter Dimitrov
- Use internal event to transition to the first state of the TLS 1.3 state machine. - Add gen_handshake_1_3/4 and gen_info_1_3/4. Change-Id: I17f12110356c7be4a8dddf9a616df7f181b0ef37
2018-11-20ssl: Fix handling of "signature_algs" in ClientHelloPéter Dimitrov
Use signature schemes in the "signature_algs" extension when creating TLS 1.3 ClientHello extensions. Change-Id: I1402bec659c70352a4a2200146911fd4246d2fe2
2018-11-20ssl: Fix default values of "signature_algs"Péter Dimitrov
- Add function for special handling of default values of "signature_algs" in TLS 1.3. This change adds default values for "signature_algs" even for TLS 1.3 clients as they must send the "signature_algs" extension when a server authenticates itself via a certificate. - Use "signature schemes" as default instead of the old hash-signature algorithms tuple when using TLS 1.3. Change-Id: I296593b16610fd7a18a4ae3f3bac63c2fad06fbd
2018-11-20ssl: Auto generate build dependenciesPéter Dimitrov
- Order the list of input files - Auto generate build dependencies Change-Id: I0520725c98f4739fa73c8667c38ce1b00c494bc9
2018-11-19Merge branch 'maint'Hans Nilsson
* maint: public_key: Add Edward curves to the documentation public_key: Add ed25519 and ed448 sign/verify crypto: Add Edward curves to the documentation crypto: Add eddsa test case (ed25519 and ed448) crypto: Add ed25519 and ed448 sign/verify
2018-11-19Merge branch 'hans/crypto/eddsa/OTP-15419' into maintHans Nilsson
* hans/crypto/eddsa/OTP-15419: public_key: Add Edward curves to the documentation public_key: Add ed25519 and ed448 sign/verify crypto: Add Edward curves to the documentation crypto: Add eddsa test case (ed25519 and ed448) crypto: Add ed25519 and ed448 sign/verify
2018-11-19Merge branch 'maint'Hans Nilsson
* maint: ssh: Add Edward curves to the documentation ssh: Update test cases for eddsa ssh: Add public keys 'ssh-ed25519' and 'ssh-ed448'
2018-11-19Merge branch 'hans/ssh/eddsa/OTP-15094' into maintHans Nilsson
* hans/ssh/eddsa/OTP-15094: ssh: Add Edward curves to the documentation ssh: Update test cases for eddsa ssh: Add public keys 'ssh-ed25519' and 'ssh-ed448'
2018-11-19Merge branch 'maint'Hans Nilsson
* maint: ssh: Make host and user key pre-checking better ssh: Generalize unpublished test support option ssh: Cleaning and polishing of ssh_auth ssh: Add a common key_cb call function