aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2017-10-02Update primary bootstrapBjörn Gustavsson
2017-10-02Merge branch 'maint'Hans Nilsson
2017-10-02Merge pull request #1546 from michalmuskala/bs-add-optBjörn Gustavsson
Optimise size calculation for binary construction OTP-14654
2017-10-02Merge branch 'hans/public_key/verify_hostname_ip_address/OTP-14653' into maintHans Nilsson
2017-10-02public_key: verify ip (both v4 and v6)Hans Nilsson
2017-10-02public_key: Added IP4 address checks to hostname_verification testsHans Nilsson
2017-10-02Merge branch 'bjorn/erts/improve-beam-ops'Björn Gustavsson
* bjorn/erts/improve-beam-ops: Move out variables from the head of combined instructions Change operand from 'P' to 'Q' for i_apply_last and i_apply_fun_last Add CHECK_ALIGNED() for testing storage destinations instrs.tab: Add missing -no_next directives beam_load.c: Generalize the 'P' operator in the packing engine Break out most of the initialization from process_main() Eliminate the OpCode() macro Eliminate unnecessary and inconsistent casts Refactor macros for accessing Beam instructions beam_emu: Make order of macros consistent beam_SUITE: Strengthen test of packed registers
2017-10-02Merge pull request #1589 from bjorng/bjorn/erts/instruction-offsetsBjörn Gustavsson
Point out the correct line number in stack traces
2017-10-02Merge branch 'maint'Ingela Anderton Andin
2017-10-02Merge branch 'ingela/inets-typo/ERL-492' into maintIngela Anderton Andin
* ingela/inets-typo/ERL-492: inets: Fix documentation typo
2017-10-02inets: Fix documentation typoIngela Anderton Andin
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-01Move out variables from the head of combined instructionsBjörn Gustavsson
Move out from the head the variables that are only used in the excute phase.
2017-10-01Change operand from 'P' to 'Q' for i_apply_last and i_apply_fun_lastBjörn Gustavsson
All other instructions that increment the stack pointer takes a 'Q' operand.
2017-10-01Add CHECK_ALIGNED() for testing storage destinationsBjörn Gustavsson
Add the CHECK_ALIGNED() macro that can be used for testing that the storage destination is word-aligned.
2017-10-01instrs.tab: Add missing -no_next directivesBjörn Gustavsson
2017-10-01beam_load.c: Generalize the 'P' operator in the packing engineBjörn Gustavsson
In the 'P' operator, don't assume that a packed target label ('f' or 'j') is always the leftmost argument. Instead, transfer the patch position from the accumulator to the stack.
2017-10-01Break out most of the initialization from process_main()Björn Gustavsson
process_main() is already too big.
2017-10-01Eliminate the OpCode() macroBjörn Gustavsson
Introduce the IsOpCode() macro that can be used to compare instructions.
2017-10-01Eliminate unnecessary and inconsistent castsBjörn Gustavsson
Consider the types in the code below: BeamInstr* I; . . . BeamInstr* next; next = (BeamInstr *) *I; Goto(next); This is illogical. If 'I' points to a BeamInstr, then 'next' should be a BeamInstr, not a pointer to a BeamInstr. The Goto() macros does not require a pointer, because it will cast its argument to a void* anyway. Therefore, this code example can be simplified to: BeamInstr* I; . . . BeamInstr next; next = *I; Goto(next); Similarly, we can remove the casts in the macros when NO_JUMP_TABLE is defined.
2017-10-01Refactor macros for accessing Beam instructionsBjörn Gustavsson
The BeamOp() macro in erl_vm.h is clumsy to use. All users cast the return value to BeamInstr. Define new macros that are easier to use. In the future, we might want to pack an operand into the same word as the pointer to the instruction, so we will define two macros. BeamIsOpCode() is used to rewrite code like this: if (Instr == (BeamInstr) BeamOp(op_i_func_info_IaaI) { ... } to: if (BeamIsOpCode(Instr, op_i_func_info_IaaI)) { ... } BeamOpCodeAddr(op_apply_bif) is used when we need the address for an instruction. Also elimiminate the global variables em_* in beam_emu.c. They are not really needed. Use the BeamOpCodeAddr() macro instead.
2017-10-01beam_emu: Make order of macros consistentBjörn Gustavsson
The inconsistent order has annoyed me for a long time. While at it, also remove the unecessary definition of LabelAddr() if NO_JUMP_TABLE is defined.
2017-10-01beam_SUITE: Strengthen test of packed registersBjörn Gustavsson
Test more instructions and use register numbers >= 512.
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-30Point out the correct line number in stack tracesBjörn Gustavsson
Sometimes the line number in a stack trace could be wrong, for example for this code: t() -> Res = id(x), %<== Wrong line number. Res + 1. id(I) -> I. The line number pointed out in the stack trace would be the line before the line where the exception occurred. The reason is the way the increment instruction instruction is implemented: OpCase(i_increment_rWtd): { increment_reg_val = r(0); } I -= 1; goto increment__execute; OpCase(i_increment_xWtd): { increment_reg_val = xb(I[1]); } goto increment__execute; increment__execute: /* Common code for increment */ . . . (The implementation in OTP 20 is similar, but hand-coded directly in beam_emu.c instead of generated.) The instruction i_increment_rWtd decrements the instruction pointer (I) before jumping to the common code. That means that I points *before* the 'increment' instruction. If there is a 'line' instruction directly before the 'increment' instruction (as there is in this example), the instruction pointer will point before that line. Thus the previous line will be picked up instead. To eliminate this bug, we must never decrement the instruction pointer. Instead, we can increment the other (longer) instructions in the same group of combined instructions: OpCase(i_increment_rWtd): { increment_reg_val = r(0); } goto increment__execute; OpCase(i_increment_xWtd): { increment_reg_val = xb(I[1]); } I += 1; goto increment__execute; increment__execute: /* Common code for increment */ . . . Also fix a bug that was only a potential bug when ddaed7774eb0a introduced relative jumps, but is now a real bug. See the added comment for SET_I_REL() in macros.tab.
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