~ubuntu-branches/debian/squeeze/erlang/squeeze

« back to all changes in this revision

Viewing changes to erts/doc/src/notes.xml

  • Committer: Bazaar Package Importer
  • Author(s): Sergei Golovan
  • Date: 2010-03-09 17:34:57 UTC
  • mfrom: (10.1.2 sid)
  • Revision ID: james.westby@ubuntu.com-20100309173457-4yd6hlcb2osfhx31
Tags: 1:13.b.4-dfsg-3
Manpages in section 1 are needed even if only arch-dependent packages are
built. So, re-enabled them.

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
<chapter>
5
5
  <header>
6
6
    <copyright>
7
 
      <year>2004</year><year>2009</year>
 
7
      <year>2004</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>ERTS Release Notes</title>
30
30
  </header>
31
31
  <p>This document describes the changes made to the ERTS application.</p>
32
32
 
 
33
<section><title>Erts 5.7.5</title>
 
34
 
 
35
    <section><title>Fixed Bugs and Malfunctions</title>
 
36
      <list>
 
37
        <item>
 
38
          <p>
 
39
            Fix <c>binary_to_term</c> crash on compressed term with
 
40
            corrupt size field.</p>
 
41
          <p>
 
42
            Own Id: OTP-8336</p>
 
43
        </item>
 
44
        <item>
 
45
          <p>
 
46
            Processes and/or ports could get stuck on a blocked
 
47
            scheduler when <c>erlang:system_flag(multi_scheduling,
 
48
            block)</c> was used.</p>
 
49
          <p>
 
50
            Processes and/or ports could get stuck on an offline
 
51
            scheduler when schedulers online were reduced using
 
52
            <c>erlang:system_flag(schedulers_online,
 
53
            SchedulersOnline)</c>.</p>
 
54
          <p>
 
55
            Own Id: OTP-8342</p>
 
56
        </item>
 
57
        <item>
 
58
            <p>Building on Windows will now work if the paths to
 
59
            <c>mc.exe</c> and <c>rc.exe</c> contain spaces. The
 
60
            README.win32 file has been updated with some information
 
61
            about building using Visual Studio 2008. (Thanks to
 
62
            Andrew Thompson.)</p>
 
63
          <p>
 
64
            Own Id: OTP-8345</p>
 
65
        </item>
 
66
        <item>
 
67
          <p>
 
68
            EPMD now correctly handles the extra data field which can
 
69
            be given in the ALIVE2_REQ request and retrieved in the
 
70
            PORT2_RESP response. (Thanks to Klas Johansson.)</p>
 
71
          <p>
 
72
            Own Id: OTP-8361</p>
 
73
        </item>
 
74
        <item>
 
75
          <p>
 
76
            The configure test for reliable floating point exceptions
 
77
            has been update to work on modern versions of Mac OS X.
 
78
            (Thanks to Trannie Carter.)</p>
 
79
          <p>
 
80
            Own Id: OTP-8368</p>
 
81
        </item>
 
82
        <item>
 
83
          <p>
 
84
            ERTS makefiles used to detect the use of a gcc C compiler
 
85
            by checking if CC equaled gcc. That is, the makefiles
 
86
            failed to detect gcc C compilers with other command line
 
