<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/stdlib/src, branch OTP_R15A</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 'siri/sasl/upgrade-erts/OTP-9438'</title>
<updated>2011-11-18T13:55:40+00:00</updated>
<author>
<name>Siri Hansen</name>
<email>siri@erlang.org</email>
</author>
<published>2011-11-18T13:55:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=405322cc25ae4343ec824c2d611553534d1b1b92'/>
<id>405322cc25ae4343ec824c2d611553534d1b1b92</id>
<content type='text'>
* siri/sasl/upgrade-erts/OTP-9438:
  Fix bug in erts upgrade on windows
  Add release vsn info to erts_vsn_changed warning
  Check for sasl application in systools:make_script and make_relup
  Add syntax check of relup to check_install_release and install_release
  Add documentation for upgrade from pre R15 to post R15 sasl
  Handle upgrade from pre R15 to post R15 sasl
  Step version of sasl to 2.2 for R15
  Document upgrade instructions restart_new_emulator and restart_emulator
  Wait for two restarts in upgrade_restart test
  Add restart_new_emulator instruction to kernel, stdlib and sasl appups
  Distinguish restart_new_emulator from restart_emulator in upgrade instructions
  Upgrade erts: merge sys.config for tmp release instead of using old
  Allow regexp for version in .appup
  Restart emulator before running upgrade script when erts is upgraded

Conflicts:
	lib/sasl/src/release_handler.erl
	lib/sasl/test/release_handler_SUITE.erl
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* siri/sasl/upgrade-erts/OTP-9438:
  Fix bug in erts upgrade on windows
  Add release vsn info to erts_vsn_changed warning
  Check for sasl application in systools:make_script and make_relup
  Add syntax check of relup to check_install_release and install_release
  Add documentation for upgrade from pre R15 to post R15 sasl
  Handle upgrade from pre R15 to post R15 sasl
  Step version of sasl to 2.2 for R15
  Document upgrade instructions restart_new_emulator and restart_emulator
  Wait for two restarts in upgrade_restart test
  Add restart_new_emulator instruction to kernel, stdlib and sasl appups
  Distinguish restart_new_emulator from restart_emulator in upgrade instructions
  Upgrade erts: merge sys.config for tmp release instead of using old
  Allow regexp for version in .appup
  Restart emulator before running upgrade script when erts is upgraded

Conflicts:
	lib/sasl/src/release_handler.erl
	lib/sasl/test/release_handler_SUITE.erl
</pre>
</div>
</content>
</entry>
<entry>
<title>Add restart_new_emulator instruction to kernel, stdlib and sasl appups</title>
<updated>2011-11-17T15:47:28+00:00</updated>
<author>
<name>Siri Hansen</name>
<email>siri@erlang.org</email>
</author>
<published>2011-10-14T10:34:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=d221b34133a8da8d62bdc57ebb724f86d7cd2fc0'/>
<id>d221b34133a8da8d62bdc57ebb724f86d7cd2fc0</id>
<content type='text'>
The appup files for kernel, stdlib and sasl did not contain any
UpFromVsn and DownToVsn. This means that it was not possible to create
a relup file with systool:make_relup if any of these applications had
changed.

This commit adds entries in the appup files for a maximum of two major
releases back - all with only one upgrade instruction:
restart_new_emulator. The point is to allow relups to be generated,
but ensure that no soft upgrade is done for these three applications -
i.e. they will always cause a restart of the emulator prior to all
other upgrade instructions from other applications.

Test cases (appup_test) are added to kernel_SUITE, stdlib_SUITE and
sasl_SUITE. These all check that expected versions are matched in the
appups, and illegal versions (older than two major releases, or in any
other way illegal) do not match. The test is written in a general way
where it is assumed that the version of these applications are stepped
according the the rule that major releases step the second number,
maintenance releases step the third number and patches step the fourth
number.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The appup files for kernel, stdlib and sasl did not contain any
UpFromVsn and DownToVsn. This means that it was not possible to create
a relup file with systool:make_relup if any of these applications had
changed.

