aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2011-11-11Merge branch 'egil/fix-release_tests-path'Björn-Egil Dahlberg
* egil/fix-release_tests-path: otp: Add paths to erlc for release_tests
2011-11-10Merge branch 'siri/stdlib/badarg-extract-child/OTP-9669'Siri Hansen
* siri/stdlib/badarg-extract-child/OTP-9669: Handle undefined pid when reporting error from supervisor
2011-11-10Merge branch 'rj/fix-debugger-msgs'Henrik Nord
* rj/fix-debugger-msgs: Fix "OK" spelling in debugger messages and variables Fix debugger message with wx OTP-9699
2011-11-10Merge branch 'rj/fix-remove-exec-bit'Henrik Nord
* rj/fix-remove-exec-bit: Remove exec bit from files: info files, dat, bat Remove exec bit from files related to: XML, make, C Remove exec bit from: erl, hrl, xml, html, asn, gif, xpm OTP-9698
2011-11-10Merge branch 'rj/fix-erlang-doc-style'Henrik Nord
* rj/fix-erlang-doc-style: Fixes module erlang doc style: option description OTP-9697
2011-11-10Merge branch 'pg/fix-cover-leftover-down-msg'Henrik Nord
* pg/fix-cover-leftover-down-msg: [cover]fix leftover {'DOWN', ..} msg in callers queue OTP-9694
2011-11-10Merge branch 'rj/fix-doctypos'Henrik Nord
* rj/fix-doctypos: Add missing spaces in the Reference Manual distributed section Add missing parenthesis in heart doc Fix typo in the Reference Manual macros section OTP-9693
2011-11-10Merge branch 'ss/re-split-doc-bug'Henrik Nord
* ss/re-split-doc-bug: Fix re:split spec not to accept option 'global' OTP-9691
2011-11-10Remove exec bit from files: info files, dat, batRicardo Catalinas Jiménez
2011-11-10Remove exec bit from files related to: XML, make, CRicardo Catalinas Jiménez
2011-11-10Remove exec bit from: erl, hrl, xml, html, asn, gif, xpmRicardo Catalinas Jiménez
2011-11-09Merge branch 'sverk/bif-args/OTP-9662'Sverker Eriksson
* sverk/bif-args/OTP-9662: erts,hipe: Limited support for hipe cross compilation erts-hipe: Change THE_NON_VALUE for HiPE enabled debug emulator erts-hipe: Enable debug compiled hipe-VM with lock checker erts-hipe: Rename fail_bif_interface_0 to standard_bif_interface_0 erts-hipe: Deliberate leak of native fun entries erts-hipe: Fix new trap conventions for x86, amd64 and ppc Store the trap address in p->i Store the trap arguments in the X register array erts-hipe: Make some primops use new BIF calling convention erts-hipe: Adapt generated BIF wrappers for new calling convention erts-hipe: Remove obscuring macros in generated assembler code erts-hipe: Make hipe enabled emulator compile with new BIF calls Simplify the instructions for calling BIFs Change the calling convention for BIFs Use the proper macros in all BIFs Conflicts: erts/emulator/beam/bif.h erts/emulator/beam/erl_bif_info.c
2011-11-09erts,hipe: Limited support for hipe cross compilationSverker Eriksson
Normally hipe assumes that generated native code will be executed on the same emulator as the hipe compiler is running on. This commit allows you to build a hipe "cross-compiler" for a different configured emulator (but for same architecture). Example: > cd lib/hipe > make clean > make XCOMP=yes FLAVOR=smp TYPE=debug This hipe compiler will generate code to be executed on the debug compiled smp-emulator at $ERL_TOP.
2011-11-09Merge branch 'sverk/enif_inspect-memleak/OTP-9668'Sverker Eriksson
* sverk/enif_inspect-memleak/OTP-9668: erts: Fix memory leak of enif_inspect_* on independent environment
2011-11-09otp: Add paths to erlc for release_testsBjörn-Egil Dahlberg
erlc wants a path to a current compiler. Add search paths for compiler in src tree and bootstrap compiler.
2011-11-09Fix "OK" spelling in debugger messages and variablesRicardo Catalinas Jiménez
Simple code refactor in the debugger: renames all the occurrences of "Ok" to "OK" in the code, variable names and strings. This improves the consistency of the code and follows the GTK UI where "OK" is always used.
2011-11-09Fix debugger message with wxRicardo Catalinas Jiménez
Add missing spaces when using wx UI. The gs UI didn't need them. Change the exclamation of the message by a dot, more formal style for a UI message.
2011-11-09Add missing spaces in the Reference Manual distributed sectionRicardo Catalinas Jiménez
In the HTML version of the doc those spaces are necessary to separate those words.
2011-11-09Add missing parenthesis in heart docRicardo Catalinas Jiménez
2011-11-09Fix typo in the Reference Manual macros sectionRicardo Catalinas Jiménez
The module is not added in a function call inside a macro.
2011-11-08Merge branch 'bjorn/line-numbers/OTP-9468'Björn Gustavsson
* bjorn/line-numbers/OTP-9468: beam_type: Improve FP optimizations in the presence of line numbers
2011-11-08Merge branch 'bjorn/create-less-garbage'Björn Gustavsson
* bjorn/create-less-garbage: Optimize filename:basename/1 to produce less garbage Optimize filename:extension/1 to produce less garbage sys.c for Unix: Undo caching of utsname in os_flavor() Pre-build the tuples returned by os:type/0 and os:version/0
2011-11-07Merge branch 'egil/fix-compiler-warnings'Björn-Egil Dahlberg
* egil/fix-compiler-warnings: erts: Remove unused variable in enif_make_binary erts: Remove debug variable in list_to_binary erts: Remove cp on exiting and trapping processes erts: Remove debug variables in erl_db erts: Remove dead code in efile_drv erts: Remove lock_check debug variables erts: Remove unused variable in ttsl_drv erts: "initialized" is only used with CHLDWTHR erts: remove debug variables in beam_bp
2011-11-07Merge branch 'ta/nif-variadic-funs'Henrik Nord
OTP-9675
2011-11-07Minor improvemnts to the emasurement tool mstone1.Micael Karlberg
OTP-9604 The profiling test tool has been rewritten. H�kan Mattsson OTP-9679 Merge branch 'bmk/megaco/r15_integration'
2011-11-07Merge branch 'master' of super:otp into bmk/megaco/r15_integrationMicael Karlberg
2011-11-07erts: Remove unused variable in enif_make_binaryBjörn-Egil Dahlberg
2011-11-07erts: Remove debug variable in list_to_binaryBjörn-Egil Dahlberg
2011-11-07erts: Remove cp on exiting and trapping processesBjörn-Egil Dahlberg
2011-11-07erts: Remove debug variables in erl_dbBjörn-Egil Dahlberg
2011-11-07erts: Remove dead code in efile_drvBjörn-Egil Dahlberg
2011-11-07erts: Remove lock_check debug variablesBjörn-Egil Dahlberg
2011-11-07erts: Remove unused variable in ttsl_drvBjörn-Egil Dahlberg
2011-11-07erts: "initialized" is only used with CHLDWTHRBjörn-Egil Dahlberg
2011-11-07erts: remove debug variables in beam_bpBjörn-Egil Dahlberg
2011-11-07Optimize filename:basename/1 to produce less garbageBjörn Gustavsson
In most cases, we can simply return a tail of the flattened filename.
2011-11-07Update primary bootstrapBjörn Gustavsson
2011-11-07Merge branch 'bjorn/fun-improvements/OTP-9667'Björn Gustavsson
* bjorn/fun-improvements/OTP-9667: sys_pre_expand: Remove incorrect comment compiler: Eliminate use of deprecated erlang:hash/2 beam_asm: Fix broken NewIndex in fun entries beam_asm: Strenghten the calculation of Uniq for funs
2011-11-07Merge branch 'bjorn/external-funs/OTP-9643'Björn Gustavsson
* bjorn/external-funs/OTP-9643: EEP-23: Allow variables in fun M:F/A Reference manual: Improve the documentation for external funs Test calling a parameterized module within a fun beam_loader: Support external funs in the literal pool
2011-11-07sys_pre_expand: Remove incorrect commentBjörn Gustavsson
sys_pre_expand does not keep track of used or new variables (and have not done since about the time Core Erlang was introduced).
2011-11-07compiler: Eliminate use of deprecated erlang:hash/2Björn Gustavsson
Now that beam_asm computes the Index and Uniq values for funs, there is no need to compute those values in the sys_pre_expand and v3_kernel modules, thus eliminating the calls to the deprecated erlang:hash/2 function. It would be tempting to stop generating the name for the fun in sys_pre_expand so that we did not have to add the Info field to a tuple. But: * The debugger depends on the name being there. (Simple solution: Let the debugger generate the name itself.) * When a fun has been inlined into another function, the fun name in 'id' annotation will be used to notice the inlining and change the final clause of the top-level case from generating a 'function_clause' exception to a case_clause exception. (Possible workaround: Have the inliner set an inlined attribute on functions that have been inlined, or have the inliner rewrite 'function_clause' exceptions itself.)
2011-11-07beam_asm: Fix broken NewIndex in fun entriesBjörn Gustavsson
The calculation of the NewIndex field in fun entries is broken: the sys_pre_expand and v3_kernel modules keep separate index counters starting at zero; thus there is no guarantee that each fun within a module will have its own unique NewIndex. We don't really need the NewIndex any more (see below), but since we do need the NewUniq field, we should fix NewIndex for cleanliness sake. The simplest way is to assign NewIndex as late as possible, namely in beam_asm, and to set it to the same value as Index. Historical Note: Why NewIndex Was Introduced There was once an idea that the debugger should be able to interpret only a single function in a module (for speed). To make sure that interpreted funs could be called from BEAM code and vice versa, the fun identification must be visible in the abstract code. Therefore a NewIndex field was introduced in each fun in the abstract code. However, it turned out that interpreting single functions does not play well with aggressive code optimization. For example, in this code: f() -> X = 1, fun() -> X+2 end. the variable X will seem to be free in the fun, but an aggressive optimizer will replace X with 1 in the fun; thus the fun will no longer have any free variables. Therefore, the debugger will always interpret entire modules.
2011-11-07beam_asm: Strenghten the calculation of Uniq for funsBjörn Gustavsson
Funs are identified by a triple, <Module,Uniq,Index>, where Module is the module name, Uniq is a 27 bit hash value of some intermediate representation of the code for the fun, and index is a small integer. When a fun is loaded, the triple for the fun will be compared to previously loaded funs. If all elements in the triple in the newly loaded fun are the same, the newly loaded fun will replace the previous fun. The idea is that if Uniq are the same, the code for the fun is also the same. The problem is that Uniq is only based on the intermediate representation of the fun itself. If the fun calls local functions in the same module, Uniq may remain the same even if the behavior of the fun has been changed. See http://erlang.org/pipermail/erlang-bugs/2007-June/000368.htlm for an example. As a long-term plan to fix this problem, the NewIndex and NewUniq fields was added to each fun in the R8 release (where NewUniq is the MD5 of the BEAM code for the module). Unfortunately, it turns out that the compiler does not assign unique value to NewIndex (if it isn't tested, it doesn't work), so we cannot use the <Module,NewUniq,NewIndex> triple as identification. It would be possible to use <Module,NewUniq,Index>, but that seems ugly. Therefore, fix the problem by making Uniq more unique by taking 27 bits from the MD5 for the BEAM code. That only requires a change to the compiler. Also update a test case for cover, which now fails because of the stronger Uniq calculation. (The comment in test case about why the Pid2 process survived is not correct.)
2011-11-07EEP-23: Allow variables in fun M:F/ABjörn Gustavsson
Currently, the external fun syntax "fun M:F/A" only supports literals. That is, "fun lists:reverse/1" is allowed but not "fun M:F/A". In many real-life situations, some or all of M, F, A are not known until run-time, and one is forced to either use the undocumented erlang:make_fun/3 BIF or to use a "tuple fun" (which is deprecated). EEP-23 suggests that the parser (erl_parse) should immediately transform "fun M:F/A" to "erlang:make_fun(M, F, A)". We have not followed that approach in this implementation, because we want the abstract code to mirror the source code as closely as possible, and we also consider erlang:make_fun/3 to be an implementation detail that we might want to remove in the future. Instead, we will change the abstract format for "fun M:F/A" (in a way that is not backwards compatible), and while we are at it, we will move the translation from "fun M:F/A" to "erlang:make_fun(M, F, A)" from sys_pre_expand down to the v3_core pass. We will also update the debugger and xref to use the new format. We did consider making the abstract format backward compatible if no variables were used in the fun, but decided against it. Keeping it backward compatible would mean that there would be different abstract formats for the no-variable and variable case, and tools would have to handle both formats, probably forever. Reference: http://www.erlang.org/eeps/eep-0023.html
2011-11-07OTP-9683Ingela Anderton Andin
Merge branch 'ssl-cbc-fix' * ssl-cbc-fix: fix handling of block_decipher/5 failure
2011-11-04Minor improvements to the meas tools.Micael Karlberg
OTP-9604 Merge branch 'bmk/megaco/20111003/improving_mstone1/OTP-9604' into bmk/megaco/r15_integration Conflicts: lib/megaco/doc/src/notes.xml
2011-11-04The profiling test tool has been rewritten.Micael Karlberg
H�kan Mattsson. OTP-9679 Merge branch 'bmk/megaco/improving_profiling_tool/OTP-9679' into bmk/megaco/r15_integration
2011-11-04Updated release notes and appup file.Micael Karlberg
OTP-9679
2011-11-04beam_type: Improve FP optimizations in the presence of line numbersBjörn Gustavsson
Allow line/1 instructions to be part of a sequence of floating point instructions to avoid outputting fclearerror / fcheckerror around every floating point instruction.
2011-11-02Reference manual: Improve the documentation for external funsBjörn Gustavsson