aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2014-08-02Rewrite merge of clause variable tables (in case, try, etc)Anthony Ramine
erl_lint:icrt_export/4 has been rewritten to make the code really follow the scoping rules of Erlang, and not just in most situations by accident. * The function should not depend on calling unused_vars/3 because that function does not return variables which begins with an underscore, something that only matters when emitting warnings. This could cause a compiler crash if such a variable was reused afterwards. * The variable tables from each clause are first merged together, lists:merge/1 is safe to use because they are orddicts and thus already sorted. This list is then traversed parallelly to the old variable table, again taking advantage of their sorted order. * The function does not emit warnings itself, there is no need to pass around the lint state. In the same vein, vtunsafe/3 has been rewritten to do more things by itself, given that all of its calls were similar. Finally, compiled-out code has been removed. * This reverts the code in 9ce148b1059e4da746a11f1d80a653340216c468, which fixed the compiler crash and made erl_lint remember unsafe variables, but forget about unused variables in the process. * Other places of the code which relied on the old clunky behaviour were also updated: unused and unsafe old variables are forgotten when merging fun clauses and boolean shortcircuiting operators do not rely on icrt_export/3 anymore.
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
2014-03-06erl_interface: refactor ei_decode_encode_test.cSverker Eriksson
to prepare for lists, tuples and ... maps!
2014-03-06Add more info to file open failurePeter Andersson
2014-03-06Merge branch 'egil/maps/doc-module-api'Björn-Egil Dahlberg
* egil/maps/doc-module-api: erl_docgen: Generate map() instead of #{} for maps type stdlib: Document Maps module stdlib: Fix maps:from_list/1 spec.
2014-03-06erl_docgen: Generate map() instead of #{} for maps typeBjörn-Egil Dahlberg
2014-03-06stdlib: Document Maps moduleBjörn-Egil Dahlberg
2014-03-06stdlib: Fix maps:from_list/1 spec.Björn-Egil Dahlberg
2014-03-06Merge branch 'nox/maps-cerl_clauses'Björn-Egil Dahlberg
* nox/maps-cerl_clauses: Support maps in cerl_clauses:match/2
2014-03-06Merge branch 'nox/maps-improve-erl_lint'Björn-Egil Dahlberg
* nox/maps-improve-erl_lint: Improve linting of map expressions
2014-03-06Merge branch 'nox/maps-beam_jump'Björn-Egil Dahlberg
* nox/maps-beam_jump: Properly check label use in get_map_elements in beam_jump
2014-03-06Merge branch 'nox/maps-v3_codegen-sort-nil-keys'Björn-Egil Dahlberg
* nox/maps-v3_codegen-sort-nil-keys: Properly sort map pairs in v3_codegen
2014-03-06Merge branch 'nox/maps-complex-mixed-values'Björn-Egil Dahlberg
* nox/maps-complex-mixed-values: Properly order Kernel code for maps with mixed pairs