aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2018-06-27Fix internal compiler error for map_get/2Björn Gustavsson
Code such as that the following: Val = map_get(a, Map), Map#{a:=z} %Could be any map update would incorrectly cause an internal consistency check failure: Internal consistency check failed - please report this bug. Instruction: {put_map_exact,{f,0},{x,0},{x,0},1,{list,[{atom,a},{atom,z}]}} Error: {bad_type,{needed,map},{actual,term}}: Update beam_validator so that it understands that the second argument for map_get/2 is a map.
2018-06-27beam_type: Fix unsafe optimizationBjörn Gustavsson
beam_type assumed that the operand for the bs_context_to_binary instruction must be a binary. That is not correct; bs_context_to_binary accepts anything. Based on the incorrect assumption, beam_type would remove other test instructions. The bug was introduced in eee8655788d2, which was supposed to be just a refactoring commit. https://bugs.erlang.org/browse/ERL-655
2018-06-27Merge pull request #1717 from michalmuskala/is-function-pureBjörn Gustavsson
Fold is_function/1,2 during compilation
2018-06-27Merge pull request #1833 from michalmuskala/mm/fix-beam-jumpBjörn Gustavsson
Optimise beam_jump
2018-06-27Merge pull request #1840 from tsloughter/qs-dissectPéter Dimitrov
uri_string: support key without value in query string
2018-06-26public_key: Remove moduli 5121 and 7167Hans Nilsson
Thoose were added by 598629aeba9de98e8cdf5637043eb34e5d407751 but are not universaly supported.
2018-06-26Merge branch 'maint-21' into maintJohn Högberg
* maint-21: Updated OTP version Prepare release Fix unsafe optimization when running beam_block the second time Fix environment case sensitivity issues on Windows
2018-06-25Merge branch 'maint-20' into maintHans Nilsson
* maint-20: Updated OTP version Prepare release ssh: Report the signal name if there is an exit-signal to sftpd ssh: Bug fix sftp error codes ssh: Fix ssh_xfer decode_ATTR error for Vsn=4 syntax_tools: Fix a bug regarding reverting map types. Conflicts: OTP_VERSION lib/inets/doc/src/notes.xml lib/inets/vsn.mk lib/ssh/doc/src/notes.xml lib/ssh/vsn.mk lib/syntax_tools/doc/src/notes.xml lib/syntax_tools/vsn.mk otp_versions.table
2018-06-25[logger] Update documentationSiri Hansen
2018-06-25Prepare releaseErlang/OTP
2018-06-25Fix unsafe optimization when running beam_block the second timeBjö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-25stdlib: Add a few uses of erl_annoHans Bolinder
With DEBUG=true in erl_anno, erl_parse, and erl_pp a few (harmless) non-opaque accesses of annotations were found.
2018-06-21Prepare releaseErlang/OTP
2018-06-21Merge branch 'hans/ssh/sftp_ver4_xfer/ERIERL-199/OTP-15149' into maint-20Erlang/OTP
* hans/ssh/sftp_ver4_xfer/ERIERL-199/OTP-15149: ssh: Fix ssh_xfer decode_ATTR error for Vsn=4
2018-06-21Merge branch 'hans/ssh/sftp_error_codes/ERIERL-194/OTP-15148' into maint-20Erlang/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-21Merge 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-21ssh: Report the signal name if there is an exit-signal to sftpdHans Nilsson
2018-06-21ssh: Bug fix sftp error codesHans Nilsson
Report the signal name if the signal error message is "" Do not report a return code of 0 as an error.
2018-06-20Use bif for other ets tables countingArtur Cygan
2018-06-20Use bif for counting ets tables in observer backendArtur Cygan
2018-06-20ssl: Add set_log_level/1Péter Dimitrov
- Add utility function for setting log level of ssl application modules. Change-Id: Iee278ada17b4d872a9891094b96ce5343bf0ade4
2018-06-20ssl: Rename logger_ssl_formatter to ssl_loggerPéter Dimitrov
Change-Id: I4aff56c95d7ea8c46db40b0fa0f6f9b43f00bf8a
2018-06-20ssl: Update domain filter, use log macrosPéter Dimitrov
Change-Id: Id52990a105c81373c7c6034df9a2675f9d0e429a
2018-06-20ssl: Add logging for TLS Handshake ProtocolPéter Dimitrov
- Add logging for TLS Handshake messages. - Remove version from the input map used in format/2. Change-Id: I1a8a3dbe5854d3b25cca33e9a6634ac9a53d5867
2018-06-20ssl: Add logging for TLS record protocolPéter Dimitrov
Change-Id: I18786a9a8523d0ec3d9ca37ad5b2284721c5c4a1
2018-06-20ssl: Use logger API instead of legacy error_loggerPéter Dimitrov
Change-Id: I04cb8e4c09b05fc9d7ead0dfae0d83286decdb74
2018-06-20ssl: Add initial ssl log formatterPéter Dimitrov
Change-Id: I649a686ee72fa8bbe1e1dbc44ed5ec2df9662b10
2018-06-20ssl: Define VSN macro in sourcePéter Dimitrov
Define VSN macro in source to remove syntax errors while editing the code. Change-Id: I508d16641cb65ec954fc3fcae90183fa297770da
2018-06-20ssh: Fix ssh_xfer decode_ATTR error for Vsn=4Hans Nilsson
2018-06-20Merge 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-19ftp: Disallow 'packet_size' for low-level optionsHans Nilsson
2018-06-19erl_interface: Fix simultaneous connection setupSverker Eriksson
by also accepting status "ok_simultaneous".
2018-06-19Prepare releaseErlang/OTP
2018-06-18ftp: Socket optionsHans Nilsson
2018-06-18Merge remote-tracking branch 'origin/henrik/Update-copyright'Henrik Nord
* origin/henrik/Update-copyright: Update copyright year
2018-06-18Update copyright yearHenrik Nord
2018-06-18Merge branch 'ingela/ssl/doc-fix-21'Ingela Anderton Andin
* ingela/ssl/doc-fix-21: ssl: Document enhancements
2018-06-18ssl: Document enhancementsIngela Anderton Andin
2018-06-15support key without value in query stringTristan Sloughter
2018-06-15Merge branch 'lukas/otp_mibs/deprecate/OTP-15141'Lukas Larsson
* lukas/otp_mibs/deprecate/OTP-15141: Update primary bootstrap Deprecate otp_mibs
2018-06-15Merge 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 documentationSiri Hansen
2018-06-15[logger] Adjust priority settings in testSiri 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 terminatingSiri Hansen
2018-06-15[logger] Stress overload_kill tests in disk_log handlerSiri Hansen
2018-06-15Merge 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-15Merge 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-15Merge 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
2018-06-15Merge pull request #1838 from crownedgrouse/masterSiri Hansen
Included config files relative to sys.config directory OTP-15137
2018-06-14Included config files relative to sys.config dircrownedgrouse
Change the way included config files are searched in sys.config. Search first relative to sys.config directory, then relative to current working directory, for backward compatibility. This permit same result when using a sys.config file in a release or starting manually a node with -config. Credit to Siri Hansen for test case.