aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2016-02-17observer: Add suppression of Dialyzer warningsHans Bolinder
2016-02-17runtime_tools: Add suppression of Dialyzer warningsHans Bolinder
2016-02-17stdlib: Add suppression of Dialyzer warningsHans Bolinder
2016-02-17test_server: Add suppression of Dialyzer warningsHans Bolinder
2016-02-17tools: Add suppression of Dialyzer warningsHans Bolinder
2016-02-16Merge branch 'maint'Ingela Anderton Andin
2016-02-16Merge branch 'ia/pr/958/OTP-13334' into maintIngela Anderton Andin
* ia/pr/958/OTP-13334: ssl: verify cert signature against original cert binary
2016-02-16kernel: Fix heart dialyzer typesBjörn-Egil Dahlberg
2016-02-16kernel: Add heart callback testBjörn-Egil Dahlberg
2016-02-16kernel: Add basic system check of schedulers on heartbeatBjörn-Egil Dahlberg
Before a heartbeat to the port program a responsiveness check of the schedulers is performed. If the responsiveness check fails, stalls, the heartbeat will not be performed (as intended).
2016-02-16kernel: Add validation callback for heartBjörn-Egil Dahlberg
* heart:set_callback/2 * heart:get_callback/0 * heart:clear_callback/0 The callback is called before every heartbeat to the heart port. The callback needs to return 'ok' if the validation is correct.
2016-02-16Change to {next_state,...} and {stop,...} return formatRaimo Niskanen
2016-02-15Merge branch 'bjorn/cuddle-with-tests'Björn Gustavsson
* bjorn/cuddle-with-tests: erl_prim_loader_SUITE: Refactor helper functions Move record compilation errors to erl_lint_SUITE compile_SUITE: Use get_files/3 in more places compile_SUITE: Replace confusing files/2 with get_files/3
2016-02-15kernel: Refactor heart codeBjörn-Egil Dahlberg
2016-02-15Merge branch 'maint'Henrik Nord
2016-02-15Merge branch 'tuncer/ei-breakage' into maintHenrik Nord
* tuncer/ei-breakage: ei: fix breakage reported by Sergei Golovan Revert "musl: fix gethostbyname_r/gethostbyaddr_ selection" OTP-13328
2016-02-15Prettify default error_logger output somewhatMagnus Henoch
The default error logger, the one in use before a more sophisticated error logger can be installed, has rather terse output, in part because it cannot rely on io:format. This patch attempts to improve the error logger within that constraint: - Print timestamps as YYYY-MM-DD HH:MM:SS - For error reports with format strings, just print the format string and the format arguments on separate lines - For error reports with tuple lists, print each pair on a separate line
2016-02-15Merge branch 'maint'Björn Gustavsson
* maint: asn1: Suppress warnings for improper lists in generated code
2016-02-12tftp: support transfer of files > 65535 blocksMichael Santos
The block count is an unsigned 2 byte integer. The common behaviour of tftp clients and servers is to overflow the block count and wrap the counter to 0 in order to support files larger than 32M. Modify the tftp implementation to do the same rollover. Interoperability was tested by transferring a 1.4G file using the HPA tftp client.
2016-02-12asn1: Suppress warnings for improper lists in generated codeBjörn Gustavsson
2016-02-12Merge branch 'maint'Dan Gudmundsson
* maint: mnesia: let loader check if tablelock is needed mnesia: Avoid deadlock possibility in mnesia:del_table_copy schema
2016-02-12Merge branch 'dgud/mnesia/del_schema_hangs/OTP-13284' into maintDan Gudmundsson
* dgud/mnesia/del_schema_hangs/OTP-13284: mnesia: let loader check if tablelock is needed mnesia: Avoid deadlock possibility in mnesia:del_table_copy schema
2016-02-11erl_prim_loader_SUITE: Refactor helper functionsBjörn Gustavsson
Eliminate duplicated code by factoring out the common code for starting erl_boot_server and a slave node. Also, in the new start_boot_server/0 helper, fix a problem with Linux systems that assign 127.0.1.1 as the IP address for the hostname. Also stop using the -setcookie option when starting a node using -loader inet. The inet loading method doesn't use the distribution anymore.
2016-02-11Merge branch 'maint'Björn-Egil Dahlberg
2016-02-10epmd: support IPv6 node registrationMichael Santos
Allow IPv6 nodes to register with and query epmd. On systems with IPv6 support: * epmd listens on both the IPv4 and IPv6 ANY or loopback sockets * the epmd cli client connects to epmd over the IPv6 loopback * distributed nodes started with "-proto_dist inet6_tcp" will register with epmd over IPv6 To work on IPv6 capable systems that have IPv6 support disabled, epmd ignores errors opening the socket if the protocol is not supported. Similarly, the epmd client will fall back to IPv4 if the IPv6 socket is not available. Update the minimum supported version of Windows to Windows Vista to support IPv6.
2016-02-10tools: Remove dead code in lcntBjörn-Egil Dahlberg
2016-02-10Merge branch 'maint'Björn Gustavsson
* maint: Eliminate crash because of unsafe delaying of sub-binary creation
2016-02-10Merge branch 'bjorn/compiler/beam_bsm/OTP-13309' into maintBjörn Gustavsson
* bjorn/compiler/beam_bsm/OTP-13309: Eliminate crash because of unsafe delaying of sub-binary creation
2016-02-10Merge branch 'maint'Siri Hansen
Conflicts: lib/stdlib/src/supervisor.erl
2016-02-10Merge branch 'nybek/speed_up_supervisor_count_children' into maintSiri Hansen
* nybek/speed_up_supervisor_count_children: Speed up supervisor:count_children/1; simple_one_for_one Add supervisor:get_callback_module/1 OTP-13290
2016-02-10Merge branch 'maint'Hans Bolinder
* maint: dialyzer: Correct byte_size() and comparisons Conflicts: lib/hipe/cerl/erl_bif_types.erl
2016-02-09Improved maps:with/2 and maps:without/2 algorithmBen Wilson
The current implementation is roughly O(N*M) where N is the number of items to be removed, and M is the number of items in the map. This does not include the cost of `maps:from_list` or `maps:to_list`. This leads to pretty horrifying execution times on large maps regardless of how many or few keys are to be removed. The new implementation is O(N) where N is the number of items to be removed. For each N there's the cost of removing a key from a map, and but in practice that turns out to be a vast improvement for all map sizes I tested The new maps:take/2 implementation similarly builds a list of keys and values by iterating only the list of desired keys, and then hands it off to maps:from_list. This turned out to be faster than N maps:put calls.
2016-02-09mnesia: let loader check if tablelock is neededDan Gudmundsson
move_table_copy needs the lock that was set previously in del_table_copy. This doesn't work on old nodes, so bump protocol version and check it. Remove old protocol conversion code, which have been around since OTP-R15. Checking if lock is needed requires rpc communication via mnesia_gvar ets table to be backwards compatible.
2016-02-09Correct grammar errors found by Magnus HenochRaimo Niskanen
2016-02-09dialyzer: Correct byte_size() and comparisonsHans Bolinder
The argument of byte_size() is a bitstring(). The code in erl_bif_types that finds cases where comparisons always return true or false is corrected when it comes to maps and bit strings.
2016-02-09Make peer handling more efficientAnders Svensson
Each service process maintains a dictionary of peers, mapping an application alias to a {pid(), #diameter_caps{}} list of connected peers. These lists are potentially large, peers were appended to the end of the list for no particular reason, and these long lists were constructed/deconstructed when filtering them for pick_peer callbacks. Many simultaneous outgoing request could then slow the VM to a crawl, with many scheduled processes mired in list manipulation. The pseudo-dicts are now replaced by plain ets tables. The reason for them was (once upon a time) to have an interface interchangeable with a plain dict for debugging purposes, but strict swapablity hasn't been the case for some time now, and in practice a swap has never taken place. Additional tables mapping Origin-Host/Realm have also been introduced, to minimize the size of the peers lists when peers are filtered on host/realm. For example, a filter like {any, [{all, [realm, host]}, realm]} is probably a very common case: preferring a Destination-Realm/Host match before falling back on Destination-Realm alone. This is now more efficiently (but not equivalently) expressed as {first, [{all, [realm, host]}, realm]} to stop the search when the best match is made, and extracts peers from host/realm tables instead of searching through the list of all peers supporting the application in question. The code to try and start with a lookup isn't exhaustive, and the 'any' filter is still as inefficient as previously.
2016-02-09Remove unnecessary erlang:monitor/2 qualificationAnders Svensson
See commit 862af31d.
2016-02-09New state machineRaimo Niskanen
2016-02-08Merge branch 'maint'Sverker Eriksson
2016-02-08Merge branch 'sverk/ecc-fixes' into maintSverker Eriksson
OTP-13311 * sverk/ecc-fixes: Ensure testing ssl with supported ciphers only Only use supported EC curves in crypto tests Check the result of EC_GROUP_new_curve_* calls
2016-02-08ssl: verify cert signature against original cert binaryMatt Campbell
When searching for a certificate's issuer in the `CertDB`, verify the signature against the original DER certificate from the handshake instead of a re-encoding of the parsed certificate. This avoids false negatives due to differences between DER encoding implementations of OTP and other platforms.
2016-02-08Merge branch 'maint'Hans Nilsson
2016-02-08ssh: fixes port_command failure on WIndows in ssh_test_cli.erlHans Nilsson
2016-02-08Merge branch 'maint'Ingela Anderton Andin
2016-02-08Merge branch 'ia/ssl/handshake-fragmentation/OTP-13306' into maintIngela Anderton Andin
* ia/ssl/handshake-fragmentation/OTP-13306: ssl: Big handshake messages needs to be fragmented on TLS record level
2016-02-08Merge branch 'maint'Hans Bolinder
* maint: dialyzer: Fix a bug concerning the option 'plt_remove'
2016-02-08dialyzer: Fix a bug concerning the option 'plt_remove'Hans Bolinder
[James Fish:] Dialyzer always asserts that files and directories passed in its options exist. Therefore it is not possible to remove a beam/module from a PLT when the beam file no longer exists. Dialyzer should not to check files exist on disk when removing from the PLT.
2016-02-08Merge branch 'maint'Hans Bolinder
* maint: tools: Correct a Cover test
2016-02-08tools: Correct a Cover testHans Bolinder
2016-02-08Merge branch 'maint'Anders Svensson