This commit adds entries in the appup files for a maximum of two major
releases back - all with only one upgrade instruction:
restart_new_emulator. The point is to allow relups to be generated,
but ensure that no soft upgrade is done for these three applications -
i.e. they will always cause a restart of the emulator prior to all
other upgrade instructions from other applications.

Test cases (appup_test) are added to kernel_SUITE, stdlib_SUITE and
sasl_SUITE. These all check that expected versions are matched in the
appups, and illegal versions (older than two major releases, or in any
other way illegal) do not match. The test is written in a general way
where it is assumed that the version of these applications are stepped
according the the rule that major releases step the second number,
maintenance releases step the third number and patches step the fourth
number.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove all use of global:safe_whereis_name/1</title>
<updated>2011-11-14T13:10:58+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2011-11-14T12:49:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=4db61fcf79516ff9cd6fd04c89376f063ccae7e8'/>
<id>4db61fcf79516ff9cd6fd04c89376f063ccae7e8</id>
<content type='text'>
Calls to global:whereis_name/1 have been substituted for calls to
global:safe_whereis_name/1 since the latter is not safe at all.

The reason for not doing this earlier is that setting a global lock
masked out a bug concerning the restart of supervised children. The
bug has now been fixed by a modification of global:whereis_name/1.
(Thanks to Ulf Wiger for code contribution.)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Calls to global:whereis_name/1 have been substituted for calls to
global:safe_whereis_name/1 since the latter is not safe at all.

