Age | Commit message (Collapse) | Author |
|
For some historical reason, the transformation of a func_info/3
instruction to the internal i_func_info/4 instruction is more
involved than it needs to be. Remove the gen_func_info() function
in the loader and use a simple transformation.
|
|
* 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/valgrind_xml_log:
Make xml valgrind messages end up in xml log
OTP-9079
|
|
* pan/tcp_send_timeout/OTP-9145:
Add testcase
Teach tcp_recv not to cancel send timer
|
|
* pan/system_info_procs_crash/OTP-9140:
Make erts_printf %T not recurse on C stack
Corrected fd_driver and cleaned up some really old code in win32/sys.[ch]
|
|
* 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)
|
|
pan/valgrind_xml_log
|
|
* ta/doc-fixes:
Fix two typos in erlsrv log messages
Fix typo in epmd help
Fix typo in binary:part/2 example
Fix typos in efficiency guide
erts: Fix doc typos, duplication and readability
Fix inet:port/1 doc to match implementation/spec
Fix typos in zip manpage
|
|
|
|
|
|
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
|
|
|
|
* hb/record_field_undefined_type/OTP-9147:
Fix a bug concerning record field types
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|