<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/stdlib/doc/src, branch maint-18</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>Prepare release</title>
<updated>2018-11-09T14:24:48+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2018-11-09T14:24:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=d8aef84f6ecb12f1367a3b9c783da1306b66a10c'/>
<id>d8aef84f6ecb12f1367a3b9c783da1306b66a10c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Optimize operator '--' and yield on large inputs</title>
<updated>2018-11-05T08:18:07+00:00</updated>
<author>
<name>John Högberg</name>
<email>john@erlang.org</email>
</author>
<published>2018-10-15T16:17:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=d98da38562ec79360b58eed87eced3a506f1ff6d'/>
<id>d98da38562ec79360b58eed87eced3a506f1ff6d</id>
<content type='text'>
The removal set now uses a red-black tree instead of an array on
large inputs, decreasing runtime complexity from `n*n` to
`n*log(n)`. It will also exit early when there are no more items
left in the removal set, drastically improving performance and
memory use when the items to be removed are present near the head
of the list.

This got a lot more complicated than before as the overhead of
always using a red-black tree was unacceptable when either of the
inputs were small, but this compromise has okay-to-decent
performance regardless of input size.

Co-authored-by: Dmytro Lytovchenko &lt;dmytro.lytovchenko@erlang-solutions.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The removal set now uses a red-black tree instead of an array on
large inputs, decreasing runtime complexity from `n*n` to
`n*log(n)`. It will also exit early when there are no more items
left in the removal set, drastically improving performance and
memory use when the items to be removed are present near the head
of the list.

This got a lot more complicated than before as the overhead of
always using a red-black tree was unacceptable when either of the
inputs were small, but this compromise has okay-to-decent
performance regardless of input size.

Co-authored-by: Dmytro Lytovchenko &lt;dmytro.lytovchenko@erlang-solutions.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Prepare release</title>
<updated>2016-03-14T09:46:23+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2016-03-14T09:46:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=0f8afe80c6582f7affd17f36dc9cb48cc7946713'/>
<id>0f8afe80c6582f7affd17f36dc9cb48cc7946713</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>s/is/are</title>
<updated>2016-02-23T15:16:29+00:00</updated>
<author>
<name>Henrik Nord</name>
<email>henrik@erlang.org</email>
</author>
<published>2016-02-09T09:59:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=a435cefa6ee51bbec400836195359c94682a1008'/>
<id>a435cefa6ee51bbec400836195359c94682a1008</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'nybek/speed_up_supervisor_count_children' into maint</title>
<updated>2016-02-10T10:13:35+00:00</updated>
<author>
<name>Siri Hansen</name>
<email>siri@erlang.org</email>
</author>
<published>2016-02-10T10:10:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=8fba155bdc0b45f0504756d1ea695d9c53a44f80'/>
<id>8fba155bdc0b45f0504756d1ea695d9c53a44f80</id>
<content type='text'>
* nybek/speed_up_supervisor_count_children:
  Speed up supervisor:count_children/1; simple_one_for_one
  Add supervisor:get_callback_module/1

OTP-13290
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* nybek/speed_up_supervisor_count_children:
  Speed up supervisor:count_children/1; simple_one_for_one
  Add supervisor:get_callback_module/1

OTP-13290
</pre>
</div>
</content>
</entry>
<entry>
<title>Speed up supervisor:count_children/1; simple_one_for_one</title>
<updated>2016-02-03T11:14:11+00:00</updated>
<author>
<name>Rory Byrne</name>
<email>rory@nybek.com</email>
</author>
<published>2015-05-28T18:41:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=264a5e804d6e23bf6c6916887669760cbf243caa'/>
<id>264a5e804d6e23bf6c6916887669760cbf243caa</id>
<content type='text'>
Speed up supervisor:count_children/1 for simple_one_for_one
supervisors. This is achieved by avoiding looping through all the
child process and verifying that each one is alive.

For a supervisor with 100,000 'temporary' children the count-time will
drop from approx 25ms to about 0.005ms.

For a supervisor with 100,000 'permanent' or 'transient' children the
count-time will drop from approx 30ms to about 0.005ms.

This avoids having the supervisor block for an extended period while
the count takes place. Under normal circumstances the accuracy of the
result should also improve since the duration is too short for many
processes to die during the count.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Speed up supervisor:count_children/1 for simple_one_for_one
supervisors. This is achieved by avoiding looping through all the
child process and verifying that each one is alive.

For a supervisor with 100,000 'temporary' children the count-time will
drop from approx 25ms to about 0.005ms.

For a supervisor with 100,000 'permanent' or 'transient' children the
count-time will drop from approx 30ms to about 0.005ms.

This avoids having the supervisor block for an extended period while
the count takes place. Under normal circumstances the accuracy of the
result should also improve since the duration is too short for many
processes to die during the count.
</pre>
</div>
</content>
</entry>
<entry>
<title>Introduce time warp safe replacement for safe_fixed option</title>
<updated>2016-01-20T10:10:37+00:00</updated>
<author>
<name>Rickard Green</name>
<email>rickard@erlang.org</email>
</author>
<published>2016-01-13T17:33:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=dc8e62f33ad0ca7a772ec74d67b6d3e157f639b4'/>
<id>dc8e62f33ad0ca7a772ec74d67b6d3e157f639b4</id>
<content type='text'>
The new time warp safe option is safe_fixed_monotonic_time which
gives erlang:monotonic_time().

The safe_fixed option was also slightly changed. It now gives
erlang:timestamp() instead of erlang:now(). This has however
not been documented, so it is considered a compatible change.

The above effects both ets, and dets.

This commit also include the bugfix OTP-13239 for
dets:info(Tab, safe_fixed). The timestamp in the result returned
by dets:info(Tab, safe_fixed) was unintentionally broken as a
result of the time API rewrites in OTP 18.0.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The new time warp safe option is safe_fixed_monotonic_time which
gives erlang:monotonic_time().

The safe_fixed option was also slightly changed. It now gives
erlang:timestamp() instead of erlang:now(). This has however
not been documented, so it is considered a compatible change.

The above effects both ets, and dets.

This commit also include the bugfix OTP-13239 for
dets:info(Tab, safe_fixed). The timestamp in the result returned
by dets:info(Tab, safe_fixed) was unintentionally broken as a
result of the time API rewrites in OTP 18.0.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update release notes</title>
<updated>2015-12-15T08:45:27+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2015-12-15T08:45:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=f4a0ae1736216feac5ae053610644bba2e12ed34'/>
<id>f4a0ae1736216feac5ae053610644bba2e12ed34</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'riverrun/maint' into maint</title>
<updated>2015-11-20T09:01:48+00:00</updated>
<author>
<name>Zandra</name>
<email>zandra@erlang.org</email>
</author>
<published>2015-11-20T09:01:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=b5e4c4533ed5e407804b825ecab65164161a0060'/>
<id>b5e4c4533ed5e407804b825ecab65164161a0060</id>
<content type='text'>
* riverrun/maint:
  Recommend against using crypto:rand_bytes
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* riverrun/maint:
  Recommend against using crypto:rand_bytes
</pre>
</div>
</content>
</entry>
<entry>
<title>Recommend against using crypto:rand_bytes</title>
<updated>2015-11-05T23:48:41+00:00</updated>
<author>
<name>David Whitlock</name>
<email>alovedalongthe@gmail.com</email>
</author>
<published>2015-11-05T05:47:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=cdbe44920678d68a9936e1ab504bc1c8aad65847'/>
<id>cdbe44920678d68a9936e1ab504bc1c8aad65847</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
