Age | Commit message (Collapse) | Author |
|
|
|
For applications that are not included in a 'rel' spec in the reltool
config, dependencies in the .app file are not followed. This is now
corrected.
|
|
For applications that are included in a 'rel' spec in the reltool
config, some dependency chains are not followed. E.g.
* Application x has y as included application, and y in turn has z as
included application. Then z is not included.
* Application x has y in its 'applications' tag in the .app file, and
y in turn has z as included application. Then z is not included.
This is now corrected - all app-file dependencies are recusively
followed for all applications that are included in a 'rel' spec in the
reltool config.
|
|
|
|
In most cases, we don't have to seed the random number generator,
as the rand:uniform/1 takes care about that itself.
|
|
Record field types have been modified due to commit 8ce35b2:
"Take out automatic insertion of 'undefined' from typed record fields".
|
|
|
|
* rickard/time_api/OTP-11997: (22 commits)
Update primary bootstrap
inets: Suppress deprecated warning on erlang:now/0
inets: Cleanup of multiple copies of functions Add inets_lib with common functions used by multiple modules
inets: Update comments
Suppress deprecated warning on erlang:now/0
Use new time API and be back-compatible in inets Remove unused functions and removed redundant test
asn1 test SUITE: Eliminate use of now/0
Disable deprecated warning on erlang:now/0 in diameter_lib
Use new time API and be back-compatible in ssh
Replace all calls to now/0 in CT with new time API functions
test_server: Replace usage of erlang:now() with usage of new API
Replace usage of erlang:now() with usage of new API
Replace usage of erlang:now() with usage of new API
Replace usage of erlang:now() with usage of new API
Replace usage of erlang:now() with usage of new API
otp_SUITE: Warn for calls to erlang:now/0
Replace usage of erlang:now() with usage of new API
Multiple timer wheels
Erlang based BIF timer implementation for scalability
Implement ethread events with timeout
...
Conflicts:
bootstrap/bin/start.boot
bootstrap/bin/start_clean.boot
bootstrap/lib/compiler/ebin/beam_asm.beam
bootstrap/lib/compiler/ebin/compile.beam
bootstrap/lib/kernel/ebin/auth.beam
bootstrap/lib/kernel/ebin/dist_util.beam
bootstrap/lib/kernel/ebin/global.beam
bootstrap/lib/kernel/ebin/hipe_unified_loader.beam
bootstrap/lib/kernel/ebin/inet_db.beam
bootstrap/lib/kernel/ebin/inet_dns.beam
bootstrap/lib/kernel/ebin/inet_res.beam
bootstrap/lib/kernel/ebin/os.beam
bootstrap/lib/kernel/ebin/pg2.beam
bootstrap/lib/stdlib/ebin/dets.beam
bootstrap/lib/stdlib/ebin/dets_utils.beam
bootstrap/lib/stdlib/ebin/erl_tar.beam
bootstrap/lib/stdlib/ebin/escript.beam
bootstrap/lib/stdlib/ebin/file_sorter.beam
bootstrap/lib/stdlib/ebin/otp_internal.beam
bootstrap/lib/stdlib/ebin/qlc.beam
bootstrap/lib/stdlib/ebin/random.beam
bootstrap/lib/stdlib/ebin/supervisor.beam
bootstrap/lib/stdlib/ebin/timer.beam
erts/aclocal.m4
erts/emulator/beam/bif.c
erts/emulator/beam/erl_bif_info.c
erts/emulator/beam/erl_db_hash.c
erts/emulator/beam/erl_init.c
erts/emulator/beam/erl_process.h
erts/emulator/beam/erl_thr_progress.c
erts/emulator/beam/utils.c
erts/emulator/sys/unix/sys.c
erts/preloaded/ebin/erlang.beam
erts/preloaded/ebin/erts_internal.beam
erts/preloaded/ebin/init.beam
erts/preloaded/src/erts_internal.erl
lib/common_test/test/ct_hooks_SUITE_data/cth/tests/empty_cth.erl
lib/diameter/src/base/diameter_lib.erl
lib/kernel/src/os.erl
lib/ssh/test/ssh_basic_SUITE.erl
system/doc/efficiency_guide/advanced.xml
|
|
|
|
See #535
Signed-off-by: Peter Lemenkov <[email protected]>
|
|
|
|
Most dependencies introduced are exactly the dependencies to other
applications found by xref. That is, there might be real dependencies
missing. There might also be pure debug dependencies listed that
probably should be removed. Each application has to be manually
inspected in order to ensure that all real dependencies are listed.
All dependencies introduced are to application versions used in
OTP 17.0. This since the previously used version scheme wasn't
designed for this, and in order to minimize the work of introducing
the dependencies.
|
|
As discussed in issue #240 *all* OTP library applications use the '.*'
wildcard as up and down version. This makes library applications
always up- and downgradeable. Using the wildcard version obsoletes
all maintenance tasks regarding library applications' appup files.
Additionally, it prevents upgrade problems caused by automatically
included application dependencies when using reltool to create
releases. Missing copyright headers are now consistently present.
|
|
It caused a function clause in lists:sort/1:
reltool_server_SUITE.erl(2512): <ERROR>
Not matching actual result was:
{error,
{function_clause,
[{lists,sort,
[[{regexp,"^priv",
{re_pattern,0,1,
<<69,82,67,80,64,0,0,0,16,8,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,93,0,12,25,27,112,27,114,27,105,27,118,84,
0,12,0>>}}|
undefined]],
[{file,"lists.erl"},{line,465}]},
{reltool_server,decode,2,[{file,"reltool_server.erl"},{line,1499}]},
{reltool_server,decode,2,[{file,"reltool_server.erl"},{line,1363}]},
{reltool_server,read_config,2,
[{file,"reltool_server.erl"},{line,1335}]},
{reltool_server,parse_options,4,
[{file,"reltool_server.erl"},{line,224}]},
{reltool_server,do_init,1,[{file,"reltool_server.erl"},{line,154}]},
{reltool_server,init,1,[{file,"reltool_server.erl"},{line,133}]},
{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]}}
Expected { ok , _ }
|
|
* siri/install-otp-in-unicode-path:
[sasl] Remove priv dir after release_handler_SUITE
Update preloaded init.beam
Allow unicode characters for boot and config in init:make_permanent
[sasl] Clean priv_dir after systools_SUITE
[reltool] Use unicode characters in work dir for unicode test
[sasl] Use unicode characters in priv dir name also on windows
[reltool] Write erl.ini as UTF-8
[sasl] Update tests to run under unicode path
[sasl] Rewrite release_handler_SUITE:clean_priv_dir to work on unicode paths
[sasl] Update example/target_system.erl to handle unicode
[sasl] Write erl.ini as utf8, allowing unicode path for root dir and bin dir
|
|
Since file names on windows are unicode, and erl.ini contains paths to
'Bindir' and 'Rootdir', this file is now encoded in UTF-8.
|
|
|
|
A missing application directory is now classified as a warning if the
application is explicitly excluded.
|
|
|
|
|
|
|
|
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
...
|
|
|
|
|
|
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.
|
|
|
|
|
|
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.
|
|
OTP-9792
The following problems have been solved:
* reltool_target:do_merge_apps - in recursive calls to this function,
the accumulator was reverted each time causing the order of
applications listed after kernel and stdlib in the rel specification
in the configuration to sometimes be messed up.
* There are several ways to specify wich applications to include in an
application:
1) in the .app file for the including applications
2a) in the .rel file, when listing applications
2b) in the rel specification in the reltool configuration
2a (systools) and 2b (reltool) should have the same effect and
overwrite 1.
According to the documentation of systools (sasl), the default value
in 2a is an empty list. This should mean that if included
applications are not mentioned in the .rel file, then any included
application listed in the .app file will be disregarded. This is NOT
the way systools actually works. The implementation sets the default
for the .rel file to the same list as in the .app file.
Reltool earlier implemented 2b as described in the systools
documentation. However, after some discussion we decided to change
this so that reltool handles 2b in the same way as systools handles
2a since this seems more intuitive. The sasl documentation will be
altered accordingly (internal ref OTP-9980).
* If the rel specification in the reltool configuration explicitly
specified included applications to be an empty list, and the .app
file had a non-empty list, then the empty list from the rel
specification was discarded. This has been corrected so the rel
specification now, if set, always overwrites the value of
included_applications in the .app file.
* reltool would earlier add load instructions in the script/boot files
for ALL modules in the ebin directory of an application even if
mod_cond was set to app (include only modules listed in the .app
file). This has been corrected - now only modules with
#mod.is_included==true are loaded.
* reltool would earlier add start instructions in the script/boot file
for included applications. This has been corrected - included
applications shall only be loaded since the including application is
responsible for starting them.
|
|
OTP-9792
Earlier this would cause an error with reason
"Module xxx potentially included by two different applications: yyy and yyy."
This is now changed so it will only be a warning saying that the
module is duplicated in the .app file.
|
|
OTP-9794
|