aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/test
AgeCommit message (Collapse)Author
2018-12-03Merge branch 'maint'Dan Gudmundsson
* maint: unicode_util did not handle binary input data correctly
2018-12-03Merge branch 'dgud/stdlib/unicode-binary-bug/ERL-777/OTP-15428' into maintDan Gudmundsson
* dgud/stdlib/unicode-binary-bug/ERL-777/OTP-15428: unicode_util did not handle binary input data correctly
2018-12-03Merge branch 'maint'Hans Bolinder
* maint: stdlib: Let calendar:system_time_to_rfc3339() keep fractions
2018-11-29stdlib: Let calendar:system_time_to_rfc3339() keep fractionsHans Bolinder
RFC3339 mentions in paragraph 5.1 that if certain conditions are fulfilled, then sorting date and time strings results in a time-ordered sequence. One of the conditions is that the strings must have the same number of fractional second digits. This commits makes sure this is indeed the case.
2018-11-29Merge branch 'lukas/ssl/dist_benchmarks'Lukas Larsson
* lukas/ssl/dist_benchmarks: stdlib: Adjust binary bench to be faster ssl: Add scheduler utilization benchmark of plain/tls dist ssl: Link to tstsrvr to group_leader in test ssl: Add some benchmarks to test
2018-11-29stdlib: Adjust binary bench to be fasterLukas Larsson
When benchmarking releases before OTP-22 the binary:match function is very slow so it takes a long time to run the benchmarks. This commit makes the benchmark run for a shorter time which will make the results a bit less stable, but it will cut 1 hour from the benchmark regression so we will have to live with that.
2018-11-22Merge branch 'maint'Björn Gustavsson
* maint: Fix inadvertently suppressed warning for unused variable
2018-11-21Fix inadvertently suppressed warning for unused variableBjörn Gustavsson
An external fun could inadvertently suppress warnings for unused variables, such as in this example: bug() -> BugVar = foo(), if true -> fun m:f/1 end. There would be no warning that `BugVar` was unused. The bug was introduced in ff432e262e652, which was the commit that extended external funs to allow variables. https://bugs.erlang.org/browse/ERL-762
2018-11-20Merge branch 'sverker/ets-ordered-set-fixups'Sverker Eriksson
2018-11-20stdlib: Fix bug in ets_SUITE:smp_ordered_iterationSverker Eriksson
Did fail on really slow unlucky machines.
2018-11-20unicode_util did not handle binary input data correctlyDan Gudmundsson
gc_zwj sent binaries recursivly to gc_extend/3 which didn't handle can't handle them. ERL-777
2018-11-16erts: Fix offheap leak of ets catree tmp iteration keySverker Eriksson
Also fix erts_debug:get_internal_status(node_and_dist_references) for catree to also search route node keys for offheap stuff.
2018-11-16Merge branch 'john/erts/plusplus-trapping/OTP-15427'John Högberg
* john/erts/plusplus-trapping/OTP-15427: Don't use too many reductions in lists:reverse/2 Make '++'/2 trapping
2018-11-14Merge branch 'maint'Lukas Larsson
* maint: Updated OTP version Prepare release Optimize operator '--' and yield on large inputs
2018-11-14Merge branch 'maint-18' into maintLukas Larsson
* maint-18: Updated OTP version Prepare release Optimize operator '--' and yield on large inputs Conflicts: OTP_VERSION erts/doc/src/notes.xml erts/emulator/beam/erl_alloc.types erts/emulator/beam/erl_bif_lists.c erts/vsn.mk lib/stdlib/doc/src/notes.xml lib/stdlib/vsn.mk make/otp_version_tickets otp_versions.table
2018-11-09Merge branch 'john/erts/OTP-18.3.4/minusminus_trapping/OTP-15371' into maint-18Erlang/OTP
* john/erts/OTP-18.3.4/minusminus_trapping/OTP-15371: Optimize operator '--' and yield on large inputs
2018-11-09Make '++'/2 trappingJohn Högberg
2018-11-07Remerge branch 'sverker/erts/ordered_set-select-improvements/OTP-15325'Sverker Eriksson
* sverker/erts/ordered_set-select-improvements/OTP-15325: erts: Tidy some ordered_set iteration code erts: Fix bug for catree iteration
2018-11-05Optimize operator '--' and yield on large inputsJohn Högberg
The removal set now uses a red-black tree instead of an array on large inputs, decreasing runtime complexity from `n*n` to `n*log(n)`. It will also exit early when there are no more items left in the removal set, drastically improving performance and memory use when the items to be removed are present near the head of the list. This got a lot more complicated than before as the overhead of always using a red-black tree was unacceptable when either of the inputs were small, but this compromise has okay-to-decent performance regardless of input size. Co-authored-by: Dmytro Lytovchenko <[email protected]>
2018-11-02Merge branch 'maint'John Högberg
* maint: Optimize operator '--' and yield on large inputs Inline erts_cmp Clarify a magical allocation size Fix trapping in lists:reverse/2
2018-11-01erts: Fix bug for catree iterationSverker Eriksson
with keys containing off-heap terms. The passed key may actually be the one already saved (if nodes have been joined), in which case we do nothing. Calling destroy_route_key() may destroy off-heap data.
2018-10-31Merge PR-1997 from sverker/erts/ordered_set-select-improvements/OTP-15325Sverker Eriksson
Even more scalable ETS ordered_set with write_concurrency
2018-10-30stdlib: Add ets_SUITE:smp_ordered_iterationSverker Eriksson
to provoke iteration over a moving ordered_set with write_concurrency and make sure we hit all "stable" keys.
2018-10-30stdlib: Improve stim_cat_ord_set in ets_SUITESverker Eriksson
to generate a routing tree with keys that fit each test case.
2018-10-29Optimize operator '--' and yield on large inputsJohn Högberg
The removal set now uses a red-black tree instead of an array on large inputs, decreasing runtime complexity from `n*n` to `n*log(n)`. It will also exit early when there are no more items left in the removal set, drastically improving performance and memory use when the items to be removed are present near the head of the list. This got a lot more complicated than before as the overhead of always using a red-black tree was unacceptable when either of the inputs were small, but this compromise has okay-to-decent performance regardless of input size. Co-authored-by: Dmytro Lytovchenko <[email protected]>
2018-10-26erts: Join empty base nodes in catreeSverker Eriksson
The original implementation did not do this due to fear of bad performance. But we think the negative effect of "leaking" empty base nodes is more important to fix. To get the bad performance a special kind of access patterns is needed where base nodes are frequently emptied and then repopulated soon again. ets_SUITE:throughput_benchmark for example did not show any negative effect from this commit at all.
2018-10-23erts: Provoke random catree split/join for DEBUG emulatorSverker Eriksson
2018-10-23erts: Do contention adaptions during (updating) iterationsSverker Eriksson
Once an iteration key has been found, never fall back to first/last key in next/prev tree as trees may split or join under our feet. I.e we must always use previous key when searching for the next key.
2018-10-23stdlib: Optimize ets_SUITE:stimulate_contentionSverker Eriksson
with ets_force_split
2018-10-23erts: Implement ets:info(T, stats) for catreesSverker Eriksson
{RouteNodes, BaseNodes, MaxRouteTreeDepth}
2018-10-19Merge branch 'maint'Siri Hansen
2018-10-16Fix gen_fsm_SUITE:start2/1 to terminate process synchronouslySiri Hansen
2018-10-16Fix sys_SUITE:special_process/1 to terminating process synchronouslySiri Hansen
2018-10-11Merge branch 'dgud/stdlib/unicode-11/OTP-15111'Dan Gudmundsson
* dgud/stdlib/unicode-11/OTP-15111: Update to Unicode-11
2018-10-11Merge pull request #1969 from RaimoNiskanen/raimo/stdlib/rand-xorshift116ssRaimo Niskanen
OTP-14731 Implement 'exsss' (Xorshift116**) as new default 'rand' algorithm The new algorithm is a combination of the Xorshift116 ('exsp') state update and a new scrambler "StarStar" from the 2018 paper "Scrambled Linear Pseudorandom Number Generators" by David Blackman and Sebastiano Vigna. This combination should not have the caveat of weak low bits that the previous default algorithm(s) have had, with the cost of about 10% lower speed.
2018-10-09Merge branch 'maint'Sverker Eriksson
# Conflicts: # erts/emulator/beam/erl_db_tree.c
2018-10-09Merge branch 'sverker/erts/ets-select_replace-bug/OTP-15346' into maintSverker Eriksson
* sverker/erts/ets-select_replace-bug/OTP-15346: erts: Fix bug in ets:select_replace for bound key
2018-10-09erts: Fix bug in ets:select_replace for bound keySverker Eriksson
which may cause following calls to ets:next or ets:prev to fail.
2018-10-08Merge branch 'maint'John Högberg
* maint: compiler: Forward +source flag to epp and fix bug in +deterministic epp: Allow user to set source name independently of input file name
2018-10-05epp: Allow user to set source name independently of input file nameJohn Högberg
Note that this does *not* affect -include()'d files or the -file() directive.
2018-10-05Update test suite and documentationRaimo Niskanen
2018-10-05Implement exsss (Xorshift116**)Raimo Niskanen
2018-10-03Merge branch 'sverker/ets-test-cuddle'Sverker Eriksson
* sverker/ets-test-cuddle: ets_SUITE: Remove more redundant option combos ets_SUITE: Try avoid redundant option combos ets_SUITE: Reduce table type combos by removing "void" ets_SUITE: Optimize throughput_benchmark
2018-10-03Merge branch 'maint'Raimo Niskanen
2018-09-28Update to Unicode-11Dan Gudmundsson
Update input files for the code-generator and tests. Added emoji-data.txt for new rule with how to handle emoji. Unicode have simpliefied the rules for emoji grapheme-clusters: From: GB10 (E_Base | EBG) Extend* × E_Modifier GB11 ZWJ × (Glue_After_Zwj | EBG) To: GB11 \p{Extended_Pictographic} Extend* ZWJ × \p{Extended_Pictographic} Update the code generator to handle the new way.
2018-09-28ets_SUITE: Remove more redundant option combosSverker Eriksson
meta_wb smp_insert smp_fixed_delete smp_select_delete
2018-09-28Decrease probability for failed histogramRaimo Niskanen
2018-09-24ets_SUITE: Try avoid redundant option combosSverker Eriksson
to reduce test times
2018-09-24ets_SUITE: Reduce table type combos by removing "void"Sverker Eriksson
Avoid repeating same tests for [] and [set]. Test case 'default' verifies 'set' to be the default type.
2018-09-21ets_SUITE: Optimize throughput_benchmarkSverker Eriksson
by populating the table with the help of a random number generator creating series of unique integers.