Age | Commit message (Collapse) | Author |
|
The 'erlc' program passes options to the 'erl' program using
the '-s' option. The '-s' option causes all options to be converted
to atoms, which implies that UTF-8 file names may not be given on
the command line.
We could solve just the UTF-8 problem by using '-run' and change
the erl_compile module to expect strings instead of atoms, but since
that is an incompatible change, we should take the opportunity to
make more incompatible changes while we are at it.
Specifically, when 'erlc' was first written, there was no way to pass
command line arguments starting with '-' to Erlang, so 'erlc' did all
parsing of arguments and translated options to atoms starting with a
'@' character (for example, -I was translated to @i). Since then,
the '-extra' option has been introduced which allows us to pass
anything to Erlang at the end of the command line.
Therefore, while at it, do the minimum of necessary command line
parsing in the 'erlc' program (e.g. the '-smp' option), passing the
command line essentially unchanged to 'erl' using the '-extra' option,
and rewrite the option parsing in Erlang.
|
|
Fix erlc, escript, dialyzer, typer, ct_run, heart
and epmd should all be using widestrings on windows
|
|
|
|
|
|
|
|
Because of a copy-and-paste error in erlc.c, the -MP flag had the same
effect as -MG. As a workaround, you had to pass +makedep_phony to enable
the MP option. This patch makes -MP work as intended.
|
|
The hybrid heap emulator was last working in the non-SMP R11B
run-time system. When the constant pools were introduced in R12B,
the hybrid heap emulator was not updated to handle them.
At this point, the harm from reduced readability of the code is
greater than any potential usefulness of keeping the code.
|
|
If parallel make is used, several instance of 'erlc' is likely to
be invoked at once. Therefore, the default binding of schedulers
to CPU cores will do no good. (With this change, the build of
Erlang/OTP with six threads finished in about 7 minutes; without in
about 11 minutes.)
|
|
* 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
|
|
|
|
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.
|
|
* 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.)
|
|
Like in gcc, this option treats warnings as errors.
|
|
|