summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* New attributes argtag and since to nameKennethL/erl_docgen/erlref_updateKenneth Lundin2018-11-081-1/+4
| | | | Introduce new attributes argtag and since to the name element. The since attribute is also added to the module element. This allows to specify in which OTP release a specific function was introduced
* Merge branch 'maint'Ingela Anderton Andin2018-11-081-2/+15
|\
| * Merge branch 'ingela/public-key/more-sha2' into maintIngela Anderton Andin2018-11-081-2/+15
| |\ | | | | | | | | | | | | * ingela/public-key/more-sha2: public_key: Add additional ASN-1 definitions for DSA SHA2 support
| | * public_key: Add additional ASN-1 definitions for DSA SHA2 supportIngela Anderton Andin2018-11-061-2/+15
| | |
* | | Remerge branch 'sverker/erts/ordered_set-select-improvements/OTP-15325'Sverker Eriksson2018-11-073-76/+118
|\ \ \ | | | | | | | | | | | | | | | | | | | | * sverker/erts/ordered_set-select-improvements/OTP-15325: erts: Tidy some ordered_set iteration code erts: Fix bug for catree iteration
| * | | erts: Tidy some ordered_set iteration codeSverker Eriksson2018-11-012-65/+102
| | | | | | | | | | | | | | | | | | | | with variable name changes, some comments and moved catree_find_prev_from_pb_key_root after its twin.
| * | | erts: Fix bug for catree iterationSverker Eriksson2018-11-012-11/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | with keys containing off-heap terms. The passed key may actually be the one already saved (if nodes have been joined), in which case we do nothing. Calling destroy_route_key() may destroy off-heap data.
* | | | Merge branch 'peterdmv/ssl/fix-logging/OTP-15372'Péter Dimitrov2018-11-072-12/+26
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * peterdmv/ssl/fix-logging/OTP-15372: ssl: Fix logging in new sender process Change-Id: I9e9bfc906dfefb846fe45f80b11d138c415fb61e
| * | | | ssl: Fix logging in new sender processPéter Dimitrov2018-11-062-12/+26
| | | | | | | | | | | | | | | | | | | | Change-Id: I2beb99aab1920d866dcdc91f67fc306fc16e9496
* | | | | Merge branch 'maint'Björn Gustavsson2018-11-0634-61/+2288
|\ \ \ \ \ | |/ / / / |/| | / / | | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
| * | | Merge branch 'bjorn/erts/persistent_terms/OTP-14669' into maintBjörn Gustavsson2018-11-0634-62/+2291
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
| | * | | Implement a tab for persistent terms in crashdump viewerBjörn Gustavsson2018-11-068-14/+148
| | | | | | | | | | | | | | | | | | | | Co-authored-by: Siri Hansen <siri@erlang.org>
| | * | | Add tests of persistent terms for crashdump_viewerBjörn Gustavsson2018-11-062-2/+57
| | | | |
| | * | | Add a persistent term storageBjörn Gustavsson2018-11-0623-19/+2040
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.)
| | * | | Refactor releasing of literalsBjörn Gustavsson2018-10-292-23/+38
| | | | | | | | | | | | | | | | | | | | | | | | | Introudce erts_queue_release_literals() to queue a literal area to be released.
| | * | | Extend the sharing-preserving routines to optionally copy literalsBjörn Gustavsson2018-10-242-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the implementation of the zero-copying term storage, we want to preserve sharing, but not copy literals because the modules holding the literals could be unloaded under our feet.
* | | | | Merge branch 'maint'Ingela Anderton Andin2018-11-063-2/+52
|\ \ \ \ \ | |/ / / /
| * | | | Merge branch ↵Ingela Anderton Andin2018-11-063-2/+52
| |\ \ \ \ | | | |_|/ | | |/| | | | | | | | | | | | | | | | | | | | | | '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
| | * | | ssl: controlling_process should be allowed on transpor_accept sockets alongIngela Anderton Andin2018-11-053-2/+52
| |/ / / | | | | | | | | | | | | | | | | | | | | with handshake Fix of commit 68d9244ae33e5eea36250c3bb9ffe046a4db5647
* | | | Merge branch 'maint'Ingela Anderton Andin2018-11-053-14/+43
|\ \ \ \ | |/ / /
| * | | Merge branch 'ingela/ssl/signature-check/ERL-763/OTP-15415' into maintIngela Anderton Andin2018-11-053-14/+43
| |\ \ \ | | | | | | | | | | | | | | | | | | | | * ingela/ssl/signature-check/ERL-763/OTP-15415: ssl: Correct filter function
| | * | | ssl: Correct filter functionIngela Anderton Andin2018-11-023-14/+43
| |/ / /
* | | | Merge branch 'maint'Ingela Anderton Andin2018-11-021-1/+2
|\ \ \ \ | |/ / /
| * | | Merge branch 'ingela/ssl/deliver-all-data-at-close/ERL-731/OTP-15412' into maintIngela Anderton Andin2018-11-021-1/+2
| |\ \ \ | | | | | | | | | | | | | | | | | | | | * ingela/ssl/deliver-all-data-at-close/ERL-731/OTP-15412: ssl: Extend check for undelivered data at closing
| | * | | ssl: Extend check for undelivered data at closingIngela Anderton Andin2018-11-021-1/+2
| | | | | | | | | | | | | | | | | | | | This is a timing related bug that alas is hard to test
* | | | | Merge branch 'maint'Ingela Anderton Andin2018-11-021-0/+1
|\ \ \ \ \ | |/ / / /
| * | | | Merge branch 'ingela/ssl/bench_SUITE-clean-start' into maintIngela Anderton Andin2018-11-021-0/+1
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | * ingela/ssl/bench_SUITE-clean-start: ssl: Make sure benchmark SUITE has a clean start
| | * | | | ssl: Make sure benchmark SUITE has a clean startIngela Anderton Andin2018-11-021-0/+1
| | | | | |
* | | | | | Merge branch 'maint'Björn Gustavsson2018-11-022-7/+26
|\ \ \ \ \ \ | |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * maint: Fix bug when beam_jump removes put_tuple instructions Conflicts: lib/compiler/src/beam_jump.erl lib/compiler/test/beam_jump_SUITE.erl
| * | | | | Merge branch 'bjorn/compiler/fix-beam_jump/ERL-759/OTP-15400' into maintBjörn Gustavsson2018-11-022-7/+27
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * bjorn/compiler/fix-beam_jump/ERL-759/OTP-15400: Fix bug when beam_jump removes put_tuple instructions
| | * | | | | Fix bug when beam_jump removes put_tuple instructionsBjörn Gustavsson2018-10-312-7/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `beam_jump` could remove a `put_tuple` instruction when the tuple would not be used, but it would leave the following `put` instructions. Make sure they are removed. https://bugs.erlang.org/browse/ERL-759
* | | | | | | Merge pull request #2003 from peterdmv/ssl/tls1.3-statem-skeleton/OTP-15310Péter Dimitrov2018-11-0214-278/+1425
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Implement TLS 1.3 state machine skeleton
| * | | | | | | ssl: Fix failing property testsPéter Dimitrov2018-11-014-176/+386
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Updated message generators: ClientHello, ServerHello and EncryptedExtensions - Fixed encoding of the extensions 'signature_algorithms' and 'signature_algorithms_cert' - Updated empty extension definitions Change-Id: I9415e2d022744b9ed4667d20aee2553637ed49f8
| * | | | | | | ssl: Implement decode of "supported_groups"Péter Dimitrov2018-10-244-65/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I42d7779bb3558aa3a2bea5be065c559d01c0a32b
| * | | | | | | ssl: Implement TLS 1.3 state machine skeletonPéter Dimitrov2018-10-2411-56/+521
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I4b382a7907247cc2099951fdefa40f1511b1123e
| * | | | | | | ssl: Add module for Finite Field DH groupsPéter Dimitrov2018-10-244-4/+448
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I80bc21b2dee82f4d5641fa8443882838f7c602ba
* | | | | | | | Merge pull request #2011 from bjorng/bjorn/compiler/beam_exceptBjörn Gustavsson2018-11-022-33/+71
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | beam_except: Generalize translation to func_info instructions
| * | | | | | | | beam_except: Generalize translation to func_info instructionsBjörn Gustavsson2018-10-302-33/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `beam_except` pass replaces some calls to `erlang:error/1` or `erlang:error/2` with specialized instructions in order to reduce the size of the BEAM code. In functions that do binary matching, `beam_except` would fail to translate the instructions that generate a `function_clause` exception. Here is an example: bsum(<<H:16,T/binary>>, Acc) -> bsum(T, Acc+H); bsum(<<>>, Acc) -> Acc. The BEAM code that generates the `function_clause` exception looks like this: {label,4}. {test_heap,2,3}. {put_list,{x,1},nil,{x,1}}. %% The following two instructions prevents the translation. {bs_set_position,{x,2},{x,0}}. {bs_get_tail,{x,2},{x,0},3}. {test_heap,2,2}. {put_list,{x,0},{x,1},{x,1}}. {move,{atom,function_clause},{x,0}}. {line,...}. {call_ext,2,{extfunc,erlang,error,2}}. Make the translation of `function_clause` exceptions smarter, so that the following code will be produced: {label,4}. {bs_set_position,{x,2},{x,0}}. {bs_get_tail,{x,2},{x,0},3}. {jump,{f,1}}. %Jump to `func_info` instruction. (This issue was noticed when looking at the code generated by https://github.com/tomas-abrahamsson/gpb.)
* | | | | | | | | Merge branch 'maint'John Högberg2018-11-0210-221/+852
|\ \ \ \ \ \ \ \ \ | | |_|/ / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * maint: Optimize operator '--' and yield on large inputs Inline erts_cmp Clarify a magical allocation size Fix trapping in lists:reverse/2
| * | | | | | | | Merge branch 'john/erts/minusminus_trapping/OTP-15371' into maintJohn Högberg2018-11-0210-221/+852
| |\ \ \ \ \ \ \ \ | | |_|_|_|/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
| | * | | | | | | Optimize operator '--' and yield on large inputsJohn Högberg2018-10-296-143/+766
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The removal set now uses a red-black tree instead of an array on large inputs, decreasing runtime complexity from `n*n` to `n*log(n)`. It will also exit early when there are no more items left in the removal set, drastically improving performance and memory use when the items to be removed are present near the head of the list. This got a lot more complicated than before as the overhead of always using a red-black tree was unacceptable when either of the inputs were small, but this compromise has okay-to-decent performance regardless of input size. Co-authored-by: Dmytro Lytovchenko <dmytro.lytovchenko@erlang-solutions.com>
| | * | | | | | | Inline erts_cmpJohn Högberg2018-10-263-63/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This greatly increases the performance of '--'/2 which does a lot of term comparisons.
| | * | | | | | | Clarify a magical allocation sizeDmytro Lytovchenko2018-10-251-1/+2
| | | | | | | | |
| | * | | | | | | Fix trapping in lists:reverse/2John Högberg2018-10-251-14/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The first stage wasn't bounded by reductions, and it bumped far more reductions than it should have due to a logic bug.
* | | | | | | | | Merge branch 'maint'Ingela Anderton Andin2018-11-023-3/+50
|\ \ \ \ \ \ \ \ \ | |/ / / / / / / /
| * | | | | | | | Merge branch 'ingela/ssl/transport-accept-socket/ERL-756/OTP-15384' into maintIngela Anderton Andin2018-11-023-3/+50
| |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
| | * | | | | | | | ssl: Return error to user that tries to use a "transport accepted" socket forIngela Anderton Andin2018-11-013-3/+50
| |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | other purposes than handshaking
* | | | | | | | | Merge branch 'sverker/enif-cancel-select/OTP-15095'Sverker Eriksson2018-11-011-2/+8
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * sverker/enif-cancel-select/OTP-15095: erts: Bump erl_nif minor version and ERL_NIF_MIN_ERTS_VERSION
| * | | | | | | | | erts: Bump erl_nif minor version and ERL_NIF_MIN_ERTS_VERSIONSverker Eriksson2018-11-011-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | with ticket syntax.
* | | | | | | | | | Merge branch 'bmk/20180927/remove_otp_mibs2/OTP-14984'Micael Karlberg2018-11-0156-4080/+36
|\ \ \ \ \ \ \ \ \ \