aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2011-02-14compile: Refactor handling of source options (e.g. 'from_core')Björn Gustavsson
The options for compiling from Core Erlang, BEAM assembler files, and BEAM files are handled in several places, making it difficult to change or add more similar options. Refactor the option handling so that each option only need to be handled in one place.
2011-02-11Merge branch 'ia/ssl/dialyzer-spec-fixes' into devIngela Anderton Andin
* ia/ssl/dialyzer-spec-fixes: Added missing return value in dialyzer specs (ssl.erl)
2011-02-11Added missing return value in dialyzer specs (ssl.erl)Ingela Anderton Andin
Suppressed dialyzer warnings with spec if possible to minimize clutter from this file belonging to old ssl.
2011-02-09Merge branch 'bjorn/beam-max-args/OTP-9049' into devBjörn Gustavsson
* bjorn/beam-max-args/OTP-9049: Refuse to compile functions with too many arguments Lower the maximum arity from 256 to 255
2011-02-09Merge branch 'bjorn/compiler/eliminate-warnings' into devBjörn Gustavsson
* bjorn/compiler/eliminate-warnings: compiler Makefile: Turn warnings into errors v3_kernel_pp: Add support for pretty-printing #k_literal{} records v3_kernel_pp: Eliminate warning
2011-02-07v3_codegen: Use the latest instance of StBjörn Gustavsson
By accident a previous instance of St is used, which is harmless in this case, but leads to worse quality of the generated code.
2011-02-03Merge branch 'ks/bs_add-fail-labels' into devNiclas Axelsson
* ks/bs_add-fail-labels: Fix translation of bs_add's fail labels OTP-9044
2011-02-03Fix translation of bs_add's fail labelsKostis Sagonas
2011-02-02compiler Makefile: Turn warnings into errorsBjörn Gustavsson
We want to ensure that the compiler applications is kept free of warnings.
2011-02-02v3_kernel_pp: Add support for pretty-printing #k_literal{} recordsBjörn Gustavsson
2011-02-02v3_kernel_pp: Eliminate warningBjörn Gustavsson
2011-01-26Merge branch 'uw/xmerl-expand-simple/OTP-9034' into devLars Thorsen
* uw/xmerl-expand-simple/OTP-9034: Track parents when expanding #xmlElement records
2011-01-25Merge branch 'maint-r14' into devNiclas Eklund
2011-01-24Merge branch 'ia/ssl-and-public_key/skip-tests-when-no-crypto-fix' into devIngela Anderton Andin
* ia/ssl-and-public_key/skip-tests-when-no-crypto-fix: Changed crypto start test so that it works as intended
2011-01-24Changed crypto start test so that it works as intendedIngela Anderton Andin
2011-01-24Track parents when expanding #xmlElement recordsUlf Wiger
The function xmerl_lib:expand_content/1 is mainly for expanding Simple XML, but can also handle xmerl records. This patch fixes an omission that caused expand_content/1 to not maintain the 'parents' list when expanding #xmlElement{} records. No test cases written, since the xmerl test suites have not yet been released.
2011-01-24Merge branch 'nick/orber/inet6_test_cases/OTP-9035' into maint-r14Erlang/OTP
* nick/orber/inet6_test_cases/OTP-9035: OTP-9035 - More tests added so that Orber does not try to run IPv6 tests on a machine than cannot handle that. This only affect test code and not the application.
2011-01-24Merge branch 'nick/ssh/sign-verify-binary' into maint-r14Erlang/OTP
* nick/ssh/sign-verify-binary: Updated appup file. Updated notes file. Changed year in copyright header. Added updated modules to the appup file. Improved error handling for ssh:connect/3/4. Release note contained wrong ticker number. OTP-8987 In some cases SSH returned {error, normal} when a channel was terminated unexpectedly. This has now been changed to {error, channel_closed}.
2011-01-24Merge branch 'nick/ensure_ssh_dir_exists/OTP-9010' into maint-r14Erlang/OTP
* nick/ensure_ssh_dir_exists/OTP-9010: Updated appup file. Updated notes file. Updated year in license. OTP-9010: ssh: ensure ~/.ssh exists
2011-01-24Merge branch 'nick/ssh/inet6_enetunreach/OTP-9031' into maint-r14Erlang/OTP
* nick/ssh/inet6_enetunreach/OTP-9031: Updated notes file. Added updated modules to the appup file. OTP-9031 - SSH did not handle the error reason enetunreach when trying to open a IPv6 connection.
2011-01-21Merge branch 'ia/ssl-and-public_key/skip-test-if-no-crypto' into devIngela Anderton Andin
* ia/ssl-and-public_key/skip-test-if-no-crypto: Skip ssl and public key tests if crypto fails to start
2011-01-20Skip ssl and public key tests if crypto fails to startIngela Anderton Andin
2011-01-20OTP-9035 - More tests added so that Orber does not try to run IPv6 testsNiclas Eklund
on a machine than cannot handle that. This only affect test code and not the application.
2011-01-20Merge branch 'maint-r14' into devIngela Anderton Andin
2011-01-20Merge branch 'ks/bs_start_match-fails' into devNiclas Axelsson
* ks/bs_start_match-fails: Fix erroneous fail info of a hipe_bs_primop OTP-9036
2011-01-20Updated appup file.Niclas Eklund
2011-01-20Updated appup file.Niclas Eklund
2011-01-20Updated notes file.Niclas Eklund
2011-01-20Updated notes file.Niclas Eklund
2011-01-20Updated notes file.Niclas Eklund
2011-01-20Merge branch 'maint-r14' of super:otp into nick/ensure_ssh_dir_exists/OTP-9010Niclas Eklund
2011-01-20Changed year in copyright header.Niclas Eklund
2011-01-20Updated year in license.Niclas Eklund
2011-01-20Added updated modules to the appup file.Niclas Eklund
2011-01-20Added updated modules to the appup file.Niclas Eklund
2011-01-18Refuse to compile functions with too many argumentsBjörn Gustavsson
2011-01-18Lower the maximum arity from 256 to 255Björn Gustavsson
Historically, for no good reason, a function is allowed to have from 0 to 256 arguments. Thus, the number of arguments *almost* fits into a byte. HiPE only supports up to 255 arguments (because it assumes that the function arity fits into a single byte), and fixing that limitation would require ugly special-case handling. In Dialyzer, the arity type is defined to be a byte (i.e. 0..255). Since no-one uses functions with 256 arguments anyway, lower the limit to 255.
2011-01-17OTP-9031 - SSH did not handle the error reason enetunreach when trying to ↵Niclas Eklund
open a IPv6 connection.
2011-01-17Merge branch 'bjorn/beam-loader/OTP-9030' into devBjörn Gustavsson
* bjorn/beam-loader/OTP-9030: (43 commits) c: Reduce memory footprint erl_posix_msg: Reduce memory footprint Introduce a few more variations of the move instructions Combine a move + jump sequence into the move_jump instruction Optimize and clean-up the exact equality/non-equality instructions Optimize addition of a small integer to a variable Introduce a special instruction for select_val with two values Introduce a few more specialized put_list instructions Eliminate the "put_list c n Dst" instructions Eliminate the specific move_sd instruction Eliminate use of GetArg1() in the badmatch and case_end instructions Eliminate use of GetArg2() in the i_element instruction Eliminate use of GetArg1() in the fast_element instruction Eliminate use of GetArg1() in the jump_on_val* instructions Eliminate use of GetArg1() in the select_val instruction beam_emu: Eliminate sloppy use of tmp_arg1 and tmp_arg2 beam_emu: Don't inline helper functions into process_main() beam_emu: Clean up calling of the error_handler module Simplify a select_val instruction that selects only one value Optimize creation of tuples ...
2011-01-17c: Reduce memory footprintBjörn Gustavsson
Use a binary instead of a string for the help text.
2011-01-17erl_posix_msg: Reduce memory footprintBjörn Gustavsson
Since the error messages in the erl_posix_msg module are presumably used very seldom, save memory by using binaries instead of strings.
2011-01-17Introduce a few more variations of the move instructionsBjörn Gustavsson
Frequency counts show that move Const x(1) move Const x(2) are very common.
2011-01-17Combine a move + jump sequence into the move_jump instructionBjörn Gustavsson
That will save one word and small amount of time for each occurrence.
2011-01-17Optimize and clean-up the exact equality/non-equality instructionsBjörn Gustavsson
The is_eq_exact/3 and is_ne_exact/3 instructions are commonly used with one immediate or literal operand. Introduce three new specialized instructions: i_is_eq_exact_literal/3 i_is_ne_exact_immed/3 i_is_ne_exact_literal/3 The i_is_ne_exact_literal/3 instruction is not very frequently used, but its existence is justified because we removed in a a previous commit the special instruction for matching bignums and we now use i_is_ne_exact_literal/3 instead. For consistency, rename the existing is_eq_immed/3 instruction to is_eq_exact_immed/3. While at it, remove the optimization of an is_eq/3 instruction with an immediate operand because that optimization is already done by the compiler.
2011-01-17Optimize addition of a small integer to a variableBjörn Gustavsson
Introduce a new i_increment/4 to optimize the addition of a register and a small integer. This instruction saves two instruction words compared to the standard instructions (an i_fetch/2 instruction followed by a i_plus/3 instruction) and will also be slightly faster.
2011-01-17Introduce a special instruction for select_val with two valuesBjörn Gustavsson
The new instruction will save one word (because no size operand is needed), and is slightly faster. Handle select_tuple_arity in the same way.
2011-01-17Introduce a few more specialized put_list instructionsBjörn Gustavsson
2011-01-17Eliminate the "put_list c n Dst" instructionsBjörn Gustavsson
Since the literal (constant) pool was introduced in R12, the BEAM compiler will never generate a "put_list Const [] Dst" instruction (it will instead generate a "move [Const] Dst" instruction).
2011-01-17Eliminate the specific move_sd instructionBjörn Gustavsson
The move_sd specific instruction is no longer used since there are specific move instructions covering all possible permutations of operands. Also eliminate the move_cy instruction because it is almost never generated by the compiler.
2011-01-17Eliminate use of GetArg1() in the badmatch and case_end instructionsBjörn Gustavsson
Create separate instructions for each register type. The "badmatch x(0)" and "case_end x(0)" (which are very common) will only require a single word each, compared to two words when GetArg1() is used.