Age | Commit message (Collapse) | Author |
|
gen_server_SUITE:start often fails since a call which is expected to
give 'noproc' error instead gives 'stopped' error. This happens when
the call is done before the process is really dead. To overcome this
problem, we now wait for the process exit before doing the call.
|
|
* 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
|
|
* 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
|
|
|
|
|
|
|
|
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.
|
|
* jlouis/stdlib/implement-lists-join/PR-1012/OTP-13523:
Implement lists:join/2
|
|
'...' is allowed at the end of of association types.
|
|
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
|
|
|
|
|
|
Using the new type syntax, we can specify which keys are required, and
which are optional in a way Dialyzer could use.
|
|
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.
|
|
* 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
|
|
|
|
|
|
Maps equivalent to dict:update/3,4
|
|
|
|
* raimo/polish-gen_statem/OTP-13065:
Fix hibernation subtlety
|
|
|
|
|
|
|
|
* 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
|
|
The use case is not cryptographical but we want to compare Erlang
implementation to c implementation so use crypto:strong_rand_bytes anyway.
|
|
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.
|
|
|
|
|
|
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.
|
|
Dialyzer would warn about uses of the ?assert(BoolExpr) macro in assert.hrl
if the argument was known to be boolean-only.
|
|
|
|
|
|
|
|
|
|
OTP-13501
|
|
* siri/otp-19-vsns:
Update version of common_test for OTP-19
Update versions
|
|
* henrik/update-copyrightyear:
update copyright-year
|
|
|
|
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.
|
|
* lukas/stdlib/error_logger_SUITE/OTP-13471:
stdlib: Fix logfile testcase for hipelibs testrun
|
|
* bjorn/kernel/remove-deprecated/OTP-13449:
rpc: Remove functions deprecated in R12B
|
|
* bjorn/stdlib/clean-up-otp_internal:
Remove information for functions removed in R13 and R14
Remove clauses for functions that have already been removed
|
|
|
|
We don't want otp_internal to only grow, and grow, and grow...
|
|
The mentioned functions in erl_internal and erl_eval was removed
a long time ago.
|
|
Update application versions for kernel, stdlib and sasl for OTP-19.
|
|
|
|
abnormal1/1 started failing sporadically when 22785cd1e21
changed using the messages_get/0 and using its own implementation:
get_messages() ->
receive
Msg -> [Msg|get_messages()]
after 1 -> []
end.
In test_server:messages_get/0, there was "after 0" instead of "after
1" as in this version.
We could change back to using "after 0", but it seems that the
test case just happened to work before the change.
Instead, read out the message that is guranteed to be in the message
queue, and *then* check that the message queue is empty.
|
|
In 8d7d5627, test_server:sleep/1 was changed to ct:sleep/1.
Change it to timer:sleep/1 to make the timing more exact
(ct:sleep/1 will call another process).
|
|
|