Age | Commit message (Collapse) | Author |
|
Profiling showed that hipe_sdi spent most of its time in updateParents,
discarding nodes that were already deleted. By introducing a delete
operation to the segment trees, we can pay this cost only once, when
deleting the node from the graph.
Instead of keeping the ranges around, we recompute the range of the node
when we delete it, since this can be done in constant time, without any
memory allocation.
Although segment trees are not designed to be modified once built,
implementing a delete operation turned out to be a simple matter of
repeating insertion, but deleting the index from, instead of consing it
on, the appropriate nodes' values (segment lists).
This optimisation drastically sped up hipe_sdi to the point of no longer
being the bottleneck in the Assembly stage.
|
|
This speeds up parentsOfChild/2 from O(n) to O(lg n + k).
A new module misc/hipe_segment_trees.erl is introduced.
|
|
hipe_icode_bincomp:find_bs_get_integer/3 was quadratic for no good reason. By observing
that NewSuccs and Rest are always disjoint, we can see that the worklist
does not need to be a set. Furthermore, by replacing the ordset Visited
with a map, we reduce complexity to (a very low) O(n lg n).
On cuter_binlib, this change reduced the time for hipe_icode_bincomp
from 60s to .25s. Using a gb_set for Visited gives .5s, and a sets:set
1s.
We apply the same optimisation to hipe_icode_range.
|
|
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.
|
|
For applications that are explicitly included in the reltool config,
but that are not included in a 'rel' spec, dependencies in the .app
file are not followed (only xref dependencies are taken care of).
|
|
* siri/cuddle-maint:
[sasl test] Skip tests on slow host
[sasl test] Catch erlang:port_close/1
[ct test] Extent node startup timeouts in netconfc_remote_SUITE
[ct test] Monitor netconf server during transaction
[sasl test] Extend wait time when starting nodes
[ct test] Skip system time related tests on TimeWarpingOS
|
|
* siri/cuddle-master:
Make crashdump_viewer_SUITE independent of OTP version
|
|
|
|
This can happen when a syntactically incorrect text is passed to a
merl:qquote/2,/3 call.
The parse transform optimizes calls to some functions in merl by
converting strings into templates at compile time. If this evaluation
fails (in eval_call/4 - for example because of a sytanx error in the
parsed text) the original function call should be kept unchanged.
However in case of qquote/3 the call is converted into a combination of
quote/2 and subst/2, but upon failure the original qquote/3 call is
substituted into the wrong place. E.g.:
this expression
merl:qquote(Pos, Text, Env)
is first converted to
merl:subst(merl:quote(Pos, Text), Env)
then if evaluating the quote call fails into
merl:subst(merl:qquote(Pos, Text, Env), Env)
and the expansion is run again on the internal qquote/3 argument
resulting in an infinite loop.
This is now fixed so in case of failure the original qquote/3 call is kept.
|
|
|
|
Make sure ssl application has a fresh start, so that test do
not fail due to that other tests did not clean up properly.
|
|
|
|
* ingela/odbc/ctify:
odbc: Convert doc clauses form test_server to ct
odbc: Replace test_server with ct eqvivalents
odbc: Remove legacy config macros
odbc: Remove legacy suite clauses from test suites
|
|
|
|
In TLS-1.2 the selection of the servers algorithms and the the
possible selection of algorithms for the client certificate verify
message have different requirements.
|
|
Tests in ECC_SUITE did not always use the certs implied by the
name. Variable naming also confused the intent.
ssl_certificate_verify_SUITE did not clean up properly and tests could
fail due to cache problems.
|
|
release_handler_SUITE:otp_9395_update_many_mods and
otp_9395_rm_many_mods often fail on test host 'nain' due to a very
slow sys call. These tests are now skipped on this host.
|
|
After starting a node with open_port({spawn_executable,...},...), the
resulting port is closed both automatically and by the calling
rh_test_lib:cmd/3. To avoid 'badarg' in the case when the automatic is
faster, the call to erlang:port_close/1 is now catched.
|
|
|
|
Netconf client tests fail every now and then with
'table_trans_timeout' with no obvious reason. A monitor of the maint
netconf server process is now added - in case this process crashes
during the transaction.
|
|
* maint:
wx: Prepare for using Erlang types and specs
syntax_tools: Improve types
syntax_tools: Improve seealso:s referring to types
erl_docgen: Allow 'seealso' in 'name'
erl_docgen: Generate type links in callback module creating erlref
erl_docgen: Correct callback module for creating erlref
erl_docgen: Improve callback module for creating erlref
edoc: Correct types
|
|
Create correct links to datatypes outside of the wx application.
The added time for generating the doc/specs/specs_* files is unwelcome
(they are currently not used).
|
|
|
|
Extract specs och types from source files, which ensures that
seealso:s referring to, for example, erl_parse:abstract_form(), are
assigned working links.
|
|
|
|
Create links to types, but generate no links to local types.
|
|
Show map fields correctly.
|
|
Create `Module:Type()' instead of `Type() (see module Module)'.
|
|
|
|
* maint:
syntax_tools: Make erl_tidy work on input file with tilde
|
|
See also http://bugs.erlang.org/browse/ERL-151.
|
|
* maint:
dialyzer: Suppress warns on generated case stmts
|
|
into maint
* margnus1/dialyzer/suppress_warns/ERL-159/PR-1121/OTP-13723:
dialyzer: Suppress warns on generated case stmts
|
|
Sometimes there are hanging ports left after a test run,
we don't want the emulator to be left haning if that happens
after a test run.
|
|
Some taylormade functions still used edoc spec's, and some
where wrong which caused broken links.
Change them to be real spec's and correct the types.
|
|
* maint:
Fix return value spec for ets:match_object
|
|
* iilyak/stdlib/correct_ets_specs/PR-1113/OTP-13721:
Fix return value spec for ets:match_object
|
|
Warnings about clauses that cannot match and are also compiler generated
are suppressed unless none of the clauses return.
This feature is useful for non-Erlang BEAM languages (such as Elixir)
that compile to Erlang and expand certain language constructs into case
statements. In that case, as long as the language construct can succeed,
these warnings are undesired and appear spurious to users that do not
check the Erlang code that their program expands into.
Thanks to José Valim for the test (slightly modified).
|
|
* maint:
edoc: Provide a slightly better fix for unmatched returns
|
|
ets:match_object/1 and ets:match_object/3 return list of matches
|
|
An attempt to shut off Dialyzer's unmatched return warnings made
a change that simply ignored the return type of a function.
It's arguably better to modify the code of this function to not
return something "by accident." While at it, rewrote a slighty
confusing use of a list comprehension without a generator to a
case statement.
|
|
See also ERL-182.
|
|
`select_best_version` has the duplicated case.
|
|
|
|
* ingela/ssl/dist-stop-nodes:
ssl: All started test nodes must be cleaned up
|
|
|
|
* goertzenator/snmpstring/PR-1100/OTP-13706:
add snmp_agent_conf_test to modules.mk
Fix ERL-164 for agent, vacm, and usm config files
snmp tests demonstrating ERL-164, no string escaping for SNMP config files
|
|
Conflicts:
OTP_VERSION
|
|
|