Age | Commit message (Collapse) | Author |
|
* bjorn/compiler/eliminate-warning/OTP-9152:
sys_core_fold: Eliminate incorrect warning
sys_core_fold: Be careful to preserve annotations while optimizing
|
|
* siri/stdlib/log_mf_h-write-index-atomically/OTP-9148:
Update index file atomically
|
|
* pan/tcp_send_timeout/OTP-9145:
Add testcase
Teach tcp_recv not to cancel send timer
|
|
* 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)
|
|
Reported-By: Pablo Platt
|
|
|
|
|
|
* bw/tv-render-fix:
tv: Allow table viewer to display refs, ports and small binaries
OTP-9153
|
|
The compiler (sys_core_fold) tries to avoid constructing tuples
in case expressions. The following code:
c(A, B) ->
case {A,B} of
{ok,X} -> X;
{_,_} -> error
end.
will be rewritten so that no tuple is built. If a clause
requires a tuple to be built as in this code:
c(A, B) ->
case {A,B} of
{ok,X} -> X;
V -> V %The tuple will be built here
end.
the tuple will be built in the clause(s) in which it is needed.
If the value returned from the case is not used as in this code:
c(A, B) ->
case {A,B} of
V -> V %Warning: a term is constructed, but never used
end,
ok.
there will be an incorrect warning. Basically, what happens is
that the code is reduced to:
c(A, B) ->
{A,B}, %Warning: a term is constructed, but never used
ok.
and the optimizer sees that the {A,B} tuple can't possibly be used.
Eliminate the warning by adding a 'compiler_generated' annotation
to the tuple.
Reported-by: Kostis Sagonas
|
|
|
|
* bjorn/compiler/bin-size-bug/OTP-9134:
v3_core: Fix variable incorrectly unbound after binary match
v3_core: Fix style and indentation
|
|
* sg/fix-diskless-booted-relup:
Remove traces of release_handler reading from filesystem when it has
Masters list
OTP-9142
|
|
* cg/fix-sizeof-array-arg:
Fix using sizeof() for array given as function argument
OTP-9151
|
|
* siri/reltool/skip-xref-test-when-debug/OTP-9133:
Skip reltool_app_SUITE:undef_funcs on debug compiled emulator
|
|
* siri/reltool/app_file-option/OTP-9135:
Allow app_file option to be keep | strip | all, as documented
|
|
* ia/public_key/encode-decode-ssh/OTP-9144:
Implemented encode/decode support for ssh public key files
|
|
|
|
Since the log_mf_h index file might be read by other processes than
the error handler (e.g. by the rb tool), this file should be updated
atomically. This will avoid hitting the time gap between opening the
file in write mode (and thus emptying the file) and the actual update
with the new contents. To do this, a temporary file is written, and
the file:rename/1 used to replace the real index file.
|
|
In the following code:
m(<<Sz:8,_:Sz/binary>>) ->
Sz = wrong.
the Sz variable is supposed to be bound in the function header and the
matching "Sz = wrong" should cause a badarg exception. But what
happens is that the Sz variables seems to be unbound and the matching
succeds and the m/1 function returns 'wrong'.
If the Sz variable is used directly (not matched), it will have
the expected value. Thus the following code:
m(<<Sz:8,_:Sz/binary>>) ->
Sz.
will correctly return the value of Sz that was matched out from
the binary.
Reported-by: Bernard Duggan
|
|
|
|
The default value 'undefined' was added to records field types in such
a way that the result was not always a well-formed type. This bug has
been fixed.
---
erl_pp has since OTP-8150 formatted types so that 'undefined' was
removed from union types assigned to record fields. Since one cannot
distinguish between 'undefined' added by the parser or supplied by the
user, a side effect was that user supplied 'undefined's were also
removed.
Now the pretty printer shows 'undefined' even if added by the parser.
This is a minor issue.
|
|
This is the correction of the bug not allowing the values 'strip' or
'all' for the app_file option in reltool.
|
|
|
|
list
There are a couple of places in release_handler and release_handler_1
that assumed it has a disk to read from, which in the case of an
erl_prim_loader Loader other than efile is not necessarily true
Add check_paths/2 to do the equivalent of check_path/1 for when there
is a Masters list
Change get_vsn to no longer get sent File paths but instead use the
Bin since beam_lib:version being sent a file path causes it to read
the local file system
Add get_current_vsn/1 as an equivalent to
beam_lib:version(code:which(Mod)), but using erl_prim_loader:get_file
instead of reading from local file system
|
|
|
|
|
|
|
|
|
|
* nick/CORBA/avoid_warnings/OTP-9050:
Corrected type of action in release notes.
Corrected version in release notes file.
Conflicts:
lib/cosProperty/doc/src/notes.xml
|
|
|
|
|
|
|
|
* pan/doc_link_corrections/OTP-9112:
Remove link_check warnings re httpc.xml,sys.xml and unicode.xml
Change io.xml so that html anchors gets generated for all arities
|
|
* sa/dialyzer-missing-spec:
Add spec to dialyzer_cl_parse:get_lib_dir/1
OTP-9129
|
|
* ks/kernel-dialyzer-cleanups:
Add spec for function that does not return
Strenghen spec
Introduce types to avoid duplication in specs
Add specs for functions that do not return
Add specs for behaviour callbacks
Simplify two specs
OTP-9127
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Applies to the specification of the return value of a function.
|
|
|
|
|
|
|
|
|
|
|
|
* ay/precisionfix/OTP-8989:
Fix ~F.Fs bug, add testcase and improve documentation
io_lib_format string precision fix
|