Age | Commit message (Collapse) | Author |
|
|
|
* maint:
Updated OTP version
Prepare release
ssh: Renegotiation -> renegotiate
ssh: Fix DH group exchange server bug for PuTTY and others following draft-draft-00 from 2001 and not the rfc4419
ssh: Fix server crashes for exit-normal signals
|
|
* maint-19:
Updated OTP version
Prepare release
ssh: Renegotiation -> renegotiate
ssh: Fix DH group exchange server bug for PuTTY and others following draft-draft-00 from 2001 and not the rfc4419
ssh: Fix server crashes for exit-normal signals
Conflicts:
OTP_VERSION
lib/ssh/doc/src/notes.xml
lib/ssh/src/ssh_connection_handler.erl
lib/ssh/src/ssh_transport.erl
lib/ssh/vsn.mk
otp_versions.table
|
|
During cross compilation, the ct module is not available.
|
|
|
|
|
|
Libraries or applications that support more than one major
release of OTP may need to use conditional compilation of
Erlang source code. Here are few examples where it would be
necessary or desirable:
* To support a new data type or language feature only available
in the latest major release (real-world examples: maps and the
stacktrace syntax).
* To avoid warnings for deprecated functions.
* To avoid dialyzer warnings.
Previously, to do conditional compilation, one would have to
use a parse transform or some external tool such as 'autoconf'.
To simplify conditional compilation, introduce the -if and -elif
preprocessor directives, to allow code like this to be written:
-if(?OTP_RELEASE =:= 21).
%% Code that will only work in OTP 21.
-else.
%% Fallback code.
-endif.
What kind of expressions should be allowed after an -if?
We certainly don't want to allow anything with a side effect,
such as a '!' or a 'receive'. We also don't want it to be
possible to call erlang:system_info/1, as that could make the
code depedent on features of the run-time system that could
change very easily (such as the number of schedulers).
Requiring the expression to be a guard expression makes most
sense. It is to explain in the documentation and easy for users
to understand. For simplicity of implementation, only a single
guard expression will be supported; that is, the ',' and ';' syntax
for guards is not supported.
To allow some useful conditions to be written, there is a special
built-in function:
defined(Symbol) tests whether the preprocessor symbol is defined,
just like -ifdef. The reason for having this defined/1 is that
the defined test can be combined with other tests, for example:
'defined(SOME_NAME) andalso ?OTP_RELEASE > 21'.
|
|
by using a cooperative strategy that will make
any process accessing the table execute delelete_all_objects_continue
until the table is empty.
This is not an optimal solution as concurrent threads will still
block on the table lock, but at least thread progress is made.
|
|
|
|
|
|
Remove comments about deprecation in OTP-21
|
|
|
|
* hans/ssh/reneg_bug_19/OTP-15066:
ssh: Renegotiation -> renegotiate
|
|
* hans/ssh/dh_gex_putty_19/OTP-15064:
ssh: Fix DH group exchange server bug for PuTTY and others following draft-draft-00 from 2001 and not the rfc4419
|
|
* maint:
Updated OTP version
Prepare release
ssh: Renegotiation -> renegotiate
ssh: Fix DH group exchange server bug for PuTTY and others following draft-draft-00 from 2001 and not the rfc4419
crypto: get_engine_load_cmd_list excluded if no engine support
crypto: Fix compilation for LibreSSL 2.7.x
crypto: Disable test_engine if engine is disabled
crypto: disable engine if OPENSSL_NO_EC* is set If that flag is set, and openssl/engine.h is included, there will be an erro further down in files included by engine.h
Conflicts:
OTP_VERSION
|
|
* maint-20:
Updated OTP version
Prepare release
ssh: Renegotiation -> renegotiate
ssh: Fix DH group exchange server bug for PuTTY and others following draft-draft-00 from 2001 and not the rfc4419
crypto: get_engine_load_cmd_list excluded if no engine support
crypto: Fix compilation for LibreSSL 2.7.x
crypto: Disable test_engine if engine is disabled
crypto: disable engine if OPENSSL_NO_EC* is set If that flag is set, and openssl/engine.h is included, there will be an erro further down in files included by engine.h
|
|
I had missed the one in lower section.
|
|
Update global name typespec
|
|
Fix syntactic issues in EDoc comments across some libs
|
|
|
|
* hans/ssh/reneg_bug_20/OTP-15066:
ssh: Renegotiation -> renegotiate
|
|
* hans/ssh/dh_gex_putty/OTP-15064:
ssh: Fix DH group exchange server bug for PuTTY and others following draft-draft-00 from 2001 and not the rfc4419
|
|
* hans/crypto/OPENSSL_NO_EC/OTP-15073:
crypto: Disable test_engine if engine is disabled
crypto: disable engine if OPENSSL_NO_EC* is set If that flag is set, and openssl/engine.h is included, there will be an erro further down in files included by engine.h
|
|
* siri/logger-fix:
Change logger callback removing_handler/1 to removing_handler/2
Don't crash logger_server due to unexpected message
Add logger:update_process_metadata/1
Improve documentation of logger:set_*_config functions
Change return type from logger_formatter:format/2
Improve test of logger_disk_log_h and logger_std_h
Update logger documentation
Set single_line=true by default in logger_formatter
|
|
|
|
|
|
|
|
|
|
This used to be string() is now changed to unicode:chardata().
|
|
|
|
Introduce is_map_key/2 guard BIF
OTP-15037
|
|
Remove unused source files in lib/hipe/opt
|
|
* john/tools/cuddle-lcnt-tests:
Ensure that lcnt server is terminated after lcnt:stop/0
|
|
This makes the nightly tests slightly more stable as they assert
that the server isn't alive when lcnt:start/0 is called, which it
could still be since the stop command was a plain gen_server call
that didn't wait until the termination was completed.
|
|
Add a new pre-defined macro called OTP_RELEASE that will expand
to an integer being the OTP version. Thus, in OTP 19 the value will
be the integer 19.
The OTP_RELEASE macro is particularly useful in order to have
different source code depending on new language features or new
features in the type specification syntax. Those features are only
introduced in major versions of OTP.
To be truly useful, the -if preprocessor directive need to be
implemented. That is the purpose of the next commit.
Code that will need to work in both OTP 18 and OTP 19 can be
structured in the following way:
-ifdef(OTP_RELEASE).
%% Code that only works in OTP 19 and later.
-else.
%% Code that will work in OTP 18.
-endif.
|
|
|
|
and others following draft-draft-00 from 2001 and not the rfc4419
|
|
During application load, the included_applications key from the .app
file would earlier be duplicated as an application environment
variable. Due to this, its value could be retrieved in any of the
following ways:
application:get_key(App,included_applications).
application:get_env(App,included_applications).
It would also be included in the resulting list from the following calls:
application:get_all_key(App).
application:get_all_env(App).
This commit removes the duplication, and included_applications will no
longer be returned by application:get_env/2 or application:get_all_env/1.
The reason for this change is mainly to avoid confusion, but also to
avoid the potensial inconsistency which would occur if the environment
variable was changed during runtime by calls to
application:put_env(App,included_applications,NewInclApps).
|
|
|
|
|
|
|
|
|
|
See https://github.com/erszcz/docsh/issues/23 for an explanation
about how the files were found.
|
|
|
|
If that flag is set, and openssl/engine.h is included, there will be an erro further down in files included by engine.h
|
|
Three of the removed source files don't even compile.
Uncompilable source files cause problems for tools such as
scripts/diffable that want to compile all found source files.
|
|
|
|
|
|
|
|
|