aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
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'Rickard Green
* maint: Fix testcase
2016-02-02Merge branch 'rickard/rq-len/OTP-13201' into maintRickard Green
* rickard/rq-len/OTP-13201: Fix testcase
2016-02-02Update preloaded modulesLukas Larsson
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: Make msacc alloctor type thread safeSverker Eriksson
LONG_LIVED is not thread safe on non-smp and can only be used by scheduler.
2016-02-02Silence compilerBjörn-Egil Dahlberg
2016-02-02erts: Fix msacc testcase on some windowsesLukas Larsson
2016-02-02erts: Add power saving cpu feature tests and use themLukas Larsson
2016-02-02erts: Refactor perf counter internal interfaceLukas Larsson
perf counter is now part of the function pointer interface and also the function returns the value instead of writing to a memory buffer.
2016-02-02erts: Add rdtscp instruction checkLukas Larsson
2016-02-02erts: Fix hrtime for windowsLukas Larsson
2016-02-02erts: use correct function for perf counter on non-x86Lukas Larsson
2016-02-02erts: Fix msacc win32 debug compile errorLukas Larsson
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-02erts: Add ERTS_WRITE_UNLIKELYLukas Larsson
ERTS_WRITE_UNLIKELY can be used to place global variables in a specific section where only data that is very rarely modified sits. This is used to improve cache locality.
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: Fix inet driver multi timers using new time API
2016-02-02Merge branch 'rickard/tcp-accept-tmo-bug/OTP-13254' into maintRickard Green
* rickard/tcp-accept-tmo-bug/OTP-13254: Fix inet driver multi timers using new time API
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-01Merge branch 'hb/dialyzer/restrict_module_type/OTP-13244'Hans Bolinder
* hb/dialyzer/restrict_module_type/OTP-13244: dialyzer: Remove t_parameterized_module/0 from erl_types
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-29Updated OTP versionOTP-18.2.3Erlang/OTP
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-29Remove faulty assertsRickard Green
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-28Merge branch 'master' into sverk/hipe-line-table-bug/master/OTP-13282Sverker Eriksson
2016-01-28inets: Prepare for releaseIngela Anderton Andin
2016-01-28erts: Fix bug concerning line information for hipe modulesSverker Eriksson
Line table was left uninitialized for hipe (stub) modules causing process_info(OtherPid, current_location) to crash.
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.