Age | Commit message (Collapse) | Author |
|
Consider this code:
%% Start of block
get_tuple_element Tuple 0 Element
get_map_elements Fail Map [Key => Dest]
.
.
.
move Element UltimateDest
%% End of block
Fail:
%% Code that uses Element.
beam_block (more precisely, otp_tuple_element/1) would
incorrectly transform the code to this:
%% Start of block
get_map_elements Fail Map [Key => Dest]
.
.
.
get_tuple_element Tuple 0 UltimateDest
%% End of block
Fail:
%% Code that uses Element.
That is, the code at label Fail would use register Element,
which is either uninitalized or contains the wrong value.
We could fix this problem by always keeping label information
at hand when optimizing blocks so that we could check the code
at the failure label for get_map_elements. That would require
changes to beam_block and beam_utils. We might consider doing
that in the future if it turns out be worth it.
For now, I have decided that I want to keep the simplicity of blocks
(allowing them to be optimized without keeping label information).
That could be achieved by not including get_map_elements in
blocks. Another way, which I have chosen, is to only allow
get_map_elements as the first instruction in the block.
For background on the bug: c288ab8 introduced the beam_reorder pass
and 5f431276 introduced opt_tuple_element() in beam_block.
|
|
* bjorn/multiple-load/OTP-13111:
erl_prim_loader_SUITE: Add debug printout
Skip erl_prim_loader_SUITE:get_modules/1 when cover-compiled
multi_load_SUITE: Clarify failure reasons
multi_load_SUITE: Don't fail on non-HiPE systems
|
|
|
|
While we are it, also re-ident the files.
|
|
We want to re-ident the source files after having taken out
all ?line macros. When re-indenting using Emacs, it's important
that comments that should be at the beginning of a line (or
follow the indentation of statements around it) must start with
"%%".
|
|
|
|
|
|
|
|
|
|
|
|
The return values for lists:prefix/2 and lists:member/2 were
ignored.
|
|
Note that the sleeping time in ct:sleep/1 will be scaled if
the test is run with (for example) cover. When it is important
that the sleep time is not adjusted, use timer:sleep/1.
|
|
|
|
There is no practial difference.
|
|
|
|
Either rely on the default 30 minutes timetrap, or set the timeout
using the supported methods in common_test.
|
|
Conflicts:
lib/common_test/test/Makefile
|
|
* siri/test-ct_release_test/OTP-13390:
Remove upgrade tests from stdlib_SUITE
Add test of ct_release_test
|
|
The test cases minor_upgrade and major_upgrade used
ct_release_test. The point of the tests in stdlib was mainly to test
ct_release_test. ct_release_test produces a 'from-release' based on an
old version of the application under test (in this case stdlib) and
new versions of all other applications. But since it is not always a
good idea to load an old version of stdlib into a new emulator
(e.g. in the OTP-19.0 emulator), these tests are removed.
Instead new tests are added for ct_release_test in common_test.
|
|
The ct_release_test module provides support for testing
upgrade/code_change of one or more applications within the Erlang/OTP
product. This commit adds tests to the common_test/test directory.
|
|
|
|
* peppe/common_test/html_improvements:
Fix problems with formatted test_server printouts
Make sure special characters are escaped in e.g. pal and log printouts
Conflicts:
lib/test_server/src/test_server.erl
|
|
* maint:
io_SUITE: Don't fail on fast computers with rough timers
Fix code_SUITE after test_server change
Set default value for crash_dump_dir
|
|
* bjorn/cuddle-with-tests:
io_SUITE: Don't fail on fast computers with rough timers
|
|
* siri/crashdump-dir/OTP-13388:
Fix code_SUITE after test_server change
Set default value for crash_dump_dir
|
|
|
|
* anders/diameter/18/dialyzer/OTP-13400:
Fix dialyzer warnings
|
|
|
|
* anders/diameter/18.3/OTP-13322:
vsn -> 1.11.2
Update appup for 18.3
|
|
|
|
* peppe/common_test/cth_improvements:
Add missing internal hook functions
Fix remaining issues
Update ct_hooks test suites
Introduce new CT hook functions
OTP-13242
|
|
* peppe/common_test/rm_unwanted_tests:
Fix remaining issues
Enable execution of multiple test cases or groups from a test spec term
OTP-13241
|
|
|
|
* henrik/doc-fixes:
Fix typo in INSTALL.md
Update README.md
Fix typo in 'app' documentation
s/is/are
|
|
|
|
* sverk/bad_printable_range:
stdlib: Fix io_SUITE:bad_printable_range for windows
|
|
|
|
|
|
* origin/dgud/wx/bugs:
wx: Use wrapper classes where possible
wx: Wait before throwing away early callbacks to wx_objects
wx: Add wxWindow:SetTransparent and CanSetTransperant
wx: Add wxWindow SetDoubleBuffered and IsDoubleBuffered from wxWidgets 3.0
wx: Remove http_util usage
wx: Tiny optimization
wx: Fix a crash with sending two binaries to command queue
|
|
Since Windows 8 we are not allowed (in non elevated mode) to
write to hklm.
|
|
Whether making record declarations unreadable to compensate for
dialyzer's ignorance of match specs is worth it is truly debatable.
|
|
|
|
* anders/diameter/retransmission/OTP-13342:
Fix handling of shared peer connections in watchdog state SUSPECT
Remove unnecessary parentheses
Remove dead export
|
|
* anders/diameter/18/performance/OTP-13164:
Make peer handling more efficient
Remove unnecessary erlang:monitor/2 qualification
|
|
avoid os:cmd as it treats stderr different on windows.
|
|
|
|
code:which/1 will return 'cover_compiled' instead of a path. We
could work around that, but since erl_prim_loader is not
cover-compiled, it does not gain us anything.
|
|
The failure reasons remained from a previous draft of the API.
|
|
|
|
On a computer which is fast, but with timers with low resolution,
the measured time for an empty queue could be zero, which could
cause the test case to fail.
Add a calibration function to scale up the amount the amount of
work so that the measured time will not be lower than 50 ms.
|