<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/stdlib/test, branch erl_1271</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 'fenollp/treewide_remove_unexpected_0xff/OTP-11323' into maint</title>
<updated>2013-10-14T12:39:19+00:00</updated>
<author>
<name>Fredrik Gustafsson</name>
<email>fredrik@erlang.org</email>
</author>
<published>2013-10-14T12:39:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=77eba492997f8340425d0828835c2a60cf81550e'/>
<id>77eba492997f8340425d0828835c2a60cf81550e</id>
<content type='text'>
* fenollp/treewide_remove_unexpected_0xff/OTP-11323:
  Remove ^L characters hidden randomly in the code. Not those used in text files as delimiters.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* fenollp/treewide_remove_unexpected_0xff/OTP-11323:
  Remove ^L characters hidden randomly in the code. Not those used in text files as delimiters.
</pre>
</div>
</content>
</entry>
<entry>
<title>stdlib: extended binary_module_SUITE to assure badarg for OTP-11350</title>
<updated>2013-09-25T07:34:41+00:00</updated>
<author>
<name>Fredrik Gustafsson</name>
<email>fredrik@erlang.org</email>
</author>
<published>2013-09-25T07:34:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=e38c706e55c3b3df644ec4c04ae703df73ac044e'/>
<id>e38c706e55c3b3df644ec4c04ae703df73ac044e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove ^L characters hidden randomly in the code. Not those used in text files as delimiters.</title>
<updated>2013-09-12T13:09:35+00:00</updated>
<author>
<name>Pierre Fenoll</name>
<email>pierrefenoll@gmail.com</email>
</author>
<published>2013-09-10T14:48:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=21095e6830f37676dd29c33a590851ba2c76499b'/>
<id>21095e6830f37676dd29c33a590851ba2c76499b</id>
<content type='text'>
While working on a tool that processes Erlang code and testing it against this repo,
I found out about those little sneaky 0xff. I thought it may be of help to other
people build such tools to remove non-conforming-to-standard characters.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While working on a tool that processes Erlang code and testing it against this repo,
I found out about those little sneaky 0xff. I thought it may be of help to other
people build such tools to remove non-conforming-to-standard characters.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix variable usage tracking in some record errors</title>
<updated>2013-08-27T14:15:21+00:00</updated>
<author>
<name>Anthony Ramine</name>
<email>n.oxyde@gmail.com</email>
</author>
<published>2013-07-31T08:31:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=92460f4035e369be8726c88a72055d0fd6c7cdfe'/>
<id>92460f4035e369be8726c88a72055d0fd6c7cdfe</id>
<content type='text'>
When reporting a field redefinition in a record, erl_lint can forget
about some old unused variables.

f() -&gt; X = 1, #r{a=foo,a=bar,a=qux}.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When reporting a field redefinition in a record, erl_lint can forget
about some old unused variables.

f() -&gt; X = 1, #r{a=foo,a=bar,a=qux}.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix unsafe variable tracking in try expressions</title>
<updated>2013-08-27T14:15:21+00:00</updated>
<author>
<name>Anthony Ramine</name>
<email>n.oxyde@gmail.com</email>
</author>
<published>2013-07-22T19:41:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=9ce148b1059e4da746a11f1d80a653340216c468'/>
<id>9ce148b1059e4da746a11f1d80a653340216c468</id>
<content type='text'>
Variables used in the body of a try expression were marked as unsafe
*and* used, which makes no sense as an unsafe variable can't be used.

Function vtsubtract/2 is used to forget usage of such unsafe variables.

Reported-by: Paul Davis
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Variables used in the body of a try expression were marked as unsafe
*and* used, which makes no sense as an unsafe variable can't be used.

Function vtsubtract/2 is used to forget usage of such unsafe variables.

Reported-by: Paul Davis
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix variable usage tracking in erl_lint</title>
<updated>2013-08-27T14:15:21+00:00</updated>
<author>
<name>Anthony Ramine</name>
<email>n.oxyde@gmail.com</email>
</author>
<published>2013-06-05T23:34:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=f846bf70b0c97ce66f29b0ff88a50316924bf34e'/>
<id>f846bf70b0c97ce66f29b0ff88a50316924bf34e</id>
<content type='text'>
When analyzing complex expressions (i.e. comprehensions, cases, tries,
ifs and receives), erl_lint does not forget about old unused variables
when returning the updated variable table. This causes a bug where old
unused variables are not recorded as such:

