Age | Commit message (Collapse) | Author | |
---|---|---|---|
2018-01-09 | stdlib: Improve erl_eval's stacktraces | Hans Bolinder | |
The call "erlang:get_stacktrace()" is not handled explicitly. If there are issues, they can probably be ignored since erlang:get_stacktrace/1 will be deprecated and removed. | |||
2017-12-21 | Merge branch 'hasse/stdlib/gen_server_bench' | Hans Bolinder | |
* hasse/stdlib/gen_server_bench: stdlib: Optimize gen a little stdlib: Introduce gen_server benchmark | |||
2017-12-20 | stdlib: Introduce gen_server benchmark | Hans Bolinder | |
2017-12-19 | Merge branch 'raimo/stdlib/rand-uniformity' | Raimo Niskanen | |
* raimo/stdlib/rand-uniformity: Tweak statistics limits Improve check on normal distribution tail Test normal distribution | |||
2017-12-08 | Merge pull request #1634 from bjorng/bjorn/get_stacktrace-syntax/OTP-14692 | Björn Gustavsson | |
Add syntax in try/catch to retrieve the stacktrace directly | |||
2017-12-07 | Merge branch 'hasse/stdlib/base64/OTP-14624' | Hans Bolinder | |
* hasse/stdlib/base64/OTP-14624: stdlib: Add base64 benchmarks stdlib: Do not check base64 input more than needed stdlib: Minor optimization of base64 stdlib: Use binary_to_list in base64 when it is faster stdlib: Optimize base64 functions | |||
2017-11-30 | stdlib: Add base64 benchmarks | Hans Bolinder | |
2017-11-30 | Remove port subtest in qlc_SUITE:sort | John Högberg | |
This subtest revolves around the possibility that the underlying port can be killed, which is nonsense now that the file suite no longer uses ports for anything. | |||
2017-11-30 | Account for new behavior in tests that touch prim_file | John Högberg | |
This also hides the module behind ?PRIM_FILE to make testing new implementations less painful. | |||
2017-11-30 | Add syntax in try/catch to retrieve the stacktrace directly | Björn Gustavsson | |
This commit adds a new syntax for retrieving the stacktrace without calling erlang:get_stacktrace/0. That allow us to deprecate erlang:get_stacktrace/0 and ultimately remove it. The problem with erlang:get_stacktrace/0 is that it can keep huge terms in a process for an indefinite time after an exception. The stacktrace can be huge after a 'function_clause' exception or a failed call to a BIF or operator, because the arguments for the call will be included in the stacktrace. For example: 1> catch abs(lists:seq(1, 1000)). {'EXIT',{badarg,[{erlang,abs, [[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20|...]], []}, {erl_eval,do_apply,6,[{file,"erl_eval.erl"},{line,674}]}, {erl_eval,expr,5,[{file,"erl_eval.erl"},{line,431}]}, {shell,exprs,7,[{file,"shell.erl"},{line,687}]}, {shell,eval_exprs,7,[{file,"shell.erl"},{line,642}]}, {shell,eval_loop,3,[{file,"shell.erl"},{line,627}]}]}} 2> erlang:get_stacktrace(). [{erlang,abs, [[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22, 23,24|...]], []}, {erl_eval,do_apply,6,[{file,"erl_eval.erl"},{line,674}]}, {erl_eval,expr,5,[{file,"erl_eval.erl"},{line,431}]}, {shell,exprs,7,[{file,"shell.erl"},{line,687}]}, {shell,eval_exprs,7,[{file,"shell.erl"},{line,642}]}, {shell,eval_loop,3,[{file,"shell.erl"},{line,627}]}] 3> We can extend the syntax for clauses in try/catch to optionally bind the stacktrace to a variable. Here is an example using the current syntax: try Expr catch C:E -> Stk = erlang:get_stacktrace(), . . . In the new syntax, it would look like: try Expr catch C:E:Stk -> . . . Only a variable (not a pattern) is allowed in the stacktrace position, to discourage matching of the stacktrace. (Matching would also be expensive, because the raw format of the stacktrace would have to be converted to the cooked form before matching.) Note that: try Expr catch E -> . . . is a shorthand for: try Expr catch throw:E -> . . . If the stacktrace is to be retrieved for a throw, the 'throw:' prefix must be explicitly included: try Expr catch throw:E:Stk -> . . . | |||
2017-11-30 | Merge branch 'maint' | Dan Gudmundsson | |
* maint: Avoid falling measurements testcases on slow machines stdlib: string optimize special case for ASCII stdlib: Minor unicode_util opts | |||
2017-11-29 | Avoid falling measurements testcases on slow machines | Dan Gudmundsson | |
2017-11-29 | stdlib: string optimize special case for ASCII | Dan Gudmundsson | |
Avoid unicode_util module call for ASCII strings | |||
2017-11-29 | stdlib: Minor unicode_util opts | Dan Gudmundsson | |
Exit early for Latin-1 | |||
2017-11-28 | stdlib: Do not check base64 input more than needed | Hans Bolinder | |
Often the decode functions return a function_clause error, but not always, and the errors have not been consistent between modifications of the base64 module. Now the errors are returned as they happen--no attempt to make them look nice is done. The alternative, to ensure that, for example, {badarg, Culprit} is always returned upon bad input, was deemed pointless. | |||
2017-11-28 | stdlib: Optimize base64 functions | Hans Bolinder | |
A few test cases with zeroes are added. They were not handled correctly before. The access of DECODE_MAP is moved into the inlined function b64d, for symmetry. The function b64e is also inlined. The speed-up is small, but measurable. Note: encode(List), decode(List) and mime_decode(List) no longer call list_to_binary. This can break code that calls the functions with I/O-lists as input. | |||
2017-11-20 | Merge pull request #1631 from peterdmv/stdlib/extend_uri_string/OTP-14747 | Péter Dimitrov | |
Extend uri_string module (compose_query and dissect_query) | |||
2017-11-20 | Merge branch 'bjorn/make_port/OTP-14704' | Björn Gustavsson | |
* bjorn/make_port/OTP-14704: Avoid using the efile driver in test suites | |||
2017-11-20 | Merge 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-20 | stdlib: Make io_lib and io_lib_pretty use maps iterator | Lukas Larsson | |
2017-11-20 | erts: Implement batching maps:iterator | Lukas 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-17 | Avoid using the efile driver in test suites | Björn Gustavsson | |
The efile driver will soon be reimplemented as a BIF. Instead of opening a port based on efile, use hd(erlang:ports()). It is a reasonable safe assumption that the runtime will continue to use use at least some ports. | |||
2017-11-15 | Merge pull request #1602 from sirihansen/siri/supervisor/store-children-in-map | Siri Hansen | |
Refactor supervisor, and store children in a map instead of a list OTP-14586 | |||
2017-11-14 | [supervisor] Add test of scaling on start/stop of many children | Siri Hansen | |
2017-11-09 | stdlib: Implement compose and dissect query (HTML5) | Péter Dimitrov | |
Implement functions for handling form-urlencoded query strings based on the HTML5 specification. | |||
2017-11-09 | [supervisor] Store children in map instead of list | Siri Hansen | |
2017-11-09 | [supervisor] Refactor handling of dynamic children | Siri Hansen | |
2017-11-09 | [supervisor] Improve test suite before refactoring | Siri Hansen | |
2017-11-07 | Merge pull request #1551 from peterdmv/peterdmv/stdlib/add_uri_string/OTP-14496 | Péter Dimitrov | |
Implement new uri_string module in stdlib | |||
2017-11-06 | Fix typo in test/ets_SUITE.erl | Dimitris Zorbas | |
2017-11-06 | stdlib: Remove compose_query and dissect_query | Pé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-01 | Tweak statistics limits | Raimo Niskanen | |
2017-10-31 | Improve check on normal distribution tail | Raimo Niskanen | |
2017-10-31 | Merge branch 'maint' | Hans Bolinder | |
* maint: stdlib: Fix a minor issue with the qlc suite | |||
2017-10-30 | stdlib: Fix a minor issue with the qlc suite | Hans Bolinder | |
When comparing the process dictionary before and after a test, only (a sorted list of) qlc keys are compared. | |||
2017-10-27 | stdlib: Implement normalize/1 | Pé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-27 | stdlib: 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-27 | Test normal distribution | Raimo Niskanen | |
2017-10-26 | stdlib: Update documentation, error tuples | Péter Dimitrov | |
2017-10-25 | stdlib: Refactor dissect_query | Péter Dimitrov | |
2017-10-25 | stdlib: Refactor compose_query | Péter Dimitrov | |
2017-10-24 | stdlib: Update supported separators (query string) | Péter Dimitrov | |
Update list of supported separators: - escaped_amp (default): "&" - amp: "&" - semicolon: ";" | |||
2017-10-23 | stdlib: Improve error handling | Péter Dimitrov | |
2017-10-23 | stdlib: Implement compose_query and dissect_query | Péter Dimitrov | |
2017-10-23 | stdlib: 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-23 | stdlib: 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-23 | stdlib: Implement transcode/2. | Péter Dimitrov | |
2017-10-23 | stdlib: Add property tests, bugfixes | Pé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-23 | stdlib: Improve calculation of parsed binary | Péter Dimitrov | |
- Improved calculation of parsed binary. - Added tests for special corner cases. - Fixed dialyzer warnings. | |||
2017-10-23 | stdlib: Implement recompose | Pé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. |