aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2018-11-06beam_utils: Remove unused API functionsBjörn Gustavsson
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.
2018-11-06beam_trim: Stop using beam_utils:is_not_used/3Björn Gustavsson
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.
2018-11-06beam_jump: Stop using beam_utils:is_killed/3Björn Gustavsson
Prior to this commit, the optimizations using beam_utils:is_killed/3 were only executed a few times in the entire compiler test suite.
2018-11-06beam_trim, beam_jump: Print Name/Arity if there is a crashBjörn Gustavsson
This will help investigation of compiler bugs.
2018-11-06beam_trim: Use maps/cerl_sets instead of gb_trees/gb_setsBjörn Gustavsson
2018-11-02Merge branch 'maint'Björn Gustavsson
* maint: Fix bug when beam_jump removes put_tuple instructions Conflicts: lib/compiler/src/beam_jump.erl lib/compiler/test/beam_jump_SUITE.erl
2018-11-02Merge pull request #2003 from peterdmv/ssl/tls1.3-statem-skeleton/OTP-15310Péter Dimitrov
Implement TLS 1.3 state machine skeleton
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 pull request #2011 from bjorng/bjorn/compiler/beam_exceptBjörn Gustavsson
beam_except: Generalize translation to func_info instructions
2018-11-02Merge branch 'maint'John Högberg
* maint: 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 '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 'maint'Ingela Anderton Andin
2018-11-01ssl: Fix failing property testsPéter Dimitrov
- 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
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 branch 'bmk/20180927/remove_otp_mibs2/OTP-14984'Micael Karlberg
2018-11-01Merge branch 'bjorn/compiler/diffable'Björn Gustavsson
* bjorn/compiler/diffable: scripts/diffable: Correct the number of modules being compiled scripts/diffable: Use the diffable compiler option Add a diffable option for the compiler scripts/diffable: Refactor option parsing
2018-11-01Merge branch 'maint'Ingela Anderton Andin
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 'maint'Hans Nilsson
* maint: ssh: Add local .gitignore in lib/ssh/test
2018-11-01ssh: Add local .gitignore in lib/ssh/testHans Nilsson
2018-10-31Merge PR-1997 from sverker/erts/ordered_set-select-improvements/OTP-15325Sverker Eriksson
Even more scalable ETS ordered_set with write_concurrency
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-30stdlib: Add ets_SUITE:smp_ordered_iterationSverker Eriksson
to provoke iteration over a moving ordered_set with write_concurrency and make sure we hit all "stable" keys.
2018-10-30stdlib: Improve stim_cat_ord_set in ets_SUITESverker Eriksson
to generate a routing tree with keys that fit each test case.
2018-10-30Merge branch 'maint'Hans Nilsson
* maint: fix extra parameter in <type> Update profiling.xml Fix docs on gen_event optional callback
2018-10-30Merge pull request #1984 from mgrachev/fix-typosHenrik Nord
Fix typos
2018-10-30Update README.internalHenrik Nord
2018-10-30Merge pull request #2010 from c-bik/patch-3Hans Nilsson
fix extra parameter in <type>
2018-10-30beam_except: Generalize translation to func_info instructionsBjörn Gustavsson
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.)
2018-10-30Merge pull request #1999 from elbrujohalcon/patch-4Hans Bolinder
Fix docs on gen_event optional callback
2018-10-30Merge pull request #2001 from ng-0/feature/doc/erl_docgen_typo1Hans Bolinder
Correct a spelling mistake in doc-build.xml.
2018-10-29fix extra parameter in <type>Bikram Chatterjee
```erlang Position = integer() ``` Parameter doesn't exist in `read/3,4`
2018-10-29Merge pull request #2005 from kostis/hipe-hipe-spec-cleanupsBjörn Gustavsson
hipe: Cleanup and fix specs of the hipe module
2018-10-29Merge branch 'maint'Hans Nilsson
* maint: 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'Lukas Larsson
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 'maint'Lukas Larsson
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-26erts: Join empty base nodes in catreeSverker Eriksson
The original implementation did not do this due to fear of bad performance. But we think the negative effect of "leaking" empty base nodes is more important to fix. To get the bad performance a special kind of access patterns is needed where base nodes are frequently emptied and then repopulated soon again. ets_SUITE:throughput_benchmark for example did not show any negative effect from this commit at all.
2018-10-25Merge PR-1963 from iblis17/ib/fbsd-hipe OTP-15386Sverker Eriksson
hipe_llvm_main: fix tmpfs dir on FreeBSD
2018-10-25Merge PR-1986 from kostis/hipe-ErLLVM-check OTP-15385Sverker Eriksson
HiPE: Fix check for when ErLLVM is available
2018-10-25hipe: Cleanup and fix specs of the hipe moduleKostis Sagonas
There was a lot of confusion between file vs. module names in the function specification of the hipe module (as also discovered by #1992) and this PR cleans up and fixes them.
2018-10-24ssl: Implement decode of "supported_groups"Péter Dimitrov
Change-Id: I42d7779bb3558aa3a2bea5be065c559d01c0a32b
2018-10-24ssl: Implement TLS 1.3 state machine skeletonPéter Dimitrov
Change-Id: I4b382a7907247cc2099951fdefa40f1511b1123e