aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib
AgeCommit message (Collapse)Author
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-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-22' into maintJohn Högberg
* maint-22: Updated OTP version Prepare release # Conflicts: # make/otp_version_tickets
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-12Merge branch 'hasse/stdlib/chars_limit_bug/OTP-15875/ERL-967' into maintHans Bolinder
* hasse/stdlib/chars_limit_bug/OTP-15875/ERL-967: stdlib: Fix a bug concerning io_lib option 'chars_limit'
2019-06-11stdlib: Fix a bug concerning io_lib option 'chars_limit'Hans Bolinder
See also https://bugs.erlang.org/browse/ERL-967.
2019-06-04Merge branch 'maint-21' into maintIngela Anderton Andin
* maint-21: Updated OTP version Prepare release # Conflicts: # OTP_VERSION # erts/doc/src/notes.xml # erts/vsn.mk # lib/kernel/doc/src/notes.xml # lib/kernel/src/kernel.appup.src # lib/kernel/vsn.mk # lib/ssl/doc/src/notes.xml # lib/ssl/vsn.mk # lib/stdlib/doc/src/notes.xml # lib/stdlib/src/stdlib.appup.src # lib/stdlib/vsn.mk # make/otp_version_tickets # otp_versions.table
2019-06-03Merge branch 'maint-22' into maintHans Bolinder
* maint-22: Updated OTP version Prepare release # Conflicts: # make/otp_version_tickets
2019-06-03Prepare releaseErlang/OTP
2019-05-29Merge branch 'hasse/stdlib/chars_limit_bug/OTP-15847/ERL-957' into maintHans Bolinder
* hasse/stdlib/chars_limit_bug/OTP-15847/ERL-957: stdlib: Fix a bug concerning io_lib option 'chars_limit'
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-24Add yield_on_subject_validation() testRickard Green
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-24Add global_unicode_validation() testRickard Green
2019-05-22Merge branch 'sverker/stdlib/binary-referenced_byte_size-doc' into maintSverker Eriksson
PR-2245 ERL-914 * sverker/stdlib/binary-referenced_byte_size-doc: stdlib: Improve example for binary:referenced_byte_size/1
2019-05-20stdlib: Improve example for binary:referenced_byte_size/1Sverker Eriksson
2019-05-15Merge pull request #2232 from seeekr/patch-1Lukas Larsson
fix typo in gen_statem.xml
2019-05-13fix typo in gen_statem.xmlDenis Andrejew
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-06Merge branch 'dgud/stdlib/string-error-cases'Dan Gudmundsson
* dgud/stdlib/string-error-cases: unicode_util gc/1 Fix bug string:slice/3 on bad input
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-05-02Remove description of structure of opaque type `gb_trees:tree/2`.Brujo Benavides
Since it's an opaque type, its internal structure shouldn't be part of the docs. Otherwise it leads misguided devs to the assumption that they can pattern-match on it, when they shouldn't.
2019-05-02unicode_util gc/1Dan Gudmundsson
Could expand binary to list for to many elements. Fix and add tests.
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-30Merge pull request #2221 from FNickRU/queue-docHans Bolinder
Fix typo
2019-04-30Fix typoStanislav Mayorov
2019-04-24Revert "Prepare release"Rickard Green
This reverts commit 425889ba69b69a9b6fb14bfbef121d51b78e853a.
2019-04-23Prepare releaseErlang/OTP
2019-04-18Fix broken ETS test caseKjell Winblad
This commit fixes an ETS test case that tests the decentralized memory counter in tables of type ordered_set with the write_concurrency option turned on. The test case assumed that the memory consumption of the table would only grow monotonically when terms are inserted. However, this was not the case when the emulator was compiled in debug mode as random splits and joins of CA tree nodes could happen. This commit fixes the test case by disabling random splits and joins in the tested table.
2019-04-17Rewrite to use synchronous timer cancelRaimo Niskanen
2019-04-12stdlib: Adjust test suites and docs due to erl_pp changesHans Bolinder