<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/compiler/src, branch OTP-17.0</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>compiler: Fix compiling map keys in patterns from core</title>
<updated>2014-04-03T12:32:44+00:00</updated>
<author>
<name>Björn-Egil Dahlberg</name>
<email>egil@erlang.org</email>
</author>
<published>2014-04-02T16:35:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=c655521ab142547c371df3470a3fc62beef048ae'/>
<id>c655521ab142547c371df3470a3fc62beef048ae</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>compiler,stdlib: Fix Map literals as keys for Maps in patterns</title>
<updated>2014-04-03T12:32:44+00:00</updated>
<author>
<name>Björn-Egil Dahlberg</name>
<email>egil@erlang.org</email>
</author>
<published>2014-04-02T15:00:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=cc7a3c5896bc266bb97287dd4e31b696d8cf604f'/>
<id>cc7a3c5896bc266bb97287dd4e31b696d8cf604f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Take out no_native compiler attribute</title>
<updated>2014-03-28T16:46:34+00:00</updated>
<author>
<name>Kostis Sagonas</name>
<email>kostis@it.uu.se</email>
</author>
<published>2014-03-28T16:46:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=313bd52d160a66b24cff143fd8903e54dd8c6ca4'/>
<id>313bd52d160a66b24cff143fd8903e54dd8c6ca4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Support the translation of the is_map BEAM instruction to Icode</title>
<updated>2014-03-28T16:08:15+00:00</updated>
<author>
<name>Kostis Sagonas</name>
<email>kostis@it.uu.se</email>
</author>
<published>2014-03-28T16:08:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=3e8449e112be0fbd06786e14fd07148c1e8f5b53'/>
<id>3e8449e112be0fbd06786e14fd07148c1e8f5b53</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 'egil/maps-compiler-coverage'</title>
<updated>2014-03-26T13:19:55+00:00</updated>
<author>
<name>Björn-Egil Dahlberg</name>
<email>egil@erlang.org</email>
</author>
<published>2014-03-26T13:19:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=c5e3c774bd12cc15a04dd9880cad6eb66d2541be'/>
<id>c5e3c774bd12cc15a04dd9880cad6eb66d2541be</id>
<content type='text'>
* egil/maps-compiler-coverage:
  compiler: Do not evaluate map expressions with bad keys
  compiler: Throw 'nomatch' on matching with bad binary keys
  compiler: Variable keys are not allowed in Maps
  compiler: Strengthen Maps warnings tests
  compiler: map_pair cannot be a type clause in v3_life
  compiler: Remove redudant code in v3_codegen
  compiler: Test deep map structure
  compiler: Remove redundant clause in v3_codegen
  compiler: Cover #{ [] =&gt; Var } in testcase
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* egil/maps-compiler-coverage:
  compiler: Do not evaluate map expressions with bad keys
  compiler: Throw 'nomatch' on matching with bad binary keys
  compiler: Variable keys are not allowed in Maps
  compiler: Strengthen Maps warnings tests
  compiler: map_pair cannot be a type clause in v3_life
  compiler: Remove redudant code in v3_codegen
  compiler: Test deep map structure
  compiler: Remove redundant clause in v3_codegen
  compiler: Cover #{ [] =&gt; Var } in testcase
</pre>
</div>
</content>
</entry>
<entry>
<title>compiler: Do not evaluate map expressions with bad keys</title>
<updated>2014-03-25T18:08:09+00:00</updated>
<author>
<name>Björn-Egil Dahlberg</name>
<email>egil@erlang.org</email>
</author>
<published>2014-03-25T18:06:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=2d95280094fa6429081a9b9df3c73705819e2461'/>
<id>2d95280094fa6429081a9b9df3c73705819e2461</id>
<content type='text'>
Map keys with large (non literal) binary keys must fail.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Map keys with large (non literal) binary keys must fail.
</pre>
</div>
</content>
</entry>
<entry>
<title>compiler: Throw 'nomatch' on matching with bad binary keys</title>
<updated>2014-03-25T18:07:48+00:00</updated>
<author>
<name>Björn-Egil Dahlberg</name>
<email>egil@erlang.org</email>
</author>
<published>2014-03-25T17:37:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=71df02b2ead5c68eb9c4dff00d91a1d0e94659fe'/>
<id>71df02b2ead5c68eb9c4dff00d91a1d0e94659fe</id>
<content type='text'>
Even if a binary key is written as a literal the compiler may
choose to make an expression. Emit a warning in those cases
and saying the case will not match.

This is a limitation in current implementation.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Even if a binary key is written as a literal the compiler may
choose to make an expression. Emit a warning in those cases
and saying the case will not match.

This is a limitation in current implementation.
</pre>
</div>
</content>
</entry>
<entry>
<title>compiler: Variable keys are not allowed in Maps</title>
<updated>2014-03-25T17:01:07+00:00</updated>
<author>
<name>Björn-Egil Dahlberg</name>
<email>egil@erlang.org</email>
</author>
<published>2014-03-25T17:01:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=9e01993aac2cc35c77e5e246ed6e160c3485a456'/>
<id>9e01993aac2cc35c77e5e246ed6e160c3485a456</id>
<content type='text'>
No need to check for variables in Map keys.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
No need to check for variables in Map keys.
</pre>
</div>
</content>
</entry>
<entry>
<title>compiler: map_pair cannot be a type clause in v3_life</title>
<updated>2014-03-25T15:07:39+00:00</updated>
<author>
<name>Björn-Egil Dahlberg</name>
<email>egil@erlang.org</email>
</author>
<published>2014-03-25T15:07:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=df6c03de9f692489d757ae1437b8fb2dc6200c6f'/>
<id>df6c03de9f692489d757ae1437b8fb2dc6200c6f</id>
<content type='text'>
Map pairs are encapsulated in a map.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Map pairs are encapsulated in a map.
</pre>
</div>
</content>
</entry>
<entry>
<title>Correctly handle non-matching patterns against literal values</title>
<updated>2014-03-25T03:34:24+00:00</updated>
<author>
<name>Anthony Ramine</name>
<email>n.oxyde@gmail.com</email>
</author>
<published>2014-03-25T02:00:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=7a72ebab6811bea482ae0ad9fc25c7f4820226fe'/>
<id>7a72ebab6811bea482ae0ad9fc25c7f4820226fe</id>
<content type='text'>
The pass sys_core_fold did not correctly handle non-matching patterns in code
such as:

    0 = case &lt;&lt;&gt;&gt; of
            &lt;&lt;&gt;&gt; -&gt; 0;
            a -&gt; 1
        end.

Function case_opt_lit/3 is rewritten in two passes to first remove any
non-matching clause and only then potentially remove the related patterns
in each clause.

Reported-by: Ulf Norell
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The pass sys_core_fold did not correctly handle non-matching patterns in code
such as:

    0 = case &lt;&lt;&gt;&gt; of
            &lt;&lt;&gt;&gt; -&gt; 0;
            a -&gt; 1
        end.

Function case_opt_lit/3 is rewritten in two passes to first remove any
non-matching clause and only then potentially remove the related patterns
in each clause.

Reported-by: Ulf Norell
</pre>
</div>
</content>
</entry>
</feed>
