Age | Commit message (Collapse) | Author |
|
Removed two matching errors and one unused clause found by dialyzer.
|
|
|
|
* gandrade/fmod/PR-1216/OTP-14000:
Add test cases for math:fmod/2 BIF
Support math:fmod/2 BIF on compiler
Add math:fmod/2 BIF
|
|
|
|
|
|
Returns the (floating point) remainder of first argument divided
by second argument.
|
|
* essen/stdlib/proc_lib-propagate-exceptions/PR-1088/OTP-14001:
Propagate exceptions fully when using proc_lib
|
|
* maint:
Update preloaded
erts: Correct type declaration of match specification head
Conflicts:
erts/preloaded/ebin/erlang.beam
erts/preloaded/ebin/erts_internal.beam
|
|
* hasse/erts/fix_match_spec_head/OTP-13996:
Update preloaded
erts: Correct type declaration of match specification head
|
|
|
|
* roadrunnr/tools/fprof-send-non-exist/PR-1201/OTP-13998:
handle send_to_non_existing_process trace event in fprof
|
|
|
|
* github/pr/1219:
Correct spelling error in ssl_distribution.xml
|
|
|
|
|
|
Bug reported by Peti Gömöri <[email protected]>.
|
|
This makes proc_lib behaves like a normal process as far
as the propagation of exceptions is concerned.
Before this commit, the following difference could be
observed:
6> spawn_link(fun() -> ssl:send(a,b) end).
<0.43.0>
7> flush().
Shell got {'EXIT',<0.43.0>,
{function_clause,
[{ssl,send,[a,b],[{file,"..."},{line,275}]}]}}
ok
8> proc_lib:spawn_link(fun() -> ssl:send(a,b) end).
<0.46.0>
9> flush().
Shell got {'EXIT',<0.46.0>,function_clause}
After this commit, we get the following instead:
3> flush().
Shell got {'EXIT',<0.61.0>,
{function_clause,
[{ssl,send,[a,b],[{file,"..."},{line,275}]},
{proc_lib,init_p,3,[{file,"..."},{line,232}]}]}}
The stacktrace will show minor differences of course
but the form is now the same as without proc_lib.
The rationale behind this commit is that:
* We now have a single form regardless of how the process
was started
* We can use the stacktrace to programmatically alter behavior
(for example an HTTP server identifying problems in input
decoding to send back a generic 400, or a 500 otherwise)
* We can access the stacktrace to print it somewhere (for
example an HTTP server could send it back to the client
when a debug mode is enabled)
|
|
|
|
|
|
|
|
into maint
* legoscia/kernel/clarify-permission-bits/PR-1204/OTP-13991:
Clarify permission bits in file.xml
|
|
|
|
* egil/mnesia/dont-tty-log-nodes:
mnesia: Don't show error_logger messages in tests
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Prevents timeout before the processing is done on slow machines
|
|
There are two calls opt_not_in_let(). Since 05130e4855
introduced iteration to a fixpoint, only the first call
is needed. Removing the redundant call will slightly speed
up compilation.
|
|
|
|
* maint:
Don't copy funs into guards
|
|
Correct "...an exra distribution..." to "...an extra distribution...".
|
|
ssh_to_openssh_SUITE:erlang_server_openssh_client_renegotiate/1
|
|
|
|
|
|
The testcases shell_unicode_string and shell_no_unicode in ssh_basic_SUITE could
raise an exception in the end_per_suite when stopping the dameon. This is due to
a natural race condition between the server and the client.
|
|
|
|
in ssh_to_openssh_SUITE:erlang_server_openssh_client_renegotiate/1
The reason is that it seems that on some small machines
we get an out-of-memory exception if the limit is to high.
This is probably because a chunk of data larger than the limit
is piped from a file into the OpenSSH runing in a shell in a port.
|
|
Funs must not be created in guards. The instruction for creating
a fun clobbers all X registers, which is a bad thing to do in
a guard.
|
|
* maint:
Don't let inline_list_funcs degrade optimizations
|
|
* bjorn/compiler/inline_list_funcs/ERL-285/OTP-13985:
Don't let inline_list_funcs degrade optimizations
|
|
* maint:
stdlib: Correct shell_default(3)
|
|
|