Age | Commit message (Collapse) | Author |
|
* 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.)
|
|
* 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.
|
|
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).
|
|
|
|
|
|
|
|
|
|
This is an optimization to avoid sending huge terms to the gui
just to step by them and update variables again.
Even better would be to only update if necessary.
|
|
|
|
|
|
ucontext routines are deprecated in Snow Leopard and defining
_XOPEN_SOURCE is the suggested remedy.
|
|
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.
|
|
Used in records or tuple creation:
-record(record3, {a = 8#42423 bor
8#4234,
b = 8#5432
bor 2#1010101
c = 123 +
234,
d}).
and in functions calls
call(2#42423 bor
#4234,
2#5432,
other_arg),
|
|
|
|
* 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.)
|
|
It must be unsigned so that prim_inet will not reject
when it is sent down again.
(Suggested fix by Raimo for a bug reported by Simon Cornish.)
|
|
The symbol ei_tracelevel was not declared extern which could
crash the linking step on some compilers.
Updated .gitignore to ignore object files in erl_interface.
|
|
Suggested by Vlad Dumitrescu.
|
|
Visual Studio 2008 puts some things in different places and doesn't
include the Message Compiler (mc.exe).
|
|
The eval call in these scripts was failing for me because the path to
them on my windows machine contained spaces. I also fixed some
copy/paste-os from when (evidently) the mc.sh script was created by
copying the rc.sh script and modifying it.
|
|
|
|
|
|
* sc/ei_decode_skip_fun:
Fix ei_skip_term() handling of funs encoded as NEW_FUN_EXT
|
|
|
|
|
|
|
|
In the following code
case X of foo -> 25
end,
Automatically indent the line you stand on (end,) before
adding newline and indent again.
That way 'end' will be indented correctly after the comma is written.
|
|
|
|
* sc/darwin_build_rm_dSYMN:
Fix 'make clean' in erts with debug builds under Darwin
|
|
(.eix) of erlang terms that can be read by the erldoc
application. Erldoc handles the documentation search mechanism at
erlang.org. Added generation of eix files to
otp_release_targets.mk. Fixed a copyright date error in
db_html.xsl .
|
|
The Apple compiler creates DWARF debugging symbols in a bundle (ie. a
directory) named <name>.dSYM
In order for make clean to work correctly, the rm command needs -r
|
|
|
|
|
|
* bg/on_load:
Test on_load functions that don't return 'ok'
Change the expected return value for on_load functions
OTP-8339 The expected return value for an on_load function has been
changed. (See the section about code loading in the Reference
manual.)
|
|
* bg/compiler-bopt-bug:
beam_bool: Fix generation of code that does not validate
Fix crash in beam_bool
OTP-8338 Using complex boolean expressions in ifs could cause the compiler
to either crash or teminate with an internal error. (Thanks to
Simon Cornish.)
|
|
* as/c_nc-fix:
c_SUITE: Use new style guard tests
Fix c:nc to use outdir or cwd to find compiled object file
OTP-8337 c:nc/{1,2} used to assume that the beam file was created in the
same directory as the source code and failed to load the code if
it was not. Corrected to look for the beam file in the current
directory or in the directory specified by the {outdir,Dir}
option. (Thanks to Alex Suraci.)
|
|
|
|
Before this patch, c:nc would naively assume the object file was created
in the same location as the .erl file. This is often false, for example
when an outdir is specified (often the case in make:all([netload])) or
calling with c:nc("foo/bar") (because compile:file places bar.beam in
the cwd, not foo/).
[ Squashed in minor style changes. /bg ]
|
|
bug was introduced in R13B03. (Thanks to Matthew Sackman.)
|