aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2017-10-02Merge branch 'maint'Ingela Anderton Andin
2017-10-02Merge branch 'ingela/dtls/renegotiate/OTP-14563' into maintIngela Anderton Andin
* ingela/dtls/renegotiate/OTP-14563: dtls: Compleate DTLS renegotiate implementation
2017-10-02Merge branch 'maint'Rickard Green
* maint: Don't allow null in filenames
2017-10-02Merge branch 'rickard/null-char-filenames/ERL-370/OTP-14543' into maintRickard Green
* rickard/null-char-filenames/ERL-370/OTP-14543: Don't allow null in filenames
2017-10-02Merge branch 'lukas/erts/poll-thread/OTP-14346'Lukas Larsson
* lukas/erts/poll-thread/OTP-14346: (25 commits) erts: Trigger ready events when erts_io_control fails erts: enif_select steal test kernel: Rewrite gen_udp_SUITE:read_packet tc erts: disable kernel-poll on OS X vsn < 16 erts: Fix msacc testcase with new poll-thread erts: Add testcases to test IOp and IOt options erts: get_internal_state(check_io_debug) now prints to error_logger erts: Remove eager check io erts: Move all I/O polling to a seperate thread erts: Fix smp_select testcase to use ERL_DRV_USE erts: Fix msacc unmanaged state counter erts: Optimize port_task quick allocator erts: Add ERTS_THR_PREF_QUICK_ALLOC_IMPL erts: Update suspend of scheduler to handle multiple pollsets erts: Add multiple poll sets erts: Some code cleanup for gdb to work better erts: temp_alloc can no longer be disabled erts: Refactor check_io to use one static struct erts: Replace check_io spinlock with lock-less list insertion erts: Add number of enif_select's to check_io_debug ...
2017-10-02erts: Trigger ready events when erts_io_control failsLukas Larsson
2017-10-02erts: enif_select steal testDmytro Lytovchenko
2017-10-02kernel: Rewrite gen_udp_SUITE:read_packet tcLukas Larsson
The old testcase did not test anything at all, it seems like it was written with the non-smp emulator inmind.
2017-10-02erts: disable kernel-poll on OS X vsn < 16Lukas Larsson
kqueue is broken on earlier versions of OS X.
2017-10-02erts: Fix msacc testcase with new poll-threadLukas Larsson
2017-10-02erts: Add testcases to test IOp and IOt optionsLukas Larsson
2017-10-02erts: get_internal_state(check_io_debug) now prints to error_loggerLukas Larsson
2017-10-02erts: Remove eager check ioLukas Larsson
It is not longer relevant when using the poll thread
2017-10-02erts: Move all I/O polling to a seperate threadLukas Larsson
2017-10-02erts: Fix smp_select testcase to use ERL_DRV_USELukas Larsson
This is needed with the new poll-thread implementation as now closed fd's in the pollset will be triggered much faster than before.
2017-10-02erts: Fix msacc unmanaged state counterLukas Larsson
OTP-14652
2017-10-02erts: Optimize port_task quick allocatorSverker Eriksson
for non scheduler threads by using ERTS_THR_PREF_QUICK_ALLOC_IMPL.
2017-10-02erts: Add ERTS_THR_PREF_QUICK_ALLOC_IMPLSverker Eriksson
usable from any (managed?) thread.
2017-10-02erts: Update suspend of scheduler to handle multiple pollsetsRickard Green
2017-10-02erts: Add multiple poll setsSverker Eriksson
2017-10-02erts: Some code cleanup for gdb to work betterLukas Larsson
2017-10-02erts: temp_alloc can no longer be disabledLukas Larsson
temp_alloc is used in such a way that if it ever results in a malloc/free sequence it will slow down the system alot. So it will no longer be possible to disable it and it will not be disabled when using +Mea min. OTP-14651
2017-10-01Merge pull request #1583 from bjorng/bjorn/erts/simplify-is_ssmallBjörn Gustavsson
Eliminate MY_IS_SSMALL()
2017-10-01Merge branch 'maint'Björn Gustavsson
* maint: Fix incorrect internal consistency failure for binary matching code
2017-10-01Merge pull request #1588 from bjorng/bjorn/compiler/fix-match-context/ERL-490Björn Gustavsson
Fix incorrect internal consistency failure for binary matching code
2017-09-30dtls: Compleate DTLS renegotiate implementationIngela Anderton Andin
2017-09-29Merge branch 'raimo/ssl-dist-skip-loopback/OTP-14465'Raimo Niskanen
* raimo/ssl-dist-skip-loopback/OTP-14465: Update runtime dependencies Disable debug function Pass all info's to the ssl_connection state function Remove ssl_tls_dist_ctrl module Remove ssl_tls_dist_ctrl process Remove ssl_tls_dist_proxy Avoid dialyzer warning Separate in and out in dist ctrl Rewrite dist ctrl from port to process Conflicts: lib/ssl/src/ssl.app.src
2017-09-29Update runtime dependenciesRaimo Niskanen
2017-09-29Fix incorrect internal consistency failure for binary matching codeBjörn Gustavsson
4c31fd0b9665 made the merging of match contexts stricter; in fact, a little bit too strict. Two match contexts with different number of slots would be downgraded to the 'term' type. The correct way is to keep the match context but set the number of slots to the lowest number of slots of the two match contexts. https://bugs.erlang.org/browse/ERL-490
2017-09-28Merge branch 'maint'Rickard Green
* maint: Fix xmllint warning
2017-09-28Merge branch 'rickard/doc-fix' into maintRickard Green
* rickard/doc-fix: Fix xmllint warning
2017-09-28Fix xmllint warningRickard Green
2017-09-28Merge branch 'maint'Sverker Eriksson
2017-09-28Merge PR-1586 from Ayanda-D/ets-docs-grammarSverker Eriksson
Fix grammar in 'ets' docs
2017-09-28Fix grammar in ets:foldl/3 and ets:foldr/3 docsAyanda Dube
2017-09-28Disable debug functionRaimo Niskanen
2017-09-28Eliminate MY_IS_SSMALL()Björn Gustavsson
For a long time, there has been the two macros IS_SSMALL() and MY_IS_SSMALL() that do exactly the same thing. There should only be one, and it should be called IS_SSMALL(). However, we must decide which implementation to use. When MY_IS_SSMALL() was introduced a long time ago, it was the most efficient. In a modern C compiler, there might not be any difference. To find out, I used the following small C program to examine the code generation: #include <stdio.h> typedef unsigned int Uint32; typedef unsigned long Uint64; typedef long Sint; #define SWORD_CONSTANT(Const) Const##L #define SMALL_BITS (64-4) #define MAX_SMALL ((SWORD_CONSTANT(1) << (SMALL_BITS-1))-1) #define MIN_SMALL (-(SWORD_CONSTANT(1) << (SMALL_BITS-1))) #define MY_IS_SSMALL32(x) (((Uint32) ((((x)) >> (SMALL_BITS-1)) + 1)) < 2) #define MY_IS_SSMALL64(x) (((Uint64) ((((x)) >> (SMALL_BITS-1)) + 1)) < 2) #define MY_IS_SSMALL(x) (sizeof(x) == sizeof(Uint32) ? MY_IS_SSMALL32(x) : MY_IS_SSMALL64(x)) #define IS_SSMALL(x) (((x) >= MIN_SMALL) && ((x) <= MAX_SMALL)) void original(Sint n) { if (IS_SSMALL(n)) { printf("yes\n"); } } void enhanced(Sint n) { if (MY_IS_SSMALL(n)) { printf("yes\n"); } } gcc 7.2 produced the following code for the original() function: .LC0: .string "yes" original(long): movabs rax, 576460752303423488 add rdi, rax movabs rax, 1152921504606846975 cmp rdi, rax jbe .L4 rep ret .L4: mov edi, OFFSET FLAT:.LC0 jmp puts clang 5.0.0 produced the following code which is slightly better: original(long): movabs rax, 576460752303423488 add rax, rdi shr rax, 60 jne .LBB0_1 mov edi, .Lstr jmp puts # TAILCALL .LBB0_1: ret .Lstr: .asciz "yes" However, in the context of beam_emu.c, clang could produce similar to what gcc produced. gcc 7.2 produced the following code when MY_IS_SSMALL() was used: .LC0: .string "yes" enhanced(long): sar rdi, 59 add rdi, 1 cmp rdi, 1 jbe .L4 rep ret .L4: mov edi, OFFSET FLAT:.LC0 jmp puts clang produced similar code. This code seems to be the cheapest. There are four instructions, and there is no loading of huge integer constants.
2017-09-27Don't allow null in filenamesRickard Green
2017-09-27Merge branch 'maint'Sverker Eriksson
2017-09-27Add git pre-push hookSverker Eriksson
2017-09-27Merge branch 'lukas/erts/fix_threads_error_printout'Lukas Larsson
* lukas/erts/fix_threads_error_printout: erts: Print the error reason when threads fail to start
2017-09-27Merge branch 'kvakvs/zero-size-read_file/ERL-327/PR-1524/OTP-14637'Lukas Larsson
* kvakvs/zero-size-read_file/ERL-327/PR-1524/OTP-14637: erts: On zero-size files attempt to read until EOF
2017-09-27erts: On zero-size files attempt to read until EOFDmytro Lytovchenko
2017-09-27Pass all info's to the ssl_connection state functionRaimo Niskanen
2017-09-27Remove ssl_tls_dist_ctrl moduleRaimo Niskanen
2017-09-26Remove ssl_tls_dist_ctrl processRaimo Niskanen
2017-09-26Merge branch 'maint'Henrik Nord
2017-09-26Merge branch 'dgud/stdlib/unicode-string-bench'Dan Gudmundsson
* dgud/stdlib/unicode-string-bench: stdlib: Add unicode string benchmarks
2017-09-26stdlib: Add unicode string benchmarksDan Gudmundsson
2017-09-25Merge pull request #1572 from gregors/update_docsRickard Green
fix off by one error in docs