aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2016-05-09edoc: Make EDoc work with typed record fieldsHans Bolinder
2016-05-09compiler: Let module_info(attributes) skip more attributesHans Bolinder
'callback' and 'optional_callbacks' are no longer wild attributes.
2016-05-09syntax_tools: Add tests for types and specsHans Bolinder
2016-05-09syntax_tools: Update igor to handle typed recordsHans Bolinder
2016-05-09syntax_tools: Add support for types and specsHans Bolinder
In particular, types and specs can be pretty-printed. There are issues with macros (left behind by epp_dodger). Typed record fields are handled. Fields are represented by triples instead of two-tuples, which is an incompatible change. Some attributes (-export_type, -spec, -type, &c) have been given meaning in recent time, but the set of wild attributes (see Barklund's spec) is not changed.
2016-05-09syntax_tools: Fix pretty-printing of the \x{...} syntaxHans Bolinder
2016-05-09Merge branch 'bjorn/stdlib/warning-and-error/OTP-13476'Björn Gustavsson
* bjorn/stdlib/warning-and-error/OTP-13476: Add documentation epp: Add the -error and -warning directives epp: Refactor expansion of header path
2016-05-04syntax_tools: Update runtime dependenciesHans Bolinder
2016-05-04dialyzer: Update runtime dependenciesHans Bolinder
2016-05-04Merge branch 'bjorn/fix-on_load/OTP-12593'Björn Gustavsson
* bjorn/fix-on_load/OTP-12593: Update documentation regarding improvements Correctly handle multiple load attempts when on_load is pending Avoid deadlock when an on_load function makes an external call to the module itself code_server: Eliminate unnecessary Tag in handle_call/3 Reimplement -on_load() Refactor erts_finish_loading() and insert_new_code() code_SUITE: Make on_load_binary/1 clearer by using merl
2016-05-04Merge branch 'hans/ssh/cuddle_tests'Hans Nilsson
2016-05-04Merge branch 'raimo/polish-gen_statem/OTP-13065'Raimo Niskanen
* raimo/polish-gen_statem/OTP-13065: Fix documentation Clean up terminate functions Fix callback mode after code change not used Restructure loop_* to clarify S handling
2016-05-04Fix documentationRaimo Niskanen
2016-05-04Merge branch 'vladdu/jinterface_pom/ERL-67/PR-1005/OTP-13482'Henrik Nord
* vladdu/jinterface_pom/ERL-67/PR-1005/OTP-13482: jinterface: updated pom.xml.src
2016-05-04epp: Add the -error and -warning directivesBjörn Gustavsson
If one of several alternatives configurations are required for an Erlang module to compile, but none are available, it would be useful to give a nice error message. For example: -ifdef(CONFIG_A). %% Some code if A is true. -else. -ifdef(CONFIG_B). %% Some code if B is true. -else. -error("Neither CONFIG_A nor CONFIG_B are available"). -endif. -endif. If neither CONFIG_A nor CONFIG_B are defined, the error message will be: module.erl:10: -error("Neither CONFIG_A nor CONFIG_B are available"). That is basically the same behavior as for the #error directive in GCC. For symmetry with the -error directive, add the -warning directive to generate a compiler warning. For example: -ifdef(HAVE_COOL_FEATURE). %% Code if we have Cool Feature. -else. %% Inefficient fallback code. -warning("Using inefficient fallback"). -endif. If HAVE_COOL_FEATURE is not defined, the warning message will be: module.erl:8: Warning: -warning("Using inefficient fallback"). That is basically the same behavior as for the #warning directive in GCC. Conflicts: lib/stdlib/src/epp.erl lib/stdlib/test/epp_SUITE.erl
2016-05-04epp: Refactor expansion of header pathBjörn Gustavsson
scan_include_lib/4 uses a helper function find_lib_dir/1, which has a strange interface. It takes a string and returns a tuple. The caller must match the tuple and call fname_join/1 to obtain the desired result. I assume that the strange interface was not noticed because the function is only used in one place. Replace the find_lib_dir/1 with a new expand_lib_dir/1 function which does the entire job in one go. The new function is much easier to reuse in other places, which we might want to do in a future commit.
2016-05-04hipe: Use maps for unification and substitutionHans Bolinder
2016-05-04dialyzer: Use maps instead of dictHans Bolinder
Optimization: A few dictionaries are maps instead of dicts.
2016-05-04dialyzer: Optimize the evaluation of SCC:s in module typesigHans Bolinder
The evaluation of a single SCC has been optimized. The parallelism when evaluating a single SCC has been removed.
2016-05-04Merge branch 'maint-18'Henrik Nord
Conflicts: OTP_VERSION lib/common_test/test/ct_hooks_SUITE_data/cth/tests/ct_update_config_SUITE.erl lib/common_test/vsn.mk
2016-05-04Merge branch 'ingela/ssl-gen-statem/OTP-13464'Ingela Anderton Andin
* ingela/ssl-gen-statem/OTP-13464: ssl: Adapt DTLS to gen_statem ssl: Use gen_statem instead of gen_fsm
2016-05-04Merge branch 'ingela/ssl_verify_SUITE/cuddle'Ingela Anderton Andin
* ingela/ssl_verify_SUITE/cuddle: ssl: Correct and clean test suite
2016-05-04ssl: Correct and clean test suiteIngela Anderton Andin
Active option was not handled correctly in all places. Dead code has been removed.
2016-05-04Correctly handle multiple load attempts when on_load is pendingBjörn Gustavsson
If an on_load function had not yet returned, the code server would only correctly handle calls to code:ensure_loaded/1. That is, each process that called code:ensured_loaded/1 for the module in question would be suspended until the on_load function had returned. The code server handled calls to code:load_binary/1, code:load_file/1, and code:load_abs/1 in the same way as for code:ensure_loaded/1. That means that if call to one those functions attempted to load *different* code for the module, that code would not get loaded. Note that code:finish_loading/1 (code:atomic_load/1) will still return {error,pending_on_load} if there is a pending on_load function for one of the modules that are about to be loaded. The reason is that code:finish_loading/1 is meant to either succeed directly, or fail quickly if there is any problem.
2016-05-04Avoid deadlock when an on_load function makes an external call to the module ↵Björn Gustavsson
itself
2016-05-04code_server: Eliminate unnecessary Tag in handle_call/3Björn Gustavsson
For historical reasons, the second argument in handle_call/3 is {Pid,Tag}. The tag is always 'call' and is never used.
2016-05-04Reimplement -on_load()Björn Gustavsson
Load the module as old code; swap old and new code if the -on_load function succeeds. That way, a failed update attempt for a module that has an -on_load function will preserve the previous version of the code.
2016-05-04Merge branch 'siri/cuddle-master'Siri Hansen
* siri/cuddle-master: Extend timer in test Update crashdump_viewer_SUITE with new release numbers Set longer timetrap when creating dsa files Check that ssh application exists before starting netconf tests Improve error control when starting ssh in netconf test
2016-05-04Merge branch 'legoscia/dist-shutdown-reasons/PR-1028/OTP-13458'Zandra
* legoscia/dist-shutdown-reasons/PR-1028/OTP-13458: Error reasons for more distribution errors
2016-05-04Merge branch 'zandra/optimize-rpc/OTP-13518'Zandra
* zandra/optimize-rpc/OTP-13518: use maps instead of gb_trees to optimize the rpc server let the spawned processes handle rpc replies Conflicts: lib/runtime_tools/test/dbg_SUITE.erl
2016-05-04Merge branch 'zandra/erl_distribution_SUITE-cuddle'Zandra
* zandra/erl_distribution_SUITE-cuddle: update monitor_nodes_otp_6481_test-we only guarantee message order increase timeout since the old one risked flapping test remove no_msg timeout, since its not needed and cause flapping
2016-05-04Merge branch 'experimental/correct_dialyzer_spelling/PR-1007/OTP-13544'Hans Bolinder
* experimental/correct_dialyzer_spelling/PR-1007/OTP-13544: Correct mispelling in Dialyzer's acronym definition
2016-05-03Merge branch 'egil/erts/doc-lttng-beam-tps/OTP-10282'Björn-Egil Dahlberg
* egil/erts/doc-lttng-beam-tps/OTP-10282: erts: Rename LTTng tracepoint aio_pool_add to aio_pool_put erts: Change argument order for LTTng driver_stop runtime_tools: Document BEAM lttng tracepoints
2016-05-03ssh: update ssh_benchmark_SUITE to new ssh_connection_handlerHans Nilsson
2016-05-03Merge branch 'egil/runtime_tools/cuddle-tests'Björn-Egil Dahlberg
* egil/runtime_tools/cuddle-tests: runtime_tools: Cuddle with dbg_SUITE runtime_tools: Remove obsolete debug info in dbg_SUITE runtime_tools: Use 'infinity' gen_server calls
2016-05-03Merge branch 'egil/stdlib/fix-maps-alias/ERL-135/OTP-13534'Björn-Egil Dahlberg
* egil/stdlib/fix-maps-alias/ERL-135/OTP-13534: stdlib: Strengthen map pattern tests stdlib: Add lint tests for parallel match of maps stdlib: Refactor erl_lint_SUITE stdlib: Fix linting of map key variables
2016-05-03ssh: ssh_upgrade_SUITEHans Nilsson
2016-05-03Merge branch 'hans/ssh/cuddle_tests'Hans Nilsson
2016-05-03ssl: Adapt DTLS to gen_statemIngela Anderton Andin
DTLS is not in working mode yet, but the gen_statem rewrite should make completion easier.
2016-05-03ssl: Use gen_statem instead of gen_fsmIngela Anderton Andin
Also reduce timing issues in tests
2016-05-03Merge branch 'lukas/erts/rename_xmqd_to_hmqd/OTP-13366'Lukas Larsson
* lukas/erts/rename_xmqd_to_hmqd/OTP-13366: erts: Rename erl flag +xmqd to +hmqd in erlexec Fix proc_lib message_queue_data spec erts: Fix total_heap_size calculation for on_heap erts: Rename erl flag +xmqd to +hmqd
2016-05-03Prepare releaseErlang/OTP
2016-05-03Merge branch 'ingela/inets/deprecated-inets_regexp/OTP-13533' into maint-18Erlang/OTP
* ingela/inets/deprecated-inets_regexp/OTP-13533: inets: Prepare for release inets: Put back inets_regexp module in OTP 18
2016-05-03Merge branch 'ingela/ssl/maint/algo-fixes/OTP-13525' into maint-18Erlang/OTP
* ingela/ssl/maint/algo-fixes/OTP-13525: ssl: Correct guard expression ssl: Correct cipher suites conversion
2016-05-03Merge branch 'peppe/ct_misc_18_patches' into maint-18Erlang/OTP
* peppe/ct_misc_18_patches: Add flag/option for disabling the character escaping functionality Fix bug using the wrong lists search function Fix bug with clashing timestamp values Fix problem with stylesheet tags getting escaped Skip pre/post test IO suite if cover or debug is running Tweak pre_post_io test case to run without failing Fix various log related problems
2016-05-03Merge branch 'peppe/ct_remove_nodelay/OTP-13462' into maint-18Erlang/OTP
* peppe/ct_remove_nodelay/OTP-13462: Update the reference manual Make the nodelay setting configurable and false per default
2016-05-03Merge branch 'lukas/erts/tracing/misc_fixes/OTP-13503'Lukas Larsson
* lukas/erts/tracing/misc_fixes/OTP-13503: erts: Add test for new procs trace with spawn_link kernel: Remove seq_trace event order dep in tc erts: Add tests for set on link tracing erts: Expand trace tests for refc binaries erts: Remove erl_tracer with invalid state erts: Remove some dead code erts: Fix broken doc link to erl_tracer Conflicts: erts/emulator/beam/erl_trace.c
2016-05-03inets: Prepare for releaseIngela Anderton Andin
2016-05-03inets: Put back inets_regexp module in OTP 18Ingela Anderton Andin
Put back unused module inets_regexp and remove it in OTP 19 instead as it is an incompatibility, although it is an undocumented module and should not affect other applications (the world is not perfect).
2016-05-02erts: Rename LTTng tracepoint aio_pool_add to aio_pool_putBjörn-Egil Dahlberg
* Be consistent.