Age | Commit message (Collapse) | Author |
|
* bjorn/compiler/crash/OTP-10794:
Test setelement(1, not_a_tuple, NewValue)
Fix crash in the compiler when compiling element(2, not_a_tuple)
|
|
* bjorn/compiler/float/OTP-10788:
beam_type: Convert integer to float at compile time
compiler: Use the literal pool for floating point constants
|
|
|
|
|
|
The MIB comp�iler (snmpc) did not hanmdle import (from
SNMPv2-SMI) of (pseudo-) type BITS.
|
|
|
|
|
|
It does not make sense to return multiple values from a sequence
argument and the Kernel Erlang passes can't cope with it.
The linting pass now knows how to detect this kind of defunct code and
the Core code folding pass is changed to not generate code like that
when optimizing away multiple-valued lets in effect mode.
Reported-by: José Valim
|
|
|
|
|
|
|
|
|
|
|
|
|
|
There are currently no keywords reserved for the future.
|
|
|
|
All guards BIFs are auto-imported. That can be verified like this:
[] = [{F,A} || {erlang,F,A} <- erlang:system_info(snifs),
erl_internal:guard_bif(F, A),
not erl_internal:bif(F, A)]
Therefore, calling a guard BIF in a guard without a module name
is always allowed (provided that there is not a local function or
an import with the same name), and therefore we can remove the
error reporting code. But keep an assertion so that we will find
out if any non-auto-imported guard BIFs are added in the future.
|
|
|
|
In code such as:
X / 2
the following code would be output from beam_type for the division:
{fconv,{x,0},{fr,0}}.
{fconv,{integer,2},{fr,1}}.
fclearerror.
{bif,fdiv,{f,0},[{fr,0},{fr,1}],{fr,0}}.
That is, the integer 2 would be converted to the float 2.0 at
run-time by "{fconv,{integer,2},{fr,1}}". Make sure that we do
the conversion at compile time.
Noticed-by: Richard O'Keefe
|
|
The BEAM loader will put floating point constants into the
literal pools for the module, but it will not check for duplicates.
We can do much better by having the compiler use the literal
pool for floating point constants.
|
|
|
|
|
|
|
|
This reverts commit a0e362765d9d4afb0211f49eb787d2139b3eb7be.
Conflicts:
erts/vsn.mk
|
|
* rickard/r16/port-optimizations/OTP-10336:
Fix spelling in communication.xml
Fix unmanaged thread progress delay
|
|
Thanks to Richard O'Keefe
|
|
|
|
* rickard/async-default/OTP-10736:
Use no async threads for erlc
|
|
This reverts commit 624751813b30a367c8255e86f26f7342aeb33cbc.
Overzealous removal of vxworks includes
|
|
* sa/dialyzer-minor-fixes/R16A:
Fix wording of error message
Fix reference results of a Dialyzer test
|
|
|
|
|
|
* pan/wx_and_gcc45:
Make Mac wx use Apple compilers regardless of $CC
|
|
* sverk/ets-write_concurrency-locks:
erts,stdlib: Increase number of locks for write_concurrency
OTP-10787
|
|
* sverk/code_write_permission-assert:
erts: Fix ASSERT crash in erts_try_seize_code_write_permission
|
|
ASSERT(code_writing_process != c_p);
The assert was actually harmless and could be removed as one solution.
But I think it's better to keep it as a way to catch bugs that would
otherwise lead to horrible deadlocks if a thread "forgets" to call
erts_release_code_write_permission().
As a result erts_release_code_write_permission() must be called BEFORE
resuming the suspended process.
|
|
* sverk/enc_atom-opt:
erts: Optimize atom encoding to use memcpy for pure ascii
erts: Refactor erts_atom_get to use ErtsAtomEncoding
|
|
* lukas/erts/fix_driver_call_memleak/OTP-10336:
Fix memory leak in driver call functionality
|
|
|
|
|
|
* fredrik/ssh/dialyzer-and-doc:
Fixed some broken links in ssh doc
Fixed some ssh documentation
|
|
|
|
* lukas/r16a/testcases:
Do not crash init_per_suite when nif load fails
|
|
* sverk/ic/tests:
ic: Making tests pass after changes in erl_interface and jinterface
ic: Revert --enable-silent-rules for test Makefile
OTP-10785
|
|
* lukas/erl_interface/test_atom_as_functions/OTP-10753:
Return if size test fails
Add utf8 atom encode and decode testcases
Validate UTF8/ASCII when buf is NULL
|
|
* ia/ssh/dialyzer-and-doc:
ssh: Fix dialyzer and doc warnings
|
|
* peppe/common_test/testspec_include:
Fix failing test case
OTP-9881
|
|
OTP-9881
|
|
* fredrik/dialyzer/fix-tc-data:
Testcase expecting newline
|
|
* peppe/common_test/testspec_include:
Fix problem with tests running in wrong order
OTP-9881
|