Age | Commit message (Collapse) | Author |
|
Loading native code is a multi-step operation that needs to be
atomic, but the HiPE loader failed to ensure that.
This caused corruption of runtime system structure in some cases.
Fix by blocking multi_scheduling around main loader entry points.
Signed-off-by: Mikael Pettersson <[email protected]>
|
|
|
|
* rb/stdlib_re_unicode_fixes:
Fix lost unicode option in re:compile()
Refactor out repeated block in re module
Fix re:replace/4 to handle unicode charlist Replacement argument
Fix re:replace/4 to handle unicode charlist RE argument
Fix re:replace/4 to handle binary unicode output when nothing replaced
OTP-8394 A number of bugs concerning re and unicode are corrected:
- re:compile no longer loses unicode option, which also fixes bug
in re:split.
- re:replace now handles unicode charlist replacement argument
- re:replace now handles unicode RE charlist argument correctly
- re:replace now handles binary unicode output correctly when
nothing is replaced.
Most code, testcases and error isolation done by Rory Byrne.
|
|
Noticed-by: Rory Byrne
|
|
|
|
A bug in re:replace/4 causes a badarg exception to be thrown when the
Replacement argument is a charlist containing non-ascii codepoints.
The problem is that the code incorrectly assumes that the Replacement
text is iodata() and calls iolist_to_binary/1 on it. This patch fixes
it to obey the 'unicode' option and handle charlist() Replacement
arguments correctly.
|
|
The real problem is in the re:run/3 BIF.
Noticed-by: Rory Byrne
Tests-by: Rory Byrne
|
|
A bug with re:replace/4 causes an exception when: (a) it's given a
unicode charlist as input; (b) it's set to {return,binary}; and
(c) it finds nothing to replace.
The problem is: when re:replace/4 does not find anything to replace
in its Subject input, it calls iolist_to_binary on this data. This
fails if the original input is a charlist with non-ascii codepoints.
|
|
For example, if an archive (app-vsn.ez) just contains an
app-vsn/ebin/mod.beam file, the file info for the app-vsn and
app-vsn/ebin directories are faked using the file info from the
archive file as origin. The virtual direcories can also be
listed. For short, the top directories are virtual if they does
not exist.
|
|
deletion of files when compiled with debug option. Changed LC_CTYPE for sunos of certain versions.
|
|
environment after a number of bugs are fixed and some features
are added in the documentation build process.
- The arity calculation is updated.
- The module prefix used in the function names for bif's are
removed in the generated links so the links will look like
http://www.erlang.org/doc/man/erlang.html#append_element-2
instead of
http://www.erlang.org/doc/man/erlang.html#erlang:append_element-2
- Enhanced the menu positioning in the html documentation when a
new page is loaded.
- A number of corrections in the generation of man pages (thanks
to Sergei Golovan)
- Moved some man pages to more apropriate sections, pages in
section 4 moved to 5 and pages in 6 moved to 7.
- The legal notice is taken from the xml book file so OTP's
build process can be used for non OTP applications.
|
|
|
|
* ta/os_timestamp_no_mutex:
Remove mutex lock around sys_gettimeofday() in os:timestamp/0
OTP-8390 An unecessary lock operation in os:timestamp/0 has been
eliminated, making it slightly more efficient. (Thanks to Jonas
Falkevik and Tuncer Ayaz.)
|
|
ordered_set's to sometimes get out of synch and absurdly high.
|
|
In the erlang-questions thread "os:timestamp() uses mutex lock"
Jonas Falkevik questioned the need for a mutex lock in
os:timestamp/0. The mutex lock *is* needed in erlang:now()
to guarantee the uniqueness of the returned time, but serves
no useful purpose in os:timestamp().
Signed-off-by: Tuncer Ayaz <[email protected]>
|
|
erlang:system_flag(multi_scheduling, block | unblock) could
deadlock the runtime system.
|
|
* bg/avoid-etop-in-include:
epmd tests: fix build of test suites on Windows
system test: fix build of test suites on Windows
|
|
* bg/public_key-include_lib:
public_key: fix build of test suites on Windows
|
|
|
|
On Windows, the ERL_TOP environment variable contains
a path that only is valid for cygwin-enabled programs,
such as 'make'. It is not meaningful to pass the value
of $ERL_TOP in the -I option to the Erlang compiler,
because the Erlang emulator does not interpret cygwin
paths correctly. Therefore, -include("test_server.hrl")
will fail to find test_server.hrl.
Work around the problem by creating an Emakefile and
let ts:run() take care of the build (ts:run() will
set up the include path so that test_server.hrl can
be found).
|
|
(Thanks to Yamashina Hio.)
|
|
|
|
|
|
On Windows, the ERL_TOP environment variable contains
a path that only is valid for cygwin-enabled programs,
such as 'make'. It is not meaningful to pass the value
of $ERL_TOP in the -I option to the Erlang compiler,
because the Erlang emulator does not interpret cygwin
paths correctly. Therefore, -include("test_server.hrl")
will fail to find test_server.hrl.
Work around the problem by using -include_lib().
|
|
* uw/shell-tab-completion:
Shell tab completion now works for quoted module and function names
OTP-8383 Shell tab completion now works for quoted module and function
names. (Thanks to Ulf Wiger.)
|
|
* cf/compile_warning_as_error:
Add option -Werror in erlc(1)
compile: add flag warnings_as_errors to treat warnings as errors
compile.erl: remove trailing whitespace
OTP-8382 The -Werror option for erlc and the compiler option
warnings_as_errors will cause warnings to be treated as errors.
(Thanks to Christopher Faulet.)
|
|
between the httpc manager and request handler was synchronous.
When the manager starts a new request handler, this is no longer
a synchronous operation. Previously, the new request handler made
the connection to the server and issuing of the first request
(the reason for starting it) in the gen_server init function. If
the connection for some reason "took some time", the manager
hanged, leaving all other activities by that manager also
hanging. As a side-effect of these changes, some modules was also
renamed, and a new api module, httpc, has been introduced (the
old module, http, is *not* removed, but is now just wrapper for
httpc).
|
|
OTP-8349, OTP-8351, OTP-8352, OTP-8359 & OTP-8371.
|
|
On Windows, the ERL_TOP environment variable contains
a path that only is valid for cygwin-enabled programs,
such as 'make'. It is not meaningful to pass the value
of $ERL_TOP in the -I option to the Erlang compiler,
because the Erlang emualator does not interpret cygwin
paths correctly. Therefore, -include("test_server.hrl")
will fail to find test_server.hrl.
Work around the problem by using -include_lib().
|
|
Like in gcc, this option treats warnings as errors.
|
|
With this flag, warnings are treated as errors, like gcc flag '-Werror'.
|
|
|
|
Changed representation of wxTreeItem to be int.
This saves memory, where the driver don't need to keep a reference map
for every tree item.
And added getFirstChild and getNextChild to wxTreeCtrl.
|
|
You could get a reference to another applications memory, if wx had
deleted that applications memory without the drivers knowledge about
it, typically memory allocated by wx and not the application using
classes where wx-driver can't override the desctructors.
When wx allocated new memory and got a pointer to that memory, the
wx-driver detected the same pointer and forwarded the old ref to
erlang.
|
|
checking if CC equaled gcc. That is, the makefiles failed to
detect gcc C compilers with other command line names than gcc.
`configure' now substitute GCC into the makefiles. If CC is a gcc
C compiler, GCC will have the value yes. (Thanks to
Jean-S�bastien P�dron)
|
|
when erlang:system_flag(multi_scheduling, block) was used.
Processes, and/or ports could get stuck on an offline scheduler
when schedulers online were reduced using
erlang:system_flag(schedulers_online, SchedulersOnline).
|
|
|
|
|
|
|
|
* dgud/ssl-patches-from-Wil:
Added a public_key:pkix_transform/2 instead and used it from ssl.
Minor code cleanup
new_ssl fix session reuse
Code cleanup
Send CA list during Certificate Request in new_ssl
OTP-8372 Fixed session reuse (in new_ssl), thanks Wil Tan.
Send CA list during Certificate Request (in new_ssl) , thanks Wil
Tan.
|
|
|
|
* 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.)
|
|
* 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.)
|
|
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.
|
|
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.
|
|
OTP-8351, OTP-8359 & OTP-8371.
|
|
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.
|
|
* 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.
|
|
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.
|
|
|