aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib
AgeCommit message (Collapse)Author
2019-01-30Fix bug in binary:encode_unsigned causing a read of uninitialized memoryKjell Winblad
The bug could be seen by running the test that is added by this commit in a valgrind enabled emulator. Co-authored-by: John Högberg <[email protected]>
2019-01-24stdlib: Add ets doc note about subtle iteration odditiesSverker Eriksson
as it has been made more relevant with the introduction of write_concurrency for ordered_set.
2019-01-24Merge branch 'maint'Sverker Eriksson
2019-01-24Merge PR-2103 from sverker/ets-iteration-doc/OTP-15545Sverker Eriksson
Clarify ETS docs about table iterations
2019-01-24stdlib: Clarify ets docs about table iterationsSverker Eriksson
2019-01-22Merge branch 'maint'Sverker Eriksson
2019-01-22Merge branch 'sverker/fix-since-clauses/OTP-15460' into maintSverker Eriksson
* sverker/fix-since-clauses/OTP-15460: Fix "since" for all multi clause functions
2019-01-21Merge branch 'raimo/stdlib/gen_statem-optimization/OTP-15452'Raimo Niskanen
* raimo/stdlib/gen_statem-optimization/OTP-15452: correct: Work around a compiler mis-optimization
2019-01-21correct: Work around a compiler mis-optimizationRaimo Niskanen
This was not a compiler optimization that misfired, rather that the code neede separate case clauses for when the timer was running and not, so to not call erlang:cancel_timer/1 nor maps:remove/2 in the case clause where only a map update was needed before recursion. See the comment in loop_timouts_cancel/13
2019-01-18Merge branch 'raimo/stdlib/gen_statem-optimization/OTP-15452'Raimo Niskanen
* raimo/stdlib/gen_statem-optimization/OTP-15452: Write some more comments in the engine loop Work around a compiler mis-optimization Move out helper functions to engine loop Handle #trans_opts{} fields in parse_actions() arguments Optimize gen_statem engine loop Modify generic_statem_transit benchmark
2019-01-17Write some more comments in the engine loopRaimo Niskanen
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-16Merge branch 'maint'Hans Bolinder
* maint: Fix erl_parse:af_constraint() Fix erl_parse:af_fun_type() Add literal character to erl_parse:abstract_type/0 type
2019-01-16Merge pull request #2074 from gomoripeti/singleton_char_typeHans Bolinder
Fixes in erl_parse:abstract_type/0 type
2019-01-16Merge branch 'maint'Hans Bolinder
* maint: Fix sorting in lists.xml
2019-01-15Fix "since" for all multi clause functionsSverker Eriksson
This is the result of going through all .xml files with "clause_i" attributes and make sure their "since" versions are correct.
2019-01-15Merge pull request #2069 from zuiderkwast/erl_parse_typesHans Bolinder
Correction of type abstract_expr -> abstract_expr() in erl_parse
2019-01-15Fix sorting in lists.xmljfw7
`search/2` was sorted incorrectly.
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.
2019-01-08Merge branch 'maint'Lars Thorsen
* maint: [xmerl] Fix detect charset crash [cdv] Check only own persistent terms in crashdump_viewer test Fix remote-call error in ms_transform Conflicts: lib/observer/test/crashdump_helper.erl
2019-01-08Merge pull request #2022 from gomoripeti/ms_remote_call_errorSiri Hansen
Fix remote-call error in ms_transform
2018-12-28Fix erl_parse:af_constraint()Péter Gömöri
Add missing list wrapper.
2018-12-28Fix erl_parse:af_fun_type()Péter Gömöri
`af_function_type()` already contains the `{'type', anno(), 'fun', ...}` tuple so it does not have to be wrapped again.
2018-12-27Add literal character to erl_parse:abstract_type/0 typePéter Gömöri
This is allowed since 19.3 (commit 6d238032) and documented since commit 744fb920.
2018-12-22Correction of type abstract_expr -> abstract_expr() in erl_parseViktor Söderqvist
2018-12-18Make all compiler options work in the option listBjörn Gustavsson
Before OTP 22, the option `{nowarn_deprecated_function,MFAs}` was only recognized when given in the file with the attribute `-compile()`. (The option `{nowarn_unused_function,FAs}` was incorrectly documented to only work in a file, but it also worked when given in the option list.) Starting from OTP 22, all options that can be given in the file can also be given in the option list.
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'Lukas Larsson
2018-12-14Merge branch 'lukas/stdlib/maps_iterator_docs' into maintLukas Larsson
2018-12-13Merge branch 'maint'Sverker Eriksson
2018-12-13gen_statem exports types related to starting & namingSölvi Páll Ásgeirsson
Currently, a user of gen_statem cannot use gen_statem types related to naming & starting in their behaviour implementations As an example, we cannot do: -spec start_link(Options) -> gen_statem:start_ret() when Options :: some_complex_thing(). start_link(Options) -> gen_statem:start_link(?MODULE, [Opts], []). As dialyzer, if configured to complain about unknown types, will warn that the type gen_statem:start_ret() is unknown. Likewise, for the same reason, we cannot do: -spec do_call_to_gen_statem(ServerRef) -> Reply when ServerRef :: gen_statem:server_ref(), Reply :: term(). do_call_to_gen_statem(ServerRef) -> gen_statem:call(ServerRef, do_thing). This fixes that by exporting the appropriate types
2018-12-12Add empty 'since' attribute for old modules and functionsSverker Eriksson
2018-12-11Add "since" attributes in xml for new functions and modulesSverker Eriksson
introduced after OTP_R13B03.
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-03Merge branch 'maint'Dan Gudmundsson
* maint: unicode_util did not handle binary input data correctly
2018-12-03Merge branch 'dgud/stdlib/unicode-binary-bug/ERL-777/OTP-15428' into maintDan Gudmundsson
* dgud/stdlib/unicode-binary-bug/ERL-777/OTP-15428: unicode_util did not handle binary input data correctly
2018-12-03Merge branch 'maint'Hans Bolinder
* maint: stdlib: Let calendar:system_time_to_rfc3339() keep fractions
2018-11-30sys:log timeout 0 eventsRaimo Niskanen
2018-11-30Filter gen_server State in crash sys:logRaimo Niskanen
2018-11-30Fix statement duplicationRaimo Niskanen
2018-11-30Document system_events betterRaimo Niskanen
2018-11-30Adjust sys:log(N, get) to documentationRaimo Niskanen
2018-11-30Unify system_events in gen_*Raimo Niskanen
2018-11-30Log code changeRaimo Niskanen
2018-11-30Use from/1 type checkRaimo Niskanen