aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib
AgeCommit message (Collapse)Author
2019-04-12stdlib: Adjust test suites and docs due to erl_pp changesHans Bolinder
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-11Merge branch 'sverker/test-cuddle'Sverker Eriksson
* sverker/test-cuddle: stdlib: Remove ets_SUITE:time_lookup
2019-04-10Decentralized counters for ETS ordered_set with write_concurrencyKjell Winblad
Previously, all ETS tables used centralized counter variables to keep track of the number of items stored and the amount of memory consumed. These counters can cause scalability problems (especially on big NUMA systems). This commit adds an implementation of a decentralized counter and modifies the implementation of ETS so that ETS tables of type ordered_set with write_concurrency enabled use the decentralized counter. [Experiments][1] indicate that this change substantially improves the scalability of ETS ordered_set tables with write_concurrency enabled in scenarios with frequent `ets:insert/2` and `ets:delete/2` calls. The new counter is implemented in the module erts_flxctr (`erts_flxctr.h` and `erts_flxctr.c`). The module has the suffix flxctr as it contains the implementation of a flexible counter (i.e., counter instances can be configured to be either centralized or decentralized). Counters that are configured to be centralized are implemented with a single counter variable which is modified with atomic operations. Decentralized counters are spread over several cache lines (how many can be configured with the parameter `+dcg`). The scheduler threads are mapped to cache lines so that there is no single point of contention when decentralized counters are updated. The thread progress functionality of the Erlang VM is utilized to implement support for linearizable snapshots of decentralized counters. The snapshot functionality is used by the `ets:info/1` and `ets:info/2` functions. [1]: http://winsh.me/ets_catree_benchmark/flxctr_res.html
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-10Merge pull request #2197 from lbolla/spelling-mistakes-fixBjörn Gustavsson
Fix various spelling mistakes
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-08Merge pull request #2200 from ↵Björn Gustavsson
bjorng/bjorn/deprecation-warnings/ERL-904/OTP-15749 Add compiler option for suppressing warnings about removed functions/modules
2019-04-07calendar.xml: fix typoMikael Pettersson
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-04Fix broken linksBjörn Gustavsson
A multitude of broken links were found when a bug was fixed in the link checker.
2019-04-02stdlib: Remove ets_SUITE:time_lookupSverker Eriksson
Fails sometimes on windows due to bad timer precision leading to division by zero. This is more a (bad) benchmark than a regression test.
2019-04-01Merge branch 'maint'Sverker Eriksson
* maint: Updated OTP version Prepare release # Conflicts: # OTP_VERSION # make/otp_version_tickets_in_merge
2019-03-31Fix various spelling mistakesLorenzo Bolla
Fix ERL-541 and various other unreported spelling mistakes.
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-22Change "can not" into "cannot"Raimo Niskanen
2019-03-22Merge branch 'hasse/stdlib/restore_string_SUITE_timeout'Hans Bolinder
* hasse/stdlib/restore_string_SUITE_timeout: stdlib: Restore timeout in string_SUITE:meas()
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
2019-03-21stdlib: Restore timeout in string_SUITE:meas()Hans Bolinder
Make sure the test case meas() terminates without failing.
2019-03-21Merge pull request #2179 from richcarl/array-fixupDan Gudmundsson
Array fixup
2019-03-21Merge branch 'hasse/stdlib/optimize_string/OTP-15649'Hans Bolinder
* hasse/stdlib/optimize_string/OTP-15649: stdlib: Optimize handling of Unicode in the string module stdlib: Optimize handling of Unicode in the string module stdlib: Fix a bug in string:lexemes()
2019-03-20HiPE: Don't fail the compilation for unimplemented instructionsBjörn Gustavsson
2019-03-20stdlib: Optimize handling of Unicode in the string moduleHans Bolinder
Unroll some of the functions returning codepoints and grapheme clusters.
2019-03-20stdlib: Optimize handling of Unicode in the string moduleHans Bolinder
The unicode_util:cp() function handles deep lists faster by returning the rest of the input more balanced to the right than before.
2019-03-20stdlib: Fix a bug in string:lexemes()Hans Bolinder
2019-03-20Improve the ETS benchmark in the test suite ets_SUITEKjell Winblad
* Refactor the code to make it easier to configure the benchmark * Add a test case for long benchmark runs. The new test case is run by the OTP-team's benchmark infrastructure and can help in keeping track of how the performance of ETS is affected by code changes.
2019-03-18Merge pull request #2114 from se-apc/strip_fixJohn Högberg
Allow list of chunks to be given to strip*() OTP-15680
2019-03-15Merge branch 'sverker/ets-select-fixation-owner-change-bug/OTP-15672'Sverker Eriksson
* sverker/ets-select-fixation-owner-change-bug/OTP-15672: erts: Fix ets:select table fixation leak at owner change erts: Refactor common things into traverse_context_t stdlib: Clarify docs for ets:info(_, safe_fixed)
2019-03-12Merge branch 'maint'Henrik Nord
* maint: Updated OTP version Prepare release
2019-03-11Fix array tests hardcoded to node/leaf sizesRichard Carlsson
2019-03-11Skip useless test in grow loop in array moduleRichard Carlsson
2019-03-11Clarify comments in array moduleRichard Carlsson
2019-03-11Get rid of useless setelement in array moduleRichard Carlsson
2019-03-11erts: Fix ets:select table fixation leak at owner changeSverker Eriksson
Symtom: ETS table remains fixed after finished ets:select* call. Problem: The decision to unfix table after a yielding ets:select* is based on table ownership, but ownership might have changed while ets:select* was yielding. Solution: Remember and pass along whether table was fixed when the traversal started.
2019-03-11stdlib: Clarify docs for ets:info(_, safe_fixed)Sverker Eriksson
It's about the *last* time the table went from unfixed to fixed, not the first time it ever did.
2019-03-11Prepare releaseErlang/OTP
2019-03-08Allow list of chunks to be given to strip*()Michael Schmidt
This allows extra chunks to be preserved for languages such as Elixir
2019-03-07Merge branch 'sverker/maint/ets-no-mbuf-trapping/OTP-15660'Sverker Eriksson
into sverker/master/ets-no-mbuf-trapping/OTP-15660