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.
|
|
|
|
Test nodes are started with erlang:open_port/2, using the -detached
option to erl. -detached causes the port returned from open_port/2 to
be closed automatically. Some test cases failed occasionally with a
badarg when attempting to close the port with erlang:port_close/1. To
avoid this the call to port_close/1 is now removed.
|
|
* siri/cuddle-with-tests:
[reltool] Clean up work dir after test
[observer] Add debug printouts in ttb_SUITE
|
|
This is to save space in daily tests.
Result of failed test cases are still saved.
|
|
|
|
A missing application directory is now classified as a warning if the
application is explicitly excluded.
|
|
The timeout of 5 minutes sometimes expired for test case
use_selected_vsn on some platforms.
|
|
|
|
|
|
* Make sure test node is terminated between each test
* Wait for expected applications to be started before continuing test
* Use ping instead of nodedown messages to check that node is down (to
avoid failure due to no flush of inbox)
|
|
reltool_server_SUITE:create_standalone and create_multiple_standalone
failed on test hosts running hipe and smp. The reason was that the
escript used in these tests explicitly disabled smp, which in turn
made the emulator spit out warnings like this:
"<HiPE (v 3.10)> Warning: not loading native code for module beam_lib:
it was compiled for an incompatible runtime system; please regenerate
native code for this runtime system"
This was returned from the escript and did not match the expected result.
To overcome this, the escript (reltool/examples/display_args) is
changed and does no longer disable smp.
|
|
|
|
|
|
|
|
Also changing from using erl_syntax and erl_prettypr to using erl_pp
in order to get better handling of specs.
|
|
This function is similar to file:consult, except it also operates on a
binary (e.g. read from an archive). The function now takes magic
encoding comment into account.
|
|
|
|
|
|
|
|
* 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.
|
|
* dgud/wx/fix-wx-2.9-compat/OTP-10407: (26 commits)
wx: Fix comments
wx: Workaround wx-2.9 bugs
wx: Mac fixes
wx: Fix demo and tests
wx: Allow 64 bits compilation on mac, requires wxWidgets-2.9
appmon: Move runtime part to runtime_tools app
reltool: fix wxWidgets-2.9 compability
debugger: Fix 2.9 compat
observer: Fix check for graphics contexts
Observer: Fix distribution dialog
observer: Fix font sizes
wx: Fix the demo
wx: Fix loading icons and cursors in Windows
wx: Remove unnecessary casts
wx: Fix changed getfunctions
wx: Depricate wxCursor new functions
wx: Fix int to enum
wx: Include correct m4 file in 2.9
wx: Update examples so they work with both wxWidgets 2.8 and 2.9
wx: Modify tests so they work on wxWidgets-2.9
...
|
|
|
|
|
|
Examples overflowing the width of PDF pages have been fixed.
The remaining warnings are due to table cells, and require more
work.
|
|
In order to handle paths with space, spawn_executable is now used
instead of spawn when starting nodes with open_port/2 in
reltool_server_SUITE.
|
|
In the first traversal of library directories, reltool used only the
directory names in order to figure out application names. This would
succeed if the directory name was AppName only or AppName-AppVsn and
AppVsn consisted of integers separated by dots only. If the AppVsn has
any other format, then reltool would not find the correct application
name.
With this commit, reltool will first look for a .app file and use the
.app file name as the application name. This will allow different
formats of the version identifier in the directory name. Note that
reltool can still not sort (and select the latest) amongst version
identifiers of other format than integers separated by dots.
|
|
The rel specification now dictates the order in which included and
used applications are loaded/started by the boot file. If the
applications are not specified in the rel spec, then the order from
the .app file is used. This was a bug earlier reported on systools,
and is now also implemented in reltool.
Example:
If a .app file specified
{applications,[x,y]}
{included_applications,[b,c]}
And the reltool.config has
{rel, "myrel", "1.0", [a,y,x,c,b]}
Then the boot file will load/start y before x and c before b. Earlier
x would always be started before y and b always before c due to the
order in the .app file.
|
|
If a 'rel' spec in the reltool config does not contain all
applications that are listed as {applications,Applications} in a .app
file, then these applications are autmatically added when creating the
.rel file.
For 'included_applications', the behaviour was not the same. I.e. if a
'rel' spec in the reltool config did not contain all applications that
are listed as {included_applications,InclApplications} in a .app file,
then reltool would fail with reason "Undefined applications" when
creating the .rel file. This has been corrected, so both
'applications' and 'included_applications' are now automatically added
if not already in the 'rel' spec.
I.e. for an application 'z', if z.app contains
{applications,[stdlib,kernel,x]}
{included_applications,[y]}
then reltool configuration
{rel, "myrel", "1.0", [z]}
will cause the same .rel file as
{rel, "myrel", "1.0", [stdlib,kernel,x,y,z]}
|
|
The erl.ini file generated by reltool:install/2 faulty pointed out
$ROOT/bin as Bindir. This is now changed to $ROOT/erts-Vsn/bin. Also,
backslashes in erl.ini needed to be escaped.
|
|
According to documentation it should be allowed to set
incl_cond=include|exclude|derived, but if set to derived on module
level, reltool_server would crash. This has been corrected.
|
|
|
|
|
|
* ta/docsmaint:
Fix various doc typos for R15B02
Fix various code typos for R15B02
OTP-10245
|
|
|
|
With this option reltool will create a target structure with only the
applications found in specified 'lib_dirs' (on system level) or
'lib_dir' (on app level). Erts will not be included, and no
applications found under $OTP_ROOT/lib.
|
|
|
|
OTP-10106
OTP-10107
|
|
|
|
|
|
Records #mod{} and #app{} are used in ets:select and must therefore
have '$1', '$2' and '_' as possible value of fields.
|
|
* siri/reltool/app-level-lib-dir/OTP-9977:
[reltool] Allow lib_dir on app level to use relative path
[reltool] Add configuration parameter lib_dir on application level
|
|
* 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
|
|
This commit adds a normalization of the directory given with the
lib_dir parameter on application level. This will covert the path to
absolute, remove trailing slash and any occurrencies of "xxx/..".
|
|
As a way of specifying one specific version of an application, the
following configuration parameter is added on application level:
{lib_dir,Dir}, Dir = string()
This can be useful if the parent directory of the application
directory is not suitable to use as a lib dir on system level.
|
|
OTP-9792
The colum listing modules that uses the current application or module
did earlier have the title "Modules used by others". This is now
changed to "Modules using this".
|
|
OTP-9792
For some configuration changes and during generation of target system,
there was no indication in the status bar that reltool was
working. This has been corrected - it now says "Processing
libraries...".
|
|
The new warning list did not work on Windows. It could not display
tooltips for each warning and the popup window would always disappear
behind the main system window.
Also, column width did not occur well initially in list controls.
|
|
The stdlib error has been corrected in a previous commit so the
failing test (reltool_server_SUITE:create_script_sort) can be
un-skipped.
|