aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib
AgeCommit message (Collapse)Author
2018-10-24Merge branch 'maint'Björn Gustavsson
* maint: beam_lib: Remove obsolete module() from the beam() type hipe: Don't use beam_lib:info/1 with an atom as filename Honor the max heap size when copying literals after purging
2018-10-24Merge pull request #1992 from bjorng/bjorn/stdlib/beam_lib/ERL-696Björn Gustavsson
beam_lib: Clarify the beam() type in code and documentation OTP-15378
2018-10-19beam_lib: Remove obsolete module() from the beam() typeBjörn Gustavsson
The type `beam()` in the `beam_lib` module is confusing: -type beam() :: module() | file:filename() | binary(). It says that the module name can be used to identify the BEAM module to be accessed, but passing in the module name only works if the BEAM file is located in the current working directory because the module is not searched for in the code path. The reason that it is allowed to pass in the module name as an atom is for backward compatibility. A long time ago, atoms instead of strings were used as filenames. For that reason, `filename` and `file` still accept atoms as filenames (although the practice is frown upon). `beam_lib` accepts an atom as the filename for the same reason. To remove the confusion, remove `module()` from the type and the mention of it in the documentation. Code that uses an atom as a filename will still work, but Dialyzer will issue a warning. https://bugs.erlang.org/browse/ERL-696
2018-10-19Merge branch 'maint'Siri Hansen
2018-10-19Merge branch 'siri/cuddle' into maintSiri Hansen
* siri/cuddle: Fix gen_fsm_SUITE:start2/1 to terminate process synchronously Fix sys_SUITE:special_process/1 to terminating process synchronously
2018-10-17Merge branch 'maint'Sverker Eriksson
2018-10-17kernel: Fix spelling error in assert.hrlLukas Larsson
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-08Merge branch 'john/compiler/deterministic-paths/OTP-15245/ERL-706' into maintJohn Högberg
* john/compiler/deterministic-paths/OTP-15245/ERL-706: 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-05Suppress Dialyzer improper list warningsRaimo Niskanen
2018-10-05Update test suite and documentationRaimo Niskanen
2018-10-05Implement exsss (Xorshift116**)Raimo Niskanen
2018-10-04Merge branch 'maint'Sverker Eriksson
2018-10-04Merge PR-1962 from gomoripeti/ms_bit_size OTP-15343Sverker Eriksson
Document bit_size in match-specs and allow in fun2ms
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-10-03Merge branch 'raimo/test-cuddling' into maintRaimo Niskanen
* raimo/test-cuddling: Decrease probability for failed histogram
2018-10-01Merge branch 'maint'Siri Hansen
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-27Update kernel, stdlib and sasl appups for OTP-21.2Siri Hansen
2018-09-25Document bit_size in match-specs and allow in fun2msPéter Gömöri
It is already allowed in match-specs.
2018-09-25Merge branch 'maint'Henrik Nord
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-24Prepare releaseErlang/OTP
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.
2018-09-21Merge PR-1952 from kjellwinblad/ca_tree_pull_requestSverker Eriksson
Add a more scalable ETS ordered_set implementation
2018-09-21Merge branch 'maint'Henrik Nord
2018-09-21Update copyright yearHenrik Nord
2018-09-19Merge branch 'raimo/stdlib/gen_statem-cleanup'Raimo Niskanen
OTP-14737 * raimo/stdlib/gen_statem-cleanup: Improve user's guide on time-outs Clean up and optimize code and doc
2018-09-18Merge pull request #1857 from RaimoNiskanen/raimo/rand-crypto-xoroshiro928Raimo Niskanen
OTP-14461 - New 'rand' algorithm: Xoroshiro928** also for 'crypto' Implement a new 'rand' algorithm named 'exro928ss' and a new 'crypto' plugin for 'rand' named 'crypto_aes'. Both are based on Xoroshiro928** which is derived from Xoroshiro1024** modified to use 58-bit words for performance reasons in the Erlang VM. Xoroshiro1024** has got the Xoroshiro1024 generator and the StarStar scrambler from the 2018 paper "Scrambled Linear Pseudorandom Number Generators" by David Blackman and Sebastiano Vigna. This generator and scrambler combination shows no systematic weaknesses in standard statistical tests as TestU01(BigCrush) and PractRand, unlike the previously used * and + scramblers in the 'rand' module that exhibit statistical weaknesses for the lowest bits. The 'crypto' plugin uses AES-256 as scrambler and the Xoroshiro928 as generator, which gives the same very long period and jump functions as for Xoroshiro928**, but a cryptographically secure scrambler gives absolutely no detectable statistical weaknesses regardless of how the generated numbers are used. The speed of 'exro928ss' is only about 30-50% slower than the default fast 'rand' algorithm, but the state is roughly the double and it produces about 8 times the garbage per iteration. The speed of 'crypto_aes' is about half (amortized) that of the default fast 'rand' algorithm which is fast and thanks to doing encryption in batches caching the result. Hence the state is much larger.
2018-09-18Merge branch 'maint'Sverker Eriksson
2018-09-18Merge branch 'siri/cuddle' into maintSiri Hansen
* siri/cuddle: [logger] Skip app level test if app cannot be loaded Terminate nodes after failed test cases in erl_distribution_SUITE Skip performance test on build types other than 'opt'
2018-09-18Merge branch 'maint'Hans Bolinder
* maint: stdlib: Allow lists with binaries in the Format argument
2018-09-18Merge branch 'hasse/stdlib/binary_in_format/OTP-15304' into maintHans Bolinder
* hasse/stdlib/binary_in_format/OTP-15304: stdlib: Allow lists with binaries in the Format argument
2018-09-18Merge branch 'maint'Sverker Eriksson
2018-09-17test ets doc updatesverker-ets-patch-1Sverker Eriksson
2018-09-17stdlib: Allow lists with binaries in the Format argumentHans Bolinder
As a consequence of some refactoring (OTP-14983, option 'chars_limit'), the Format argument of io_lib:format() no longer accepts binaries in lists in Erlang/OTP 21.0. Note that if Format is not of type io:format(), control sequences in Format are ignored. This can result in unpredictable behaviour if, for example, the output of io_lib:format() is used as Format: if the output happens to be a string(), then control sequences are interpreted, otherwise not. A check that Format is of type io:format() will likely be introduced in Erlang/OTP 22.0. That will probably mean work for some users, but considering how unpredictable io_lib:format() is, we should try to fix that.
2018-09-17Merge branch 'maint'Siri Hansen
2018-09-17Skip performance test on build types other than 'opt'Siri Hansen