<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/kernel, branch OTP-17.2</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>2014-07-10T08:45:27+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2014-07-10T08:45:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=41d2dc56d5d2a3be1ba59c6999e1003360b1e308'/>
<id>41d2dc56d5d2a3be1ba59c6999e1003360b1e308</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 'nox/filelib-wildcard-broken-link' into maint-17</title>
<updated>2014-07-10T08:45:13+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2014-07-10T08:45:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=b376a4b8dd21a943be3226bb696a1622537edf86'/>
<id>b376a4b8dd21a943be3226bb696a1622537edf86</id>
<content type='text'>
* nox/filelib-wildcard-broken-link:
  Update stdlib appup file
  Update runtime dependencies
  Update preloaded
  Add tests of filelib and symlinks
  Fix handling of broken symlinks in filelib

Conflicts:
	erts/preloaded/ebin/erl_prim_loader.beam
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* nox/filelib-wildcard-broken-link:
  Update stdlib appup file
  Update runtime dependencies
  Update preloaded
  Add tests of filelib and symlinks
  Fix handling of broken symlinks in filelib

Conflicts:
	erts/preloaded/ebin/erl_prim_loader.beam
</pre>
</div>
</content>
</entry>
<entry>
<title>Update runtime dependencies</title>
<updated>2014-07-09T13:15:48+00:00</updated>
<author>
<name>Siri Hansen</name>
<email>siri@erlang.org</email>
</author>
<published>2014-07-09T13:15:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=4182a479c2ae47d097c2b4f18a6a2a47020a5bca'/>
<id>4182a479c2ae47d097c2b4f18a6a2a47020a5bca</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add tests of filelib and symlinks</title>
<updated>2014-07-09T12:58:24+00:00</updated>
<author>
<name>Siri Hansen</name>
<email>siri@erlang.org</email>
</author>
<published>2014-07-07T13:45:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=9dc807376b0dff43a19af5ef4301333f16cc11c1'/>
<id>9dc807376b0dff43a19af5ef4301333f16cc11c1</id>
<content type='text'>
This commit complements 769996c0cd4cb68c157e39de725642f209ed7423 and
adds tests for the following problems introduced by
f11aabdc9fec593c31e6c4f3fa25c1707e9c35df:

Given the symlink 'dirlink' pointing to an existing dir, then
- filelib:is_regular("dirlink") -&gt; false
- filelib:is_dir("dirlink") -&gt; false

Given the symlink 'filelink' pointing to an existing file, then
- filelib:is_regular("filelink") -&gt; false
- filelib:is_file("filelink") -&gt; false
- filelib:last_modified("filelink") and filelib:filesize("filelink")
  return the info of the link and not the file

Given the symlink "broken_symlink" pointing to a non-existing file, then
- filelib:wildcard("broken_symlink",File) -&gt; []
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit complements 769996c0cd4cb68c157e39de725642f209ed7423 and
adds tests for the following problems introduced by
f11aabdc9fec593c31e6c4f3fa25c1707e9c35df:

Given the symlink 'dirlink' pointing to an existing dir, then
- filelib:is_regular("dirlink") -&gt; false
- filelib:is_dir("dirlink") -&gt; false

Given the symlink 'filelink' pointing to an existing file, then
- filelib:is_regular("filelink") -&gt; false
- filelib:is_file("filelink") -&gt; false
- filelib:last_modified("filelink") and filelib:filesize("filelink")
  return the info of the link and not the file

Given the symlink "broken_symlink" pointing to a non-existing file, then
- filelib:wildcard("broken_symlink",File) -&gt; []
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix handling of broken symlinks in filelib</title>
<updated>2014-07-09T12:57:11+00:00</updated>
<author>
<name>Anthony Ramine</name>
<email>n.oxyde@gmail.com</email>
</author>
<published>2014-06-30T22:58:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=de2fb97f15ac98aa1d1c5533aacca378334f4778'/>
<id>de2fb97f15ac98aa1d1c5533aacca378334f4778</id>
<content type='text'>
This fixes a bug introduced in f11aabdc9fec593c31e6c4f3fa25c1707e9c35df where
filelib:eval_read_file_info/2 was made to use file:read_link_info/1 to never
follow symlinks. This fixed wildcard/1 but broke every other function using
eval_read_file_info/2.

