<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/erts/preloaded/src, branch bjorn/contributing-1</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>Merge branch 'maint-19' into maint</title>
<updated>2016-11-09T10:31:01+00:00</updated>
<author>
<name>Björn-Egil Dahlberg</name>
<email>egil@erlang.org</email>
</author>
<published>2016-11-09T10:31:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=2bc52f6dd31d114b1a2d3cb7ad0a12b0b209beff'/>
<id>2bc52f6dd31d114b1a2d3cb7ad0a12b0b209beff</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix performance bug in erl_prim_loader:get_modules/{2,3}</title>
<updated>2016-11-05T09:03:25+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2016-11-05T08:02:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=4fe94be102150d2b2b31f188a8ef045209e79f8c'/>
<id>4fe94be102150d2b2b31f188a8ef045209e79f8c</id>
<content type='text'>
The erl_prim_loader:get_modules/{2,3} functions were introduced in
cd283583f8. Unfortunately, while the functions worked correctly, there
was a bug in that many garbage maessages would be sent to the
erl_prim_loader process.  The number of extra messages depended on
both the length of the code path and of the number of modules that
were fetched.  The messages were ignored and ultimately discarded,
causing no harm except for a performance degradation and increase of
the heap size for the erl_prim_loader process.

The following functions were hit by the performance bug:

  code:atomic_load/1
  code:ensure_modules_loaded/1
  code:prepare_loading/1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The erl_prim_loader:get_modules/{2,3} functions were introduced in
cd283583f8. Unfortunately, while the functions worked correctly, there
was a bug in that many garbage maessages would be sent to the
erl_prim_loader process.  The number of extra messages depended on
both the length of the code path and of the number of modules that
were fetched.  The messages were ignored and ultimately discarded,
causing no harm except for a performance degradation and increase of
the heap size for the erl_prim_loader process.

The following functions were hit by the performance bug:

  code:atomic_load/1
  code:ensure_modules_loaded/1
  code:prepare_loading/1
</pre>
</div>
</content>
</entry>
<entry>
<title>erts: Correct type declaration of match specification head</title>
<updated>2016-11-01T09:16:39+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2016-10-26T11:46:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=cc2503f49e9fa445290740ebd11f1222431f5bd9'/>
<id>cc2503f49e9fa445290740ebd11f1222431f5bd9</id>
<content type='text'>
Bug reported by Peti Gömöri &lt;gomoripeti@gmail.com&gt;.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bug reported by Peti Gömöri &lt;gomoripeti@gmail.com&gt;.
</pre>
</div>
</content>
</entry>
<entry>
<title>erts: Fix -profile_boot 'true'|'false' parsing</title>
<updated>2016-10-10T13:37:34+00:00</updated>
<author>
<name>Björn-Egil Dahlberg</name>
<email>egil@erlang.org</email>
</author>
<published>2016-10-10T13:37:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=0b28761f8f4c41107bf94528b044e000fd1da166'/>
<id>0b28761f8f4c41107bf94528b044e000fd1da166</id>
<content type='text'>
Strictly speaking 'true' and 'false' arguments is not necessary,
but it should work if supplied.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Strictly speaking 'true' and 'false' arguments is not necessary,
but it should work if supplied.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'raimo/diffserv-socket-option/OTP-13582' into maint</title>
<updated>2016-09-15T13:20:32+00:00</updated>
<author>
<name>Raimo Niskanen</name>
<email>raimo@erlang.org</email>
</author>
<published>2016-09-15T13:20:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=996a0630f2d20557c2f981106a4c316ac6a360ff'/>
<id>996a0630f2d20557c2f981106a4c316ac6a360ff</id>
<content type='text'>
* raimo/diffserv-socket-option/OTP-13582:
  Tune 'tclass' semantics
  Implement IPV6_TCLASS
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* raimo/diffserv-socket-option/OTP-13582:
  Tune 'tclass' semantics
  Implement IPV6_TCLASS
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't leak old code when loading a modules with an on_load function</title>
<updated>2016-09-14T10:54:54+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2016-09-05T14:16:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=c70ca686fe269db6079a2ca1c7e09cdfc0cfa903'/>
<id>c70ca686fe269db6079a2ca1c7e09cdfc0cfa903</id>
<content type='text'>
Normally, calling code:delete/1 before re-loading the code for a
module is unnecessary but causes no problem.