The reason for not doing this earlier is that setting a global lock
masked out a bug concerning the restart of supervised children. The
bug has now been fixed by a modification of global:whereis_name/1.
(Thanks to Ulf Wiger for code contribution.)
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix a minor race in gen_fsm</title>
<updated>2011-11-14T12:27:00+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2011-11-14T12:23:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=feb6c1dece891c7cb46c24bbdf9082c758c7830e'/>
<id>feb6c1dece891c7cb46c24bbdf9082c758c7830e</id>
<content type='text'>
Fixed a minor race conditions in gen_fsm:start*: if one of these
functions returned {error,Reason} or ignore, the name could still be
registered (either locally or in global.

This is the same modification as was done for gen_server in OTP-7669.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixed a minor race conditions in gen_fsm:start*: if one of these
functions returned {error,Reason} or ignore, the name could still be
registered (either locally or in global.

This is the same modification as was done for gen_server in OTP-7669.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'siri/stdlib/badarg-extract-child/OTP-9669'</title>
<updated>2011-11-10T11:07:31+00:00</updated>
<author>
<name>Siri Hansen</name>
<email>siri@erlang.org</email>
</author>
<published>2011-11-10T11:07:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=2df8e1f2ba502530e23081ee3b4644c577d8c99f'/>
<id>2df8e1f2ba502530e23081ee3b4644c577d8c99f</id>
<content type='text'>
* siri/stdlib/badarg-extract-child/OTP-9669:
  Handle undefined pid when reporting error from supervisor
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* siri/stdlib/badarg-extract-child/OTP-9669:
  Handle undefined pid when reporting error from supervisor
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'ss/re-split-doc-bug'</title>
<updated>2011-11-10T10:37:17+00:00</updated>
<author>
<name>Henrik Nord</name>
<email>henrik@erlang.org</email>
</author>
<published>2011-11-10T10:37:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=d57b774cd88f7e2775a39ad17f9bd44d9370658b'/>
<id>d57b774cd88f7e2775a39ad17f9bd44d9370658b</id>
<content type='text'>
* ss/re-split-doc-bug:
  Fix re:split spec not to accept option 'global'

OTP-9691
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* ss/re-split-doc-bug:
  Fix re:split spec not to accept option 'global'

OTP-9691
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'bjorn/create-less-garbage'</title>
<updated>2011-11-08T10:06:21+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2011-11-08T10:06:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=4a67884525973f104e9b05ea80bc16ffc71fada8'/>
<id>4a67884525973f104e9b05ea80bc16ffc71fada8</id>
<content type='text'>
* bjorn/create-less-garbage:
  Optimize filename:basename/1 to produce less garbage
  Optimize filename:extension/1 to produce less garbage
  sys.c for Unix: Undo caching of utsname in os_flavor()
  Pre-build the tuples returned by os:type/0 and os:version/0
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* bjorn/create-less-garbage:
  Optimize filename:basename/1 to produce less garbage
  Optimize filename:extension/1 to produce less garbage
  sys.c for Unix: Undo caching of utsname in os_flavor()
  Pre-build the tuples returned by os:type/0 and os:version/0
</pre>
</div>
</content>
</entry>
<entry>
<title>Optimize filename:basename/1 to produce less garbage</title>
<updated>2011-11-07T14:37:57+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2011-09-04T07:27:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=3d5cdb216fa5652bd8552ef4fa4eee310e543b42'/>
<id>3d5cdb216fa5652bd8552ef4fa4eee310e543b42</id>
<content type='text'>
In most cases, we can simply return a tail of the flattened
filename.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In most cases, we can simply return a tail of the flattened
filename.
</pre>
</div>
</content>
</entry>
<entry>
<title>EEP-23: Allow variables in fun M:F/A</title>
<updated>2011-11-07T12:57:03+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2010-04-09T13:50:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=ff432e262e65243cbc983fcb002527f8fae8c78b'/>
<id>ff432e262e65243cbc983fcb002527f8fae8c78b</id>
<content type='text'>
Currently, the external fun syntax "fun M:F/A" only supports
literals. That is, "fun lists:reverse/1" is allowed but not
"fun M:F/A".

In many real-life situations, some or all of M, F, A are
not known until run-time, and one is forced to either use
the undocumented erlang:make_fun/3 BIF or to use a
"tuple fun" (which is deprecated).

EEP-23 suggests that the parser (erl_parse) should immediately
transform "fun M:F/A" to "erlang:make_fun(M, F, A)". We have
not followed that approach in this implementation, because we
want the abstract code to mirror the source code as closely
as possible, and we also consider erlang:make_fun/3 to
be an implementation detail that we might want to remove in
the future.

Instead, we will change the abstract format for "fun M:F/A" (in a way
that is not backwards compatible), and while we are at it, we will
move the translation from "fun M:F/A" to "erlang:make_fun(M, F, A)"
from sys_pre_expand down to the v3_core pass. We will also update
the debugger and xref to use the new format.

We did consider making the abstract format backward compatible if
no variables were used in the fun, but decided against it. Keeping
it backward compatible would mean that there would be different
abstract formats for the no-variable and variable case, and tools
would have to handle both formats, probably forever.

Reference: http://www.erlang.org/eeps/eep-0023.html
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently, the external fun syntax "fun M:F/A" only supports
literals. That is, "fun lists:reverse/1" is allowed but not
"fun M:F/A".

In many real-life situations, some or all of M, F, A are
not known until run-time, and one is forced to either use
the undocumented erlang:make_fun/3 BIF or to use a
"tuple fun" (which is deprecated).

EEP-23 suggests that the parser (erl_parse) should immediately
transform "fun M:F/A" to "erlang:make_fun(M, F, A)". We have
not followed that approach in this implementation, because we
want the abstract code to mirror the source code as closely
as possible, and we also consider erlang:make_fun/3 to
be an implementation detail that we might want to remove in
the future.

Instead, we will change the abstract format for "fun M:F/A" (in a way
that is not backwards compatible), and while we are at it, we will
move the translation from "fun M:F/A" to "erlang:make_fun(M, F, A)"
from sys_pre_expand down to the v3_core pass. We will also update
the debugger and xref to use the new format.

We did consider making the abstract format backward compatible if
no variables were used in the fun, but decided against it. Keeping
it backward compatible would mean that there would be different
abstract formats for the no-variable and variable case, and tools
would have to handle both formats, probably forever.

Reference: http://www.erlang.org/eeps/eep-0023.html
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix re:split spec not to accept option 'global'</title>
<updated>2011-11-02T10:27:05+00:00</updated>
<author>
<name>Shunichi Shinohara</name>
<email>shino.shun@gmail.com</email>
</author>
<published>2011-08-21T02:10:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=2a9dbb6b699025f18ca45eea0a99f6b6ea3070f0'/>
<id>2a9dbb6b699025f18ca45eea0a99f6b6ea3070f0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