t(X, Y) -&gt;
  #r{a=[ K || K &lt;- Y ],b=[ K || K &lt;- Y ]}.

As erl_lint uses vtmerge_pat/2 to merge the results of the analysis of
the two list comprehensions, X is marked as used and the warning is not
emitted.

The function vtmerge_pat/2 is used instead of the similar vtmerge/2
which does not mark multiple occurrences of a variable as usage to
handle cases like the following one:

t(X, Y) -&gt;
  #r{a=A=X,b=A=Y}.

Other simpler expressions like conses, tuples and external fun
references do not correctly follow this behaviour, e.g. A is not marked
as used in the following code:

t(X, Y) -&gt;
  {A=X,A=Y}.

This commit fixes both issues and makes erl_lint not return old unused
variables in updated tables and makes all compound expressions use
vtmerge_pat/2.

Reported-by: Anders Ramsell
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When analyzing complex expressions (i.e. comprehensions, cases, tries,
ifs and receives), erl_lint does not forget about old unused variables
when returning the updated variable table. This causes a bug where old
unused variables are not recorded as such:

t(X, Y) -&gt;
  #r{a=[ K || K &lt;- Y ],b=[ K || K &lt;- Y ]}.

As erl_lint uses vtmerge_pat/2 to merge the results of the analysis of
the two list comprehensions, X is marked as used and the warning is not
emitted.

The function vtmerge_pat/2 is used instead of the similar vtmerge/2
which does not mark multiple occurrences of a variable as usage to
handle cases like the following one:

t(X, Y) -&gt;
  #r{a=A=X,b=A=Y}.

Other simpler expressions like conses, tuples and external fun
references do not correctly follow this behaviour, e.g. A is not marked
as used in the following code:

t(X, Y) -&gt;
  {A=X,A=Y}.

This commit fixes both issues and makes erl_lint not return old unused
variables in updated tables and makes all compound expressions use
vtmerge_pat/2.

Reported-by: Anders Ramsell
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'hb/stdlib/dets_bugfix/OTP-11245' into maint</title>
<updated>2013-08-21T07:40:31+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2013-08-21T07:40:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=5960967a506c2eeadb3cbf66a1e21fff5000f08b'/>
<id>5960967a506c2eeadb3cbf66a1e21fff5000f08b</id>
<content type='text'>
* hb/stdlib/dets_bugfix/OTP-11245:
  Fix a Dets bug concerning traversal of tables
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* hb/stdlib/dets_bugfix/OTP-11245:
  Fix a Dets bug concerning traversal of tables
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix a bug in the linter regarding the 'fun M:F/A' construct</title>
<updated>2013-08-20T13:52:48+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2013-08-20T13:52:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=063dcba4b4e9e9848886efd039ed815bd5910ec1'/>
<id>063dcba4b4e9e9848886efd039ed815bd5910ec1</id>
<content type='text'>
If the fun M:F/A construct was used erroneously the linter could
crash.

Thanks to Mikhail Sobolev for reporting the bug.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If the fun M:F/A construct was used erroneously the linter could
crash.

Thanks to Mikhail Sobolev for reporting the bug.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix a Dets bug concerning traversal of tables</title>
<updated>2013-08-19T09:47:23+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2013-08-03T20:01:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=4550ba795540b85d31b33cc2eda87c0e6952f222'/>
<id>4550ba795540b85d31b33cc2eda87c0e6952f222</id>
<content type='text'>
The bug was introduced in R16B.

Thanks to Manuel Durán Aguete.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The bug was introduced in R16B.

Thanks to Manuel Durán Aguete.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update copyright years</title>
<updated>2013-06-12T17:37:57+00:00</updated>
<author>
<name>Björn-Egil Dahlberg</name>
<email>egil@erlang.org</email>
</author>
<published>2013-06-12T17:37:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=710b07ca18417976459335a8b0b81a6f6aa82699'/>
<id>710b07ca18417976459335a8b0b81a6f6aa82699</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
