~ubuntu-branches/ubuntu/trusty/erlang/trusty

« back to all changes in this revision

Viewing changes to lib/hipe/doc/src/notes.xml

  • Committer: Bazaar Package Importer
  • Author(s): Clint Byrum
  • Date: 2011-05-05 15:48:43 UTC
  • mfrom: (3.5.13 sid)
  • Revision ID: james.westby@ubuntu.com-20110505154843-0om6ekzg6m7ugj27
Tags: 1:14.b.2-dfsg-3ubuntu1
* Merge from debian unstable.  Remaining changes:
  - Drop libwxgtk2.8-dev build dependency. Wx isn't in main, and not
    supposed to.
  - Drop erlang-wx binary.
  - Drop erlang-wx dependency from -megaco, -common-test, and -reltool, they
    do not really need wx. Also drop it from -debugger; the GUI needs wx,
    but it apparently has CLI bits as well, and is also needed by -megaco,
    so let's keep the package for now.
  - debian/patches/series: Do what I meant, and enable build-options.patch
    instead.
* Additional changes:
  - Drop erlang-wx from -et
* Dropped Changes:
  - patches/pcre-crash.patch: CVE-2008-2371: outer level option with
    alternatives caused crash. (Applied Upstream)
  - fix for ssl certificate verification in newSSL: 
    ssl_cacertfile_fix.patch (Applied Upstream)
  - debian/patches/series: Enable native.patch again, to get stripped beam
    files and reduce the package size again. (build-options is what
    actually accomplished this)
  - Remove build-options.patch on advice from upstream and because it caused
    odd build failures.

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
<chapter>
5
5
  <header>
6
6
    <copyright>
7
 
      <year>2006</year><year>2009</year>
 
7
      <year>2006</year><year>2010</year>
8
8
      <holder>Ericsson AB. All Rights Reserved.</holder>
9
9
    </copyright>
10
10
    <legalnotice>
13
13
      compliance with the License. You should have received a copy of the
14
14
      Erlang Public License along with this software. If not, it can be
15
15
      retrieved online at http://www.erlang.org/.
16
 
    
 
16
 
17
17
      Software distributed under the License is distributed on an "AS IS"
18
18
      basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
19
19
      the License for the specific language governing rights and limitations
20
20
      under the License.
21
 
    
 
21
 
22
22
    </legalnotice>
23
23
 
24
24
    <title>HiPE Release Notes</title>
30
30
  </header>
31
31
  <p>This document describes the changes made to HiPE.</p>
32
32
 
 
33
<section><title>Hipe 3.7.9</title>
 
34
 
 
35
    <section><title>Fixed Bugs and Malfunctions</title>
 
36
      <list>
 
37
        <item>
 
38
          <p>
 
39
            Fix erroneous fail info of a hipe_bs_primop</p>
 
40
          <p>
 
41
            Own Id: OTP-9036</p>
 
42
        </item>
 
43
        <item>
 
44
          <p>
 
45
            The change fixes a bug in the translation of 'bs_add'
 
46
            BEAM instruction to HiPE's Icode representation. When
 
47
            these instructions appeared in a guard context the
 
48
            previous translation was obviously buggy.</p>
 
49
          <p>
 
50
            Own Id: OTP-9044</p>
 
51
        </item>
 
52
        <item>
 
53
          <p>
 
54
            Sanitize the specs of the code module</p>
 
55
          <p>
 
56
            After the addition of unicode_binary() to the
 
57
            file:filename() type, dialyzer started complaining about
 
58
            erroneous or incomplete specs in some functions of the
 
59
            'code' module. The culprit was hard-coded information in
 
60
            erl_bif_types for functions of this module, which were
 
61
            not updated. Since these functions have proper specs
 
62
            these days and code duplication (pun intended) is never a
 
63
            good idea, their type information was removed from
 
64
            erl_bif_types.</p>
 
65
          <p>
 
66
            While doing this, some erroneous comments were fixed in
 
67
            the code module and also made sure that the code now runs
 
68
            without dialyzer warnings even when the
 
69
            -Wunmatched_returns option is used.</p>
 
70
          <p>
 
