aboutsummaryrefslogtreecommitdiffstats
path: root/erts
AgeCommit message (Collapse)Author
2019-03-22Merge branch 'john/erts/fix-badarg-fixed_apply'John Högberg
* john/erts/fix-badarg-fixed_apply: erts: Include argument list on badarg in fixed_apply
2019-03-22Merge branch 'john/erts/unc-path-size-fix/OTP-15693'John Högberg
* john/erts/unc-path-size-fix/OTP-15693: erts: Fix incorrect UNC path length calculation
2019-03-22erts: Fix incorrect UNC path length calculationJohn Högberg
This didn't cause any issues for the most part since the path was still properly formed, but it broke down when appending the wildcards in file:list_dir/1. The ASSERT_PATH_FORMAT macro would have caught this in no time, but it went unnoticed because we don't run debug builds on Windows.
2019-03-21Merge 'sverker/master/enif_whereis_pid-dirty-dtor/OTP-15694'Sverker Eriksson
* sverker/master/enif_whereis_pid-dirty-dtor: erts: Add test of enif_whereis* from resource destructor erts: Simplify nif_SUITE:nif_whereis* tests erts: Schedule resource destructors always
2019-03-21Merge branch 'maint'Rickard Green
* maint: Updated OTP version Prepare release # Conflicts: # OTP_VERSION # make/otp_version_tickets_in_merge
2019-03-21erts: Remove old encoding of pids, ports and refsSverker Eriksson
Always encode with 32-bit creation value.
2019-03-21erts: Make DFLAG_BIG_CREATION mandatorySverker Eriksson
2019-03-21Prepare releaseErlang/OTP
2019-03-21Merge branch 'max-au/erts/dirty_scheduler_shutdown/PR-2172/OTP-15690' into ↵Erlang/OTP
maint-21 * max-au/erts/dirty_scheduler_shutdown/PR-2172/OTP-15690: erts: release dirty runqueue lock before entering endless loop when BEAM is shutting down # Conflicts: # erts/emulator/beam/erl_process.c
2019-03-21Merge branch 'maint'Rickard Green
* maint: Fix reception of resume signal on process executing dirty
2019-03-21Merge branch 'bjorn/hipe-compilation/OTP-15596'Björn Gustavsson
* bjorn/hipe-compilation/OTP-15596: HiPE: Don't fail the compilation for unimplemented instructions
2019-03-21Merge branch 'rickard/dist_ctrl_get_data/OTP-15617'Rickard Green
* rickard/dist_ctrl_get_data/OTP-15617: Testing of the example gen_tcp_dist module Add possibility to also get size of data from erlang:dist_ctrl_get_data()
2019-03-21erts: Include argument list on badarg in fixed_applyJohn Högberg
2019-03-21Merge pull request #2188 from bjorng/bjorn/tune-beam-3Björn Gustavsson
Tune BEAM instructions for the new compiler (part 3)
2019-03-21Merge branch 'bmk/20190320/esock/test_case_adjustements'Micael Karlberg
2019-03-21Merge branch 'bmk/20190318/temporary_fix_for_realtime_on_darwin'Micael Karlberg
2019-03-21Merge branch 'bmk/20190318/invalid_make_ref_at_sock_close'Micael Karlberg
2019-03-21Merge branch 'max-au/erts/dirty_scheduler_shutdown/PR-2172/OTP-15690'Lukas Larsson
* max-au/erts/dirty_scheduler_shutdown/PR-2172/OTP-15690: erts: release dirty runqueue lock before entering endless loop when BEAM is shutting down
2019-03-21erts: release dirty runqueue lock before entering endless loop when BEAM is ↵Maxim Fedorov
shutting down This patch fixes a problem happening when BEAM is shutting down. It is possible for a dirty scheduler to take the lock, and keep it, when the system is shutting down. It may also happen that a normal scheduler decides to schedule some dirty job (example is major garbage collection that results in migrating the process into dirty CPU queue), and hangs trying to take the lock that will never be released. To fix the problem, either release the lock before entering endless wait loop, or reverse the order in which schedulers are stopped. Either fix works, and, of course, it works even better to apply both.
2019-03-20Fix reception of resume signal on process executing dirtyRickard Green
If a suspend/resume signal pair was sent to a process while it was executing dirty the resume counter on the process got into an inconsistent state. This in turn could cause the process to enter a suspended state indefinitely.
2019-03-20HiPE: Don't fail the compilation for unimplemented instructionsBjörn Gustavsson
2019-03-20Optimize moving of several Y registers to X registersBjörn Gustavsson
Introduce move_src_window[234] instructions for moving several consecutively numbered Y registers to discontiguously numbered X registers. This optimization is effective because the compiler has sorted the `move` instructions in Y register order.
2019-03-20[socket|test] Improve test case preconditionMicael Karlberg
Added a fun for precondition check run before each test case is actually run. The primary reason for this is the api_to_connect test case, which does not work for a number of platforms. Also, moved the IPv6 check into this fun (instead of an explicit skip in the test case fun) for the IPv6 test cases.
2019-03-20Merge branch 'sverker/nif-test-cuddle'Sverker Eriksson
2019-03-19Merge branch 'sverker/enif_whereis_pid-dirty-dtor'Sverker Eriksson
into sverker/master/enif_whereis_pid-dirty-dtor
2019-03-19Add possibility to also get size of data from erlang:dist_ctrl_get_data()Rickard Green
2019-03-19erts: Add test of enif_whereis* from resource destructorSverker Eriksson
2019-03-19erts: Simplify nif_SUITE:nif_whereis* testsSverker Eriksson
and change some argc checks from badarg to assert.
2019-03-19erts: Schedule resource destructors alwaysSverker Eriksson
to run user NIF code in a more known execution context. Fixes problems like user calling enif_whereis_pid() in destructor which may need to release process main lock in order to lock reg_tab.
2019-03-19Optimize map updating instructionsBjörn Gustavsson
2019-03-19Optimize funs converted to literalsBjörn Gustavsson
2019-03-19Combine move and init to move_shiftBjörn Gustavsson
2019-03-19Remove the move_dup instructionBjörn Gustavsson
move_dup is used very infrequently.
2019-03-19Optimize some common uses of '+' and '-'Björn Gustavsson
2019-03-19Extend move_shift to accept a literal Src operandBjörn Gustavsson
2019-03-19Tune the move_jump instructionBjörn Gustavsson
With the new compiler, it has become less common with a move to x(0) before a jump. Change the move_jump instruction to take a destination as well as a source.
2019-03-19Eliminate i_length_setup with a literal list operandBjörn Gustavsson
2019-03-19Replace swap_temp with swap more aggressivelyBjörn Gustavsson
Also support swap of Y registers.
2019-03-19beam_makeops: Eliminate warningBjörn Gustavsson
2019-03-19Add another move_shift variationBjörn Gustavsson
It turns out that sequences such as the following are common: move x0 Y1 move Y2 x0
2019-03-19Combine move with trimBjörn Gustavsson
It is relatively common to move something from a Y register to an X register before trimming.
2019-03-19Refactor put_list instructions for readabilityBjörn Gustavsson
Apart from the refactoring, the instruction "put_list x c y" is replaced with "put_list x n y".
2019-03-19Combine is_tuple with is_tagged_tupleBjörn Gustavsson
2019-03-19beam_load.c: Introduce the GENOP_NAME_ARITY() macroBjörn Gustavsson
Introduce the GENOP_NAME_ARITY() macro to avoid setting the arity wrong for for an instruction.
2019-03-19beam_debug: Stop disassembling after call_nifBjörn Gustavsson
That will avoid showing garbage instructions that will never be executed.
2019-03-19beam_debug: Properly disassemble i_bs_match_string_yfWWBjörn Gustavsson
2019-03-19[socket] Another try at fixing the NULL envMicael Karlberg
During socket stop the close environment somehow has been NULLed. Check this before using when sending the close message.
2019-03-18[socket|net] Temporary fix for absence of clock_gettime(CLOCK_REALTIMEMicael Karlberg
We use clock_gettime(CLOCK_REALTIME, ...) to create a simple timestamp. This is used both for debugging and when writing error/warning messages (from the nif-code). The workaround for the absence of this function (on some platforms, old versions of darwin for example) is to simply skip the timestamp.
2019-03-18Merge branch 'bmk/20190315/net_memleak'Micael Karlberg
2019-03-18Merge branch 'bmk/20190315/use_wrong_current_when_stopping'Micael Karlberg