aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-11-09Merge branch 'maint'John Högberg
* maint: Remove --/2 from dirty BIF tests
2018-11-09Merge branch 'john/erts/remove-minusminus-dirty-test' into maintJohn Högberg
* john/erts/remove-minusminus-dirty-test: Remove --/2 from dirty BIF tests
2018-11-09Remove --/2 from dirty BIF testsJohn Högberg
Now that it traps, --/2 would hang forever when building under --enable-dirty-schedulers-test.
2018-11-08Merge pull request #2013 from bjorng/bjorn/compiler/clean-up-beam_utilsBjörn Gustavsson
Clean up the beam_utils module
2018-11-08Merge branch 'maint'Ingela Anderton Andin
2018-11-08Merge branch 'ingela/ssl/erl-dist/ERL-770/OTP-15418' into maintIngela Anderton Andin
* ingela/ssl/erl-dist/ERL-770/OTP-15418: ssl: Correct gen_statem return value
2018-11-08Merge branch 'maint'Hans Nilsson
* maint: ssh: Fix doc error in daemon 'exec' option
2018-11-08Merge branch 'hans/ssh/exec_doc_error/OTP-15416' into maintHans Nilsson
* hans/ssh/exec_doc_error/OTP-15416: ssh: Fix doc error in daemon 'exec' option
2018-11-08ssh: Fix doc error in daemon 'exec' optionHans Nilsson
2018-11-08Merge branch 'maint'Ingela Anderton Andin
2018-11-08Merge branch 'ingela/public-key/more-sha2' into maintIngela Anderton Andin
* ingela/public-key/more-sha2: public_key: Add additional ASN-1 definitions for DSA SHA2 support
2018-11-07Remerge branch 'sverker/erts/ordered_set-select-improvements/OTP-15325'Sverker Eriksson
* sverker/erts/ordered_set-select-improvements/OTP-15325: erts: Tidy some ordered_set iteration code erts: Fix bug for catree iteration
2018-11-07ssl: Correct gen_statem return valueIngela Anderton Andin
Could cause renegotiation to fail
2018-11-07Merge branch 'peterdmv/ssl/fix-logging/OTP-15372'Péter Dimitrov
* peterdmv/ssl/fix-logging/OTP-15372: ssl: Fix logging in new sender process Change-Id: I9e9bfc906dfefb846fe45f80b11d138c415fb61e
2018-11-06public_key: Add additional ASN-1 definitions for DSA SHA2 supportIngela Anderton Andin
2018-11-06Merge branch 'maint'Björn Gustavsson
* maint: Implement a tab for persistent terms in crashdump viewer Add tests of persistent terms for crashdump_viewer Add a persistent term storage Refactor releasing of literals Extend the sharing-preserving routines to optionally copy literals Conflicts: erts/emulator/Makefile.in erts/emulator/beam/erl_process_dump.c erts/preloaded/ebin/erts_internal.beam erts/preloaded/ebin/init.beam lib/sasl/src/systools_make.erl
2018-11-06Merge branch 'bjorn/erts/persistent_terms/OTP-14669' into maintBjörn Gustavsson
* bjorn/erts/persistent_terms/OTP-14669: Implement a tab for persistent terms in crashdump viewer Add tests of persistent terms for crashdump_viewer Add a persistent term storage Refactor releasing of literals Extend the sharing-preserving routines to optionally copy literals
2018-11-06beam_trim: Add comments about how all this worksBjörn Gustavsson
Also rename a few functions in attempt to make it clearer.
2018-11-06beam_trim: Recognize more safe labelsBjörn Gustavsson
Recognize more safe labels to enable stack trimming in more circumstances.
2018-11-06beam_trim: Handle the new binary matching instructionsBjörn Gustavsson
2018-11-06beam_utils: Remove unused API functionsBjörn Gustavsson
Remove the now unused beam_utils:is_not_used/3 and beam_utils:is_killed/3 functions and friends. Starting out as simple functions a long time ago, those functions have grown and grown to support more optimizations. The number of bugs found and fixed in beam_utils has also grown over time.
2018-11-06beam_trim: Stop using beam_utils:is_not_used/3Björn Gustavsson
Eliminate the use of beam_utils:is_not_used/3 by implementing a simple is_not_used() function in beam_trim itself. The new version actually makes trimming possible in more circumstances, because beam_utils:is_not_used/3 was too conservative for the purpose of stack trimming (it was previously used for optimizations where it was necessary to be more conservative). Alternatives considered: I tried to implement stack trimming in beam_ssa_codegen but it turned out to be a total mess. Not surprisingly, it turns out that an optimization that renumbers Y registers is hard to do on an intermediate representation that still use variables instead of BEAM registers.
2018-11-06beam_jump: Stop using beam_utils:is_killed/3Björn Gustavsson
Prior to this commit, the optimizations using beam_utils:is_killed/3 were only executed a few times in the entire compiler test suite.
2018-11-06beam_trim, beam_jump: Print Name/Arity if there is a crashBjörn Gustavsson
This will help investigation of compiler bugs.
2018-11-06beam_trim: Use maps/cerl_sets instead of gb_trees/gb_setsBjörn Gustavsson
2018-11-06Implement a tab for persistent terms in crashdump viewerBjörn Gustavsson
Co-authored-by: Siri Hansen <[email protected]>
2018-11-06Add tests of persistent terms for crashdump_viewerBjörn Gustavsson
2018-11-06Add a persistent term storageBjörn Gustavsson
Persistent terms are useful for storing Erlang terms that are never or infrequently updated. They have the following advantages: * Constant time access. A persistent term is not copied when it is looked up. The constant factor is lower than for ETS, and no locks are taken when looking up a term. * Persistent terms are not copied in garbage collections. * There is only ever one copy of a persistent term (until it is deleted). That makes them useful for storing configuration data that needs to be easily accessible by all processes. Persistent terms have the following drawbacks: * Updates are expensive. The hash table holding the keys for the persistent terms are updated whenever a persistent term is added, updated or deleted. * Updating or deleting a persistent term triggers a "global GC", which will schedule a heap scan of all processes to search the heap of all processes for the deleted term. If a process still holds a reference to the deleted term, the process will be garbage collected and the term copied to the heap of the process. This global GC can make the system less responsive for some time. Three BIFs (implemented in C in the emulator) is the entire interface to the persistent term functionality: * put(Key, Value) to store a persistent term. * get(Key) to look up a persistent term. * erase(Key) to delete a persistent term. There are also two additional BIFs to obtain information about persistent terms: * info() to return a map with information about persistent terms. * get() to return a list of a {Key,Value} tuples for all persistent terms. (The values are not copied.)
2018-11-06ssl: Fix logging in new sender processPéter Dimitrov
Change-Id: I2beb99aab1920d866dcdc91f67fc306fc16e9496
2018-11-06Merge branch 'maint'Ingela Anderton Andin
2018-11-06Merge branch ↵Ingela Anderton Andin
'ingela/ssl/controlling-process-allowed-on-transport-accept-socket' into maint * ingela/ssl/controlling-process-allowed-on-transport-accept-socket: ssl: controlling_process should be allowed on transpor_accept sockets along with handshake
2018-11-05ssl: controlling_process should be allowed on transpor_accept sockets alongIngela Anderton Andin
with handshake Fix of commit 68d9244ae33e5eea36250c3bb9ffe046a4db5647
2018-11-05Merge branch 'maint'Ingela Anderton Andin
2018-11-05Merge branch 'ingela/ssl/signature-check/ERL-763/OTP-15415' into maintIngela Anderton Andin
* ingela/ssl/signature-check/ERL-763/OTP-15415: ssl: Correct filter function
2018-11-02ssl: Correct filter functionIngela Anderton Andin
2018-11-02Merge branch 'maint'Ingela Anderton Andin
2018-11-02Merge branch 'ingela/ssl/deliver-all-data-at-close/ERL-731/OTP-15412' into maintIngela Anderton Andin
* ingela/ssl/deliver-all-data-at-close/ERL-731/OTP-15412: ssl: Extend check for undelivered data at closing
2018-11-02ssl: Extend check for undelivered data at closingIngela Anderton Andin
This is a timing related bug that alas is hard to test
2018-11-02Merge branch 'maint'Ingela Anderton Andin
2018-11-02Merge branch 'ingela/ssl/bench_SUITE-clean-start' into maintIngela Anderton Andin
* ingela/ssl/bench_SUITE-clean-start: ssl: Make sure benchmark SUITE has a clean start
2018-11-02ssl: Make sure benchmark SUITE has a clean startIngela Anderton Andin
2018-11-02Merge branch 'maint'Björn Gustavsson
* maint: Fix bug when beam_jump removes put_tuple instructions Conflicts: lib/compiler/src/beam_jump.erl lib/compiler/test/beam_jump_SUITE.erl
2018-11-02Merge pull request #2003 from peterdmv/ssl/tls1.3-statem-skeleton/OTP-15310Péter Dimitrov
Implement TLS 1.3 state machine skeleton
2018-11-02Merge branch 'bjorn/compiler/fix-beam_jump/ERL-759/OTP-15400' into maintBjörn Gustavsson
* bjorn/compiler/fix-beam_jump/ERL-759/OTP-15400: Fix bug when beam_jump removes put_tuple instructions
2018-11-02Merge pull request #2011 from bjorng/bjorn/compiler/beam_exceptBjörn Gustavsson
beam_except: Generalize translation to func_info instructions
2018-11-02Merge branch 'maint'John Högberg
* maint: Optimize operator '--' and yield on large inputs Inline erts_cmp Clarify a magical allocation size Fix trapping in lists:reverse/2
2018-11-02Merge branch 'john/erts/minusminus_trapping/OTP-15371' into maintJohn Högberg
* john/erts/minusminus_trapping/OTP-15371: Optimize operator '--' and yield on large inputs Inline erts_cmp Clarify a magical allocation size Fix trapping in lists:reverse/2
2018-11-02Merge branch 'maint'Ingela Anderton Andin
2018-11-02Merge branch 'ingela/ssl/transport-accept-socket/ERL-756/OTP-15384' into maintIngela Anderton Andin
* ingela/ssl/transport-accept-socket/ERL-756/OTP-15384: ssl: Return error to user that tries to use a "transport accepted" socket for other purposes than handshaking
2018-11-01Merge branch 'sverker/enif-cancel-select/OTP-15095'Sverker Eriksson
* sverker/enif-cancel-select/OTP-15095: erts: Bump erl_nif minor version and ERL_NIF_MIN_ERTS_VERSION