* 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
* 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.)
* 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.)
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.
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.
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".
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.
* 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.)
* 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.
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.
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.
… The bug was introduced in R13B03.
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".
Place HighestVersion before LowestVersion, since that is what the source code does (erl_epmd.erl and epmd_srv.c).
ucontext routines are deprecated in Snow Leopard and defining _XOPEN_SOURCE is the suggested remedy.
…TEXT The mcontext_t structure changed between Tiger & Leopard and the erts configure script doesn't take this into account when testing for reliable floating point exceptions. HiPE is not enabled when reliable fpes are not detected. The PPC test preserves the pre-modern mcontext_t and so builds on Tiger, but I suspect that PPC/Leopard is broken. I don't have the header files to check modern PPC mcontext_t so I haven't changed that part of the test.
* dgud/emacs-improvements: Emacs: Added indentation inside parenthesis More -spec indentation fixes.
* at/windows_build_fixes: Updated README.win32 for compiling with VS2008 and issues with mc.exe Allow mc.sh and rc.sh to work when path to mc/rc.exe has spaces OTP-8345 Building on Windows will now work if the paths to mc.exe and rc.exe contain spaces. The README.win32 file has been updated with some information about building using Visual Studio 2008. (Thanks to Andrew Thompson.)