Age | Commit message (Collapse) | Author |
|
|
|
* nox/compile-column-numbers:
Fix messages ordering with column numbers
Fix type compile:err_info/0
Test column number reporting in error_SUITE
Fix printing of errors with column numbers
Create a new "column" option in compile
Allow setting of initial position in epp
Export type erl_scan:location/0
|
|
* maint:
Update to work with space in include path
Update to work with whitespace in exec path
|
|
OTP-10106
OTP-10107
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* rj/fix-supervisor-shutdown-doc:
Fix small typo in kernel app doc
Cosmetic: split very long lines from supervisor doc
Fix supervisor doc: Shutdown, MaxR and MaxT type specs
Add the type restrictions in the code comments
Remove trailing spaces
OTP-9987
|
|
* rj/fix-misc-doc-typos:
Fix a code snippet and two typos in the doc
|
|
* 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
|
|
The next code snippets from supervisor.erl show that Shutdown from a
child specification must be greater than zero and the same applies to
MaxT.
--- supervisor.erl ----------------------------------------------------------
validShutdown(Shutdown, _)
when is_integer(Shutdown), Shutdown > 0 -> true;
validShutdown(infinity, _) -> true;
validShutdown(brutal_kill, _) -> true;
validShutdown(Shutdown, _) -> throw({invalid_shutdown, Shutdown}).
validIntensity(Max) when is_integer(Max),
Max >= 0 -> true;
validIntensity(What) -> throw({invalid_intensity, What}).
validPeriod(Period) when is_integer(Period),
Period > 0 -> true;
validPeriod(What) -> throw({invalid_period, What}).
-----------------------------------------------------------------------------
|
|
|
|
|
|
* ahs/fix-gb_trees-doc:
Put gb_trees documentation into alphabetical order
OTP-9929
|
|
* rj/fix-binary-doc-spec:
Fix the type spec from the doc of binary:part/3
OTP-9920
|
|
* 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.
|
|
|
|
As the doc explains, the Len of part() can be negative.
|
|
|
|
|
|
|
|
Supervisor should never keep child specs for dead temporary children.
|
|
|
|
|
|
|
|
|
|
* siri/stdlib/dialyzer-supervisor/OTP-9741:
Add test for upgrade of supervisor
Fix dialyzer warnings in supervisor
|
|
* siri/stdlib/dialyzer-log_mf_h/OTP-9754:
Fix dialyzer warning about gen_event callback init/1 in log_mf_h
|
|
The warning is about log_mf_h having a different spec for gen_event
callback init/1 than defined in gen_event.erl. log_mf_h allows return
value {error,Reason}, while gen_even only specifies successful return
values.
This commit add {error,Reason} as a valid return value to the
gen_event callback, since this is handled by the code.
|
|
Dialyzer complained over a mismatch between the callback spec of
Mod:code_change in gen_server and the spec of supervisor:code_change
(which is the implementation of a gen_server Mod:code_change).
This commit changes the callback spec to allow {error,Reason} as
return value. Also, release_handler is updated to handle this return
value.
|
|
* bjorn/compiler/options/OTP-9752:
filename documentation: Recommend against using filename:find_src/1,2
Teach filename:find_src/1,2 to handle slim or stripped BEAM files
filename: Eliminate failing call to Mod:module_info(source_file)
filename.erl:filter_options/1: Remove handling of dead options
compiler: Don't include {cwd,_} in module_info(compile)
compiler: Don't include source code options in module_info(compile)
hipe: Teach hipe to handle slim or stripped BEAM files
|
|
Reported by Uwe Dauernheim.
|
|
|
|
* bjorn/remove-regexp-module/OTP-9737:
stdlib: Remove the deprecated regexp module
|
|
OTP behaviour instances (gen_server, gen_fsm, gen_event) can currently
register themselves either locally or globally, and the behaviour
libraries (including gen.erl) support both addressing methods, as well
as the normal Pid and {Name, Node}.
However, there are alternative registry implementations - e.g. gproc -
and one can well imagine other ways of locating a behaviour instance,
e.g. on a node connected only via a TCP tunnel, rather than via
Distributed Erlang. In all these cases, one needs to write extra code
to identify the behaviour instance, even though the instance itself
need not be aware of how it is located.
This patch introduces a new way of locating a behaviour instance:
{via, Module, Name}.
Module is expected to export a subset of the functions in global.erl,
namely:
register_name(Name, Pid) -> yes | no
whereis_name(Name) -> pid() | undefined
unregister_name(Name) -> ok
send(Name, Msg) -> Pid
Semantics are expected to be the same as for global.erl
This can be used in all places where {global, Name} is accepted.
faulty export in gen_fsm_SUITE.erl
await process death in dummy_via:reset()
fix error in gen_[server|fsm]:enter_loop()
fix documentation
|
|
|
|
|
|
These dependency files was once used when building the documentation,
but are no longer needed.
|
|
* cf/simple_one_for_one_shutdown:
Explain how dynamic child processes are stopped
Stack errors when dynamic children are stopped
Explicitly kill dynamic children in supervisors
Conflicts:
lib/stdlib/doc/src/supervisor.xml
OTP-9647
|