aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2015-02-19Merge branch 'dgud/erlang/pr/116'Dan Gudmundsson
* dgud/erlang/pr/116: observer: Add SASL log view for processes
2015-02-19observer: Add SASL log view for processescrownedgrouse
Add a new menu to toggle log view. Disabled by default. Disabled if rb_server already started on observed node, in order not to interfere with somebody else. If enabled, add a tab in process view where log entries related to pid process are shown. Need an observed node with at least a version R16B2, due to the use of newly capability to rb to write into a file descriptor (on the observing node).
2015-02-19Short-circuit common dict operationsJosé Valim
Stop traversing all segments and buckets of empty dictionaries by adding a clause that checks the dictionary size. This improved compilation of an erlang project from 7.5s to 5.5s seconds when trying out a sample implementation of erl_lint that uses dicts.
2015-02-19Merge branch 'ia/ssl/delete-vs-remove' into maintIngela Anderton Andin
* ia/ssl/delete-vs-remove: ssl: remove -> delete
2015-02-19Implement kernel inet_dist_{listen,connect}_optionsRaimo Niskanen
2015-02-18Add missing -group flag in ct_run help textPeter Andersson
2015-02-18beam_validator: Exit immediately on crashesBjörn Gustavsson
The beam_validator catches all exceptions and collect them. It makes more sense to don't catch 'error' and 'exit' exceptions, but to just print out the name of the current function and pass on the exception just as all other compilation passes do. Those kind of exceptions are the symptoms of the kind of severe but easily catched bugs that occur during development.
2015-02-18beam_validator: Remove the file/1 and files/1 functionsBjörn Gustavsson
Before the beam_validator was added as compiler pass, it was a standalone module that could analyse existing .beam files and .S files. Even though beam_validator has been part of the compiler for many releases, it still supports the analysis of .beam and .S files. To reduce the code bloat and to improve coverage of beam_validator, remove the file/1 and files/1 functions and all associated help functions. We'll need to update the test suite, since some of the checked in .S files have errors that beam_validator ignores, but that will not be accepted when running them throught the compiler using the 'from_asm' option. In particular, we will need to export all functions that should be validated (since the beam_clean pass will remove any function that is not possible to call).
2015-02-18beam_validator: Remove support for all other unsupported instructionsBjörn Gustavsson
2015-02-18beam_validator: Remove support for unsupported bit syntax instructionsBjörn Gustavsson
2015-02-18beam_validator: Tighten and simplify map validation codeBjörn Gustavsson
The assert_strict_literal_termorder/1 function is used to validate the get_map_elements and has_map_fields instructions. In neither case is it useful to allow an empty lists of fields, so we should no longer allow an empty list. The mmap/2 function is cute, but it is used in only one place, so it is much simpler to write a special-purpose function to extract the keys from the list of map pairs.
2015-02-18beam_utils: Correct test for has_map_fields in is_pure_test/1Björn Gustavsson
The has_map_fields test was not recognized in is_pure_test/1, because beam_a has rewritten the {list,_} part of instruction.
2015-02-18map_SUITE: Cover comparisons of 'nil' in v3_codegenBjörn Gustavsson
2015-02-18Merge branch 'bjorn/stdlib/string-tokens/OTP-12422'Björn Gustavsson
* bjorn/stdlib/string-tokens/OTP-12422: Optimize string:tokens/2 Modernize and strengthen the test case for string:tokens/2
2015-02-18Optimize string:tokens/2Björn Gustavsson
We can save some time by reversing the original string before starting the tokenization. When there is only one separator, we can save even more time by treating that case specially so that we don't have to call lists:member/2 for each character.
2015-02-18Merge branch 'maint'Zandra Hird
2015-02-18Merge branch 'richcarl/shell-module-md5-info' into maintZandra Hird
* richcarl/shell-module-md5-info: make c:m/1 show module MD5 OTP-12500
2015-02-18Merge branch 'siri/cuddle-with-tests' into maintSiri Hansen
* siri/cuddle-with-tests: [sasl] Make test unreliable of kernel.appup
2015-02-18Merge branch 'siri/test-upgrade'Siri Hansen
* siri/test-upgrade: [ct] Improve support for upgrade test of application
2015-02-18Merge branch 'maint'Zandra Hird
2015-02-18Merge branch 'stevendanna/eldap-anon-auth-fix' into maintZandra Hird
* stevendanna/eldap-anon-auth-fix: Correctly process anon_auth option for eldap:open()
2015-02-18ssl: remove -> deleteIngela Anderton Andin
Correct mistake
2015-02-18Merge branch 'maint'Zandra Hird
2015-02-18Merge branch 'studzien/ct_cover_paths' into maintZandra Hird
* studzien/ct_cover_paths: Add tests for absolute incl_dirs path and for excl_dirs [ct_cover] Fix paths of incl_dirs in cover spec OTP-12498
2015-02-18Remove infinite loop in inet:gethostbyname_tm/4Raimo Niskanen
An erroneous lookup option is needed to trigger the bug, and that can only enter the system from a parsed file e.g .inetrc. Pinpointed by Emil Holmström
2015-02-18Merge branch 'bjorn/compiler/clean-up/OTP-12497'Björn Gustavsson
* bjorn/compiler/clean-up/OTP-12497: cerl: Teach is_literal_term/1 to handle maps cerl: Add missing is_c_map/1 function v3_core: Simplify translation of maps sys_core_fold: Simplify opt_simple_let_2/6 Break out inlining of 'lists' functions to a new module sys_core_fold: Add is_int_type/2 and is_tuple_type/2 sys_core_fold: Refactor type information access core_lib: Deprecate functions that are no longer used by the compiler Eliminate use of core_lib:literal_value/1 Eliminate all uses of core_lib:get_anno/1 and core_lib:set_anno/2 core_lint: Eliminate call to core_lib:is_literal/1 test_lib: Include test_server.hrl using -include_lib sys_core_fold: Rename add_scope/2 to fit in the sub_* family v3_core: Suppress compiler-generated calls in guards v3_core: Remove out-commented code v3_core: Remove unused function argument for bc_tq() v3_core: Use Core Erlang annotations in a type-safe way
2015-02-18Document the termination semantics of a zip handleDaniel White
2015-02-17Modify some tests to verify that new functionality worksPeter Andersson
2015-02-17observer: Add scheduler run queue to cdvDan Gudmundsson
Missing information
2015-02-17make c:m/1 show module MD5Richard Carlsson
2015-02-17Add Debug infoDan Gudmundsson
2015-02-17Merge branch 'ia/ssl/soft-upgrade-test'Ingela Anderton Andin
* ia/ssl/soft-upgrade-test: ssl: Prepare for 18 ssl: Add soft upgrade test suite
2015-02-17Merge branch 'maint'Ingela Anderton Andin
2015-02-17ssl: erlang:timestamp -> os:timestampIngela Anderton Andin
Complements commit 450773958165539951cd431a9233ce7666ec20e2
2015-02-17Don't discard component diameter_avp list on Grouped AVP decode errorAnders Svensson
The AVPs of an incoming Diameter message diameter_codec:decode/2,3 are decoded into a diameter_packet record in two ways: as a message-specific record in the 'msg' field and as a deep list of diameter_avp records in the 'avps' field. The record decode came first; the diameter_avp decode came later to support the Diameter relay application, but can also be convenient for non-relay applications. The diameter_avp representation can be used with outgoing messages, but what exactly is supported for isn't clearly documented. In the diameter_avp list representation, it's AVPs of type Grouped that lead to nesting: instead of a diameter_avp record, a Grouped AVP is represented by a diameter_avp list whose head is the Grouped AVP itself, and whose tail is the list of component AVPs. The diameter_avp decode was broken in the case of decode errors: the Grouped AVP was represented as a bare diameter_avp, and the component records were lost. The decode now produces the intended list. Note that component AVPs that could not be decoded will have 'undefined' in their data field.
2015-02-17Fix process dictionary manipulation during message decodeAnders Svensson
Decode can span multiple codec modules, so written entries cannot be tagged on ?MODULE.
2015-02-16Make it possible to print in the test case log from on_tc_* hook funcsPeter Andersson
OTP-12468
2015-02-16Properly lint map expressions in erl_lintAnthony Ramine
The returned variable table when linting a map expression shouldn't include variables that didn't appear in the expression. Reported-By: Alexei Sholik
2015-02-16Add helper function to reduce code duplicationAndy Ledvina
I was going through application_controller.erl looking for why something was behaving a certain way, saw a comment about removing this duplicated code one day, and decided to move that a step forward.
2015-02-16Modernize and strengthen the test case for string:tokens/2Björn Gustavsson
2015-02-13Merge branch 'maint'Zandra Hird
2015-02-13Merge branch 'emauton/mnesia_create_table_docfix' into maintZandra Hird
* emauton/mnesia_create_table_docfix: Fix index for #person.address in create_table/2
2015-02-13Merge branch 'maint'Zandra Hird
2015-02-13Merge branch 'crownedgrouse/fix_mnesia_subscribe_doc' into maintZandra Hird
* crownedgrouse/fix_mnesia_subscribe_doc: Fix xml doc return value mnesia:(un)subscribe
2015-02-13ssl: Prepare for 18Ingela Anderton Andin
2015-02-13ssl: Add soft upgrade test suiteIngela Anderton Andin
2015-02-12Add zlib limited output buffer size functionalityСергей Прохоров
This functionality may be useful for compressed streams with high compression ratio (in case of gzip it may be up to x1000), when small amount of compressed data will produce large amount of uncompressed output. This may lead to DoS attacks, because server easily goes out of memory. Example of such high compression ratio stream: ``` dd if=/dev/zero of=sparse.bin bs=1MB count=100 # 100mb of zeroes gzip sparse.bin # 95kb sparse.bin.gz $ erl > {ok, Compressed} = file:read_file("sparse.bin.gz"), > 97082 = size(Compressed), > Uncompressed = zlib:gunzip(Compressed), > 100000000 = iolist_size(Uncompressed). ```
2015-02-12[dialyzer] Fix a bug concerning map() typesHans Bolinder
2015-02-12Merge remote branch 'origin/hb/dialyzer/fix_map_type/OTP-12472' into maintHans Bolinder
* origin/hb/dialyzer/fix_map_type/OTP-12472: [dialyzer] Fix a bug concerning map() types
2015-02-12cerl: Teach is_literal_term/1 to handle mapsBjörn Gustavsson