Age | Commit message (Collapse) | Author |
|
The value for "OldHeap unused" in the output of
erlang:system_info(procs) and in crash dumps, was incorrectly
calculated as the size of the entire old heap.
|
|
* bg/ts_run:
ts_run: Don't run make:all/1 without a good reason
OTP-8556 bg/ts_run
|
|
|
|
* rb/ssl-opts-fix:
Fix verification of ssl client when fail_if_no_peer_cert
Fix mishandling of valid ssl options
OTP-8557 rb/ssl-opts-fix
|
|
The SSL handshake fails when an ssl server is configured with the
'fail_if_no_peer_cert' option and a valid client sends its certificate
as instructed. On the server-side ssl:ssl_accept/2 will return
{error,esslerrssl}, and it will send an "Unexpected Message" SSL Alert
(type 10) to the client.
|
|
Using certain valid options in the new ssl implementation results
in badarg exceptions. This happens for one documented option
'fail_if_no_peer_cert' and two undocumented options
'verify_client_once' and 'cb_info'.
|
|
|
|
ts:run() runs make:all/1 to facilitate interactive development
of a test suite - when you have changed your test suite, just
run ts:run() and it will rebuild the test suite for you.
Some test suites, such as for the public_key application,
are meant to be built once and for all by "make release_tests".
Re-building it later with make:all/1 will fail because
it references an internal .hrl file in the source directory
for public_key.
Running make:all/1 for the public_key test suite would not
cause any harm in most circumstances, because make:all/1 would
consider the *.beam files to be up-to-date and therefore not
actually try to re-build anything.
In 2c6d9b57ce4557a431bcf02565c3634a0ed7ca61, however, the
public_key test suite started to include "test_server.hrl"
using -include_lib() instead of -include(). That means that
"test_server.hrl" will be included from the Erlang/OTP
system being tested, and if that system has been built
*after* the test suite was built, the *.beam files in the
test suite will be out-of-date and make:all/1 will try to
re-build them (and fail).
To avoid this problem, modify ts:run() as follows:
* If the test suite has an Emakefile (such as the emulator test
suite), it is clearly meant to be (re-)built by make:all/1,
so we run make:all/1.
* If there is no Emakefile and no .beam files (such as in the
erl_interface test suite), it also seems clear that the
test suite is meant to be built by make:all/1. To make sure
that the test suite will also be *re-built*, create an
Emakefile that will re-build all *.erl files in the
directory for the test suite.
* If there is no Emakefile and there are *.beam files (such
as for the public_key test suite), we assume that the test
suite are not meant to re-built. However, there may be
generated *_SUITE_make.erl files (if there are *_SUITE_data
directories containg Makefile.src files, as in the xmerl
application). If there are any *_SUITE_make.erl files,
generate an Emakefile for compiling only those files
and run make:all/1. Otherwise, don't run make:all/1.
|
|
|
|
|
|
|
|
Now supports SQL_TYPE_TIMESTAMP on the format {{YY, MM, DD}, {HH, MM, SS}}.
Thanks to Juhani Ränkimies.
|
|
|
|
|
|
* au/crypto:
Add missing docs for crypto:md4/1
Add des_ecb_encrypt/2 and des_ecb_decrypt/2 to crypto module
OTP-8551 au/crypto
des_ecb_encrypt/2 and des_ecb_decrypt/2 has been added to the crypto
module. The crypto:md4/1 function has been documented.
|
|
|
|
* bg/compiler-inliner:
pmod_SUITE: Again test inlining parameterized modules
compiler tests: Cope with missing args in function_clause for native code
compiler tests: Compile a few more modules with 'inline'
Consistently rewrite an inlined function_clause exception to case_clause
compiler tests: Test the 'inline' option better
compiler: Suppress bs_context_to_binary/1 for a literal operand
compiler: Fix binary matching bug in the inliner
sys_core_inline: Don't generated multiple compiler_generated annos
OTP-8552 bg/compiler-inliner
Several problems in the inliner have been fixed.
|
|
The runtime system crashed if fewer logical processors were found than
reported by sysconf( SC_NPROCESSORS_CONF).
|
|
The use of mmap() was unnecessarily disabled when cross compiling.
The configure arguments --with-ssl, and --with-odbc refused to accept
libraries outside of $erl_xcomp_sysroot when cross compiling for no good
reason.
The configure argument --with-odbc didn't handle the value yes correct.
The configure arguments --with-odbc, and --without-odbc have also been
added to the configure help.
(Thanks to Steve Vinoski for reporting these issues)
|
|
hence not covered by test cases.
|
|
|
|
|
|
|
|
Unfortunately, commit 1e2ecf8c492b6d499880b8676e3c1fe0c5793103
removed all cond support except for two lines.
|
|
* mh/doc-inet-getopts:
Doc fix: inet:getopts/2 returns {ok, OptionValues}, not just OptionValues
|
|
* mh/doc-loose-lose:
Fix spelling: "loose" is not a verb
|
|
* se/decode_packet:
Fix erlang:decode_packet(httph_bin,..) to not return faulty header strings
OTP-8548 se/decode_packet
erlang:decode_packet(httph_bin,..) could return corrupt header strings or
even crash the VM. This has been fixed. It only happened on 32-bit VM if
the header name was unknown and between 16 and 20 characters long. Sockets
with simular packet option did not suffer from this bug.
|
|
* bd/mnesia-activity-subscription:
Add mnesia activity subscription message
|
|
A process that calls mnesia:subscribe(activity) will receive the message:
{mnesia_activity_event, ActivityID, complete}
when any activity that caused a change to a database has finished
committing its changes. This allows a subscriber to collect messages
already available through the mnesia:subscribe({table, ...}) system
to group them as completed transactions.
|
|
* dgud/wx-new-doxygen:
Added a non existing macro on windows.
Commit of the generated code with previous commit.
Fixed code generation from newer doxygen versions.
Whitespace fixes
OTP-8547 dgud/wx-new-doxygen
|
|
Commit 91de9d0670c6fe1cff08cefa6e1c396effba47b8 stopped testing
inlining of parameterized modules, because of a bug in the inliner.
|
|
Unrecognized Http header names was sometimes returned as corrupt
sub-binaries pointing to a stack allocated buffer. This only happened
on 32-bit VM if the header name was between 16 and 20 characters
long. It could in some cases lead to segmentation fault.
The solution was to avoid creating sub-binary if the returned string
was not part of the original binary.
|
|
|
|
|
|
"Lose" means not "not win", but "loose" means "not tight".
Change "loose" to "lose" where appropriate.
|
|
Native-compiled code generates a different stack trace for
function_clause exceptions - instead of the arguments for the
function, only the arity is reported. Accept missing arguments
if the test suite is native-compiled.
|
|
Since a function_clause exception in an inlined function will
be changed to a case_clause exception, we must test for both.
|
|
A function_clause exception is generated by jumping to a func_info/3
instruction at the beginning of the function. The x registers are
assumed to contain the arguments for the function. That means
that a func_info/3 instruction copied from another function
(or even from the same function if not at the top level) will
not work, so it must be replaced with an instruction that
generates a case_clause exception.
In Core Erlang, a func_info/3 instruction is represented as
a the primop match_fail({function_clause,Arg1,...ArgN}).
The current mechanism that is supposed to replace the
primop match_fail(function_clause) with match_fail(case_clause)
will fail to do that in the following circumstances:
1. If the inliner has inlined a function into itself.
Fix that by having the inliner clear the function_name annotations
on all match_fail primops in functions that are inlined. (To simplify
doing that, the annotation is now on the primop node itself and not on
the 'function_clause' atom inside it.)
2. If the inliner has rewritten the tuple node in the primop node
to a literal (when inlining a function call with literal arguments),
v3_kernel would not recognize the match_fail(function_clause) primop
and would not rewrite it. Fix it by making v3_kernel smarter.
Also simplify the "old" inliner (sys_core_inline) to only clear
the function_name annotations instead of rewriting function_clause
execptions to case_clause execptions itself.
|
|
Clone some test suites and compile them with the 'inline' option
to test inlining more thorughly.
|
|
The inliner can cause illegal uses of the bs_context_to_binary/1
instruction, such as:
bs_context_to_binary {literal,"string"}
or
bs_context_to_binary {integer,1}
Remove the bs_context_to_binary/1 instruction if the operand
is not a register (it is clearly not needed).
|
|
The inliner incorrectly assumes that a literal cannot
match a binary in code such as:
t() ->
bc(<<"string">>).
bc(<<A:1,T/bits>>) -> [A|bc(T)];
bc(<<>>) -> [].
The bug was introduced when binary literals were introduced.
|
|
Multiple compiler_generated annotations are harmless, but makes
listing files harder to read during debugging.
|
|
|
|
* hawk/wx-add-app-file:
Add app and appup files to the wx application
OTP-8538 hawk/wx-add-app-file
|
|
* bg/compiler-remove-r11-support:
compiler: Don't support the no_binaries option
erts: Don't support the put_string/3 instruction
compiler: Don't support the no_constant_pool option
compiler: Don't support the r11 option
test_server: Don't support communication with R11 nodes
binary_SUITE: Don't test bit-level binary roundtrips with R11 nodes
erts: Test compatibility of funs with R12 instead of R11
OTP-8531 bg/compiler-remove-r11-support
|
|
|
|
New ssl now properly handles ssl renegotiation, and initiates a
renegotiation if ssl/ltls-sequence numbers comes close to the max value.
|
|
|
|
|
|
The no_binaries option terminates the compiler with an error
if any bit syntax is used in the module being compiled.
(It used to be implied by the removed r11 option.)
|