Age | Commit message (Collapse) | Author |
|
The new Dbgi chunk returns data in the following format:
{debug_info_v1, Backend, Data}
This allows compilers to store the debug info in different
formats. In order to retrieve a particular format, for
instance, Erlang Abstract Format, one may invoke:
Backend:debug_info(erlang_v1, Module, Data, Opts)
Besides introducing the chunk above, this commit also:
* Changes beam_lib:chunk(Beam, [:abstract_code]) to
read from the new Dbgi chunk while keeping backwards
compatibility with old .beams
* Adds the {debug_info, {Backend, Data}} option to
compile:file/2 and friends that are stored in the
Dbgi chunk. This allows the debug info encryption
mechanism to work across compilers
* Improves dialyzer to work directly on Core Erlang,
allowing languages that do not have the Erlang
Abstract Format to be dialyzer as long as they emit
the new chunk and their backend implementation is
available
Backwards compatibility is kept across the board except
for those calling beam_lib:chunk(Beam, ["Abst"]), as the
old chunk is no longer available. Note however the "Abst"
chunk has always been optional.
Future OTP versions may remove parsing the "Abst" chunk
altogether from beam_lib once Erlang 19 and earlier is no
longer supported.
The current Dialyzer implementation still supports earlier
.beam files and such may also be removed in future versions.
|
|
* raimo/rand-dev/OTP-14295:
Implement Xoroshiro116+ and improve statisticals
|
|
Implement Xoroshiro116+ as 'exrop' with fixes.
Deprecate all old algorithms but reincarnate 'exs1024' as 'exs1024s'
and 'exsplus' as 'exsp' with fixes.
Fixes:
* Avoid skew for uniform integers caused by using a simple 'rem'
operation for range confinement. Correctness requires retry
with new random value for an unfortunate first value.
* Implement a correct algorithm that collects enough random
bits for ranges larger than the generator's precision.
* Fix uniform density for floats by acquiring 53 bits
then multiplying with 2.0^(-53) which produces floats
on the form N * 2.0^(-53).
|
|
* bjorn/remove-r12-r15-compatibility:
compile: Remove the r12 through r15 options
test_server: Change compatibility to R16
crashdump_helper: Change compatibility to R18
Remove test case for testing compatibility with R9B
Do atom roundtripping with an R16B node
Remove -compile(r12)
|
|
* bjorn/dialyzer/add-typer/OTP-14336:
Add smoke test for TypER
Add back TypEr to the main OTP repository
|
|
* ingela/ssl/AEAD:
ssl, dtls: Refactor so that DTLS records are handled correctly together with AEAD handling
ssl, dtls: Correct integer type for sequence number
|
|
* ingela/ssl/test-data:
ssl: Rewrite test data generation
|
|
With the new help functions for creating test data we can simplify the
code. And sometimes corrections have been made so that the test actually
perform the test intended.
|
|
|
|
It turned out that the dependencies between Dialyzer
and TypEr makes it impractical to have TypEr in a
separate repository.
Add it back to the OTP repository, but put the Erlang
module 'typer' in the dialyzer application.
|
|
The main purpose of these options is compatibility with
old Erlang systems. Since it is no longer possible to
communicate with R15B or earlier, we no longer need the
r12 through r15 options.
|
|
|
|
Compatibility two releases back are tested, which implies R18.
|
|
b25725ec0f65 removed the test cases for testing the R12 protocol.
There is no reason to keep compatibility with R12.
|
|
Enhance type-driven optimisation in beam_type.erl
|
|
* lukas/erts/20_minor_fixes:
erts: Rebuild etc executables if config.h changes
erts: Fix new gcc warning in check io
kernel: Add mem check to prim_file:large_write tc
erts: Fix two compiler warnings on OS X
erts: Fix erts_debug:df function info output
erts: Get rid of some unused function warnings on os x
|
|
|
|
* kill type information only for affected registers in get_map_elements
* bs_get_utf* will produce integers of unicode range
This optimises code created by Elixir compiler, where:
<<x::utf8,_::binary>> when x in 1..10
will compile the guard to
is_integer(X) andalso X >= 1 andalso X =< 10
This allows us to eliminate the is_integer check.
* bs_get_float will produce a float
* allow to carry type information over other bs instructions killing
only the affected registers
* kill only x registers after call_fun and apply instructions
|
|
AGAIN
* sverker/remove-latin1-atom-encoding:
tools: Fix more assumptions in lcnt about external format
|
|
* bjorn/stdlib/erl_tar/OTP-14278:
erl_tar: Handle leading slashes and directory traversal attacks
Don't create absolute path names in tar files
|
|
Also tried to prepare for large creation.
|
|
Add re:version/0
OTP-14347
|
|
|
|
* hasse/stdlib/linter_check_dialyzer/OTP-14323:
stdlib: Add checks of the dialyzer attribute to the linter
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The same checks are also performed by the Dialyzer.
|
|
AEAD handling
|
|
|
|
* ingela/dtls/progress:
dtls: Correct cookie map name
dtls: Fix active once emulation for DTLS
|
|
|
|
|
|
* siri/make/include-path/ERL-395/OTP-14339:
[tools/make] Add current directory to include path
|
|
|
|
* sverker/remove-latin1-atom-encoding:
kernel: Fix erl_distribution_wb_SUITE:whitebox
kernel: Remove pg2_SUITE:compat
erts: Remove fun_r13_SUITE
stdlib: Remove test cases for R12 io protocol
kernel: Make DFLAG_UTF8_ATOMS mandatory
kernel: Rewrite distribution flag verification
tools: Update assumptions in lcnt about external atom format
stdlib: Tweak beam_lib_SUITE whitebox assumptions
orber: Remove hard dependency to external atom format
kernel: Try mend disk_log whitebox tests
erts: Mark latin1 atom encoding as deprecated
jinterface: Do not generate atoms on old latin1 external format
erl_interface: Do not generate atoms on old latin1 ext format
erts: Do not generate atoms on old latin1 external format
erts: Fix faulty ASSERT for failed dec_term
|
|
|
|
* ingela/openssl-version:
crypto: Update documentation to reflect new version policy
erts: Update configure check for OpenSSL
|
|
We should not assume that erl_tar will allow unpacking tar files
with absolute path names for archive members.
|
|
This is to ensure that files are recompiled if a .hrl file in the
current directory is changed.
|
|
* bjorn/compiler/unicode-atoms/OTP-14285:
Correct compile_SUITE:core_roundtrip/1
Atoms in Core Erlang must be encoded in UTF-8
|
|
Seems to solve some test case problems when heavily loaded
|
|
The test is supposed to compare the Core Erlang code that has been
printed and parsed back. It did compare and print any differences,
but it did not fail when there were differences.
Also fix problems with variable names and maps not comparing
equal when the inliner has been used.
|
|
core_scan will now support and require atoms encoded in UTF-8.
|
|
Fix for problem introduced with OTP-14140
|
|
* siri/ct/scale-on-valgrind:
[ct] Scale timetraps when running valgrind
|