87
            names than gcc. `configure' now substitute GCC into the
 
88
            makefiles. If CC is a gcc C compiler, GCC will have the
 
89
            value yes. (Thanks to Jean-S�bastien P�dron)</p>
 
90
          <p>
 
91
            Own Id: OTP-8373</p>
 
92
        </item>
 
93
        <item>
 
94
          <p>
 
95
            ETS bug causing the <c>memory</c> counter from
 
96
            <c>ets:info</c> for ordered_set's to sometimes get out of
 
97
            synch and absurdly high.</p>
 
98
          <p>
 
99
            Own Id: OTP-8377 Aux Id: seq11442 </p>
 
100
        </item>
 
101
        <item>
 
102
          <p>
 
103
            Immediately repeated multi-scheduling block/unblock
 
104
            cycles using <c>erlang:system_flag(multi_scheduling,
 
105
            block | unblock)</c> could deadlock the runtime system.</p>
 
106
          <p>
 
107
            Own Id: OTP-8386</p>
 
108
        </item>
 
109
        <item>
 
110
            <p>A number of bugs concerning re and unicode are
 
111
            corrected:</p>
 
112
            <p>re:compile no longer looses unicode option, which also
 
113
            fixes bug in re:split.</p>
 
114
            <p>re:replace now handles unicode charlist replacement
 
115
            argument</p>
 
116
            <p>re:replace now handles unicode RE charlist argument
 
117
            correctly</p>
 
118
            <p>re:replace now handles binary unicode output correctly
 
119
            when nothing is replaced.</p>
 
120
            <p>Most code, testcases and error isolation done by Rory
 
121
            Byrne.</p>
 
122
          <p>
 
123
            Own Id: OTP-8394</p>
 
124
        </item>
 
125
        <item>
 
126
          <p>
 
127
            The loading of native code was not properly atomic in the
 
128
            SMP emulator, which could cause crashes. Also a per-MFA
 
129
            information table for the native code has now been
 
130
            protected with a lock since it turns that it could be
 
131
            accessed concurrently in the SMP emulator. (Thanks to
 
132
            Mikael Pettersson.)</p>
 
133
          <p>
 
134
            Own Id: OTP-8397</p>
 
135
        </item>
 
136
        <item>
 
137
          <p>
 
138
            Fix processes in exiting status that are about to be
 
139
            scheduled, to not be allowed to garbage collect.</p>
 
140
          <p>
 
141
            Own Id: OTP-8420</p>
 
142
        </item>
 
143
        <item>
 
144
            <p>Removed bogus "\011" character sequence in
 
145
            documentation.</p>
 
146
          <p>
 
147
            Own Id: OTP-8422</p>
 
148
        </item>
 
149
        <item>
 
150
          <p>
 
151
            The resolver routines failed to look up the own node name
 
152
            as hostname, if the OS native resolver was erroneously
 
153
            configured, bug reported by Yogish Baliga, now fixed.</p>
 
154
          <p>
 
155
            The resolver routines now tries to parse the hostname as
 
156
            an IP string as most OS resolvers do, unless the native
 
157
            resolver is used.</p>
 
158
          <p>
 
159
            The DNS resolver inet_res and file resolver inet_hosts
 
160
            now do not read OS configuration files until they are
 
161
            needed. Since the native resolver is default, in most
 
162
            cases they are never needed.</p>
 
163
          <p>
 
164
            The DNS resolver's automatic updating of OS configuration
 
165
            file data (/etc/resolv.conf) now uses the 'domain'
 
166
            keyword as default search domain if there is no 'search'
 
167
            keyword.</p>
 
168
          <p>
 
169
            Own Id: OTP-8426 Aux Id: OTP-8381 </p>
 
170
        </item>
 
171
        <item>
 
172
          <p>
 
173
            The re module: A regular expression with an option change
 
174
            at the start of a pattern that had top-level alternatives
 
175
            could cause overwriting and/or a crash. (Thanks to
 
176
            Michael Santos.)</p>
 
177
          <p>
 
178
            Own Id: OTP-8438</p>
 
179
        </item>
 
180
        <item>
 
181
          <p>
 
182
            Harmless buffer overflow by one byte in asn1 and
 
183
            ram_file_drv.</p>
 
184
          <p>
 
185
            Own Id: OTP-8451</p>
 
186
        </item>
 
187
      </list>
 
188
    </section>
 
189
 
 
190
 
 
191
    <section><title>Improvements and New Features</title>
 
192
      <list>
 
193
        <item>
 
194
          <p>
 
195
            Improved GC performance after BIF/NIF call when a lot of
 
196
            heap fragments was created. This will mainly benefit NIFs
 
197
            that return large compound terms.</p>
 
198
          <p>
 
199
            Own Id: OTP-8240</p>
 
200
        </item>
 
201
        <item>
 
202
            <p>Incompatible changes in the experimental NIF
 
203
            feature.</p> <list><item> Changed the NIF function
 
204
            prototypes in order to allow more than 3 function
 
205
            arguments. </item><item> <c>enif_get_data</c> renamed as
 
206
            <c>enif_priv_data</c>. </item><item>
 
207
            <c>enif_make_string</c> got a third argument for
 
208
            character encoding. </item><item> The return value of
 
209
            <c>erlang:load_nif/2</c> on error changed. </item></list>
 
210
            <p>Read more in the documentation of <c>erl_nif</c> and
 
211
            <c>erlang:load_nif/2</c></p>.
 
212
          <p>
 
213
            *** POTENTIAL INCOMPATIBILITY ***</p>
 
214
          <p>
 
215
            Own Id: OTP-8304</p>
 
216
        </item>
 
217
        <item>
 
218
            <p>Cross compilation improvements and other build system
 
219
            improvements.</p>
 
220
            <p>Most notable:</p> <list><item> Lots of cross
 
221
            compilation improvements. The old cross compilation
 
222
            support was more or less non-existing as well as broken.
 
223
            Please, note that the cross compilation support should
 
224
            still be considered as experimental. Also note that old
 
225
            cross compilation configurations cannot be used without
 
226
            modifications. For more information on cross compiling
 
227
            Erlang/OTP see the <c>$ERL_TOP/INSTALL-CROSS.md</c> file.
 
228
            </item><item> Support for staged install using <url
 
229
            href="http://www.gnu.org/prep/standards/html_node/DESTDIR.html">DESTDIR</url>.
 
230
            The old broken <c>INSTALL_PREFIX</c> has also been fixed.
 
231
            For more information see the <c>$ERL_TOP/INSTALL.md</c>
 
232
            file. </item><item> Documentation of the <c>release</c>
 
233
            target of the top <c>Makefile</c>. For more information
 
234
            see the <c>$ERL_TOP/INSTALL.md</c> file. </item><item>
 
235
            <c>make install</c> now by default creates relative
 
236
            symbolic links instead of absolute ones. For more
 
237
            information see the <c>$ERL_TOP/INSTALL.md</c> file.
 
238
            </item><item> <c>$ERL_TOP/configure --help=recursive</c>
 
239
            now works and prints help for all applications with
 
240
            <c>configure</c> scripts. </item><item> Doing <c>make
 
241
            install</c>, or <c>make release</c> directly after
 
242
            <c>make all</c> no longer triggers miscellaneous
 
243
            rebuilds. </item><item> Existing bootstrap system is now
 
244
            used when doing <c>make install</c>, or <c>make
 
245
            release</c> without a preceding <c>make all</c>.
 
246
            </item><item> The <c>crypto</c> and <c>ssl</c>
 
247
            applications use the same runtime library path when
 
248
            dynamically linking against <c>libssl.so</c> and
 
249
            <c>libcrypto.so</c>. The runtime library search path has
 
250
            also been extended. </item><item> The <c>configure</c>
 
251
            scripts of <c>erl_interface</c> and <c>odbc</c> now
 
252
            search for thread libraries and thread library quirks the
 
253
            same way as <c>erts</c> do. </item><item> The
 
254
            <c>configure</c> script of the <c>odbc</c> application
 
255
            now also looks for odbc libraries in <c>lib64</c> and
 
256
            <c>lib/64</c> directories when building on a 64-bit
 
257
            system. </item><item> The <c>config.h.in</c> file in the
 
258
            <c>erl_interface</c> application is now automatically
 
259
            generated in instead of statically updated which reduces
 
260
            the risk of <c>configure</c> tests without any effect.
 
261
            </item></list>
 
262
            <p>(Thanks to Henrik Riomar for suggestions and
 
263
            testing)</p>
 
264
            <p>(Thanks to Winston Smith for the AVR32-Linux cross
 
265
            configuration and testing)</p>
 
266
          <p>
 
267
            *** POTENTIAL INCOMPATIBILITY ***</p>
 
268
          <p>
 
269
            Own Id: OTP-8323</p>
 
270
        </item>
 
271
        <item>
 
272
            <p>NIF improvements:</p> <list><item> Driver API for
 
273
            multi-threading made available for NIFs. </item><item>
 
274
            Support for mempory managed (garbage collected) resource
 
275
            objects. A way to pass "pointers" to native data
 
276
            structures between C and Erlang in a safe way.
 
277
            </item><item> Support for references, floats and term
 
278
            comparison. </item><item> Various new functions, like
 
279
            <c>enif_inspect_iolist_as_binary</c>,
 
280
            <c>enif_make_sub_binary</c>, <c>enif_get_string</c>,
 
281
            <c>enif_get_atom</c>, <c>enif_make_tuple_from_array</c>,
 
282
            <c>enif_make_list_from_array</c>,
 
283
            <c>enif_make_existing_atom</c>. </item></list>
 
284
          <p>
 
285
            Own Id: OTP-8335</p>
 
286
        </item>
 
287
        <item>
 
288
          <p>
 
289
            Minor alignment adjustments of scheduler specific data.</p>
 
290
          <p>
 
291
            Own Id: OTP-8341</p>
 
292
        </item>
 
293
        <item>
 
294
            <p>The documentation is now possible to build in an open
 
295
            source environment after a number of bugs are fixed and
 
296
            some features are added in the documentation build
 
297
            process. </p>
 
298
            <p>- The arity calculation is updated.</p>
 
299
            <p>- The module prefix used in the function names for
 
300
            bif's are removed in the generated links so the links
 
301
            will look like
 
302
            "http://www.erlang.org/doc/man/erlang.html#append_element-2"
 
303
            instead of
 
304
            "http://www.erlang.org/doc/man/erlang.html#erlang:append_element-2".</p>
 
305
            <p>- Enhanced the menu positioning in the html
 
306
            documentation when a new page is loaded.</p>
 
307
            <p>- A number of corrections in the generation of man
 
308
            pages (thanks to Sergei Golovan)</p>
 
309
            <p>- The legal notice is taken from the xml book file so
 
310
            OTP's build process can be used for non OTP
 
311
            applications.</p>
 
312
          <p>
 
313
            Own Id: OTP-8343</p>
 
314
        </item>
 
315
        <item>
 
316
          <p>
 
317
            There is new <c>erlang:binary_to_term/2</c> BIF that
 
318
            takes an option list. The option <c>safe</c> can be used
 
319
            to prevent creation of resources that are not garbage
 
320
            collected (such as atoms). (Thanks to Jayson Vantuyl.)</p>
 
321
          <p>
 
322
            Own Id: OTP-8367</p>
 
323
        </item>
 
324
        <item>
 
325
          <p>
 
326
            The default settings for garbage collection of binaries
 
327
            has been adjusted to be less aggressive than in R13B03.
 
328
            It is now also possible configure the settings for binary
 
329
            GC. See the documentation for <c>spawn_opt/2-5</c>,
 
330
            <c>erlang:system_info/1</c>, <c>erlang:system_flag/2</c>,
 
331
            <c>process_flag/2-3</c>, <c>erlang:trace/3</c>, and the
 
332
            documenation for <c>erl</c> for the new command line
 
333
            options <c>+hms</c> and <c>+hmbs</c>.</p>
 
334
          <p>
 
335
            Own Id: OTP-8370</p>
 
336
        </item>
 
337
        <item>
 
338
          <p>
 
339
            A bug causing memory corruption in re:run() has been
 
340
            corrected. (Thanks to Yamashina Hio.)</p>
 
341
          <p>
 
342
            Own Id: OTP-8375</p>
 
343
        </item>
 
344
        <item>
 
345
          <p>
 
346
            The <c>-Werror</c> option for <c>erlc</c> and the
 
347
            compiler option <c>warnings_as_errors</c> will cause
 
348
            warnings to be treated as errors. (Thanks to Christopher
 
349
            Faulet.)</p>
 
350
          <p>
 
351
            Own Id: OTP-8382</p>
 
352
        </item>
 
353
        <item>
 
354
          <p>
 
355
            Explicit top directories in archive files are now
 
356
            optional.</p>
 
357
          <p>
 
358
            For example, if an archive (app-vsn.ez) just contains an
 
359
            app-vsn/ebin/mod.beam file, the file info for the app-vsn
 
360
            and app-vsn/ebin directories are faked using the file
 
361
            info from the archive file as origin. The virtual
 
362
            direcories can also be listed. For short, the top
 
363
            directories are virtual if they does not exist.</p>
 
364
          <p>
 
365
            Own Id: OTP-8387</p>
 
366
        </item>
 
367
        <item>
 
368
          <p>
 
369
            An unnecessary lock operation in os:timestamp/0 has been
 
370
            eliminated, making it slightly more efficient. (Thanks to
 
371
            Jonas Falkevik and Tuncer Ayaz.)</p>
 
372
          <p>
 
373
            Own Id: OTP-8390</p>
 
374
        </item>
 
375
        <item>
 
376
          <p>
 
377
            There is a new <c>+t</c> emulator option for changing the
 
378
            maximum number of atoms. (Thanks to Julien Barbot.)</p>
 
379
          <p>
 
380
            Own Id: OTP-8405</p>
 
381
        </item>
 
382
        <item>
 
383
          <p>
 
384
            Fixed numerous compiler warnings generated by gcc 4.4.1
 
385
            and tile-cc 2.0.1.78377 when compiling the runtime
 
386
            system.</p>
 
387
          <p>
 
388
            Own Id: OTP-8412</p>
 
389
        </item>
 
390
        <item>
 
391
          <p>
 
392
            <c>configure</c> learned the option
 
393
            <c>--enable-m32-build</c> to force the building of a
 
394
            32-bit run-time on systems where the default C compiler
 
395
            generates 64-bit executables by default.</p>
 
396
          <p>
 
397
            Own Id: OTP-8415</p>
 
398
        </item>
 
399
        <item>
 
400
          <p>
 
401
            HiPE now works in the 64-bit emulator on Mac OS X.
 
402
            (Thanks to Geoff Cant.)</p>
 
403
          <p>
 
404
            Own Id: OTP-8416</p>
 
405
        </item>
 
406
        <item>
 
407
          <p>
 
408
            Improved handling of symbolic links to escripts</p>
 
409
          <p>
 
410
            Own Id: OTP-8417</p>
 
411
        </item>
 
412
        <item>
 
413
          <p>
 
414
            Add lock profiling tool.</p>
 
415
          <p>
 
416
            The Lock profiling tool, lcnt, can make use of the
 
417
            internal lock statistics when the runtime system is built
 
418
            with this feature enabled.</p>
 
419
          <p>
 
420
            This provides a mechanism to examine potential lock
 
421
            bottlenecks within the runtime itself.</p>
 
422
          <p>
 
423
            - Add erts_debug:lock_counters({copy_save, bool()}). This
 
424
            option enables or disables statistics saving for
 
425
            destroyed processes and ets-tables. Enabling this might
 
426
            consume a lot of memory.</p>
 
427
          <p>
 
428
            - Add id-numbering for lock classes which is otherwise
 
429
            undefined.</p>
 
430
          <p>
 
431
            Own Id: OTP-8424</p>
 
432
        </item>
 
433
        <item>
 
434
          <p>
 
435
            Removed spurious options to the emulator from escript.</p>
 
436
          <p>
 
437
            Own Id: OTP-8427</p>
 
438
        </item>
 
439
        <item>
 
440
          <p>
 
441
            Minor documentation fixes. Mainly anchor adjustments.</p>
 
442
          <p>
 
443
            Own Id: OTP-8457</p>
 
444
        </item>
 
445
      </list>
 
446
    </section>
 
447
 
 
448
</section>
 
449
 
33
450
<section><title>Erts 5.7.4</title>
34
451
 
35
452
    <section><title>Fixed Bugs and Malfunctions</title>
242
659
        <item>
243
660
          <p>
244
661
            The <seealso
245
 
            marker="erlang#erlang:port_command/3">erlang:port_command/3</seealso>
 
662
            marker="erlang#port_command/3">erlang:port_command/3</seealso>
246
663
            BIF has been added. <c>erlang:port_command/3</c> is
247
664
            currently not auto imported, but it is planned to be auto
248
665
            imported in OTP R14. For more information see the
4371
4788
            following code might hang:</p>
4372
4789
          <code type="none"><![CDATA[
4373
4790
            Mon = erlang:monitor(process, Pid),
4374
 
\011    %% ...
4375
 
\011    exit(Pid, bang),
 
4791
            %% ...
 
4792
            exit(Pid, bang),
4376
4793
            erlang:demonitor(Mon),
4377
 
\011    receive
4378
 
\011        {'DOWN', Mon , process, Pid, _} -> ok
4379
 
\011    %% We were previously guaranteed to get a down message
4380
 
\011    %% (since we exited the process ourself), so we could
4381
 
\011    %% in this case leave out:
4382
 
\011    %% after 0 -> ok
4383
 
\011    end,
 
4794
            receive
 
4795
                {'DOWN', Mon , process, Pid, _} -> ok
 
4796
            %% We were previously guaranteed to get a down message
 
4797
            %% (since we exited the process ourself), so we could
 
4798
            %% in this case leave out:
 
4799
            %% after 0 -> ok
 
4800
            end,
4384
4801
          ]]></code>
4385
4802
          <p>*** POTENTIAL INCOMPATIBILITY ***</p>
4386
4803
          <p>Own Id: OTP-5772</p>
5342
5759
      <list type="bulleted">
5343
5760
        <item>
5344
5761
          <p>If Erlang/OTP was installed in a short directory name,
5345
 
            such as <c><![CDATA[C:\\Program\\erl5.4.2]]></c>, the emulator would not
 
5762
            such as <c><![CDATA[C:\Program\erl5.4.2]]></c>, the emulator would not
5346
5763
            start.</p>
5347
5764
          <p>Own Id: OTP-5254</p>
5348
5765
        </item>