aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-02-20Dialyzer should not throw away spec information because of overspecRichard Carlsson
2018-02-19Merge branch 'maint'Péter Dimitrov
* maint: inets: Prepare for release inets: Fix httpc crash on keep-alive connections Change-Id: If066f788c3fcb8b5c5a943892d3c03c201590e40
2018-02-19Merge branch 'peterdmv/inets/httpc_manager_crash/ERL-559/OTP-14908' into maintPéter Dimitrov
* peterdmv/inets/httpc_manager_crash/ERL-559/OTP-14908: inets: Prepare for release inets: Fix httpc crash on keep-alive connections Change-Id: I5900a425ed2b9034b1a1bf6040ee45e068438a83
2018-02-19Merge branch 'maint'John Högberg
2018-02-19Merge branch 'john/erts/fix-iolist-bitstring-badarg/OTP-14926' into maintJohn Högberg
2018-02-19Merge branch 'john/erts/fix-iovec-unaligned-binaries/OTP-14921' into maintJohn Högberg
2018-02-19Merge branch 'john/erts/ctx-to-binary-size-assert'John Högberg
2018-02-19Merge branch 'maint'Lukas Larsson
2018-02-19Merge pull request #1720 from mhssler/fix-assert-URKA-typoLukas Larsson
stdlib: Correct documentation typo
2018-02-19stdlib: Correct documentation typoMartin Hässler
2018-02-16Merge pull request #1700 from bjorng/bjorn/compiler/beam_blockBjörn Gustavsson
Combine blocks when running beam_block the second time
2018-02-15badarg on iolist_to_binary(Bitstring)John Högberg
When supplied without an enclosing list, bitstrings were returned as-is instead of badarging.
2018-02-15Handle unaligned binaries in enif_inspect_iovecJohn Högberg
2018-02-15Handle unaligned binaries in erlang:iolist_to_iovec/1John Högberg
A binary is a binary as long as its size in bits is evenly divisible by 8, regardless of whether it has a bit offset or not.
2018-02-15badarg on iolist_to_iovec(Bitstring)John Högberg
When supplied without an enclosing list, bitstrings were silently truncated to [] instead of badarging.
2018-02-15Merge branch 'maint'Hans Bolinder
* maint: dialyzer: Fix a crash
2018-02-15Merge branch 'hasse/dialyzer/fix_record_match/OTP-14911' into maintHans Bolinder
* hasse/dialyzer/fix_record_match/OTP-14911: dialyzer: Fix a crash
2018-02-15Test badarg when an improper list tail contains a bitstringJohn Högberg
This has always worked but we lacked test coverage for it.
2018-02-14Merge branch 'sverker/gc-move-opt'Sverker Eriksson
2018-02-14beam_block: Combine blocks when running beam_block the second timeBjörn Gustavsson
1a029efd1ad47f started to run the beam_block pass a second time, but it did not attempt to combine adjacent blocks. Combining adjacent blocks leads to many more opportunities for optimizations. After doing some diffing in generated code, it turns out that there is no benefit for beam_split to split out line instructions from blocks. It seems that the only reason it was done was to slightly simplify the implementation of the no_line_info option in beam_clean.
2018-02-14Disable CSE for floating point operationsBjörn Gustavsson
As a preparation for combining blocks before running beam_block for the second time, disable CSE for floating point operations because it will generate invalid code.
2018-02-14dialyzer: Fix a crashHans Bolinder
2018-02-14Merge branch 'maint'Björn Gustavsson
* maint: Update primary bootstrap Conflicts: bootstrap/bin/start.boot bootstrap/bin/start_clean.boot bootstrap/lib/compiler/ebin/beam_asm.beam bootstrap/lib/compiler/ebin/beam_jump.beam bootstrap/lib/compiler/ebin/beam_listing.beam bootstrap/lib/compiler/ebin/beam_type.beam bootstrap/lib/compiler/ebin/beam_validator.beam bootstrap/lib/compiler/ebin/compile.beam bootstrap/lib/compiler/ebin/core_pp.beam bootstrap/lib/compiler/ebin/v3_codegen.beam bootstrap/lib/compiler/ebin/v3_kernel_pp.beam bootstrap/lib/kernel/ebin/dist_util.beam bootstrap/lib/kernel/ebin/error_logger.beam bootstrap/lib/kernel/ebin/erts_debug.beam bootstrap/lib/kernel/ebin/group_history.beam bootstrap/lib/kernel/ebin/hipe_unified_loader.beam bootstrap/lib/kernel/ebin/kernel.app bootstrap/lib/kernel/ebin/os.beam bootstrap/lib/kernel/ebin/user.beam bootstrap/lib/stdlib/ebin/array.beam bootstrap/lib/stdlib/ebin/dets.beam bootstrap/lib/stdlib/ebin/edlin.beam bootstrap/lib/stdlib/ebin/erl_lint.beam bootstrap/lib/stdlib/ebin/ets.beam bootstrap/lib/stdlib/ebin/filelib.beam bootstrap/lib/stdlib/ebin/filename.beam bootstrap/lib/stdlib/ebin/gen_statem.beam bootstrap/lib/stdlib/ebin/lib.beam bootstrap/lib/stdlib/ebin/otp_internal.beam bootstrap/lib/stdlib/ebin/qlc.beam bootstrap/lib/stdlib/ebin/shell.beam bootstrap/lib/stdlib/ebin/stdlib.appup bootstrap/lib/stdlib/ebin/string.beam bootstrap/lib/stdlib/ebin/unicode_util.beam
2018-02-14Update primary bootstrapBjörn Gustavsson
2018-02-14Merge branch 'maint'Björn Gustavsson
* maint: Check that the stack is initialized when an exception may occur
2018-02-14Merge pull request #1712 from bjorng/bjorn/compiler/beam_validatorBjörn Gustavsson
Check that the stack is initialized when an exception may occur
2018-02-14Merge pull request #1713 from bjorng/bjorn/compiler/fix-unsafe-allocateBjörn Gustavsson
Fix unsafe use of 'allocate' where 'allocate_zero' should be used
2018-02-13Use smaller inputs in iovec testsJohn Högberg
Huge inputs weren't particularly useful and took forever to run, so this commit winds it down to a more sane level that still causes lots of yielding.
2018-02-13Merge branch 'maint'Sverker Eriksson
* maint: Updated OTP version Update release notes Update version numbers kernel: Add os:cmd/2 with max_size option # Conflicts: # OTP_VERSION # lib/kernel/doc/src/os.xml # lib/kernel/src/os.erl
2018-02-13Merge branch 'sverker/master/alloc-n-migration/ERIERL-88'Sverker Eriksson
2018-02-13Merge branch 'maint-20' into maintSverker Eriksson
* maint-20: Updated OTP version Update release notes Update version numbers erts: Add system_flags(erts_alloc,"+M?sbct *") erts: Add age order first fit allocator strategies erts: Refactor erl_ao_firstfit_alloc erts: Add migration options "acnl" and "acfml" kernel: Add os:cmd/2 with max_size option erts: Add more stats for mbcs_pool erts: Fix alloc_SUITE:migration stdlib: Make ets_SUITE memory check try again erts: Improve carrier pool search erts: Improve alloc_SUITE:migration erts: Refactor carrier dealloc migration
2018-02-13Merge branch 'maint'John Högberg
2018-02-13Merge branch 'john/erts/fix-fmt_double-overflow/PR-1706/OTP-14920' into maintJohn Högberg
2018-02-13Fix size of fmt_double()'s format_str[] bufferMikael Pettersson
fmt_double() may write up to 8 characters into its format_str[] buffer, which however only has room for 7 characters. This case could be triggered by a call to erts_printf_format() with any floating-point format that also includes #, and + or a space, which may be uncommon, but a nif or driver could issue it.
2018-02-13Merge branch 'maint'John Högberg
2018-02-13Merge branch 'john/tools/fix-lcnt-server-crash/PR-1711/OTP-14912' into maintJohn Högberg
2018-02-13Merge branch 'john/tools/autostart-lcnt-server/ERIERL-134/OTP-14913' into maintJohn Högberg
2018-02-13Don't crash lcnt server if information/0 is called before collect/0Péter Gömöri
2018-02-12Updated OTP versionOTP-20.2.3Erlang/OTP
2018-02-12Update release notesErlang/OTP
2018-02-12Update version numbersErlang/OTP
2018-02-12Merge branch 'sverker/maint-20/alloc-n-migration/ERIERL-88' into maint-20Erlang/OTP
* sverker/maint-20/alloc-n-migration/ERIERL-88: erts: Add system_flags(erts_alloc,"+M?sbct *") erts: Add age order first fit allocator strategies erts: Refactor erl_ao_firstfit_alloc erts: Add migration options "acnl" and "acfml" erts: Add more stats for mbcs_pool erts: Fix alloc_SUITE:migration stdlib: Make ets_SUITE memory check try again erts: Improve carrier pool search erts: Improve alloc_SUITE:migration erts: Refactor carrier dealloc migration
2018-02-12Merge branch 'lukas/kernel/os_cmd_max_size/maint-20/OTP-14823' into maint-20Erlang/OTP
* lukas/kernel/os_cmd_max_size/maint-20/OTP-14823: kernel: Add os:cmd/2 with max_size option
2018-02-12Merge 'sverker/maint-20/alloc-n-migration/ERIERL-88'Sverker Eriksson
into 'sverker/master/alloc-n-migration/ERIERL-88'
2018-02-12Merge 'sverker/maint-19/alloc-n-migration/ERIERL-88'Sverker Eriksson
into 'sverker/maint-20/alloc-n-migration/ERIERL-88' OTP-14915 OTP-14916 OTP-14917 OTP-14918
2018-02-12Automatically start lcnt server on first useJohn Högberg
lcnt:collect is documented as implicitly starting the lcnt server but didn't do so prior to this commit. I've decided to extend this behavior to all operations as the overhead is negligible and it's a bit more convenient to use.
2018-02-12Fix unsafe use of 'allocate' where 'allocate_zero' should be usedBjörn Gustavsson
The more aggressive optimizations of 'allocate_zero' introduced in cb6fc15c35c7e could produce unsafe code such as the following: {allocate,0,1}. {bif,element,{f,0},[{integer,1},{x,0}],{x,0}}. The code is not safe because if element/2 fails, the runtime system may scan the stack and find garbage that looks like a catch tag, and would most probably crash. Fix the problem by making beam_utils:is_killed/3 be more conservative when asked whether a Y register will be killed. Also fix an unsafe move upwards of an allocation instruction in beam_block.
2018-02-12Merge 'sverker/carrier-migration-improvements'Sverker Eriksson
into 'sverker/maint-19/alloc-n-migration/ERIERL-88'
2018-02-12erts: Add system_flags(erts_alloc,"+M?sbct *")Sverker Eriksson
to change sbct limit in runtime for chosen allocator type. With great power comes great responsibility.
2018-02-12erts: Add age order first fit allocator strategiesSverker Eriksson
ageffcaoff: Age First Fit Carrier, Address Order First Fit (within carrier) ageffcbf : Age First Fit Carrier, Best Fit (within carrier) ageffcaobf: Age First Fit Carrier, Address Order Best Fit (within carrier) Prefer old carriers, the older the better.