aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2014-03-19Merge branch 'bjorn/compiler/utf8-warning/OTP-11791'Björn Gustavsson
* bjorn/compiler/utf8-warning/OTP-11791: Don't fail compilation for modules that contain invalid UTF-8 epp: Make it possible to specify a default encoding
2014-03-19Merge remote-tracking branch 'erlang/pr/289'Henrik Nord
* erlang/pr/289: remove reference to dbg_wx_edit* modules that don't exist
2014-03-19Merge branch 'josevalim/set_cwd-typespec'Henrik Nord
* josevalim/set_cwd-typespec: Correct file:set_cwd/1 typespec OTP-11787
2014-03-19Merge branch 'vinoski/emacs-keyword-boundaries'Henrik Nord
* vinoski/emacs-keyword-boundaries: match erlang keywords more carefully OTP-11786
2014-03-19Merge branch 'kostis/hipe-rc2-patch'Henrik Nord
* kostis/hipe-rc2-patch: Cleanup and make sure warnings are treated as errors Add specs for exported functions (to shut off a warning) and types in some record fields Introduce and use a hipe_icode:icode() type Substitude uses of lists:reverse(L1) ++ L2 with lists:reverse(L1, L2)
2014-03-18Don't fail compilation for modules that contain invalid UTF-8Björn Gustavsson
The default encoding for Erlang modules is now UTF-8, and the compilation would fail if a module contained byte sequences that are not valid UTF-8 sequences. In a large project with say many hundreds of Erlang modules with names of developers such as "Björn" or "Håkan" encoded in latin-1, that could mean that many hundreds of files would need to be modified just to get started testing OTP 17. As a temporary measure to ease the transition, automatically fall back to the latin-1 encoding with a warning for any module that contains invalid byte sequences and for which no encoding has been specified. The intention is to remove this workaround in OTP 18 or 19.
2014-03-18epp: Make it possible to specify a default encodingBjörn Gustavsson
In the next commit, we will need a way to tell epp which the default encoding should be for files that have no encoding comment. We could add new open() and parse_file() functions with one extra argument for the encoding, but there are already too many variants. To avoid having to add an additional argument to epp:open() and epp:parse_file() each time new options are needed, introduce epp:open/1 and epp:parse_file/2 that takes a property list with options. Also support the new 'default_encoding' option for specifying the default encoding for source files. Thanks to Richard Carlsson for the idea and the implementation of the new functionality in epp.erl.
2014-03-18Merge branch 'egil/maps-literals'Björn-Egil Dahlberg
* egil/maps-literals: compiler: Transform M#{} to is_map(M) dialyzer: Do not native compile modules with Maps code hipe: Properly identify map() type form terms stdlib: Test Map key linting stdlib: Accept records as Map keys stdlib: Accept Maps as Map keys stdlib: Move map type to proper definition stdlib: Properly lint map key expressions compiler: Change #c_map{var} to #c_map{arg} compiler: Constant fold Maps that are safe compiler: Validate Map src compiler: Support literal maps in cerl_clauses:match/2 compiler: Guard BIF is_map/1 is pure erts: Handle literals in is_map/1 compiler: Change Maps Core Format compiler: Create literal Maps in creation if possible
2014-03-18Merge branch 'nox/maps-eval-empty-update'Björn-Egil Dahlberg
* nox/maps-eval-empty-update: Fix evaluation of empty map patterns in erl_lint Fix evaluation of empty map updates in the debugger Fix evaluation of empty map updates in erl_eval
2014-03-18Merge branch 'ia/ssl/ECC-error-handling/OTP-11780'Ingela Anderton Andin
* ia/ssl/ECC-error-handling/OTP-11780: ssl: Server now ignores client ECC curves that it does not support instead of crashing. Add test for unknown elliptic curve supported by client
2014-03-17compiler: Transform M#{} to is_map(M)Björn-Egil Dahlberg
Core should not understand M#{} Instead transform M#{} to case _cor0 of <_cor1> when call 'erlang':'is_map' (_cor0) -> _cor1 ( <_cor2> when 'true' -> primop 'match_fail' ('badarg') -| ['compiler_generated'] ) end
2014-03-17dialyzer: Do not native compile modules with Maps codeBjörn-Egil Dahlberg
hipe:c/1 ignores '-compile(no_native).'
2014-03-17hipe: Properly identify map() type form termsBjörn-Egil Dahlberg
2014-03-17stdlib: Test Map key lintingBjörn-Egil Dahlberg
This will change in future release.
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-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-15Fix evaluation of empty map patterns in erl_lintAnthony Ramine
Reported-by: José Valim
2014-03-15Fix evaluation of empty map updates in the debuggerAnthony Ramine
2014-03-14Fix evaluation of empty map updates in erl_evalAnthony Ramine
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-14ssl: Server now ignores client ECC curves that it does not support instead ofIngela Anderton Andin
crashing. When TLS client sends Supported Elliptic Curves Client Hello Extension the server shall select a curve supported by both sides or refuse to negotiate the use of an ECC cipher suite.
2014-03-14Add test for unknown elliptic curve supported by clientDanil Zagoskin
When TLS client sends a Supported Elliptic Curves Client Hello Extension containing an unknown curve enum value, a server crashes with a function_clause instead of just ignoring specified unknown curve.
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-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 '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-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-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-10Correct file:set_cwd/1 typespecJosé Valim
file:set_cwd/1 accepts binaries as arguments, however the binaries must be properly encoded as per file:native_name_encoding/0. Also update the note under no_translation error to refer that passing a ISO-latin-1 encoded binary under any unicode file name encoding.
2014-03-10erl_interface: Add test for ei_skip_term of container termsSverker Eriksson