aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2010-01-19Merge branch 'bg/compiler-beam_validator' into ccase/r13b04_devErlang/OTP
* bg/compiler-beam_validator: beam_validator: fix incorrect assumptions about GC guard BIFs OTP-8378 In rare circumstances when using garbaging collecting guard BIFs, the validation pass (beam_validator) would signal that the code was unsafe, when it in fact was correct. (Thanks to Kiran Khaladkar.)
2010-01-19Merge branch 'fh/common_test-includes' into ccase/r13b04_devErlang/OTP
* fh/common_test-includes: make it possible to include ct.hrl using include_lib Include test_servers's include files in the bootstrap OTP-8379 It is now possible to include the ct.hrl using the -include_lib directive. (Thanks to Fred Hebert.)
2010-01-18Don't return a false {error,eexist} in filelib:ensure_dir/1Tuncer Ayaz
This is about the non-atomicity of filelib:ensure_dir/1. When using filelib:ensure_dir/1 from multiple processes to create the same path or parts of the same directory structure (which happens with rebar's worker processes) it happens quite a lot that between a file:read_file_info/1 and file:make_dir/1 one of the other procs has already created the directory we want to create. mkdir(1) says one of the following for -p depending on which Unix like system you're on: "no error if existing" "no error will be reported if a directory given as an operand already exists" I've seen more than one Erlang project where the return value of ensure_dir/1 is ignored completely. To eliminate the race condition, call file:make_dir/1 without first testing whether the directory exists. If it succeeds everything is fine. Otherwise, if the error code is {error,eexists}, check whether the directory exists. If it does, everything is fine; if not, return {error,eexist} (which indicates that there exists a regular file with the same name, or (more unlikely) that another process removed the directory after the call to file:make_dir/1). Signed-off-by: Tuncer Ayaz <[email protected]>
2010-01-18Fix annoying failing statistics_SUITE test casesBjörn Gustavsson
In an SMP emulator, two of the test cases in statistics_SUITE frequently fail. Remove the runtime_zero_update/1 test case, because you can't really expect an SMP emulator not to spend any CPU time at all even if no Erlang process is active. Adjust the runtime_update/1 test case to not fail if the measured times are note close enough. It will still fail if statistics(runtime) would fail or return the wrong type.
2010-01-17make it possible to include ct.hrl using include_libFred T-H
It is major annoyance that ct.hrl cannot be included using "-include_lib". The problem is that ct.hrl in turn includes the test_server include files using "-include". Fix it by using "-include_lib" in ct.hrl.
2010-01-15OTP-8016, OTP-8056, OTP-8103, OTP-8106, OTP-8312, OTP-8315, OTP-8327, OTP-8349,Micael Karlberg
OTP-8351, OTP-8359 & OTP-8371.
2010-01-15Include test_servers's include files in the bootstrapBjörn Gustavsson
To make it possible to use -include_lib to include the include files for test_server, those include files must be included in the bootstrap directory.
2010-01-15Merge branch 'egil/binary-gc' into ccase/r13b04_devErlang/OTP
* egil/binary-gc: Add documentation for binary heap size settings. Add tracing capabilities for binary virtual heap Add min heap size start options to beam and erl Improve binary garbage collection OTP-8370 The default settings for garbage collection of binaries has been adjusted to be less aggressive than in R13B03. It is now also possible configure the settings for binary GC. See the documentation for spawn_opt/2-5, erlang:system_info/1, erlang:system_flag/2, process_flag/2-3, erlang:trace/3, and the documenation for erl for the new command line options +hms and +hmbs.
2010-01-15beam_validator: fix incorrect assumptions about GC guard BIFsBjörn Gustavsson
The beam_validator pass incorrectly assumes that a GC guard BIF (such as length/1) may first do a garbage collection and then fail. That assumption is not correct (guards BIF only do garbage collection when it is known that the BIF call will succeed), and will cause the compiler to reject valid programs. Modify the beam_validator to assume that if the branch is taken for a gc_bif instruction, all registers are unchanged and no garbage collection has occurred. Also add a comment in the emulator about that assumption.
2010-01-15Remove old SSL dependencyNiclas Eklund
2010-01-14OTP-8016, OTP-8056, OTP-8103, OTP-8106, OTP-8312, OTP-8315, OTP-8327, OTP-8349,Micael Karlberg
OTP-8351, OTP-8359 & OTP-8371.
2010-01-14Remove old SSL dependencyNiclas Eklund
2010-01-13OTP-8016, OTP-8056, OTP-8103, OTP-8106, OTP-8312, OTP-8315, OTP-8327, OTP-8349,Micael Karlberg
OTP-8351, OTP-8359 & OTP-8371.
2010-01-13OTP-8016 TBDMicael Karlberg
2010-01-13OTP-8016, OTP-8056, OTP-8103, OTP-8106, OTP-8312, OTP-8315, OTP-8327, OTP-8349,Micael Karlberg
OTP-8351, OTP-8359 & OTP-8371.
2010-01-13OTP-8366 Type specifications (-type and -spec) are now described in theKenneth Lundin
reference manual.<br/>Note!, they are still preliminary.
2010-01-13Add documentation for binary heap size settings.Björn-Egil Dahlberg
Documentation of min_heap_size and min_bin_vheap size for: * spawn_opt/2, spawn_opt/3, spawn_opt/4, spawn_opt/5 * erlang:system_flag/2 * erlang:system_info/1 * process_flag/2 * process_info/2 * erlang:trace/3 Documentation for the new beam start arguments: +hms Size, Default minimum heap size for processes. +hmbs Size, Default minimum binary virtual heap size.
2010-01-13Add tracing capabilities for binary virtual heapBjörn-Egil Dahlberg
2010-01-13Add min heap size start options to beam and erlBjörn-Egil Dahlberg
The erl (and beam) start arguments are extended with the following options: * +hms Size, sets the default minimum heap size for processes. * +hmbs Size, sets the default minimum binary virtual heap size for processes. The previous +h Size argument can still be used for backward compatibility purposes.
2010-01-13Improve binary garbage collectionBjörn-Egil Dahlberg
The garbage collector in r13b03 is too aggressive in some cases. This commit raises the level of default initial allowed binary garbage (virtual heap for binaries) before collecting from 233 words to 46368 words (181 kB on 32-bit). A new option, min_bin_vheap_size, has been added to spawn_opt, system_flag and process_flag can be used to change the default values. The option can also be used with system_info and process_info to inspect the values. For symmetry the option min_heap_size has been added to the above functions where it was previously missing. Add testcases for min_bin_vheap_size and min_heap_size for functions process_flag/2, process_info/2, system_info/2 and spawn_opt/2.
2010-01-13OTP-8240 Improved GC performance after BIF/NIF call when a lot of heapSverker Eriksson
fragments was created. This will mainly benefit NIFs that return large compound terms.
2010-01-13Add test suite for the ssl applicationDan Gudmundsson
2010-01-13Added a public_key:pkix_transform/2 instead and used it from ssl.Dan Gudmundsson
2010-01-13Merge branch 'bg/otp_build-improvements' into ccase/r13b04_devErlang/OTP
* bg/otp_build-improvements: Fix spelling, remove obsolete command Support updating preloaded files in a git repository Support updating the primary bootstrap in a git repository Determine which VCS is being used stdlib makefile: Add explicit rule OTP-8369: bg/otp_build-improvements
2010-01-12Minor code cleanupDan Gudmundsson
2010-01-12new_ssl fix session reuseWil Tan
When an SSL client presents a previous session ID, the server should either honour the request to reuse the parameters previously negotiated for the given session ID, or ignore the request and generate a new session ID. In this situation, new_ssl tries to complete the handshake by sending the client a "Finished" handshake message, which violates the SSL/TLS specs. It should instead send a ChangeCipherSpec message before sending the FInished message. This patch fixes it.
2010-01-12Code cleanupDan Gudmundsson
2010-01-12Send CA list during Certificate Request in new_sslWil Tan
When requesting for client certificate, an SSL/TLS server may send a list of the distinguished names of acceptable certificate authorities. OpenSSL does this by default.
2010-01-12Merge branch 'jv/binary_to_term-opts' into ccase/r13b04_devErlang/OTP
* jv/binary_to_term-opts: document ErtsExternalDist flags and CON_ID mask add options to binary_to_term OTP-8367 There is new erlang:binary_to_binary/2 BIF that takes an option list. The option safe can be used to prevent creation of resources that are not garbage collected (such as atoms). (Thanks to Jayson Vantuyl.)
2010-01-12Merge branch 'tc/premodern-fpe' into ccase/r13b04_devErlang/OTP
* tc/premodern-fpe: Add -D_XOPEN_SOURCE to CPPFLAGS on Darwin platforms Test for reliable fpes on Darwin platforms without DARWIN_MODERN_MCONTEXT OTP-8368 The configure test for reliable floating point exceptions has been update to work on modern versions of Mac OS X. (Thanks to Trannie Carter.)
2010-01-12Fix spelling, remove obsolete commandBjörn Gustavsson
2010-01-12Support updating preloaded files in a git repositoryBjörn Gustavsson
The commands in otp_build for updating the checked-in preloaded modules only works in ClearCase. Add support updating the preloaded files in a git repository as well. Check the $version_controller variable so that we can have "otp_build update_preloaded" do different things depending on whether it is run in a ClearCase view or a git repository. When run in a git repository, "otp_build update_preloaded" will update and commit the preloaded modules (to undo the updating of the preloaded modules, do "git reset --hard HEAD^"). Update the usage text to only show the commands relevant to the kind of VCS it is being run in.
2010-01-12Support updating the primary bootstrap in a git repositoryBjörn Gustavsson
The commands in otp_build for updating the checked-in primary bootstrap only works in ClearCase. Add support updating the bootstrap in a git repository as well. Check the $version_controller variable so that we can have "otp_build update_primary" do different things depending on whether it is run in a ClearCase view or a git repository. When run in a git repository, "otp_build update_primary" will update and commit the bootstrap (to undo the updating of the bootstrap, do "git reset --hard HEAD^"). Update the usage text to only show the commands relevant to the kind of VCS it is being run in.
2010-01-12Determine which VCS is being usedBjörn Gustavsson
We want to add the ability for otp_build to determine which version control system (VCS) is being used, so that the commands for updating the primary bootstrap and pre-loaded modules can be updated to do different things depending on the VCS. In the beginning of the otp_build script, set the variable "version_controller" to either "none" (for no VCS), "git", or "clearcase".
2010-01-12stdlib makefile: Add explicit ruleBjörn Gustavsson
When building a primary bootstrap in a git repository, the file bootstrap/lib/stdlib/egen/erl_parse.erl would not get updated. With clearmake, this file is updated. Adding an explicit rule for the file make it it work with GNU Make. While at it, remove an out-commented rule.
2010-01-11Merge branch 'kj/epmd-port2resp-trunc-extra' into ccase/r13b04_devErlang/OTP
* kj/epmd-port2resp-trunc-extra: Handle "extra" field according to specs in ALIVE2_REQ and PORT2_RESP. OTP-8361 EPMD now correctly handles the extra data field which can be given in the ALIVE2_REQ request and retrieved in the PORT2_RESP response. (Thanks to Klas Johansson.)
2010-01-11Merge branch 'dgud/dbg_mac_menu' into ccase/r13b04_devErlang/OTP
* dgud/dbg_mac_menu: Dbg: Expand the module listbox when window grows. Dbg: Cut variable bindings after 80 chars. Dbg: Fixed documentation links to the new index.html Dbg Fixed mac gui issues OTP-8346 Miscellaneous corrections of the WX version of the debugger.
2010-01-08document ErtsExternalDist flags and CON_ID maskJayson Vantuyl
In the ErtsExternalDist structure, the flags field holds a combination of flags (tagged into the high bits) and the connection ID (in the low bits). This wasn't clearing indicated anywhere. This patch adds a comment before the flags and mask that indicates their use and relation to each other. This will help guide people through the code and reduce the likelihood that someone will add a flag without adjusting the mask.
2010-01-08add options to binary_to_termJayson Vantuyl
term_to_binary and binary_to_term are powerful tools that can be used easily in lieu of a custom binary network protocol. Unfortunately, carefully crafted data can be used to exhaust the memory in an Erlang node by merely attempting to decode binaries. This makes it unsafe to receive data from untrusted sources. This is possible because binary_to_term/1 will allocate new atoms and new external function references. These data structures are not garbage collected. This patch implements the new form of binary_to_term that takes a list of options, and a simple option called 'safe'. If specified, this option will cause decoding to fail with a badarg error if an atom or external function reference would be allocated. In the general case, it will happily decode any Erlang term other than those containing new atoms or new external function references. However, fun, pid, and ref data types can embed atoms. They might fail to decode if one of these embedded atoms is new to the node. This may be an issue if encoded binaries are transferred between nodes or persisted between invocations of Erlang.
2010-01-07OTP-8358 A race bug affecting pg2:get_local_members/1 has been fixed. TheHans Bolinder
bug was introduced in R13B03.
2010-01-07Shell tab completion now works for quoted module and function namesUlf Wiger
While quoted atoms in module and function names are not common, they are allowed, and sometimes quite useful. In OTP, they are commonplace in ORBER, and can also be found in XMERL. Tab completion needs to recognize quoted atoms and act accordingly. This patch includes changes in edlin:over_word/1. It should be noted that these changes also affect the 'kill word', 'forward word' and 'backward word' commands in the line editor. The author thinks that the changes are for the better. There are also minor changes in edlin_expand.erl - mainly in regard to the conversion between atoms and strings. Another change is that the list of matches is now sorted, partly to simplify testing, but also because it seems sensible to present the matches that way. A test suite, edlin_expand_SUITE, has been added to the stdlib test suites. (amended 2009-12-18 to actually include the modified files too and again to rename the capitalized test modules for portability.)
2010-01-06Update preloaded filesBjörn Gustavsson
2010-01-06Mark concat_binary/1 as deprecatedBjörn Gustavsson
2010-01-04Old release notes removedNiclas Eklund
2009-12-23Updated version and release noteNiclas Eklund
2009-12-22Handle "extra" field according to specs in ALIVE2_REQ and PORT2_RESP.Klas Johansson
Don't let the length field pollute the value of the "extra" field in ALIVE2_REQ. Extra was read, starting at the second byte of the two byte length field, which meant that it was included in the result and the last byte of the value was skipped: if "extra" is <<1, 2>>, return <<0, 2, 1, 2>> not <<0, 2, 2, 1>> Increment the offset correctly when sending PORT2_RESP, in order to make sure the "extra" field won't be truncated: if "extra" is <<>>, return <<0, 0>> not <<0>> if "extra" is <<1, 2>>, return <<0, 2, 1, 2>> not <<0, 2, 1>> Allow null characters in "extra".
2009-12-21Order version fields in documentation for ALIVE2_REQ correctlyKlas Johansson
Place HighestVersion before LowestVersion, since that is what the source code does (erl_epmd.erl and epmd_srv.c).
2009-12-21Fixed missing eix fileNiclas Eklund
2009-12-21Removed superfluous backslashNiclas Eklund
2009-12-21Removed 011 in documentation filesNiclas Eklund