Age | Commit message (Collapse) | Author |
|
beam_type: Avoid an internal consistency check failure
|
|
* maint:
Updated OTP version
Prepare release
Conflicts:
OTP_VERSION
lib/typer/doc/src/notes.xml
lib/typer/vsn.mk
|
|
|
|
* Remove out-commented code
* Fix obvious typos and bad grammar
* Adhere to the conventions for when to use "%" and "%%".
|
|
* hasse/hipe/remove_work_around:
hipe: Remove work around for Dialyzer bug
|
|
* hasse/fix_erl_anno_use:
parsetools: Fix handling of locations and annotations
diameter: Fix handling of locations and annotations
kernel: Fix handling of locations and annotations
compiler: Fix handling of locations and annotations
eunit: Fix handling of locations and annotations
Update preloaded
erts: Fix handling of locations and annotations
dialyzer: Fix handling of annotations in a test
debugger: Fix handling of locations and annotations
stdlib: Extend functions in erl_parse to handle form_info()
stdlib: Fix handling of locations and annotations
erts: Correct the documentation of abstract end-of-file
stdlib: Add debug tests to the erl_parse module
stdlib: improve the erl_anno module's debug tests
stdlib: Improve the erl_pp module's debug tests
|
|
|
|
Remove blank lines between clauses; use matching instead of
is_list/1 guards.
|
|
|
|
Stop up using asn1ct_gen:emit/1 with a tuple instead of a list.
Also remove the remaining uses of asn1ct_gen:demit/1.
|
|
The debug option no longer serves any useful purpose.
|
|
That will make code slightly easier to read.
|
|
The code is not covered. The code is also not present
in the PER backend.
Here is a somewhat more formal proof that the code cannot
be reached:
asn1ct_gen_ber_bin_v2:gen_encode_user/3 calls
asn1ct_gen:gen_encode_constructed/4 where Typename is a list
of one element.
asn1ct_gen:gen_encode_constructed/4 will call
asn1ct_gen_ber_bin_v2:gen_encode/3 via asn1ct_gen:gen_types/4.
Note that if InnerType in asn1ct_gen:gen_encode_constructed/4
is 'SEQUENCE OF' or 'SET OF', Typename will be extended to a
list with two elements.
If InnerType in asn1ct_gen:gen_encode_constructed/4 is
'SET', 'SEQUENCE', or 'CHOICE', then asn1ct_gen_ber_bin_v2:gen_encode/3
will be called with the last argument being a #'ComponentType'{}.
asn1ct_gen_ber_bin_v2:gen_encode/3 will in that cause extend
Typename before calling itself recursively.
Therefore, Typename is always a list with at least two elements
when the removed code is called.
|
|
ce431409d0daba broke generation of dialyzer suppressions
for per and uper.
While we are it, add type tests to asn1ct_func:is_used/1
to avoid similar problems in the future.
|
|
Tags number above 16383 were not decoded correctly in
ber_decode_tag().
We could fix the problem, but there does not seem to be any need.
First, the only way that high tag numbers can be created is with
manual tagging; after 1994 manual tagging is no longer recommended.
Second, the ASN.1 playground (http://asn1-playground.oss.com) only
supports tags up to 16383 (the same is presumably true for OSS
Nokalva's other tools).
Therefore, clean up the existing code and make it an explicit
'invalid_tag' error when tags above 13383 are encountered
(instead of an implicit 'wrong_tag' error).
|
|
* maint:
Fix xml warnings in old release notes
|
|
|
|
Code such as the following:
-record(x, {a}).
f(R, N0) ->
N = N0 / 100,
if element(1, R#x.a) =:= 0 ->
N
end.
would fail to compile with the following message:
m: function f/2+19:
Internal consistency check failed - please report this bug.
Instruction: {fmove,{fr,0},{x,1}}
Error: {uninitialized_reg,{fr,0}}:
This bug was introduced in 348b5e6bee2f.
Basically, the beam_type pass placed the fmove instruction in the
wrong place. Instructions that store to floating point registers and
instructions that read from floating point registers are supposed to
be in the same basic block.
Fix the problem by flushing all floating points instruction
before a call the pseudo-BIF is_record/3, thus making sure that
the fmove instruction is placed in the correct block.
Here is an annotated listing of the relevant part of the .S
file (before the fix):
{test_heap,{alloc,[{words,0},{floats,1}]},2}.
{fconv,{x,1},{fr,0}}.
{fmove,{float,100.0},{fr,1}}.
fclearerror.
{bif,fdiv,{f,0},[{fr,0},{fr,1}],{fr,0}}.
{fcheckerror,{f,0}}.
%% The instruction {fmove,{fr,0},{x,1}} should have
%% been here.
%% Block of instructions expanded from a call to
%% the pseudo-BIF is_record/3. (Expanded in a later
%% compiler pass.)
{test,is_tuple,{f,3},[{x,0}]}.
{test,test_arity,{f,3},[{x,0},2]}.
{get_tuple_element,{x,0},0,{x,2}}.
{test,is_eq_exact,{f,3},[{x,2},{atom,x}]}.
{move,{atom,true},{x,2}}.
{jump,{f,4}}.
{label,3}.
{move,{atom,false},{x,2}}.
{label,4}.
%% End of expansion.
%% The fmove instruction that beam_validator complains
%% about.
{fmove,{fr,0},{x,1}}.
Reported-by: Richard Carlsson
|
|
|
|
|
|
|
|
The bug in Dialyzer is fixed in commit 5ac2943.
|
|
The following calls:
- otp_internal:obsolete(rpc, safe_multi_server_call, 2).
- otp_internal:obsolete(rpc, safe_multi_server_call, 3).
threw an unhandled exception.
The return value has been amended to match the relevant pattern of
obsolete/3.
|
|
|
|
Users wanted to see the maximum value seen by observer during it's uptime.
Note changes faster than the sample rate will still be missed.
|
|
In OTP-20 dirty_schedulers are default on.
Draw them dotted so we can difference between real schedulers
and dirty schedulers.
|
|
|
|
* hasse/dialyzer/fix_plt_suite:
dialyzer: Correct a test case
|
|
|
|
|
|
Also let the test suite verify that all files that are
opened will be closed before the end of each test case.
aa0c4b0df7cdc7 introduced the file descriptor leak.
|
|
* egil/tools/fix-makefile:
tools: Remove percept from makefile
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Conflicts:
lib/kernel/src/kernel.appup.src
lib/stdlib/src/stdlib.appup.src
|
|
* siri/appups-19.3:
Update appups in kernel and stdlib for OTP-19.3
|
|
HiPE: Various small code cleanups and codegen improvements
|
|
|