aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-11-15erts: Add new module 'counters'Sverker Eriksson
2018-11-15erts: Add new module 'atomics'Sverker Eriksson
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-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-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 '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 '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 '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 '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 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 '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-01ssl: Return error to user that tries to use a "transport accepted" socket forIngela Anderton Andin
other purposes than handshaking
2018-11-01Merge pull request #1990 from max-au/ssl_pem_cache_timezone_fixIngela Andin
ssl: fix timezone-related bug in ssl_pem_cache OTP-15402
2018-11-01Merge branch 'hans/ssh/gitignore' into maintHans Nilsson
* hans/ssh/gitignore: ssh: Add local .gitignore in lib/ssh/test
2018-11-01ssh: Add local .gitignore in lib/ssh/testHans Nilsson
2018-11-01Merge branch 'maint-20' into maintRickard Green
* maint-20: Updated OTP version Prepare release
2018-11-01Merge branch 'rickard/internal_ref_cmp/OTP-15399/ERL-751' into maintRickard Green
* rickard/internal_ref_cmp/OTP-15399/ERL-751: Fix erts_internal_ref_number_cmp()
2018-10-31Updated OTP versionOTP-20.3.8.11Erlang/OTP
2018-10-31Prepare releaseErlang/OTP
2018-10-31Merge branch 'rickard/internal_ref_cmp/OTP-15399/ERL-751' into maint-20Erlang/OTP
* rickard/internal_ref_cmp/OTP-15399/ERL-751: Fix erts_internal_ref_number_cmp()
2018-10-31Fix erts_internal_ref_number_cmp()Rickard Green
2018-10-31Fix bug when beam_jump removes put_tuple instructionsBjörn Gustavsson
`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
2018-10-30Merge pull request #2007 from isadd/patch-1Henrik Nord
Update profiling.xml
2018-10-30Merge pull request #2010 from c-bik/patch-3Hans Nilsson
fix extra parameter in <type>
2018-10-30Merge pull request #1999 from elbrujohalcon/patch-4Hans Bolinder
Fix docs on gen_event optional callback
2018-10-29fix extra parameter in <type>Bikram Chatterjee
```erlang Position = integer() ``` Parameter doesn't exist in `read/3,4`
2018-10-29Refactor releasing of literalsBjörn Gustavsson
Introudce erts_queue_release_literals() to queue a literal area to be released.
2018-10-29Merge branch 'hans/ssh/convert_to_proper/OTP-15312' into maintHans Nilsson
* hans/ssh/convert_to_proper/OTP-15312: ssh: Enable property_test/ssh_eqc_client_server for PropEr ssh: Used fixed localhost address ssh: Fix reporting functions in property_test/ssh_eqc_client_server.erl ssh: Fix property_test/ssh_eqc_client_info_timing.erl
2018-10-29ssh: Enable property_test/ssh_eqc_client_server for PropErHans Nilsson
PropEr does not support the grouped statem-tests. This commits calls the grouped functions from the functions supported by PropEr. Optimized with memoization. Previously only EQC was supported, but the changes to support PROPER is not just a wrapper. Since I don't have access to eqc I can't test the changes and therefore eqc is disabeled. However, with access to eqc it ought to be quite easy to re-enable eqc by studying the diff.
2018-10-29ssh: Used fixed localhost addressHans Nilsson
Problem on Darwin, Solaris and FreeBSD with local addresses in 127.1.0.0/8
2018-10-29ssh: Fix reporting functions in property_test/ssh_eqc_client_server.erlHans Nilsson
2018-10-29ssh: Fix property_test/ssh_eqc_client_info_timing.erlHans Nilsson
Had problems on Darwin, Solaris and FreeBSD.
2018-10-29Merge branch 'maint-18' into maintRickard Green
* maint-18: Updated OTP version Prepare release
2018-10-29Merge pull request #1977 from RogierWV/maint/OTP-15389Lukas Larsson
Fix run_erl.c so it compiles on Solaris
2018-10-29Merge pull request #1983 from binaryseed/bug-default-address_please/OTP-15388Lukas Larsson
Fix the default implementation of address_please
2018-10-29Merge branch 'jimdigriz/os_mon/fix_cpu_sup_android/OTP-15387' into maintLukas Larsson
* jimdigriz/os_mon/fix_cpu_sup_android/OTP-15387: Make Erlang's cpu_sup function better on Android SELinux is another cause of MSG_CTRUNC
2018-10-29Optimize operator '--' and yield on large inputsJohn Högberg
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 <[email protected]>
2018-10-26ssl: fix timezone-related bug in ssl_pem_cacheMaxim Fedorov
Caught with unit test in ssl_pem_cache_SUITE. When local timezone is PST (Pacific Standard Time), PEM cache was not evicting expired entries due to file time converstion was done using calendar:now_to_datetime, while file modification time is actually in local time. Use os:system_time() to align with file_info modified time.
2018-10-26Updated OTP versionOTP-18.3.4.10Erlang/OTP
2018-10-26Prepare releaseErlang/OTP
2018-10-26Merge branch 'sverker/erts/18/memory-leak-terminating-port/OTP-14609' into ↵Erlang/OTP
maint-18 * sverker/erts/18/memory-leak-terminating-port/OTP-14609: erts: Fix memory leak when sending to terminating port
2018-10-26Inline erts_cmpJohn Högberg
This greatly increases the performance of '--'/2 which does a lot of term comparisons.
2018-10-26Update profiling.xmlxbofang
memory typo
2018-10-25Clarify a magical allocation sizeDmytro Lytovchenko