Reported-by: Louis-Philippe Gauthier
Reported-by: Danil Zagoskin
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes a bug introduced in f11aabdc9fec593c31e6c4f3fa25c1707e9c35df where
filelib:eval_read_file_info/2 was made to use file:read_link_info/1 to never
follow symlinks. This fixed wildcard/1 but broke every other function using
eval_read_file_info/2.

Reported-by: Louis-Philippe Gauthier
Reported-by: Danil Zagoskin
</pre>
</div>
</content>
</entry>
<entry>
<title>Prepare release</title>
<updated>2014-06-19T11:47:21+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2014-06-19T11:47:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=77da984614ae462912a1896ba1bb73c798ffd4f8'/>
<id>77da984614ae462912a1896ba1bb73c798ffd4f8</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 'bjorn/kernel/remove-file_info-vestiges/OTP-11982' into maint</title>
<updated>2014-06-17T08:40:23+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2014-06-17T08:40:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=2ad1bf818447c8a7ff380e93f43a7a6105a77d6f'/>
<id>2ad1bf818447c8a7ff380e93f43a7a6105a77d6f</id>
<content type='text'>
* bjorn/kernel/remove-file_info-vestiges/OTP-11982:
  Remove documentation and stub for non-exist file:file_info/1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* bjorn/kernel/remove-file_info-vestiges/OTP-11982:
  Remove documentation and stub for non-exist file:file_info/1
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove documentation and stub for non-exist file:file_info/1</title>
<updated>2014-06-13T10:31:08+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2014-06-13T10:31:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=708430b92ff48faa5e0c821dfca520968551a71f'/>
<id>708430b92ff48faa5e0c821dfca520968551a71f</id>
<content type='text'>
file:file_info/1 was removed a long time ago, but its
documentation was not removed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
file:file_info/1 was removed a long time ago, but its
documentation was not removed.
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow unsticking pre-loaded modules</title>
<updated>2014-06-12T10:06:09+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2014-06-11T13:48:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=9eccead7d89673648318815716b73f6d50ec068b'/>
<id>9eccead7d89673648318815716b73f6d50ec068b</id>
<content type='text'>
Commit ed06dd12ea74018b902a2c4c7924313d23cedb75 made pre-loaded
modules (such as erlang) sticky, and also made it impossible to
unstick them to prevent them from ever be reloaded.

It turns out that there are tools that may want to instrument
the erlang module (such as concuerror), so making it
impossible to unstick modules is harsh. Therefore, revert the
part of the commit that prevented unsticking the pre-loaded
modules.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit ed06dd12ea74018b902a2c4c7924313d23cedb75 made pre-loaded
modules (such as erlang) sticky, and also made it impossible to
unstick them to prevent them from ever be reloaded.

It turns out that there are tools that may want to instrument
the erlang module (such as concuerror), so making it
impossible to unstick modules is harsh. Therefore, revert the
part of the commit that prevented unsticking the pre-loaded
modules.
</pre>
</div>
</content>
</entry>
<entry>
<title>Make pre-loaded modules permanently sticky</title>
<updated>2014-06-04T14:43:17+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2014-05-09T10:35:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=ed06dd12ea74018b902a2c4c7924313d23cedb75'/>
<id>ed06dd12ea74018b902a2c4c7924313d23cedb75</id>
<content type='text'>
Modules in the kernel, stdlib, and compiler applications are by
default "sticky", meaning that the code server will refuse to
re-load them.

The pre-loaded modules (those that are part of the run-time system
itself, such as 'erlang') are, however, not sticky. They used to be
sticky a long time ago when the pre-loaded modules were part of
the kernel application. Now they are part of the erts application.

Since re-loading a pre-loaded module can be catastrophic (especially
re-loading the 'erlang' module), the pre-loaded modules must be
sticky. Furthermore, it should not be allowed to unstick them.

The sticky_dir/1 test case in code_SUITE is never actually run and
is broken. Rewrite it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Modules in the kernel, stdlib, and compiler applications are by
default "sticky", meaning that the code server will refuse to
re-load them.

The pre-loaded modules (those that are part of the run-time system
itself, such as 'erlang') are, however, not sticky. They used to be
sticky a long time ago when the pre-loaded modules were part of
the kernel application. Now they are part of the erts application.

Since re-loading a pre-loaded module can be catastrophic (especially
re-loading the 'erlang' module), the pre-loaded modules must be
sticky. Furthermore, it should not be allowed to unstick them.

The sticky_dir/1 test case in code_SUITE is never actually run and
is broken. Rewrite it.
</pre>
</div>
</content>
</entry>
</feed>
