Age | Commit message (Collapse) | Author |
|
This test suite was used during early development of Logger, but is no
longer upto date.
|
|
|
|
Log events issued via error_logger:info_msg or
error_logger:info_report are now forwarded to Logger with level
'notice' instead of 'info'.
Log events issued by gen_* behaviours are also changed from level
'info' to level 'notice'.
Progress reports are still 'info', and can therefore easily be
included/excluded by changing the primary log level. By default, they
are not logged.
|
|
Conflicts:
lib/kernel/src/logger_disk_log_h.erl
lib/kernel/src/logger_std_h.erl
|
|
Module and Id are now always included as fields in Config, so these
are no longer returned as separate elements.
|
|
And add field 'module' in handler config.
|
|
Added:
* logger:get_config() - replaces i(), returns all Logger
configuration, i.e. primary and handler config, and module levels
* logger:get_handler_ids() -> [HandlerId]
* logger:get_handler_config() -> [{HandlerId,Module,Config}]
Removed:
* logger:i/1, will probably be replaced in a later release.
|
|
Function names changed:
get/set/update_logger_config -> get/set/update_primary_config
add/remove_logger_filter -> add/remove_primary_filter
|
|
The warning map was added to allow backwards compatiblity with
error_logger event handlers that were not prepared to receive warning
reports. error_logger still uses this internally, if legacy error
logger event handlers are installed. But Logger does not use it for
new Logger handlers.
|
|
* Nested metadata keys are now expressed as list of atoms (was earlier tuples).
* If-exist is expressed as:
{Key,IfExist,Else}
Key :: atom() | [atom()]
IfExist :: template()
Else :: template()
|
|
New default for handlers is 'all'.
|
|
|
|
* Level can now be set/unset for multiple modules in one call.
* Added functions get_module_level/0 and get_module_level/1.
|
|
|
|
|
|
|
|
logger_std_h:filesync/1 -----> logger_std_h:sync/1
logger_disk_log_h:disk_log_sync/1 -----> logger_disk_log_h:sync/1
|
|
* ingela/ssl/verify-hostname-customize/OTP-15102:
ssl: Add option customize_hostname_check
|
|
|
|
* hasse/common_test/remove_edoc_comments:
common_test: Remove EDoc comments in internal modules
common_test: Remove EDoc documentation in internal modules
common_test: Remove EDoc documentation in public modules
|
|
* hasse/eliminate_lib_module/OTP-15072/ERL-634:
stdlib: Move eval_str/1 from mod_esi to erl_eval
|
|
Revert "Run the sharing optimisation in beam_jump until fixpoint"
|
|
Fix name capture problem in sys_core_fold
OTP-15115
|
|
See also https://bugs.erlang.org/browse/ERL-634.
The utility program `erl_call' in erl_interface used to call
lib:eval_str/1, which is no longer present in Erlang/OTP 21.0.
The lib module was eliminated in OTP-15072, see also
https://github.com/erlang/otp/pull/1786.
|
|
|
|
|
|
|
|
|
|
* maint:
Updated OTP version
Prepare release
inets: Gracefully handle bad headers
|
|
* maint-20:
Updated OTP version
Prepare release
inets: Gracefully handle bad headers
[erl_docgen] Update version
[erl_docgen] Add missing file db_funcs.xsl to file list
erts: Fix bug in system_profile
erts: Fix bug in enif_binary_to_term for immediates
|
|
Conflicts:
lib/ssh/test/ssh_algorithms_SUITE.erl
|
|
|
|
* ingela/inets/header-handling/OTP-15092:
inets: Gracefully handle bad headers
|
|
* dgud/stdlib/string-case-bin-bug:
Fix *case bugs for binaries
|
|
Missing space in gen_event doc
|
|
We have found cases where compilation drastically slows down
due to this commit. We are working on a minimal cases and plan
to bring this patch back once we can work our the performance
issues.
This reverts commit f7c9383f4c3d4b6819b5ba4d54c7093df806fe4a.
|
|
ERL-629 Do not free() module buffer until it has been used
|
|
* sverker/ets-count/OTP-14987:
erts,stdlib: Improve docs about obsolete ets_limit
erts: Reduce test log noise from ets_SUITE
erts: Increase scalability of ets name lookup
erts: Rename one of delete_trap to select_delete_trap
erts: Refactor usage of am_atom_put to ERTS_MAKE_AM
erts: Add system_info(ets_count)
erts: Fix narrow race between ets:new and ets:delete
|
|
|
|
|
|
* hasse/dialyzer/improve_contract_warnings/OTP-14982:
erts: Improve contracts of zlib
kernel: Improve contracts
erts: Improve a contract
stdlib: Improve a contract
compiler: Improve a contract
dialyzer: Refine the test for overspecified functions
|
|
* hans/public_key/match_fun_https/OTP-14962:
public_key: Testcase for cert with wildcard in SAN
public_key: Doc
public_key: Matchfun for HTTPS
|
|
* hans/crypto/EVP_DH_key/OTP-14864:
crypto: Valgrind suggestions
|
|
|
|
|
|
|
|
|
|
* hasse/syntax_tools/fix_map_type/OTP-15098/ERIERL-177:
syntax_tools: Fix a bug regarding reverting map types.
|
|
Bad optimizing code introduced in 5c51e87bee9d
|
|
sys_core_fold could do unsafe transformations on the
code from the old inliner (invoked using the compiler
option `{inline,[{F/A}]}` to request inlining of specific
functions).
To explain the bug, let's first look at an example that
sys_core_fold handles correctly. Consider this code:
'foo'/2 =
fun (Arg1,Arg2) ->
let <B> = Arg2
in let <A,B> = <B,Arg1>
in {A,B}
In this example, the lets can be completely eliminated,
since the arguments for the lets are variables (as opposed
to expressions). Since the variable B is rebound in the
inner let, `sys_core_fold` must take special care when
doing the substitutions.
Here is the correct result:
'foo'/2 =
fun (Arg1, Arg2) ->
{Arg2,Arg1}
Consider a slight modifictation of the example:
'bar'/2 =
fun (Arg1,Arg2) ->
let <B> = [Arg2]
in let <A,B> = <B,[Arg1]>
in {A,B}
Here some of the arguments for the lets are expressions, so
the lets must be kept. sys_core_fold does not handle this
example correctly:
'bar'/2 =
fun (Arg1,Arg2) ->
let <B> = [Arg2]
in let <B> = [Arg1]
in {B,B}
In the inner let, the variable A has been eliminated and
replaced with the variable B in the body (the first B in
the tuple). Since the B in the outer let is never used,
the outer let will be eliminated, giving:
'bar'/2 =
fun (Arg1,Arg2) ->
let <B> = [Arg1]
in {B,B}
To handle this example correctly, sys_core_fold must
rename the variable B in the inner let like this to
avoid capturing B:
'bar'/2 =
fun (Arg1,Arg2) ->
let <B> = [Arg2]
in let <NewName> = [Arg1]
in {B,NewName}
(Note: The `v3_kernel` pass alreday handles those examples correctly
in case `sys_core_fold` has been disabled.)
|