Age | Commit message (Collapse) | Author |
|
* siri/kernel/logger/OTP-13295:
Add documentation of the built-in logger handlers
Catch badarg in logger:get_format_depth/0
Add chars_limit option to logger_formatter
Don't kill logger process until all other processes are dead
Set call timeout for logger_server to infinity
Update primary bootstrap
Test cuddle for logger
Update cth_log_redirect to a logger handler
Start using logger internally in kernel and stdlib
Remove error_logger process and add logger process
Add logger
|
|
* hasse/stdlib/rfc3339_datetime/OTP-14764:
stdlib: Add RFC 3339 functions to module calendar
|
|
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.
|
|
[stdlib/sys.erl] Fix sys module's debug statistics not including the out message count when using gen_server:call/2.
OTP-15047
|
|
Functions for converting between RFC 3339 strings and system time
are added.
Options are lists, but we are considering using maps instead. If we
change, it will happen after Erlang/OTP 21.0-rc1 is released.
|
|
* hasse/stdlib/calendar_systemtime/OTP-13413:
stdlib: Add system time functions to module calendar
|
|
|
|
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.
|
|
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.
|
|
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).
|
|
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'.
|
|
* 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
|
|
The check is used by evaluating modules such as erl_eval.
An example: "if map_size(#{}) =:= 0 -> ok end.".
|
|
* 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
|
|
Currently, in sys:stat/2, the message out only count for system events with format
{out, Msg, To}. However, the gen_server:reply/5 will call sys:handle_debug/4
with format {out, Reply, To, State}. That will make the message out count fail
to pattern matching.
Also update sys_SUITE.erl and relevant docs.
|
|
|
|
and not the name. For more sane named table semantics.
Applies to both select/1 continuation and trap context.
|
|
Deprecate erlang:get_stacktrace/1
|
|
Those warnings don't make sense any more since erlang:get_stacktrace/0
is now deprecated.
|
|
for erts, stdlib, kernel and runtime_tools.
|
|
|
|
[ERL-557] add is_empty/1 to sets and ordsets
OTP-14996, ERL-557, PR-1703
|
|
|
|
* maint:
Updated OTP version
Update release notes
Update version numbers
ssh: Fix bad spec for double_algs() in ssh.hrl
Test event insert from init
Fix init to allow all actions
Conflicts:
OTP_VERSION
|
|
statistics(runtime) does not seem to work on some virtual machines.
|
|
Implementation of true asynchronous signaling between processes
|
|
Communication between Erlang processes has conceptually always been
performed through asynchronous signaling. The runtime system
implementation has however previously preformed most operation
synchronously. In a system with only one true thread of execution, this
is not problematic (often the opposite). In a system with multiple threads
of execution (as current runtime system implementation with SMP support)
it becomes problematic. This since it often involves locking of structures
when updating them which in turn cause resource contention. Utilizing
true asynchronous communication often avoids these resource contention
issues.
The case that triggered this change was contention on the link lock due
to frequent updates of the monitor trees during communication with a
frequently used server. The signal order delivery guarantees of the
language makes it hard to change the implementation of only some signals
to use true asynchronous signaling. Therefore the implementations
of (almost) all signals have been changed.
Currently the following signals have been implemented as true
asynchronous signals:
- Message signals
- Exit signals
- Monitor signals
- Demonitor signals
- Monitor triggered signals (DOWN, CHANGE, etc)
- Link signals
- Unlink signals
- Group leader signals
All of the above already defined as asynchronous signals in the
language. The implementation of messages signals was quite
asynchronous to begin with, but had quite strict delivery constraints
due to the ordering guarantees of signals between a pair of processes.
The previously used message queue partitioned into two halves has been
replaced by a more general signal queue partitioned into three parts
that service all kinds of signals. More details regarding the signal
queue can be found in comments in the erl_proc_sig_queue.h file.
The monitor and link implementations have also been completely replaced
in order to fit the new asynchronous signaling implementation as good
as possible. More details regarding the new monitor and link
implementations can be found in the erl_monitor_link.h file.
|
|
stdlib: Add function lists:search/2
|
|
|
|
Allow multiple modifier characters in io:format control sequences
OTP-14971
|
|
This makes it possible to print unicode atoms at the same time as
suppressing detection of printable lists.
|
|
This is essentially PR 102, https://github.com/erlang/otp/pull/102.
The OTP Technical Board decided to change the name of the function to
search/2.
|
|
Make io_lib:unscan_format/1 work with pad char and default precision
OTP-14958
|
|
Improve handling of maps. Addendum to b57e890.
|
|
|
|
* maint:
ERL-558 Add the missing function clause for string:prefix (#1702)
|
|
OTP-14942
|
|
* peterdmv/stdlib/improve_uri_string_api/OTP-14910:
stdlib: Update uri_string documentation (HTML 5.2)
stdlib: Improve URI normalization in uri_string
Change-Id: I1b85e125ae3bc64e04b04ab884ca603217123167
|
|
* maint:
Skip testing unavailable interfaces in inet_SUITE:getifaddrs
Make re_SUITE:sub_binaries less unstable
|
|
The small sub-binary conversion trick in the GC broke this test
pretty often on some machines.
|
|
Add ets:whereis/1 for resolving table names -> tid()
|
|
* raimo/stdlib/rand-polish-stat-tests:
Decrease tolerance a wee bit
Repeat stat tests to only fail for systematic errors
Fix histogram and outlier checks
|
|
|
|
|
|
|
|
* maint-20:
Updated OTP version
Update release notes
Update version numbers
erts: Add system_flags(erts_alloc,"+M?sbct *")
erts: Add age order first fit allocator strategies
erts: Refactor erl_ao_firstfit_alloc
erts: Add migration options "acnl" and "acfml"
kernel: Add os:cmd/2 with max_size option
erts: Add more stats for mbcs_pool
erts: Fix alloc_SUITE:migration
stdlib: Make ets_SUITE memory check try again
erts: Improve carrier pool search
erts: Improve alloc_SUITE:migration
erts: Refactor carrier dealloc migration
|
|
into 'sverker/master/alloc-n-migration/ERIERL-88'
|
|
into 'sverker/maint-20/alloc-n-migration/ERIERL-88'
OTP-14915
OTP-14916
OTP-14917
OTP-14918
|
|
- normalize/1 accepts uri_map() as input type and can return
error() if URI parsing fails.
- Added normalize/2 that can return a normalized uri_map().
Change-Id: Icdd2e60c15019d3eec2e7bc994cae03066a79194
|
|
* hasse/no_get_stacktrace/OTP-14861:
erts: Update abstract format doc with stacktrace variable
wx: Do not call erlang:get_stacktrace()
tools: Do not call erlang:get_stacktrace()
stdlib: Do not call erlang:get_stacktrace()
sasl: Do not call erlang:get_stacktrace()
runtime_tools: Do not call erlang:get_stacktrace()
reltool: Do not call erlang:get_stacktrace()
parsetools: Do not call erlang:get_stacktrace()
observer: Do not call erlang:get_stacktrace()
mnesia: Do not call erlang:get_stacktrace() (cont)
mnesia: Do not call erlang:get_stacktrace()
kernel: Do not call erlang:get_stacktrace()
inets: Do not call erlang:get_stacktrace()
eunit: Do not call erlang:get_stacktrace()
et: Do not call erlang:get_stacktrace()
dialyzer: Do not call erlang:get_stacktrace()
debugger: Do not call erlang:get_stacktrace()
debugger: Do not try to restore stacktrace
common_test: Do not call erlang:get_stacktrace()
|