Age | Commit message (Collapse) | Author |
|
Sometimes the beam_bool pass wants to know whether an
y register will be killed by the code that follows and
will do (effectively):
beam_utils:is_killed({y,Y}, Code, L)
When asked to calculate the liveness for an y register,
beam_utils:is_killed/3 will loop forever if the code
includes a receive loop.
Since this rarely occurs, fix the problem in the simplest
and most conservative way.
Reported-by: Christopher Williams
|
|
When gc_bif instructions occurred outside of a block,
beam_utils:check_liveness/3 did not take into account
that the instruction could do a garbage collection, and
could falsely report that an x register would be killed.
That could cause the beam_dead pass to make the code
unsafe by removing the assignment to an x register that
would subsequently be referenced by the garbage collector.
Reported-by: Christopher Williams
|
|
* egil/eprof-api-mismatch/OTP-8853:
Fix eprof API mismatch of sort functionality
|
|
* sverker/ets_compress/OTP-8922:
ETS 'compressed' option.
|
|
* sverker/crypto_aes_ctr_cmac/OTP-8752:
Fix nif_SUITE to not assume that it is the only one loading NIFs.
crypto CTR support
|
|
Option {sort, calls} now sorts on calls.
Option {sort, time } now sorts on time.
|
|
The compressed format is using a slighty modified variant of the extern format
(term_to_binary). To not worsen key lookup's too much, the top tuple itself
and the key element are not compressed. Table objects with only immediate
non-key elements will therefor not gain anything (but actually consume one
extra word for "alloc_size").
|
|
* ao/mod_auth-doc-typos:
Fix escaped xml character and a missing closing tag in mod_auth.xml
|
|
* bf/mnesia-doc-fixes:
doc: "works like" instead of "works as" + missing like
remove '\011' from mnesia doc
fix typo in mnesia doc
|
|
* lukas/common_test/master_include/OTP-8935:
Update master test to put slave logs in /tmp for windows as otherwise filenames become too long and the tests fail
Update master test specs to work with include directives
|
|
* ml/re-manpage-cleanup:
Improve the 're' manpage by correcting typos and rewording
|
|
* ks/edoc-dialyzer-fixes:
Fix various dialyzer warnings
|
|
* ks/dialyzer-fixes:
dialyzer: Speed up analysis of nested list comprehensions
|
|
* ms/ei-fixes:
ei: check memory was allocated
ei: error if return value of ei_alloc_big is NULL
OTP-8943
|
|
* ks/file_open-mode:
Add the {encoding, _} options to file:open/2's modes
|
|
* ms/ei-fix-node-name-overflow:
ei: check the length of the node name
OTP-8943
|
|
* ks/hipe-patches:
hipe: Update types and specs
|
|
|
|
* ks/erl_types-fixes:
erl_types: Fix pretty rare crashes and an infinite loop
OTP-8942
|
|
- Fixed pretty rare crash when taking the infimum of two tuple_sets
(initial fix by Kostis Sagonas but then a better fix was provided
by Stavros Aronis and this is the one adopted).
- Fixed pretty rare crash when using parameterized types containing unbound
variables (thanks to Nicolas Trangez for reporting it).
- Fixed pretty rare infinite loop when refining the types of an SCC whose
functions all returned none() (thanks to Stavros Aronis).
|
|
In description of the list_users/2 function, the character < was escaped
and a closing tag was missing which resulted in an invalid xml and
a wrong formatting.
|
|
|
|
filenames become too long and the tests fail
|
|
Add appropriate specs to shut off dialyzer's no_return warnings and
also fix an erroneous use of lists:concat/1 instead of lists:append/1.
|
|
* ia/ssl-decryption-error/OTP-8930:
Added "DECRYPTION_FAILED ALERT" for block decipher failure.
|
|
* ia/odbc/windows_fix:
Added needed include file ws2tcpip.h for windows.
|
|
|
|
* raimo/inet-getifaddrs/OTP-8926:
Write documentation
Delete decommented code
Add testcase
Implement inet:getifaddrs/0 on Windows
Implement basic inet:getifaddrs/0
Fix building error of SCTP in FreeBSD 7.1 and later
|
|
* raimo/wxwidgets-configure-fixes:
wxWidgets configure fixes
|
|
|
|
|
|
Also fixed incorrect dialyzer spec.
|
|
|
|
* sverker/doc-fixes/OTP-8880:
Documentation update to ETS and drivers
|
|
|
|
Correct typos (e.g. it's -> its as appropriate).
Reword some sections for clarity.
|
|
Nested list comprehensions are translated into strongly connected
funs but dialyzer ignored this. This meant that self-recursive
analysis was normally executed for each fun and the whole fixpoint
took some time to calculate. This patch adds every fun found in
constraint generation to the SCC that is under analysis and then
solves the SCC as a whole.
Possible issues:
- The returned dict contains more entries than usual. This
triggered a bug in contract checking that is dealt with is
this patch as well (dialyzer_contracts.erl).
- As it's not easy to tell apart real fun SCCs from simple funs it
performance might be hampered in the simple funs case.
While doing these changes, also added and strengthened some specs.
In addition, incorporated a modified patch by Ahmed Omar that fixes
a bug in dialyzer_analysis_callgraph module that kept the files of
only one selected directory in dialyzer's GUI.
|
|
|
|
|
|
|
|
|
|
|
|
If a Dets table with fewer slots than keys was opened and then closed
after just a lookup, the contents were no longer well-formed. This bug
has been fixed. (Thanks to Matthew Evans.)
|
|
|
|
* lukas/common_test/ct_parse_table/OTP-8907:
Update parse_table to take multiline sql rows Add test cases for ct:parse_table
|
|
* hb/parsetools/format_yecc_messages/OTP-8919:
Improve formating of Yecc error messages
|
|
|
|
|
|
|
|
* ia/odbc/windows_fix:
Better configure test that also works on windows.
|