aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/src
AgeCommit message (Collapse)Author
2016-05-04Merge branch 'raimo/polish-gen_statem/OTP-13065'Raimo Niskanen
* raimo/polish-gen_statem/OTP-13065: Fix documentation Clean up terminate functions Fix callback mode after code change not used Restructure loop_* to clarify S handling
2016-05-04Fix documentationRaimo Niskanen
2016-05-03Merge branch 'egil/stdlib/fix-maps-alias/ERL-135/OTP-13534'Björn-Egil Dahlberg
* egil/stdlib/fix-maps-alias/ERL-135/OTP-13534: stdlib: Strengthen map pattern tests stdlib: Add lint tests for parallel match of maps stdlib: Refactor erl_lint_SUITE stdlib: Fix linting of map key variables
2016-05-03Merge branch 'lukas/erts/rename_xmqd_to_hmqd/OTP-13366'Lukas Larsson
* lukas/erts/rename_xmqd_to_hmqd/OTP-13366: erts: Rename erl flag +xmqd to +hmqd in erlexec Fix proc_lib message_queue_data spec erts: Fix total_heap_size calculation for on_heap erts: Rename erl flag +xmqd to +hmqd
2016-05-02stdlib: Fix linting of map key variablesBjörn-Egil Dahlberg
Map keys cannot be bound and then used in parallel matching. Example: #{ K := V } = #{ k := K } = M. This is illegal if 'K' is not already bound.
2016-04-29Merge branch 'jlouis/stdlib/implement-lists-join/PR-1012/OTP-13523'Björn Gustavsson
* jlouis/stdlib/implement-lists-join/PR-1012/OTP-13523: Implement lists:join/2
2016-04-28stdlib: Correct association typesHans Bolinder
'...' is allowed at the end of of association types.
2016-04-28stdlib: Add shadow comments for BIFs in mapsBjörn-Egil Dahlberg
Type information is stored in erl_bif_types for certain BIFs. This fact must be stated in the type specification for the stubs that are superceded by erl_bif_types. * Shadowed by erl_bif_types: maps:from_list/1 * Shadowed by erl_bif_types: maps:get/2 * Shadowed by erl_bif_types: maps:is_key/2 * Shadowed by erl_bif_types: maps:merge/2 * Shadowed by erl_bif_types: maps:put/3 * Shadowed by erl_bif_types: maps:to_list/1 * Shadowed by erl_bif_types: maps:update/3
2016-04-28stdlib: Add pretty-printing of exact map typesHans Bolinder
2016-04-28stdlib: Correct a type in module eppHans Bolinder
2016-04-28Enhance map specs in erts, stdlib, runtime_toolsMagnus Lång
Using the new type syntax, we can specify which keys are required, and which are optional in a way Dialyzer could use.
2016-04-28erl_parse: Add parsing for new map type syntaxMagnus Lång
erl_types typesets mandatory keys with :=, and uses "..." as a shorthand for "any() => any()". Add these to erl_parse so that all representable types can be written in type-specs.
2016-04-28Merge branch 'egil/maps-api-additions/PR-1025/OTP-13522'Björn-Egil Dahlberg
* egil/maps-api-additions/PR-1025/OTP-13522: stdlib: Document maps:update_with/3,4 stdlib: Add tests for maps:update_with/3,4 stdlib: Add maps:update_with/3,4 erts: Add tests for maps:take/2 stdlib: Document maps:take/2 erts: Add BIF maps:take/2
2016-04-28Clean up terminate functionsRaimo Niskanen
2016-04-27stdlib: Add maps:update_with/3,4Björn-Egil Dahlberg
Maps equivalent to dict:update/3,4
2016-04-27Fix callback mode after code change not usedRaimo Niskanen
2016-04-27Restructure loop_* to clarify S handlingRaimo Niskanen
2016-04-27Fix hibernation subtletyRaimo Niskanen
2016-04-26Fix proc_lib message_queue_data specLukas Larsson
2016-04-25Merge branch 'raimo/new-gen-state-machine/OTP-13065'Raimo Niskanen
* raimo/new-gen-state-machine/OTP-13065: (52 commits) Add section on state filtering Promote gen_statem over gen_fsm Modify code_change/4 to return CallbackMode Use ?NAME macro in examples Introduce Fred Herbert suggested additions Introduce corrections from Fred Hebert and Ingela Use .png pictures instead of .gif Write Design Principles chapter Fix missing short forms for event timeout Do more intricate Fred Hebert doc changes Change Caller -> From as suggested by Fred Hebert Do documentation improvements from Fred Hebert Fix broken documenation reference Rename state_timeout -> event_timeout Fix most of the system docs and emacs mode Change code_change/4 to {ok,State,Data} Fixup sharpened test suite Sharpen test suite Remove the remove_event action and all alike Relax caller() type check and cleanup ... Conflicts: lib/stdlib/src/gen.erl lib/stdlib/src/gen_event.erl lib/stdlib/src/gen_fsm.erl lib/stdlib/src/gen_server.erl lib/stdlib/test/error_logger_forwarder.erl
2016-04-25crypto: Deprecate rand_bytes/1Ingela Anderton Andin
OpenSSL has deprecated the function RAND_pseudo_bytes used by crypto:rand_bytes/1, so this function is now deprecated in OTP too. rand_bytes/3 also used this function, but was not documented so we can remove it right away. This commit also removes the fallback in generate_key to use rand_bytes/1 if strong_rand_bytes/1 throws low entropy. This is a potential incompatibility but we think it is desirable as crypto should provide cryptographically secure functions.
2016-04-22erts: Add BIF maps:take/2Björn-Egil Dahlberg
2016-04-21Modify code_change/4 to return CallbackModeRaimo Niskanen
Also move check of non-atom states in callback mode state_functions to where the state function is called. This gives homogenous diagnostics for state functions, code_change/4 and system_replace_state StateFun. Irregularities pointed out by James Fish.
2016-04-19stdlib: Fix warningsHans Bolinder
2016-04-18stdlib: The type map() is built-inHans Bolinder
2016-04-13Merge branch 'henrik/update-copyrightyear'Henrik Nord
* henrik/update-copyrightyear: update copyright-year
2016-04-12Fix missing short forms for event timeoutRaimo Niskanen
2016-04-09Implement lists:join/2Jesper Louis Andersen
Add a call which works much like string:join/2 but for arbitrary lists. Provide the function itself, lifted from Haskells Data.List standard library, provide documentation and provide tests for the function.
2016-04-04Merge branch 'bjorn/kernel/remove-deprecated/OTP-13449'Björn Gustavsson
* bjorn/kernel/remove-deprecated/OTP-13449: rpc: Remove functions deprecated in R12B
2016-04-01rpc: Remove functions deprecated in R12BBjörn Gustavsson
2016-03-31Remove information for functions removed in R13 and R14Björn Gustavsson
We don't want otp_internal to only grow, and grow, and grow...
2016-03-31Remove clauses for functions that have already been removedBjörn Gustavsson
The mentioned functions in erl_internal and erl_eval was removed a long time ago.
2016-03-18Do more intricate Fred Hebert doc changesRaimo Niskanen
2016-03-17Change Caller -> From as suggested by Fred HebertRaimo Niskanen
2016-03-17stdlib: Fix filename:basedir/2,3Björn-Egil Dahlberg
Handle the case when the environment APPDATA is not set.
2016-03-15update copyright-yearHenrik Nord
2016-03-03Merge branch 'bjorn/compiler/binary-comprehensions/OTP-13289'Björn Gustavsson
* bjorn/compiler/binary-comprehensions/OTP-13289: Generalize bit string comprehensions
2016-03-03Rename state_timeout -> event_timeoutRaimo Niskanen
2016-03-03Fix most of the system docs and emacs modeRaimo Niskanen
2016-03-02stdlib: Add filename:basedir/2,3Björn-Egil Dahlberg
2016-03-02Change code_change/4 to {ok,State,Data}Raimo Niskanen
2016-03-01Generalize bit string comprehensionsBjörn Gustavsson
The expression in a bit string comprehension is limited to a literal bit string expression. That is, the following code is legal: << <<X>> || X <- List >> but not this code: << foo(X) || X <- List >> The limitation is annoying. For one thing, tools that transform the abstract format must be careful not to produce code such as: << begin %% Some instrumentation code. <<X>> end || X <- List >> One reason for the limitation could be that we'll get reduce/reduce conflicts if we try to allow an arbitrary expression in a bit string comprehension: binary_comprehension -> '<<' expr '||' lc_exprs '>>' : {bc,?anno('$1'),'$2','$4'}. Unfortunately, there does not seem to be an easy way to work around that problem. The best we can do is to allow 'expr_max' expressions (as in the binary syntax): binary_comprehension -> '<<' expr_max '||' lc_exprs '>>' : {bc,?anno('$1'),'$2','$4'}. That will work, but functions calls must be enclosed in parentheses: << (foo(X)) || X <- List >>
2016-03-01Update appups in kernel, stdlib and sasl for OTP-19Siri Hansen
2016-02-29Sharpen test suiteRaimo Niskanen
2016-02-29Remove the remove_event action and all alikeRaimo Niskanen
Removing events from the internal queues is not necessary with the choosen semantics of the event queue vs. hibernate. In an early implementation it was possible by combining hibernate with e.g. postpone to get an event in the queue that you would not see before processing the postponed event, and therefore should you decide to cancel a timer it was essential to be able to remove that unseen event from the queue. With the choosen semantics you will have to postpone or generate an event for it to be in the event queue, and if you e.g. postpone a timeout event and then cancel the timer it is your mistake. You have seen the event and should know better than to try to cancel the timer. So, the actions: remove_event, cancel_timer, demonitor and unlink are now removed. There have also been some cleanup of the timer handling code.
2016-02-29Merge branch 'maint'Siri Hansen
2016-02-26Relax caller() type check and cleanupRaimo Niskanen
2016-02-26Optimize postponed handlingRaimo Niskanen
2016-02-26Allow actions without containing listRaimo Niskanen
Type check atom state as early as possible
2016-02-26Implement 'keep_state_and_data' and 'stop'Raimo Niskanen