Age | Commit message (Collapse) | Author |
|
* bjorn/dialyzer-warnings:
erlang: Eliminate a clause in aa_mem_data/2 that can never match
Add type info for erlang:system_info({allocator_sizes,ref(),any()})
|
|
* rickard/deprecate-runtime-binding/OTP-9749:
Deprecate erlang:system_flag/2 arguments scheduler_bind_type and cpu_topology
|
|
* rickard/rm-common-runq/OTP-9727:
Remove common run-queue in SMP case
Fix scheduler suspend bug
Conflicts:
erts/emulator/beam/erl_init.c
|
|
The use of erlang:system_flag(scheduler_bind_type, _) and
erlang:system_flag(cpu_topology, _) have been deprecated and scheduled
for removal in erts-5.10/OTP-R16. For more information see the
documentation of erlang:system_flag/2.
|
|
The common run-queue implementation is removed since it is unused,
untested, undocumented, unsupported, and only complicates the code.
A spinlock used by the run-queue management sometimes got heavily
contended. This code has now been rewritten, and the spinlock
has been removed.
|
|
Calls to erlang:system_flag(schedulers_online, N) and/or
erlang:system_flag(multi_scheduling, block|unblock) could cause
internal data used by this functionality to get into an inconsistent
state. When this happened various problems occurred. This bug was
quite hard to trigger, so hopefully no-one has been effected by it.
|
|
aa_mem_data/2 is only called by aa_mem_data/1 and itself.
aa_mem_data/1 called with the argument 'notsup' will never
call aa_mem_data/2. aa_mem_data/2 will only call itself with
a #memory{} record as the first argument. QED.
Noticed-by: Dialyzer.
|
|
* rickard/default-unbound/OTP-9726:
Use unbound schedulers as default
|
|
* rickard/pix-mutex/OTP-9723:
Fix warning when lock-checker is enabled
Replace spinlock with mutex as pix_lock implementation
|
|
|
|
* bjorn/deprecate-tuple-funs/OTP-9649:
erts: Warn the first time a tuple fun is called
otp_mibs: Eliminate use of tuple fun
os_mon: Eliminate use of tuple fun
asn1: Eliminate use of tuple fun
parsetools: Eliminate use of tuple fun
mnesia tests: Eliminate use of tuple fun
snmp: Eliminate use of tuple fun
wrap_log_reader_SUITE: Eliminate use of tuple fun
big_SUITE: Eliminate use of tuple fun
file_SUITE: Eliminate use of tuple fun
fprof: Eliminate use of tuple fun
xref_compiler: Eliminate use of tuple fun
shell: Eliminate use of tuple funs
erl_eval: Eliminate use of tuple funs
user_sup: Eliminate use of tuple fun
|
|
* bjorn/llvm-issues/OTP-9712:
INSTALL.md: Update build instructions for Lion
Fix clang linking problem
configure: Define NO_JUMP_TABLE if all we have is llvm-gcc
beam_emu.c: Eliminate warnings when NO_JUMP_TABLE is defined
beam_emu.c: Use the correct void* type for computed gotos
MacOS X: Completely remove obsolete -no-cpp-precomp option
|
|
* tn/inet_drv-fix:
Cleanup - remove unnecesary bracket level and configure for ifreq.ifr_enaddr
Work around gcc linking with own view of default libs on Solaris
Use libdlpi to get physical address
|
|
|
|
* siri/sasl/no-warn-missing-sasl/OTP-9738:
Don't use +no_warn_sasl option to systools for bootstrap
|
|
Many test cases provoke printouts similar to:
ERTS_FP_CHECK_INIT at 0x131fd218: detected unhandled FPE at 0x1
Until the problem has been identified and fixed, disable floating
point exceptions by default on Mac OS X.
|
|
|
|
It seems that a tuple fun was used only because erl_eval:expr/3
did not support passing in a real fun at the time that the test
case was originally written.
|
|
|
|
|
|
Also use 64-bit lib when necessary, specify runtime lib path
for secondary dependency libs, and better check before using
SIOCGIFHWADDR.
|
|
* bjorn/erts/remove-useless-variable:
erl_process.c: Remove the redundant variable 'processes_busy'
Update primary bootstrap
otp_internal: Deprecate ssl:pid/1
|
|
There is a static variable called 'processes_busy' in erl_process.c,
which will be incremented but never used.
To confuse things, there is also a global variable with the same
name, but it it is only defined and used if BM_COUNTERS is defined.
In erl_process.c, the global version of 'processes_busy' will be
seen and incremented if BM_COUNTERS is defined.
Remove the static version of 'processes_busy' in erl_process.c,
but keep the global version if BM_COUNTERS is defined.
Noticed-by: Jovi Zhang
|
|
* lukas/erts/large_float_cmp/OTP-9497:
Use CMP_TMP_HEAD_SIZE for C-stack
|
|
Thanks to Tuncer Ayaz
|
|
Caused core dump with gen_udp_SUITE on halfword vm.
|
|
* bjorn/code-loading:
code: Clean up loading of code_server prerequisites
beam_load.c: Add init_iff_file() for verifying the IFF header
beam_code.c: Don't reinvent state initialization and deallocation
beam_load.c: Optimize code:get_chunk/2
beam_load.c: Eliminate memory leak in code:make_stub_module/3
|
|
|
|
* bjorn/fix-failing-tests:
erlc_SUITE:arg_overflow/1: Lower number of options for MacOS X Lion
tar_SUITE: Don't do symlink tests on Windows
erlc_SUITE: Fix failing compile_mib/1 test case
|
|
* bjorn/major-release-cleanups:
observer tests: Test compatibility with R13, not R12
emulator tests: Test compatibility with R13, not R12
Teach the compiler the 'r14' option
erl_lint: The types introduced in R12B-5 are no longer "newly introduced"
otp_internal: Stop warning for functions removed in R12 or earlier
Conflicts:
lib/stdlib/src/otp_internal.erl
|
|
|
|
Add init_iff_file() for verifying the IFF header. Also let it handle
compressed BEAM files so that it will be done in one place. That means
that code:get_chunk/2 and code:module_md5/1 will now support compressed
BEAM files.
|
|
|
|
The undocumented code:get_chunk/2 BIF is supposed to be a fast way
to extract a chunk from a BEAM file when loading native code. In
practice, it might not have been faster because it happened to
calculate an MD5 checksum for the chunk it extracted because it
shared the scan_iff_file() function with the erlang:load_module/2
BIF.
Split scan_iff_file() into scan_iff_file() and verify_chunks(),
so that the unnecessary MD5 calculation can be avoided.
|
|
code:make_stub_module/3 leaked memory if given either a corrupt
BEAM file, or a compressed BEAM file and an error occurred, or
a binary not aligned on byte boundaries.
|
|
On my Mac, the highest successful value was 7673. The new value
provides some safety margin.
|
|
Inlining was not done in a portable way. clang follows the C99
semantics for inlining ('inline' essentially implies 'static' in
C99, but not in GCC), so bp_sched2ix() was not visible outside
beam_bp.c. Since the function need to be used from more than one
source file, put the function definition in the beam_bp.h header
file. Also, give it an 'erts_' prefix since it is globally visible.
|
|
Commit dd24ca1cb76d attempts to fix the problem that LLVM-based
compilers (such as llvm-gcc-4.2 and clang) miscompiles beam_emu.c.
The idea was to force the use of gcc-4.2 if the default compiler
was LLVM-based.
Since that fix, Apple released Xcode 4.2 that does not include
any version of gcc, only llvm-gcc-4.2 and clang.
We could require gcc in order to be the system, but it would be
nice if Erlang/OTP could be built out-of-box on MacOS X, albeit
with reduced performance.
Therefore, make sure that we set NO_JUMP_TABLE (use a switch
statement instead of computed gotos in beam_emu.c) if no compiler
that correctly handles computed gotos can be found.
We know that clang based on the upcoming LLVM 3.0 will work, but older
LLVM-based compilers will not, so we can test the version of clang.
llvm-gcc has been discontinued in LLVM 3.0, so if the compiler is
LLVM-based but not clang, we can assume that it does not handles
computed gotos correctly.
|
|
|
|
gcc don't care about the type, but clang does and will issue
a warning.
|
|
clang does not recognize the -no-cpp-precomp option and generates
a warning. -no-cpp-precomp is an obsolete Apple-specific gcc option,
which last had any effect in gcc 3.1 for Jaguar.
Since we cannot build for Jaguar anyway, the configure test added
in 8412a400e92d5cbcd is not needed.
|
|
This suppresses the 'missing_sasl' warning from systools.
|
|
|
|
|
|
The MIB compiler has changed how it reports syntax errors.
|
|
|
|
This reverts commit e21ff9b0b69219ab3853be7e80813156113152b7.
|
|
|
|
* pan/osx_gcc_fixes:
Fix typo in erts/configure.in
Make OTP build w/alternative gcc on MacOS Lion
OTP-9712
|
|
* pan/binary_match_scope/OTP-9701:
Remove remaining gcc 4.6 assigned-but-not-used warnings from erts
Remove GCC 4.6 set-but-not-used warning from erl_bif_binary
Make binary:match with scope return correct values
|