aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2016-02-02Use nano second time unit in tracingRickard Green
2016-02-02Add inet6_tls_dist, for TLS distribution over IPv6Magnus Henoch
Generalise much of inet_tls_dist, so that inet6_tls_dist can reuse it.
2016-02-02Merge branch 'maint'Zandra
Conflicts: erts/emulator/beam/beam_emu.c
2016-02-02Merge branch 'margnus1/bs_unit_fix' into maintZandra
* margnus1/bs_unit_fix: hipe: Fix signed compares of unsigned sizes beam: Fix overflow bug in i_bs_add_jId hipe: Add tests for bad bit syntax float sizes Add a case testing the handling of guards involving binaries Add some more binary syntax construction tests hipe: Guard against enormous numbers in ranges hipe: Fix constructing huge binaries hipe: Fix binary constructions failing with badarith Add missing corner-case to bs_construct_SUITE hipe: Allow unsigned args in hipe_rtl_arith hipe: test unit size match in bs_put_binary_all hipe: test unit size match in bs_append Fix hipe_rtl_binary_construct:floorlog2/1 OTP-13272
2016-02-02Merge branch 'maint'Zandra
Conflicts: lib/dialyzer/src/dialyzer_analysis_callgraph.erl
2016-02-02Merge branch 'aronisstav/dialyzer-missing-callback-info' into maintZandra
* aronisstav/dialyzer-missing-callback-info: Fix inadvertent deletion of callback info Eliminate ugly case statements Remove dead code related to missing behaviour info OTP-13287
2016-02-02Merge branch 'maint'Zandra
2016-02-02Merge branch 'palas/maint' into maintZandra
* palas/maint: inets: Add PATCH method to client and server OTP-13286
2016-02-02erts: Add microstate accountingLukas Larsson
Microstate accounting is a way to track which state the different threads within ERTS are in. The main usage area is to pin point performance bottlenecks by checking which states the threads are in and then from there figuring out why and where to optimize. Since checking whether microstate accounting is on or off is relatively expensive if done in a short loop only a few of the states are enabled by default and more states can be enabled through configure. I've done some benchmarking and the overhead with it turned off is not noticible and with it on it is a fraction of a percent. If you enable the extra states, depending on the benchmark, the ovehead when turned off is about 1% and when turned on somewhere inbetween 5-15%. OTP-12345
2016-02-02erts, kernel: Add os:perf_counter functionLukas Larsson
The perf_counter is a very very cheap and high resolution timer that can be used to timestamp system events. It does not have monoticity guarantees, but should on most OS's expose a monotonous time. A special instruction has been created for this counter to further speed up fetching it. OTP-12908
2016-02-02Merge branch 'maint'Zandra
2016-02-02Merge branch 'legoscia/tls-dist-connect-options' into maintZandra
* legoscia/tls-dist-connect-options: ssl_dist_SUITE: don't use deprecated functions TLS distribution: support inet_dist_connect_options OTP-13285
2016-02-02Merge branch 'maint'Rickard Green
* maint: Introduce time management in native APIs Introduce time warp safe replacement for safe_fixed option Introduce time warp safe trace timestamp formats Conflicts: erts/emulator/beam/erl_bif_trace.c erts/emulator/beam/erl_driver.h erts/emulator/beam/erl_nif.h erts/emulator/beam/erl_trace.c erts/preloaded/ebin/erlang.beam
2016-02-02Merge branch 'rickard/monotonic-time-improvements/OTP-13222' into maintRickard Green
* rickard/monotonic-time-improvements/OTP-13222: Introduce time management in native APIs Introduce time warp safe replacement for safe_fixed option Introduce time warp safe trace timestamp formats
2016-02-01Merge branch 'bjorn/stdlib/remove-tuple-fun-vestiges'Björn Gustavsson
* bjorn/stdlib/remove-tuple-fun-vestiges: Eliminate redundant double is_function test
2016-02-01Merge branch 'maint'Björn Gustavsson
* maint: Check for already started beam_lib crypto server
2016-02-01Merge branch 'lrascao/stdlib/beam_lib-race-condition/OTP-13278' into maintBjörn Gustavsson
* lrascao/stdlib/beam_lib-race-condition/OTP-13278: Check for already started beam_lib crypto server
2016-02-01dialyzer: Remove t_parameterized_module/0 from erl_typesStavros Aronis
Parameterized modules are no longer supported, so module() can only be an atom().
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-28Allow to refresh resolver settings on startupMichal Ptaszek
After the VM time changes inet_db:times/0 instead of returning number of seconds since 1970, returns number of seconds since the VM start. As a result, if inet_res:lookup is called right after the system start, the condition for re-reading /etc/resolv.conf will not be met (time difference between last access: 0, and the value returned from inet_db:times/0 -> [0-5) is lower than 5 seconds) and no nameservers will be used. This patch allows /etc/resolv.conf to be read immediately after the system is started.
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-27Refactor ssl_crl_SUITE: extract crl_verify_error/6Magnus Henoch
Just like crl_verify_valid/5 checks for a positive result given certain options, crl_verify_error/6 checks for a negative result.
2016-01-27Merge branch 'maint'Anders Svensson
2016-01-27Merge branch 'maint-17' into maintAnders Svensson