aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/src
AgeCommit message (Collapse)Author
2019-08-23Merge pull request #2353 from ↵Björn Gustavsson
bjorng/bjorn/stdlib/fix-file_lib-wildcard/ERL-1029/OTP-15987 Fix filelib:wildcard/1,2 for patterns containing ".." and/or "@"
2019-08-22Fix filelib:wildcard/1,2 for patterns containing ".." and/or "@"Björn Gustavsson
`..` was broken and only worked when it was used in the beginning of the pattern before any wildcard characters. For example: 1> filelib:wildcard("erts/.."). ["erts/.."] Using `..` preceded by wildcard characters would not work: 1> filelib:wildcard("*/.."). [] `@` is not a wildcard character but is used internally in `filelib` as an escape character and was not handled as other literal characters. That could lead to performance degradation as it disabled an optimization of the matching of the literal prefix of a pattern. It would also cause the following example to fail: 1> filelib:wildcard("@/.."). [] This commit corrects the handling `..` and also makes sure that the use of `@` in a pattern does not degrade performance. https://bugs.erlang.org/browse/ERL-1029
2019-07-12fun2ms: accept ++ in function head when called from shellMagnus Henoch
Code such as ets:fun2ms(fun({"foo" ++ X}) -> X end) works fine in compiled code. Let's make it work when fun2ms is invoked from the shell as well.
2019-07-02Merge branch 'rickard/pcre-8.43/OTP-15889' into maintRickard Green
* rickard/pcre-8.43/OTP-15889: Updated stdlib runtime dependency to erts Convert generated re replace and split tests from latin1 to UTF8 Adjust generated re replacement and split tests Generate new re replacement and split tests using perl 5.22.1 Update internal PCRE to version 8.43
2019-06-27Optimize ordsets:union/1Björn Gustavsson
`ordsets:union/1` is not especially efficient when calculating the union of many ordsets. Rewrite it to use the highly optimized `lists:umerge/1`.
2019-06-26Updated stdlib runtime dependency to ertsRickard Green
2019-06-18Merge branch 'rickard/re-yield-unicode-validation/OTP-15836/ERL-876' into ↵Rickard Green
rickard/re-unicode-validation/OTP-15831/OTP-15836/ERL-876 * rickard/re-yield-unicode-validation/OTP-15836/ERL-876: Update runtime dependency from stdlib to erts Yield when validating UTF8 for long subject in re:run() Add yield_on_subject_validation() test
2019-06-18Update runtime dependency from stdlib to ertsRickard Green
2019-06-18Merge branch 'rickard/re-global-unicode-validation/OTP-15831/ERL-876' into ↵Rickard Green
rickard/re-unicode-validation/OTP-15831/OTP-15836/ERL-876 * rickard/re-global-unicode-validation/OTP-15831/ERL-876: Update runtime dependency from stdlib to erts Only validate subject once when global is used in re:run() Add global_unicode_validation() test
2019-06-12Prepare releaseErlang/OTP
2019-06-12Merge branch 'hasse/stdlib/chars_limit_bug/OTP-15875/ERL-967' into maint-22Erlang/OTP
* hasse/stdlib/chars_limit_bug/OTP-15875/ERL-967: stdlib: Fix a bug concerning io_lib option 'chars_limit' # Conflicts: # lib/stdlib/test/io_SUITE.erl
2019-06-11stdlib: Fix a bug concerning io_lib option 'chars_limit'Hans Bolinder
See also https://bugs.erlang.org/browse/ERL-967.
2019-05-29Prepare releaseErlang/OTP
2019-05-29Merge branch 'hasse/stdlib/chars_limit_bug/OTP-15847/ERL-957' into maint-22Erlang/OTP
* hasse/stdlib/chars_limit_bug/OTP-15847/ERL-957: stdlib: Fix a bug concerning io_lib option 'chars_limit' # Conflicts: # lib/stdlib/test/io_SUITE.erl
2019-05-29stdlib: Fix a bug concerning io_lib option 'chars_limit'Hans Bolinder
See also https://bugs.erlang.org/browse/ERL-957.
2019-05-24Update runtime dependency from stdlib to ertsRickard Green
2019-05-24Only validate subject once when global is used in re:run()Rickard Green
2019-05-10Prepare releaseErlang/OTP
2019-05-08Merge branch 'maint'Rickard Green
* maint: Fix bad merge from maint-21 Fix bad merge from maint-21 Updated OTP version Prepare release # Conflicts: # OTP_VERSION # make/otp_version_tickets_in_merge
2019-05-07Merge branch 'hasse/stdlib/optimize_io_format/OTP-15705'Hans Bolinder
* hasse/stdlib/optimize_io_format/OTP-15705: stdlib: Optimize pretty printing of strings with chars_limit stdlib: Optimize printing of maps a bit stdlib: Optimize pretty printing of lists slightly
2019-05-07Merge branch 'hasse/stdlib/check_spec_module/OTP-15563/ERL-845'Hans Bolinder
* hasse/stdlib/check_spec_module/OTP-15563/ERL-845: stdlib: Do not allow specs for functions in other modules
2019-05-06Prepare releaseErlang/OTP
2019-05-06Merge branch 'raimo/stdlib/gen_statem-sync-timer-cancel/OTP-15295' into maint-21Erlang/OTP
* raimo/stdlib/gen_statem-sync-timer-cancel/OTP-15295: Rewrite to use synchronous timer cancel
2019-05-03stdlib: Do not allow specs for functions in other modulesHans Bolinder
See also https://bugs.erlang.org/browse/ERL-845. [Kostis:] My suggestion is that the compiler refuses to compile modules that contain specs for functions that are not from this module. I do not remember when / why this `feature' was introduced, but thinking about it I see a lot of (ugly) semantics issues with it. For example, should one be allowed to declare in the foo module that lists:flatten/1 takes an integer() as an argument and returns a binary()? Should one be allowed to declare a spec in some module m1 for a function of m2 that is not defined in m2? There are all kinds of checks that will need to be added to dialyzer to protect itself from these semantics issues. The compiler already refuses to compile modules that contain specs for non-existing functions of the module. Similarly, it should refuse to compile modules that contain specs for functions of other modules - unless it can somehow check that these functions are indeed defined, but it is not how the compiler currently works.
2019-05-03stdlib: Optimize pretty printing of strings with chars_limitHans Bolinder
Avoid traversing all of string arguments when limiting the output with the 'chars_limit' option.
2019-05-03stdlib: Optimize printing of maps a bitHans Bolinder
2019-05-03stdlib: Optimize pretty printing of lists slightlyHans Bolinder
2019-04-30Fix bug string:slice/3 on bad inputDan Gudmundsson
Fixed bug in slice which wrongly could return <<>> for non-utf8 binary input. Also give a better error reason when non-utf8 binaries are given as input to some functions.
2019-04-24Revert "Prepare release"Rickard Green
This reverts commit 425889ba69b69a9b6fb14bfbef121d51b78e853a.
2019-04-23Prepare releaseErlang/OTP
2019-04-17Rewrite to use synchronous timer cancelRaimo Niskanen
2019-04-12stdlib: Let the Pretty Printer output more on one lineHans Bolinder
Atomic elements such as atoms, '{}', '[]', and '<<>>' are output on the same line in types, structs, lists, &c. In particular types can be more compact, and easier to read. A space is output after comma in tuples, to be more consistent.
2019-04-12Merge branch 'hasse/stdlib/erl_pp_quoted_atom_types/OTP-15756'Hans Bolinder
* hasse/stdlib/erl_pp_quoted_atom_types/OTP-15756: stdlib: Add option 'quote_singleton_atom_types' to erl_pp
2019-04-12stdlib: Add option 'quote_singleton_atom_types' to erl_ppHans Bolinder
The new option can be used by Dialyzer, which has traditionally quoted singleton atom types. The OTP team has decided not to use the convention in OTP documentation, at least not for now. That is why the option is needed. EDoc does not use the new option. Syntax Tools does not have a similar option.
2019-04-10Merge pull request #2205 from bjorng/bjorn/record_info/ERL-907Björn Gustavsson
Issue an error for improper use of record_info/2 in a fun OTP-15760
2019-04-09Merge branch 'hasse/stdlib/erl_pp_throw/OTP-15751'Hans Bolinder
* hasse/stdlib/erl_pp_throw/OTP-15751: stdlib: Fix a bug concerning exception class 'throw'
2019-04-09Issue an error for improper use of record_info/2 in a funBjörn Gustavsson
`record_info/2` is a pseudo-function that requires literal arguments known at compile time. Therefore, the following usage is illegal: f() -> fun record_info/2. However, `erl_lint` did not issue a compilation error for this usage, and the compiler would crash in a later pass. https://bugs.erlang.org/browse/ERL-907
2019-04-08stdlib: Fix a bug concerning exception class 'throw'Hans Bolinder
Since the introduction of the stack trace variable, the Erlang Pretty Printer has left out the exception class 'throw' even when the stack trace variable cannot be left out, which is not correct Erlang code. The fix is to always include the exception class 'throw'. An alternative is to exclude 'throw' exactly when the stack trace variable is '_'.
2019-04-05Add options for suppressing warnings about removed functionsBjörn Gustavsson
An appliction outside of OTP may want to reuse then name of a module that was previously included in OTP. Therefore, there should be a way to suppress warnings for removed functions.
2019-04-05Correct description for removal of rpc:safe_multi_server_call/2Björn Gustavsson
The warning would come out as: Warning: call to rpc:safe_multi_server_call/2 will fail, since it was removed in removed in OTP 19; use rpc:multi_server_call/2 ^^^^^^^^^^^^^^^^^^
2019-04-05Add a reminder to remove the warning for os_mon_mib in OTP 24Björn Gustavsson
2019-04-05No longer warn for use of the overload moduleBjörn Gustavsson
The entire overload module was removed in OTP 19. Stopping warning for it now, since the module name could be used by code outside OTP.
2019-04-05Don't warn for removed functions in OTP 18 or olderBjörn Gustavsson
2019-04-01Merge branch 'maint'Sverker Eriksson
* maint: Updated OTP version Prepare release # Conflicts: # OTP_VERSION # make/otp_version_tickets_in_merge
2019-03-29Prepare releaseErlang/OTP
2019-03-29Merge branch 'maint'John Högberg
2019-03-28erl_tar: Use read_ahead when reading compressed tar filesJohn Högberg
Jumping around in a compressed file is nowhere near as cheap as for uncompressed files, as it requires reading and decompressing up until the desired position. Using read_ahead will improve performance slightly.
2019-03-26Revert "Prepare release"Henrik Nord
This reverts commit 0118046f9bda8dcf3594184fa439b79267db8017.
2019-03-25Prepare releaseErlang/OTP
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