<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/bootstrap/lib/compiler, branch OTP_R14B</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>Update primary bootstrap</title>
<updated>2010-09-10T12:53:48+00:00</updated>
<author>
<name>Patrik Nyblom</name>
<email>pan@erlang.org</email>
</author>
<published>2010-09-10T12:53:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=bf62e5cf496efcc061e91e25b207e5cdba4d5bf6'/>
<id>bf62e5cf496efcc061e91e25b207e5cdba4d5bf6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update primary bootstrap</title>
<updated>2010-08-03T15:06:26+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2010-08-03T15:06:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=0d553b45b5c3ae8287340887f271bc70f1f1370c'/>
<id>0d553b45b5c3ae8287340887f271bc70f1f1370c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update bootstrap compiler</title>
<updated>2010-06-09T14:34:46+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2010-06-09T14:34:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=fcc9fb5e436e0c7863aab32eae5e106e9b680e46'/>
<id>fcc9fb5e436e0c7863aab32eae5e106e9b680e46</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 'pan/otp_8579_autoimport_override' into dev</title>
<updated>2010-06-03T11:45:29+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2010-06-03T11:45:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=09f146a9dcfa4734f91c72bbb286ecca739fe439'/>
<id>09f146a9dcfa4734f91c72bbb286ecca739fe439</id>
<content type='text'>
* origin/pan/otp_8579_autoimport_override:
  Update preloaded modules
  Update primary bootstrap
  Remove outcommented code from erl_lint
  Make port_command/3 auto-imported
  Remove (harmless) warnings about min/max in core applications
  Autoimport min/2 and max/2
  Improve coverage of erl_int in testcases
  Change warning to error for nowarn_bif_clash compiler directive
  Add -compile({no_auto_import,[F/A]}) doc to compiler.xml
  Add some testcases to compiler to verify that overriding really happens
  Return nowarn_bif_clash functionality but with warning
  Teach erl_lint to better override BIFs with local functions and imports
  Teach compiler to override autoimport with import
  First prototype for local functions overriding autoimported

OTP-8579  Local functions should override auto-imported

Local and imported functions now override the autoimported
BIFs when the names clash. The pre R14 behaviour was that
autoimported BIFs would override local functions. To avoid
that old programs change behaviour, the following will
generate an error:

Doing a call without explicit module name to a local function
having a name clashing with the name of an autoimported BIF
that was present (and autoimported) before OTP R14A
Explicitly importing a function having a name clashing with
the name of an autoimported BIF that was present (and
autoimported) before OTP R14A Using any form of the old
compiler directive nowarn_bif_clash

If the BIF was added or autoimported in OTP R14A or later,
overriding it with an import or a local function will only
result in a warning,

To resolve clashes, you can either use the explicit module
name erlang to call the BIF, or you can remove the autoimport
of that specific BIF by using the new compiler directive
-compile({no_auto_import,[F/A]})., which makes all calls to
the local or imported function without explicit module name
pass without warnings or errors.

The change makes it possible to add autoimported BIFs without
breaking or silently changing old code in the future. However
some current code ingeniously utilizing the old behaviour or
the nowarn_bif_clash compiler directive, might need changing
to be accepted by the compiler.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* origin/pan/otp_8579_autoimport_override:
  Update preloaded modules
  Update primary bootstrap
  Remove outcommented code from erl_lint
  Make port_command/3 auto-imported
  Remove (harmless) warnings about min/max in core applications
  Autoimport min/2 and max/2
  Improve coverage of erl_int in testcases
  Change warning to error for nowarn_bif_clash compiler directive
  Add -compile({no_auto_import,[F/A]}) doc to compiler.xml
  Add some testcases to compiler to verify that overriding really happens
  Return nowarn_bif_clash functionality but with warning
  Teach erl_lint to better override BIFs with local functions and imports
  Teach compiler to override autoimport with import
  First prototype for local functions overriding autoimported

OTP-8579  Local functions should override auto-imported

Local and imported functions now override the autoimported
BIFs when the names clash. The pre R14 behaviour was that
autoimported BIFs would override local functions. To avoid
that old programs change behaviour, the following will
generate an error:

Doing a call without explicit module name to a local function
having a name clashing with the name of an autoimported BIF
that was present (and autoimported) before OTP R14A
Explicitly importing a function having a name clashing with
the name of an autoimported BIF that was present (and
autoimported) before OTP R14A Using any form of the old
compiler directive nowarn_bif_clash