71
            Some cleanups were applied to erl_bif_types too.</p>
 
72
          <p>
 
73
            Own Id: OTP-9100</p>
 
74
        </item>
 
75
        <item>
 
76
          <p>
 
77
            Fix bug in the simplification of inexact comparisons</p>
 
78
          <p>
 
79
            On 31/1/2011 Paul Guyot reported a bug in the native code
 
80
            compilation of inexact equality/inequality tests between
 
81
            floats and integers. The relevant test was:</p>
 
82
          <p>
 
83
            f(X) -&gt; Y = X / 2, Y == 0.</p>
 
84
          <p>
 
85
            and hipe erroneously evaluated the calls f(0) and f(0.0)
 
86
            to 'false'.</p>
 
87
          <p>
 
88
            The culprit was in the simplification code of the Icode
 
89
            range analysis which used an erroneous test (lists:any/1
 
90
            instead of lists:all/1).</p>
 
91
          <p>
 
92
            Own Id: OTP-9101</p>
 
93
        </item>
 
94
        <item>
 
95
          <p>
 
96
            Document exiting and garbage_collecting process statuses</p>
 
97
          <p>
 
98
            Own Id: OTP-9102</p>
 
99
        </item>
 
100
        <item>
 
101
          <p>
 
102
            Remove hipe constants pool</p>
 
103
          <p>
 
104
            Hipe constants used to be allocated within a single,
 
105
            fixed-size pool for interaction with the garbage
 
106
            collector. However, the garbage collector no longer
 
107
            depends on constants being allocated within a single
 
108
            pool, and the fixed size of the pool both meant
 
109
            unnecessary allocations on most deployments and crashes
 
110
            on deployments requiring more constants.</p>
 
111
          <p>
 
112
            The code was simplified to directly invoke erts_alloc.
 
113
            Debugging and undocumented function
 
114
            hipe_bifs:show_literals/0 was removed (it returned true
 
115
            and output text to the console), and debugging and
 
116
            undocumented function hipe_bifs:constants_size/0 was
 
117
            rewritten with a global to count the size of allocated
 
118
            constants.</p>
 
119
          <p>
 
120
            Own Id: OTP-9128</p>
 
121
        </item>
 
122
      </list>
 
123
    </section>
 
124
 
 
125
</section>
 
126
 
 
127
<section><title>Hipe 3.7.8.1</title>
 
128
 
 
129
    <section><title>Fixed Bugs and Malfunctions</title>
 
130
      <list>
 
131
        <item>
 
132
          <p>
 
133
            Several type specifications for standard libraries were
 
134
            wrong in the R14B01 release. This is now corrected. The
 
135
            corrections concern types in re,io,filename and the
 
136
            module erlang itself.</p>
 
137
          <p>
 
138
            Own Id: OTP-9008</p>
 
139
        </item>
 
140
      </list>
 
141
    </section>
 
142
 
 
143
</section>
 
144
 
 
145
<section><title>Hipe 3.7.8</title>
 
146
 
 
147
    <section><title>Improvements and New Features</title>
 
148
      <list>
 
149
        <item>
 
150
          <p>
 
151
            Compiler warnings were eliminated.</p>
 
152
          <p>
 
153
            Own Id: OTP-8855</p>
 
154
        </item>
 
155
      </list>
 
156
    </section>
 
157
 
 
158
</section>
 
159
 
 
160
<section><title>Hipe 3.7.7</title>
 
161
 
 
162
    <section><title>Fixed Bugs and Malfunctions</title>
 
163
      <list>
 
164
        <item>
 
165
            <p>The HiPE compiler could crash when compiling certain
 
166
            modules (the bug has been latent, and been exposed by new
 
167
            optimizations introduced in the BEAM compiler in R14A).
 
168
            (Thanks to Mikael Pettersson.)</p>
 
169
          <p>
 
170
            Own Id: OTP-8800</p>
 
171
        </item>
 
172
        <item>
 
173
          <p>
 
174
            hipe:load/1 was broken. (Thanks to Paul Guyot.)</p>
 
175
          <p>
 
176
            Own Id: OTP-8802</p>
 
177
        </item>
 
178
      </list>
 
