aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib
AgeCommit message (Collapse)Author
2019-08-23Merge branch 'maint'Björn Gustavsson
* maint: Fix filelib:wildcard/1,2 for patterns containing ".." and/or "@"
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-22Merge branch 'sverker/ets-test-cuddle'Sverker Eriksson
* sverker/ets-test-cuddle: stdlib: Fix ets_SUITE:tabfile_ext4
2019-08-22stdlib: Fix ets_SUITE:tabfile_ext4Sverker Eriksson
on machines with long host names. Move forward the file location interval to corrupt. An ETS table file corrupted in the header may still be readable with table content unchanged and that will cause tabfile_ext4 to fail. The header length increase with long host names and added table options.
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-08-21Merge branch 'hasse/remove_old_IO_requests/OTP-15695'Hans Bolinder
* hasse/remove_old_IO_requests/OTP-15695: stdlib: Remove old I/O-requests from test suites stdlib (doc): Do not mention old requests snmp: Update old format I/O-request sasl: Use encoding when reading terms parsetools (doc): Update old format I/O-requests mnesia: Update old format I/O-request kernel: Update old format I/O-requests stdlib: Remove no longer used function kernel: Remove commented out code stdlib: Remove commented out code
2019-08-20stdlib: Remove old I/O-requests from test suitesHans Bolinder
2019-08-20stdlib (doc): Do not mention old requestsHans Bolinder
2019-08-20stdlib: Remove no longer used functionHans Bolinder
2019-08-20stdlib: Remove commented out codeHans Bolinder
2019-08-20Merge branch 'maint'Hans Bolinder
* maint: fun2ms: accept ++ in function head when called from shell
2019-08-20Merge branch 'legoscia/stdlib/fun2ms-plusplus/OTP-15992/PR-2322' into maintHans Bolinder
* legoscia/stdlib/fun2ms-plusplus/OTP-15992/PR-2322: fun2ms: accept ++ in function head when called from shell
2019-08-12Merge branch 'maint'John Högberg
* maint: erts: Create heap binaries in binary:split/2-3 erts: Create heap binaries in binary_part/2-3 erts: Create heap binaries in split_binary/2 erts: Create heap binaries in bs_get_binary2 erts: Remove size check in bs_start_match erts: Disallow binaries whose size in bits exceeds UWORD_MAX
2019-08-09erts: Create heap binaries in bs_get_binary2John Högberg
ErlSubBin is a large struct that often dwarfs the region of memory it points at, and it's common for them to refer to a ProcBin which must be kept around as long as the SubBin lives, using up even more heap space and keeping the referenced binary alive regardless of how small the sub-binary is.
2019-08-06Merge branch 'lukas/otp/add-dialyzer-make-target/OTP-15915'Lukas Larsson
* lukas/otp/add-dialyzer-make-target/OTP-15915: otp: Add make dialyzer and make xmllint documentation Add 'make dialyzer' target to top and apps
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-05Merge branch 'sverker/ets_SUITE-fixtable_iter_bag'Sverker Eriksson
* sverker/ets_SUITE-fixtable_iter_bag: stdlib: ets_SUITE:fixtable_iter_bag
2019-07-05stdlib: ets_SUITE:fixtable_iter_bagSverker Eriksson
Turns out the bug in ets:next() that I tried to provoke with this new test wasn't really there. Oh well.
2019-07-03Merge branch 'kostis/erl_syntax/fix-types'Hans Bolinder
* kostis/erl_syntax/fix-types: erl_parse: Add documentation for exported types erl_syntax: Fix some type declarations erl_parse: Export some types needed for syntax_tools
2019-07-02Merge branch 'maint'Rickard Green
* maint: 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-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-07-02erl_parse: Add documentation for exported typesKostis Sagonas
2019-07-01Merge branch 'maint'John Högberg
* maint: erts: Fix integer overflow in loader erts: Fix integer overflow in list subtraction
2019-07-01Merge branch 'john/erts/lists_subtract_fixes/OTP-15938/OTP-15939' into maintJohn Högberg
* john/erts/lists_subtract_fixes/OTP-15938/OTP-15939: erts: Fix integer overflow in loader erts: Fix integer overflow in list subtraction
2019-07-01erts: Fix integer overflow in list subtractionJohn Högberg
CMP_TERM returned an `Sint`, which overflowed the `int` used in erl_rbtree for storing the comparison, causing list subtraction to behave strangely.
2019-06-28Merge branch 'maint'Björn Gustavsson
* maint: Optimize ordsets:union/1
2019-06-28erl_parse: Export some types needed for syntax_toolsKostis Sagonas
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-26Convert generated re replace and split tests from latin1 to UTF8Rickard Green
2019-06-26Adjust generated re replacement and split testsRickard Green
Adjustment needed due to incompatibility between PCRE 8.43 and perl version 5.22.1
2019-06-26Generate new re replacement and split tests using perl 5.22.1Rickard Green
2019-06-26Update internal PCRE to version 8.43Rickard Green
2019-06-26Add 'make dialyzer' target to top and appsLukas Larsson
2019-06-26Merge branch 'kjell/make_test/OTP-15812'Kjell Winblad
2019-06-26Add "make test" command for root and application directoriesKjell Winblad
The added make target is described in HOWTO/TESTING.md.
2019-06-25Merge branch 'maint'Rickard Green
* maint: Update runtime dependency from stdlib to erts Yield when validating UTF8 for long subject in re:run() Add yield_on_subject_validation() test 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-25Merge pull request #2250 from ↵Rickard Green
rickard-green/rickard/re-unicode-validation/OTP-15831/OTP-15836/ERL-876 re unicode validation
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-18Merge branch 'kjell/stdlib/ets_ordered_set_slow_react/OTP-15906' into maintKjell Winblad
* kjell/stdlib/ets_ordered_set_slow_react/OTP-15906: ETS ordered_set: Improvements to the CA tree implementation
2019-06-18ETS ordered_set: Improvements to the CA tree implementationKjell Winblad
This commit only affects the implementation of ETS `ordered_set` tables with the `write_concurrency` option enabled. Such tables are implemented with a data structure that is called the contention adapting search tree (CA tree). This commit introduces the following changes: * This commit causes a join to be triggered in one randomly selected base node in about one of 1000 read unlock calls for base node locks. No such joins happened before this commit. Before this commit, operations that only acquired looks in read-mode never triggered any contention adaptation. Therefore, the CA tree could get stuck in a sub-optimal state in certain scenarios. This could happen, for example, when a CA tree is first populated with parallel inserts (which will cause splits of base nodes) and then only read-only operations are applied to the data structure. Benchmark results from the `ets_SUITE:lookup_catree_par_vs_seq_init_benchmark/0` benchmark function (which is included in this commit) shows that this change can improve the throughput of the CA tree in the scenario described above. * Read-only operations will now also increase values of statistics counters when they detect that they need to wait for other operations. Only write operation changed statistics counters before this commit. This improves the statistics that the adaptation heuristics is based on. * Additionally, this commit adds an upper and lower limit to the contention statistics variables in the base nodes. Such limits did not exist before this commit. This should, for example, make the CA tree more responsive to contention after long periods of low contention.
2019-06-18Merge branch 'maint'John Högberg
* maint: Updated OTP version Prepare release
2019-06-18Merge branch 'maint-21' into maintJohn Högberg
* maint-21: Updated OTP version Prepare release # Conflicts: # OTP_VERSION # erts/doc/src/notes.xml # erts/vsn.mk # lib/common_test/doc/src/notes.xml # lib/common_test/vsn.mk # lib/kernel/doc/src/notes.xml # lib/kernel/vsn.mk # lib/public_key/doc/src/notes.xml # lib/public_key/vsn.mk # lib/ssl/doc/src/notes.xml # lib/ssl/vsn.mk # lib/stdlib/doc/src/notes.xml # lib/stdlib/vsn.mk # make/otp_version_tickets # otp_versions.table
2019-06-17Prepare releaseErlang/OTP
2019-06-17Merge branch 'hasse/stdlib/chars_limit_bug/OTP-15875/ERL-967' into maint-21Erlang/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-13Merge branch 'maint'John Högberg
* maint: Updated OTP version Prepare release # Conflicts: # OTP_VERSION
2019-06-13Merge branch 'maint-22' into maintJohn Högberg
* maint-22: Updated OTP version Prepare release # Conflicts: # make/otp_version_tickets
2019-06-12Prepare releaseErlang/OTP