Age | Commit message (Collapse) | Author |
|
The common subexpression optimization accidentally caused
unnecessary spilling of live registers. A rather ugly
workaround can be found in loop_timeouts_cancel.
|
|
This strategy improves speed benchmarks and reduces the
amount of garbage that is produced.
More:
* Handle transition options as loop function arguments instead
of in a record.
* Shorten the state_enter loop and make it more efficient
by making it more part of the loop and less a loop restart.
* Simplify the internal timeout action handling somewhat.
|
|
|
|
* Use synchronolus cancel_timer since that is more efficient
than asynchronous when a process cancels its own timer
* Restructure the state to have fewer fields by breaking
out practically constant fields into a separate
loop argument record #params{}, group state and data
into one field and dito for timer fields
* Optimize engine loop arguments for staying in the loop so
the detour to sys:handle_system_message/6 will require
packing/unpacking of the sys: state, and of the argument Parent
* Avoid double reverse of event queue in many cases
* Restructure the state transition to not have duplicate
tracks for sys_debug and non-sys_debug cases
* Shortcut the empty list case where possible
* Loop unroll reversal of up to 2-element lists to avoid calling
lists:reverse/2 since an external call spills all live
registers to the stack
* Bring out the callback mode check to the engine loop
|
|
Instead of just changing states; also start a state_timeout
that gets cancelled by the state change.
I think it is important to have efficient timer handling.
|
|
* raimo/stdlib/sys-log-of-gen-in-terminate-report/OTP-15381:
sys:log timeout 0 events
Filter gen_server State in crash sys:log
Fix statement duplication
Document system_events better
Adjust sys:log(N, get) to documentation
Unify system_events in gen_*
Log code change
Use from/1 type check
Limit more error_logger terms
Add client stacktrace
Print sys:log in error report
Optimize sys:handle_debug/4
Optimize sys:log
Fix sys:log functionality
Conflicts:
lib/stdlib/doc/src/sys.xml
|
|
Conflicts:
lib/ssl/src/ssl_connection.hrl
lib/ssl/src/tls_connection.erl
|
|
* raimo/ssl/tls_dist-optimization:
Tighten dist app data receive
|
|
Conflicts:
lib/ssl/src/dtls_connection.erl
lib/ssl/src/ssl_connection.erl
lib/ssl/src/ssl_connection.hrl
lib/ssl/src/tls_connection.erl
lib/ssl/src/tls_record.erl
|
|
* ingela/ssl/optimize/OTP-15445:
ssl: Fix test case
ssl: Remove no longer needed functions
ssl: Fix downgrade
ssl: Remove checks and conversions not needed
ssl: Use binary:copy/2 to avoid list overhead
ssl: Remove unnecessary internal event
ssl: Clean code
ssl: Add static_env record
|
|
packet raw is a stream, test code manged it packet oriented in
the function active_raw.
|
|
|
|
|
|
|
|
|
|
As the stop wrapper functions are no longer needed after tls_sender
that altered the behaviour of the TLS distribution code.
|
|
Both test case and code needed updates to work as intended. Code needed update due to
new tls_sender process and the test case gave false positive reusult erarlier probably
due to beeing to sloopy in order to avoid timeouts.
|
|
* bjorn/cuddle-with-tests:
Cover code in beam_ssa_opt
Cover code in beam_ssa_dead
Cover code in beam_trim
Eliminate warnings for unused variables
regressions_SUITE: Fix exports
map_SUITE: Test for mixed map creation
map_SUITE: Fix indentation
|
|
|
|
|
|
|
|
Rename Connection:handle_common_event Connection:handle_protocol_record
removing use of unnecessary argument and making code easier to understand.
|
|
|
|
|
|
State values created at init
|
|
|
|
introduced after OTP_R13B03.
|
|
for <func><name> and <module> with "since" attribute.
|
|
'*' is part of the return type, not the function name.
|
|
* maint:
Updated OTP version
Prepare release
|
|
|
|
The example should not show the iterator as that is
an internal value and if changed can confuse the reader
of the documentation. See ERL-796
|
|
* maint:
Updated OTP version
Prepare release
|
|
* maint-20:
Updated OTP version
Prepare release
|
|
* maint:
Don't try to wake up wx thread when not necessary
|
|
That kills performance on at least windows when a the load goes up and
a lot of commands is sent to the driver.
|
|
|
|
|
|
|
|
* 'kenneth/asn1/ERIERL-278/OTP-15470' of git-server:kenneth_otp:
Handle erroneous length during decode (BER only) without crashing
|
|
* raimo/test-cuddling:
Rewrite to work for stream connection
Update Linux version for pktoptions TTL
|
|
* maint:
Fix unsafe optimization of stack trace building
|
|
beam_ssa_pre_codegen: Fix an internal consistency failure
|
|
|
|
|
|
* bjorn/compiler/fragility:
beam_validator: Don't discard fragility
|
|
The `sys_core_fold` pass of the compiler would optimize
away the building of the stacktrace in code such as:
try
...
catch
C:R:Stk ->
erlang:raise(C, {R,Stk}, Stk)
end
That optimization is unsafe and would cause a crash in a later compiler
pass.
|
|
The following function:
is_two_tuple(Arg) ->
case is_tuple(Arg) of
false -> false;
true -> tuple_size(Arg) == 2
end.
would cause an internal consistency failure:
Internal consistency check failed - please report this bug.
Instruction: {bif,tuple_size,{f,0},[{x,0}],{z,0}}
Error: {invalid_store,{z,0},{integer,[]}}:
|
|
|
|
garazdawi/lukas/erts/fix_lit_msg_copy_in_gc/ERL-741/OTP-15478
erts: Fix copy of literal msg during gc
|