Age | Commit message (Collapse) | Author |
|
Using the low-level BEAM instructions, we can loop over each message in
the process queue and removes the first message that matches, without
receiving them all to later send them back to itself.
The function prim_eval:'receive'/2 is equivalent to the
following pseudo-code:
'receive'(F, T) ->
RESET MESSAGE QUEUE POINTER,
LOOP:
case PEEK CURRENT MESSAGE WITH TIMEOUT T of
{ok,Msg} ->
case F(Msg) of
nomatch ->
DECREMENT TIMEOUT T,
ADVANCE MESSAGE QUEUE POINTER,
GOTO LOOP;
Result ->
RESET MESSAGE QUEUE POINTER,
Result
end;
timeout ->
RESET MESSAGE QUEUE POINTER,
timeout
end.
To not break Dialyzer and other tools, we use a stub Erlang module which
abstract code is forcefully inserted into prim_inet.erl afterwards
compilation.
|
|
|
|
Tests that compare execution time for release_handler:install_release
sometimes fail. This has been corrected by multiplying the time with
the CPU utilization in order to disregard wait time for e.g. file
access and and non-erlang related load.
|
|
|
|
|
|
|
|
* Update systool_lib:read_term/1 to honour magic encoding comment in file.
* Add unicode option to re:compile and re:run when appropriate,
allowing e.g. unicode filenames.
* systools_make to allow unicode strings in .rel and .app files
|
|
|
|
|
|
|
|
|
|
This test often fails dues to too high expectations. Don't expect the
test to be more than 1000 times faster with no old code - it just
doesn't happen!
|
|
|
|
* nox/enable-silent-rules/OTP-10726:
Implement ./otp_build configure --enable-silent-rules
|
|
With silent rules, the output of make is less verbose and compilation
warnings are easier to spot. Silent rules are disabled by default and
can be disabled or enabled at will by make V=0 and make V=1.
|
|
|
|
|
|
rickard/r16/port-optimizations/OTP-10336
* rickard/port-optimizations/OTP-10336:
Change annotate level for emacs-22 in cerl
Update etp-commands
Add documentation on communication in Erlang
Add support for busy port message queue
Add driver callback epilogue
Implement true asynchronous signaling between processes and ports
Add erl_drv_[send|output]_term
Move busy port flag
Use rwlock for driver list
Optimize management of port tasks
Improve configuration of process and port tables
Remove R9 compatibility features
Use ptab functionality also for ports
Prepare for use of ptab functionality also for ports
Atomic port state
Generalize process table implementation
Implement functionality for delaying thread progress from unmanaged threads
Conflicts:
erts/doc/src/erl_driver.xml
erts/doc/src/erlang.xml
erts/emulator/beam/beam_bif_load.c
erts/emulator/beam/beam_bp.c
erts/emulator/beam/beam_emu.c
erts/emulator/beam/bif.c
erts/emulator/beam/copy.c
erts/emulator/beam/erl_alloc.c
erts/emulator/beam/erl_alloc.types
erts/emulator/beam/erl_bif_info.c
erts/emulator/beam/erl_bif_port.c
erts/emulator/beam/erl_bif_trace.c
erts/emulator/beam/erl_init.c
erts/emulator/beam/erl_message.c
erts/emulator/beam/erl_port_task.c
erts/emulator/beam/erl_process.c
erts/emulator/beam/erl_process.h
erts/emulator/beam/erl_process_lock.c
erts/emulator/beam/erl_trace.c
erts/emulator/beam/export.h
erts/emulator/beam/global.h
erts/emulator/beam/io.c
erts/emulator/sys/unix/sys.c
erts/emulator/sys/vxworks/sys.c
erts/emulator/test/port_SUITE.erl
erts/etc/unix/cerl.src
erts/preloaded/ebin/erlang.beam
erts/preloaded/ebin/prim_inet.beam
erts/preloaded/src/prim_inet.erl
lib/hipe/cerl/erl_bif_types.erl
lib/kernel/doc/src/inet.xml
lib/kernel/src/inet.erl
|
|
|
|
|
|
It was possible to insert {Mod::atom(),Vsn::term()} instead of
Mod::atom() in the modules list in a .app file. This was not visible
in the documentation of .app files, but it was visible in the
documentation of application:load/[1,2] (where the .app file term can
be used directly as first argument).
The Vsn part was never used, so this possibility has now been removed.
|
|
|
|
release_handler_SUITE:otp_9864 deleted parts of the
release_handler_SUITE_data directory so the test suite could not be
executed twice without re-installation. This has been corrected.
|
|
Some tests in rb_SUITE failed every now and then depending on timing:
1. sometimes SASL printouts from cth_log_redirect were captured in
addition to expected printouts
2. sometimes test supervisor and server were not completely stopped
before next test case was started
This has been corrected.
|
|
|
|
Release_handler_suite correctly checks that no calls to the file module
is done during a diskless upgrade, but file:native_name_encoding is
a BIF that does no real i/o and can therefore be called during command line
argunemt parsing. The testcase is updated to ignore such calls.
|
|
OTP-10106
OTP-10107
|
|
|
|
|
|
This is a temporarily fix for R15B01.
|
|
* jc/omit-undefined-start_phases-3:
Avoid undefined start_phases entry in .script
Avoid creating an undefined start_phases entry when generating a release
OTP-10003
|
|
* siri/sasl/correct-app-name-in-error/OTP-9888:
Fix error message if stdlib has faulty start type in .rel file
|
|
* siri/sasl/doc-regexp-in-appup/OTP-10001:
Add documentation of regular expressions for version numbers in appup
|
|
If stdlib had a different start type than permanent, systools_make
would fail but it would say that it was sasl that had faulty start
type. This has been corrected.
|
|
|
|
Inorder to align with reltool a {start_phases,undefined} entry in will
no longer occur in the application specification in .script files. The
start_phases entry will only exist if it contains real start phases.
Also, the default value for #application.start_phases is no longer set
to [] in systools.hrl. This value was actually never used, since it
was always explicitly set in systools_make:parse_applications - by
default to 'undefined', so the default value in the record definition
was only a confusing detail. Anyway - now corrected.
|
|
OTP-9984
Applications that are listed in {applications,Apps} in the app file
were not sorted correctly in the script file. They were loaded/started
in the reverse order of how they were listed in the .app file.
This is corrected so they are now sorted (internally between each
other) in the same way as they are listed in the .rel file.
|
|
OTP-9980
Sasl documentation earlier said that the InclApps parameters in a .rel
file defaults to the empty list. This is not correct. It defaults to
the same value as specified in the .app file.
|
|
remove_file in release_handler would fail silently and leave directories
in inconsistent states if there was symlinks in a release directory
also added a test, otp_9864 to test change
|
|
|
|
* siri/sasl/check-config-in-tar/OTP-9539:
Check that sys.config and relup have valid content when added to tar
|
|
systools:make_tar now does a minor check of the content of sys.config
and relup before adding them to the tar file. If the content is not
readable or in expected format, the function fails.
|
|
It should not be possible to create a .boot file unless kernel and
stdlib are stated as permanent applications in the .rel file. Note
that 'permanent' is the default start type, so not specifying a start
type for kernel and stdlib is, as always, ok.
|
|
|
|
* siri/sasl/convert-to-common-test/OTP-9740:
Convert sasl test suites to pure common test style
|
|
|
|
|
|
|
|
Fix typos or minor faults.
Move out code listing of target_system.erl, and use codeinclude
statement to include this file from sasl/examples directory.
|
|
* siri/stdlib/dialyzer-supervisor/OTP-9741:
Add test for upgrade of supervisor
Fix dialyzer warnings in supervisor
|