aboutsummaryrefslogtreecommitdiffstats
path: root/erts
AgeCommit message (Collapse)Author
2018-01-15erts: Refactor and cleanup sys_double_to_chars_fastSverker Eriksson
Replace long long with Uint64
2018-01-15erts: Fix float_to_list(F, [{decimals,D}]).Sverker Eriksson
Example symptom: 1> float_to_list(0.145, [{decimals,1}]). "0.2" There were two problems in sys_double_to_chars_fast 1. Most serious was adding 0.55555555 / (10^D) instead of 0.5 / (10^D) which imposed a 5.5% risk of a faulty rounding up. 2. Using fixpoint for frac_part which lost significant bits if F < 0.5
2018-01-15erts: Fix buffer overflow bug in erts_printf %fSverker Eriksson
Sign character was not accounted for. Ex: float_to_list(-3.1265538967899625e+69, [{decimals,16}]).
2018-01-15stdlib: Handle Unicode when formatting stacktracesHans Bolinder
See also ERL-553 and ERL-544 (commit c3ddb0f).
2018-01-11Merge branch 'rickard/file-encoding-stacktraces/OTP-14847/ERL-544' into maintRickard Green
* rickard/file-encoding-stacktraces/OTP-14847/ERL-544: Fix encoding of filenames in stacktraces
2018-01-11Fix encoding of filenames in stacktracesRickard Green
2018-01-11Merge branch 'rickard/libs-libz/ERL-529/OTP-14840' into maintRickard Green
* rickard/libs-libz/ERL-529/OTP-14840: Do not add -lz to LIBS; keep it in Z_LIB
2018-01-09erts: Fix term_to_binary/2 specSverker Eriksson
2018-01-04erts: Add non fatal big binary creation for test purposeSverker Eriksson
2018-01-04erts: Refactor ProcBin creationSverker Eriksson
into utility functions.
2018-01-03Fail if ':' is passed to binary_to_integer/2Frank Hunleth
Before: 1> binary_to_integer(<<":">>, 16). 3 After: 1> binary_to_integer(<<":">>, 16). ** exception error: bad argument in function binary_to_integer/2 called as binary_to_integer(<<":">>,16) Prior to this change, both list_to_integer/2 and binary_to_integer/2 would convert strings with values between ASCII '9' up to '0'+base for base > 10. For example, when converting in base 16, you could pass ':', ';', '<', '=', '>', and '?' without getting an exception. This was due to a missing check in c2int_is_invalid_char(). This change adds the missing check and a regression test for passing ':'. It also simplifies the code and tightens up an out-of-bounds check to make it off-by-one rather than off-by-two.
2018-01-03Merge PR-1664 from sverker/sverker/hipe-bs_put_utf8-gc-bug OTP-14850Sverker Eriksson
Fix GC bug for HiPE primop bs_put_utf8
2018-01-03Add PRIMOP_ABI_VSN to erts checksumSverker Eriksson
in order to detect incompatible changes in primop interface (which we just did for bs_put_utf8) and refuse hipe loading.
2018-01-03Fix bug in hipe primop bs_put_utf8Sverker Eriksson
by preventing it from doing GC, which generated code relies on.
2017-12-21Merge branch 'sverker/cuddle-valgrind' into maintSverker Eriksson
2017-12-20erts: Add more stats for mbcs_poolSverker Eriksson
similar to the ones in OTP-19.2.3.1
2017-12-20erts: Fix alloc_SUITE:migrationSverker Eriksson
It crashed due to recursive calls to alloc_util in carrier initialization test callback.
2017-12-20erts: Improve carrier pool searchSverker Eriksson
* Give back carrier to owner when put in pool with use of dd-queue. * Replace pooled_list with pooled_tree for more efficient search of all owned pooled carriers. * Remove traitor_list as it does not serve much purpose anymore. * Add HOMECOMING bit flag in crr->allctr atomic to (1) avoid double enqueue into dd-enqueue. (2) trigger read barrier in get_used_allctr for newly received carriers.
2017-12-20erts: Improve alloc_SUITE:migrationSverker Eriksson
to mix it up with some realloc calls.
2017-12-20erts: Refactor carrier dealloc migrationSverker Eriksson
by adding a dedicated 'homecoming_dd_block' to use in dd-queue. + Preparation for dd-queue-migration of non-empty carriers. + Get rid of ugly hack where blk->carrier pointer is overwritten by dd-queue and then have to be restored.
2017-12-18Do not add -lz to LIBS; keep it in Z_LIBRickard Green
2017-12-13erts: Add core dumps from valgrind to z_SUITE searchSverker Eriksson
2017-12-12erts: Trim driver_SUITE:smp_select for slow valgrindSverker Eriksson
Symptom: "Closing pipe in state Waiting. Event lost?" Snake oil: Do erlang:yield() instead of busy spinning in "Waiting" state.
2017-12-08Update release notesErlang/OTP
2017-12-08Update version numbersErlang/OTP
2017-12-05Merge branch 'john/erts/lcnt-fix-reg-proc-names/OTP-14803' into maintJohn Högberg
2017-12-04Fix process name resolution in lcnt resultsJohn Högberg
2017-12-04Merge pull request #1628 from mikpe/erts-hipe-more-print-fixesBjörn Gustavsson
fix output formatting in several HiPE debug BIFs OTP-14804
2017-11-30Merge PR-1636 from nox/enif-reallocSverker Eriksson
Document enif_realloc and pointer alignment guarantees
2017-11-30Merge pull request #1633 from sunboshan/atom-size-fixBjörn Gustavsson
Fix integer overflow when set a large maximum value for atom table OTP-14796
2017-11-27Merge branch 'sverker/run_erl-log-gen-doc' into maintSverker Eriksson
2017-11-27Merge branch 'john/erts/fix-nif-ioq-version/OTP-14779' into maintJohn Högberg
2017-11-24Fix purging of modules with "fake literals"Björn Gustavsson
When compiling Erlang source code, the literal area for the module can only contain data types that have a literal syntax. However, it is possible to sneak in other data types (such as references) in the literal pool by compiling from abstract or assembly code. Those "fake literals" would work fine, but would crash the runtime system when the module containing the literals was purged. Although fake literals are not officially supported, the runtime should not crash when attempting to use them. Therefore, fix the garbage collection of literals and releasing of literal areas. https://bugs.erlang.org/browse/ERL-508
2017-11-24Merge branch 'bjorn/base64-in-dumps/OTP-14686' into maintBjörn Gustavsson
* bjorn/base64-in-dumps/OTP-14686: Use base64 encoding in crash dumps Correct parsing of sub binaries Generalize passing of options for decoding
2017-11-23run_erl: Cleanup buggy retry of closeSverker Eriksson
The retry loop wasn't working anyway as it tested fd<0 instead of res. So, there is no real semantic change here.
2017-11-23Document alignment guarantees of enif_alloc and enif_reallocAnthony Ramine
2017-11-21Document enif_reallocAnthony Ramine
2017-11-21Merge branch 'sverker/nif-debug-bin-check' into maintSverker Eriksson
2017-11-21Use base64 encoding in crash dumpsBjörn Gustavsson
This will reduce the size of crash dumps, especially if there are large binaries.
2017-11-20Fix max atom size overflow on 64-bits Erlang by lowering theBoshan Sun
MAX_ATOM_TABLE_SIZE Currently, the max atom size on 64-bits Erlang is ((UWORD_CONSTANT(1) << 32) = 4294967296 This number will cause the range of atom size to be displayed as [8192-0]. Also, the +t option for max atom size will be parsed as a long type, and assigned to a int variable erts_atom_table_size (erl_init.c), which will cause integer overflow if the number is larger than the maximum value a 4-bytes signed integer can hold ((1 << 31) - 1) = 2147483647 Therefore, during the comparison erts_atom_table_size < MIN_ATOM_TABLE_SIZE any number above 2147483647 will be come negative, and causing the condition to be true, which then errored out as bad atom table size. Hence, the actual max atom size is same as the max signed int value.
2017-11-20Fix integer overflow when set a large maximum value for atom tableBoshan Sun
When setting maximum atom table size using +t option, there will be a integer overflow for a large size. $ erl +t2147482625 ll_alloc: Cannot allocate 18446744073692774400 bytes of memory (of type "atom_tab"). The overflow is caused by the arithmetic operations on int type. When 2147482625 + 1024 it will become -2147483647 due to the signed integerger overflow. Then the result will be resized to Uint type, which is a unsigned long type, the negative int will first be expand to 64 bits long via sign extension, then change to unsigned type, which becomes 18446744073692774400. The fix is done by convert `limit` to Uint type before doing any arithmetic operation. This will expand variable to 64 bits long type via zero extension, then the following operation are all positive, therefore no overflow will happen. Note: here we assume the int `limit` passed in is always positive. If some future change cause the `limit` passed in maybe negative, then the current fix will also cause overflow.
2017-11-20Merge branch 'maint-20' into maintHans Nilsson
* maint-20: Updated OTP version Prepare release ssh: testcases for space trailing Hello msg ssh: Don't remove trailing WS in Hello msg ssh: dialyzer fixes ssh: Fix broken error handling during session setup Remove invalid EINTR loop around close(2) Conflicts: lib/ssh/test/ssh_options_SUITE.erl
2017-11-20Merge branch 'lukas/system/improve_profile_docs/OTP-14633' into maintLukas Larsson
* lukas/system/improve_profile_docs/OTP-14633: erts: Add term2bin note about encoding guarantee Fix broken link in INSTALL howto system: Add info to profiling effeciency guide Update message queue and pinfo binary docs kernel: Clarify gen_tcp:listen documentation system: Add External OSS tools section to profiling guilde
2017-11-20Merge branch 'lukas/docs/xmllint_fixes/OTP-14721' into maintLukas Larsson
* lukas/docs/xmllint_fixes/OTP-14721: ssl/ssh: Remove/ignore unused XML_FILES doc files Refactor xmllint check and make it fail on failure Add toplevel xmllint make target Conflicts: lib/crypto/doc/src/Makefile
2017-11-17erts: Clarify RUN_ERL_LOG_GENERATIONSSverker Eriksson
2017-11-17Prepare releaseErlang/OTP
2017-11-17Merge branch 'rickard/node-mon-proc-exit-race/maint-20/OTP-14781' into maint-20Erlang/OTP
* rickard/node-mon-proc-exit-race/maint-20/OTP-14781: Fix triggering of node monitors
2017-11-17Merge branch 'john/erts/fix-close-eintr/OTP-14775' into maint-20Erlang/OTP
* john/erts/fix-close-eintr/OTP-14775: Remove invalid EINTR loop around close(2)
2017-11-16Merge branch 'maint' of github.com:erlang/otp into maintHans Nilsson
2017-11-16Merge branch 'maint-18' into maintHans Nilsson
* maint-18: Updated OTP version Prepare release ssh: Unicode encoding fix ssh: testcases for space trailing Hello msg Remove unused test include file from test suites eldap: Repair Makefile ssh: Don't remove trailing WS in Hello msg Conflicts: OTP_VERSION erts/doc/src/notes.xml erts/vsn.mk lib/compiler/doc/src/notes.xml lib/compiler/vsn.mk lib/crypto/test/blowfish_SUITE.erl lib/eldap/doc/src/notes.xml lib/eldap/vsn.mk lib/inets/test/httpd_load.erl lib/inets/test/httpd_mod.erl lib/inets/test/old_httpd_SUITE.erl lib/ssh/doc/src/notes.xml lib/ssh/vsn.mk lib/stdlib/test/zip_SUITE.erl otp_versions.table