aboutsummaryrefslogtreecommitdiffstats
path: root/erts
AgeCommit message (Collapse)Author
2017-11-03Prevent hipe_bs_validate_unicode from doing GCSverker Eriksson
Fix for x86_64 only. The calling native code can not handle a GC as it has a raw pointer where to write the binary data. If a GC happens the data (utf32) will be written to the old deallocated heap.
2017-11-02Merge branch 'john/erts/msacc-dirty-schedulers/OTP-14707'John Högberg
2017-11-02Only apply EOS behaviors if there's pending dataJohn Högberg
2017-11-01Merge pull request #1592 from falkevik/sctp_return_only_connect_errorsRaimo Niskanen
OTP-13760 SCTP connect could return error even if the connect is ongoing
2017-11-01beam_makeops: Strengthen the checking of transformationsBjörn Gustavsson
Any type that is a lower-case letter is allowed in a transformation, even though some of them don't make sense, could cause compilation errors when building the emulator, or crash at runtime. For example, the type 'z' is emitted by the compiler, but eaten by the loader before the transform engine can see it. Another example is the 'q' type, which would crash the emulator if it was used on the right side of a transformation rule. In beam_makeops, define explicitly which types that are allowed in patterns (on the left side) and in construction (on the right side). Using that information, check the transformation rules thoroughly and reject operands that don't make sense. While we are it, also correct some misleading comments.
2017-10-30Merge branch 'lukas/erts/misc_fixes'Lukas Larsson
* lukas/erts/misc_fixes: erts: Fix a bunch of compiler warnings kernel: Fix gen_tcp_misc indentation erts: Fail port_SUITE:huge_env if error code > 127 erts: Add lcnt prototype for dist locks update
2017-10-30erts: Fix a bunch of compiler warningsLukas Larsson
2017-10-30Merge branch 'lukas/erts/fix_no_dot_makefile_dep/OTP-14439'Lukas Larsson
* lukas/erts/fix_no_dot_makefile_dep/OTP-14439: erts: missing makefile dependency
2017-10-30erts: missing makefile dependencyJohn Högberg
2017-10-30Merge branch 'lukas/erts/pgo/OTP-14604'Lukas Larsson
* lukas/erts/pgo/OTP-14604: erts: Only do PGO if gcc supports -fprofile-correction
2017-10-30Merge pull request #1610 from bjorng/bjorn/erts/is_builtin/ERL-500/OTP-14713Björn Gustavsson
Correct erlang:is_builtin/3 for apply/2 and yield/0
2017-10-30Merge branch 'maint'Björn Gustavsson
* maint: erl_process_dump: Don't assume that literals can be found Remove one superfluous closing parenthesis in oam_intro.xml
2017-10-30erl_process_dump: Don't assume that literals can be foundBjörn Gustavsson
Native code does not register its literals in the code header for the loaded code. Therefore, a literal created by native code can not be found by mark_literal(). Ignore literals that can't be found instead of crashing (the crasdump_viewer will report such literals as incomplete heap data, but will not crash).
2017-10-27Merge branch 'lukas/erts/gc-docs'Lukas Larsson
* lukas/erts/gc-docs: erts: Add Garbage Collection internal docs
2017-10-27erts: Add Garbage Collection internal docsLukas Larsson
2017-10-27erts: Correct a link in erlang(3)Hans Bolinder
2017-10-27erts: Improve some links in erlang(3)Hans Bolinder
Use the "anchor" attribute to improve placement of anchors in conjunction with the "clause_i" attribute.
2017-10-27Correct erlang:is_builtin/3 for apply/2 and yield/0Björn Gustavsson
erlang:is_builtin(erlang, M, F) returns false for apply/2 and yield/0. The documentation for erlang:is_builtin/3 says that it returns true for BIFs that are implemented in C. apply/2 and yield/0 are implemented in C (as BEAM instructions), and therefore the correct return value is true. Also see a similar argument that was made for apply/3 in the past: http://erlang.org/pipermail/erlang-bugs/2015-October/005101.html https://bugs.erlang.org/browse/ERL-500
2017-10-25sctp: change connect to only return connect errorsJonas Falkevik
gen_sctp:connect_init/4 could return error even though the connect are in progress. I.e. connect on socket returned "in progress". The error can come from packet_inet_output() which is checking the socket for errors. The issue here is that from erlang you don't think the connect is still ongoing. But you will receive a sctp_assoc_change message later on.
2017-10-25Stop assuming that all schedulers are managed when updating msaccJohn Högberg
This fixes statistics_SUITE:msacc when dirty schedulers are used during the test.
2017-10-25erts: Only do PGO if gcc supports -fprofile-correctionLukas Larsson
2017-10-25Merge branch 'maint'John Högberg
* maint: Updated OTP version Update release notes Update version numbers erts: Fix so that bind correct schedulers Update version Fix error handling when decoding an AVP with an alternate dictionary Remove unused function arguments Fix faulty recursion vsn -> 2.1.2 Update appup for ERIERL-14684 Fix speling error 'sndbuf' -> 'recbuf' Add zlib:set_controlling_process/2
2017-10-25Merge branch 'maint-20' into maintJohn Högberg
* maint-20: Updated OTP version Update release notes Update version numbers erts: Fix so that bind correct schedulers Update version Fix error handling when decoding an AVP with an alternate dictionary Remove unused function arguments Fix faulty recursion vsn -> 2.1.2 Update appup for ERIERL-14684 Fix speling error 'sndbuf' -> 'recbuf' Add zlib:set_controlling_process/2
2017-10-25Update release notesErlang/OTP
2017-10-25Update version numbersErlang/OTP
2017-10-25Merge branch 'lukas/erts/fix-cpu-bind-w-modifies-scheduler-avail/OTP-14694' ↵Erlang/OTP
into maint-20 * lukas/erts/fix-cpu-bind-w-modifies-scheduler-avail/OTP-14694: erts: Fix so that bind correct schedulers
2017-10-23erts: Fix so that bind correct schedulersLukas Larsson
When the cpu ids and scheduler ids don't match, the end schedulers could end up not being bound when they should be. example: > taskset -c 1-3 erl +S 4 +sbts > erlang:system_info(scheduler_bindings). {1,2,3,unbound} This fix makes it so that all cores are used to bind schedulers.
2017-10-23Merge branch 'bjorn/compiler/match-literals'Björn Gustavsson
* bjorn/compiler/match-literals: Optimize instructions for comparing a register with a literal Optimize matching of literals for single-valued types
2017-10-21Optimize instructions for comparing a register with a literalBjörn Gustavsson
We can avoid calling eq() from the is_eq_exact_literal/3 and is_ne_exact_literal/3 instructions if the source operand is an immediate (since a literal is either a boxed or a list, never an immediate).
2017-10-20Merge branch 'maint'Björn Gustavsson
* maint: Bump version of crash dumps to 0.4 Verify that binaries of different sizes are dumped correctly Don't dump literal areas that are not referenced at all Dump literals separately to avoid incomplete heap data Implement dumping of maps in crash dumps Buffer writing of crash dumps Conflicts: erts/emulator/beam/erl_alloc.types
2017-10-20Merge branch 'bjorn/improve-crash-dumps/OTP-14685' into maintBjörn Gustavsson
* bjorn/improve-crash-dumps/OTP-14685: Bump version of crash dumps to 0.4 Verify that binaries of different sizes are dumped correctly Don't dump literal areas that are not referenced at all Dump literals separately to avoid incomplete heap data Implement dumping of maps in crash dumps Buffer writing of crash dumps
2017-10-18erts: Fail port_SUITE:huge_env if error code > 127Lukas Larsson
This can happen for instance if erl_child_setup segfaults before it can do the execv.
2017-10-18erts: Add lcnt prototype for dist locks updateLukas Larsson
2017-10-18Merge branch 'bjorn/erts/cuddle-with-tests'Björn Gustavsson
* bjorn/erts/cuddle-with-tests: Eliminate use of deprecated functions in string Eliminate warnings for ignoring the result of an expression
2017-10-18Bump version of crash dumps to 0.4Björn Gustavsson
2017-10-18Don't dump literal areas that are not referenced at allBjörn Gustavsson
2017-10-18Dump literals separately to avoid incomplete heap dataBjörn Gustavsson
When a literal was used from several processes, the literal would be dumped in only one of the processes. The other processes that referenced the literals would have incomplete heap data.
2017-10-18Implement dumping of maps in crash dumpsBjörn Gustavsson
Maps would be dumped as the atom 'undefined', which is not very informative.
2017-10-18Buffer writing of crash dumpsBjörn Gustavsson
Writing of crash dumps were done using unbuffered IO. This is slow since many small writes are done. Use a FILE* with an allocated buffer to obtain buffered IO. I wrote a small test program that created 50000 binaries of 200 bytes each and then created a crash dump. The crash dumping was an order of magnitude faster with buffered IO than without.
2017-10-18Merge branch 'maint'Lukas Larsson
2017-10-18Merge branch 'lukas/erts/win_user_home_dir/OTP-14691' into maintLukas Larsson
* lukas/erts/win_user_home_dir/OTP-14691: erts: Use PROFILE dir as home on windows
2017-10-17Merge branch 'sverker/on_load-nonblocking/OTP-14680'Sverker Eriksson
* sverker/on_load-nonblocking/OTP-14680: erts: Remove scheduler blocking during finish_after_on_load_2
2017-10-17Merge branch 'maint'Sverker Eriksson
2017-10-17Merge branch 'sverker/dist-send-noreply-opt/OTP-14689' into maintSverker Eriksson
* sverker/dist-send-noreply-opt/OTP-14689: erts: Improve distribution send operations
2017-10-17erts: Add 'used' option to binary_to_term/2Sverker Eriksson
2017-10-17Merge branch 'dgud/dot_erlang/OTP-14439'Dan Gudmundsson
* dgud/dot_erlang/OTP-14439: fixup! Do not load .erlang from current dir erlc: Do not load .erlang escript: Do not load .erlang dialyzer: Do not load .erlang reltool: Add no_dot_erlang bootfiles Enable usage of no_dot_erlang in bootstrap Do not load .erlang from current dir
2017-10-16erts: Cleanup binary_SUITE:termsSverker Eriksson
Remove try-catch which must be for some old bitstring limitation.
2017-10-16erts: Refactor binary_to_term/1/2Sverker Eriksson
Reduce number of arguments to binary_to_term_int and use the context struct instead.
2017-10-16Merge branch 'maint'Sverker Eriksson
2017-10-16Merge branch 'sverker/cerl-rr' into maintSverker Eriksson
* sverker/cerl-rr: erts: Add -rr option to cerl start script