aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2016-02-05Update primary bootstrapBjörn Gustavsson
2016-02-05Merge branch 'bjorn/compiler/v3_core'Björn Gustavsson
* bjorn/compiler/v3_core: v3_core: Eliminate double processing of patterns
2016-02-05Merge branch 'maint'Ingela Anderton Andin
2016-02-05Merge branch 'ia/ssl/validator' into maintIngela Anderton Andin
* ia/ssl/validator: ssl: Only start a new session validator if the old one has finished its work
2016-02-04Merge branch 'maint'Zandra
2016-02-04Merge branch 'tnt-dev/fix-function-index-sort' into maintZandra
* tnt-dev/fix-function-index-sort: Don't sort function index when it's not necessary OTP-13302
2016-02-04Merge branch 'maint'Zandra
2016-02-04Merge branch 'binarin/epmd-race' into maintZandra
* binarin/epmd-race: Prevent down nodes going undetected in epmd OTP-13301
2016-02-04Merge branch 'maint'Zandra
2016-02-04Merge branch 'legoscia/tls-dist-listen-ip' into maintZandra
* legoscia/tls-dist-listen-ip: TLS distribution: bind erts socket to localhost OTP-13300
2016-02-04Merge branch 'maint'Zandra
2016-02-04Merge branch 'legoscia/patch-3' into maintZandra
* legoscia/patch-3: Fix documentation of net_kernel:allow/1 OTP-13299
2016-02-03Merge branch 'kvakvs/erts/list_to_integer/OTP-13293'Lukas Larsson
* kvakvs/erts/list_to_integer/OTP-13293: Better list_to_integer Moved do_list_to_integer from bif.c to big.c
2016-02-03Merge branch 'maint'Lukas Larsson
* maint: erts: When erts_alloc fails, the emulator no longer aborts
2016-02-03Merge branch 'lukas/erts/enomem_no_abort/OTP-13292' into maintLukas Larsson
* lukas/erts/enomem_no_abort/OTP-13292: erts: When erts_alloc fails, the emulator no longer aborts
2016-02-03Merge branch 'maint'Siri Hansen
2016-02-03Merge branch 'rj/release-handler-noproc-fix' into maintSiri Hansen
* rj/release-handler-noproc-fix: Fix noproc crash during release installation OTP-13291
2016-02-03v3_core: Eliminate double processing of patternsBjörn Gustavsson
Internally in the v3_core pass, an #imatch{} record represents a match expression: Pattern = Expression If Pattern is a single, unbound variable, #imatch{} will be rewritten to #iset{}; otherwise it will be rewritten to #icase{}. To determine how #imatch{} should be translated, the pattern is processed using upattern/3. The return value from upattern/3 is thrown away (after having been used for determing how the #imatch{} record should be translated). That means that every pattern in an #imatch{} is processed twice, which is wasteful. We can easily avoid the double processing of patterns by introducing a new helper function that determines whether the pattern is a new variable.
2016-02-03Merge branch 'maint'Hans Bolinder
* maint: tools: Add a Cover test tools: Fix wrong instrumentation of binary comprehensions
2016-02-03Merge branch 'hb/tools/fix_bc_bug/OTP-13277' into maintHans Bolinder
* hb/tools/fix_bc_bug/OTP-13277: tools: Add a Cover test tools: Fix wrong instrumentation of binary comprehensions
2016-02-03tools: Add a Cover testHans Bolinder
2016-02-03tools: Fix wrong instrumentation of binary comprehensionsLuis Rascao
When cover instruments binary comprehensions it's generating a {block, ...} abstract code term inside a {bc, ...} term that is causing the evaluation to fail at runtime. Removing the block statement eliminates the error. The template of a bit string comprehension cannot have a counter since it is not allowed to be a block.
2016-02-02Merge branch 'lukas/erts/msacc'Lukas Larsson
* lukas/erts/msacc: Update preloaded modules erts: Make msacc alloctor type thread safe Silence compiler erts: Fix msacc testcase on some windowses erts: Add power saving cpu feature tests and use them erts: Refactor perf counter internal interface erts: Add rdtscp instruction check erts: Fix hrtime for windows erts: use correct function for perf counter on non-x86 erts: Fix msacc win32 debug compile error erts: Add microstate accounting erts, kernel: Add os:perf_counter function erts: Add ERTS_WRITE_UNLIKELY
2016-02-02Merge branch 'maint'Rickard Green
* maint: Use nano second time unit in tracing
2016-02-02Merge branch 'rickard/monotonic-time-improvements/OTP-13222' into maintRickard Green
* rickard/monotonic-time-improvements/OTP-13222: Use nano second time unit in tracing
2016-02-02Use nano second time unit in tracingRickard Green
2016-02-02Merge branch 'maint'Zandra
Conflicts: erts/emulator/beam/beam_emu.c
2016-02-02Better list_to_integerDmytro Lytovchenko
Now tries to use whole width of signed long (Sint) and this halves amount of multiplications needed to parse long integers. New code is 2-3 times faster than the old code for large inputs (tens and hundreds of digits), behavior should not change for small inputs. Test ran 10k times with GC forced between attempts. Was (R17): 720 el base 10: 0.14682 sec; base 16: 0.192722 sec; base 36: 0.337118 sec. 2800 el base 10: 1.794133 sec; base 16: 2.735106 sec; base 36: 4.761108 sec. 6500 el base 10: 9.316434 sec; base 16: 14.109469 sec; base 36: 25.319263 sec. Now (R19 Dev) 720 el base 10: 0.10265 sec; base 16: 0.10851 sec; base 36: 0.160478 sec. 2800 el base 10: 1.002793 sec; base 16: 1.360649 sec; base 36: 2.174309 sec. 6500 el base 10: 4.722197 sec; base 16: 6.60522 sec; base 36: 10.552795 sec. Added test for corner cases and sign bit corruption. Replaced macros with inline and hid it inside C file to not pollute global namespace Old bug in #define LG2_LOOKUP: Replaced with inline function and table recalculated for all bases 2 to 36 (was 2 to 64)
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'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