aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2017-04-25Store abstract code in the Dbgi chunkJosé Valim
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.
2017-04-21Merge branch 'raimo/rand-dev/OTP-14295'Raimo Niskanen
* raimo/rand-dev/OTP-14295: Implement Xoroshiro116+ and improve statisticals
2017-04-21Implement Xoroshiro116+ and improve statisticalsRaimo Niskanen
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).
2017-04-21Merge branch 'bjorn/remove-r12-r15-compatibility' into run-travisBjörn Gustavsson
* 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)
2017-04-21Merge branch 'bjorn/dialyzer/add-typer/OTP-14336' into run-travisBjörn Gustavsson
* bjorn/dialyzer/add-typer/OTP-14336: Add smoke test for TypER Add back TypEr to the main OTP repository
2017-04-21Merge branch 'ingela/ssl/AEAD'Ingela Anderton Andin
* 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
2017-04-21Merge branch 'ingela/ssl/test-data'Ingela Anderton Andin
* ingela/ssl/test-data: ssl: Rewrite test data generation
2017-04-21ssl: Rewrite test data generationIngela Anderton Andin
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.
2017-04-20Add smoke test for TypERBjörn Gustavsson
2017-04-20Add back TypEr to the main OTP repositoryBjörn Gustavsson
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.
2017-04-20compile: Remove the r12 through r15 optionsBjörn Gustavsson
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.
2017-04-20test_server: Change compatibility to R16Björn Gustavsson
2017-04-20crashdump_helper: Change compatibility to R18Björn Gustavsson
Compatibility two releases back are tested, which implies R18.
2017-04-20Remove -compile(r12)Björn Gustavsson
b25725ec0f65 removed the test cases for testing the R12 protocol. There is no reason to keep compatibility with R12.
2017-04-20Merge pull request #1414 from michalmuskala/type-optimBjörn Gustavsson
Enhance type-driven optimisation in beam_type.erl
2017-04-20Merge branch 'lukas/erts/20_minor_fixes'Lukas Larsson
* 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
2017-04-20kernel: Add mem check to prim_file:large_write tcLukas Larsson
2017-04-19Enhance type-driven optimisation in beam_type.erlMichal Muskala
* 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
2017-04-19Merge branch 'sverker/remove-latin1-atom-encoding'Sverker Eriksson
AGAIN * sverker/remove-latin1-atom-encoding: tools: Fix more assumptions in lcnt about external format
2017-04-19Merge branch 'bjorn/stdlib/erl_tar/OTP-14278'Björn Gustavsson
* bjorn/stdlib/erl_tar/OTP-14278: erl_tar: Handle leading slashes and directory traversal attacks Don't create absolute path names in tar files
2017-04-18tools: Fix more assumptions in lcnt about external formatSverker Eriksson
Also tried to prepare for large creation.
2017-04-18Merge pull request #1412 from manuel-rubio/manuel-rubio/add-re-versionRickard Green
Add re:version/0 OTP-14347
2017-04-18ssh: fix dialyzer errorsHans Nilsson
2017-04-18Merge branch 'hasse/stdlib/linter_check_dialyzer/OTP-14323'Hans Bolinder
* hasse/stdlib/linter_check_dialyzer/OTP-14323: stdlib: Add checks of the dialyzer attribute to the linter
2017-04-17test for re:version/0Manuel Rubio
2017-04-17add re:version/0 documentation and update the copyright of the file to 2017Manuel Rubio
2017-04-13Merge branch 'hans/ssh/crypt_rand_uniform'Hans Nilsson
2017-04-13Merge branch 'hans/ssh/use_postpone'Hans Nilsson
2017-04-13Merge branch 'hans/ssh/rename_to_init'Hans Nilsson
2017-04-13ssh: re-write to use callback init/1Hans Nilsson
2017-04-13erl_tar: Handle leading slashes and directory traversal attacksBjörn Gustavsson
2017-04-13stdlib: Add checks of the dialyzer attribute to the linterHans Bolinder
The same checks are also performed by the Dialyzer.
2017-04-13ssl, dtls: Refactor so that DTLS records are handled correctly together with ↵Ingela Anderton Andin
AEAD handling
2017-04-13ssl, dtls: Correct integer type for sequence numberIngela Anderton Andin
2017-04-13Merge branch 'ingela/dtls/progress'Ingela Anderton Andin
* ingela/dtls/progress: dtls: Correct cookie map name dtls: Fix active once emulation for DTLS
2017-04-13dtls: Correct cookie map nameIngela Anderton Andin
2017-04-13dtls: Fix active once emulation for DTLSIngela Anderton Andin
2017-04-13Merge branch 'siri/make/include-path/ERL-395/OTP-14339'Siri Hansen
* siri/make/include-path/ERL-395/OTP-14339: [tools/make] Add current directory to include path
2017-04-12ssh: replace deprecated crypto:rand_uniformHans Nilsson
2017-04-12Merge branch sverker/remove-latin1-atom-encoding/OTP-14337Sverker Eriksson
* 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
2017-04-12ssh: change next_event to postponeHans Nilsson
2017-04-12Merge branch 'ingela/openssl-version'Ingela Anderton Andin
* ingela/openssl-version: crypto: Update documentation to reflect new version policy erts: Update configure check for OpenSSL
2017-04-12Don't create absolute path names in tar filesBjörn Gustavsson
We should not assume that erl_tar will allow unpacking tar files with absolute path names for archive members.
2017-04-12[tools/make] Add current directory to include pathSiri Hansen
This is to ensure that files are recompiled if a .hrl file in the current directory is changed.
2017-04-12Merge branch 'bjorn/compiler/unicode-atoms/OTP-14285'Björn Gustavsson
* bjorn/compiler/unicode-atoms/OTP-14285: Correct compile_SUITE:core_roundtrip/1 Atoms in Core Erlang must be encoded in UTF-8
2017-04-12ssh: added message_queue_data,off_heap to spawnHans Nilsson
Seems to solve some test case problems when heavily loaded
2017-04-12Correct compile_SUITE:core_roundtrip/1Björn Gustavsson
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.
2017-04-12Atoms in Core Erlang must be encoded in UTF-8Björn Gustavsson
core_scan will now support and require atoms encoded in UTF-8.
2017-04-12crypto: Increase prime to pass with FIPS-enabled cryptolibHans Nilsson
Fix for problem introduced with OTP-14140
2017-04-12Merge branch 'siri/ct/scale-on-valgrind'Siri Hansen
* siri/ct/scale-on-valgrind: [ct] Scale timetraps when running valgrind