Age | Commit message (Collapse) | Author |
|
* tab/tramp_emacs_erl/OTP-11270:
tools: In Emacs it is possible to remotely edit a file, by opening for example /ssh:somehost.com:/path/to/file.erl. In Emacs, the feature that makes this possible, is called TRAMP. When compiling such a file, by typing C-c C-k, an inferior Erlang shell is opened on the remote host, but the compilation expression that was evaluated in the remote Erlang shell was:
|
|
* fredrik/ssl/log_alert_doc/OTP-11271:
ssl: documentation regarding log_alert
|
|
* hb/parsetools/fix_yecc_bug/OTP-11269:
Fix a Yecc bug
|
|
A bug causing Yecc to generate badly formed parsers when encountering
very simple recursive rules has been fixed.
Thanks to Eric Pailleau for reporting the bug.
|
|
The first clause of gen_enc_line() allows us to pass in [] as
the value for Element; if we modify the only caller that passes
[] to pass an actual expression we can remove the first clause.
Furthermore, since the Pos argument was only used by the first
clause, we can remove the Pos argument.
We can also remove the first clause in gen_enc_component_optional(),
since the code in its body is exactly the same as in the following
clause.
|
|
An field in a class that references an object or object set is not
allowed to be referenced directly from within a SEQUENCE.
|
|
|
|
When reporting a field redefinition in a record, erl_lint can forget
about some old unused variables.
f() -> X = 1, #r{a=foo,a=bar,a=qux}.
|
|
Variables used in the body of a try expression were marked as unsafe
*and* used, which makes no sense as an unsafe variable can't be used.
Function vtsubtract/2 is used to forget usage of such unsafe variables.
Reported-by: Paul Davis
|
|
When analyzing complex expressions (i.e. comprehensions, cases, tries,
ifs and receives), erl_lint does not forget about old unused variables
when returning the updated variable table. This causes a bug where old
unused variables are not recorded as such:
t(X, Y) ->
#r{a=[ K || K <- Y ],b=[ K || K <- Y ]}.
As erl_lint uses vtmerge_pat/2 to merge the results of the analysis of
the two list comprehensions, X is marked as used and the warning is not
emitted.
The function vtmerge_pat/2 is used instead of the similar vtmerge/2
which does not mark multiple occurrences of a variable as usage to
handle cases like the following one:
t(X, Y) ->
#r{a=A=X,b=A=Y}.
Other simpler expressions like conses, tuples and external fun
references do not correctly follow this behaviour, e.g. A is not marked
as used in the following code:
t(X, Y) ->
{A=X,A=Y}.
This commit fixes both issues and makes erl_lint not return old unused
variables in updated tables and makes all compound expressions use
vtmerge_pat/2.
Reported-by: Anders Ramsell
|
|
|
|
OTP-11238
|
|
begin_port_cleanup can be called from a non-scheduler thread, this
means that there is no esdp available and thus erts_schedule_thr_prgr_later_op
segfaults.
|
|
|
|
|
|
In Emacs it is possible to remotely edit a file, by opening for
example /ssh:somehost.com:/path/to/file.erl. In Emacs, the feature
that makes this possible, is called TRAMP. When compiling such a file,
by typing C-c C-k, an inferior Erlang shell is opened on the remote
host, but the compilation expression that was evaluated in the remote
Erlang shell was:
c("/ssh:somehost.com:/path/to/file", [...]).
which resulted in a "no such file or directory" error.
This commit changes the compilation expression into:
c("/path/to/file", [...]).
for files opened remotely via TRAMP. The file name is adjusted
similarly when compiling .yrl and .xrl files.
In a buffer opened remotely, the Elisp function buffer-file-name
returns the full path with TRAMP syntax. In this example it would
be "/ssh:somehost.com:/path/to/file.erl". A new function,
erlang-local-buffer-file-name, has been introduced, which peels off
the TRAMP syntax on remotely opened files, while for locally opened
files, it just calls buffer-file-name.
|
|
Using a list comprehension will simplify both the code generator
and the generated code. Also, if there is an ObjFun argument in
the host function, the BEAM compiler will make sure it is only
passed to the generated list comprehension function if it is
actually used.
|
|
Break out the the rules for determining whether a string should
be in aligned so that it can be reused for encoding.
|
|
* nox/match-context-return/OTP-11247:
Added primary bootstrap
Forbid returning a match context in beam_validator
|
|
* sze/edlin_understand_keys/OTP-11251:
Added primary bootstrap
erts: fixed documentation regarding tty and arrow keys
make edlin understand a few important control keys
|
|
* alexrp/export_edge/OTP-11266:
Export the edge/0 type from the digraph module
|
|
* epa/add_fd_usage_in_rb/OTP-11252:
kernel: sasl: fixed rb.xml docs
Add Fd usage in rb logging
|
|
* pan/bad_async_thread_distribution/OTP-11243:
Create better distribution of files over async threads
Initialize errno properly in win32 efile_may_openfile
Add debug functionality to retrieve async key
OTP-11243
OTP-11265
|
|
The actual port id is used to create a key from the
pointer value which is the ErlDrvPort. To do this
a new driver api function driver_async_port_key is
added and the driver API minor version is updated.
The documentation is updated and the faulty description of
how to spread ports over async threads is updated to
use the new API.
Testcase also added.
|
|
|
|
|
|
|
|
Conflicts:
lib/inets/doc/src/notes.xml
lib/inets/src/http_lib/http_transport.erl
lib/inets/src/inets_app/inets.appup.src
lib/inets/vsn.mk
lib/ssl/doc/src/notes.xml
lib/ssl/src/ssl.appup.src
lib/ssl/src/ssl.erl
lib/ssl/src/ssl_internal.hrl
lib/ssl/src/tls_connection.erl
lib/ssl/vsn.mk
|
|
by only letting it run on one core. Valgrind only let one thread
at a time execute anyway.
|
|
It was missing and needed
|
|
* lukas/erts/crash_dump_acul/OTP-11264:
erts: Fix print out of acul option in crash dump
|
|
* lukas/erts/efile_undef_behaviour/OTP-11246:
erts: Fix bug in translating ev macros to functions
|
|
|
|
Note that this is a fake merge. The bug fix changes files that
are no longer present in maint, and the bug will need to be fixed
in a different way.
* maint-r15:
Prepare release
PER, UPER: Fix encoding/decoding of open types greater than 16K
|
|
* jw/fix-httpd-erl-script-nocache/OTP-11260:
inets: added simple testcase for option erl_script_nocache
Fix httpd config option 'erl_script_nocache'
|
|
|
|
Terms of this type are returned and sometimes sit in states.
Exporting it allows us to properly track the types there.
|
|
* hb/stdlib/correct_fread_spec/OTP-11261:
Correct the specifications of io_lib:fread/2,3
|
|
Thanks to Chris King and Kostis Sagonas for pinpointing the bug.
|
|
|
|
|
|
* fredrik/inets/ssl/fixup_log_alert_option/OTP-11259:
[inets, ssl]: make log_alert configurable as option in ssl, SSLLogLevel added as option to inets conf file
|
|
Note that this is a fake merge. The bug fix changes files that
are no longer present in maint, and the bug will need to be fixed
in a different way.
* maint-r15:
Prepare release
PER, UPER: Fix encoding/decoding of open types greater than 16K
|
|
|
|
* fh/start-all/OTP-11250:
kernel: fix documentation regarding ensure_all_started endtag
Updated primary bootstrap
Add application:ensure_all_started/1-2
|
|
added as option to inets conf file
|
|
* hb/stdlib/dets_bugfix/OTP-11245:
Fix a Dets bug concerning traversal of tables
|
|
* fredrik/ssh/correct_doc_timeout/OTP-11249:
ssh: clarified timeout options
|
|
* hb/stdlib/erl_lint_fix/OTP-11256:
Fix a bug in the linter regarding the 'fun M:F/A' construct
|
|
* lpg/openssh_zlib/OTP-11256:
ssh: added basic connection testcase for openssh zlib
Add openssh_zlib compression type to ssh_transport
|