But there will be be problems if the new code has an on_load function.
Code with an on_load function will always be loaded as old code
to allowed it to be easily purged if the on_load function would fail.
If the on_load function succeeds, the old and current code will be
swapped.

So in the scenario where code:delete/1 has been called explicitly,
there is old code but no current code. Loading code with an
on_load function will cause the reference to the old code to be
overwritten. That will at best cause a memory leak, and at worst
an emulator crash (especially if NIFs are involved).

To avoid that situation, we will put the code with the on_load
function in a special, third slot in Module.

ERL-240
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Normally, calling code:delete/1 before re-loading the code for a
module is unnecessary but causes no problem.

But there will be be problems if the new code has an on_load function.
Code with an on_load function will always be loaded as old code
to allowed it to be easily purged if the on_load function would fail.
If the on_load function succeeds, the old and current code will be
swapped.

So in the scenario where code:delete/1 has been called explicitly,
there is old code but no current code. Loading code with an
on_load function will cause the reference to the old code to be
overwritten. That will at best cause a memory leak, and at worst
an emulator crash (especially if NIFs are involved).

To avoid that situation, we will put the code with the on_load
function in a special, third slot in Module.

ERL-240
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement IPV6_TCLASS</title>
<updated>2016-09-12T12:54:34+00:00</updated>
<author>
<name>Raimo Niskanen</name>
<email>raimo@erlang.org</email>
</author>
<published>2016-09-12T08:14:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=82d673f8c9dd39cc78cb7567fe59ebda2b88bf2d'/>
<id>82d673f8c9dd39cc78cb7567fe59ebda2b88bf2d</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 'rickard/time-unit/OTP-13735' into maint</title>
<updated>2016-08-30T14:25:00+00:00</updated>
<author>
<name>Rickard Green</name>
<email>rickard@erlang.org</email>
</author>
<published>2016-08-30T14:25:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=925984e94f2c1933bb659dfb626c191982b7c8d4'/>
<id>925984e94f2c1933bb659dfb626c191982b7c8d4</id>
<content type='text'>
* rickard/time-unit/OTP-13735:
  Update test-cases to use new symbolic time units
  Replace misspelled symbolic time units

Conflicts:
	erts/doc/src/erlang.xml
	erts/emulator/test/long_timers_test.erl
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* rickard/time-unit/OTP-13735:
  Update test-cases to use new symbolic time units
  Replace misspelled symbolic time units

Conflicts:
	erts/doc/src/erlang.xml
	erts/emulator/test/long_timers_test.erl
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'rickard/ds-purge-module/OTP-13808' into maint</title>
<updated>2016-08-29T16:38:48+00:00</updated>
<author>
<name>Rickard Green</name>
<email>rickard@erlang.org</email>
</author>
<published>2016-08-29T16:38:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=5006f1e0c45d4e9b888b2c0ca48130049d33074c'/>
<id>5006f1e0c45d4e9b888b2c0ca48130049d33074c</id>
<content type='text'>
* rickard/ds-purge-module/OTP-13808:
  Perform check_process_code while process is executing dirty

Conflicts:
	erts/doc/src/erl_nif.xml
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* rickard/ds-purge-module/OTP-13808:
  Perform check_process_code while process is executing dirty

Conflicts:
	erts/doc/src/erl_nif.xml
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'rickard/fun-purge-bug/OTP-13809' and 'rickard/new-purge-strategy/OTP-13833' into maint</title>
<updated>2016-08-29T15:52:10+00:00</updated>
<author>
<name>Rickard Green</name>
<email>rickard@erlang.org</email>
</author>
<published>2016-08-29T15:52:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=928d74ffa09bd56652d9390b02fa51ef51d71d51'/>
<id>928d74ffa09bd56652d9390b02fa51ef51d71d51</id>
<content type='text'>
* 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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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
</pre>
</div>
</content>
</entry>
</feed>
