Age | Commit message (Collapse) | Author |
|
* maint:
Remove loops from the graph created by digraph_utils:condensation/1
|
|
* hb/stdlib/digraph_condensation/OTP-9953:
Remove loops from the graph created by digraph_utils:condensation/1
|
|
|
|
When an attempt to restart a child failed, supervisor would earlier
keep the execution flow and try to restart the child over and over
again until it either succeeded or the restart frequency limit was
reached. If none of these happened, supervisor would hang forever in
this loop.
This commit adds a timer of 0 ms where the control is left back to the
gen_server which implements the supervisor. This way any incoming
request to the supervisor will be handled - which could help breaking
the infinite loop - e.g. shutdown request for the supervisor or for
the problematic child.
This introduces some incompatibilities in stdlib due to new return
values from supervisor:
* restart_child/2 can now return {error,restarting}
* delete_child/2 can now return {error,restarting}
* which_children/1 returns a list of {Id,Child,Type,Mods},
where Child, in addition to the old pid() or 'undefined',
now also can be 'restarting'.
|
|
The function digraph_utils:condensation/1 used to create a digraph
containing loops contradicting the documentation which states that the
created digraph is free of cycles.
Thanks to Kostis Sagonas for finding the bug.
|
|
|
|
* uw/extending_gen:
Add plugin support for alternative name lookup
OTP-9945
|
|
|
|
A large 64-bit immediate number will be stored as SMALL_BIG_EXT by ETS
compressed format. When uncompressing, the SMALL_BIG_EXT was first
decoded as as bignum (by bytes_to_big) and then turned into a small
(by big_norm). This works for normal "binary_to_term" as
decoded_size() over-estimates the needed heap size. But for ETS no
over-estimation is done as the real term size is known and stored in
DbTerm.
Fixed by preventing bytes_to_big() from writing bignum digit when the
number is seen to fit in an immediate.
|
|
|
|
* ahs/fix-gb_trees-doc:
Put gb_trees documentation into alphabetical order
OTP-9929
|
|
Conflicts:
lib/hipe/cerl/erl_bif_types.erl
lib/stdlib/doc/src/binary.xml
|
|
* rc/spell-registered:
Correct spelling of "registered" in various places in the source code
OTP-9925
|
|
* rj/fix-binary-doc-spec:
Fix the type spec from the doc of binary:part/3
OTP-9920
|
|
* maint:
Correct access flag handling in sftpd
Client fallbacks to ipv4 if connection is refused with ipv6
Cleaned up code so that ssh_file can become a template for a documented ssh_keys behavior
Test case maintenance
Better handling of IPv6
Ssh daemon handles RSA host keys
Removed no longer needed code
Use the public_key application for all public key handling
|
|
|
|
* maint:
Remove usage of tuple funs in sofs
|
|
* maint:
Update primary bootstrap
HiPE: Remove support for is_constant/1
erl_lint: Remove handling of constant/1
erl_bif_types: Remove type for is_constant/1
erl_eval: Remove support for is_constant/1
Remove support for is_constant/1 in ms_transform
Remove references to is_constant/1 from the match spec documentation
Conflicts:
lib/hipe/cerl/erl_bif_types.erl
Also re-instate the type for erlang:is_boolean/1 which was
accidentally omitted in the master branch.
|
|
|
|
* bjorn/remove-is_constant-vestiges/OTP-6454:
HiPE: Remove support for is_constant/1
erl_lint: Remove handling of constant/1
erl_bif_types: Remove type for is_constant/1
erl_eval: Remove support for is_constant/1
Remove support for is_constant/1 in ms_transform
Remove references to is_constant/1 from the match spec documentation
|
|
* maint:
Update primary bootstrap
Deprecate the Toolbar application
Deprecate applications that have been superseded by observer
Suppress deprecated warnings in all modules that call 'gs'
Deprecate the gs application
Mark doc_builder as removed (and not merely deprecated)
|
|
* bjorn/deprecations/OTP-9907:
Deprecate the Toolbar application
Deprecate applications that have been superseded by observer
Suppress deprecated warnings in all modules that call 'gs'
Deprecate the gs application
Mark doc_builder as removed (and not merely deprecated)
|
|
|
|
|
|
Update preloaded erlang.beam
Removed stray error in dialyzer test suite - different error message
with the new specs.
|
|
* maint:
erlang.xml: Fix a few typos and grammatical errors
debugger tests: Increase time trap timeout
fprof_SUITE: Skip create_file_slow/1 if libraries are native
etop_SUITE: Skip a test case if libraries are native-compiled
Skip all inviso test cases if libraries are native-compiled
erl_prim_loader_SUITE: Handle native-compiled erl_boot_server
re_SUITE: Skip error_handling/1 if 're' is native code
shell_SUITE: Handle different EXIT reasons from native code
sofs_SUITE: Handle different EXIT reasons from native code
erl_eval_SUITE: Skip test of parameterized modules if native code
trace_port_SUITE: Skip test cases if 'lists' is native-compiled
call_trace_SUITE: Skip test cases if libraries are native-compiled
|
|
|
|
As the doc explains, the Len of part() can be negative.
|
|
|
|
|
|
|
|
Parameterized modules are not supported by HiPE.
|
|
|
|
|
|
|
|
* maint:
Update primary bootstrap
erl_lint: Disallow call to is_record/3 if there is a local is_record/3
Fix crash in trace_info({M,F,A}, Flags) when M:F/A has native code
Ensure that generated record operations don't call local functions
|
|
Attempting to call is_record/3 (without an erlang: prefix) from a
guard if there was a local function named is_record/3 would cause
a compiler crash. For consistency with other guard tests, disallow
the call.
is_record/2 in a guard will still be allowed (and work correctly)
even if there is a local is_record/2. It could be argued that
is_record/2 should be handled in the same way as is_record/3,
but changing that now could break working code.
|
|
Consistently use external (remote) calls to the BIFs element/2,
setelement/3, and is_record/3.
|
|
* maint:
Update primary bootstrap
erl_lint: Consistently reject local calls from guards
|
|
* bjorn/compiler/bif-call-bug/OTP-9866:
erl_lint: Consistently reject local calls from guards
|
|
|
|
* egil/fix-error_logger-calendar/OTP-9854:
stdlib: Refactor to tag all times in error logger
stdlib: Use utc time as base in error logger
|
|
If a guard test (such as is_list/1) has a local definition in a
module (or is imported), erl_lint will reject a call to it from
a guard if the call is not at the top-level:
foo(L) when is_list(L) =:= true -> %% Will be rejected.
ok.
is_list(_) -> ok.
But if the call is at the top-level, it will be accepted (and
cause a crash in a later compiler pass):
foo(L) when is_list(L) -> %% Will be accepted by erl_lint
ok.
is_list(_) -> ok.
This inconsistency was an oversight introduced when it became
possible to override BIFs with local definitions.
|
|
|
|
* sverk/wait_for_test_procs:
stdlib: Enable unused 'end_per_testcase' in ets_SUITE
|
|
* siri/update-generic-appup-files/OTP-9845:
Update appup files for kernel and stdlib for OTP R16
|
|
|
|
* All computer time should be in utc and
converted to local when needed
* Previous conversion used the depcrated
calendar:local_time_to_universal_time/1
|
|
|
|
|