Age | Commit message (Collapse) | Author |
|
* bjorn/stdlib/warning-and-error/OTP-13476:
Add documentation
epp: Add the -error and -warning directives
epp: Refactor expansion of header path
|
|
* 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
|
|
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
|
|
|
|
|
|
|
|
* jlouis/stdlib/implement-lists-join/PR-1012/OTP-13523:
Implement lists:join/2
|
|
|
|
* egil/maps-api-additions/PR-1025/OTP-13522:
stdlib: Document maps:update_with/3,4
stdlib: Add tests for maps:update_with/3,4
stdlib: Add maps:update_with/3,4
erts: Add tests for maps:take/2
stdlib: Document maps:take/2
erts: Add BIF maps:take/2
|
|
|
|
|
|
* raimo/new-gen-state-machine/OTP-13065: (52 commits)
Add section on state filtering
Promote gen_statem over gen_fsm
Modify code_change/4 to return CallbackMode
Use ?NAME macro in examples
Introduce Fred Herbert suggested additions
Introduce corrections from Fred Hebert and Ingela
Use .png pictures instead of .gif
Write Design Principles chapter
Fix missing short forms for event timeout
Do more intricate Fred Hebert doc changes
Change Caller -> From as suggested by Fred Hebert
Do documentation improvements from Fred Hebert
Fix broken documenation reference
Rename state_timeout -> event_timeout
Fix most of the system docs and emacs mode
Change code_change/4 to {ok,State,Data}
Fixup sharpened test suite
Sharpen test suite
Remove the remove_event action and all alike
Relax caller() type check and cleanup
...
Conflicts:
lib/stdlib/src/gen.erl
lib/stdlib/src/gen_event.erl
lib/stdlib/src/gen_fsm.erl
lib/stdlib/src/gen_server.erl
lib/stdlib/test/error_logger_forwarder.erl
|
|
The use case is not cryptographical but we want to compare Erlang
implementation to c implementation so use crypto:strong_rand_bytes anyway.
|
|
Also move check of non-atom states in callback mode
state_functions to where the state function is called.
This gives homogenous diagnostics for state functions,
code_change/4 and system_replace_state StateFun.
Irregularities pointed out by James Fish.
|
|
|
|
* henrik/update-copyrightyear:
update copyright-year
|
|
|
|
Add a call which works much like string:join/2 but for arbitrary lists. Provide
the function itself, lifted from Haskells Data.List standard library, provide
documentation and provide tests for the function.
|
|
* lukas/stdlib/error_logger_SUITE/OTP-13471:
stdlib: Fix logfile testcase for hipelibs testrun
|
|
|
|
abnormal1/1 started failing sporadically when 22785cd1e21
changed using the messages_get/0 and using its own implementation:
get_messages() ->
receive
Msg -> [Msg|get_messages()]
after 1 -> []
end.
In test_server:messages_get/0, there was "after 0" instead of "after
1" as in this version.
We could change back to using "after 0", but it seems that the
test case just happened to work before the change.
Instead, read out the message that is guranteed to be in the message
queue, and *then* check that the message queue is empty.
|
|
In 8d7d5627, test_server:sleep/1 was changed to ct:sleep/1.
Change it to timer:sleep/1 to make the timing more exact
(ct:sleep/1 will call another process).
|
|
to make it kill and then wait for all spawned processes to exit.
|
|
|
|
|
|
While we are it, also re-ident the files.
|
|
We want to re-ident the source files after having taken out
all ?line macros. When re-indenting using Emacs, it's important
that comments that should be at the beginning of a line (or
follow the indentation of statements around it) must start with
"%%".
|
|
|
|
|
|
|
|
|
|
|
|
The return values for lists:prefix/2 and lists:member/2 were
ignored.
|
|
Note that the sleeping time in ct:sleep/1 will be scaled if
the test is run with (for example) cover. When it is important
that the sleep time is not adjusted, use timer:sleep/1.
|
|
|
|
There is no practial difference.
|
|
|
|
Either rely on the default 30 minutes timetrap, or set the timeout
using the supported methods in common_test.
|
|
Conflicts:
lib/common_test/test/Makefile
|
|
* siri/test-ct_release_test/OTP-13390:
Remove upgrade tests from stdlib_SUITE
Add test of ct_release_test
|
|
The test cases minor_upgrade and major_upgrade used
ct_release_test. The point of the tests in stdlib was mainly to test
ct_release_test. ct_release_test produces a 'from-release' based on an
old version of the application under test (in this case stdlib) and
new versions of all other applications. But since it is not always a
good idea to load an old version of stdlib into a new emulator
(e.g. in the OTP-19.0 emulator), these tests are removed.
Instead new tests are added for ct_release_test in common_test.
|
|
* maint:
io_SUITE: Don't fail on fast computers with rough timers
Fix code_SUITE after test_server change
Set default value for crash_dump_dir
|
|
* bjorn/cuddle-with-tests:
io_SUITE: Don't fail on fast computers with rough timers
|
|
|
|
* sverk/bad_printable_range:
stdlib: Fix io_SUITE:bad_printable_range for windows
|
|
Since Windows 8 we are not allowed (in non elevated mode) to
write to hklm.
|
|
avoid os:cmd as it treats stderr different on windows.
|
|
On a computer which is fast, but with timers with low resolution,
the measured time for an empty queue could be zero, which could
cause the test case to fail.
Add a calibration function to scale up the amount the amount of
work so that the measured time will not be lower than 50 ms.
|
|
|
|
|