aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2017-06-13Don't deconstruct {TPid, Caps} unnecessarilyAnders Svensson
The tuple is returned from and passed to callbacks, so retain the tuple instead of its elements.
2017-06-13Remove use of process dictionary in decodeAnders Svensson
By passing additional arguments through it.
2017-06-13dialyzer: Run more of analyses in subprocessHans Bolinder
Memory consumption is marginally reduced.
2017-06-13dialyzer: Do not use two records for PLTsHans Bolinder
Instead of two records, #plt{} with dict:s and #mini_plt{} with ETS tables, one record is used for representing PLT:s in RAM. The #mini_plt{} is the one now used throughout analyses, but it is called #plt{}. When writing the PLT to file, another record is used, #file_plt{} (as before). When creating #file_plt{}, the #plt{} is deleted (it cannot be used for further analyses).
2017-06-13dialyzer: Improve compression of an ETS tableHans Bolinder
2017-06-13dialyzer: Minor optimizationsHans Bolinder
Avoid some ETS-lookups. Marginal speed-ups.
2017-06-13hipe: Remove 'undefined' from a record field's typeHans Bolinder
2017-06-13dialyzer: Warn about unused unknown typesHans Bolinder
2017-06-13hipe: Remove use of 'catch'Hans Bolinder
Substitute try/catch for an obsoletely used catch. Thanks to Kostis for pointing it out.
2017-06-13dialyzer: Correct a mistakeHans Bolinder
The arguments of calls to a debug function are no longer evaluated.
2017-06-13dialyzer: Rearrange some code to save memoryHans Bolinder
2017-06-13dialyzer: Optimize by avoiding some table lookupsHans Bolinder
In typesig: do not look up the module's types unless it is necessary.
2017-06-13hipe: Optimize contract decoration somewhatHans Bolinder
2017-06-13hipe: Correct a typespecHans Bolinder
2017-06-13v3_kernel: Keep orddicts sortedBjörn Gustavsson
2017-06-13sys_core_fold: Ensure that orddict keys are uniqueBjörn Gustavsson
All keys in an orddict must be unique. sys_core_fold:sub_sub_scope/1 broke that rule. It was probably harmless, but it is better to avoid such rule violations.
2017-06-13Merge branch 'ingela/ssl/dtls-doc'Ingela Anderton Andin
* ingela/ssl/dtls-doc: ssl: Document DTLS
2017-06-13Remove reference to removed module 'asn1rt'Björn Gustavsson
2017-06-13Merge branch 'hans/ssh/doc_clearify_timeouts/OTP-14216'Hans Nilsson
2017-06-13Merge branch 'hasse/stdlib/fun2ms_partial_eval/OTP-14454/ERIERL-29'Hans Bolinder
* hasse/stdlib/fun2ms_partial_eval/OTP-14454/ERIERL-29: stdlib: Evaluate expressions in fun2ms bodies
2017-06-13Capitulate on SCTP vs sparc-sun-solaris2.10Anders Svensson
Despite the efforts of commits 1df74351 and 111261d1 to salvage it, SCTP is just flakey on sparc-sun-solaris2.10. In addition to the woes of the loopback address, even connect on other addresses sporadically returns {error, eafnosupport}, so the initial check for a working SCTP (aka resistance) is futile. Revert both commits.
2017-06-12Remove obsolete traffic testcaseAnders Svensson
Outgoing requests no longer write to the request table, as of commit a4da06a5.
2017-06-12Fix dialyzer warningsAnders Svensson
diameter_sctp.erl:292: Record construction #transport{parent::pid(),mode::{'accept',atom() | pid() | port() | {atom(),atom()}},active::'false',recv::'true',os::0,packet::'true',message_cb::'undefined',send::'false'} violates the declared type of field message_cb::'false' | fun() | maybe_improper_list(fun() | maybe_improper_list(any(),[any()]) | {atom(),atom(),[any()]},[any()]) | {atom(),atom(),[any()]} diameter_sctp.erl:302: Record construction #transport{mode::{'accept',atom() | pid() | port() | {atom(),atom()}},active::'false',recv::'true',os::0,packet::'true',message_cb::'undefined',send::'false'} violates the declared type of field message_cb::'false' | fun() | maybe_improper_list(fun() | maybe_improper_list(any(),[any()]) | {atom(),atom(),[any()]},[any()]) | {atom(),atom(),[any()]}
2017-06-12Merge branch 'siri/cuddle-master'Siri Hansen
* siri/cuddle-master: Update sasl_report_SUITE to accept new size of sasl.log
2017-06-12Remove minor diameter_config bloatAnders Svensson
Folded when I should have mapped.
2017-06-12Fix maximum AVP arity checkAnders Svensson
2017-06-12Use avp_arity/1 when creating a zero groupAnders Svensson
Converting with list_to_binary/1 appears to be faster than the equivalent binary comprehension: << (z(F,A)) || {F,A} <- avp_arity(Name) >>
2017-06-12Use avp_arity/1 when detecting missing AVPsAnders Svensson
Recursing over the entire list of arities and values is faster than retrieving them one at a time.
2017-06-12Add dictionary function avp_arity/1Anders Svensson
2017-06-12Don't prepend bit for sub binary optimizationAnders Svensson
2017-06-12Remove upgrade-related codeAnders Svensson
This and subsequent commits are destined for OTP 20.0.
2017-06-12Simplify value setting at decodeAnders Svensson
2017-06-12Simplify AVP decode as mapfoldlAnders Svensson
2017-06-12Be more flexible in what can be packed as 'AVP'Anders Svensson
In particular, allow {Name, Value} and {Dict, Name, Value} without requiring a diameter_avp wrapper.
2017-06-12Remove unnecessary value mappingAnders Svensson
Since value is ignored.
2017-06-12Use dictionary '#new-'/1 when creating CEAAnders Svensson
Which is the equivalent of what was done with '#new-'/1 and '#set-'/2.
2017-06-12Optimize sub binary creationAnders Svensson
2017-06-12Optimize sub binary creationAnders Svensson
base/diameter_codec.erl:716: Warning: OPTIMIZED: creation of sub binary delayed
2017-06-12Optimize sub binary creationAnders Svensson
base/diameter_codec.erl:545: Warning: OPTIMIZED: creation of sub binary delayed
2017-06-12Optimize sub binary creationAnders Svensson
base/diameter_codec.erl:600: Warning: OPTIMIZED: creation of sub binary delayed
2017-06-12Don't match for no useful reasonAnders Svensson
2017-06-12Avoid modifying records during encodeAnders Svensson
2017-06-12Don't create intermediate terms unnecessarily during encodeAnders Svensson
2017-06-12Don't create intermediate binaries unnecessarily during encodeAnders Svensson
Dict:avp(encode, Value, Name) no longer needs to return a binary, only an iolist(). Message encode runs list_to_binary/1 to convert accumulated lists into a message binary.
2017-06-12Fix encode of Grouped AVP as {Dict, Name, Data}Anders Svensson
This is a special case to allow encode of something other than an iolist. Eg. #diameter_avp{data = {diameter_gen_base_rfc6733, 'Proxy-Info', [{'Proxy-Host', "HOST"}, {'Proxy-State', "STATE"}]}} Only worked as expected for AVPs of type other than Grouped.
2017-06-12Remove minor encode bloatAnders Svensson
As when detecting missing AVPs, extract a list of field/value pairs in one step, which looks to be slightly more efficient. Flattening the list was unnecessary since the result is passed to list_to_binary.
2017-06-12Make encoding of Diameter header more efficientAnders Svensson
On the same theme as the parent commit, building binaries in fewer steps.
2017-06-12Make encoding of diameter_avp records more efficientAnders Svensson
Prepend the header in a single step. Before: {[{{diameter_codec,pack_avp,1}, 7000, 126.074, 51.058}], { {diameter_codec,pack_avp,2}, 7000, 126.074, 51.058}, % [{{diameter_codec,pack_avp,5}, 7000, 51.144, 25.758}, {{diameter_codec,pad,2}, 7000, 23.844, 23.570}, {suspend, 1, 0.028, 0.000}]}. After: {[{{diameter_codec,pack_avp,1}, 7000, 78.563, 26.986}], { {diameter_codec,pack_avp,2}, 7000, 78.563, 26.986}, % [{{diameter_codec,pack_avp,6}, 7000, 51.459, 26.381}, {suspend, 4, 0.118, 0.000}]}.
2017-06-12Replace slow binary comprehensionsAnders Svensson
Which appears to be about an order of magnitude slower than just creating a binary of the desired size.
2017-06-12Decode message header in a single matchAnders Svensson