aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/src
AgeCommit message (Collapse)Author
2017-08-22Merge branch 'dgud/wx/del-depr/OTP-14539' into maintDan Gudmundsson
* dgud/wx/del-depr/OTP-14539: Remove deprecation of non deprecated functions Update so that doxygen 1.8.11 can generate code
2017-08-17Merge branch 'dgud/stdlib/edit-unicode' into maintDan Gudmundsson
* dgud/stdlib/edit-unicode: stdlib: Improve edlin handling of unicode chars OTP-14542
2017-08-16Remove deprecation of non deprecated functionsDan Gudmundsson
Functions where missing and where without alternatives, and the functions are available in wxWidgets-3.0.*. So either I missed it or they where removed for a while in wxWidgets-2.9 branch, but that should not be used anywhere as it was only a development branch.
2017-08-16stdlib: Improve edlin handling of unicode charsDan Gudmundsson
Let edlin handle grapheme clusters instead of codepoints to improve the handling multi-codepoints characters. The ttsl driver (and protocol) still expects all lengths as codepoints. Previously it was expected that each codepoint used (at least) one terminal column for each codepoint, and a hack was made for wide characters (multicolumn) by patching in TAGGED characters to occupy the extra space so that codepoint index was equal column index. This didn't work at all for combining codepoints that do not occupy any more space than the previous character. Improved this handling by calculating column positions in move_cursor. This is based on wcwidth() and is not perfect, wcwidth() is wrong for some codepoints and wcwidth() can not know with Hangul graphemes for example. But it works better than before without making a major change in the protocol.
2017-08-08gen_fsm-depre-20: fix some more redirections to unexisting functionsPierre Fenoll
2017-08-08gen_fsm-depre-20: fix gen_fsm deprecation recommendations after 20.0Pierre Fenoll
2017-07-24Fix array spec typoВеселов Андрей
2017-07-21Merge branch 'raimo/stdlib/stop-deprecated-warn-crypto-rand_bytes-1/ERL-459' ↵Raimo Niskanen
into maint * raimo/stdlib/stop-deprecated-warn-crypto-rand_bytes-1/ERL-459: Change crypto:rand_bytes/1 deprecated -> removed
2017-07-20Change crypto:rand_bytes/1 deprecated -> removedRaimo Niskanen
2017-07-04Merge branch 'hasse/stdlib/deprecated_warning/OTP-14378' into maintHans Bolinder
* hasse/stdlib/deprecated_warning/OTP-14378: stdlib: Accept all nowarn_deprecated_function options
2017-07-04Merge branch 'maint-20' into maintJohn Högberg
* maint-20: Updated OTP version Update release notes Update version numbers erts: Fix bug in quick alloc Fix old length usage in string stdlib: Fix bug in proc_lib Support arbitrary crash report in proc_lib.
2017-07-03Merge branch 'siri/make/default-outdir/ERL-438/OTP-14489' into maintSiri Hansen
* siri/make/default-outdir/ERL-438/OTP-14489: [ct_make] Do not use the interactive tool 'c' from ct_make Use current dir as default outdir for c:c/1,2 [make] Do not use the interactive tool 'c' from make
2017-06-30Merge branch 'siri/make/default-outdir/ERL-438/OTP-14489' into maint-20Erlang/OTP
* siri/make/default-outdir/ERL-438/OTP-14489: [ct_make] Do not use the interactive tool 'c' from ct_make Use current dir as default outdir for c:c/1,2 [make] Do not use the interactive tool 'c' from make
2017-06-30Merge branch 'dgud/stdlib/string-len-compat/OTP-14487' into maint-20Erlang/OTP
* dgud/stdlib/string-len-compat/OTP-14487: Fix old length usage in string
2017-06-29Use current dir as default outdir for c:c/1,2Siri Hansen
In OTP-20, c:c/1,2 started using the directory of the source file as default output directory. For backwards compatibility reasons this is now reversed so the current directory is used instead.
2017-06-26Fix infinite loop in shell caused by record with recursive typespecSvilen Ivanov
If record with recursive typespec such as -record(r,{f :: #r{} | undefined}). is used in interactive shell it stucks in inifinite loop when trying to find definitions for all records used in expression.
2017-06-26Fix old length usage in stringDan Gudmundsson
Do not invoke the internal string:lenght/1 function when the list length is wanted. Fixes backwards compatibility for old string functions.
2017-06-22stdlib: Accept all nowarn_deprecated_function optionsHans Bolinder
The check of bad nowarn_deprecated_function tags in -compile attributes often made it impossible to compile modules with the warnings_as_errors option in two consecutive releases.
2017-06-22stdlib: Fix bug in proc_libHans Bolinder
Add a few more tests to the proc_lib_SUITE.
2017-06-22Support arbitrary crash report in proc_lib.Daniil Fedotov
The `error_logger_format_depth` variable is `unlimited` by default. This can cause errors when logging crash reports using sasl logger, because `io_lib:format("~P"...` does not support `unlimited` as a depth parameter. Use formatter string "~p" for unlimited depth. A way to reproduce the error: Start erl with sasl logger: erl -boot start_sasl -sasl errlog_type error -sasl sasl_error_logger tty Report arbitrary error: error_logger:error_report(crash_report, [fake_crash_report, foo]).
2017-06-19Update copyright yearHans Nilsson
2017-06-16[stdlib] Open sys debug logs as utf8Siri Hansen
This allows the use of ~ts/~tp/~tw in the formatting fun to sys:handle_debug/4.
2017-06-16[stdlib] Open error log file as utf8Siri Hansen
This allows the use of ~ts/~tp/~tw in calls to error_logger:format/2, error_logger:error_msg/2 and error_logger:info_msg/2.
2017-06-14Update copyright yearHans Nilsson
2017-06-12stdlib: Evaluate expressions in fun2ms bodiesHans Bolinder
The ms_transform module, used by ets:fun2ms/1 and dbg:fun2ms, evaluates constant arithmetic expressions. This is necessary since the Erlang compiler, which normally evaluates constant expressions, does not recognize the format generated by ms_transform.
2017-06-12Merge branch 'hasse/unicode_atoms/OTP-14285'Hans Bolinder
* hasse/unicode_atoms/OTP-14285: compiler: Handle (bad) Unicode parse transform module names kernel: Improve handling of Unicode filenames stdlib: Handle Unicode atoms in ms_transform stdlib: Improve Unicode handling of the Erlang parser stdlib: Handle unknown compiler options with Unicode stdlib: Handle Unicode macro names stdlib: Correct Unicode handling in escript dialyzer: Improve handling of Unicode parsetools: Improve handling of Unicode atoms stdlib: Handle Unicode atoms when formatting stacktraces stdlib: Add more checks of module names to the linter stdlib: Handle Unicode atoms better in io_lib_format stdlib: Handle Unicode atoms in c.erl
2017-06-09stdlib: Handle Unicode atoms in ms_transformHans Bolinder
2017-06-09stdlib: Improve Unicode handling of the Erlang parserHans Bolinder
2017-06-09stdlib: Handle unknown compiler options with UnicodeHans Bolinder
2017-06-09stdlib: Handle Unicode macro namesHans Bolinder
2017-06-09stdlib: Correct Unicode handling in escriptHans Bolinder
2017-06-09stdlib: Handle Unicode atoms when formatting stacktracesHans Bolinder
2017-06-09stdlib: Add more checks of module names to the linterHans Bolinder
Unicode atoms are handled better by the Erlang code linter. Module names are checked for character codes greater than 255. This means that modules invoked after the linter can assume that module names have only Latin-1 characters.
2017-06-09stdlib: Handle Unicode atoms better in io_lib_formatHans Bolinder
The field width calculation did not handle graphem clusters well.
2017-06-09stdlib: Handle Unicode atoms in c.erlHans Bolinder
Pull request 1459 (https://github.com/erlang/otp/pull/1459) points out one situation where Unicode atoms are not handled well in c.erl. This commit tries to fix all situations.
2017-06-07stdlib: Lookup src path in beamDan Gudmundsson
find and use source directive when searching for source file
2017-05-29Merge pull request #1476 from bjorng/bjorn/stdlib/erl_tar-timesBjörn Gustavsson
erl_tar: Fix handling of date and time
2017-05-29erl_tar: Fix handling of date and timeBjörn Gustavsson
Since aa0c4b0df7cdc, erl_tar would write the local time (instead of the POSIX time) into the tar header for the archived files. When extracting the tar file, the extracted file could be set to a future time (depending on the time zone). We could do a minimal fix, but this seems to be a good time to rewrite the time handling to use the new features that allow file info to be read and written in the POSIX time format. First reported here: https://github.com/erlang/rebar3/issues/1554
2017-05-23Merge pull request #1469 from josevalim/jv-unicode-normalize-errorDan Gudmundsson
Return error tuple on unicode normalization functions
2017-05-22Return error tuple on unicode normalization functionsJosé Valim
Prior to this patch, the normalization functions in the unicode module would raise a function clause error for non-utf8 binaries. This patch changes it so it returns {error, SoFar, Invalid} as characters_to_binary and characters_to_list does in the unicode module. Note string:next_codepoint/1 and string:next_grapheme had to be changed accordingly and also return an error tuple.
2017-05-22stdlib: Warn for bad type variables of parameterized typesHans Bolinder
The linter emits warnings about using '_' as type variable in parameterized types.
2017-05-19Merge branch 'master' into jv-gen-server-exitsSiri Hansen
2017-05-18stdlib: Limit the size of gen_statem's error eventsHans Bolinder
The postponed events, the user state and data, and the error reason are all limited in error events (if the Kernel variable error_logger_format_depth is set).
2017-05-18kernel: Introcude error_logger:get_format_depth()Hans Bolinder
2017-05-18stdlib: Limit the size of proc_lib's crash reportsHans Bolinder
The size of the message queue and the dictionary is limited in crash reports. To avoid creating the potentially huge list of messages of the message queue, messages are received (if the Kernel variable error_logger_format_depth is set). The tag 'message_queue_len' has been added to the crash report.
2017-05-18stdlib: Limit the size of gen_server's error eventsHans Bolinder
The state of the gen_server is limited in error events before exiting (if the Kernel variable error_logger_format_depth is set). An alternative is to let the error_logger limit all messages (error_msg, format, warning_msg, info_msg), which would not limit reports and also add a smallish overhead to event logging. It is not decided if the alternative is to be implemented.
2017-05-18stdlib: Add io_lib:limit_term/2Hans Bolinder
The term returned by io_lib:limit_term(Term, Depth) should return the same string if substituted for Term in io_lib:format("~P", [Term, Depth]) or io_lib:format("~W", [Term, Depth]).
2017-05-17proc_lib: Don't call erlang:get_stacktrace/0 twiceBjörn Gustavsson
proc_lib calls erlang:get_stacktrace/0 twice, which is unnecessary, and potentially unsafe since there are calls to many functions in between. Any of the calls could potentially cause and catch an exception, invalidating the stacktrace. Only call erlang:get_stacktrace/0 once, and pass the result to the second place where it is needed.
2017-05-17escript: Pick up stacktrace a soon as possibleBjörn Gustavsson
It happens to work today, but it is potentially unsafe to call io:format/2 before calling erlang:get_stacktrace/0. Make the code safe by calling erlang:get_stacktrace/0 directly after catching the exception.
2017-05-16Merge pull request #1453 from bjorng/bjorn/catch-warning/OTP-14401Björn Gustavsson
Warn for potentially unsafe use of get_stacktrace/0