aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2019-08-27Merge branch 'maint'masterIngela Anderton Andin
2019-08-27Merge branch 'ingela/ssl/test-move' into maintHEADmaintIngela Anderton Andin
* ingela/ssl/test-move: ssl: Move tests from ssl_certificate_verify_SUITE to ssl_cert_SUITE
2019-08-27Merge branch 'john/erts/cp-management-fixup'John Högberg
* john/erts/cp-management-fixup: erts: Simplify deallocate_return
2019-08-27Merge branch 'maint'John Högberg
* maint: erts: Add missing prototype
2019-08-27Merge branch 'john/erts/missing-prototype-erts_bin_nrml_alloc_fnf' into maintJohn Högberg
* john/erts/missing-prototype-erts_bin_nrml_alloc_fnf: erts: Add missing prototype
2019-08-26erts: Add missing prototypeJohn Högberg
2019-08-26ssl: Move tests from ssl_certificate_verify_SUITE to ssl_cert_SUITEIngela Anderton Andin
Test should be run for all diffrent cert types. ssl_payload_SUITE should test socket active option.
2019-08-26erts: Simplify deallocate_returnJohn Högberg
2019-08-26Merge branch 'maint'Hans Bolinder
* maint: Update test suite Also unwrap map_type_* name and value Add unwrap calls to map_field_* in erl_syntax
2019-08-26Merge branch 'zadean/syntax_tools/add_missing_unwrap/OTP-16012/PR-2348' into ↵Hans Bolinder
maint * zadean/syntax_tools/add_missing_unwrap/OTP-16012/PR-2348: Update test suite Also unwrap map_type_* name and value Add unwrap calls to map_field_* in erl_syntax
2019-08-23Merge branch 'maint'Björn Gustavsson
* maint: Fix filelib:wildcard/1,2 for patterns containing ".." and/or "@"
2019-08-23Merge pull request #2353 from ↵Björn Gustavsson
bjorng/bjorn/stdlib/fix-file_lib-wildcard/ERL-1029/OTP-15987 Fix filelib:wildcard/1,2 for patterns containing ".." and/or "@"
2019-08-23Merge pull request #2345 from garazdawi/lukas/erts/hash_opt/OTP-16014Lukas Larsson
Change internal hash table implementation
2019-08-23Merge branch 'maint'Lukas Larsson
2019-08-23Merge pull request #2301 from stuart-thackray/saslLoggerStartup/OTP-15942Lukas Larsson
Start up of SASl when compared log level is all
2019-08-22Merge branch 'sverker/ets-test-cuddle'Sverker Eriksson
* sverker/ets-test-cuddle: stdlib: Fix ets_SUITE:tabfile_ext4
2019-08-22stdlib: Fix ets_SUITE:tabfile_ext4Sverker Eriksson
on machines with long host names. Move forward the file location interval to corrupt. An ETS table file corrupted in the header may still be readable with table content unchanged and that will cause tabfile_ext4 to fail. The header length increase with long host names and added table options.
2019-08-22Merge branch 'maint'Sverker Eriksson
2019-08-22Merge branch 'sverker/ets-delete-tree-trapping' into maintSverker Eriksson
* sverker/ets-delete-tree-trapping: erts: Refactor ets catree deletion
2019-08-22Merge branch 'maint'Ingela Anderton Andin
2019-08-22Merge branch 'ingela/ssl/test-cuddle' into maintIngela Anderton Andin
* ingela/ssl/test-cuddle: ssl: Make sure test starts in a "good" state ssl: Cuddle timeout
2019-08-22ssl: Make sure test starts in a "good" stateIngela Anderton Andin
2019-08-22ssl: Cuddle timeoutIngela Anderton Andin
2019-08-22Update test suitezadean
Add record with exact and associated map types to type_specs.erl. The record forces the erl_parse format for map types to be retained. Add test wrapped_subtrees to the test suite. It ensures that each erl_parse node it encounters can be wrapped and accessed with erl_syntax:subtrees/1 without error.
2019-08-22Also unwrap map_type_* name and valuezadean
2019-08-22Add unwrap calls to map_field_* in erl_syntaxZachary Dean
This adds missing calls to unwrap/1 for the map_field_* name and value functions and puts them inline with map_expr_fields/1. Using these functions with "wrapped" nodes fails with badarg.
2019-08-22Merge pull request #2351 from bjorng/bjorn/erts/optimize-cp-management/OTP-15077Björn Gustavsson
Optimize continuation pointer management
2019-08-22Optimize the move_call instructionsBjörn Gustavsson
The `move_call` instructions are combinations of a `move` instruction and a `call` instruction. As currently implemented, the `move` part of the instruction is executed in its entirety before the `call` part is even started. The reason is that the C compiler cannot see that it would be safe to read the target address of the call before writing to the move destination. Rewrite the instructions to explicitly read both the source for the move and the target address for the call before writing the destination of the move. Micro-benchmarks show a small but consistent speed-up after this change.
2019-08-22Optimize deallocate_return instructionsBjörn Gustavsson
Eliminating the CP register and putting continuation pointers directly on the stack made the deallocate_return instruction slower. Try to mitigate this slow down by specializing deallocate_return for small stack. For the move_deallocate_return instruction, reorder instructions to make it possible to execute the read instructions in parallel.
2019-08-22Optimize continuation pointer managementBjörn Gustavsson
The BEAM instructions for calling a function don't save the continuation pointer (return address) on the stack, but to a special BEAM register called CP. It is the responsibility of the called function to save CP to the stack frame before calling other functions. In the earlier implementations of BEAM on Sparc, CP was located in a CPU register. That meant that the continuation pointer was never written to memory when calling simple functions that didn't call other functions at all or ended in a tail-call to another function. The modern BEAM no longer keeps CP in CPU register. Instead, it is kept in the `process` struct (in `p->cp`). That means the continuation pointer must be written to the memory on every call, and if the called function will call other functions, it will must read the continuation pointer from `p->cp` and store it on the stack. This commit eliminates the concept of the CP register and modifies the call instructions to directly store the continuation pointer on the stack. That makes allocation and trimming of stack frames slightly faster. A more important benefit is simplification of code that handles continuation pointers. Because all continuation pointers are now stored on the stack, the special case of handling `p->cp` disappears. Co-authored-by: John Högberg <[email protected]>
2019-08-22Fix filelib:wildcard/1,2 for patterns containing ".." and/or "@"Björn Gustavsson
`..` was broken and only worked when it was used in the beginning of the pattern before any wildcard characters. For example: 1> filelib:wildcard("erts/.."). ["erts/.."] Using `..` preceded by wildcard characters would not work: 1> filelib:wildcard("*/.."). [] `@` is not a wildcard character but is used internally in `filelib` as an escape character and was not handled as other literal characters. That could lead to performance degradation as it disabled an optimization of the matching of the literal prefix of a pattern. It would also cause the following example to fail: 1> filelib:wildcard("@/.."). [] This commit corrects the handling `..` and also makes sure that the use of `@` in a pattern does not degrade performance. https://bugs.erlang.org/browse/ERL-1029
2019-08-22Merge branch 'josevalim/edoc/no-more-inets/OTP-15999/PR-2317'Hans Bolinder
* josevalim/edoc/no-more-inets/OTP-15999/PR-2317: system: Remove special handling of EDoc in otp_SUITE. Remove inets dependency from edoc
2019-08-22Merge branch 'maint'Lukas Larsson
2019-08-21Merge pull request #2352 from distortedsignal/patch-2Lukas Larsson
Add helping verb
2019-08-21Merge branch 'maint'Ingela Anderton Andin
2019-08-21Merge branch 'ingela/ssl/test-cuddle' into maintIngela Anderton Andin
* ingela/ssl/test-cuddle: public_key: Use another time in test certificates ssl: Robustify test case
2019-08-21public_key: Use another time in test certificatesIngela Anderton Andin
Some OpenSSL versions has problems handling the current selected time causing interop tests to fail.
2019-08-21ssl: Robustify test caseIngela Anderton Andin
2019-08-21Merge branch 'hasse/remove_old_IO_requests/OTP-15695'Hans Bolinder
* hasse/remove_old_IO_requests/OTP-15695: stdlib: Remove old I/O-requests from test suites stdlib (doc): Do not mention old requests snmp: Update old format I/O-request sasl: Use encoding when reading terms parsetools (doc): Update old format I/O-requests mnesia: Update old format I/O-request kernel: Update old format I/O-requests stdlib: Remove no longer used function kernel: Remove commented out code stdlib: Remove commented out code
2019-08-21Merge branch 'maint'Hans Bolinder
* maint: eunit: Handle get_until requests with explicit encoding
2019-08-21Merge branch 'hasse/eunit/io_protocol_fix/OTP-16000' into maintHans Bolinder
* hasse/eunit/io_protocol_fix/OTP-16000: eunit: Handle get_until requests with explicit encoding
2019-08-20eunit: Handle get_until requests with explicit encodingHans Bolinder
2019-08-20system: Remove special handling of EDoc in otp_SUITE.Hans Bolinder
2019-08-20Merge branch 'maint'Lukas Larsson
2019-08-20Merge branch 'kpy3/fix-fd-leak-in-logger/OTP-15997' into maintLukas Larsson
* kpy3/fix-fd-leak-in-logger/OTP-15997: Close log files in case of inode change properly
2019-08-20stdlib: Remove old I/O-requests from test suitesHans Bolinder
2019-08-20stdlib (doc): Do not mention old requestsHans Bolinder
2019-08-20snmp: Update old format I/O-requestHans Bolinder
2019-08-20sasl: Use encoding when reading termsHans Bolinder
2019-08-20parsetools (doc): Update old format I/O-requestsHans Bolinder