Age | Commit message (Collapse) | Author |
|
|
|
* 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.)
|
|
Add more `compiler_generated` attributes to avoid spurious compiler
warnings triggered by the bug fix in the next commit.
|
|
* lukas/stdlib/fix-io_o_request_raise/OTP-15101:
stdlib: Fix io:put_chars/2 error
|
|
|
|
* hans/ssh/channel_polish/OTP-15083:
ssh: Better crash report for bad channel callback module
|
|
* hans/ssh/channel_testsuite/OTP-15051:
ssh: Channel testsuite
|
|
* hans/ssh/rm_depr:
ssh: Change get_stacktrace
|
|
Missing space
|
|
|
|
|
|
|
|
Before this fix an error in io:put_chars/2 would signal
a fault in io:put_chars/3 because of the way that raise is
used and there is no such function.
|
|
|
|
|
|
This reverts commit fd8e49b5bddceaae803670121b603b5eee8c5c08.
|
|
|
|
|
|
|
|
|
|
The -Woverspecs (-Wspecdiffs) option generates warnings in a few more
cases. The refinement is analogous to the test that -Wunderspecs
already does: it checks if the contract has nothing in common with
some element (see erl_types:t_elements/1) of the success typing.
|
|
* siri/logger-fix:
Update documentation of logger and error_logger
Change type name logger:log() to logger:log_event()
Update preloaded
Update primary bootstrap
Rename module logger_simple to logger_simple_h
Change env var logger_log_progress to logger_progress_reports
Remove HandlerId from handler callback functions and add it to Config
Change handler id for sasl handler from sasl_h to sasl
Change Compare parameter to logger_filters:domain/2
Update Logger documentation
Rename reset_module_level to unset_module_level
Allow chars_limit to limit strings
Add logger:update_formatter_config/2,3
Set legacy_header=true for kernel's default handler only
Improve documentation of logger and error_logger
Use system_time instead of monotonic_time as timestamp in logger
|
|
OTP-14359: Add typespecs for netns and bind_to_device options
|
|
ssl: Generalize DTLS packet multiplexing
OTP-14888
|
|
corrected spelling reffering -> referring
|
|
We want to prepare the code for more advanced DTLS usage and possibility
to run over SCTP. First assumption was that the demultiplexer process
"dtls listener" was needed for UDP only and SCTP could be made more TLS
like. However the assumption seems not to hold. This commit prepares
for customization possibilities.
|
|
|
|
|
|
Also, change HandlerId from logger_simple to simple.
|
|
|
|
|
|
|
|
This configuration option has been removed. logger_formatter will read
the utc_log configuration parameter and format the timestamp
accordingly.
|
|
|
|
|
|
Earlier, only reports and {Format,Args} was limited by chars_limit,
and max_size was needed to limit the size of a string.
|
|
|
|
|
|
|
|
|
|
* ingela/gen-fsm-deprecation:
gen_fsm: should be deprecated eventually
|
|
Compleate PKCS-8 encoding support and enhance the decoding
of 'PrivateKeyInfo' to conform to the rest of Erlang public_key API.
OTP-15093
|
|
* lukas/kernel/logger-config/OTP-13295:
Add Action=differs to logger_filters:domain/2
Format logger timestamps according to RFC3339
Add update_logger_config/1 and update_handler_config/2 to logger
Hide handlers field in logger config map from the API
Improve santiy check of formatter config
Fix error_logger:tty/1 to turn on/off tty logging
Add filter to sasl_h which stops log events with remote gl
Remove logger env vars for format_depth, max_size and utc
Fix some link errors in logger documentation
kernel: Make all handler callbacks not block logger
logger: Rework configuration of logger
|
|
* ingela/ssl/openssl-test-cuddle:
ssl: anon test should use dh or ecdh anon keyexchange
ssl: Cuddle no delivery guarantee at application level
ssl: Cuddle timeout
ssl: Correct option handling to OpenSSL
|
|
max_headers operated on the individual header length instead of
the total length of all headers. Also headers with empty keys are
now discarded.
|
|
* lars/erl_docgen/fix-xsl-makefile/OTP-15091:
[erl_docgen] Update version
[erl_docgen] Add missing file db_funcs.xsl to file list
|
|
* hasse/stdlib/chars_limit_io/OTP-14983:
stdlib: Document details of fwrite/3 option chars_limit
|
|
|