<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/hipe, branch KennethL-patch-1</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>ErLLVM: Preserve precise BEAM tailcall semantics</title>
<updated>2018-01-19T15:05:52+00:00</updated>
<author>
<name>Magnus Lång</name>
<email>margnus1@telia.com</email>
</author>
<published>2018-01-19T15:05:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=970261b5384bd55abdcbf55bd4a75a3c26a0bda8'/>
<id>970261b5384bd55abdcbf55bd4a75a3c26a0bda8</id>
<content type='text'>
The BEAM compiler chooses not to perform tailcall optimisations for some
calls in tail position, for example to some built-in functions. However,
when the ErLLVM HiPE backend is used, LLVM may choose to perform
tailcall optimisation on these calls, breaking the expected semantics.

To preserve the precise semantics exhibited by BEAM, the 'notail'
marker, present in LLVM since version 3.8, is added to call instructions
that BEAM has not turned into tail calls, which inhibits LLVM from
performing tail-call optimisation in turn.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The BEAM compiler chooses not to perform tailcall optimisations for some
calls in tail position, for example to some built-in functions. However,
when the ErLLVM HiPE backend is used, LLVM may choose to perform
tailcall optimisation on these calls, breaking the expected semantics.

To preserve the precise semantics exhibited by BEAM, the 'notail'
marker, present in LLVM since version 3.8, is added to call instructions
that BEAM has not turned into tail calls, which inhibits LLVM from
performing tail-call optimisation in turn.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'hasse/dialyzer/fix_bsl' into maint</title>
<updated>2018-01-19T11:44:28+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2018-01-19T11:44:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=69de63049417cf7e047f035b5e086caad9dc7932'/>
<id>69de63049417cf7e047f035b5e086caad9dc7932</id>
<content type='text'>
* hasse/dialyzer/fix_bsl:
  dialyzer: Fix bsl/2 bug
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* hasse/dialyzer/fix_bsl:
  dialyzer: Fix bsl/2 bug
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'sverker/cuddle-big-bin-tests' into maint</title>
<updated>2018-01-15T19:44:34+00:00</updated>
<author>
<name>Sverker Eriksson</name>
<email>sverker@erlang.org</email>
</author>
<published>2018-01-15T19:44:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=0e448a62f46df4dad55c3bc724448e80a4d0048c'/>
<id>0e448a62f46df4dad55c3bc724448e80a4d0048c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Fix bsl/2 bug</title>
<updated>2018-01-12T14:49:35+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2018-01-12T14:44:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=cecf41457d92a3bd21a7690b589f79c0a2901a93'/>
<id>cecf41457d92a3bd21a7690b589f79c0a2901a93</id>
<content type='text'>
Also modified erl_bif_types:infinity_bsl() when called with zero as
first argument. As of writing this, erlang:'bsl'/2 is modified on the
master branch to never fail if called with a huge second argument.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also modified erl_bif_types:infinity_bsl() when called with zero as
first argument. As of writing this, erlang:'bsl'/2 is modified on the
master branch to never fail if called with a huge second argument.
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Correct handling of erlang:abs/1</title>
<updated>2018-01-08T11:45:55+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2018-01-08T11:43:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=e8a8d0a81be4ef1ffbb5c382705a27bd24ebefea'/>
<id>e8a8d0a81be4ef1ffbb5c382705a27bd24ebefea</id>
<content type='text'>
See also https://bugs.erlang.org/browse/ERL-551.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
See also https://bugs.erlang.org/browse/ERL-551.
</pre>
</div>
</content>
</entry>
<entry>
<title>hipe: Avoid out-of-memory crash for bs_SUITE:bs_construct</title>
<updated>2018-01-05T13:37:37+00:00</updated>
<author>
<name>Sverker Eriksson</name>
<email>sverker@erlang.org</email>
</author>
<published>2018-01-05T13:37:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=f496717590d610bd08f02bec39f8e97886c68729'/>
<id>f496717590d610bd08f02bec39f8e97886c68729</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix bug in hipe primop bs_put_utf8</title>
<updated>2018-01-03T15:43:31+00:00</updated>
<author>
<name>Sverker Eriksson</name>
<email>sverker@erlang.org</email>
</author>
<published>2017-12-20T16:18:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=3d21f793538927ae88f78504a11dd898e8ca1a7a'/>
<id>3d21f793538927ae88f78504a11dd898e8ca1a7a</id>
<content type='text'>
by preventing it from doing GC, which generated code relies on.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
by preventing it from doing GC, which generated code relies on.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update release notes</title>
<updated>2017-12-08T09:57:50+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2017-12-08T09:57:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=47198f179ab14cf8cfcdab0d976650cd1519b236'/>
<id>47198f179ab14cf8cfcdab0d976650cd1519b236</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-12-08T09:53:22+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2017-12-08T09:53:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=f3a74a7dfb633b21b7d06e48bf430071cdc0f779'/>
<id>f3a74a7dfb633b21b7d06e48bf430071cdc0f779</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>dialyzer: Extend the map implementation's handling of ?unit</title>
<updated>2017-11-22T14:07:46+00:00</updated>
<author>
<name>Hans Bolinder</name>
<email>hasse@erlang.org</email>
</author>
<published>2017-11-15T11:57:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=985f5a1fae38caed84cde8bc09f6f60e91710f20'/>
<id>985f5a1fae38caed84cde8bc09f6f60e91710f20</id>
<content type='text'>
The Maps implementation handles ?unit in more cases.

Exactly when t_is_none_or_unit() is to be called is not clear to me.
The added cases are about a map type being ?unit, but the key or the
value of an association can also be ?unit, but that is not always
checked.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The Maps implementation handles ?unit in more cases.

Exactly when t_is_none_or_unit() is to be called is not clear to me.
The added cases are about a map type being ?unit, but the key or the
value of an association can also be ?unit, but that is not always
checked.
</pre>
</div>
</content>
</entry>
</feed>
