Age | Commit message (Collapse) | Author |
|
* cf/epp-macro-overloading:
yecc_SUITE: Adjustment for modified error tuple
epp_SUITE: Increase code coverage
Minor corrections and clean-ups
documentation: Macros overloading partly rewritten
update the documentation on preprocessor in the reference manual
epp: change rules to choose the right version of a macro
epp: Add support of macros overloading
epp: fix bug in the function scan_undef
OTP-8388 Macros overloading has been implemented. (Thanks to Christopher
Faulet.)
|
|
|
|
* sf/erl_match-longlong:
erl_interface: Allow erl_match() to match ERL_LONGLONG and ERL_U_LONGLONG terms
OTP-8400 Allow erl_match() to match ERL_LONGLONG and ERL_U_LONGLONG terms
(Thanks to Scott Lystig Fritchie).
|
|
|
|
|
|
|
|
Now, when we have only the constant definition of a macro (without
arguments), we always use it. In all other cases, we try to find the
exact matching definition. We throw an error if we don't find it.
|
|
This feature simplifies the definition of macros by avoiding to have a
different name for each version (with different arities) of the same
macros. New rules:
- can have multiple definitions of the same macro with different arities
- cannot overload macro with the same arity
- the overloading of predefined macros (?MODULE, ?LINE, ...) is forbidden
- the directive '-undef' removes all definitions of a macro
|
|
The dict St#epp.uses that helps to find circular macros was not correctly
updated.
|
|
|
|
|
|
|
|
* bg/hipe-fixes:
compiler: make ignore_native_errors also handle internal hipe errors
re tests: disable native-code compilation for huge modules
Teach the compiler the no_native option
|
|
|
|
* bg/cleanup-tests:
file_SUITE: eliminate a warning for an unused variable
kernel tests: modernize guard tests
unicode_SUITE: replace deprecated concat_binary/1 with list_to_binary/1
stdlib tests: modernize guard tests
Test suites: fix creation of Emakefiles
|
|
We must also catch exits, not only errors, since the hipe
compilers does an exit/1 if an internal error is found.
|
|
Two generated modules contains too big functions for the
native-code compiler to handle (even the BEAM compiler
struggles when compiling them).
|
|
Implement the 'no_native' option to disable native-code
compilation. If given in a module like this:
-compile(no_native).
it will override a 'native' option given on the command
line.
|
|
|
|
* ta/ensure_dir_eexist:
filelib_SUITE: strenghten tests of filelib:ensure_dir/1
Don't return a false {error,eexist} in filelib:ensure_dir/1
OTP-8389 Because of a race condition, using filelib:ensure_dir/1 from
multiple processes to create the same path or parts of the same
directory structure, filelib:ensure_dir/1 could return a
meaningless {error,eexist}. That race condition has been
eliminated, and {error,eexist} will now be returned only if there
exists a regular file, device file, or some other non-directory
file with the same name. (Thanks to Tuncer Ayaz.)
|
|
* mp/hipe-smp-fixes:
work around hipe_mfa_info_table lock omission
fix hipe loader SMP non-atomicity error
OTP-8397 The loading of native code was not properly atomic in the SMP
emulator, which could cause crashes. Also a per-MFA information
table for the native code has now been protected with a lock
since it turns that it could be accessed concurrently in the SMP
emulator. (Thanks to Mikael Pettersson.)
|
|
|
|
|
|
|
|
Don't change any guard tests in the id_transform_SUITE
module, because it intentionally use the old guard tests
to test that id_transform can handle them.
|
|
The Emakefiles in some test suite directories are only appended
to, never created from scratch, which can cause problems
especially when swithching branches in a git repository.
|
|
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)
- The legal notice is taken from the xml book file so OTP's build
process can be used for non OTP applications.
|
|
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.
|
|
Test that filelib:ensure_dir/1 returns {error,eexist} if
there already exists a regular file with the name as
a directory that should be created.
While at it, slightly strenghten the otp_5960/1 test case
by repeating each call to filelib:ensure_dir/1.
|
|
The Erlang/OTP distro now includes 90% of what's required to handle signed and
unsigned ints up to 8 bytes long, so add this remaining (?) 10%.
|
|
* bg/public_key-include_lib:
public_key: fix build of test suites on Windows
|
|
|
|
|
|
|
|
* 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().
|
|
With this flag, warnings are treated as errors, like gcc flag '-Werror'.
|
|
|