aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2012-01-18Merge branch 'bjorn/compiler/bif-call-bug/OTP-9866' into maintBjörn Gustavsson
* bjorn/compiler/bif-call-bug/OTP-9866: erl_lint: Consistently reject local calls from guards
2012-01-18Merge branch 'egil/fix-error_logger-calendar/OTP-9854' into maintBjörn-Egil Dahlberg
* egil/fix-error_logger-calendar/OTP-9854: stdlib: Refactor to tag all times in error logger stdlib: Use utc time as base in error logger
2012-01-18Merge branch 'raimo/64-bit-efile_drv/OTP-9820' into maintErlang/OTP
* raimo/64-bit-efile_drv/OTP-9820: file_SUITE: Assume 64-bit windows has enough memory erts: Badarg if port output overflows iov_len prim_file_SUITE: large_file success depends on wordsize file_SUITE: Increase timeout for large_file file_SITE,prim_file_SUITE: Accept old OpenBSD pecularity prim_file_SUITE: large_write - meaner test data and check result content file_SUITE: large_write - check mem size before creating huge binary erts: rewrite efile_writev to handle partial writes correctly erts: Bugfix - driver_deq freed wrong length due to short type (int) prim_file_SUITE: Add large_write/1 file_SUITE: Add large_write/1 file_SUITE: Refactor large_file/1 file_SUITE: Fix unix_free/1
2012-01-17erl_lint: Consistently reject local calls from guardsBjörn Gustavsson
If a guard test (such as is_list/1) has a local definition in a module (or is imported), erl_lint will reject a call to it from a guard if the call is not at the top-level: foo(L) when is_list(L) =:= true -> %% Will be rejected. ok. is_list(_) -> ok. But if the call is at the top-level, it will be accepted (and cause a crash in a later compiler pass): foo(L) when is_list(L) -> %% Will be accepted by erl_lint ok. is_list(_) -> ok. This inconsistency was an oversight introduced when it became possible to override BIFs with local definitions.
2012-01-16Merge branch 'ia/ssh/test-maint' into maintIngela Anderton Andin
* ia/ssh/test-maint: Remove generation of new test keys, use checked in test keys Improve test case structure so that test should pass on all platforms Exec test case should ignore stderr messages Do not run ssh_to_openssh_SUITE if there is no oppenssh server running
2012-01-13Merge branch 'raimo/opu-fixes' into maintRaimo Niskanen
* raimo/opu-fixes: inet_res_SUITE: Improve portability of run-named
2012-01-12Merge branch 'alind/public_key/gitignore_fix' into maintAdam Lindberg
* alind/public_key/gitignore_fix: [public_key] Fix .gitignore to use relative paths
2012-01-12[public_key] Fix .gitignore to use relative pathsAdam Lindberg
2012-01-11Merge branch 'sverk/wait_for_test_procs' into maintSverker Eriksson
* sverk/wait_for_test_procs: stdlib: Enable unused 'end_per_testcase' in ets_SUITE
2012-01-11Remove generation of new test keys, use checked in test keysIngela Anderton Andin
There is no need to generate new test keys every time, they do not have a timestamp as certificates. This also reduces the need to duplicate test code from public_key.
2012-01-11Improve test case structure so that test should pass on all platformsIngela Anderton Andin
2012-01-11Exec test case should ignore stderr messagesIngela Anderton Andin
2012-01-11Do not run ssh_to_openssh_SUITE if there is no oppenssh server runningIngela Anderton Andin
2012-01-11Merge branch 'bjorn/compiler/tests' into maintBjörn Gustavsson
* bjorn/compiler/tests: compile_SUITE: Add test of 'sys_pre_attributes' Correct syntax in compiler.cover Cover v3_kernel:get_line/1 core_SUITE: Cover the nomatch_shadow warning in v3_kernel core_SUITE: Cover v3_kernel:build_match/2 bs_match_SUITE: Add a test case to cover bsm_ensure_no_partition_2/5 core_fold_SUITE: Cover sys_core_fold:is_safe_bool_expr_1/3 core_SUITE: Cover sys_core_fold:eval_is_boolean/2 core_SUITE: Cover sys_core_fold:make_effect_seq/2 beam_validator_SUITE:beam_files/1: Validate modules in parallel compilation_SUITE: Compile compiler modules in parallel compilation_SUITE: Prevent cover from being run on slave nodes test_lib:p_run/2: Be careful about how many parallel processes we use Remove part_eval_SUITE
2012-01-11compile_SUITE: Add test of 'sys_pre_attributes'Björn Gustavsson
2012-01-10Merge branch 'egil/revert-type-information' into maintBjörn-Egil Dahlberg
* egil/revert-type-information: syntax_tools: Remove warnings of missing types hipe: Remove warnings of missing types in records syntax_tools: Suppress warning of unused variable Revert "hipe: Add type information to cfg_info record" Revert "syntax_tool: Add missing type information"
2012-01-09file_SUITE: Assume 64-bit windows has enough memoryRaimo Niskanen
Temporary workaround until there is a memory info function conveniantly usable from test suites.
2012-01-09Merge branch 'hb/dialyzer/nowarn_unused_function/OTP-9833' into maintHans Bolinder
* hb/dialyzer/nowarn_unused_function/OTP-9833: Handle nowarn_unused_function like the compiler does
2012-01-05syntax_tools: Remove warnings of missing typesBjörn-Egil Dahlberg
* Just remove the warnings, not fixing the actual problem.
2012-01-05hipe: Remove warnings of missing types in recordsBjörn-Egil Dahlberg
2012-01-05syntax_tools: Suppress warning of unused variableBjörn-Egil Dahlberg
2012-01-05Revert "hipe: Add type information to cfg_info record"Björn-Egil Dahlberg
This reverts commit 644a3ec2848da340490c4027df293a3136de60a4.
2012-01-05Revert "syntax_tool: Add missing type information"Björn-Egil Dahlberg
This reverts commit 38ee7a20cfdc22ead35b4711a086babcf6b3069b.
2012-01-05inet_res_SUITE: Improve portability of run-namedRaimo Niskanen
2012-01-05stdlib: Refactor to tag all times in error loggerBjörn-Egil Dahlberg
2012-01-05stdlib: Use utc time as base in error loggerBjörn-Egil Dahlberg
* All computer time should be in utc and converted to local when needed * Previous conversion used the depcrated calendar:local_time_to_universal_time/1
2012-01-05Correct syntax in compiler.coverBjörn Gustavsson
Modules would not get excluded. While at it, no longer exclude sys_pre_attributes since we will want to test it.
2012-01-04Merge branch 'egil/fix-compiler-warnings' into maintBjörn-Egil Dahlberg
* egil/fix-compiler-warnings: erts: Use re instead of regexp in testsuite erts: Remove unused code in testsuites orber: Use modern list guard in testsuite orber: Ignore unused variable in orber_tb.erl xmerl: Ignore unused variable in xmerl_uri.erl syntax_tool: Add missing type information hipe: Suppress warnings for unused variables hipe: Add type information to cfg_info record tools: Use literal formatting in erl_memory.c asn1: Remove unused variable in asn1_erl_nif.c ei: Remove unused variable in ei_format.c erts: Add missing prototype to DRIVER_INIT runtime_tools: Fix signedness in trace_ip_drv.c to_erl: Remove compiler warnings heart: Suppress compiler warnings erts: Remove compiler warnings in inet_gethost.c erts: Remove dead code in inet_gethost.c erts: Remove dead code
2012-01-04Cover v3_kernel:get_line/1Björn Gustavsson
2012-01-04core_SUITE: Cover the nomatch_shadow warning in v3_kernelBjörn Gustavsson
2012-01-04core_SUITE: Cover v3_kernel:build_match/2Björn Gustavsson
2012-01-04bs_match_SUITE: Add a test case to cover bsm_ensure_no_partition_2/5Björn Gustavsson
Also correct the comment in bsm_ensure_no_partition_2/5, and while at it correct typos in the comment for bsm_nonempty/2.
2012-01-04core_fold_SUITE: Cover sys_core_fold:is_safe_bool_expr_1/3Björn Gustavsson
2012-01-04core_SUITE: Cover sys_core_fold:eval_is_boolean/2Björn Gustavsson
2012-01-04core_SUITE: Cover sys_core_fold:make_effect_seq/2Björn Gustavsson
We need to write a test case in Core Erlang in order to cover make_effect_seq/2, since v3_core does not generate "deep" Core Erlang code.
2012-01-04beam_validator_SUITE:beam_files/1: Validate modules in parallelBjörn Gustavsson
2012-01-04compilation_SUITE: Compile compiler modules in parallelBjörn Gustavsson
On my Mac Pro with 8 cores, this change make self_compile/1 more than twice as fast, and self_compile_old_inliner/1 more than 4 times faster.
2012-01-04compilation_SUITE: Prevent cover from being run on slave nodesBjörn Gustavsson
In the self compilation test cases, the compiler compiles itself and runs the newly compiled version on a slave node. Having the cover server starting on the slave node defeats the purpose of the test, since it will load the SAME cover-compiled code on the slave node. (It will also be slower, but will not improve coverage since it compiles the same source files again.) Use a shielded node to prevent the cover server from getting started on the slave node.
2012-01-04test_lib:p_run/2: Be careful about how many parallel processes we useBjörn Gustavsson
We probably don't gain anything by using more processes than available schedulers. Also, if 'cover' is being run, using more than one process may make it slower, so we will be very conservative and use only one process in that case.
2012-01-04Remove part_eval_SUITEBjörn Gustavsson
This test suite has been superseded by other test suites (e.g. guard_SUITE). Removing it does not decrease the coverage.
2012-01-04orber: Use modern list guard in testsuiteBjörn-Egil Dahlberg
2012-01-04orber: Ignore unused variable in orber_tb.erlBjörn-Egil Dahlberg
2012-01-04xmerl: Ignore unused variable in xmerl_uri.erlBjörn-Egil Dahlberg
2012-01-04Merge branch 'bjorn/compiler/match-fail/OTP-9842' into maintBjörn Gustavsson
* bjorn/compiler/match-fail/OTP-9842: Add the beam_except pass to optimize exceptions Eliminate the match_fail primop in v3_kernel and later passes
2012-01-04Add the beam_except pass to optimize exceptionsBjörn Gustavsson
In order to save space, rewrite suitable calls to erlang:error/{1,2} to special BEAM instructions. This code is probably longer than the code taken out of v3_life and v3_codegen in the previous commit, but it is much easier to understand and maintain since the BEAM assembler format is better understood than the v3_life format.
2012-01-04Eliminate the match_fail primop in v3_kernel and later passesBjörn Gustavsson
In the v3_life pass, it is assumed that a 'match_fail' primop only occur at the top-level and at the end of a function. But this code: do_split_cases(A) -> case A of x -> Z = dummy1; _ -> Z = dummy2, a=b end, Z. will be optimized by sys_core_fold to the following code: 'split_cases'/1 = fun (_cor0) -> let <_cor7,Z> = case _cor0 of <'x'> when 'true' -> < 'dummy1','dummy1' > <_cor6> when 'true' -> %% Here follows a 'match_fail' primop inside %% multiple return values: < primop 'match_fail'({'badmatch','b'}),'dummy2' > end in Z moving the 'match_fail' primop into a "values" construction. In the future, we would like to get rid of the v3_life pass (it is there for historical reasons), so in the mean-time we prefer to not add more code to it by generalizing the handling of 'match_fail'. Since the 'match_fail' primop can be simulated by erlang:error/{1,2}, the simplest solution is to translate 'match_fail' to a call to erlang:error/{1,2} in v3_kernel and remove the handling of 'match_fail' in v3_life and v3_codegen. It is tempting to get rid of 'match_fail' also in the Core Erlang format, but there are two issues: - Removing the support for 'match_fail' completely may break tools that generate Core Erlang code. We should not do that in a minor release. - There is no easy way to generate a 'function_clause' exception that will remain correct if it will be inlined into another function. (Calling "erlang:error(function_clause, Args)" is fine only if it is not inlined into another function.) A good solution probably involves introducing new instructions, which is better done in a major release. Noticed-by: Håkan Matsson Minimized-test-case-by: Erik Søe Sørensen
2012-01-03syntax_tool: Add missing type informationBjörn-Egil Dahlberg
2012-01-03hipe: Add type information to cfg_info recordBjörn-Egil Dahlberg
Type information was missing from cfg_info record. * Add any() to 'params' * Add list() to 'info' The 'params' field should be constrained to a narrower type.
2012-01-03tools: Use literal formatting in erl_memory.cBjörn-Egil Dahlberg
* Removes -Wformat-security problems
2012-01-03Fix some broken links in documentationLukas Larsson