Age | Commit message (Collapse) | Author |
|
* maint:
Remove --/2 from dirty BIF tests
|
|
* john/erts/remove-minusminus-dirty-test:
Remove --/2 from dirty BIF tests
|
|
Now that it traps, --/2 would hang forever when building under
--enable-dirty-schedulers-test.
|
|
Clean up the beam_utils module
|
|
|
|
* ingela/ssl/erl-dist/ERL-770/OTP-15418:
ssl: Correct gen_statem return value
|
|
* maint:
ssh: Fix doc error in daemon 'exec' option
|
|
* hans/ssh/exec_doc_error/OTP-15416:
ssh: Fix doc error in daemon 'exec' option
|
|
|
|
|
|
* ingela/public-key/more-sha2:
public_key: Add additional ASN-1 definitions for DSA SHA2 support
|
|
* sverker/erts/ordered_set-select-improvements/OTP-15325:
erts: Tidy some ordered_set iteration code
erts: Fix bug for catree iteration
|
|
Could cause renegotiation to fail
|
|
* peterdmv/ssl/fix-logging/OTP-15372:
ssl: Fix logging in new sender process
Change-Id: I9e9bfc906dfefb846fe45f80b11d138c415fb61e
|
|
|
|
* 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
|
|
* 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
|
|
Also rename a few functions in attempt to make it clearer.
|
|
Recognize more safe labels to enable stack trimming in more
circumstances.
|
|
|
|
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.
|
|
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.
|
|
Prior to this commit, the optimizations using beam_utils:is_killed/3
were only executed a few times in the entire compiler test suite.
|
|
This will help investigation of compiler bugs.
|
|
|
|
Co-authored-by: Siri Hansen <[email protected]>
|
|
|
|
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.)
|
|
Change-Id: I2beb99aab1920d866dcdc91f67fc306fc16e9496
|
|
|
|
'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
|
|
with handshake
Fix of commit 68d9244ae33e5eea36250c3bb9ffe046a4db5647
|
|
|
|
* ingela/ssl/signature-check/ERL-763/OTP-15415:
ssl: Correct filter function
|
|
|
|
|
|
* ingela/ssl/deliver-all-data-at-close/ERL-731/OTP-15412:
ssl: Extend check for undelivered data at closing
|
|
This is a timing related bug that alas is hard to test
|
|
|
|
* ingela/ssl/bench_SUITE-clean-start:
ssl: Make sure benchmark SUITE has a clean start
|
|
|
|
* maint:
Fix bug when beam_jump removes put_tuple instructions
Conflicts:
lib/compiler/src/beam_jump.erl
lib/compiler/test/beam_jump_SUITE.erl
|
|
Implement TLS 1.3 state machine skeleton
|
|
* bjorn/compiler/fix-beam_jump/ERL-759/OTP-15400:
Fix bug when beam_jump removes put_tuple instructions
|
|
beam_except: Generalize translation to func_info instructions
|
|
* maint:
Optimize operator '--' and yield on large inputs
Inline erts_cmp
Clarify a magical allocation size
Fix trapping in lists:reverse/2
|
|
* 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
|
|
|
|
* 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
|
|
* sverker/enif-cancel-select/OTP-15095:
erts: Bump erl_nif minor version and ERL_NIF_MIN_ERTS_VERSION
|