aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
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-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-02Reference manual: Improve the documentation for external funsBjörn Gustavsson
2011-11-02Test calling a parameterized module within a funBjörn Gustavsson
It is tempting to transform code such as: fun(X) -> M:foo(X) end to: fun M:foo/1 Unfortunately, that transformation is not safe if M happens to be a parameterized module. Add a test case so that we don't attempt to do such an optimization in the future.
2011-11-02beam_loader: Support external funs in the literal poolBjörn Gustavsson
A future release of the compiler might want to treat external funs as literals. Make sure that the loader can cope with an export entry being created from both an entry in the literal pool and from the export table (i.e. if an external fun refers to an exported function in the same module).
2011-11-02beam_load.c: Clarify error message when loading unsupported BEAM filesBjörn Gustavsson
Make it clear for the user what has happened and how to fix it when an attempt is made to load a BEAM file containing new instructions that the current run-time system cannot handle. Suggested-by: Thomas Lindgren
2011-11-01Merge branch 'lukas/kernel/tc_fixes'Lukas Larsson
* lukas/kernel/tc_fixes: Kill nodes inbetween tests
2011-11-01Merge branch 'rc/remote-shell-completion'Henrik Nord
OTP-9673
2011-11-01Merge branch 'lukas/erts/large_float_cmp/OTP-9497'Lukas Larsson
* lukas/erts/large_float_cmp/OTP-9497: Update documentation after changes in integer and float comparison Do small optimisation on platforms with 32 bit Eterm Add tests for equality checking Optimize comparison of huge floats and smaller bignums Add tests for comparing large floats and small bignums Cleanup double_to_bignum conversion code Update size of tmp cmp bignum buffer Expand tests for float and number comparison Update heauristic to work on halfword Add heauristics bignum vs float checks Optimise bugnum and small comparison Add float vs integer comparison tests Update integer and floating point number comparisons
2011-11-01Merge branch 'lukas/megaco/remove_driver_warning/OTP-9672'Lukas Larsson
* lukas/megaco/remove_driver_warning/OTP-9672: Remove the warning that driver option is replaced by nif
2011-10-28Merge branch 'siri/observer/ttb-test-cleanup-slave-nodes/OTP-9644'Siri Hansen
* siri/observer/ttb-test-cleanup-slave-nodes/OTP-9644: Adjust ttb_SUITE to work better on windows Cleanup after testcases in ttb_SUITE
2011-10-28Merge branch 'siri/observer/close-ip-to-file-trace-port/OTP-9665'Siri Hansen
* siri/observer/close-ip-to-file-trace-port/OTP-9665: Close ip_to_file trace port in ttb:stop
2011-10-27Remove unused */doc/src/make.dep filesBjörn Gustavsson
These dependency files was once used when building the documentation, but are no longer needed.
2011-10-27doc Makefiles: Eliminate DOCSUPPORT ifdefsBjörn Gustavsson
Some applications still have support for an ancient documentation build system. Eliminate the DOCSUPPORT define in otp.mk.in and the not taken arm of the ifdefs in the Makefiles.
2011-10-27Merge branch 'bjorn/eliminate-regexp-usage'Björn Gustavsson
* bjorn/eliminate-regexp-usage: erl_tidy: Eliminate two references to 'regexp' in the documentation erts/z_SUITE: Eliminate use of deprecated regexp module erts/nt_SUITE: Eliminate use of deprecated regexp module erl_html_tools: Eliminate mention of deprecated regexp module erl_interface tests: Eliminate use of deprecated regexp module tools test suite: Eliminate compilation warnings for the eed module tools test suite: Eliminate use of deprecated regexp module xmerl test suite: Eliminate use of deprecated regexp module appmon: Eliminate use of deprecated regexp module tv: Eliminate use of deprecated regexp module gs: Eliminate use of deprecated regexp module inviso: Eliminate use of deprecated regexp module
2011-10-27erl_tidy: Eliminate two references to 'regexp' in the documentationBjörn Gustavsson
2011-10-27erts/z_SUITE: Eliminate use of deprecated regexp moduleBjörn Gustavsson
2011-10-27erts/nt_SUITE: Eliminate use of deprecated regexp moduleBjörn Gustavsson
2011-10-27erl_html_tools: Eliminate mention of deprecated regexp moduleBjörn Gustavsson
2011-10-27erl_interface tests: Eliminate use of deprecated regexp moduleBjörn Gustavsson
2011-10-27tools test suite: Eliminate compilation warnings for the eed moduleBjörn Gustavsson
2011-10-27tools test suite: Eliminate use of deprecated regexp moduleBjörn Gustavsson
Also extend the test suite so that the changed code will be executed.
2011-10-27xmerl test suite: Eliminate use of deprecated regexp moduleBjörn Gustavsson
2011-10-27Close ip_to_file trace port in ttb:stopSiri Hansen
This is a relay port opened from the IP trace client when tracing diskless nodes. The port was not closed properly in ttb:stop, which caused problems on windows since the file could not be moved to the upload directory before the file descriptor was closed.
2011-10-27Adjust ttb_SUITE to work better on windowsSiri Hansen
There is a problem with long paths on windows, which causes some of the ttb logs in this suite not to be created. To go around this, the original priv_dir from the Config is no longer used for writing the logs. Instead a new priv_dir is created in the data_dir - which makes the path much shorter. There is also a problem caused by the lower resolution of the system clock on windows. It makes the test cases for sorting trace messages fail. To get around this a sleep of 2 ms is added in "appropriate places", and also the messages sent between client and server when creating the trace log for these test cases is now better synched. The cleanup functions, which terminate slave nodes, was called in end_per_testcase. However, it seems to be a bug in the test_server which causes this to hang if the test case failed with a timetrap_timeout. Workaround for this is to do the cleanup in init_per_testcase instead - i.e. make sure that nodes that are to be started by the test case do not already live when the test case starts.
2011-10-27Cleanup after testcases in ttb_SUITESiri Hansen
Slave nodes were earlier stopped inside each test case. If a test case failed before this point, a slave node would survive and it might interfere with the next test case causing multiple failures. This commit moves the stopping of slave nodes out to a separate function for each test case - called during end_per_testcase. A minor correction is also done in ttb:ensure_no_overloaded_nodes - the reply message sent back from the ttb process is tagged so only the expected message will be picked from the message queue. Otherwise, for instance nodedown messages from the monitoring of slave nodes (by the test cases) could be received here. Finally, the sleep timer when waiting for trace messages to arrive over tcp/ip is extended a bit since test cases sometimes failed with missing trace messages here.
2011-10-27Merge branch ↵Siri Hansen
'siri/runtime_tools/dbg-flush-trace-file-driver-before-stop/OTP-9651' * siri/runtime_tools/dbg-flush-trace-file-driver-before-stop/OTP-9651: Flush trace file driver before stopping dbg
2011-10-26appmon: Eliminate use of deprecated regexp moduleBjörn Gustavsson
2011-10-26tv: Eliminate use of deprecated regexp moduleBjörn Gustavsson
2011-10-26gs: Eliminate use of deprecated regexp moduleBjörn Gustavsson
2011-10-26inviso: Eliminate use of deprecated regexp moduleBjörn Gustavsson
2011-10-25Merge branch 'egil/eprof-doc'Björn-Egil Dahlberg
* egil/eprof-doc: otp: Update profiling doc with eprof eprof: Fix invalid references to removed functions OTP-9656
2011-10-24otp: Update profiling doc with eprofBjörn-Egil Dahlberg
2011-10-24fix handling of block_decipher/5 failureAndreas Schultz
A wrong decryption key would cause a badmatch in generic_block_cipher_from_bin/2. The try in block_decipher/5 was probably intendend to deal with that, but was misplace for this. Additionaly, generating a failure alert erly, without computing the record MAC, creates vector for a timing attack on CBC padding (for details check TLS 1.2 RFC 5246, Sect. 6.2.3.2.). This attach vector and the counter meassure applies to all SSL/TLS versions. As a counter messure, compute the MAC even when decryption or padding checks fail. A invalid padding will force a MAC failure by intentionaly invalidating the content.
2011-10-21eprof: Fix invalid references to removed functionsBjörn-Egil Dahlberg
2011-10-21Flush trace file driver before stopping dbgSiri Hansen
Earlier dbg:stop only did erlang:trace_delivered and did not flush the trace file driver. Therefore there could still be trace messages that were delivered to the driver (guaranteed by erlang:trace_delivered) but not yet written to the file. This commit adds this flushing on each node before the dbg process terminates.
2011-10-21Merge branch 'anders/diameter/make/OTP-9638'Anders Svensson
* anders/diameter/make/OTP-9638: Dumb down release target to Solaris /usr/ucb/install Dumb down opt/release targets to make 3.80 Minor tweaks and cleanup Need absolute -pa for bootstrap build Simpler release targets for src subdirectories Use secondary expansion for src subdirectory rules One makefile for src build instead of recursion Remove app dependency on compiler to avoid forced recompilation Move diameter_exprecs to compiler directory
2011-10-21Merge branch 'anders/diameter/dictionaries/OTP-9641'Anders Svensson
* anders/diameter/dictionaries/OTP-9641: Add diameter_make as compilation interface Update documentation Don't require -i directory to exist Allow @inherits to be set/cleared with diameterc Allow @name/@prefix to be set with diameterc Dependency fix Move dictionaries into own directory and rename Whitespace fixes @result_code -> @define in dictionary files
2011-10-21Merge branch 'hb/stdlib/fix_testsuites/OTP-9637'Hans Bolinder
* hb/stdlib/fix_testsuites/OTP-9637: Fix a few tests that used to fail on the HiPE platform
2011-10-21Fix a few tests that used to fail on the HiPE platformHans Bolinder
2011-10-20Merge branch 'rc/epp-include-path-fix'Henrik Nord
* rc/epp-include-path-fix: Make epp search directory of current file first when including another file OTP-9645
2011-10-20Merge branch 'hl/fix-ms_transform-scope-warn'Henrik Nord
* hl/fix-ms_transform-scope-warn: ms_transform: Fix incorrect `variable shadowed' warnings OTP-9646
2011-10-20Merge branch 'cf/simple_one_for_one_shutdown'Henrik Nord
* cf/simple_one_for_one_shutdown: Explain how dynamic child processes are stopped Stack errors when dynamic children are stopped Explicitly kill dynamic children in supervisors Conflicts: lib/stdlib/doc/src/supervisor.xml OTP-9647
2011-10-20Merge branch 'cf/supervisor_shutdown_infinity'Henrik Nord
* cf/supervisor_shutdown_infinity: Add a warning to docs about workers' shutdown strategy Allow an infinite timeout to shutdown worker processes OTP-9648
2011-10-20Merge branch 'bjorn/unicode-noncharacters/OTP-9624'Björn Gustavsson
* bjorn/unicode-noncharacters/OTP-9624: Allow noncharacter code points in unicode encoding and decoding
2011-10-20Merge branch 'bjorn/parallel-make/OTP-9451'Björn Gustavsson
* bjorn/parallel-make/OTP-9451: corba applications: Fix broken 'make clean' ic documentation: Support parallel make Revert "ic documentation: Support parallel make"
2011-10-19Dumb down release target to Solaris /usr/ucb/installAnders Svensson
2011-10-19Dumb down opt/release targets to make 3.80Anders Svensson
2011-10-19Minor tweaks and cleanupAnders Svensson
Tweak some comments and variable names, move things around a bit (default src target is now opt, not debug), only clean what's built, use +warn_export_vars.