Age | Commit message (Collapse) | Author |
|
* hasse/eliminate_lib_module/OTP-15072/ERL-634:
stdlib: Move eval_str/1 from mod_esi to erl_eval
|
|
* sverker/ets-auto-unfix-delete-race/OTP-15109:
erts: Fix race between ets table deletion and auto-unfix
|
|
Bug exists since ets-refs were introduced in 20.0
0d6dc895744c34c9c52fd42f4801a8a941864ae3.
Problem:
1. Process A fixates table T.
2. Process B starts deleting table T (either by ets:delete or exit)
and does tid_clear().
3. Process A exits and does proc_cleanup_fixed_table()
and get NULL from btid2tab() and deallocates DbFixation.
4. Process B continues deleting table in free_fixations_locked()
and finds the deallocated DbFixation in the fixing_procs tree.
Solution:
Wait with tid_clear() until after free_fixations_locked()
has traversed the fixing_procs tree.
|
|
|
|
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.
|
|
* hans/ssh/cuddle_doc:
ssh: Document default algorithm order + update SSH_app links
|
|
|
|
* sverker/broken-sig-queue:
erts: Cleanup in proc_queue_signal
erts: Fix broken signal queue
|
|
* Remove 'last' arg to sig_enqueue_trace_cleanup
* Only notify 'rp' if enqueue succeeded
|
|
broken on master by
613cde66c25464121f2f6dace99782bad0e07d9b
Scenario:
proc_queue_signal() fails to send switched pending signal
due to state & ERTS_PSFLG_FREE,
and then calls erts_proc_sig_send_monitor_down() to enqueue to self
followed by sig_enqueue_trace_cleanup() that destroyed 'next' pointer
of enqueued signal.
Solution:
Switch order and do sig_enqueue_trace_cleanup() first.
|
|
* 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
|
|
* hans/ssh/cuddle_tests:
ssh: Remove dubious pubkey setup
|
|
Conflicts:
lib/ssh/test/ssh_algorithms_SUITE.erl
|
|
|
|
|
|
* ingela/inets/header-handling/OTP-15092:
inets: Gracefully handle bad headers
|
|
* lars/erl_docgen/fix-xsl-makefile/OTP-15091:
[erl_docgen] Update version
[erl_docgen] Add missing file db_funcs.xsl to file list
|
|
* sverker/system-profile-bug/OTP-15085:
erts: Fix bug in system_profile
|
|
* sverker/enif_binary_to_term-bug/OTP-15080:
erts: Fix bug in enif_binary_to_term for immediates
|
|
do not call abort_signal_task() with invalid data
|
|
* 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.
|
|
* sverker/pooled-age-order:
erts: Let allocator pooled_tree also use Age Order
|
|
* sverker/erlang-memory-fix:
erts: Purge unused allocation types
erts: Fix erlang:memory for 'processes' and 'processes_used'
|
|
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
|
|
|
|
|
|
by expanding the default size of the hash table
and increase number of locks.
|
|
|
|
and let compiler determine string lengths.
These were actually wrong in erl_db.c:
count_trap\0
replace_tra
select_tra
|
|
|
|
* 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
|
|
Fix typos in erlang.xml
|
|
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
|
|
* lukas/erts/fix-scheduler-data-sched-out-bug/OTP-13123:
erts: Make sure scheduler_data is set
|