aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/src
AgeCommit message (Collapse)Author
2019-03-21Merge branch 'bjorn/hipe-compilation/OTP-15596'Björn Gustavsson
* bjorn/hipe-compilation/OTP-15596: HiPE: Don't fail the compilation for unimplemented instructions
2019-03-21Merge pull request #2179 from richcarl/array-fixupDan Gudmundsson
Array fixup
2019-03-21Merge branch 'hasse/stdlib/optimize_string/OTP-15649'Hans Bolinder
* hasse/stdlib/optimize_string/OTP-15649: stdlib: Optimize handling of Unicode in the string module stdlib: Optimize handling of Unicode in the string module stdlib: Fix a bug in string:lexemes()
2019-03-20HiPE: Don't fail the compilation for unimplemented instructionsBjörn Gustavsson
2019-03-20stdlib: Fix a bug in string:lexemes()Hans Bolinder
2019-03-18Merge pull request #2114 from se-apc/strip_fixJohn Högberg
Allow list of chunks to be given to strip*() OTP-15680
2019-03-12Merge branch 'maint'Henrik Nord
* maint: Updated OTP version Prepare release
2019-03-11Fix array tests hardcoded to node/leaf sizesRichard Carlsson
2019-03-11Skip useless test in grow loop in array moduleRichard Carlsson
2019-03-11Clarify comments in array moduleRichard Carlsson
2019-03-11Get rid of useless setelement in array moduleRichard Carlsson
2019-03-11Prepare releaseErlang/OTP
2019-03-08Allow list of chunks to be given to strip*()Michael Schmidt
This allows extra chunks to be preserved for languages such as Elixir
2019-03-06Merge branch 'maint'Hans Bolinder
* maint: stdlib: Correct and optimize pretty printing of strings
2019-03-05stdlib: Correct and optimize pretty printing of stringsHans Bolinder
Avoid traversing all of the list/string when only part of it will be used. An explicit check that the list is flat is needed since string:slice() accepts deep lists and more.
2019-03-04Merge branch 'maint'Hans Bolinder
* maint: stdlib: Optimize calendar:system_time_to_rfc3339()
2019-03-04Merge branch 'hasse/stdlib/optimize_calendar_rfc3339/OTP-15630' into maintHans Bolinder
* hasse/stdlib/optimize_calendar_rfc3339/OTP-15630: stdlib: Optimize calendar:system_time_to_rfc3339()
2019-02-27Revert "Prepare release"Rickard Green
This reverts commit df130102cdeca8d35fec95a0c926fd1cfec54eab.
2019-02-26Prepare releaseErlang/OTP
2019-02-25Merge branch 'siri/rsh-ssh/PR-1787'Hans Bolinder
OTP-15633 * siri/rsh-ssh/PR-1787: Fix some missed comments about rsh Document the restrictions on the -rsh command Use ssh as the default remote shell
2019-02-25Merge branch 'solvip/stdlib/gen_statem/export-start-types'Raimo Niskanen
* solvip/stdlib/gen_statem/export-start-types: Create a gen_statem type for enter_loop options gen_statem exports types related to starting & naming
2019-02-25Create a gen_statem type for enter_loop optionsRaimo Niskanen
2019-02-22Merge branch 'bmk/20190204/socket_as_nif/OTP-14831'Micael Karlberg
2019-02-22Fix some missed comments about rshSiri Hansen
2019-02-21Merge branch 'maint'Hans Bolinder
* maint: stdlib: Fix a bug in the Erlang Pretty Printer
2019-02-20stdlib: Optimize calendar:system_time_to_rfc3339()Hans Bolinder
Not using io_lib for formatting makes the conversion several times faster.
2019-02-18stdlib: Fix a bug in the Erlang Pretty PrinterHans Bolinder
Long atom names in combination with <c><<>></c> could cause a crash.
2019-02-18Merge branch 'maint'Raimo Niskanen
* maint: Updated OTP version Prepare release
2019-02-18Merge branch 'maint-21' into maintRaimo Niskanen
* maint-21: Updated OTP version Prepare release
2019-02-18Merge branch 'maint'Hans Bolinder
* maint: Update primary bootstrap stdlib: Optimize formatted printing of terms Conflicts: bootstrap/lib/stdlib/ebin/io_lib.beam bootstrap/lib/stdlib/ebin/io_lib_format.beam bootstrap/lib/stdlib/ebin/io_lib_pretty.beam
2019-02-18Merge branch 'hasse/stdlib/optimize_pretty_print/ERIERL-306/OTP-15573' into ↵Hans Bolinder
maint * hasse/stdlib/optimize_pretty_print/ERIERL-306/OTP-15573: Update primary bootstrap stdlib: Optimize formatted printing of terms
2019-02-15Prepare releaseErlang/OTP
2019-02-14stdlib: Optimize formatted printing of termsHans Bolinder
Try calling iolist_size() before calling string:length(). The reason is that calls to string:length/1 are slow when the argument is not a list of integers (or contains UNICODE).
2019-02-12Merge branch 'maint'Hans Bolinder
* maint: Optimize calendar:gregorian_days_to_date/1
2019-02-12Merge branch 'FNickRU/stdlib/optimize_calendar/PR-2121/OTP-15572' into maintHans Bolinder
* FNickRU/stdlib/optimize_calendar/PR-2121/OTP-15572: Optimize calendar:gregorian_days_to_date/1
2019-02-04Merge branch 'bmk/20180918/nififying_inet/OTP-14831' into ↵Micael Karlberg
bmk/20190204/socket_as_nif/OTP-14831
2019-01-31Optimize calendar:gregorian_days_to_date/1Stanislav Mayorov
This patch improves the performance of calendar:gregorian_days_to_date/1 by changing the algorithm for finding the year to log-logarithmic. The old implementation has linear complexity, which makes function too slow for large values. For example: There is an API that allows you to create events for future dates. There are users of this API who, for some reasons, choose dates very far in the future. In such conditions, function works very slow. New implementation based on interpolation search, takes 1 or 2 iterations at most cases and free from such a flaw. A unit test was also developed to illustrate the speed of a function at large values.
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-15Merge pull request #2069 from zuiderkwast/erl_parse_typesHans Bolinder
Correction of type abstract_expr -> abstract_expr() in erl_parse
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-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