aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2013-12-12Test named funsAnthony Ramine
2013-12-12Support named funs in the debugger interpreterAnthony Ramine
The current code for the evaluation of ordinary funs is dependent on the order on variables in the fun environment as returned by erlang:fun_info(Fun, env). As it happened, adding the code for named funs changed the order in the environment for ordinary funs. To avoid the problem in the future, make sure that we only have one free variable in the funs that we will need to inspect using erlang:fun_info(Fun, env).
2013-12-12Support named funs in the shellAnthony Ramine
The current code for the evaluation of ordinary funs is dependent on the order on variables in the fun environment as returned by erlang:fun_info(Fun, env). To avoid the problem in the future, make sure that we only have one free variable in the funs that we will need to inspect using erlang:fun_info(Fun, env).
2013-12-12EEP 37: Funs with namesAnthony Ramine
This adds optional names to fun expressions. A named fun expression is parsed as a tuple `{named_fun,Loc,Name,Clauses}` in erl_parse. If a fun expression has a name, it must be present and be the same in every of its clauses. The function name shadows the environment of the expression shadowing the environment and it is shadowed by the environment of the clauses' arguments. An unused function name triggers a warning unless it is prefixed by _, just as every variable. Variable _ is allowed as a function name. It is not an error to put a named function in a record field default value. When transforming to Core Erlang, the named fun Fun is changed into the following expression: letrec 'Fun'/Arity = fun (Args) -> let <Fun> = 'Fun'/Arity in Case in 'Fun'/Arity where Args is the list of arguments of 'Fun'/Arity and Case the Core Erlang expression corresponding to the clauses of Fun. This transformation allows us to entirely skip any k_var to k_local transformation in the fun's clauses bodies.
2013-12-12Support non top level letrecs in dialyzerJosé Valim
Dialyzer so far only supported letrecs at the top-level and comprehension-like letrecs (i.e. that were directly applied) in their body. This commit address this issue by storing in the callgraph bound letrec labels pointing to their functions. This information is then used by the dataflow to properly lookup recursive definitions.
2013-12-10Merge tag 'OTP_R16B03'Magnus Lidén
The R16B03 release Conflicts: lib/sasl/vsn.mk
2013-12-09Prepare releaseOTP_R16B03Erlang/OTP
2013-12-09Update preloaded modulesMagnus Lidén
2013-12-09[sasl] Test bugfix in branch 'schlagert/fix_emulator_upgrades'Siri Hansen
OTP-11529
2013-12-07Merge branch 'rickard/garbage_collect/OTP-11388'Rickard Green
* rickard/garbage_collect/OTP-11388: Parallel check_process_code when code_server purge a module Functionality for disabling garbage collection Use asynchronous check_process_code in code_parallel_SUITE Execution of system tasks in context of another process Conflicts: bootstrap/lib/kernel/ebin/hipe_unified_loader.beam erts/preloaded/ebin/erlang.beam erts/preloaded/ebin/erts_internal.beam
2013-12-05Merge branch 'maint'Raimo Niskanen
2013-12-05Merge branch 'schlagert/fix_emulator_upgrades' into maintRaimo Niskanen
* schlagert/fix_emulator_upgrades: Fix boot file generation for intermediate releases.
2013-12-05Merge branch 'maint'Hans Nilsson
2013-12-05inets: Restore ftp test files for the inets_{,sup_}SUITE to not failHans Nilsson
2013-12-05Merge remote-tracking branch 'upstream/maint'Ingela Anderton Andin
2013-12-05Merge branch 'ia/inets/cuddle-with-tests' into maintIngela Anderton Andin
* ia/inets/cuddle-with-tests: inets: Add crypto start check to ssl test cases
2013-12-04Merge branch 'maint'Peter Andersson
2013-12-04Update event handling documentationPeter Andersson
2013-12-04Merge branch 'sverk/crypto-strrchr-bug'Sverker Eriksson
* sverk/crypto-strrchr-bug: crypto: Fix bug in change_basename
2013-12-04Merge branch 'maint'Peter Andersson
2013-12-04Merge branch 'peppe/common_test/r16b03_docs' into maintPeter Andersson
* peppe/common_test/r16b03_docs: Update documentation OTP-10631 OTP-11305 OTP-11523 OTP-11524
2013-12-04Merge branch 'maint'Anders Svensson
2013-12-04Merge branch 'anders/diameter/doc/OTP-11519' into maintAnders Svensson
* anders/diameter/doc/OTP-11519: Assorted doc fixes/tweaks
2013-12-03Update documentationPeter Andersson
2013-12-03crypto: Fix bug in change_basenameSverker Eriksson
strrchr used on non null-terminated string.
2013-12-03Merge branch 'sverk/yb/aes_ige_crypt'Sverker Eriksson
* sverk/yb/aes_ige_crypt: crypto: Update supports/0 for des3_cbf and aes_ige256 crypto: Throw notsup for AES IGE if openssl older than 0.9.8c crypto: Add IGE mode for AES OTP-11522
2013-12-03Assorted doc fixes/tweaksAnders Svensson
2013-12-03Merge branch 'maint'Hans Nilsson
2013-12-03Merge branch 'hans/ssh/cli_delays' into maintHans Nilsson
* hans/ssh/cli_delays: ssh: Fix long cli delays. (Part of OTP-11339, OTP-10953)
2013-12-03ftp: fix sockname dialyzer warning including ftp:sockname/1 bugHans Nilsson
2013-12-03ssh: Fix long cli delays. (Part of OTP-11339, OTP-10953)Hans Nilsson
A step in fixing the tickets.
2013-12-03Merge branch 'maint'Sverker Eriksson
2013-12-03Merge branch 'sverk/crypto-no_answer_from_tc_supervisor' into maintSverker Eriksson
* sverk/crypto-no_answer_from_tc_supervisor: crypto: Add more lazy_eval to avoid no_answer_from_tc_supervisor
2013-12-03Fix boot file generation for intermediate releases.Tobias Schlager
A previous refactoring messed up the paths used in the start.boot file used in intermediate releases generated for emulator upgrades.
2013-12-03Merge branch 'maint'Peter Andersson
2013-12-03Merge branch 'peppe/common_test/hook_skip_failure' into maintPeter Andersson
* peppe/common_test/hook_skip_failure: Fix CT hook pre_end_per_group causing crash when returning {skip,Reason} OTP-11409
2013-12-03inets: Add crypto start check to ssl test casesIngela Anderton Andin
2013-12-03Merge branch 'maint'Rickard Green
* maint: Fix observer retrieval of alloc info
2013-12-03Fix observer retrieval of alloc infoRickard Green
This commit only bump the runtime_tools version. The actual fix is in commit 6cd261deb5fec413eb196b620a4618cfa0781458 (merged to maint branch), but should have been part of this commit.
2013-12-02Merge branch 'maint'Henrik Nord
2013-12-02Merge branch 'nox/crypto-uninitialized-vars' into maintHenrik Nord
* nox/crypto-uninitialized-vars: Fix some uninitialized pointers in crypto OTP-11510
2013-12-02Merge branch 'nox/fix-clang-warnings' into maintHenrik Nord
* nox/fix-clang-warnings: Silence warnings about socklen_t pointers sign in erl_memory Compile in_heapfrag() only in debug mode Silence two warnings about tests being always true Conditionally compile my_gethostbyname_r and my_gethostbyaddr_r Silence a mismatching type pointer warning in ei_resolve Silence warnings about different buffer types in erl_memory erts: Remove unused file winsock_func.h Silence warnings about unused return values in ic Silence a warning in erl_poll about an empty loop body Fix erts_check_off_heap2 assertion Properly mark erl_assert_error as non-returning Remove uninitialized use of new_crr in erl_alloc_util OTP-11517
2013-12-02Merge branch 'nox/diameter-make-fixes' into maintHenrik Nord
* nox/diameter-make-fixes: diameter: Fix silent make rule OTP-11514
2013-12-02Merge branch 'nox/wx-make-fixes' into maintHenrik Nord
* nox/wx-make-fixes: wx: Fix silent make rules OTP-11515
2013-12-02diameter: Fix silent make ruleAnthony Ramine
2013-12-02eunit: Fix silent make ruleAnthony Ramine
2013-12-02wx: Fix silent make rulesAnthony Ramine
2013-12-02crypto: Add more lazy_eval to avoid no_answer_from_tc_supervisorSverker Eriksson
Amendment to f1ebf482e1460d6146d55aa6cab00ab3e11f1741
2013-12-02Silence warnings about socklen_t pointers sign in erl_memoryAnthony Ramine
erl_memory.c:947:7: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign] &saddr_size) != 0) ^~~~~~~~~~~ /usr/include/sys/socket.h:616:74: note: passing argument to parameter here int getsockname(int, struct sockaddr * __restrict, socklen_t * __restrict) ^ erl_memory.c:2613:57: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign] sock = accept(lsock, (struct sockaddr *) &oth_addr, &oth_addr_len); ^~~~~~~~~~~~~ /usr/include/sys/socket.h:610:69: note: passing argument to parameter here int accept(int, struct sockaddr * __restrict, socklen_t * __restrict) ^
2013-12-02Silence two warnings about tests being always trueAnthony Ramine
encode/encode_ulonglong.c:55:25: warning: comparison of unsigned expression >= 0 is always true [-Wtautological-compare] if ((p < 256) && (p >= 0)) { ~ ^ ~ legacy/erl_marshal.c:293:24: warning: comparison of unsigned expression >= 0 is always true [-Wtautological-compare] if ((ul < 256) && (ul >= 0)) { ~~ ^ ~