aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2019-01-17Work around a compiler mis-optimizationRaimo Niskanen
The common subexpression optimization accidentally caused unnecessary spilling of live registers. A rather ugly workaround can be found in loop_timeouts_cancel.
2019-01-17Move out helper functions to engine loopRaimo Niskanen
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.
2019-01-15Handle #trans_opts{} fields in parse_actions() argumentsRaimo Niskanen
2019-01-14Optimize gen_statem engine loopRaimo Niskanen
* 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
2019-01-14Modify generic_statem_transit benchmarkRaimo Niskanen
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.
2018-12-17Merge branch 'raimo/stdlib/sys-log-of-gen-in-terminate-report/OTP-15381'Raimo Niskanen
* 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
2018-12-14Merge branch 'maint'Raimo Niskanen
Conflicts: lib/ssl/src/ssl_connection.hrl lib/ssl/src/tls_connection.erl
2018-12-14Merge branch 'raimo/ssl/tls_dist-optimization' into maintRaimo Niskanen
* raimo/ssl/tls_dist-optimization: Tighten dist app data receive
2018-12-14Merge branch 'maint'Ingela Anderton Andin
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
2018-12-14Merge branch 'ingela/ssl/optimize/OTP-15445' into maintIngela Anderton Andin
* 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
2018-12-14ssl: Fix test caseIngela Anderton Andin
packet raw is a stream, test code manged it packet oriented in the function active_raw.
2018-12-14Merge branch 'maint'Lukas Larsson
2018-12-14Merge branch 'lukas/stdlib/maps_iterator_docs' into maintLukas Larsson
2018-12-13Merge branch 'maint'Sverker Eriksson
2018-12-13Tighten dist app data receiveRaimo Niskanen
2018-12-13ssl: Remove no longer needed functionsIngela Anderton Andin
As the stop wrapper functions are no longer needed after tls_sender that altered the behaviour of the TLS distribution code.
2018-12-13ssl: Fix downgradeIngela Anderton Andin
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.
2018-12-13Merge branch 'bjorn/cuddle-with-tests'Björn Gustavsson
* 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
2018-12-12ssl: Remove checks and conversions not neededIngela Anderton Andin
2018-12-12ssl: Use binary:copy/2 to avoid list overheadIngela Anderton Andin
2018-12-12ssl: Remove unnecessary internal eventIngela Anderton Andin
2018-12-12ssl: Clean codeIngela Anderton Andin
Rename Connection:handle_common_event Connection:handle_protocol_record removing use of unnecessary argument and making code easier to understand.
2018-12-12Fix since attribute for troubled function docsSverker Eriksson
2018-12-12Add empty 'since' attribute for old modules and functionsSverker Eriksson
2018-12-12ssl: Add static_env recordIngela Anderton Andin
State values created at init
2018-12-11Add since attribute to dtdSverker Eriksson
2018-12-11Add "since" attributes in xml for new functions and modulesSverker Eriksson
introduced after OTP_R13B03.
2018-12-11erl_docgen: Generate "since" OTP version in htmlSverker Eriksson
for <func><name> and <module> with "since" attribute.
2018-12-11erl_interface: Fix doc for return type 'struct hostent'Sverker Eriksson
'*' is part of the return type, not the function name.
2018-12-11Merge branch 'maint'Henrik Nord
* maint: Updated OTP version Prepare release
2018-12-10Prepare releaseErlang/OTP
2018-12-10stdlib: Update maps:iterator docs to not show iteratorLukas Larsson
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
2018-12-07Merge branch 'maint'Henrik Nord
* maint: Updated OTP version Prepare release
2018-12-07Merge branch 'maint-20' into maintHenrik Nord
* maint-20: Updated OTP version Prepare release
2018-12-07Merge branch 'maint'Dan Gudmundsson
* maint: Don't try to wake up wx thread when not necessary
2018-12-06Don't try to wake up wx thread when not necessaryDan Gudmundsson
That kills performance on at least windows when a the load goes up and a lot of commands is sent to the driver.
2018-12-06Prepare releaseErlang/OTP
2018-12-06Handle erroneous length during decode (BER only) without crashingKenneth Lundin
2018-12-06Merge branch 'maint'Raimo Niskanen
2018-12-06Merge branch 'kenneth/asn1/ERIERL-278/OTP-15470' into maintRaimo Niskanen
* 'kenneth/asn1/ERIERL-278/OTP-15470' of git-server:kenneth_otp: Handle erroneous length during decode (BER only) without crashing
2018-12-06Merge branch 'raimo/test-cuddling' into maintRaimo Niskanen
* raimo/test-cuddling: Rewrite to work for stream connection Update Linux version for pktoptions TTL
2018-12-06Merge branch 'maint'Björn Gustavsson
* maint: Fix unsafe optimization of stack trace building
2018-12-06Merge pull request #2043 from bjorng/bjorn/compiler/tuple_sizeBjörn Gustavsson
beam_ssa_pre_codegen: Fix an internal consistency failure
2018-12-05Rewrite to work for stream connectionRaimo Niskanen
2018-12-05Update Linux version for pktoptions TTLRaimo Niskanen
2018-12-05Merge branch 'bjorn/compiler/fragility'Björn Gustavsson
* bjorn/compiler/fragility: beam_validator: Don't discard fragility
2018-12-05Fix unsafe optimization of stack trace buildingBjörn Gustavsson
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.
2018-12-05beam_ssa_pre_codegen: Fix an internal consistency failureBjörn Gustavsson
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,[]}}:
2018-12-05Merge branch 'maint'Lukas Larsson
2018-12-05Merge pull request #2039 from ↵Lukas Larsson
garazdawi/lukas/erts/fix_lit_msg_copy_in_gc/ERL-741/OTP-15478 erts: Fix copy of literal msg during gc