aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2014-11-06Update dialyzer test with maps in supervisor propertiesSiri Hansen
After introducing maps for supervisor flags and child specs two tests in behaviour_SUITE started failing: behaviour_SUITE:custom_sup - failed because the type of the Period (MaxT) property had been changed (corrected) from non_neg_integer() to pos_integer() in the specification of the init callback in supervisor.erl behaviour_SUITE:supervisor_incorrect_return - same as above, plus the introduction of #{} as possible value for the supervisor flags and child_specs.
2014-11-06Add documentation of maps in supervisor flags and child specsSiri Hansen
2014-11-06Add test of maps in supervisor flags and child specsSiri Hansen
2014-10-20New function supervisor:get_childspec/2Siri Hansen
Takes the name of the child (or Pid, in the case of a simple_one_for_one supervisor) and returns the map which specifies the child.
2014-10-20Allow maps for supervisor flags and child specsSiri Hansen
Earlier, supervisor flags and child specs were given as tuples. While this is kept for backwards compatibility, it is now also allowed to give these parameters as maps: -type sup_flags() :: #{strategy => strategy(), % optional intensity => non_neg_integer(), % optional period => pos_integer()} % optional -type child_spec() :: #{id => child_id(), % mandatory start => mfargs(), % mandatory restart => restart(), % optional shutdown => shutdown(), % optional type => worker(), % optional modules => modules()} % optional Default values are as follows: Supervisor flags: strategy: one_for_one intensity: 1 period: 5 Child specs: restart: permanent type: worker shutdown: 5000 for workers, 'infinity' for supervisors modules: [M], where M comes from the child's start {M,F,A} Some of these default values are quite hard to decide on, since there really is no "most common way". It always depends on the use case. So we decided that the most important reason for having default values is to lower the start barrier and get "something" running. For production use, most systems must be fine tuned in this respect anyway. This is how we reasoned about it: Strategy: just pick one - and 'one_for_one' was most used in OTP. Max restart frequency (intensity/period): by allowing one restart only we keep the important supervisor feature of restarting children, but we also avoid the possibility of scaling to a huge amount of restarts if the supervisor tree is deep. Restart: just pick one - and 'permanent' is fairly common. Shutdown for workers: to avoid the confusion of why the terminate function is not executed, we decided not to use 'brutal_kill'. Which number to use is probably not that important, so we chose 5000. Shutdown for supervisors: the recommended shutdown value for supervisors is 'infinity', so we decied to use that. Having the same (integer) value as for workers can give very strange results. Type: just pick one - and we believe that 'worker' is most common
2014-10-08Rebase supervisorSiri Hansen
Remove duplicated code related to checking of supervisor flags.
2014-10-08Add more tests of supervisorSiri Hansen
Add tests of code_change/3 and error handling of supervisor flags.
2014-10-06Merge branch 'maint'Bruce Yinhe
2014-10-06Merge branch 'vinoski/edlin-ctrl-u' into maintBruce Yinhe
OTP-12224 * vinoski/edlin-ctrl-u: Make shell ctrl-u save killed text correctly
2014-10-06Merge branch 'maint'Ingela Anderton Andin
2014-10-06Merge branch 'ia/ssl/link-fix' into maintIngela Anderton Andin
* ia/ssl/link-fix: ssl: Fix link error in documentation
2014-10-06Merge branch 'maint'Bruce Yinhe
2014-10-06Merge branch 's1n4/httpc_doc_typo' into maintBruce Yinhe
OTP-12221 * s1n4/httpc_doc_typo: httpc: Fix a typo in the documentation
2014-10-03Merge branch 'egil/maps/variable-keys/OTP-12218'Björn-Egil Dahlberg
* egil/maps/variable-keys/OTP-12218: (22 commits) compiler: Update test for Maps aliasing compiler: Properly support Map aliasing compiler: Refactor Map pairs aliasing compiler: Fix harmless need_heap error for Maps stdlib: Update Map tests stdlib: Use environment bindings for Maps keys in erl_eval matching debugger: Update Map tests compiler: Update Map tests compiler: Fix v3_core Maps pair chains compiler: Use expressions in core patterns compiler: Use variables in Map cerl inliner compiler: Reintroduce binary limit for Map keys compiler: Shameless v3_core hack for variables compiler: Use variables in Map beam assmebler compiler: Use variables in Map kernel pass compiler: Use variables in Map core pass compiler: Normalize unary ops on Maps key literals stdlib: Update Map tests stdlib: erl_lint Map key variables compiler: Maps are always patterns never values in matching ...
2014-10-03ssl: Fix link error in documentationIngela Anderton Andin
2014-10-02compiler: Update test for Maps aliasingBjörn-Egil Dahlberg
2014-10-02compiler: Properly support Map aliasingBjörn-Egil Dahlberg
Matching of type: #{K := V1} = #{K := V2} = M, Will alias (coalesce) to #{K := V1 = V2} = M.
2014-10-02Merge branch 'maint'Siri Hansen
Conflicts: lib/stdlib/src/stdlib.appup.src
2014-10-02Merge branch 'siri/appups-17.4' into maintSiri Hansen
* siri/appups-17.4: Fix stdlib.appup for OTP-17.4
2014-10-02Merge branch 'siri/filename-join-2/OTP-12158'Siri Hansen
* siri/filename-join-2/OTP-12158: Fix handling of single dot in filename:join/2
2014-10-02Merge branch 'maint'Bruce Yinhe
2014-10-02Merge branch 'goofansu/fix-gen-event-comment' into maintBruce Yinhe
OTP-12214 * goofansu/fix-gen-event-comment: Fix typo in erlang-mode comment
2014-10-02httpc: Fix a typo in the documentationSina Samavati
2014-10-01compiler: Refactor Map pairs aliasingBjörn-Egil Dahlberg
2014-10-01compiler: Fix harmless need_heap error for MapsBjörn-Egil Dahlberg
Need heap for maps is zero and fall through is also zero.
2014-10-01Make shell ctrl-u save killed text correctlySteve Vinoski
Fix edlin to correctly save text killed with ctrl-u. Prior to this fix, entering text into the Erlang shell and then killing it with ctrl-u followed by yanking it back with ctrl-y would result in the yanked text being the reverse of the original killed text. Add a test for the fix to interactive_shell_SUITE. (This is the same fix as in PR#416, but that PR was never completed.)
2014-10-01Merge branch 'maint'Björn-Egil Dahlberg
2014-10-01Merge branch 'ap/attribute_fun_arity_in_map/OTP-12213' into maintBjörn-Egil Dahlberg
* ap/attribute_fun_arity_in_map/OTP-12213: stdlib: Test Map attributes via erl_pp stdlib: erl_parse abstract Maps stdlib: Refactor ?line in erl_pp_SUITE:misc_attrs stdlib: Refactor Maps farity attributes Allow Name/Arity syntax in maps inside attributes
2014-10-01Merge branch 'maint'Björn-Egil Dahlberg
Conflicts: lib/stdlib/src/erl_pp.erl
2014-10-01Merge branch 'egil/fix-erl_pp/OTP-12190' into maintBjörn-Egil Dahlberg
* egil/fix-erl_pp/OTP-12190: stdlib: Handle key type expressions
2014-10-01Merge branch 'maint'Siri Hansen
2014-10-01Merge branch 'siri/new-dialyzer-gen_event/OTP-12206' into maintSiri Hansen
* siri/new-dialyzer-gen_event/OTP-12206: Fix dialyzer warnings for unmatched return in gen_event
2014-10-01Merge branch 'maint'Marcus Arendt
2014-10-01Merge branch 'capflam/filelib_wildcard_fix' into maintMarcus Arendt
* capflam/filelib_wildcard_fix: Fix filelib:wildcard/2 when 'Cwd' ends with a dot
2014-10-01Merge branch 'maint'Marcus Arendt
2014-10-01Merge branch 'vladdu/jinterface_code_cleanup/OTP-12211' into maintMarcus Arendt
* vladdu/jinterface_code_cleanup/OTP-12211: fix warning: Socket's InputStream not closed silence 'potential resource leak' warnings don't warn about some unused fields/variables handle warnings about potential null pointers keep all method parameters final renamed method parameters hiding fields add 'break' statements to make compiler happy remove warnings from OtpMD5 rename OtpNode.flags to connFlags rename OtpNode.Acceptor.port to acceptorPort rename field 'self' to 'localNode' mark deprecated unused private constructor simplify 'if' statements remove warnings: @Override, switch fall-through make serialVersionUID fields private remove unnecessary syntax (casts) remove unused variables removed unnecessary semicolons, imports, labels remove unnecessary null pointer checks remove unnecessary Cloneable and Serializable
2014-10-01Merge branch 'vladdu/jinterface_findbugs/OTP-12210' into maintMarcus Arendt
* vladdu/jinterface_findbugs/OTP-12210: OtpErlangList.clone must not return null handle empty .erlang.cookie without crashing
2014-09-30stdlib: Test Map attributes via erl_ppBjörn-Egil Dahlberg
2014-09-30stdlib: erl_parse abstract MapsBjörn-Egil Dahlberg
2014-09-30stdlib: Refactor ?line in erl_pp_SUITE:misc_attrsBjörn-Egil Dahlberg
2014-09-30stdlib: Refactor Maps farity attributesBjörn-Egil Dahlberg
2014-09-30Fix dialyzer warnings for unmatched return in gen_eventSiri Hansen
This was introduced by PR 445, commit 2e78c5f3e7f9991484ceb5d56e5b0086331101be.
2014-09-30Merge branch 'maint'Henrik Nord
2014-09-30Merge branch 'maint-17' into maintHenrik Nord
Conflicts: OTP_VERSION lib/ssh/test/ssh_connection_SUITE.erl
2014-09-29stdlib: Handle key type expressionsBjörn-Egil Dahlberg
2014-09-29Merge branch 'maint'Bruce Yinhe
2014-09-29Merge branch 'bruce-yinhe/fix-crypto-doc-typo' into maintBruce Yinhe
* bruce-yinhe/fix-crypto-doc-typo: Fix a typo in crypto doc
2014-09-29Prepare releaseErlang/OTP
2014-09-29Merge branch 'siri/dont-check-appup-from-current-vsn' into maint-17Erlang/OTP
* siri/dont-check-appup-from-current-vsn: Do not test appup of core apps for upgrade from current vsn
2014-09-29Merge branch 'lars/orber/ipv6-service-context/OTP-12193' into maint-17Erlang/OTP
* lars/orber/ipv6-service-context/OTP-12193: [orber] Fix problem with IPv6 addresses in service context