Age | Commit message (Collapse) | Author |
|
heart:get_cmd/0 is documented to return an empty string if the command is
cleared. get_cmd/0 returns 2 extra bytes: 1 byte for the trailing null,
1 byte from the op (the op is an unsigned char and 2 bytes are allocated
for it in the returned buffer).
1> heart:get_cmd().
{ok,[0,0]}
2> heart:set_cmd("echo hello").
ok
3> heart:get_cmd().
{ok,[101,99,104,111,32,104,101,108,108,111,0,0]}
4> heart:clear_cmd().
ok
5> heart:get_cmd().
{ok,[0,99]}
|
|
* pan/run_erl_race_creating_fifo/OTP-9164:
Fix race in pipe creation. Two simultaneous node starts caused failure
|
|
* cg/fix-pointer-dereference:
Fix some wrong pointer dereferences
OTP-9194
|
|
|
|
* pan/win_init_restart_oldshell/OTP-9139:
Add testcase
Teach win32/sys.c (fd-driver) not to leak readers causing init:restart to fail
Make Erlang build with Latest MS SDK, 7.1 (and VStudio 2010)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* jp/dependencies_makefile:
Add dependencies Makefile generation to erlc(1) and compile(3)
Conflicts:
lib/compiler/test/compile_SUITE.erl
OTP-9065
|
|
This is useful when a project is built with Makefiles and erlc(1)
instead of EMakefiles. Tracking dependencies by hand is error-prone and
it becomes painful when using external application headers like EUnit's
one.
A dependencies Makefile will look like this:
module.beam: module.erl \
/usr/local/lib/erlang/lib/eunit-2.1.4/include/eunit.hrl \
header.hrl
When included in the main Makefile, 'module' will be recompiled only
when needed.
GCC offers the same feature and new erlc(1) options are compatible with
it.
More informations at:
http://wiki.github.com/dumbbell/otp/dependencies-makefile
|
|
* pan/inet6_corrections/OTP-8969:
Stop using uncertain flags for getaddrinfo()
Teach inet_test_lib to understand enetunreach
Make windows inet_gethost work for ipv6
|
|
* pan/unicode-filenames/OTP-8887: (27 commits)
Test and correct filelib and filename
Add documentation to erlang.xml and slight correction to unicode_usage.xml
Add section about Unicode file names to stdlib users guide
Correct bug in file_name_SUITE making it fail on Unix instead of Windows7
Add documentation about raw filenames and Unicode file name translation mode
Make filelib not crash on re codepoints beyond 255 in re when filename is raw
Mend on_load_embedded testcase which did not handle windows links
Correct testcase regarding windows versions supporting soft links.
Teach filelib to use re in unicode mode when filenames are not raw
Treat soft links on Windows correctly in file_name_SUITE
Adapt new soft and hard link routines on Windos to Unicode
Corrected testcases broken by unicode filenames
Update preloaded prim_file
Teach prim_file not to accept atoms and not to throw exceptions
Adapt inet_drv to Visual Studio 2008
Teach spawn_executable about Unicode
Convert filenames read on MacOSX to canonical form
Teach file to accept codepoints beyond 255.
Add testcases
Correct shell utilities to handle unicode and possibly binaries
...
|
|
The AI_V4MAPPED flag is falling out of grace in modern
IPv6 stacks, for security reasons, e.g. FreeBSD do not
document it any longer. The AI_ADDRCONFIG flag have
got unclear semantics on the same OS.
|
|
|
|
warnings/errors in man pages
|
|
|
|
|
|
|
|
* bw/win32-laa:
Added win32 large address aware link option
OTP-8956
|
|
|
|
a link to run_test available
|
|
|
|
* dgud/erts/windows-vs10-express:
Fix manifest files
|
|
It seems windows have updated manifest files in VS2010 which
caused the erlang programs to contain duplicate requestedExecutionLevel
entries, which is not allowed.
This patch removes the microsoft entry, before adding our own which
is known to work with XP and Vista.
|
|
|
|
* sf/erts_de_busy_limit:
Add flag-based setting for the distribution buffer busy limit
|
|
Id: OTP-8912
This patch creates a new family of flags with the "+z" prefix. It
further creates a new configuration option called "dbbl" (which is the
first letter of the name dist_buf_busy_limit). Example usage of this
flag would be "+zdbbl 1048576".
This patch creates an adjustable buffer limit for the amount of data
that may be buffered by the erlang distribution code (in dist.c
specifically). Before this patch, this hard-coded constant was used:
#define ERTS_DE_BUSY_LIMIT (128*1024)
When large binaries are transmitted between nodes (or simply a lot of
medium-sized binaries), it is very easy to hit the old 128KB limit.
Processes that use the erlang:system_monitor() BIF to monitor system
events can be spammed by {monitor, busy_dist_port, ...} message tuples
at rates of tens to even hundreds of messages/second.
A larger buffer limit will allow processes to buffer more outgoing
messages over the distribution. When the buffer limit has been
reached, sending processes will be suspended until the buffer size has
shrunk. The buffer limit is per distribution channel. A higher limit
will give lower latency and higher throughput at the expense of
higher memory usage.
A variation of this patch has been in commercial production use in at
least two companies that the author is aware of. Larger buffer values
can reduce the number of {monitor, busy_dist_port, ...} system
messages drastically, lower overall messaging latencies, and prevent
false timeouts and 'nodedown' messages in extremely busy Mnesia systems.
Test suite: there are two tests:
a. In erlexec_SUITE.erl to test basic set & get of the value
b. In distribution_SUITE.erl, to verify that setting +zdbbl very
low will actually change behavior.
|
|
* ms/security-fixes:
erlc: remove unused variable
typer: prevent buffer overflows
run_test: prevent buffer overflow
heart: prevent buffer overflow
escript: prevent buffer overflows
erlexec: prevent buffer overflows
erlc: prevent buffer overflows
dialyzer: prevent buffer overflows
OTP-8892
|
|
Michael Santos supplied a very nice patch that did set the annotation level
correctly for gdb when run from cerl in emacs.
The patch adds --annotate=3 to the gdb command line, which makes emacs
parse the gdb output correctly, making the right source code be loaded in
the emacs buffer.
While integrating it, I removed my faulty code trying to do the same with hacky
elisp commands. Michaels way is the right way to do it.
Thanks!
|
|
This link option just sets a flag in the binary and doesn't change
OS compatibility. This allows the Erlang VM to use up to 3 gigs of
address space instead of the default of 2 gigs.
|
|
|
|
|
|
Truncate buffers used to hold command line arguments.
|
|
|
|
Check buffer operations on input from escripts, the command line and
environment variables.
|
|
Truncate buffer operations on environment variables.
|
|
Check buffer operations and increase the size of the buffer used for
holding command line arguments, since the "-D" switch will be expanded
into 3 arguments when passed to erl.
|
|
Check length of buffers used with environment variables and debug
messages.
|
|
Two related but slightly separate issues: run_erl doesn't support Solaris's
/dev/ptmx device and run_erl didn't load the necessary STREAMS modules so that
to_erl can provide terminal echo of keyboard input. This patch adds ifdef'd
support for Solaris and derivatives to open /dev/ptmx directly since adding
the C99 defines to CFLAGS breaks all kinds of other things in the build. It
also adds ifdef'd ioctl calls to load the necessary STREAMS modules to permit
termios to work.
|
|
While attempting to debug odd terminal echo issues on Solaris, I noticed that
run_erl.c will fail to compile due to a typo causing a syntax error.
|
|
The scheduler wakeup threshold is now possible to adjust at system boot.
For more information see the `+swt' command line argument of `erl'.
|
|
* sverker/win-virtualization-off/OTP-7405:
Teach XP to ignore virtualization part of manifest
Turn off windows "virtualiztion"
|
|
* rickard/ethread-rewrite/OTP-8544:
Rewrite ethread library
|
|
Large parts of the ethread library have been rewritten. The
ethread library is an Erlang runtime system internal, portable
thread library used by the runtime system itself.
Most notable improvement is a reader optimized rwlock
implementation which dramatically improve the performance of
read-lock/read-unlock operations on multi processor systems by
avoiding ping-ponging of the rwlock cache lines. The reader
optimized rwlock implementation is used by miscellaneous
rwlocks in the runtime system that are known to be read-locked
frequently, and can be enabled on ETS tables by passing the
`{read_concurrency, true}' option upon table creation. See the
documentation of `ets:new/2' for more information.
The ethread library can now also use the libatomic_ops library
for atomic memory accesses. This makes it possible for the
Erlang runtime system to utilize optimized atomic operations
on more platforms than before. Use the
`--with-libatomic_ops=PATH' configure command line argument
when specifying where the libatomic_ops installation is
located. The libatomic_ops library can be downloaded from:
http://www.hpl.hp.com/research/linux/atomic_ops/
The changed API of the ethread library has also caused
modifications in the Erlang runtime system. Preparations for
the to come "delayed deallocation" feature has also been done
since it depends on the ethread library.
Note: When building for x86, the ethread library will now use
instructions that first appeared on the pentium 4 processor. If
you want the runtime system to be compatible with older
processors (back to 486) you need to pass the
`--enable-ethread-pre-pentium4-compatibility' configure command
line argument when configuring the system.
|
|
When building with "--as-needed" linker flags on Linux the build will
fail. This has now been fixed.
|
|
ld.sh built files not executable on XP, as parts of the manifest
were incomprehensible for XP machines.
|
|
|