aboutsummaryrefslogtreecommitdiffstats
path: root/erts/doc/src
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2016-08-29 17:52:10 +0200
committerRickard Green <[email protected]>2016-08-29 17:52:10 +0200
commit928d74ffa09bd56652d9390b02fa51ef51d71d51 (patch)
treebfb9cd9e76d4ef766dbcd999adf16c700350b399 /erts/doc/src
parent69d442f8afc67aef33c70d68d7eaab2bdad1400f (diff)
parent9d0638216d35ca0f21c1eea20f8daa3992ac4f71 (diff)
downloadotp-928d74ffa09bd56652d9390b02fa51ef51d71d51.tar.gz
otp-928d74ffa09bd56652d9390b02fa51ef51d71d51.tar.bz2
otp-928d74ffa09bd56652d9390b02fa51ef51d71d51.zip
Merge branch 'rickard/fun-purge-bug/OTP-13809' and 'rickard/new-purge-strategy/OTP-13833' into maint
* rickard/fun-purge-bug/OTP-13809: Fix purge of code Reclaim literal area after purge has completed Separate literal area from code Conflicts: erts/doc/src/erlang.xml erts/emulator/beam/beam_bif_load.c erts/emulator/beam/erl_init.c erts/preloaded/ebin/init.beam
Diffstat (limited to 'erts/doc/src')
-rw-r--r--erts/doc/src/erlang.xml23
1 files changed, 23 insertions, 0 deletions
diff --git a/erts/doc/src/erlang.xml b/erts/doc/src/erlang.xml
index 2b7a3b85e5..51ebddc155 100644
--- a/erts/doc/src/erlang.xml
+++ b/erts/doc/src/erlang.xml
@@ -776,6 +776,29 @@ Z = erlang:adler32_combine(X,Y,iolist_size(Data2)).</code>
by passing option <c>{allow_gc, false}</c>.</p>
</item>
</taglist>
+ <note>
+ <p>
+ Up until ERTS version 8.*, the check process code operation
+ checks for all types of references to the old code. That is,
+ direct references (e.g. return addresses on the process
+ stack), indirect references (<c>fun</c>s in process
+ context), and references to literals in the code.
+ </p>
+ <p>
+ As of ERTS version 9.0, the check process code operation
+ only checks for direct references to the code. Indirect
+ references via <c>fun</c>s will be ignored. If such
+ <c>fun</c>s exist and are used after a purge of the old
+ code, an exception will be raised upon usage (same as
+ the case when the <c>fun</c> is received by the process
+ after the purge). Literals will be taken care of (copied)
+ at a later stage. This behavior can as of ERTS version
+ 8.1 be enabled when
+ <seealso marker="doc/installation_guide:INSTALL#Advanced-configuration-and-build-of-ErlangOTP_Configuring">building OTP</seealso>,
+ and will automatically be enabled if dirty scheduler
+ support is enabled.
+ </p>
+ </note>
<p>See also <seealso marker="kernel:code">
<c>kernel:code(3)</c></seealso>.</p>
<p>Failures:</p>