Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
Only values are valid key expressions.
|
|
Not only variables are allowed as arguments, the name should reflect that.
Change cerl Map argument interface
* cerl:map_arg/1 is more suitable then cerl:map_val/1 in this case.
|
|
For updates of Map literals which may cause an error will be
determined in runtime, i.e. instructions are emitted for those
updates.
The changes in cerl now requires compiler-5.0 to compile because of
is_map/1 guard.
|
|
Reject all expressions that are known to fail.
Emit 'badarg' for those expressions.
Ex.
[]#{ a => 1}
Is not a valid map update expression.
|
|
|
|
|
|
|
|
Ex.
Instead of:
M~{~<K,V>}~
The format is now:
~{~<K,V>|M}~
This also removes a shift/reduce warning.
The changes in core_pp now requires compiler-5.0 to compile
because of is_map/1 guard, i.e. a need for a compiler with Maps know-how.
|
|
|
|
* sverk/maps-erl_interface:
erts: Add distribution capability flag for maps DFLAG_MAP_TAG
erts: Change external format for maps
erts: Document external format for maps (MAP_EXT)
erl_interface: Add test for ei_skip_term of container terms
erl_interface: Add map support in ei_skip_term
erl_interface: Fix mem leak in ei_decode_encode_test
erl_interface: test decode/encode of maps
erl_interface: Add ei encode/decode for maps
erl_interface: test decode_encode of tuples and lists
erl_interface: refactor ei_decode_encode_test.c
|
|
This is just a preparation to allow detection of older nodes
that do not understand maps (R16 and older).
|
|
to be: 116,Arity, K1,V1,K2,V2,...,Kn,Vn
instead of: 116,Arity, K1,K2,...,Kn, V1,V2,....,Vn
We think this will be better for future internal map structures
like HAMT. Would be bad if we need to iterate twice over HAMT
in term_to_binary, one for keys and one for values.
|
|
|
|
* nox/compiler/beam_bool-mixed-boolean:
Properly detect reused boolean values in beam_bool
|
|
* nox/compiler/sys_core_fold-redundant-clauses:
Properly handle redundant boolean clauses in sys_core_fold
|
|
* nox/compiler/v3_core-mismatched-apply:
cerl_inline: Fix type error
|
|
* sverk/valgrind-leaks:
erts: Suppress false leak in hipe_thread_signal_init
erts: Fix leak in nif_SUITE:resource_takeover (again)
|
|
Add ticket ids for the 17.0 readme file.
OTP-11667
OTP-11696
OTP-11698
|
|
OTP-11667
OTP-11696
OTP-11698
|
|
* nox/maps-erl_docgen/OTP-11776:
Handle map types in docgen_edoc_xml_cb
Handle nonempty list types in docgen_edoc_xml_cb
|
|
* hb/erts/escript_note:
erts: Clarify escript's encoding of the I/O-server
|
|
* peppe/common_test/group_events:
Update test suites and fix various remaining problems
Update event protocol and CT Hooks API
Introduce group name for skipped cases in events, hooks and overview log
OTP-11732
|
|
|
|
|
|
|
|
* peppe/common_test/test_server_enoent_crash:
Add more info to file open failure
|
|
* peppe/common_test/auto_compile_flag:
Add flag to abort test run if suites fail to compile
OTP-11769
|
|
* peppe/test_server/ts_run_args:
Add ts:run/5 function to run specific test case(s) in a group
|
|
|
|
b08ffc15e1d9ad105dd6385bbac41c97c09b48bc corrected a bug,
but violated the types by passing a c_apply() when a
c_let() was expected. That happened to work, but Dialyzer
was not amused.
|
|
|
|
* nox/compiler/v3_core-mismatched-apply:
Do not emit blatantly illformed apply expressions in core_inline
|
|
A note has been added that clarifies that the encoding of
the I/O-server has to be set explicitly, irrespective of
any encoding comment.
|
|
|
|
|
|
|
|
|
|
Boolean case expressions with redundant clauses could make the compiler
crash:
case X == 0 of
false -> no;
false -> no;
true -> yes
end.
Reported-by: Ulf Norell
|
|
The following code could crash the compiler:
f(X = true) when X or true or X -> ok.
Reported-by: Ulf Norell
|
|
* nox/maps-beam_jump-put_map:
Properly collect labels in put_map instructions in beam_jump
|
|
* hb/stdlib/linter_errors/OTP-11771:
Emit errors when redefining arity(), bitstring(), iodata(), or boolean()
|
|
erl_lint has since R13B emitted warnings whenever any of the types
arity(), bitstring(), iodata(), or boolean() were re-defined. Now
errors are emitted instead.
|
|
* hb/stdlib/linter_bugfix/OTP-11772:
stdlib: Emit linter warnings for redefined built-in types
|
|
Since Erlang/OTP R16B the linter has not emitted warnings when
built-in types were re-defined. This bug has been fixed.
Thanks to Roberto Aloi for reporting the bug.
|
|
|
|
|
|
|