Age | Commit message (Collapse) | Author |
|
The type of a map is represented as a three-tuple {Pairs, DefaultKey,
DefaultValue}. DefaultKey and DefaultValue are types. Pairs is a list of
three-tuples {Key, mandatory | optional, Value}, where Key and Value are
types. All types Key must be singleton, or "known at compile time," as
the EEP put it. Examples:
#{integer()=>list()} {[], integer(), list()}
#{a=>char(), b=>atom()} {[{a, optional, char()},
{b, optional, atom()}],
none(), none()}
map() {[], any(), any()}
A more formal description of the representation and its invariants can
be found in erl_types.erl
Special thanks to Daniel S. McCain (@dsmccain) that co-authored a very
early version of this with me back in April 2014, although only the
singleton type logic remains from that version.
|
|
* 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
|
|
* bjorn/compiler/cuddle-with-tests:
compilation_SUITE: Use explicit exports
Remove support for running tests on a separate Erlang node
Move code from compilation_SUITE to beam_block_SUITE
Move list comprehension tests to lc_SUITE
Move catch tests to trycatch_SUITE
Remove compilation_SUITE:long_string/1
Move pattern-matching tests to match_SUITE
Remove toothless test compile_SUITE:missing_testheap/1
misc_SUITE: Add missing export of integer_encoding/0
Move test cases from compilation_SUITE to beam_utils_SUITE
Move complex_guard/1 from compilation_SUITE to guard_SUITE
Remove compilation_SUITE:guards/1
Move tests from compilation_SUITE to record_SUITE
Move bit syntax test cases from compilation_SUITE to bs_match_SUITE
Remove useless test case compilation_SUITE:otp_2141/1
compilation_SUITE: Run the Core linter for all compilations
|
|
|
|
|
|
Maps equivalent to dict:update/3,4
|
|
|
|
|
|
With 'export_all' it is easy to add a new test case function
and forget to add its name to the list of test cases to run.
While we are it, remove unused functions and add the forgotten
test case on_load_inline/1.
|
|
It has not been used for ages.
|
|
|
|
|
|
|
|
long_string/1 was written to test that long string were handled
efficiently in beam_asm. Strings used to be stored in the string
table chunk, but are currently literals.
There does not seem that this test case is likely to find any bugs.
|
|
|
|
missing_testheap/1 is no longer relevant for the following reasons:
1) Because of the literal pool introduced in R12, no test_heap
instructions are needed in the guards.
2) beam_validator would abort the compilation if any needed test_heap
instructions were missing.
|
|
The integer_encoding/1 test is supposed to be run with a tighter
timetrap ensure that encoding of integer in BEAM files is efficient
enough.
|
|
beam_utils_SUITE didn't exist when the two test cases were written.
|
|
* xumingthepoet/maint/PR-1008/OTP-13516:
Update global_group_SUITE.erl
Fix global_group.erl
|
|
|
|
* c-rack/fix-erl-dist-protocol-typo/OTP-13517:
Fix typo in description of EPMD_DUMP_REQ response
|
|
According to the source code, there is a space before the newline for unused
nodes and no space before the newline for active ones.
In current documentation, it is exactly opposite.
This commit fixes the documentation to match with source code.
|
|
Conflicts:
OTP_VERSION
lib/ssl/doc/src/ssl.xml
lib/ssl/src/ssl_cipher.erl
lib/ssl/src/tls_v1.erl
lib/ssl/test/ssl_basic_SUITE.erl
|
|
|
|
Obsoleted by guard_SUITE (especially literal_type_tests/1).
|
|
|
|
We used to put code that would crash the compiler into
compilation_SUITE_data. That way we would have a failing test case to
remind us to fix a bug.
Nowadays, we generally fix the bug and write the test case at the same
time. Therefore it makes more sense to put the test code directly into
a test suite.
Move out bin_syntax_1 through bin_syntax_5 test cases. Scrap
bin_syntax_6 because it does not longer seems to be relevant.
While we are it, rename the fun_shadow/1 test to size_shadow/1. Also
make sure that the code produces the correct result.
|
|
|
|
|
|
* raimo/polish-gen_statem/OTP-13065:
Fix hibernation subtlety
|
|
|
|
|
|
Usage: erl -profile_boot ...
|
|
|
|
|
|
* eksperimental/typo_binary_matches/PR-1031:
Remove extra ">" in examples
|
|
|
|
|
|
|
|
* ingela/inets/http_server-ssl-peer-cert/OTP-13510:
inets: Prepare for release
inets: Add peer_cert to ESI environment
|
|
* ingela/ssl/config-signature-algs/OTP-13261:
ssl: Prepare for release
ssl: Add option signature_algs
|
|
* ingela/ssl/3-4-tuples-cipher-suites-mix/OTP-13511:
ssl: Corrections to cipher suite handling
|
|
* lukas/ts/exit_status/OTP-13515:
ts: Add logging of exit_status from test node
|
|
* lukas/erts/non-smp-debug-fixes/OTP-13047:
erts: Fix incorrect non-smp debug assert
erts: std_alloc is not thread safe on non-smp
Conflicts:
erts/emulator/beam/erl_alloc_util.c
|
|
|
|
* 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
|
|
* egil/runtime_tools/modernize-tests:
Eliminate use of doc and suite clauses
Replace ?t with test_server
Replace use of test_server:format/2 with io:format/2
Eliminate use of test_server:fail/0,1
Eliminate use of ?config() macro
Modernize use of timetraps
Remove ?line macros
|
|
* ingela/master/ssl/3-4-tuples-cipher-suites-mix/OTP-13511:
ssl: Corrections to cipher suite handling
|
|
* ingela/master/inets/http_server-ssl-peer-cert/OTP-13510:
inets: Add peer_cert to ESI environment
|
|
|