aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2017-05-12Merge branch 'maint'Hans Nilsson
Conflicts: OTP_VERSION lib/inets/vsn.mk lib/ssl/vsn.mk
2017-05-12Merge branch 'maint-19' into maintHans Nilsson
2017-05-12Warn for potentially unsafe use of get_stacktrace/0Björn Gustavsson
erlang:get_stacktrace/0 returns the stacktrace for the latest exception. The problem is that the stacktrace is kept until the next exception occurs. If the last exception was a 'function_clause' or a 'badarg', the arguments for the call are also kept forever. The arguments can be terms of any size (potentially huge). In a future release, we would like to only allow erlang:get_stacktrace/0 from within a 'try' expression. That would make it possible to clear the stacktrace when the 'try' expression is exited. The 'catch' expression has no natural end where the stacktrace could be cleared. The stacktrace could be cleared at the end of the function that the 'catch' occurs in, but that would cause problems in the following scenario (from real life, but simplified): try ... catch _:_ -> io:format(...), io:format("~p\n", [erlang:get_stacktrace()]) end. %% In io.erl. format(Fmt, Args) -> Res = case ... of SomePattern -> catch... ...; SomeOtherPattern -> %% Output the formatted string here ... end, clear_stacktrace(), %% Inserted by compiler. Res. The call to io:format() would always clear the stacktrace before it could be retrieved. That problem could be solved by tightning the scope in which the stacktrace is kept, but the rules for how long erlang:get_stacktrace/0 would work would become complicated. Therefore, the solution we suggest for a future major release of OTP is that erlang:get_stacktrace/0 will return [] if it is called outside the 'catch' part of a 'try' expression. To help users prepare, introduce a warning when it is likely that erlang:get_stacktrace/0 will always return an empty list, for example in this code: catch error(foo), Stk = erlang:get_stacktrace() or in this code: try Expr catch _:_ -> ok end, Stk = erlang:get_stacktrace()
2017-05-11Prepare releaseErlang/OTP
2017-05-11Merge branch 'hans/inets/ftp_recv_chunk_close/OTP-14391' into maint-19Erlang/OTP
* hans/inets/ftp_recv_chunk_close/OTP-14391: inets: add testcase to ftp_SUITE Try doing three consecutive chunked receive with some changed timing in the ending sequence inets: Try fix ftp recv_chunk timing issue
2017-05-11removed ct:pal call in ssl_connectionJoe DeVivo
2017-05-11Merge branch 'bjorn/compiler/cover'Björn Gustavsson
* bjorn/compiler/cover: compiler.cover: Remove deleted module sys_pre_expand Cover the first clause of v3_core:bin_expand_string/4 compile_SUITE: Test the r16, r17, r18, r19 options erl_bifs: Remove pure BIFs serving no useful purpose erl_bifs: Remove erlang:hash/2 from list of pure functions
2017-05-11Merge pull request #1449 from bjorng/bjorn/future-proof-exceptionsBjörn Gustavsson
Make calls to get_stacktrace/0 future-proof OTP-14400
2017-05-11snmp_generic: Future-proof exception handling codeBjörn Gustavsson
In the future, erlang:get_stacktrace/0 will probably only work inside a the 'catch' block of a 'try' expression. Future-proof the code by rewriting the old-style catch to a try...catch.
2017-05-11qlc: Future-proof exception handling codeBjörn Gustavsson
In the future, erlang:get_stacktrace/0 will probably only work inside a the 'catch' block of a 'try' expression. Future-proof the code by rewriting the old-style catch to a try...catch.
2017-05-11ct_util: Stop using get_stacktrace/0 inappropriatelyBjörn Gustavsson
The return value of erlang:get_stacktrace/0 is not defined when called like this: try Expr of Pattern -> erlang:get_stacktrace() end Currently, the stacktrace will be from a random earlier error. In a future release, it may be []. Note: We can remove the entire 'case' statement because CTHReason can never be an atom.
2017-05-11wx: Fix builds on VS-2017Dan Gudmundsson
And while we at it recommend wxWidgets-3.0.3
2017-05-11Merge pull request #1451 from bjorng/bjorn/compiler/nowarn_obsolete_guardBjörn Gustavsson
Correct description of nowarn_obsolete_guard By default, warnings for obsolete guards are turned on. Correct the description to make that clear.
2017-05-11Merge branch 'ingela/ssl/windows-cuddle'Ingela Anderton Andin
* ingela/ssl/windows-cuddle: ssl: Only run sslv2 reject tests on old OpenSSL version ssl: Try to workaround OpenSSL windows obscurities
2017-05-11Update compile.xmlBjörn Gustavsson
2017-05-10Merge branch 'maint'Rickard Green
* maint: Updated OTP version Update release notes inets: Prepare for release inets: Mend ipv6_host_with_brackets option
2017-05-10Merge branch 'maint-18' into maintRickard Green
* maint-18: Updated OTP version Update release notes inets: Prepare for release inets: Mend ipv6_host_with_brackets option
2017-05-10Merge tag 'OTP-18.2.4.1' into maint-18Rickard Green
=== OTP-18.2.4.1 === Changed Applications: - inets-6.1.1.1 Unchanged Applications: - asn1-4.0.1 - common_test-1.11.2 - compiler-6.0.2 - cosEvent-2.2 - cosEventDomain-1.2 - cosFileTransfer-1.2 - cosNotification-1.2 - cosProperty-1.2 - cosTime-1.2 - cosTransactions-1.3 - crypto-3.6.2 - debugger-4.1.1 - dialyzer-2.8.2 - diameter-1.11.1 - edoc-0.7.17 - eldap-1.2 - erl_docgen-0.4.1 - erl_interface-3.8.1 - erts-7.2.1 - et-1.5.1 - eunit-2.2.12 - gs-1.6 - hipe-3.14 - ic-4.4 - jinterface-1.6.1 - kernel-4.1.1 - megaco-3.18 - mnesia-4.13.2 - observer-2.1.1 - odbc-2.11.1 - orber-3.8 - os_mon-2.4 - ose-1.1 - otp_mibs-1.1 - parsetools-2.1.1 - percept-0.8.11 - public_key-1.1 - reltool-0.7 - runtime_tools-1.9.2 - sasl-2.6.1 - snmp-5.2.1 - ssh-4.2.1 - ssl-7.2 - stdlib-2.7 - syntax_tools-1.7 - test_server-3.9.1 - tools-2.8.2 - typer-0.9.10 - webtool-0.9 - wx-1.6 - xmerl-1.3.9 * tag 'OTP-18.2.4.1': Updated OTP version Update release notes inets: Prepare for release inets: Mend ipv6_host_with_brackets option Conflicts: OTP_VERSION lib/inets/doc/src/notes.xml lib/inets/src/inets_app/inets.appup.src lib/inets/vsn.mk otp_versions.table
2017-05-10common_test: Future-proof exception handling codeBjörn Gustavsson
In the future, erlang:get_stacktrace/0 will probably only work inside a the 'catch' block of a 'try' expression. Future-proof the code by rewriting the old-style catch to a try...catch.
2017-05-10observer: Fix alpabetic ordering when sorting on NameDan Gudmundsson
Ref: ERL-297 Now sorts 'Name or Initial Func' column in 'Processes' tab in (us-ascii) order for both names and initial functions.
2017-05-10compiler.cover: Remove deleted module sys_pre_expandBjörn Gustavsson
2017-05-10Merge branch 'sverker/ets-select-replace-const'Sverker Eriksson
* sverker/ets-select-replace-const: stdlib: Add examples for ets:select_replace docs erts: Fix ets:select_replace with {const, NewTuple}
2017-05-10stdlib: Add examples for ets:select_replace docsSverker Eriksson
2017-05-10Cover the first clause of v3_core:bin_expand_string/4Björn Gustavsson
The uncovered clause was introduced in bee8f839296e.
2017-05-10erts: Fix ets:select_replace with {const, NewTuple}Sverker Eriksson
Enable ets:select_replace to do a generic single object compare-and-swap operation of any ets-tuple using a matchspec like this: [{Old, [], [{const, New}]}] The only exception when this does not work is if the key contains maps or atoms looking like variables (like '$1').
2017-05-10compile_SUITE: Test the r16, r17, r18, r19 optionsBjörn Gustavsson
Also test other options that turns off certain optimizations or instruction sets.
2017-05-10erl_bifs: Remove pure BIFs serving no useful purposeBjörn Gustavsson
Functions that can are known be pure can be evaluated at compile-time if the arguments are literals and if the result is expressible as a literal. list_to_ref/1 and list_to_port/1 returns terms that cannot be expressed as literals, so the optimization is not possible. The argument for port_to_list/1 is never a literal, so there is no way to evaluate it at compile-time. Therefore, marking those functions as pure serves no useful purpose. Note: list_to_pid/1 *is* marked as pure, but only so that we can test the code in sys_core_fold that rejects pure functions that evaluate to at term that is not possible to express as a literal. It is sufficient to have one pure function of that kind.
2017-05-10erl_bifs: Remove erlang:hash/2 from list of pure functionsBjörn Gustavsson
erlang:hash/2 was removed in c5d9b970fb5b3a71.
2017-05-09[emacs] fixup Forgot prognDan Gudmundsson
2017-05-09ssl: Only run sslv2 reject tests on old OpenSSL versionIngela Anderton Andin
2017-05-09Merge branch 'siri/ct_netconfc/multiple-channels/OTP-14284'Siri Hansen
* siri/ct_netconfc/multiple-channels/OTP-14284: [ct_netconfc] Update documentation [ct_netconfc] Start multiple sessions per SSH connection
2017-05-09[emacs] Fix paranthesis error advice-addSiri Hansen
2017-05-09observer: Handle crash when node goes downDan Gudmundsson
Do not crash if observed node stops
2017-05-09observer: listen on correct notebook changeDan Gudmundsson
Only listen to toplevel notebook changes, otherwise if another windows have a notebook and do not handle the event this process gets it and handles it wrongly.
2017-05-09observer: chunk process list infoDan Gudmundsson
2017-05-09Merge branch 'ingela/ssl/server-hostname-verify/OTP-14197'Ingela Anderton Andin
* ingela/ssl/server-hostname-verify/OTP-14197: ssl: Add hostname check of server certificate
2017-05-09Remove duplicate aes_gcm from a list of ciphersDaniil Fedotov
2017-05-09Merge pull request #1439 from josevalim/jv-atu8-functionBjörn Gustavsson
Add a test for utf8 function names
2017-05-08ssl: Try to workaround OpenSSL windows obscuritiesIngela Anderton Andin
2017-05-08[ct_netconfc] Update documentationSiri Hansen
* Remove edoc comments in ct_netconfc.erl * Rewrite ct_netconfc.xml to use specs for functions and types * Add documentation of new functions in ct_netconfc
2017-05-08Merge pull request #1445 from kanatohodets/file_server_childspec_typo_fixBjörn Gustavsson
Fix typo in child spec for file_server
2017-05-08Merge pull request #1428 from martincox/masterIngela Andin
Error when a non-DST time is passed to the httpd_util:rfc1123_date/1 function OTP-14394
2017-05-08Add a test for utf8 function namesJosé Valim
The test found a bug in v3_kernel_pp which was not taking into account utf8 atoms. The bug has also been fixed.
2017-05-08Merge pull request #1442 from bjorng/bjorn/compiler/fix-slimBjörn Gustavsson
Make 'slim' slim again
2017-05-08[ct_netconfc] Start multiple sessions per SSH connectionSiri Hansen
The following new functions are added to ct_netconfc: * connect/1,2 - open an SSH connection to a netconf server * disconnect/1 - close the given SSH connectoin * session/1,2,3 - open an SSH channel on the give connection and send 'hello' to start a netconf session. This allows running multiple channels on on SSH connection, realizing one netconf session per channel. The existing ct_netconfc:open will always run one channel(session) per SSH connection.
2017-05-06Fix typo in child spec for file_serverBen Tyler
'modeules' -> 'modules' Introduced in 3edc6dbf8f150bb6ba7c800ed5cc379771f8b279 (present in 20.0-rc1, but not in the 19 release series).
2017-05-06ssl: Add hostname check of server certificateIngela Anderton Andin
When the server_name_indication is sent automatize the clients check of that the hostname is present in the servers certificate. Currently server_name_indication shall be on the dns_id format. If server_name_indication is disabled it is up to the user to do its own check in the verify_fun.
2017-05-05add binary string support to http_uri functionsTristan Sloughter
2017-05-05Merge pull request #1438 from josevalim/patch-10Björn Gustavsson
Remove unused variable warning in compile_SUITE
2017-05-05Make 'slim' slim againBjörn Gustavsson
The undocumented compiler option 'slim' is used when compiling the primary bootstrap. The purpose is to make the bootstrap smaller and to avoid unnecessary churn in the git repository. That is, the BEAM file should be different only if the actual code in the file is different, and not if it has merely been re-compiled on a different computer. Two commits have fattened the 'slim' option. In 36f7087ae0f, extra chunks are included even in slim BEAM files. In dfb899c0229f7, the "Dbgi" were added as an extra chunk, causing it to be included in slim files. Make 'slim' slim again by only including the essential chunks and the attribute chunk (as was the case before the {extra,...} option was added).