Age | Commit message (Collapse) | Author |
|
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
|
|
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.
|
|
|
|
Optimization: A few dictionaries are maps instead of dicts.
|
|
The evaluation of a single SCC has been optimized.
The parallelism when evaluating a single SCC has been removed.
|
|
The combination of the use of the exit() function without including
<stdlib.h> together with the option -Werror=implicit-function-declaration
causes the compilation (and the 'make') to fail on SUN/SPARC with gcc 4.9.3.
|
|
Conflicts:
OTP_VERSION
lib/common_test/test/ct_hooks_SUITE_data/cth/tests/ct_update_config_SUITE.erl
lib/common_test/vsn.mk
|
|
|
|
|
|
|
|
* ingela/ssl-gen-statem/OTP-13464:
ssl: Adapt DTLS to gen_statem
ssl: Use gen_statem instead of gen_fsm
|
|
* ingela/ssl_verify_SUITE/cuddle:
ssl: Correct and clean test suite
|
|
Active option was not handled correctly in all places. Dead code has
been removed.
|
|
To avoid failing on slow machines
|
|
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.
|
|
itself
|
|
For historical reasons, the second argument in handle_call/3 is
{Pid,Tag}. The tag is always 'call' and is never used.
|
|
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.
|
|
The telnet_server is run on the main test node which will scale and
multiply timers on some test hosts. The other side of the telnet test
(the client) is run on the slave, which does not inherit timer scaling
and multiplication. Therefore, it is better to use timer:sleep in the
server.
|
|
* 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
|
|
* legoscia/dist-shutdown-reasons/PR-1028/OTP-13458:
Error reasons for more distribution errors
|
|
* 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
|
|
* 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
|
|
* experimental/correct_dialyzer_spelling/PR-1007/OTP-13544:
Correct mispelling in Dialyzer's acronym definition
|
|
Taken from the OTP test suites and changed accordingly for HiPE.
Used to be problematic in the tests that matched against a segment
of 'bad_size'. This was corrected in the BEAM compiler for OTP 19.
|
|
* 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
|
|
|
|
* 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
|
|
Orphaned in commit 9298872b.
|
|
* 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
|
|
|
|
|
|
DTLS is not in working mode yet, but the gen_statem rewrite should make
completion easier.
|
|
Also reduce timing issues in tests
|
|
Bitmaps of size less than 1 generates asserts,
and size 0 event is before window is realized.
|
|
* 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
|
|
|
|
* ingela/inets/deprecated-inets_regexp/OTP-13533:
inets: Prepare for release
inets: Put back inets_regexp module in OTP 18
|
|
* ingela/ssl/maint/algo-fixes/OTP-13525:
ssl: Correct guard expression
ssl: Correct cipher suites conversion
|
|
* 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
|
|
* peppe/ct_remove_nodelay/OTP-13462:
Update the reference manual
Make the nodelay setting configurable and false per default
|
|
* 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
|
|
|
|
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).
|
|
* Be consistent.
|
|
* Be consistent.
|
|
|
|
OTP-13537
|
|
* ingela/ssl-max-session-table/OTP-13490:
ssl: Adjust max table to work as expected from documentation
|
|
* ingela/ssl/signature_algs_bug:
ssl: Correct guard expression
|