Age | Commit message (Collapse) | Author | |
---|---|---|---|
2014-02-07 | compiler: Add debug listing after sys_core_fold | Björn-Egil Dahlberg | |
2014-02-07 | Merge branch 'hsv/using_lists_droplast' | Henrik Nord | |
* hsv/using_lists_droplast: lib/mnesia/test/ - Replace reverse(tl(reverse(L))) with lists:droplast/1 lib/ssh - Replace reverse(tl(reverse(L))) with lists:droplast/1 lib/wx - Replace reverse(tl(reverse(L))) with lists:droplast/1 Use lists:droplast/1 in orber/orber_interceptors.erl Import and use lists:droplast/1 in v3_core/v3_kernel OTP-11678 OTP-11677 | |||
2014-02-07 | Merge branch 'egil/erts/fix-maps-beam_load' | Björn-Egil Dahlberg | |
* egil/erts/fix-maps-beam_load: compiler: Update map_SUITE with error case test erts: Maps must fail on exact updates of empty Maps erts: Fix Maps for beam_load | |||
2014-02-07 | compiler: Update map_SUITE with error case test | Björn-Egil Dahlberg | |
M#{ key := V } should fail when M is not a Map | |||
2014-02-06 | Merge branch 'bjorn/compiler/applying-binary-crash/OTP-11672' | Björn Gustavsson | |
* bjorn/compiler/applying-binary-crash/OTP-11672: beam_bsm: Eliminate emulator crash when a binary is called beam_validator: Validate the "fun" argument for a call_fun/1 instruction | |||
2014-02-06 | Merge branch 'bjorn/compiler/optimizations/OTP-11584' | Björn Gustavsson | |
* bjorn/compiler/optimizations/OTP-11584: sys_core_fold: Prevent case expressions from being evaluated twice sys_core_fold_SUITE: For cleanliness, move id/1 to the end | |||
2014-02-05 | beam_bsm: Eliminate emulator crash when a binary is called | Björn Gustavsson | |
We must not do the delayed binary creation optimization if the code attempts to call the matched out binary. Calling a matchstate will crash the run-time system. Reported-by: Loïc Hoguin | |||
2014-02-05 | beam_validator: Validate the "fun" argument for a call_fun/1 instruction | Björn Gustavsson | |
The fun argument for a call_fun/1 instruction was not validated. | |||
2014-02-05 | Merge branch 'bjorn/eep37/OTP-11537' | Björn Gustavsson | |
* bjorn/eep37/OTP-11537: Issue a warning when a named fun is constructed but not used | |||
2014-02-04 | sys_core_fold: Prevent case expressions from being evaluated twice | Björn Gustavsson | |
In e12b7d5331c58b41db06cadfa4af75b78b62a2b1, a bug was introduced that would cause case expressions to be evaluated more than once if there were aliases in the pattern. Example: X = Y = io:put_chars("some chars"), {X,Y} That would be rewritten to code similar to (but in Core Erlang): X = io:put_chars("some chars"), X = io:put_chars("some chars"), {X,Y} Make sure that we only evalute the expression once by doing a transformation similar to (but in Core Erlang): NewVar = io:put_chars("some chars"), X = NewVar, Y = NewVar, {X,Y} Reported-by: José Valim Reported-by: Anthony Ramine | |||
2014-02-04 | sys_core_fold_SUITE: For cleanliness, move id/1 to the end | Björn Gustavsson | |
2014-01-31 | compiler: Teach beam_disasm has_map_field instruction | Björn-Egil Dahlberg | |
2014-01-31 | compiler: Fold binary Map key patterns to literals | Björn-Egil Dahlberg | |
2014-01-31 | compiler: Strengthen listings tests | Björn-Egil Dahlberg | |
2014-01-31 | compiler: Strengthen Maps tests | Björn-Egil Dahlberg | |
2014-01-30 | Issue a warning when a named fun is constructed but not used | Björn Gustavsson | |
2014-01-29 | compiler: Add core compile test for maps | Björn-Egil Dahlberg | |
2014-01-29 | compiler: Fix core parse for Maps | Björn-Egil Dahlberg | |
2014-01-29 | compiler: Fixup #map_pair{} spec | Björn-Egil Dahlberg | |
2014-01-29 | compiler: Update inliner tests | Björn-Egil Dahlberg | |
2014-01-29 | compiler: Squash #c_map_pair_*{} to #c_map_pair{} | Björn-Egil Dahlberg | |
Simplify compiler internals and parsing of core format. | |||
2014-01-29 | compiler: Squash #k_map_pair_*{} to #k_map_pair{} | Björn-Egil Dahlberg | |
Simplify compiler internals for kernel passes. | |||
2014-01-29 | compiler: Fix term order compiler for maps | Björn-Egil Dahlberg | |
2014-01-28 | compiler: Rename map pattern to proper name | Björn-Egil Dahlberg | |
2014-01-28 | compiler: Add Maps types to cerl | Björn-Egil Dahlberg | |
2014-01-28 | compiler: Format stacktrace on error | Björn-Egil Dahlberg | |
2014-01-28 | compiler: Teach Maps to beam_disasm | Björn-Egil Dahlberg | |
2014-01-28 | compiler: Fix v3_core for map update syntax | Björn-Egil Dahlberg | |
Make map update expressions safe, i.e. (foo())#{ k1 := 1 } | |||
2014-01-28 | compiler: Fix get_map_element bug with allocate | Björn-Egil Dahlberg | |
The instruction get_map_element has a faillabel so you may not use the instruction within a allocate/deallocate block. | |||
2014-01-28 | compiler: Test Maps inlining | Björn-Egil Dahlberg | |
2014-01-28 | compiler: Teach Maps understanding to inliner | Björn-Egil Dahlberg | |
2014-01-28 | compiler: Implement different instructions for => and := | Björn Gustavsson | |
2014-01-28 | Pass the map pair operators through to the v3_codegen pass | Björn Gustavsson | |
2014-01-28 | sys_core_fold: Remove optimization that has become invalid | Björn Gustavsson | |
With the => and := operators for updating maps, this optimization is no longer valid. | |||
2014-01-28 | compiler: Implement support for exact Op in Maps | Björn-Egil Dahlberg | |
The syntax is handled upto v3_kernel where it is reduced to previous behaviour for construction and updates. Meaning, the ':=' operator is handled exactly as '=>' operator. | |||
2014-01-28 | Extend representation for maps in Core Erlang | Björn-Egil Dahlberg | |
2014-01-28 | Update erl_lint, erl_expand_records, sys_pre_expand for Maps | Björn-Egil Dahlberg | |
Update erlang lint and syntax expand for #{ K := V } | |||
2014-01-28 | erts: Add the type-testing guard BIF is_map/1 | Björn-Egil Dahlberg | |
To add a type-testing guard BIF, the following steps are needed: * The BIF itself is added to bif.tab (note that it should be declared using "ubif", not "bif"), and its implementation to erl_bif_op.c. * erl_internal must be modified in 3 places: The type test must be recognized as guard BIF, as a type test, and it must be auto-imported. * There must be an instruction that implements the same type test as the BIF (it will be used in guards). beam_utils:bif_to_test/3 must be updated to recognize the new guard BIF. | |||
2014-01-28 | compiler: Fix sorted keys in put_map instruction | Björn-Egil Dahlberg | |
All pairs in a Map needs to be in strict ascending key order. | |||
2014-01-28 | compiler: Fix multiple same keys | Björn-Egil Dahlberg | |
2014-01-28 | compiler: Check for duplicate key literals in Map | Björn-Egil Dahlberg | |
If a literal key already is present in a Map update the latter should be used. Warn for previous duplicates in the Map. | |||
2014-01-28 | compiler: Handle literals, not just atoms, as keys in maps | Björn-Egil Dahlberg | |
2014-01-28 | compiler: Fix no basic blocks for maps | Björn-Egil Dahlberg | |
2014-01-28 | compiler: Fix stack register reordering | Björn-Egil Dahlberg | |
Can now handle {list [reg()]} elements in instructions. | |||
2014-01-28 | Implement support for maps in the compiler | Björn Gustavsson | |
To make it possible to build the entire OTP system, also define dummys for the instructions in ops.tab. | |||
2014-01-28 | Introduce a representation for maps in Core Erlang | Björn Gustavsson | |
2014-01-28 | Update erl_lint, erl_expand_records, sys_pre_expand for maps | Björn Gustavsson | |
2014-01-24 | Import and use lists:droplast/1 in v3_core/v3_kernel | Hans Svensson | |
Also imported lists:last/1, and removed the local definition. | |||
2014-01-24 | beam_except: Eliminate compiler crash | Björn Gustavsson | |
Code such as: bar(X) -> case {X+1} of 1 -> ok end. would crash the beam_except pass of the compiler. The reason for the crash is that the '+' operator would add a line/1 instruction that the beam_except pass was not prepared to handle. Reported-by: Erik Søe Sørensen | |||
2014-01-21 | Fix testing with unicode paths | Dan Gudmundsson | |
re needs unicode option |