If the BIF was added or autoimported in OTP R14A or later,
overriding it with an import or a local function will only
result in a warning,

To resolve clashes, you can either use the explicit module
name erlang to call the BIF, or you can remove the autoimport
of that specific BIF by using the new compiler directive
-compile({no_auto_import,[F/A]})., which makes all calls to
the local or imported function without explicit module name
pass without warnings or errors.

The change makes it possible to add autoimported BIFs without
breaking or silently changing old code in the future. However
some current code ingeniously utilizing the old behaviour or
the nowarn_bif_clash compiler directive, might need changing
to be accepted by the compiler.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update primary bootstrap</title>
<updated>2010-06-02T14:55:39+00:00</updated>
<author>
<name>Patrik Nyblom</name>
<email>pan@erlang.org</email>
</author>
<published>2010-06-02T14:55:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=54345d1b2731adfb47ff2f45d41fe798350bf5d3'/>
<id>54345d1b2731adfb47ff2f45d41fe798350bf5d3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update bootstrap compiler</title>
<updated>2010-06-02T12:54:58+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2010-06-02T12:54:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=841de5287ecef4dae5ea2e78531d8216f9b87989'/>
<id>841de5287ecef4dae5ea2e78531d8216f9b87989</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 'bg/opt-receive' into dev</title>
<updated>2010-05-12T04:04:59+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2010-05-12T04:04:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=dd908223cbf62adfeaefac982c4087cd35bb1805'/>
<id>dd908223cbf62adfeaefac982c4087cd35bb1805</id>
<content type='text'>
* bg/opt-receive:
  Test that gen_server:call/2,3 are fast even with a huge message queue
  erts: Add tests for the receive optimization
  Update primary bootstrap
  erts: Implement recv_mark/1 and recv_set/1 for real
  compiler tests: Cover the error handling code in beam_receive
  compiler test: Test optimization of receive statements
  Optimize selective receives in the presence of a large message queue
  Introduce the new recv_mark/1 and recv_mark/1 instructions
  Compile tests that communicate with R12 nodes with the r12 option
  Move p_run/2 to test_lib
  gen: Inline wait_resp_mon/2 to help the compiler optimize

OTP-8623 bg/opt-receive

reveive statements that can only read out a newly created reference are now
specially optimized so that it will execute in constant time regardless of
the number of messages in the receive queue for the process. That
optimization will benefit calls to gen_server:call(). (See gen:do_call/4
for an example of a receive statement that will be optimized.)</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* bg/opt-receive:
  Test that gen_server:call/2,3 are fast even with a huge message queue
  erts: Add tests for the receive optimization
  Update primary bootstrap
  erts: Implement recv_mark/1 and recv_set/1 for real
  compiler tests: Cover the error handling code in beam_receive
  compiler test: Test optimization of receive statements
  Optimize selective receives in the presence of a large message queue
  Introduce the new recv_mark/1 and recv_mark/1 instructions
  Compile tests that communicate with R12 nodes with the r12 option
  Move p_run/2 to test_lib
  gen: Inline wait_resp_mon/2 to help the compiler optimize

OTP-8623 bg/opt-receive

reveive statements that can only read out a newly created reference are now
specially optimized so that it will execute in constant time regardless of
the number of messages in the receive queue for the process. That
optimization will benefit calls to gen_server:call(). (See gen:do_call/4
for an example of a receive statement that will be optimized.)</pre>
</div>
</content>
</entry>
<entry>
<title>Update primary bootstrap</title>
<updated>2010-05-11T07:04:22+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2010-05-10T05:19:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=cdd4f992ec0c64c086255f87f1c6282d2a0a7a4d'/>
<id>cdd4f992ec0c64c086255f87f1c6282d2a0a7a4d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update bootstrap compiler</title>
<updated>2010-05-10T04:59:13+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2010-05-10T04:59:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=9a47f399acb54eac86b79b274aaf4f191a765961'/>
<id>9a47f399acb54eac86b79b274aaf4f191a765961</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update bootstrap compiler</title>
<updated>2010-04-01T06:00:42+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2010-04-01T06:00:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=00ee51ffa60db202fa3cf845bd59e9e208251eb1'/>
<id>00ee51ffa60db202fa3cf845bd59e9e208251eb1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
