aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2016-02-15Merge branch 'maint'Björn Gustavsson
* maint: asn1: Suppress warnings for improper lists in generated code
2016-02-15Merge branch 'bjorn/asn1/suppressions/OTP-13324' into maintBjörn Gustavsson
* bjorn/asn1/suppressions/OTP-13324: asn1: Suppress warnings for improper lists in generated code
2016-02-15Unify comparison macros in erl_utils.hJosé Valim
This removes the duplication in having both `cmp_eq` and `CMP_EQ` and normalizes their name to uppercase.
2016-02-15Avoid erts_cmp jump in atom, int and float comparisonsJosé Valim
Given the function definition below: check(X) when X >= 0, X <= 20 -> true. @nox has originally noticed that perfoming lt and ge guard tests were performing slower than they should be. Further investigation revealed that most of the cost was in jumping to the erts_cmp function. This patch brings the operations already inlined in erts_cmp into the emulator, removing the jump cost. After applying these changes, invoking the check/1 function defined above 30000 times with different values from 0 to 20 has fallen from 367us to 213us (measured as average of 3 runs). This is a considerably improvement over Erlang 18 which takes 556us on average. Floats have also dropped their time from 1126us (on Erlang 18) to 613us.
2016-02-15Merge branch 'rickard/ds-fixes' into rickard/ds-fixes-masterRickard Green
* rickard/ds-fixes: Fix unique_SUITE for dirty schedulers Add dirty scheduler process termination test Ensure that work is done on the correct type of schedulers Conflicts: erts/emulator/beam/erl_process.c erts/emulator/beam/erl_process.h erts/emulator/beam/erl_process_dump.c
2016-02-15Fix unique_SUITE for dirty schedulersRickard Green
2016-02-15Add dirty scheduler process termination testSteve Vinoski
In scheduler_SUITE add a new test that runs a single dirty I/O scheduler and launches a number of dirty I/O NIF calls that each sleep for 3 seconds. Given the single scheduler, the first of these will run while the rest queue up. Then start killing these processes, and verify they call exit correctly.
2016-02-15Ensure that work is done on the correct type of schedulersRickard Green
Only the actual call to the dirty nif is allowed to execute on dirty schedulers. The dirty nif is not allowed to execute on normal schedulers if dirty schedulers are available. Arrival of exit signals and system tasks, while a process was scheduled for execution on a dirty scheduler, could mess up the process internal state. Preparation for dirty system task has been made, but is currently unused.
2016-02-12erts: Fix wobbling test failure in nif_SUITESverker Eriksson
ResA may have been GC'd after its last use.
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-11Merge branch 'egil/fix-lcnt-dead-code/OTP-13319' into maintBjörn-Egil Dahlberg
* egil/fix-lcnt-dead-code/OTP-13319: tools: Remove dead code in lcnt
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-10Merge branch 'hb/dialyzer/fix_bitstr_bug/OTP-13312' into maintHans Bolinder
* hb/dialyzer/fix_bitstr_bug/OTP-13312: dialyzer: Correct byte_size() and comparisons
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-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-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-08Merge branch 'sverk/thread-unsafe-alloc'Sverker Eriksson
* sverk/thread-unsafe-alloc: erts: Fix faulty assert for non-smp erts: Add checks for thread safe allocation
2016-02-08Merge branch 'sverk/safe-purging/OTP-13122'Sverker Eriksson
* sverk/safe-purging/OTP-13122: erts: Fix harmless dialyzer warnings
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'Sverker Eriksson
2016-02-08Merge branch 'sverk/hipe-line-table-bug/master/OTP-13282'Sverker Eriksson
* sverk/hipe-line-table-bug/master/OTP-13282: erts: Fix bug concerning line information for hipe modules
2016-02-08Merge branch 'sverk/hipe-line-table-bug/OTP-13282' into maintSverker Eriksson
* sverk/hipe-line-table-bug/OTP-13282: erts: Fix bug concerning line information for hipe modules
2016-02-08Merge branch 'sverk/proc-exiting-timer-race/OTP-13245' into maintSverker Eriksson
* sverk/proc-exiting-timer-race/OTP-13245: erts: Fix race between receive timeout and exit signal
2016-02-08Merge branch 'maint'Hans Nilsson
2016-02-08Merge branch 'hans/ssh/maint_cuddle_tests' into maintHans 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-08Merge branch 'hb/dialyzer/fix_plt_remove/OTP-13103' into maintHans Bolinder
* hb/dialyzer/fix_plt_remove/OTP-13103: 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-08Merge branch 'hb/tools/fix_bc_bug/OTP-13277' into maintHans Bolinder
* hb/tools/fix_bc_bug/OTP-13277: tools: Correct a Cover test
2016-02-08tools: Correct a Cover testHans Bolinder
2016-02-08Merge branch 'maint'Anders Svensson
2016-02-08Merge branch 'anders/diameter/appup/OTP-13283' into maintAnders Svensson
* anders/diameter/appup/OTP-13283: Add missing appup after 17.5.6.8 merge
2016-02-08Eliminate crash because of unsafe delaying of sub-binary creationBjörn Gustavsson
The following code would fail to compile: decode(<<Code/integer, Bin/binary>>) -> <<C1/integer, B1/binary>> = Bin, case C1 of X when X =:= 1 orelse X =:= 2 -> Bin2 = <<>>; _ -> Bin2 = B1 end, case Code of 1 -> decode(Bin2); _ -> Bin2 end. The error message would be: t: function decode/1+28: Internal consistency check failed - please report this bug. Instruction: return Error: {match_context,{x,0}}: The beam_bsm pass would delay the creation of a sub-binary when it was unsafe to do so. The culprit was the btb_follow_branch/3 function that for performance reasons cached labels that had already been checked. The problem was the safety of a label also depends on the contents of the registers. Therefore, the key for caching needs to be both the label and the register contents. Reported-by: José Valim
2016-02-05ssl: Big handshake messages needs to be fragmented on TLS record levelIngela Anderton Andin
2016-02-05Move record compilation errors to erl_lint_SUITEBjörn Gustavsson
The two bad record usage test cases in compile_SUITE do not belong there, as the errors are detected in erl_lint. Move the test to the erl_lint_SUITE.
2016-02-05compile_SUITE: Use get_files/3 in more placesBjörn Gustavsson