aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2019-02-25ssl: Add tests for hello_retry_request and groupsPéter Dimitrov
Change-Id: I0e4a9337d5d52a0e39ccc16d2d2e2b123ea2f9b5
2019-02-25ssl: Implement 'hello_retry_request'Péter Dimitrov
Refactor state 'start' and handler functions. Send 'hello_retry_request' if ClientHello does not contain sufficient information. Change-Id: I9fccb38aff5ba88bff75887261e8b1487bd64e17
2019-02-25Merge branch 'solvip/stdlib/gen_statem/export-start-types'Raimo Niskanen
* solvip/stdlib/gen_statem/export-start-types: Fix links within gen_statem doc
2019-02-25Fix links within gen_statem docRaimo Niskanen
2019-02-25Merge branch 'bmk/20190225/systools_copyright/OTP-14831'Micael Karlberg
2019-02-25[sasl] Fixed copyright end dateMicael Karlberg
OTP-14831
2019-02-25Merge branch 'solvip/stdlib/gen_statem/export-start-types'Raimo Niskanen
* solvip/stdlib/gen_statem/export-start-types: Create a gen_statem type for enter_loop options gen_statem exports types related to starting & naming
2019-02-25Create a gen_statem type for enter_loop optionsRaimo Niskanen
2019-02-25Merge branch 'maint'Dan Gudmundsson
* maint: mnesia: Avoid raise in overload reports
2019-02-25Merge branch 'dgud/mnesia/overload-raise/ERIERL-310/OTP-15619' into maintDan Gudmundsson
* dgud/mnesia/overload-raise/ERIERL-310/OTP-15619: mnesia: Avoid raise in overload reports
2019-02-25Merge branch 'bmk/20190225/systools/socket_and_net_preloaded/OTP-14831'Micael Karlberg
2019-02-25[sasl|sock|net] Update 'preloaded' functionMicael Karlberg
Add net and socket (modules) to the list of preloaded modules (returned by the systools_make:preloaded/0 function, why?). OTP-14831
2019-02-25Merge branch 'rickard/deprecations-removals'Rickard Green
OTP-15621 OTP-15622 * rickard/deprecations-removals: Document deprecations and removals
2019-02-25Document deprecations and removalsRickard Green
2019-02-25crypto: New experimental apiHans Nilsson
The new files api_ng.h and api_ng.c implements an api using EVP. The api is not by any mean new, except for the crypto application in Erlang/OTP. The aims at using the block api in a stream manor, that is 1) call crypto_init/4 2..N) call crypto_update/{2,3} The purpose is to simplify and hopefully optimize the SSL and SSH applications. By keeping the crypto state in C in an enif_resource the costful state copying in SSL and SSH is reduced with 1-2 per message sent or received. Changes in other files are for adaptation like FIPS etc since many functions uses the central get_cipher_type() function.
2019-02-25Merge branch 'peterdmv/ssl/dtls_logging'Péter Dimitrov
* peterdmv/ssl/dtls_logging: ssl: Add debug logging for DTLS Change-Id: I83bf117c6c3428c57010e0e581775dd941fc829a
2019-02-25Merge pull request #2156 from cwfoo/filename-quoteHans Bolinder
Fix missing double quote in filename documentation
2019-02-25Merge branch 'maint'Hans Bolinder
* maint: dialyzer: Fix maps as parameter of opaque types dialyzer: Fix key check of lists:key{search,member,find}()
2019-02-25Merge branch 'dialyzer/hasse/fix_bug_erl_bif_types/OTP-15570' into maintHans Bolinder
* dialyzer/hasse/fix_bug_erl_bif_types/OTP-15570: dialyzer: Fix maps as parameter of opaque types dialyzer: Fix key check of lists:key{search,member,find}()
2019-02-24Fix missing double quote in filename documentationChuan Wei Foo
2019-02-22Merge branch 'bmk/20190204/socket_as_nif/OTP-14831'Micael Karlberg
2019-02-22[net] Updated kernel.app.src (net removed from app)Micael Karlberg
The net module has been moved from the kernel app into the erts app (preloaded), but was still in the (kernel) app file. OTP-14831
2019-02-22Merge pull request #2138 from wojtekmach/wm-socksMicael Karlberg
gen_tcp, gen_udp: Update specs
2019-02-22Merge branch 'maint'Björn Gustavsson
* maint: Clarify the atomic guarantees for ets:update_counter()
2019-02-22Clarify the atomic guarantees for ets:update_counter()Björn Gustavsson
The phrasing "no process can access the ETS table in the middle of the operation" implies that the entire table is looked during the operation, which is not true if `write_concurrency` is enabled.
2019-02-22Merge branch 'bjorn/compiler/use-lists-types'Björn Gustavsson
* bjorn/compiler/use-lists-types: beam_ssa_type: Use types from some 'lists' functions
2019-02-22Merge branch 'bjorn/compiler/fix-name-capture'Björn Gustavsson
* bjorn/compiler/fix-name-capture: sys_core_fold: Remove an unsafe optimization beam_ssa_type: Optimize setelement with partially constant arguments beam_ssa_opt: Do local CSE of get_tuple_element instructions
2019-02-22Merge branch ↵Lukas Larsson
'lukas/erts/fragment-dist-messages/OTP-13397/OTP-15610/OTP-15611/OTP-15612/OTP-15613' * lukas/erts/fragment-dist-messages/OTP-13397/OTP-15610/OTP-15611/OTP-15612/OTP-15613: erts: Add debug dist obuf memory leak check win32: Fix ./otp_build debuginfo_win32 Make ld.sh on windows print better error reason erts: Fix so that externals with creation 0 compare equal to all erts: Expand etp to look for free processes erts: Implement trapping while sending distr exit/down erts: Add ERL_NODE_BOOKKEEP to node tables refc erts: Refactor ErtsSendContext to be ErtsDSigSendContext erts: Add distr testcases for fragmentation erts: Make remote send of exit/2 trap erts: Implement fragmentation of distrubution messages erts: Expand distribution protocol documentation erts: Move reason in dist messages to payload erts: Remove a copy of distribution data payload erts: Yield later during process exit and allow free procs to run erts: Refactor rbt _yielding to use reductions erts: Limit binary printout for %.XT in erts_print
2019-02-22Merge branch 'maint'Lukas Larsson
2019-02-22erts: Implement fragmentation of distrubution messagesLukas Larsson
2019-02-22Merge pull request #2148 from llelf/sed-otp_buildLukas Larsson
Fix a particular sed invocation in otp_build
2019-02-22Merge branch 'maint'Ingela Anderton Andin
2019-02-22Merge branch 'ingela/diameter/ssl-dialyzer-types' into maintIngela Anderton Andin
* ingela/diameter/ssl-dialyzer-types: diameter: Update to use exported types
2019-02-22Merge branch 'ingela/merge/master'Ingela Anderton Andin
2019-02-22Merge branch 'maint'Ingela Anderton Andin
Conflicts: lib/ssl/doc/src/ssl.xml lib/ssl/src/ssl.erl
2019-02-22Fix dialyzer error and wrong StateName match bugRaimo Niskanen
2019-02-22Merge branch 'ingela/ssl/doc-enhancements' into maintIngela Anderton Andin
* ingela/ssl/doc-enhancements: ssl: Enhance documentation after "use-spec-rewrite"
2019-02-22ssl: Enhance documentation after "use-spec-rewrite"Ingela Anderton Andin
2019-02-22mnesia: Avoid raise in overload reportsDan Gudmundsson
Several processes could invoke adjust_log_writes, which could cause overload reports.
2019-02-22Merge branch 'peterdmv/ssl/validate_client_finished'Péter Dimitrov
* peterdmv/ssl/validate_client_finished: ssl: Validate Client Finished Change-Id: I495c0d998423dc5a760d1ca0109c4107c5919f54
2019-02-22ssl: Add debug logging for DTLSPéter Dimitrov
Change-Id: I4858972053436b05b83d72c552974fc9da3843d4
2019-02-21erts: Move reason in dist messages to payloadLukas Larsson
The dist messages EXIT, EXIT2 and MONITOR_DOWN have been updated with new versions that send the reason term as part of the payload of the message instead of as part of the control message. This allows the decode of the reason to be done by the receiving process instead of the dist entry which in turn makes it possible for multiple decodes to be done in parallel. This change is done in order to make it easier to fragment the potentially large payload of EXIT, EXIT2 and MONITOR_DOWN into multiple distribution messages. OTP-15611
2019-02-21erts: Remove a copy of distribution data payloadLukas Larsson
Before this change the inet driver was in list mode and thus the data from it had to be copied when received by the dist entry. This change puts the tcp port in binary mode and makes the any refc binary created by it be used all the way to the process where it is decoded. Thus eliminating one copy of the entire message payload.
2019-02-21erts: Yield later during process exit and allow free procs to runLukas Larsson
OTP-15610
2019-02-21Merge branch 'maint'Siri Hansen
2019-02-21Merge branch 'siri/logger/check-inode-of-log/ERL-850/OTP-15578' into maintSiri Hansen
* siri/logger/check-inode-of-log/ERL-850/OTP-15578: [logger] Keep track of inode for logger_std_h log file
2019-02-21Merge branch 'maint'Raimo Niskanen
* maint: Inline local function Optimize binary matching Clean up module boundaries Remove redundant return of CipherState Use iovec() internally in send path Small binary handling optimizations Optimize read_application_data with Okasaki queue Try to optimize decode_cipher_text/3 Optimize application data aggregation Optimize TLS record parsing with Okasaki queue Cache strong_random_bytes for IV Optimize padding Produce less garbage in encrypt loop Reorganize #data{} Tidy up state machine Add server GC info to bench results Conflicts: lib/ssl/src/ssl_cipher.erl lib/ssl/src/ssl_connection.erl lib/ssl/src/ssl_connection.hrl lib/ssl/src/ssl_logger.erl lib/ssl/src/ssl_record.erl lib/ssl/src/ssl_record.hrl lib/ssl/src/tls_connection.erl lib/ssl/src/tls_record.erl lib/ssl/src/tls_sender.erl
2019-02-21Merge branch 'raimo/ssl/tls-optimization/OTP-15529' into maintRaimo Niskanen
* raimo/ssl/tls-optimization/OTP-15529: Inline local function Optimize binary matching Clean up module boundaries Remove redundant return of CipherState Use iovec() internally in send path Small binary handling optimizations Optimize read_application_data with Okasaki queue Try to optimize decode_cipher_text/3 Optimize application data aggregation Optimize TLS record parsing with Okasaki queue Cache strong_random_bytes for IV Optimize padding Produce less garbage in encrypt loop Reorganize #data{} Tidy up state machine Add server GC info to bench results
2019-02-21beam_ssa_type: Use types from some 'lists' functionsBjörn Gustavsson
This commit lets the compiler know about the return type of some of the functions in the `lists` module. Knowing about the return will allow the compiler to emit fewer type test instructions, and also fewer instructions for throwing `case_clause` or `badmatch` exceptions, thus producing slightly faster and more compact code. This change makes the `lists` module a part of the language, but it could be argued that it already is because several functions (e.g. `member/2` and `keymember/3`) are implemented in as BIFs in the runtime system. Therefore, a user cannot simply change the `lists` module and expect everything to continue working as before. The compiler will now know the return types for the following functions: all/2 any/2 keymember/3 member/2 prefix/2 suffix/2 dropwhile/2 duplicate/2 filter/2 flatten/1 map/2 mapfoldl/3 mapfoldr/3 partition/2 reverse/1 sort/1 splitwith/1 takewhile/1 unzip/1 usort/1 zip/2 zipwith/3
2019-02-21sys_core_fold: Remove an unsafe optimizationBjörn Gustavsson
`sys_core_fold` has an optimization of repeated pattern matching. For example, when a record is matched the first time, the pattern is remembered. When the same record is matched again, the matching does not need to be repeated, but the variables bound in the first matching can be re-used. It turns out that that there is a name capture problem when the old inliner is used. The old inliner is used when explicitly inling certain functions, and by the compiler test suites for testing the compiler. The name capture problem could be eliminated by more aggressive variable renaming when inlining. But, fortunately, given the new SSA passes, this optimization is no longer as essential as it used to be. Removing the optimization turns out to be mostly benefical, leading to a smaller stack frame in many cases. Also remove the optimizations of `element/2`, `is_record/3`, and `setelement/3` from `sys_core_fold`. Because matched patterns are no longer remembered, those optimizations can very rarely be applied any more. (Those same optimizations are already done in `beam_ssa_type`.)