aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2014-03-17stdlib: Accept records as Map keysBjörn-Egil Dahlberg
2014-03-17stdlib: Accept Maps as Map keysBjörn-Egil Dahlberg
2014-03-17stdlib: Move map type to proper definitionBjörn-Egil Dahlberg
2014-03-17stdlib: Properly lint map key expressionsBjörn-Egil Dahlberg
Only values are valid key expressions.
2014-03-17compiler: Change #c_map{var} to #c_map{arg}Björn-Egil Dahlberg
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.
2014-03-17compiler: Constant fold Maps that are safeBjörn-Egil Dahlberg
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.
2014-03-17compiler: Validate Map srcBjörn-Egil Dahlberg
Reject all expressions that are known to fail. Emit 'badarg' for those expressions. Ex. []#{ a => 1} Is not a valid map update expression.
2014-03-17compiler: Support literal maps in cerl_clauses:match/2Björn-Egil Dahlberg
2014-03-17compiler: Guard BIF is_map/1 is pureBjörn-Egil Dahlberg
2014-03-17erts: Handle literals in is_map/1Björn-Egil Dahlberg
2014-03-17compiler: Change Maps Core FormatBjörn-Egil Dahlberg
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.
2014-03-14compiler: Create literal Maps in creation if possibleBjörn-Egil Dahlberg
2014-03-14Merge branch 'sverk/maps-erl_interface'Sverker Eriksson
* 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
2014-03-14erts: Add distribution capability flag for maps DFLAG_MAP_TAGSverker Eriksson
This is just a preparation to allow detection of older nodes that do not understand maps (R16 and older).
2014-03-14erts: Change external format for mapsSverker Eriksson
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.
2014-03-14Update primary bootstrapBjörn Gustavsson
2014-03-14Merge branch 'nox/compiler/beam_bool-mixed-boolean'Björn Gustavsson
* nox/compiler/beam_bool-mixed-boolean: Properly detect reused boolean values in beam_bool
2014-03-14Merge branch 'nox/compiler/sys_core_fold-redundant-clauses'Björn Gustavsson
* nox/compiler/sys_core_fold-redundant-clauses: Properly handle redundant boolean clauses in sys_core_fold
2014-03-14Merge branch 'nox/compiler/v3_core-mismatched-apply'Björn Gustavsson
* nox/compiler/v3_core-mismatched-apply: cerl_inline: Fix type error
2014-03-13Merge branch 'sverk/valgrind-leaks'Sverker Eriksson
* sverk/valgrind-leaks: erts: Suppress false leak in hipe_thread_signal_init erts: Fix leak in nif_SUITE:resource_takeover (again)
2014-03-13Merge branch 'hans/fix-miss-spelled-ticket-ids'Hans Nilsson
Add ticket ids for the 17.0 readme file. OTP-11667 OTP-11696 OTP-11698
2014-03-13Add ticket ids for the 17.0 readme file.Hans Nilsson
OTP-11667 OTP-11696 OTP-11698
2014-03-13Merge branch 'nox/maps-erl_docgen/OTP-11776'Björn-Egil Dahlberg
* nox/maps-erl_docgen/OTP-11776: Handle map types in docgen_edoc_xml_cb Handle nonempty list types in docgen_edoc_xml_cb
2014-03-13Merge branch 'hb/erts/escript_note'Hans Bolinder
* hb/erts/escript_note: erts: Clarify escript's encoding of the I/O-server
2014-03-12Merge branch 'peppe/common_test/group_events'Peter Andersson
* 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
2014-03-12Update test suites and fix various remaining problemsPeter Andersson
2014-03-12Update event protocol and CT Hooks APIPeter Andersson
2014-03-12Introduce group name for skipped cases in events, hooks and overview logPeter Andersson
2014-03-12Merge branch 'peppe/common_test/test_server_enoent_crash'Peter Andersson
* peppe/common_test/test_server_enoent_crash: Add more info to file open failure
2014-03-12Merge branch 'peppe/common_test/auto_compile_flag'Peter Andersson
* peppe/common_test/auto_compile_flag: Add flag to abort test run if suites fail to compile OTP-11769
2014-03-12Merge branch 'peppe/test_server/ts_run_args'Peter Andersson
* peppe/test_server/ts_run_args: Add ts:run/5 function to run specific test case(s) in a group
2014-03-12Add ts:run/5 function to run specific test case(s) in a groupPeter Andersson
2014-03-12cerl_inline: Fix type errorBjörn Gustavsson
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.
2014-03-12Update primary bootstrapBjörn Gustavsson
2014-03-12Merge branch 'nox/compiler/v3_core-mismatched-apply'Björn Gustavsson
* nox/compiler/v3_core-mismatched-apply: Do not emit blatantly illformed apply expressions in core_inline
2014-03-12erts: Clarify escript's encoding of the I/O-serverHans Bolinder
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.
2014-03-11erts: Document external format for maps (MAP_EXT)Sverker Eriksson
2014-03-10erl_interface: Add test for ei_skip_term of container termsSverker Eriksson
2014-03-10erl_interface: Add map support in ei_skip_termSverker Eriksson
2014-03-10erl_interface: Fix mem leak in ei_decode_encode_testSverker Eriksson
2014-03-10Properly handle redundant boolean clauses in sys_core_foldAnthony Ramine
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
2014-03-08Properly detect reused boolean values in beam_boolAnthony Ramine
The following code could crash the compiler: f(X = true) when X or true or X -> ok. Reported-by: Ulf Norell
2014-03-07Merge branch 'nox/maps-beam_jump-put_map'Björn-Egil Dahlberg
* nox/maps-beam_jump-put_map: Properly collect labels in put_map instructions in beam_jump
2014-03-07Merge branch 'hb/stdlib/linter_errors/OTP-11771'Hans Bolinder
* hb/stdlib/linter_errors/OTP-11771: Emit errors when redefining arity(), bitstring(), iodata(), or boolean()
2014-03-07Emit errors when redefining arity(), bitstring(), iodata(), or boolean()Hans Bolinder
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.
2014-03-07Merge branch 'hb/stdlib/linter_bugfix/OTP-11772'Hans Bolinder
* hb/stdlib/linter_bugfix/OTP-11772: stdlib: Emit linter warnings for redefined built-in types
2014-03-07stdlib: Emit linter warnings for redefined built-in typesHans Bolinder
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.
2014-03-06erl_interface: test decode/encode of mapsSverker Eriksson
2014-03-06erl_interface: Add ei encode/decode for mapsSverker Eriksson
2014-03-06erl_interface: test decode_encode of tuples and listsSverker Eriksson