aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2016-01-29Merge branch 'maint'Zandra
Conflicts: OTP_VERSION
2016-01-29Merge branch 'maint-18' into maintZandra
2016-01-29Fix noproc crash during release installationRichard Jones
When release_handler_1:get_supervised_procs/0 does a recursive walk of the supervision tree, it calls sys:get_status/1 on supervisors, to check if they are suspended or running. This fixes a race condition where a list of supervisor pids is gathered, one of them (legitimately) exits before release_handler can examine it, then sys:get_status/1 is called with a dead pid, causing an exit(noproc) See: http://erlang.org/pipermail/erlang-questions/2015-August/085712.html (To recreate this problem for testing, I added a timer:sleep into the release_handler_1 code, and killed a supervisor during get_supervised_procs being called).
2016-01-29Update release notesErlang/OTP
2016-01-29Merge branch 'ia/maint/inets/mod_alias/OTP-13248' into maint-18Erlang/OTP
* ia/maint/inets/mod_alias/OTP-13248: inets: Prepare for release inets: Traverse all aliases looking for the longest match inets: Use re instead of inets_regexp # Conflicts: # lib/inets/vsn.mk
2016-01-29Add missing appup after 17.5.6.8 mergeAnders Svensson
In commit b8c6a119.
2016-01-29Eliminate redundant double is_function testBjörn Gustavsson
When tuple funs were still supported, the idiom for allowing real funs with a certain arity but not tuple funs was: is_function(Fun) andalso is_function(Fun, Arity) The reason that both tests were needed is because: is_function({M,F}) would return 'false' is_function({M,F}, Arity) would return 'true' In 53ec991d19, is_function/2 was updated to only return 'false' for tuples, so the call to is_function/1 can be removed.
2016-01-29Merge branch 'aronisstav/compiler/extend-cerl_trees_mapfold/OTP-13280'Björn Gustavsson
* aronisstav/compiler/extend-cerl_trees_mapfold/OTP-13280: Extend cerl_trees:mapfold with a 'pre-order' operation
2016-01-29Merge branch 'maint'Björn Gustavsson
* maint: Use file read buffering in dbg:trace_client Do not consider "." part of names in edlin
2016-01-29Merge branch 'gomoripeti/dbg/read_ahead/OTP-13279' into maintBjörn Gustavsson
* gomoripeti/dbg/read_ahead/OTP-13279: Use file read buffering in dbg:trace_client
2016-01-29Merge branch 'josevalim/stdlib/edlin/OTP-13281' into maintBjörn Gustavsson
* josevalim/stdlib/edlin/OTP-13281: Do not consider "." part of names in edlin
2016-01-29Check for already started beam_lib crypto serverLuis Rascao
When starting the beam_lib crypto server, don't crash when it is already running. Some other process might have already called it.
2016-01-28Ensure testing ssl with supported ciphers onlyDániel Szoboszlay
There are two problematic areas: EC curve selection and interoperability tests with OpenSSL. The tests shouldn't assume any particular EC curve is available, but should always check the list of curves reported by tls_v1:ecc_curves/1. And during interoperability tests the tests shouldn't assume that any cipher suite supported by Erlang is also supported by OpenSSL. There are OpenSSL packages where the command line openssl tool only supports a subset of the ciphers available in libcrypto. The actual list of supported cipher suites thus shall be queried from OpenSSL.
2016-01-28Only use supported EC curves in crypto testsDániel Szoboszlay
Avoid hardcoding EC curve names in tests where it basically doesn't matter which curve is used. Take one of the supported curbes instead. Also, when testing ECDH key generation, skip unsupported curves. These changes are to simplify dealing with exotic libcrypto builds that don't support certain curves (for example RHEL disallows < 256 bit curves). The crypto application is only able to detect the supported curves on a very coarse level (ECC support in general and GF2m curves), so it may be necessary to edit the list of curves in the crypto_ec_curves modules. But that should be the only necessary modification to make the crypto tests pass.
2016-01-28inets: Prepare for releaseIngela Anderton Andin
2016-01-28inets: Traverse all aliases looking for the longest matchIngela Anderton Andin
Before the first matching alias was returned, but we want the longest one to be returned.
2016-01-28inets: Use re instead of inets_regexpIngela Anderton Andin
2016-01-28Extend cerl_trees:mapfold with a 'pre-order' operationStavros Aronis
When manipulating Core Erlang trees it may be useful to perform some operation when a node is visited, before inspecting children nodes. The definition of cerl_tree:mapfold/3 does not allow that, as it applies the given function only after all the recursive calls on the children nodes have been completed. This patch adds a new argument to mapfold: a function that is applied when a node is first entered. As an example of its use, consider the case where one wants to move a 'call' node earlier, by adding 'let' node and replacing the 'call' node with the defined variable. The name of that variable must be specified before one traverses the inner tree (especially if such replacements can be nested).
2016-01-28Use file read buffering in dbg:trace_clientPéter Gömöri
Trace files are typically large but contain small terms so we can expect a performance gain from read buffering. dbg:trace_client with a dummy handler ran more then 3x faster on a sample 200MB trace file. fprof:profile can also gain a bit.
2016-01-28Merge branch 'bjorn/kernel/clean-up-code_server'Björn Gustavsson
* bjorn/kernel/clean-up-code_server: code_server: Add specs for all exported functions code_server: Add types to the state record code_server: Don't export internal system_* functions Simplify starting of code server Remove first argument of code_server:call()
2016-01-28code_server: Add specs for all exported functionsBjörn Gustavsson
2016-01-28Merge branch 'maint'Björn Gustavsson
* maint: Update documentation for code-loading functions code: Correct the types for error returns Eliminate run-time system crash in code:load_abs/1
2016-01-28Merge branch 'bjorn/kernel/code/OTP-9375' into maintBjörn Gustavsson
* bjorn/kernel/code/OTP-9375: Update documentation for code-loading functions code: Correct the types for error returns Eliminate run-time system crash in code:load_abs/1
2016-01-28Update documentation for code-loading functionsBjörn Gustavsson
Some of the error reasons were not explained.
2016-01-28code: Correct the types for error returnsBjörn Gustavsson
The specifications for functions that load code in the 'code' module (e.g. code:load_file/1) have some problems: * The specs claim that the functions can return {error,on_load}, but they never do. However, they can return {error,on_load_failure} if the -on_load function in a module fails. * The specs claim that the functions can return {error,native_code}, but they never do. While we are it, also extend the on_load_errors/1 test case to test that the load functions return {error,on_load_failure} when an -on_load function fails.
2016-01-27code_server: Add types to the state recordBjörn Gustavsson
2016-01-27code_server: Don't export internal system_* functionsBjörn Gustavsson
There is no reason to export system_continue/3 and system_terminate/4 from code_server. Servers that use proc_lib and 'sys' to handle system message do need those functions exported, but code_server contains a modified copy of the system message handling code from 'sys', and that code only make local calls to system_continue/3 and system_terminate/4.
2016-01-27Simplify starting of code serverBjörn Gustavsson
There is unnecessary knowledge about the -nostick option in the 'kernel' module. -nostick can be handled entirely in the 'code' module. There is no need to have both code:start_link/0 and code:start_link/1. code:start_link/0 is sufficient. Also get rid of error handling for things that cannot happen: The 'init' module has made sure that init:get_argument(root) can't fail, so there is no need for any error-reporting code. (See e1dc0aa4.) We also don't need to test the return value from code_server:start_link/1, because it will always return {ok,Pid} (or crash).
2016-01-27Merge branch 'maint'Anders Svensson
2016-01-27Merge branch 'maint-17' into maintAnders Svensson
2016-01-27Remove first argument of code_server:call()Björn Gustavsson
Remove the first argument for code_server:call(). It makes no sense. The only caller is 'code'. Note that the code_server module is undocumented and that code_server:call() is an internal helper function.
2016-01-27Merge branch 'maint'Zandra
2016-01-27Merge branch 'kostis/hipe-tests-basic' into maintZandra
OTP-13269 * kostis/hipe-tests-basic: Fix compilation of matching with UTF binaries Cleanup and add one more test case Two tests that depend on inlining being turned on More tests for BIFs Include some more old HiPE tests to the test suite Add tests for the is_boolean/1 guard Two more tests added Test that apply/3 is tail recursive Three more tests added Minor cleanup Comment out tests that are not ready for to_llvm Cleanups & uncomment some code More tests for handling of UTF in bitstrings Minor code cleanup Add more generated test suites in Makefile Use function from hipe module instead of a local one Add function to prevent running tests in the LLVM backend More basic tests First part of the basic test suite for the HiPE compiler
2016-01-27Merge branch 'maint'Siri Hansen
Conflicts: lib/stdlib/src/otp_internal.erl
2016-01-27Merge branch 'siri/deprecate-overload/OTP-13057' into maintSiri Hansen
* siri/deprecate-overload/OTP-13057: Deprecate module 'overload' in SASL
2016-01-27Merge branch 'maint'Zandra
2016-01-27Merge branch 'legoscia/tls_dist_wait_for_code_server' into maintZandra
* legoscia/tls_dist_wait_for_code_server: TLS distribution: wait for code server OTP-13268
2016-01-27Check the result of EC_GROUP_new_curve_* callsDániel Szoboszlay
The FIPS-enabled OpenSSL on RHEL disallows the use of < 256 bit prime fields (like secp128r1 or secp160k1), and the EC_GROUP_new_cuve_GFp call would return a NULL pointer for such fields. Not checking for this failure could result in a segfault in the NIF code.
2016-01-27Clarify usage of coordinator by analysis_callgraphLuca Favatella
* Comment in dialyzer_analysis_callgraph what the call to dialyzer_coordinator does; * Delegate activation request to each dialyzer_worker; * There is no reason for the dialyzer_coordinator to request activation on behalf of the workers: let each worker request its own activation as it leads to more consistent dialyzer_worker module (activation is request as soon as status running is hit - reguardless of mode) and it reduces lines of code. * Clarify types in coordinator and worker e.g. make opaque and make type more strict.
2016-01-27Reflect more init-loop OTP pattern in dialyzer_workerLuca Favatella
Also clarify in which modes the states `updating` and `waiting` can happen in the loop.
2016-01-27Delete dead sequential code in dialyzer_workerLuca Favatella
2016-01-26ssl: Only start a new session validator if the old one has finished its workIngela Anderton Andin
If the session table is big the validator may not have finshed before the validation interval is up, in this case we should not start a new validator adding to the cpu load.
2016-01-26Merge branch 'maint'Hans Bolinder
* maint: [edoc] Correct documentation
2016-01-26[edoc] Correct documentationHans Bolinder
Fix mistakes found by 'xmllint'.
2016-01-26Update release notesErlang/OTP
2016-01-26Merge branch 'anders/diameter/17.5.6.8/OTP-13212' into maint-17Erlang/OTP
* anders/diameter/17.5.6.8/OTP-13212: vsn -> 1.9.2.3 Update appup for 17.5.6.8
2016-01-26Merge branch 'maint'Lukas Larsson
* maint: erl_docgen: Fix spec anno's for maps
2016-01-26erl_docgen: Fix spec anno's for mapsLukas Larsson
OTP-12955
2016-01-26Merge branch 'maint'Ingela Anderton Andin
2016-01-26Merge branch 'ia/pr/778' into maintIngela Anderton Andin
* ia/pr/778: snmp: Prepare for release Snmp agent vacmViewTreeFamily with non 'null' mask bugfix