aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/src
AgeCommit message (Collapse)Author
2017-03-22ETS: Allow for matchspec-based replacementGuilherme Andrade
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-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-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-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 '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-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 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-01Merge branch 'maint'Björn Gustavsson
* maint: zip: Eliminate leak of open file after crash zip: Don't crash when a zip file has an Unix extra header
2017-03-01Merge pull request #1358 from bjorng/bjorn/stdlib/fix-zip-bugs/OTP-14189Björn Gustavsson
zip: Fix bugs ERL-348 and ERL-349 OTP-14246
2017-03-01Merge pull request #1354 from JesseStimpson/ERL-366Björn Gustavsson
stdlib: Fix mime_decode/1 binary matching performance OTP-14245
2017-03-01Correct documentation of get_modules messageSiri Hansen
2017-02-28Merge branch 'maint'Hans Bolinder
* maint: stdlib: Add maps to term traversal
2017-02-28zip: Eliminate leak of open file after crashBjörn Gustavsson
Make sure that zip:extract() and zip:create() closes the zip file if there is an error. ERL-349
2017-02-28zip: Don't crash when a zip file has an Unix extra headerBjörn Gustavsson
There is unfinished code in the zip module to handle the extra field in the central-directory header for each file. The code to extract an Unix extra subfield is incorrect and always causes a bad_unix_extra_field error. A further flaw in the code is that it expects that there is only a single subfield. Correcting the code for extracting extra subfields will not do any good, because the extracted data is ignored. In fact, not even the file times extracted from DOS file times are used for some reason. Therefore, don't correct the unfinished code. Remove it completely. (If needed, extending zip to use file times and to use the information in the extra field should be done in a major release, not in a maintenance release.) ERL-348
2017-02-27stdlib: Fix mime_decode/1 binary matching performanceJesse Stimpson
Symptom: Throughput of base64:mime_decode/1 significantly lower than base64:decode/1. Problem: tail_contains_more/2 prevents compiler from delaying creation of sub binaries. Solution: Restructure mime_decode_binary/2 to use binary matching best practices from the Efficiency Guide. See ERL-366
2017-02-27Merge branch 'egil/pretty-print-maps-smaller/OTP-14239'Björn-Egil Dahlberg
* egil/pretty-print-maps-smaller/OTP-14239: stdlib: Use erts_internal:maps_to_list/2 in io_lib_pretty Update preloaded erts_internal.beam erts: Test erts_internal:maps_to_list/2 erts: Introduce erts_internal:maps_to_list/2
2017-02-27stdlib: Add maps to term traversalHans Bolinder
2017-02-24Merge branch 'maint'Björn Gustavsson
* maint: filename: Add safe_relative_path/1 Conflicts: lib/stdlib/src/filename.erl
2017-02-24Merge pull request #1350 from bjorng/bjorn/stdlib/safe-relative-path/OTP-14215Björn Gustavsson
filename: Add safe_relative_path/1 OTP-14215
2017-02-24Merge branch 'bjorn/stdlib/misc-fixes'Björn Gustavsson
* bjorn/stdlib/misc-fixes: c: Reintroduce support for non-list options in c/2 c: Remove unused import of lists:concat/1
2017-02-23stdlib: Use erts_internal:maps_to_list/2 in io_lib_prettyBjörn-Egil Dahlberg
2017-02-23Make code_change/4 optionalRaimo Niskanen
2017-02-23Implement fallback for terminate/3Raimo Niskanen
2017-02-22stdlib: Simplify error handling of the sofs moduleHans Bolinder
Atoms ('badarg', 'type_mismatch', &c) are used as errors instead of tuples containing the parameters. This makes it possible for the garbage collector to reclaim memory earlier. Since the exact format of error tuples is undocumented no release note is deemed necessary.
2017-02-22Merge branch 'maint'Hans Bolinder
* maint: [xmerl] Remove faulty throws [xmerl] Fix XML "well-formedness" bug i SAX parser [xmerl] Correct bug handling multiple documents on a stream stdlib: Improve pretty-printing of terms with maps Conflicts: lib/stdlib/test/io_SUITE.erl
2017-02-22Stop pampering with stacktracesRaimo Niskanen
2017-02-22c: Reintroduce support for non-list options in c/2Björn Gustavsson
Before 0eb45e21d40 it was possible to write (for example): c(m, dcore) instead of the more verbose: c(m, [dcore]) Reintroduce this convenient shortcut.
2017-02-22Clean up timer handlingRaimo Niskanen
2017-02-22c: Remove unused import of lists:concat/1Björn Gustavsson
2017-02-21stdlib: Improve pretty-printing of terms with mapsHans Bolinder
As of committing this branch maps:fold/3 calls maps:to_list/1, which means that the time and memory needed for printing maps is not always proportional to the size of the generated deep list of characters.
2017-02-21filename: Add safe_relative_path/1Björn Gustavsson
Add safe_relative_path/1 to guard against directory traversal attacks. It either returns a shorter path without any ".." or "." components, or 'unsafe' if an ".." component would climb up above the root of the relative path. Here are a few examples: safe_relative_path("a/b/..") => "a" safe_relative_path("a/..") => "" safe_relative_path("a/../..") => unsafe safe_relative_path("/absolute/path") => unsafe The returned path can be used directly or combined with an absolute path using filename:join/2.