aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2015-04-30debugger: Optimize evaluation of new map creationBjörn Gustavsson
Make sure that we recognize map literals at load time, as we do for lists and tuples. Also use maps:from_list/1 to build a new map instead of building it up from scratch inserting one key/value pair at the time.
2015-04-30dbg_iload: Correct translation of generatorsBjörn Gustavsson
The pattern in the generator for a list or binary comprehension was processed as an expression instead of as a pattern. That happened to work because expressions and patterns were translated in the same way. In the future we might want to process expressions and patterns differently.
2015-04-30debugger test suite: Scale down t_frequency_table/1Björn Gustavsson
t_frequency_table/1 would take about 40 seconds on my computer. Scale down the number of iterations 100 times to speed it up. The large number of iterations does not find any more bugs in the debugger.
2015-04-30Update primary bootstrapBjörn Gustavsson
2015-04-30Merge branch 'hb/line_abstraction/OTP-12195'Björn Gustavsson
* hb/line_abstraction/OTP-12195: (21 commits) Ensure that erl_anno is used when building the primary bootstrap erl_docgen: Use module erl_anno wx: Use module erl_anno diameter: Use module erl_anno dialyzer: Use module erl_anno eunit: Use module erl_anno hipe: Use module erl_anno edoc: Use module erl_anno syntax_tools: Use module erl_anno test_server: Use module erl_anno tools: Use module erl_anno parsetools: Use module erl_anno kernel: Use module erl_anno asn1: Use module erl_anno debugger: Use module erl_anno stdlib: Silence some of qlc's warnings stdlib: Use module erl_anno compiler: Use module erl_anno emulator: Use module erl_anno Update primary bootstrap ...
2015-04-30Ensure that erl_anno is used when building the primary bootstrapBjörn Gustavsson
As the erl_anno module is used by the compiler, it must be included in the set of modules that are used when building the primary bootstrap.
2015-04-30erl_docgen: Use module erl_annoHans Bolinder
2015-04-30wx: Use module erl_annoHans Bolinder
2015-04-30diameter: Use module erl_annoHans Bolinder
2015-04-30dialyzer: Use module erl_annoHans Bolinder
2015-04-30eunit: Use module erl_annoHans Bolinder
2015-04-30hipe: Use module erl_annoHans Bolinder
2015-04-30edoc: Use module erl_annoHans Bolinder
2015-04-30syntax_tools: Use module erl_annoHans Bolinder
2015-04-30test_server: Use module erl_annoHans Bolinder
2015-04-30tools: Use module erl_annoHans Bolinder
2015-04-30parsetools: Use module erl_annoHans Bolinder
2015-04-30kernel: Use module erl_annoHans Bolinder
2015-04-30asn1: Use module erl_annoHans Bolinder
2015-04-30debugger: Use module erl_annoHans Bolinder
2015-04-30stdlib: Silence some of qlc's warningsHans Bolinder
As long as the Erlang Compiler and qlc do not agree on the location of LC warnings, qlc's own warnings about patterns and filters that always fail have been silenced.
2015-04-30stdlib: Use module erl_annoHans Bolinder
2015-04-30compiler: Use module erl_annoHans Bolinder
2015-04-30emulator: Use module erl_annoHans Bolinder
2015-04-30Update primary bootstrapHans Bolinder
2015-04-30stdlib: Add module erl_annoHans Bolinder
Introduce erl_anno, an abstraction of the second element of tokens and tuples in the abstract format. The convention that negative line numbers can be used for silencing compiler warnings will no longer work in OTP 19; instead the annotation 'generated' is to be used.
2015-04-29Merge branch 'JeromeDeBretagne/fix_android_build'Zandra Hird
OTP-12693
2015-04-29Merge branch 'mikpe/hipe-unbreak-arity-4-bifs'Zandra Hird
* mikpe/hipe-unbreak-arity-4-bifs: erts/hipe: unbreak arity 4 BIFs
2015-04-29Merge branch 'x0id/jinterface_generic_match'Zandra Hird
* x0id/jinterface_generic_match: jinterface: match/bind added to OtpErlangObject fix typo error from recent merge OTP-12691
2015-04-29Merge branch 'erland/OTP18/snmp/time/OTP-12452'Erland Schönbeck
* erland/OTP18/snmp/time/OTP-12452: snmp: Remove deprecated warning for erlang:now in snmpc
2015-04-29Update primary bootstrapBjörn Gustavsson
2015-04-29Merge branch 'bjorn/compiler/misc'Björn Gustavsson
* bjorn/compiler/misc: test_lib: Simplify uniq/0 beam_dict: Correct comparison in opcode/2 beam_utils: Re-use the local helper function drop_labels/1 beam_asm: Speed up encoding of large numbers compilation_SUITE: Speed up the self_compile test cases beam_listing: Optimize writing of .S files v3_core, v3_codegen: Eliminate old-style catches cerl_inline: Replace old-style 'catch' with 'try'...'catch' sys_core_fold: Suppress warnings better beam_utils: Teach check_liveness/3 to understand get_map_elements Teach beam_trim to handle map instructions beam_utils: Be less conservative about liveness for exit instructions beam_validator: Stop validating the 'aligned' flag for binaries beam_validator: Clean up updating of types for y register beam_validator: Remove support for removed BIF fault/1,2 beam_validator: Correct merging of states beam_validator: Correct merging of y registers sys_pre_expand: Remove unused fields in #expand{} record
2015-04-29test_lib: Simplify uniq/0Björn Gustavsson
Simplify the uniq/0 function by using erlang:unique_integer/1.
2015-04-29beam_dict: Correct comparison in opcode/2Björn Gustavsson
The intention of the comparison is to avoid unnecessary updates of the ">=" instead of ">". With the ">" comparison, typically every line instruction would cause the #asm{} record to be updated.
2015-04-29beam_utils: Re-use the local helper function drop_labels/1Björn Gustavsson
In 8470558, the drop_labels/1 function was added to beam_utils as a minor optimization. Since the function is already available, we might as well use it in index_label/3 too.
2015-04-29beam_asm: Speed up encoding of large numbersBjörn Gustavsson
The misc_SUITE:integer_encoding/1 test case is annoyingly slow. Rewrite the encoding of integers in beam_asm to use the binary:encode_unsigned/1 BIF. Also tweak the test case itself. Scale the down the maximum size of the numbers being generated, but also add test of numbers around boundaries of power of two (which are the numbers most likely to expose bugs in the encoding).
2015-04-29compilation_SUITE: Speed up the self_compile test casesBjörn Gustavsson
It is not necessary to compile the compile three times. After the second compilation, we compare the generated .beam files with the .beam files that were used when compiling them. Doing one more round will not find more bugs. While we are it, remove the ?line macros and the unused make_current/1 function.
2015-04-29beam_listing: Optimize writing of .S filesBjörn Gustavsson
The test suites generates listing files, so we can slightly speed up running of test suites (especially when running 'cover') by optimizing writing of .S files.
2015-04-29v3_core, v3_codegen: Eliminate old-style catchesBjörn Gustavsson
2015-04-29cerl_inline: Replace old-style 'catch' with 'try'...'catch'Björn Gustavsson
Using 'try'...'catch' simplifies the code and improves coverage because we don't have to re-throw accidentally caught errors.
2015-04-29sys_core_fold: Suppress warnings betterBjörn Gustavsson
86fbd6d76d strengthened type optimization in lets. As a result of the stronger optimizations, special care had to be taken to suppress false warnings. It turns out that false warnings can still slip through. Slapping on a 'compiler_generated' annotation at the top-level of a complex term such as #c_tuple{} may not suppress all warnings. We will need to go deeper into the term to eliminate all warnings.
2015-04-29beam_utils: Teach check_liveness/3 to understand get_map_elementsBjörn Gustavsson
Understanding get_map_elements improves the stack trimming done by beam_trim.
2015-04-29Teach beam_trim to handle map instructionsBjörn Gustavsson
2015-04-29beam_utils: Be less conservative about liveness for exit instructionsBjörn Gustavsson
beam_utils used to be overly conservative about liveness for exit instructions such as: call_ext erlang:exit/1 beam_utils would consider all y registers to be used, to avoid overwriting a catch or try tag. That does not seem to be a real risk. However, we miss opportunities for stack trimming if we consider y registers used by an exit instruction.
2015-04-29beam_validator: Stop validating the 'aligned' flag for binariesBjörn Gustavsson
The run-time system stopped paying attention the 'aligned' flag in bit syntax construction and matching when bitstrings were introduced in language. The beam_asm compiler pass will crash if the 'aligned' flag is given in bit syntax instructions. beam_validator still validates the 'aligned' flag. Before 912fea0b712a (which removed the possibility to validate existing BEAM files), the 'aligned' flag could actually be encountered when validating a BEAM file. Since the validation of 'aligned' no longer serves any useful purpose, remove the validation code.
2015-04-29beam_validator: Clean up updating of types for y registerBjörn Gustavsson
set_type_y/3 is far too complicated. Note that we don't need to check the #st.numy field, because we will detect the error anyway because the information for the y register will be missing in the #st.y gb_tree. There is also a clause that would never match because of a spelling error (the first "n" was missing in "uninitialized"). That clause is not needed because the default clause will do fine. Furthermore, we can break out the special case for handling catch_end and similar instructions into a new function.
2015-04-28Merge branch 'egil/opt-instructions/OTP-12690'Björn-Egil Dahlberg
* egil/opt-instructions/OTP-12690: erts: Specialize minus and plus instruction erts: Add move2 specialization for common move patterns erts: Specialize rem instruction for common case erts: Specialize band instruction for common case erts: Batch loads and stores for move_window erts: Fix loader increment from minus instruction erts: Add move window instruction erts: Add instruction move3 for xy and xx erts: Specialize compare instructions kernel: Add instruction_count helper to erts_debug
2015-04-28snmp: Remove deprecated warning for erlang:now in snmpcErland Schönbeck
2015-04-28Merge branch 'erland/OTP18/snmp/OTP-12452'Erland Schönbeck
* erland/OTP18/snmp/OTP-12452: snmp: Remove deprecated warning for erlang:now in snmp_verbority snmp: Change to random use crypto. Remove use of erlang:now
2015-04-27Fix cross compilation for AndroidJérôme de Bretagne