aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2015-10-08Merge branch 'maint'Zandra
2015-10-08Merge branch 'tuncer/leex-leo-liu-result-field-order' into maintZandra
OTP-13031 * tuncer/leex-leo-liu-result-field-order: yecc: fix file/2 error tuple doc leex: fix file/2 error tuple doc (Reported-by: Leo Liu)
2015-10-07ssh: added dh_gex testsHans Nilsson
2015-10-07Merge branch 'maint'Hans Nilsson
2015-10-06ssh: doc updateHans Nilsson
2015-10-06ssh: compression tests skipped if alg is not supportedHans Nilsson
2015-10-06ssh: Bug in [email protected] compression fixedHans Nilsson
2015-10-06Merge branch 'maint'Hans Nilsson
2015-10-06Merge branch 'hans/ssh/aes-ctr-modes/OTP-12939' into maintHans Nilsson
2015-10-06Merge branch 'maint'Henrik Nord
Conflicts: OTP_VERSION
2015-10-06Merge branch 'maint-18' into maintHenrik Nord
2015-10-06ssh: document ctr crypto modeHans Nilsson
2015-10-06ssh: aes192-ctr and aes256-ctr implementedHans Nilsson
2015-10-05Avoid always updating inet_dns in the primary bootstrapBjörn Gustavsson
The include file inet_dns_record_adts.hrl is generated by the Perl script inet_dns_record_adts.pl in a non-deterministic way. That is, every time the script is run, the functions will be in a different order. That will cause inet_dns.beam in the primary bootstrap to be updated every time the bootstrap is updated, even though there is no actual code change. Modify the Perl script to sort the keys pulled out from hashes to make the order deterministic.
2015-10-05beam_reorder: Eliminate compiler crashBjörn Gustavsson
c288ab87 added beam_reorder to move get_tuple_element instructions. Compiling code such as the following would crash the compiler: alloc(_U1, _U2, R) -> V = R#alloc.version, Res = id(V), _ = id(0), Res. The crash would occur because the following two instructions: {get_tuple_element,{x,2},1,{x,1}}. {allocate_zero,1,2}. were swapped and rewritten to: {allocate_zero,1,1}. {get_tuple_element,{x,2},1,{x,1}}. That transformation is not safe because the allocate_zero instruction would kill {x,2}, which is the register that is holding the reference to the tuple. Only do the transformation when the tuple reference is in an x register with a lower number than the destination register.
2015-10-05Prepare releaseErlang/OTP
2015-10-05Merge branch 'dgud/mnesia/restore-leak/OTP-13025' into maint-18Erlang/OTP
* dgud/mnesia/restore-leak/OTP-13025: mnesia: Fix mnesia:restore/2 which caused a disk_log leak
2015-10-05Merge branch 'ia/inets/string-not-atom/OTP-13022' into maint-18Erlang/OTP
* ia/inets/string-not-atom/OTP-13022: inets: Use ?MODULE_STRING instead of ?MODULE as argument should be a string
2015-10-02Merge branch 'kostis/eldap-no-unmatched-returns'Zandra
* kostis/eldap-no-unmatched-returns: Eliminate dialyzer warnings for unmatched_returns
2015-10-02Merge branch 'maint'Zandra
2015-10-02Merge branch 'nybek/supervisor_reporting_error' into maintZandra
* nybek/supervisor_reporting_error: Fix supervisor reporting error
2015-10-02Fix matching with huge binariesKostis Sagonas
In certain cases of matching with very big binaries, the HiPE compiler generated code that would fail the match, even in cases that the matching was successful. The problem was more quite noticeable on 32-bit platforms where certain integer quantities would be represented as bignums. Brief summary of changes: * gen_rtl({bs_skip_bits, ...}, ...) could not handle too large constants. Previously the constants were truncated to word size. * hipe_rtl_binary_match:make_size/3 erroneously assumed that the output of first_part/3 would not overflow when multiplied by 8, which is no longer true. To maintain full performance, the overflow test is only performed when BitsVar was a bignum. Thus, the fast path is identical to before. * hipe_rtl_binary_match:set_high/2 was assuming that only bits below bit 27 were ever set in arguments to bs_skip_bits, which is not only false when the arguments are bignums, but also on 64-bit platforms. The commit includes a test taken from the bs_match_bin_SUITE. Most of the credit for finding these HiPE compiler errors and for creating appropriate fixes for them should go to Magnus Lång.
2015-10-02Compile without errors for exported variablesKostis Sagonas
2015-10-02mnesia: Fix mnesia:restore/2 which caused a disk_log leakDan Gudmundsson
Introduced a leak of disk_log processes in the rewrite to try-catch.
2015-10-02Pass 'raw' options throughRoger Lipscombe
In Erlang R16B03-1, I've been passing raw options to ssl:listen as follows, and it's been working fine: % The constants are defined elsewhere. LOpts = [{raw, ?IPPROTO_TCP, ?TCP_MAXSEG, <<MSS:32/native>>} | ...], {ok, LSocket} = ssl:listen(0, LOpts) In Erlang 17.3, this fails with {option_not_a_key_value_tuple,{raw,6,2,<<64,2,0,0>>}} I originally reported this in http://erlang.org/pipermail/erlang-questions/2014-October/081226.html I need to pass this particular raw option to ssl:listen, because it needs to be applied when the socket is first opened -- between inet:open and prim_inet:listen -- it cannot be applied later by setopts. This means that it needs to be done by inet_tcp:listen/2 -- well, actually by inet:open/8, but... Otherwise it's racey -- a client could connect between prim_inet:listen and the setopts call. The MSS option is advertised in the SYN,ACK packet, and can't be changed later.
2015-10-02Merge branch 'maint'Hans Nilsson
* maint: ssh: 4.1->4.2
2015-10-02ssh: 4.1->4.2Hans Nilsson
2015-10-02Merge branch 'maint'Hans Nilsson
* maint: ssh: document dh-gex default values ssh: document ecdh and hmac-sha2-512
2015-10-02Merge branch 'hans/ssh/doc_dh-gex_defaults' into maintHans Nilsson
* hans/ssh/doc_dh-gex_defaults: ssh: document dh-gex default values
2015-10-02Merge branch 'hans/ssh/doc-ecdh_and_hmac512' into maintHans Nilsson
* hans/ssh/doc-ecdh_and_hmac512: ssh: document ecdh and hmac-sha2-512
2015-10-01inets: Prepare for releaseIngela Anderton Andin
2015-10-01ssh: document dh-gex default valuesHans Nilsson
2015-10-01inets: Use ?MODULE_STRING instead of ?MODULE as argument should be a stringIngela Anderton Andin
2015-10-01Merge branch 'maint'Henrik Nord
2015-10-01Merge branch 'maint-17' into maintHenrik Nord
Conflicts: OTP_VERSION erts/doc/src/notes.xml erts/vsn.mk lib/debugger/doc/src/notes.xml lib/debugger/vsn.mk otp_versions.table
2015-10-01ssh: document ecdh and hmac-sha2-512Hans Nilsson
2015-09-30inets: Add new customize function response_default_headersIngela Anderton Andin
This enables the user to provide default HTTP header values for headers that should always be sent. Note that these values may override built in defaults.
2015-09-30inets: Add behaviour httpd_custom_apiIngela Anderton Andin
Add this now as 18 allows optional callback specs
2015-09-30Merge branch 'maint'Henrik Nord
2015-09-30Merge branch 'stevendanna/eunit-doc-timeout' into maintHenrik Nord
* stevendanna/eunit-doc-timeout: Document eunit's default 5 second test timeout OTP-13017
2015-09-30Merge branch 'legoscia/patch-10' into maintHenrik Nord
* legoscia/patch-10: Fix typos in crypto documentation OTP-13017
2015-09-30Merge branch 'maint'Henrik Nord
2015-09-30Merge branch 'lucafavatella/fix-snmp-doc-typo' into maintHenrik Nord
* lucafavatella/fix-snmp-doc-typo: Fix typo in SNMP MIB in documentation OTP-13017
2015-09-30Merge branch 'maint'Siri Hansen
2015-09-30Merge branch 'siri/ts_lib-get_arg/remove_space/OTP-13015' into maintSiri Hansen
* siri/ts_lib-get_arg/remove_space/OTP-13015: Allow internal spaces in IFEQ test in generated Makefile
2015-09-29Allow internal spaces in IFEQ test in generated MakefileSiri Hansen
When generating Makefile from Makefile.src, ts_lib:get_arg/4 earlier removed all spaces in the extracted argument. The code was probably meant for removing leading and trailing spaces only, and is now corrected to do so.
2015-09-28Don't log headings without contentSiri Hansen
The netconf server collects data until an XML tag is completed before pretty printing received data. Each time data is logged, a heading like the following is printed: = CT_NETCONFC ==== 28-Sep-2015::16:43:46,842 =================================== = Client <0.194.0> <----- {"127.0.0.1",2060} =================================== This commit removes printing of this header if there is no data to be printed below - i.e. if the XML tag is not yet complete and we are waiting for more data.
2015-09-28Speed up receive of many small packagesSiri Hansen
When data from the netconf server was split into many ssh packages, the netconf client performed really bad. This is now improved.
2015-09-28Merge branch 'bjorn/compiler/misc'Björn Gustavsson
* bjorn/compiler/misc: Move select_val optimization from beam_clean to beam_peep beam_type: Improve optimizations by keeping track of booleans beam_type: Improve optimization by keeping track of integers beam_type: Remove unused clause beam_type: Fix forgotten change of internal representation beam_dead: Improve optimization of literal binary matching beam_dead: Optimize select_val instructions Move out bit syntax optimizations from beam_block sys_core_fold: Extend the list of BIFs that return integers v3_codegen: Optimize matching of the final size-less binary segment Regain full coverage of beam_block
2015-09-28Move select_val optimization from beam_clean to beam_peepBjörn Gustavsson
There is an optimization in beam_clean that will remove values having the same label as the failure label in a select_val instruction. Conceptually, this optimization is in the wrong module since ideally beam_clean is a mandatory pass that should not do optimizations. Furthermore, this part of beam_clean is called three times (from beam_dead, beam_peep, and as a compiler pass from the 'compile' module), but it only does useful one of the times it is called. Therefore, move this optimization to the beam_peep pass. The same optimization is done in beam_dead, but unfortunately it misses some opportunities for optimization because the code sharing optimization in beam_jump (share/1) runs after beam_dead. It would be more satisfactory to have this optimization only in beam_dead, but it turned out not to be trivial. If we try to run beam_jump:share/1 before beam_dead, some optimizations will no longer work in beam_dead because fallthroughs have been eliminated. For the moment, the possible solutions to this problem seems to involve more work and more complicated code than the gain from eliminating the duplicated optimization would gain.