aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2013-02-12Merge branch 'anders/diameter/reopen/OTP-10692'Anders Svensson
* anders/diameter/reopen/OTP-10692: Fix testcases in event suite Fix faulty watchdog transition INITIAL -> DOWN Fix faulty watchdog transition DOWN -> INITIAL Comment fixes Rename records peer/conn -> watchdog/peer in diameter_service Add testcases to traffic suite Simplify watchdog transitions in service process Simplify transport shutdown Remove upgrade code not needed after application restart Tweak (make) silent rules support
2013-02-12Merge branch 'vd/jinterface_windows_cookie/OTP-10821'Fredrik Gustafsson
* vd/jinterface_windows_cookie/OTP-10821: jinterface: fix finding cookie file on windows
2013-02-11Bumped version numberFredrik Gustafsson
2013-02-11Merge branch 'vd/tuple_constructor_bug/OTP-10819'Fredrik Gustafsson
* vd/tuple_constructor_bug/OTP-10819: fix bug in OtpErlangTuple constructor
2013-02-11[stdlib] Fix a bug concerning pretty printing and UnicodeHans Bolinder
Binaries were pretty printed too often.
2013-02-11Make Unicode correctionsHans Bolinder
2013-02-11Merge branch 'bjorn/remove-tuple-funs/OTP-10170'Björn Gustavsson
* bjorn/remove-tuple-funs/OTP-10170: erl_eval: Don't allow evaluation of {M,F} in the shell
2013-02-11Merge branch 'bjorn/compiler/beam_utils-crash/OTP-10825'Björn Gustavsson
* bjorn/compiler/beam_utils-crash/OTP-10825: Fix unsafe optimization of funs
2013-02-11Merge branch 'vd/code_get_mode/OTP-10823'Fredrik Gustafsson
* vd/code_get_mode/OTP-10823: Added name prefix to code.xml Add a new function code:get_mode() can be used to detect how the code servers behaves
2013-02-11erl_interface: Fixup of b069306, typdef enum erlang_char_encodingSverker Eriksson
2013-02-11Merge branch 'hb/stdlib/erl_scan_unicode/OTP-10756'Hans Bolinder
* hb/stdlib/erl_scan_unicode/OTP-10756: [stdlib] Remove the undocumented 'unicode' option from the scanner
2013-02-10erl_eval: Don't allow evaluation of {M,F} in the shellBjörn Gustavsson
Tuples funs were removed in de7e01c958ff7c9e6da4034a53567a30a4ae5792, but it was still possible to evaluate tuple funs in the shell.
2013-02-10[stdlib] Remove the undocumented 'unicode' option from the scannerHans Bolinder
2013-02-09Fix unsafe optimization of funsBjörn Gustavsson
Commits 53bd4974a101 and 726f6e4c7afe simplified the handling of match_fail (used to generated exceptions such as 'function_clause') by first rewriting them to a call to erlang/error{1,2} and later rewriting them to specialized BEAM instructions (to reduce the code size). There was one flaw, though, which only was exposed when more aggressive optimizations were added in c3b60f86c622. Here is an example to explain it: t(V) -> fun(get) -> V end. The following BEAM code will be initially generated for the fun: {function, '-t/1-fun-0-', 2, 5}. {label,1}. {line,[{location,"t.erl",5}]}. {func_info,{atom,t},{atom,'-t/1-fun-0-'},2}. {label,2}. {test,is_eq_exact,{f,2},[{x,0},{atom,get}]}. {move,{x,1},{x,0}}. return. {label,2}. {test_heap,2,1}. {put_list,{x,0},nil,{x,1}}. {move,{atom,function_clause},{x,0}}. {line,[{location,"t.erl",5}]}. {call_ext_only,2,{extfunc,erlang,error,2}}. Translating back to Erlang code, that would be roughly: '-t/1-fun-0-'(get, V) -> V; '-t/1-fun-0-'(Arg1, _) -> erlang:error(function_clause, [Arg1]). Note that the second argument (the free variable V) is not included in the call to erlang:error/2. The beam_except pass will simplify the code to: {function, '-t/1-fun-0-', 2, 8}. {label,1}. {line,[{location,"t.erl",5}]}. {func_info,{atom,t},{atom,'-t/1-fun-0-'},2}. {label,2}. {test,is_eq_exact,{f,1},[{x,0},{atom,get}]}. {move,{x,1},{x,0}}. return. The code has been shortened by jumping to the func_info/3 instruction. Translating back to Erlang: '-t/1-fun-0-'(get, V) -> V; '-t/1-fun-0-'(Arg1, Arg2) -> erlang:error(function_clause, [Arg1,Arg2]). it is clear that both arguments are now included in the 'function_clause' exception, even though the initially generated code only included the first argument. That is no problem in this particular case, but for some more complex funs, optimizing the first version based on variable usage could make the second version unsafe. I rejected the following potential solutions: - Including the free arguments in the call to erlang:error/2: '-t/1-fun-0-'(get, V) -> V; '-t/1-fun-0-'(Arg1, Arg2) -> erlang:error(function_clause, [Arg1,Arg2]). Unfortunately, that is tricky. The free variables are only known after the second pass in v3_kernel when variable usage has been calculated. We would need to add a third pass (only for funs) that would the free arguments to the second argument for erlang:error/2 *and* update the variable usage information. - Calling beam_except earlier, from within beam_block before any optimizations based on variable usages are done. But means that the problem could reappear in some other form in the future when other updates are done to the code generator and/or optimization passes. The solution I have chosen is to modify beam_except to only replace a call to erlang:error(function_class, Args) if the length of Args is the same as the arity in the func_info/3 instruction. The code will be slightly larger. Also, the free variables for funs and list comprehensions will no longer be included in the function_clause exception (that could be less confusing, but it also means less information during debugging).
2013-02-08Merge branch 'anders/diameter/cover/OTP-10804'Anders Svensson
* anders/diameter/cover/OTP-10804: Update diameter.cover
2013-02-08Fix testcases in event suiteAnders Svensson
The transition INITIAL -> DOWN (fixed in the preceding commit) was wrong.
2013-02-08Fix faulty watchdog transition INITIAL -> DOWNAnders Svensson
There is no such transition in RFC 3539, the state remains in INITIAL.
2013-02-08Merge branch 'sverk/erl_interface-enum-typedef'Sverker Eriksson
* sverk/erl_interface-enum-typedef: erl_interface: Change enum erlang_char_encoding to a typedef
2013-02-08Merge branch 'sverk/r16/erl_interface-fixup'Sverker Eriksson
* sverk/r16/erl_interface-fixup: erl_interface: Fix ei_skip_term
2013-02-08Merge branch 'bmk/snmp/snmp4231_integration/r16'Micael Karlberg
2013-02-08Fix faulty watchdog transition DOWN -> INITIALAnders Svensson
This was the result of the watchdog process exiting as a consequence of peer death in some casesi, causing a restarted transport to enter INITIAL when it should enter REOPEN. The watchdog now remains alive as long as peer shutdown isn't requested and a 'close' message to the service process (instead of watchdog death) generates 'closed' events from the service.
2013-02-08Comment fixesAnders Svensson
2013-02-08Rename records peer/conn -> watchdog/peer in diameter_serviceAnders Svensson
That is, make the naming match that of the corresponding modules. This has long been fairly confusing.
2013-02-08Add testcases to traffic suiteAnders Svensson
That check for unexpected entries in the request table.
2013-02-08Simplify watchdog transitions in service processAnders Svensson
In particular, use watchdog messages as input and do away with the older connection_up/down (and other) messages. Also, only maintain the watchdog state, not the older up/down op state.
2013-02-08Simplify transport shutdownAnders Svensson
Service process informs the watchdog process which informs the peer process. (Instead of going directly to the latter in one case.)
2013-02-08Remove upgrade code not needed after application restartAnders Svensson
Which will be the case with R16B in this case.
2013-02-08Tweak (make) silent rules supportAnders Svensson
2013-02-08Merge branch 'hb/stdlib/bug_fixes/OTP-10622'Hans Bolinder
* hb/stdlib/bug_fixes/OTP-10622: [stdlib] Fix a bug that could cause the Erlang shell to loop [stdlib] Fix bugs in eval_bits
2013-02-08Bumped version numberFredrik Gustafsson
2013-02-08Merge branch 'kp/odbc-empty-params/OTP-10798'Fredrik Gustafsson
* kp/odbc-empty-params/OTP-10798: Add testcases for odbc:param_query Fix odbc:param_query/3 and odbc:param_query/4.
2013-02-07[stdlib] Fix a bug that could cause the Erlang shell to loopHans Bolinder
2013-02-07[stdlib] Fix bugs in eval_bitsHans Bolinder
Unicode related.
2013-02-07erl_interface: Change enum erlang_char_encoding to a typedefSverker Eriksson
to make the API independent of the actual type of erlang_char_encoding
2013-02-07Merge branch 'siri/ts-and-tp-in-test-logs/OTP-10780'Siri Hansen
* siri/ts-and-tp-in-test-logs/OTP-10780: [test_server] Add error printouts in case writing to test case html log fails [test_server] Don't write unicode strings to latin1 log files
2013-02-07Merge branch 'siri/sasl/appup-R16/OTP-10806'Siri Hansen
* siri/sasl/appup-R16/OTP-10806: Update sasl.appup.src with R16 release and remove R13 versions
2013-02-07Merge branch 'maint'Björn Gustavsson
* maint: Prepare release Don't run testX420/1 on old slow Sparc systems testX420: Pass Options to the ASN.1 compiler asn1_erl_nif: Correct broken length encoding asn1_SUITE: Mend broken test_modified_x420/1 Revert "Prepare release" Conflicts: lib/asn1/doc/src/notes.xml lib/asn1/test/asn1_SUITE.erl
2013-02-07Merge branch 'maint-r15' into maintBjörn Gustavsson
* maint-r15: Prepare release Don't run testX420/1 on old slow Sparc systems testX420: Pass Options to the ASN.1 compiler asn1_erl_nif: Correct broken length encoding asn1_SUITE: Mend broken test_modified_x420/1 Fix a bug for multiple extension addition groups
2013-02-07[test_server] Add error printouts in case writing to test case html log failsSiri Hansen
Errors are printed to unexpected_io log.
2013-02-07Merge branch 'bjorn/compiler/dialyzer-warnings'Björn Gustavsson
* bjorn/compiler/dialyzer-warnings: compile: Eliminate warnings for unmatched return values beam_receive: Eliminate dialyzer warning for unmatched return beam_validator: Eliminate dialyzer warnings for unmatched returns
2013-02-06Merge branch 'bjorn/stdlib/erl_lint-coverage'Björn Gustavsson
* bjorn/stdlib/erl_lint-coverage: Test calling deprecated or removed functions Test deprecating list_to_atom/1 to cover more code Cover binary syntax errors and warnings Remove unused error message {bittype_mismatch,_,_,_} Remove unused error message for importing an auto-imported BIF Remove the error message for future reserved keyword Test a few more kinds of illegal guard expressions Remove error handling for calling a BIF that is not auto-imported Provoke basic semantic errors to improve test coverage
2013-02-06Merge branch 'nox/fix-seq-opt/OTP-10818'Fredrik Gustafsson
* nox/fix-seq-opt/OTP-10818: Add two tests for unused multiple values in effect context Forbid multiple values in Core Erlang sequence arguments
2013-02-06Merge branch 'mh/duplicate_name_error_message/OTP-10797'Fredrik Gustafsson
* mh/duplicate_name_error_message/OTP-10797: Slightly nicer error message when node start fails due to duplicate name
2013-02-06Bumped version numberFredrik Gustafsson
2013-02-06compile: Eliminate warnings for unmatched return valuesBjörn Gustavsson
2013-02-06beam_receive: Eliminate dialyzer warning for unmatched returnBjörn Gustavsson
2013-02-06beam_validator: Eliminate dialyzer warnings for unmatched returnsBjörn Gustavsson
The assert_fls/2 and assert_type/3 functions both return the Vst passed to them, but all callers ignore the return value. Given the name of the functions, they are not expected to return anything. Make it so by changing the return value to 'ok'. There are two calls to bsm_get_context/2 used only to validate that the match context is valid. Call bsm_validate_context/2 instead. In bsm_validate_context/2, explicitly match the return value of bsm_get_context/2 to '_' to make it clear that it is not used.
2013-02-06Prepare releaseErlang/OTP
2013-02-06Merge branch 'bjorn/asn1/open-type-error/OTP-10805' into maint-r15Erlang/OTP
* bjorn/asn1/open-type-error/OTP-10805: asn1_erl_nif: Correct broken length encoding asn1_SUITE: Mend broken test_modified_x420/1
2013-02-06Merge branch 'bjorn/asn1/extension-addition-groups/OTP-10811' into maint-r15Erlang/OTP
* bjorn/asn1/extension-addition-groups/OTP-10811: Fix a bug for multiple extension addition groups