Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
Refactor get_name/1 to facilitate an optimization in the next commit.
|
|
make_path() returns a tuple whose second element is not used by
any of its caller. Eliminate the tuple.
Also avoid calling filename:dirname/1 when we already have the result
stored in a variable, and avoid calling filename:basename/2 on a
complete path when we already have the last part of the pathname
stored in a variable.
|
|
absname/1 is quite expensive, so we should not call if we already
have a normalized absolute path.
|
|
The same filtering of sub directories is done in archive_subdirs/1
and try_archive_subdirs/1. Actually, archive_subdirs/1 does nothing
useful. It can be removed and all_archive_subdirs/1 can be renamed
to archive_subdirs/1.
In try_archive_subdirs/1, we can also replace filename:join/1
with the cheaper filename:append/1, since we know that pathnames
have already been normalized.
|
|
It is faster and easier to use filename:split/1 and filename:join/1
than use four different 'filename' operations. Each call in the
original call first flattens the input list, and then traverse the
entire string to the end. So there are roughly 8 complete traversals.
In comparison, filename:split/1 will traverse the input string
twice (once to flatten, once to split) and filename:join/1 once.
For background on why this optimization is worthwhile, here is the
result of profiling the start-up of the run-time system on my computer
(done before this optimization):
$ $ERL_TOP/bin/erl -profile_boot
.
.
.
filename:join1/4 - 13573 : 13805 us
erlang:finish_loading/1 - 27 : 19963 us
filename:do_flatten/2 - 29337 : 49518 us
erlang:prepare_loading/2 - 49 : 52270 us
Note that filename:do_flatten/2 ends up in second place, almost
as expensive as erlang:prepare_loading/2. Your mileage may vary,
depending on the length of $ERL_TOP and the number of extra
directories added to the path using $ERL_LIBS.
|
|
When using a code archive for an application, it should be possible
to store some directories for the application outside of the archive
file (for example, shared libraries that will not work inside an
archive). Make sure that we test that a directory outside of the
archive file really works.
|
|
|
|
|
|
Add the possibility to use modules as trace data receivers. The functions
in the module have to be nifs as otherwise complex trace probes will be
very hard to handle (complex means trace probes for ports for example).
This commit changes the way that the ptab->tracer field works from always
being an immediate, to now be NIL if no tracer is present or else be
the tuple {TracerModule, TracerState} where TracerModule is an atom that
is later used to lookup the appropriate tracer callbacks to call and
TracerState is just passed to the tracer callback. The default process and
port tracers have been rewritten to use the new API.
This commit also changes the order which trace messages are delivered to the
potential tracer process. Any enif_send done in a tracer module may be delayed
indefinitely because of lock order issues. If a message is delayed any other
trace message send from that process is also delayed so that order is preserved
for each traced entity. This means that for some trace events (i.e. send/receive)
the events may come in an unintuitive order (receive before send) to the
trace receiver. Timestamps are taken when the trace message is generated so
trace messages from differented processes may arrive with the timestamp
out of order.
Both the erlang:trace and seq_trace:set_system_tracer accept the new tracer
module tracers and also the backwards compatible arguments.
OTP-10267
|
|
* paulgray/inet_db_fix/PR-949/OTP-13470:
Fix start timestamp instead of time check
Allow to refresh resolver settings on startup
|
|
* siri/otp-19-vsns:
Update version of common_test for OTP-19
Update versions
|
|
* henrik/update-copyrightyear:
update copyright-year
|
|
to let future nodes know that we can handle
NEW_PID_EXT, NEW_PORT_EXT and NEWER_REFERENCE_EXT.
|
|
* bjorn/kernel/rpc-pinfo/ERL-124/OTP-13460:
Update spec for rpc:pinfo/2
|
|
rpc:pinfo/2 is documented as a location-transparent version
of process_info/2. Therefore, it should be expected that
the spec would allow calls with an item list, for example:
rpc:pinfo(Pid, [initial_call,last_calls])
Report-URL: http://bugs.erlang.org/browse/ERL-124
Reported-by: bjfish
|
|
* egil/erts/fix-file_info/OTP-13478:
Don't check dates before 1970
Log additional test information in prim_file_SUITE
Relax file_info tests
Refactor time_t in efile_drv
|
|
Verify with:
erl -noshell -eval 'io:write(inet_res:lookup("localhost",in,a)),io:nl(),init:stop().'
Prints:
[{127,0,0,1}]
Without this correction you will get [] on a hostname that works
later after system start.
|
|
* bjorn/kernel/remove-deprecated/OTP-13449:
rpc: Remove functions deprecated in R12B
|
|
* bjorn/cuddle-with-tests:
inet_SUITE: Handle pointtopoint devices in getifaddrs/1
file_SUITE: Increase timetrap for large_write/1
gen_fsm_SUITE: Make abnormal1/1 stop failing
gen_fsm_SUITE: Use timer:sleep/1 instead of ct:sleep/1
inet_SUITE: Handle {error,enoent} in simple_netns_open
inet_SUITE: Handle missing SCTP support in simple_netns/1
asn1_SUITE: Remove temporary files
file_name_SUITE: Improve handling of missing permission for link creation
file_name_SUITE: Remove useless put/2 to process dictionary
file_name_SUITE: Handle the case that HOMEPATH may not be set
code_SUITE: Skip on_load_embedded/1 if no symlinks
gen_sctp_SUITE: Skip most SCTP test cases on Solaris before 5.12
heart_SUITE: Increase timeout in restart/1
heart_SUITE: Use unique node names
init_SUITE: Quote pathname that may contain a space
gen_tcp_misc_SUITE: Clean up send_timeout{_active}/1
Clean up the determination of the hostname
|
|
|
|
OTP-13458
* dcorbacho/dist_util_logs:
Keep error reasons for some common distribution errors
|
|
|
|
|
|
|
|
code:set_path/1 no longer returns {error,bad_path} (an exception
will be thrown instead).
|
|
Language cleaned up by technical writers from Combitech.
Proofreading and corrections by Björn Gustavsson and
Hans Bolinder.
|
|
Update application versions for kernel, stdlib and sasl for OTP-19.
|
|
|
|
In 9870d22b2401b, the timetrap for large_write/1 was accidentally
reduced from the default 30 minutes to only 1 minute. That is not
enough for some older computers.
|
|
Allow an open operation to fail with {error,enoent}. That will
happen if the executable has compiled-in support for netns,
but the computer has not been configured for netns.
|
|
|
|
On modern versions of Windows, creation of symlinks is supported,
but our test machines usually don't have permissions for creating
symlinks. Therefore, the has_links/0 that attempts to predict whether
link creation will work by testing version numbers will not do
any good.
Refactor the code so that test cases don't fail when links cannot
be created because of missing permissions.
|
|
There is never any corresponding get/1.
|
|
Seems that it can happen on Windows.
|
|
On Windows, we might not have permission to create symlinks.
Skip the test case instead of failing.
|
|
On old Solaris versions, many gen_sctp test cases fail. It is not
clear whether the implementation or the test cases or both must
be fixed.
The number of failed test cases is a problem, as other failed
test cases in the Kernel application might not be noticed.
For now, skip most test gen_sctp test cases on old Solaris platforms,
until the day that someone can mend the tests case and/or
implementation (or test machines die). Keep a few smoke test
cases.
|
|
|
|
Avoid interference between test cases.
|
|
On Windows, the pathname is likely to start with "C:/Program Files".
|
|
Eliminate gratuitous use of funs.
Don't limit the send attempts to 1000; it might not be enough.
Rely on four minut timetrap to fail the test case if there will
never be a send timeout error.
|
|
|
|
This is necessary for windows to perform correctly when writing
large files.
|
|
* lukas/kernel/error_logger_warn_fix/OTP-13184:
kernel: Fix progress check in error logger warn suite
|
|
On Windows, the pathnames for modules that are loaded early are
returned with mixed backslashes and slashes:
1> code:which(lists).
"C:\\Program Files\\erl8.0/lib/stdlib-2.7/ebin/lists.beam"
2>
Modules loaded later are fully normalized.
When starting the code_server, normalize the pathnames for all modules
that have been loaded so far.
|
|
|
|
=== OTP-18.3 ===
Changed Applications:
- asn1-4.0.2
- common_test-1.12
- compiler-6.0.3
- cosNotification-1.2.1
- cosTime-1.2.1
- cosTransactions-1.3.1
- crypto-3.6.3
- debugger-4.1.2
- dialyzer-2.9
- diameter-1.11.2
- edoc-0.7.18
- eldap-1.2.1
- erl_docgen-0.4.2
- erl_interface-3.8.2
- erts-7.3
- eunit-2.2.13
- hipe-3.15
- inets-6.2
- kernel-4.2
- mnesia-4.13.3
- observer-2.1.2
- orber-3.8.1
- public_key-1.1.1
- runtime_tools-1.9.3
- sasl-2.7
- snmp-5.2.2
- ssh-4.2.2
- ssl-7.3
- stdlib-2.8
- test_server-3.10
- tools-2.8.3
- webtool-0.9.1
- wx-1.6.1
- xmerl-1.3.10
Unchanged Applications:
- cosEvent-2.2
- cosEventDomain-1.2
- cosFileTransfer-1.2
- cosProperty-1.2
- et-1.5.1
- gs-1.6
- ic-4.4
- jinterface-1.6.1
- megaco-3.18
- odbc-2.11.1
- os_mon-2.4
- ose-1.1
- otp_mibs-1.1
- parsetools-2.1.1
- percept-0.8.11
- reltool-0.7
- syntax_tools-1.7
- typer-0.9.10
Conflicts:
OTP_VERSION
erts/vsn.mk
lib/test_server/doc/src/notes.xml
lib/test_server/vsn.mk
lib/webtool/doc/src/notes.xml
lib/webtool/vsn.mk
|
|
These error reasons can be seen in the logs after calling net_kernel:verbose(1).
|