179
    </section>
 
180
 
 
181
</section>
 
182
 
 
183
<section><title>Hipe 3.7.6</title>
 
184
 
 
185
    <section><title>Improvements and New Features</title>
 
186
      <list>
 
187
        <item>
 
188
            <p><c>receive</c> statements that can only read out a
 
189
            newly created reference are now specially optimized so
 
190
            that it will execute in constant time regardless of the
 
191
            number of messages in the receive queue for the process.
 
192
            That optimization will benefit calls to
 
193
            <c>gen_server:call()</c>. (See <c>gen:do_call/4</c> for
 
194
            an example of a receive statement that will be
 
195
            optimized.)</p>
 
196
          <p>
 
197
            Own Id: OTP-8623</p>
 
198
        </item>
 
199
        <item>
 
200
          <p>
 
201
            Various changes to dialyzer-related files for R14.</p>
 
202
          <p>
 
203
            - Dialyzer properly supports the new attribute
 
204
            -export_type and checks that remote types only refer to
 
205
            exported types. A warning is produced if some
 
206
            files/applications refer to types defined in modules
 
207
            which are neither in the PLT nor in the analyzed
 
208
            applications.</p>
 
209
          <p>
 
210
            - Support for detecting data races involving whereis/1
 
211
            and unregister/1.</p>
 
212
          <p>
 
213
            - More precise identification of the reason(s) why a
 
214
            record construction violates the types declared for its
 
215
            fields.</p>
 
216
          <p>
 
217
            - Fixed bug in the handling of the 'or' guard.</p>
 
218
          <p>
 
219
            - Better handling of the erlang:element/2 BIF.</p>
 
220
          <p>
 
221
            - Complete handling of Erlang BIFs.</p>
 
222
          <p>
 
223
            Own Id: OTP-8699</p>
 
224
        </item>
 
225
        <item>
 
226
            <p><c>eprof</c> has been reimplemented with support in
 
227
            the Erlang virtual machine and is now both faster (i.e.
 
228
            slows down the code being measured less) and scales much
 
229
            better. In measurements we saw speed-ups compared to the
 
230
            old eprof ranging from 6 times (for sequential code that
 
231
            only uses one scheduler/core) up to 84 times (for
 
232
            parallel code that uses 8 cores).</p>
 
233
            <p>Note: The API for the <c>eprof</c> has been cleaned up
 
234
            and extended. See the documentation.</p>
 
235
          <p>
 
236
            *** POTENTIAL INCOMPATIBILITY ***</p>
 
237
          <p>
 
238
            Own Id: OTP-8706</p>
 
239
        </item>
 
240
      </list>
 
241
    </section>
 
242
 
 
243
</section>
 
244
 
 
245
<section><title>Hipe 3.7.5</title>
 
246
 
 
247
    <section><title>Improvements and New Features</title>
 
248
      <list>
 
249
        <item>
 
250
            <p>The documentation is now possible to build in an open
 
251
            source environment after a number of bugs are fixed and
 
252
            some features are added in the documentation build
 
253
            process. </p>
 
254
            <p>- The arity calculation is updated.</p>
 
255
            <p>- The module prefix used in the function names for
 
256
            bif's are removed in the generated links so the links
 
257
            will look like
 
258
            "http://www.erlang.org/doc/man/erlang.html#append_element-2"
 
259
            instead of
 
260
            "http://www.erlang.org/doc/man/erlang.html#erlang:append_element-2".</p>
 
261
            <p>- Enhanced the menu positioning in the html
 
262
            documentation when a new page is loaded.</p>
 
263
            <p>- A number of corrections in the generation of man
 
264
            pages (thanks to Sergei Golovan)</p>
 
265
            <p>- The legal notice is taken from the xml book file so
 
266
            OTP's build process can be used for non OTP
 
267
            applications.</p>
 
268
          <p>
 
269
            Own Id: OTP-8343</p>
 
270
        </item>
 
271
      </list>
 
272
    </section>
 
273
 
 
274
</section>
 
275
 
33
276
<section><title>Hipe 3.7.4</title>
34
277
 
35
278
    <section><title>Improvements and New Features</title>