aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib
AgeCommit message (Collapse)Author
2017-04-21Implement Xoroshiro116+ and improve statisticalsRaimo Niskanen
Implement Xoroshiro116+ as 'exrop' with fixes. Deprecate all old algorithms but reincarnate 'exs1024' as 'exs1024s' and 'exsplus' as 'exsp' with fixes. Fixes: * Avoid skew for uniform integers caused by using a simple 'rem' operation for range confinement. Correctness requires retry with new random value for an unfortunate first value. * Implement a correct algorithm that collects enough random bits for ranges larger than the generator's precision. * Fix uniform density for floats by acquiring 53 bits then multiplying with 2.0^(-53) which produces floats on the form N * 2.0^(-53).
2017-04-04Merge branch 'g-andrade/strong-random-numbers/PR-1367/OTP-14317'Raimo Niskanen
* g-andrade/strong-random-numbers/PR-1367/OTP-14317: Clean up documentation and test cases Attempt faster approach to strong random floats Allow for crypto upgrades when using rand plugin fixup! Support cryptographically strong rand plugin fixup! Support cryptographically strong rand plugin fixup! Support cryptographically strong rand plugin fixup! Support cryptographically strong rand plugin No longer expose strong_rand_(range|float) Support cryptographically strong rand plugin Restyle crypto strong numeric generators for usage in rand Support generation of strong random numbers
2017-04-04Clean up documentation and test casesRaimo Niskanen
2017-04-03Merge PR-1076 from g-andrade/feature/ets_conditional_insert OTP-14319Sverker Eriksson
ETS: Allow for conditional insertions
2017-04-03stdlib: Fix xmllint warningsHans Bolinder
Commit d2be06f introduced xmllint warnings.
2017-03-24Fix double hit bug of select/3 with bound keySverker Eriksson
2017-03-23ets: Polish select_replace/2 documentationGuilherme Andrade
2017-03-22Add more complete key-safety checkSverker Eriksson
2017-03-22Reject unsafe matchspecs on ets:select_replace/2Guilherme Andrade
Preemptively fail operation with badarg if the replacement object might have a different key.
2017-03-22Disable ets:select_replace/2 for bagsGuilherme Andrade
The existing implementation presented both semantic inconsistencies and performance issues.
2017-03-22Add unit tests for ets:select_replace/2Guilherme Andrade
2017-03-22ETS: Allow for matchspec-based replacementGuilherme Andrade
2017-03-22fixup! Support cryptographically strong rand pluginGuilherme Andrade
Minimize use of guards.
2017-03-22fixup! Support cryptographically strong rand pluginGuilherme Andrade
Fix plugin alg type
2017-03-22Merge branch 'sverker/ets-table-identifiers/OTP-14094'Sverker Eriksson
* sverker/ets-table-identifiers: observer: Polish crashdump viewer for ETS observer: Polish Table Viewer tab stdlib: Remove ets_SUITE:memory_check_summary erts: Improve reduction count during table cleanup erts: Cleanup table status bits erts: Remove now redundant 'id' from DbTableCommon erts: Remove meta_main_tab erts: Pass tid argument down to trapping functions erts: Print table id as ref in crashdump and break menu erts: Replace meta_pid_to{_fixed}_tab with linked lists erts: Correct erl_rbtree comments about yielding erts: Add ERTS_RBT_YIELD_STAT_INIT to erl_rbtree Fix node_container_SUITE list_to_ref/1 Implement ets:all() using scheduler specific data Rename fixation count in ets table to avoid confusion Introduce references as table identifiers
2017-03-22stdlib: Remove ets_SUITE:memory_check_summarySverker Eriksson
and let each test case fail, like it was before. Seems growing/shrinking meta tables was causing the sporadic failed memory checks.
2017-03-22erts: Replace meta_pid_to{_fixed}_tab with linked listsSverker Eriksson
from process psd through all owned/fixed tables. As meta_pid_to{_fixed}_tab maps to slot in meta_main_tab which is planned for destruction. In this commit we no longer seize table lock while freeing the table (free_table_cont) as it's not needed and makes the code a bit simpler. Any concurrent operation on the table will only access lock, owner and status and then bail out.
2017-03-22Merge pull request #1383 from shezarkhani/patch-1Björn Gustavsson
Minor document fix for proplists
2017-03-21Merge branch 'ingela/ssl/remove-deprecated'Ingela Anderton Andin
* ingela/ssl/remove-deprecated: ssl: Remove deprecated functions
2017-03-21Merge branch 'ingela/crypto/deprecate/rand_uniform'Ingela Anderton Andin
* ingela/crypto/deprecate/rand_uniform: crypto: Deprecate crypto:rand_uniform/2 as it is not cryptographically strong
2017-03-21Merge branch 'ingela/corrct-otp-internal'Ingela Anderton Andin
* ingela/corrct-otp-internal: ssl, public_key, crypto: Change deprecated to removed
2017-03-20Minor document fix for proplistsSasan Hezarkhani
2017-03-20crypto: Deprecate crypto:rand_uniform/2 as it is not cryptographically strongIngela Anderton Andin
rand module should be used if not cryptographically strong is required. If cryptographically strong is required, new cryptographically strong functions should be added to crypto.
2017-03-20ssl, public_key, crypto: Change deprecated to removedIngela Anderton Andin
2017-03-18Support cryptographically strong rand pluginGuilherme Andrade
2017-03-17Update the documentation regarding Unicode atomsBjörn Gustavsson
2017-03-16ssl: Remove deprecated functionsIngela Anderton Andin
2017-03-16Don't allow module names with non-latin1 charactersBjörn Gustavsson
In OTP 20, all Unicode characters are allowed in atoms. However, we have decided that we will not allow non-latin1 characters in module names in OTP 20. This restriction may be lifted in a future major release of OTP. Enforce the restriction in erl_lint, so that it will be a compilation error to have a module name containing non-latin1 characters. That means that tools such as debugger, xref, dialyzer, syntax_tools, and so on, do not have to be modified to handle non-latin1 module names.
2017-03-15Merge branch 'bjorn/stdlib/erl_tar'Björn Gustavsson
* bjorn/stdlib/erl_tar: erl_tar: Close files after reading from a tar file
2017-03-15Merge pull request #1371 from aggelgian/fix-otp-internalBjörn Gustavsson
Fix unhandled exceptions in otp_internal module
2017-03-14Merge branch 'maint'Rickard Green
* maint: Updated OTP version Prepare release Conflicts: OTP_VERSION lib/typer/doc/src/notes.xml lib/typer/vsn.mk
2017-03-14Prepare releaseErlang/OTP
2017-03-14Merge branch 'hasse/fix_erl_anno_use'Hans Bolinder
* hasse/fix_erl_anno_use: parsetools: Fix handling of locations and annotations diameter: Fix handling of locations and annotations kernel: Fix handling of locations and annotations compiler: Fix handling of locations and annotations eunit: Fix handling of locations and annotations Update preloaded erts: Fix handling of locations and annotations dialyzer: Fix handling of annotations in a test debugger: Fix handling of locations and annotations stdlib: Extend functions in erl_parse to handle form_info() stdlib: Fix handling of locations and annotations erts: Correct the documentation of abstract end-of-file stdlib: Add debug tests to the erl_parse module stdlib: improve the erl_anno module's debug tests stdlib: Improve the erl_pp module's debug tests
2017-03-12Fix return value of obsolete_1(rpc,safe_multi_server_call,A)Aggelos Giantsios
The following calls: - otp_internal:obsolete(rpc, safe_multi_server_call, 2). - otp_internal:obsolete(rpc, safe_multi_server_call, 3). threw an unhandled exception. The return value has been amended to match the relevant pattern of obsolete/3.
2017-03-10Update copyright yearRickard Green
2017-03-10erl_tar: Close files after reading from a tar fileBjörn Gustavsson
Also let the test suite verify that all files that are opened will be closed before the end of each test case. aa0c4b0df7cdc7 introduced the file descriptor leak.
2017-03-09Merge branch 'maint'Siri Hansen
Conflicts: lib/kernel/src/kernel.appup.src lib/stdlib/src/stdlib.appup.src
2017-03-08stdlib: Extend functions in erl_parse to handle form_info()Hans Bolinder
For convenience, for instance in parse transforms, the different functions handling erl_anno:anno() can handle {eof, Location}, and are documented to handle all form_info().
2017-03-08stdlib: Fix handling of locations and annotationsHans Bolinder
2017-03-08stdlib: Add debug tests to the erl_parse moduleHans Bolinder
2017-03-08stdlib: improve the erl_anno module's debug testsHans Bolinder
2017-03-08stdlib: Improve the erl_pp module's debug testsHans Bolinder
2017-03-08Update appups in kernel and stdlib for OTP-19.3Siri Hansen
2017-03-03Merge branch 'maint'Raimo Niskanen
2017-03-03Merge pull request #1359 from myronmarston/fix-length-typoBjörn Gustavsson
Fix typos: lenght -> length
2017-03-03Merge branch 'raimo/kernel/gen_statem-progress/OTP-14114' into maintRaimo Niskanen
* raimo/kernel/gen_statem-progress/OTP-14114: Make code_change/4 optional Implement fallback for terminate/3 Clarify code_change and callback mode change Stop pampering with stacktraces Clean up timer handling Remove event timer optimization Clean up timer handling Reduce number of loop variables hence code mass Optimize by using async cancel_timer Bugfix: callback mode not cached after code change Implement repeat_state and repeat_state_and_data Correct type checking function for action {next_event,,} Change arity of type to init_result/1
2017-03-02Implement ets:all() using scheduler specific dataRickard Green
2017-03-02Merge branch 'maint'Hans Bolinder
* maint: typer: Update runtime dependencies dialyzer: Update runtime dependencies Correct documentation of get_modules message
2017-03-02Merge branch 'siri/sys/get_modules/ERL-367/OTP-14248' into maintSiri Hansen
* siri/sys/get_modules/ERL-367/OTP-14248: Correct documentation of get_modules message
2017-03-01Fix typos: lenght -> lengthMyron Marston