<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/compiler, branch OTP-20.1.7</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>2017-10-02T13:55:32+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2017-10-02T13:55:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=b584195a6befac314eef75ac3f1ae2ac4f448a61'/>
<id>b584195a6befac314eef75ac3f1ae2ac4f448a61</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix incorrect internal consistency failure for binary matching code</title>
<updated>2017-09-29T05:46:49+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2017-09-29T05:17:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=7715f437ab9a789e0500873b6002a49bfe69009c'/>
<id>7715f437ab9a789e0500873b6002a49bfe69009c</id>
<content type='text'>
4c31fd0b9665 made the merging of match contexts stricter;
in fact, a little bit too strict.

Two match contexts with different number of slots would
be downgraded to the 'term' type. The correct way is to
keep the match context but set the number of slots to the
lowest number of slots of the two match contexts.

https://bugs.erlang.org/browse/ERL-490
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
4c31fd0b9665 made the merging of match contexts stricter;
in fact, a little bit too strict.

Two match contexts with different number of slots would
be downgraded to the 'term' type. The correct way is to
keep the match context but set the number of slots to the
lowest number of slots of the two match contexts.

https://bugs.erlang.org/browse/ERL-490
</pre>
</div>
</content>
</entry>
<entry>
<title>Update release notes</title>
<updated>2017-09-22T13:21:49+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2017-09-22T13:21:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=af2073640c4b7c67c9b978ebc203d57ac43e96dc'/>
<id>af2073640c4b7c67c9b978ebc203d57ac43e96dc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update version numbers</title>
<updated>2017-09-22T13:19:03+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2017-09-22T13:19:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=1bf0b21344d951c65e54c6abfe7907ef8b63d946'/>
<id>1bf0b21344d951c65e54c6abfe7907ef8b63d946</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Make handling of match contexts stricter</title>
<updated>2017-08-30T04:17:14+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2017-08-29T16:02:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=4c31fd0b966571508b4eb5170ddb0b38fbaf5fc0'/>
<id>4c31fd0b966571508b4eb5170ddb0b38fbaf5fc0</id>
<content type='text'>
beam_validator could fail issue a diagnostic when a register
that was supposed to be a match context was not guaranteed to
be a match context.

The bug was in merging of types. Merging of a match context with
another term would result in a match context. That is wrong. Merging
should produce a more general type, not a narrower type. Also, the
valid slots in two match contexts should be combined with 'band', not
'bor'.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
beam_validator could fail issue a diagnostic when a register
that was supposed to be a match context was not guaranteed to
be a match context.

The bug was in merging of types. Merging of a match context with
another term would result in a match context. That is wrong. Merging
should produce a more general type, not a narrower type. Also, the
valid slots in two match contexts should be combined with 'band', not
'bor'.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'maint-20' into maint</title>
<updated>2017-08-24T07:37:16+00:00</updated>
<author>
<name>Raimo Niskanen</name>
<email>raimo@erlang.org</email>
</author>
<published>2017-08-24T07:37:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=710f9437498a8a9df62a6c7cecd6eb632561754b'/>
<id>710f9437498a8a9df62a6c7cecd6eb632561754b</id>
<content type='text'>
* maint-20:
  Updated OTP version
  Prepare release
  Accept non-binary options as socket-options
  Bump version
  Fix broken handling of default values in extensions for PER
  compiler: Fix live regs update on allocate in validator
  Take fail labels into account when determining liveness in block ops
  Check for overflow when appending binaries, and error out with system_limit
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* maint-20:
  Updated OTP version
  Prepare release
  Accept non-binary options as socket-options
  Bump version
  Fix broken handling of default values in extensions for PER
  compiler: Fix live regs update on allocate in validator
  Take fail labels into account when determining liveness in block ops
  Check for overflow when appending binaries, and error out with system_limit
</pre>
</div>
</content>
</entry>
<entry>
<title>Prepare release</title>
<updated>2017-08-23T08:39:49+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2017-08-23T08:39:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=e769d2c06eddfca16b1d4b5f7a3a7d1ed0218777'/>
<id>e769d2c06eddfca16b1d4b5f7a3a7d1ed0218777</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 'john/compiler/fail-labels-in-blocks-otp-19/ERIERL-48/OTP-14522' into maint-20</title>
<updated>2017-08-23T08:39:20+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2017-08-23T08:39:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=345a79ac188caa24229195991ed134e1e4df8179'/>
<id>345a79ac188caa24229195991ed134e1e4df8179</id>
<content type='text'>
* john/compiler/fail-labels-in-blocks-otp-19/ERIERL-48/OTP-14522:
  compiler: Fix live regs update on allocate in validator
  Take fail labels into account when determining liveness in block ops
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* john/compiler/fail-labels-in-blocks-otp-19/ERIERL-48/OTP-14522:
  compiler: Fix live regs update on allocate in validator
  Take fail labels into account when determining liveness in block ops
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'john/compiler/fail-labels-in-blocks-otp-18/ERIERL-48/OTP-14522' into maint</title>
<updated>2017-08-22T14:28:15+00:00</updated>
<author>
<name>Lukas Larsson</name>
<email>lukas@erlang.org</email>
</author>
<published>2017-08-22T14:28:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=eb4ef92b083f9874b5b4db1f1060585fbb653779'/>
<id>eb4ef92b083f9874b5b4db1f1060585fbb653779</id>
<content type='text'>
* john/compiler/fail-labels-in-blocks-otp-18/ERIERL-48/OTP-14522:
  compiler: Fix live regs update on allocate in validator
  Take fail labels into account when determining liveness in block ops

Conflicts:
	lib/compiler/src/beam_utils.erl
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* john/compiler/fail-labels-in-blocks-otp-18/ERIERL-48/OTP-14522:
  compiler: Fix live regs update on allocate in validator
  Take fail labels into account when determining liveness in block ops

Conflicts:
	lib/compiler/src/beam_utils.erl
</pre>
</div>
</content>
</entry>
<entry>
<title>compiler: Fix live regs update on allocate in validator</title>
<updated>2017-08-16T11:31:32+00:00</updated>
<author>
<name>Lukas Larsson</name>
<email>lukas@erlang.org</email>
</author>
<published>2017-07-19T15:01:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=9beb6d48a12ae4e7abdacbed42b5269121f2fee7'/>
<id>9beb6d48a12ae4e7abdacbed42b5269121f2fee7</id>
<content type='text'>
The state without pruned registers was passed on to test_heap
causing the validator to belive registers that aren't live
actually are live.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The state without pruned registers was passed on to test_heap
causing the validator to belive registers that aren't live
actually are live.
</pre>
</div>
</content>
</entry>
</feed>
