aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-04-26erts: Cleanup some codeSverker Eriksson
2018-04-26Merge branch 'rickard/dirty-schedulers-test-fix/OTP-15046'Rickard Green
* rickard/dirty-schedulers-test-fix/OTP-15046: Do not run tests that conflicts with dirty schedulers test
2018-04-26Merge branch 'siri/upgrade_SUITE/stop-inets-before-start-ftp'Siri Hansen
* siri/upgrade_SUITE/stop-inets-before-start-ftp: Add correction of relup when upgrading from 20-21 with inets and ftp/tftp
2018-04-26[stdlib/sys]: install one debug function more times (#1781)Pouriya
Allow installing multiple instances of sys debug function This commit solves a bug which allowed installing {Fun,State} as sys debug function even if Fun was already installed. This happened in the case when the current State of the debug fun was undefined. Also, the new format {Id,Fun,State} of debug functions can be installed, allowing multiple instances of the same fun.
2018-04-26Merge pull request #1759 from sunboshan/sys-fixSiri Hansen
[stdlib/sys.erl] Fix sys module's debug statistics not including the out message count when using gen_server:call/2. OTP-15047
2018-04-26Merge branch 'hasse/stdlib/calendar_systemtime/OTP-13413'Hans Bolinder
* hasse/stdlib/calendar_systemtime/OTP-13413: stdlib: Add system time functions to module calendar
2018-04-26Merge branch 'hans/crypto/EVP_DH_key/OTP-14864'Hans Nilsson
* hans/crypto/EVP_DH_key/OTP-14864: crypto: Test case with a failing Pub/Priv/P/G combination This quadruple is from a failing test when trying to EVP-ify the dh functions. crypto: Use EVP-api in dh_compute_key_nif and dh_generate_key_nif
2018-04-26crypto: Test case with a failing Pub/Priv/P/G combinationHans Nilsson
This quadruple is from a failing test when trying to EVP-ify the dh functions.
2018-04-26crypto: Use EVP-api in dh_compute_key_nif and dh_generate_key_nifHans Nilsson
2018-04-26Merge branch 'rickard/process_info/OTP-14966'Rickard Green
* rickard/process_info/OTP-14966: Restore merge of signal queues in queue_messages() if main lock is held Fix message tracing
2018-04-26Merge pull request #1797 from bjorng/bjorn/compiler/fold-apply/ERL-614Björn Gustavsson
Rewrite a call of a literal external fun to a direct call OTP-15044
2018-04-26Merge branch 'bjorn/compiler/misc'Björn Gustavsson
* bjorn/compiler/misc: beam_validator: Clear X registers in wait_timeout sys_core_fold: Eliminate crash for map update in guard
2018-04-26Merge branch 'hans/ssh/cuddle_tests'Hans Nilsson
* hans/ssh/cuddle_tests: ssh: Better logging in test case
2018-04-26Merge branch 'hans/ssh/doc_changes/OTP-15030'Hans Nilsson
* hans/ssh/doc_changes/OTP-15030: public_key: Add markers for private and public keys crypto: Add marker for engine_ref ssh: Use -spec and -type for documentation generation
2018-04-25public_key: Add markers for private and public keysHans Nilsson
2018-04-25crypto: Add marker for engine_refHans Nilsson
2018-04-25ssh: Use -spec and -type for documentation generationHans Nilsson
2018-04-25Merge branch 'hasse/stdlib/chars_limit_io/OTP-14983'Hans Bolinder
* hasse/stdlib/chars_limit_io/OTP-14983: stdlib: Modify the printing of map associations with wWpP stdlib: Introduce characters limit of formated strings stdlib: Modify ~w/~W when number of characters is limited stdlib: io_lib{_pretty}: Avoid tuple_to_list when possible stdlib: Introduce characters limit of formatted strings
2018-04-25stdlib: Modify the printing of map associations with wWpPHans Bolinder
Use the same depth for all (printed) elements of a map. Since the order of keys can vary when printing a map--maps:iterator/1 and maps:next/1 are used--it is more consistent to print all associations with the same depth. If the associations printed are limited by the depth, the selection of associations is arbitrary, as before.
2018-04-25stdlib: Introduce characters limit of formated stringsHans Bolinder
Inspiration from module lager_format. Also some improvements of Unicode handling. io_lib:format/3 and io_lib:fwrite/3 are new functions. The representation of the options is a list, but we are considering using a map instead. If we change, it will happen after Erlang/OTP 21.0-rc1 is released.
2018-04-25Merge PR-1794 from sverker/hipe-remove-MAP_NORESERVE-needSverker Eriksson
Remove config test of MAP_NORESERVE for hipe on x86_64
2018-04-25Do not run tests that conflicts with dirty schedulers testRickard Green
2018-04-25Merge branch 'hans/ssh/type_changes/OTP-15002'Hans Nilsson
* hans/ssh/type_changes/OTP-15002: ssh: Changes suggested by dialyzer ssh: New -spec and -type
2018-04-25ssh: Changes suggested by dialyzerHans Nilsson
2018-04-25ssh: New -spec and -typeHans Nilsson
2018-04-25ssh: Better logging in test caseHans Nilsson
2018-04-25Restore merge of signal queues in queue_messages() if main lock is heldRickard Green
2018-04-25Rewrite a call of a literal external fun to a direct callBjörn Gustavsson
Rewrite calls such as: (fun erlang:abs/1)(-42) to: erlang:abs(-42) While we are at it, also add rewriting of apply/2 with a fixed number of arguments to a direct call of the fun. For example: apply(F, [A,B]) would be rewritten to: F(A, B) https://bugs.erlang.org/browse/ERL-614
2018-04-25stdlib: Modify ~w/~W when number of characters is limitedHans Bolinder
A bug fix: limited maps end with "...", not "...=>...". A modification: wW separate pairs with " => ", not "=>". When the output is limited on number of characters, the term is balanced by wW the same way as is done with pP (see commit bc38638).
2018-04-25stdlib: io_lib{_pretty}: Avoid tuple_to_list when possibleHans Bolinder
2018-04-25stdlib: Introduce characters limit of formatted stringsHans Bolinder
The name of the io_lib_pretty:print/2 option 'max_chars' is changed to 'line_max_chars' (used by module shell only). The new option for limiting the number of returned characters of io_lib_pretty:print() is called 'chars_limit'.
2018-04-25Merge branch 'hasse/stdlib/map_guards_shell/OTP-15035/ERL-613'Hans Bolinder
* hasse/stdlib/map_guards_shell/OTP-15035/ERL-613: erts: Correct abstract format doc regarding map creation stdlib: Correct the linter's check of map guard expressions
2018-04-25Merge pull request #1785 from richcarl/append-not-concatHans Bolinder
Do not use lists:concat where lists:append is intended
2018-04-25beam_validator: Clear X registers in wait_timeoutBjörn Gustavsson
Help us find more compiler bugs.
2018-04-25sys_core_fold: Eliminate crash for map update in guardBjörn Gustavsson
sys_core_fold would crash when attempting to optimize this code: t() when (#{})#{}-> c.
2018-04-25Update primary bootstrapBjörn Gustavsson
2018-04-25Update preloaded modulesBjörn Gustavsson
2018-04-25Merge branch 'map-get-bif' of git://github.com/michalmuskala/otpBjörn Gustavsson
* 'map-get-bif' of git://github.com/michalmuskala/otp: Introduce map_get guard-safe function OTP-15037
2018-04-25Merge pull request #1779 from ↵Ingela Andin
IngelaAndin/ingela/ssl/hello-pause/ERL-169/OTP-14372 Add new API functions to enable smoother user customizations based on TLS hello extensions
2018-04-25Merge branch 'lukas/erts/poll-thread/OTP-14346'Lukas Larsson
* lukas/erts/poll-thread/OTP-14346: erts: nif resource stop from poll-thread is a indirect call
2018-04-25Merge branch 'lukas/erts/dump_SUITE_fix'Lukas Larsson
* lukas/erts/dump_SUITE_fix: erts: Increase file read timeout for signal_abort test
2018-04-24Merge branch 'john/erts/fix-lcnt-toggle-test'John Högberg
* john/erts/fix-lcnt-toggle-test: Disregard locks that can't be toggled in lcnt_SUITE
2018-04-24Merge pull request #1790 from jhogberg/john/erts/more-alloc-info/OTP-14961John Högberg
Improve memory instrumentation OTP-15024 OTP-14961
2018-04-24erts: Correct abstract format doc regarding map creationHans Bolinder
2018-04-24stdlib: Correct the linter's check of map guard expressionsHans Bolinder
The check is used by evaluating modules such as erl_eval. An example: "if map_size(#{}) =:= 0 -> ok end.".
2018-04-24Merge branch 'raimo/stdlib/gen_statem-dev/OTP-14015'Raimo Niskanen
* raimo/stdlib/gen_statem-dev/OTP-14015: Fix after feedback Improve pointer to User's Guide Fix after feedback on 'When to use' Add a 'When to use' section Fix timeout parsing and doc feedback Improve doc, change images to .svg erl_docgen: Implement width in image tag Update User's Guide and pointers to it Improve error reasons from state enter call
2018-04-24Merge branch 'maint'Hans Nilsson
* maint: Updated OTP version Prepare release ssh: Fix server crashes for exit-normal signals
2018-04-24Merge branch 'maint-18' into maintHans Nilsson
* maint-18: Updated OTP version Prepare release ssh: Fix server crashes for exit-normal signals Conflicts: OTP_VERSION lib/ssh/doc/src/notes.xml lib/ssh/src/ssh_connection_handler.erl lib/ssh/vsn.mk otp_versions.table
2018-04-24Introduce map_get guard-safe functionMichał Muskała
Rationale Today all compound data types except for maps can be deconstructed in guards. For tuples we have `element/2` and for lists `hd/1` and `tl/1`. Maps are completely opaque to guards. This means matching on maps can't be abstracted into macros, which is often done with repetitive guards. It also means that maps have to be always selected whole from ETS tables, even when only one field would be enough, which creates a potential efficiency issue. This PR introduces an `erlang:map_get/2` guard-safe function that allows extracting a map field in guard. An alternative to this function would be to introduce the syntax for extracting a value from a map that was planned in the original EEP: `Map#{Key}`. Even outside of guards, since this function is a guard-BIF it is more efficient than using `maps:get/2` (since it does not need to set up the stack), and more convenient from pattern matching on the map (compare: `#{key := Value} = Map, Value` to `map_get(key, Map)`). Performance considerations A common concern against adding this function is the notion that "guards have to be fast" and ideally execute in constant time. While there are some counterexamples (`length/1`), what is more important is the fact that adding those functions does not change in any way the time complexity of pattern matching - it's already possible to match on map fields today directly in patterns - adding this ability to guards will niether slow down or speed up the execution, it will only make certain programs more convenient to write. This first version is very naive and does not perform any optimizations.
2018-04-24Merge branch 'lukas/erl_docgen/add_github_contrib_link/OTP-14979'Lukas Larsson
* lukas/erl_docgen/add_github_contrib_link/OTP-14979: erl_docgen: Fix title link with '?'