Age | Commit message (Collapse) | Author | |
---|---|---|---|
2018-06-25 | Fix unsafe optimization when running beam_block the second time | Björn Gustavsson | |
The compiler would crash when compiling code such as: serialize(#{tag := value, id := Id, domain := Domain}) -> [case Id of nil -> error(id({required, id})); _ -> <<10, 1:16/signed, Id:16/signed>> end, case Domain of nil -> error(id({required, domain})); _ -> <<8, 2:16/signed, Domain:32/signed>> end]. The crash would look like this: Function: serialize/1 t.erl: internal error in block2; crash reason: {badmatch,false} in function beam_utils:live_opt/4 (beam_utils.erl, line 861) in call from beam_utils:live_opt/1 (beam_utils.erl, line 285) in call from beam_block:function/2 (beam_block.erl, line 47) in call from beam_block:'-module/2-lc$^0/1-0-'/2 (beam_block.erl, line 33) in call from beam_block:'-module/2-lc$^0/1-0-'/2 (beam_block.erl, line 33) in call from beam_block:module/2 (beam_block.erl, line 33) in call from compile:block2/2 (compile.erl, line 1358) in call from compile:'-internal_comp/5-anonymous-1-'/3 (compile.erl, line 349) The reason for the crash is an assertion failure caused by a previous unsafe optimization. Here is the code before the unsafe optimization: . . . {bs_init2,{f,0},7,0,0,{field_flags,[]},{x,1}}. {bs_put_string,3,{string,[8,0,2]}}. {bs_put_integer,{f,0},{integer,32},1,{field_flags,[signed,big]},{y,1}}. {move,{x,1},{x,0}}. {test_heap,4,1}. . . . beam_block:move_allocate/1 moved up the test_heap/2 instruction past the move/2 instruction, adjusting the number of live registers at the same time: . . . {bs_init2,{f,0},7,0,0,{field_flags,[]},{x,1}}. %% Only x1 is live now. {bs_put_string,3,{string,[8,0,2]}}. {bs_put_integer,{f,0},{integer,32},1,{field_flags,[signed,big]},{y,1}}. {test_heap,4,2}. %Unsafe. x0 is dead. {move,{x,1},{x,0}}. . . . This optimization is unsafe because the bs_init2 instruction killed x0. The bug is in beam_utils:anno_defs/1, which adds annotations indicating the registers that are defined at the beginning of each block. The annotation before the move/2 instruction incorrectly indicated that x0 was live. https://bugs.erlang.org/browse/ERL-650 https://github.com/elixir-lang/elixir/issues/7782 | |||
2018-06-25 | stdlib: Add a few uses of erl_anno | Hans Bolinder | |
With DEBUG=true in erl_anno, erl_parse, and erl_pp a few (harmless) non-opaque accesses of annotations were found. | |||
2018-06-24 | Add missing bracket to erlang:spawn_opt/4 priority option docs | Christopher Keele | |
2018-06-21 | Updated OTP versionOTP-20.3.8.1 | Erlang/OTP | |
2018-06-21 | Prepare release | Erlang/OTP | |
2018-06-21 | Merge branch 'hans/ssh/sftp_ver4_xfer/ERIERL-199/OTP-15149' into maint-20 | Erlang/OTP | |
* hans/ssh/sftp_ver4_xfer/ERIERL-199/OTP-15149: ssh: Fix ssh_xfer decode_ATTR error for Vsn=4 | |||
2018-06-21 | Merge branch 'hans/ssh/sftp_error_codes/ERIERL-194/OTP-15148' into maint-20 | Erlang/OTP | |
* hans/ssh/sftp_error_codes/ERIERL-194/OTP-15148: ssh: Report the signal name if there is an exit-signal to sftpd ssh: Bug fix sftp error codes | |||
2018-06-21 | Merge branch 'hasse/syntax_tools/fix_map_type/OTP-15098/ERIERL-177' into ↵ | Erlang/OTP | |
maint-20 * hasse/syntax_tools/fix_map_type/OTP-15098/ERIERL-177: syntax_tools: Fix a bug regarding reverting map types. | |||
2018-06-21 | Merge branch 'hans/ftp/socket_opts/ERIERL-192/OTP-15120' into maint-20 | Erlang/OTP | |
* hans/ftp/socket_opts/ERIERL-192/OTP-15120: ftp: Disallow 'packet_size' for low-level options ftp: Socket options | |||
2018-06-21 | Update pre-push hook after OTP-21 release | Sverker Eriksson | |
(same as 7d1b8752a7a0cd66de6b3625b3b1f7afccb6147a) | |||
2018-06-21 | Fix environment case sensitivity issues on Windows | John Högberg | |
2018-06-21 | ssh: Report the signal name if there is an exit-signal to sftpd | Hans Nilsson | |
2018-06-21 | ssh: Bug fix sftp error codes | Hans Nilsson | |
Report the signal name if the signal error message is "" Do not report a return code of 0 as an error. | |||
2018-06-20 | Update system_info doc to include ets_count | Artur Cygan | |
2018-06-20 | Use bif for other ets tables counting | Artur Cygan | |
2018-06-20 | Use bif for counting ets tables in observer backend | Artur Cygan | |
2018-06-20 | travis: Enable docs deploy for all branches | Lukas Larsson | |
2018-06-20 | travis: Enable delivery of docs | Lukas Larsson | |
2018-06-20 | ssh: Fix ssh_xfer decode_ATTR error for Vsn=4 | Hans Nilsson | |
2018-06-20 | Merge branch 'hans/ftp/socket_opts/ERIERL-192/OTP-15120' into ↵ | Hans Nilsson | |
hans/ftp/21socket_opts/ERIERL-192/OTP-15120 Conflicts: lib/ftp/src/ftp.erl | |||
2018-06-20 | Merge branch 'lukas/erts/etp-aux-work-fixes' into maint | Lukas Larsson | |
* lukas/erts/etp-aux-work-fixes: erts: Update etp-commands with correct aux_flags | |||
2018-06-19 | ftp: Disallow 'packet_size' for low-level options | Hans Nilsson | |
2018-06-19 | erl_interface: Fix simultaneous connection setup | Sverker Eriksson | |
by also accepting status "ok_simultaneous". | |||
2018-06-19 | travis: Update deploy security token | Lukas Larsson | |
2018-06-19 | Updated OTP versionOTP-21.0 | Erlang/OTP | |
2018-06-19 | Prepare release | Erlang/OTP | |
2018-06-18 | ftp: Socket options | Hans Nilsson | |
2018-06-18 | travis: Don't run docs deploy script | Lukas Larsson | |
Need to create a seperate repo first for this to push to. | |||
2018-06-18 | Merge branch 'lukas/travis/deploy' | Lukas Larsson | |
* lukas/travis/deploy: Add deploy stage to travis-ci | |||
2018-06-18 | erts: Update etp-commands with correct aux_flags | Lukas Larsson | |
2018-06-18 | Add deploy stage to travis-ci | Lukas Larsson | |
2018-06-18 | Merge remote-tracking branch 'origin/henrik/Update-copyright' | Henrik Nord | |
* origin/henrik/Update-copyright: Update copyright year | |||
2018-06-18 | Update copyright year | Henrik Nord | |
2018-06-18 | Merge branch 'ingela/ssl/doc-fix-21' | Ingela Anderton Andin | |
* ingela/ssl/doc-fix-21: ssl: Document enhancements | |||
2018-06-18 | ssl: Document enhancements | Ingela Anderton Andin | |
2018-06-18 | Merge branch 'lukas/erts/fix_vxworks_configure' | Lukas Larsson | |
* lukas/erts/fix_vxworks_configure: erts: Fix vxworks configure broken by corba removal | |||
2018-06-18 | erts: Fix vxworks configure broken by corba removal | Lukas Larsson | |
2018-06-18 | Update preloaded modules | Henrik Nord | |
2018-06-18 | Update primary bootstrap | Henrik Nord | |
2018-06-15 | Merge branch 'sverker/macos-select-fd-bug' | Sverker Eriksson | |
* sverker/macos-select-fd-bug: erts: Fix MacOS pollset bug | |||
2018-06-15 | Merge branch 'lukas/otp_mibs/deprecate/OTP-15141' | Lukas Larsson | |
* lukas/otp_mibs/deprecate/OTP-15141: Update primary bootstrap Deprecate otp_mibs | |||
2018-06-15 | Merge branch 'siri/logger-fix' | Siri Hansen | |
* siri/logger-fix: [logger] Update documentation [logger] Adjust priority settings in test [logger] Unregister handler names before terminating [logger] Stress overload_kill tests in disk_log handler | |||
2018-06-15 | [logger] Update documentation | Siri Hansen | |
2018-06-15 | [logger] Adjust priority settings in test | Siri Hansen | |
Now only setting high priority on every second burst sending process, to allow for handler process to be scheduled in every now and then. | |||
2018-06-15 | [logger] Unregister handler names before terminating | Siri Hansen | |
2018-06-15 | [logger] Stress overload_kill tests in disk_log handler | Siri Hansen | |
2018-06-15 | Merge branch 'peppe/common_test/no_export_all_warning/OTP-14810' | Peter Andersson | |
* peppe/common_test/no_export_all_warning/OTP-14810: No export_all warning when compiling test suites OTP-14810 | |||
2018-06-15 | Merge branch 'peppe/kernel/logger_updates' | Peter Andersson | |
* peppe/kernel/logger_updates: [logger] Correct documentation [logger] Update handler documentation [logger] Fix test suite compilation warnings [logger] Fix failing tests [logger] Change overload_kill_restart_after value to infinity [logger] Change name of function sync/1 to filesync/1 [logger] Reset logger config after tests [logger] Don't delete log file of failing test cases [logger] Set up priority for processes generatig test bursts [logger] Stress overload_kill tests a bit more [logger] Remove some compiler warnings in test suites [logger] Sort keys when testing formatter template [logger] Skip test involving file access rights on windows [logger] Skip some overload protection tests when using dirty schedulers | |||
2018-06-15 | Merge pull request #1839 from rickard-green/rickard/misc-doc | Rickard Green | |
Info about support, compatibility, deprecation and removal OTP-15140 | |||
2018-06-15 | Merge branch 'hans/crypto/EVP_DH_key/OTP-14864' | Hans Nilsson | |
* hans/crypto/EVP_DH_key/OTP-14864: crypto: Remove EVP_PKEY from dh_compute_key_nif crypto: Try fix valgrind errors |