aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/src
AgeCommit message (Collapse)Author
2017-11-20Merge branch 'lukas/stdlib/maps_iterators/OTP-14012'Lukas Larsson
* lukas/stdlib/maps_iterators/OTP-14012: erts: Limit size of first iterator for hashmaps Update primary bootstrap Update preloaded modules erts: Remove erts_internal:maps_to_list/2 stdlib: Make io_lib and io_lib_pretty use maps iterator erts: Implement batching maps:iterator erts: Implement maps path iterator erts: Implement map iterator using a stack stdlib: Introduce maps iterator API Conflicts: bootstrap/lib/stdlib/ebin/io_lib.beam bootstrap/lib/stdlib/ebin/io_lib_pretty.beam erts/emulator/beam/bif.tab erts/preloaded/ebin/erlang.beam erts/preloaded/ebin/erts_internal.beam erts/preloaded/ebin/zlib.beam
2017-11-20stdlib: Make io_lib and io_lib_pretty use maps iteratorLukas Larsson
2017-11-20erts: Implement batching maps:iteratorLukas Larsson
This iterator implementation fetches multiple elements to iterate over in one call to erts_internal:maps_next instead of one at a time. This means that the memory usage will go up for the iterator as we are buffering elements, but the usage is still bounded. In this implementation the max memory usage is 1000 words. Using this approach makes the iterator as fast as using maps:to_list, so maps:iterator/2 has been removed.
2017-11-15Merge pull request #1602 from sirihansen/siri/supervisor/store-children-in-mapSiri Hansen
Refactor supervisor, and store children in a map instead of a list OTP-14586
2017-11-09[supervisor] Store children in map instead of listSiri Hansen
2017-11-09[supervisor] Change Name to IdSiri Hansen
2017-11-09[supervisor] Use map instead of dict for dynamic childrenSiri Hansen
2017-11-09[supervisor] Refactor to improve maintainabilitySiri Hansen
2017-11-09[supervisor] Add macros to use in guardsSiri Hansen
2017-11-09[supervisor] Refactor handling of dynamic childrenSiri Hansen
2017-11-06stdlib: Remove compose_query and dissect_queryPéter Dimitrov
compose_query/{1,2} and dissect_query/1 removed as the implemented specification (HTML 2.0) is old. They will be re-implemented based on HTML5.
2017-11-03stdlib: Refactor functions in uri_stringPéter Dimitrov
2017-11-01stdlib: Add uri_string module to stdlib.app.srcPéter Dimitrov
2017-10-31stdlib: Fix case normalization (normalize/1)Péter Dimitrov
2017-10-31stdlib: Refactor helper functions in uri_stringPéter Dimitrov
2017-10-27stdlib: Implement normalize/1Péter Dimitrov
Implements the following Syntax-Based Normalizations: - Case Normalization - Percent-Encoding Normalization - Path Segment Normalization - Scheme-Based Normalization - HTTP(S) - Basic support for FTP, SSH, SFTP, TFTP
2017-10-27stdlib: Allow undefined port in uri_map()Péter Dimitrov
uri_map() updated to allow 'undefined' ports in order to align the implementation with RFC 3986: port = *DIGIT An 'undefined' port is mapped to a ":" during recompose operation.
2017-10-26stdlib: Update documentation, error tuplesPéter Dimitrov
2017-10-25stdlib: Refactor dissect_queryPéter Dimitrov
2017-10-25stdlib: Refactor compose_queryPéter Dimitrov
2017-10-24stdlib: Refactor parsed binary calculationPéter Dimitrov
2017-10-24stdlib: Update supported separators (query string)Péter Dimitrov
Update list of supported separators: - escaped_amp (default): "&" - amp: "&" - semicolon: ";"
2017-10-23stdlib: Update documentation (uri_string)Péter Dimitrov
2017-10-23stdlib: Improve error handlingPéter Dimitrov
2017-10-23stdlib: Implement compose_query and dissect_queryPéter Dimitrov
2017-10-23stdlib: Improve support of mixed lists (transcode)Péter Dimitrov
- transcode/2 flattens input lists in order to be able to handle lists with percent-encoded parts that are split into muliple list and binary segments. - Add additional tests for transcoding mixed lists.
2017-10-23stdlib: Change handling of queries ["?" query]Péter Dimitrov
Previously when parsing queries the first "?" was part of the parsed query in the result Map. This behavior has been changed to follow the patterns used with other URI components and to not include the special character(s) that mark the start of a specific component.
2017-10-23stdlib: Implement transcode/2.Péter Dimitrov
2017-10-23stdlib: Add property tests, bugfixesPéter Dimitrov
- Add property tests using PropEr. - Add new testcases to uri_string_SUITE. - Improve calculation of parsed binary. - Verify if input to parse() is UTF8 encoded. - Update is_valid_map(): added check for path and host.
2017-10-23stdlib: Improve calculation of parsed binaryPéter Dimitrov
- Improved calculation of parsed binary. - Added tests for special corner cases. - Fixed dialyzer warnings.
2017-10-23stdlib: Implement recomposePéter Dimitrov
- Implemented recompose function with percent-encoding and validation of IPv4/IPv6 addresses. - Added test for recompose that uses a generated test vector (URI combinations based on a fix set of URI components). - Added test for parse-recompose using a generated test vector. - Removed parsing functions for lists. Lists are converted to binary before parsing.
2017-10-23stdlib: Add support to parse percent-encoded URIsPéter Dimitrov
2017-10-23stdlib: Add support for parsing IPv4 and IPv6Péter Dimitrov
2017-10-23stdlib: Implement uri_string:parsePéter Dimitrov
2017-10-23stdlib: Add API and doc of uri_string modulePéter Dimitrov
2017-10-23Merge pull request #1565 from mikpe/stdlib-base64-decode-speedupHans Bolinder
base64:decode(List) optimized reimplementation OTP-14624
2017-10-23Merge branch 'maint'Dan Gudmundsson
* maint: fix win32 share filename join/split (#1604) Correct io_vec handling
2017-10-23fix win32 share filename join/split (#1604)Bikram Chatterjee
Handle UNC (shared) path on win32, previously "//dir/.." and "\\\\dir\.." was cleaned up to "/dir/.." which was not correct. OTP-14693
2017-10-18Merge pull request #1574 from RaimoNiskanen/raimo/stdlib/rand-uniformityRaimo Niskanen
OTP-13764 Implement uniform floats with decreasing distance towards 0.0
2017-10-18Implement uniform_real/0 and uniform_real_s/1Raimo Niskanen
2017-10-17Merge branch 'maint'Hans Bolinder
* maint: stdlib: Make ets:i/1 exit cleaner upon ^D (old Erlang shell)
2017-10-17Merge branch 'hasse/stdlib/fix_ets_i_1/OTP-14663' into maintHans Bolinder
* hasse/stdlib/fix_ets_i_1/OTP-14663: stdlib: Make ets:i/1 exit cleaner upon ^D (old Erlang shell)
2017-10-17Merge branch 'dgud/dot_erlang/OTP-14439'Dan Gudmundsson
* dgud/dot_erlang/OTP-14439: fixup! Do not load .erlang from current dir erlc: Do not load .erlang escript: Do not load .erlang dialyzer: Do not load .erlang reltool: Add no_dot_erlang bootfiles Enable usage of no_dot_erlang in bootstrap Do not load .erlang from current dir
2017-10-13erts: Implement maps path iteratorLukas Larsson
2017-10-13erts: Implement map iterator using a stackLukas Larsson
This version does not work great as the subtrees created are not proper hash maps. Also it is not all that performant as the extra allocations to keep the stack there is expensive.
2017-10-13stdlib: Introduce maps iterator APILukas Larsson
2017-10-12Merge branch 'rickard/null-chars/ERL-370/OTP-14543'Rickard Green
* rickard/null-chars/ERL-370/OTP-14543: Don't allow null chars in various strings Conflicts: erts/emulator/beam/erl_alloc.types erts/preloaded/ebin/erlang.beam
2017-10-12Merge branch 'maint'Rickard Green
* maint: Revert "Merge branch 'rickard/null-char-filenames/ERL-370/OTP-14543' into maint"
2017-10-12Revert "Merge branch 'rickard/null-char-filenames/ERL-370/OTP-14543' into maint"Rickard Green
This reverts commit 0717a2194e863f3a78595184ccc5637697f03353, reversing changes made to 71a40658a0cef8b3e25df3a8e48a72d0563a89bf.
2017-10-11Don't allow null chars in various stringsRickard Green
Various places that now reject null chars inside strings - Primitive file operations reject it in filenames. - Primitive environment variable operations reject it in names and values. - os:cmd() reject it in its input. Also '=' characters are rejected by primitive environment variable operations in environment variable names. Documentation has been updated to document null characters in these types of data as invalid. Currently these operations accept null chars at the end of strings, but that will change in the future.