File: incompatible.html

package info (click to toggle)
erlang-doc-html 1%3A11.b.2-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 23,284 kB
  • ctags: 10,724
  • sloc: erlang: 505; ansic: 323; makefile: 62; perl: 61; sh: 45
file content (682 lines) | stat: -rw-r--r-- 17,913 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- This document was generated using DocBuilder 3.3.3 -->
<HTML>
<HEAD>
  <TITLE>Potential Incompatibilities</TITLE>
  <SCRIPT type="text/javascript" src="../doc/erlresolvelinks.js">
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#FF00FF"
      ALINK="#FF0000">
<CENTER>
<A HREF="http://www.erlang.se"><IMG BORDER=0 ALT="[Ericsson AB]" SRC="min_head.gif"></A>
</CENTER>

<P>This document contains a list of potential incompatibilities
between Erlang 5.5/OTP R11B (unpatched) and the previous version
Erlang 5.4/OTP R10B (unpatched), and is an extract from the release
notes for the respective applications.
<P>Some of the potential incompatibilities listed below have been
introduced in R10B patches, although as a general rule, this is
avoided.
<P>Note: This document was compiled at the time when R11B was released
and does not list any potential incompatibilities introduced in
R11B patches. If using a patched version of R11B, please refer to
the README for the respective patches for information about
additional potential incompatibilites.<A NAME="1"><!-- Empty --></A>
<H2>1 Compiler</H2>

<P>
<UL>

<LI>
                 The compiler options <CODE>ignore_try</CODE> and
         <CODE>ignore_cond</CODE>, which allowed code that used unquoted
         <CODE>try</CODE> or <CODE>cond</CODE> as atoms or record tags, has
         been removed. Old code that depended on the options need to be
         revised to have occurrences of <CODE>try</CODE> or <CODE>cond</CODE>
         as atom or record tags single-quoted. (Note: Although
         <CODE>cond</CODE> is a reserved keyword, there is no
         <CODE>cond</CODE> statement. It might be introduced in a future
         release.)<BR>


                 Own Id: OTP-6058<BR>


</LI>


</UL>
<A NAME="2"><!-- Empty --></A>
<H2>2 Erts</H2>

<P>
<UL>

<LI>
                 <STRONG>NOTE</STRONG>: The design of SMP support for drivers is
         ongoing. There will probably be incompatible driver
         changes (only affecting drivers run on the runtime system
         with SMP support) released as patches for R11B.<BR>


                 <STRONG>Potential incompatibility</STRONG>: Previously, specific
         driver call-backs were always called from the same
         thread. This is <STRONG>not</STRONG> true in the runtime system
         with SMP support. Calls to call-backs will be made from
         different threads, e.g., two consecutive calls to exactly
         the same call-back can be made from two different
         threads. This will in <STRONG>most</STRONG> cases not be a problem.
         All calls to call-backs are synchronized, i.e., only one
         call-back will be called at a time.<BR>


                 Own Id: OTP-6006 Aux Id: OTP-6095<BR>


</LI>


<LI>
                 Linked-in driver modifications.<BR>

        
<UL>

<LI>
 Linked-in drivers must be recompiled. <BR>

</LI>


<LI>
 The <CODE>refc</CODE> field in the <CODE>ErlDrvBinary</CODE>
         type has been removed. The reference count can be
         accessed via API functions. For more information see the
         <CODE>erl_driver(1)</CODE> man page. <BR>

</LI>


</UL>

                 Own Id: OTP-6095 Aux Id: OTP-6006<BR>


</LI>


</UL>
<A NAME="3"><!-- Empty --></A>
<H2>3 Inets</H2>

<P>
<UL>

<LI>
                 The internal design of using blocking <CODE>gen_tcp:recv</CODE>
         with a timeout and retries resulted in code that was hard to
         get a good overview of, and ultimate led to situations where
         the client got the wrong answer or no answer at all.
         The errors where many times very timing dependent and mainly
         effected the chunk-related functions, so if you where lucky
         you probably would not have noticed. The internal design was
         changed to use <CODE>gen_tcp</CODE> active once semantics. The API
         is not effected except for the function <CODE>ftp:quote/2</CODE>
         which now returns a list of strings (ftp result lines) where
         the line endings &#34;\r\n&#34; has been removed. This was
         the original intention for the return value of
         <CODE>ftp:quote/2</CODE> but it was non trivial to make a good such
         solution with the old design and a compromise was made.<BR>

                 Introduced in Inets 4.5<BR>

                 Own Id: OTP-5623<BR>


</LI>


<LI>
                 When generating dynamic HTTP response bodies the the default
         content-type is now set to &#34;text/html&#34; instead of &#34;text/plain&#34;
         which is more intuitive.<BR>

                 Introduced in Inets 4.5<BR>

                 Own Id: OTP-5626<BR>


</LI>


<LI>
                 The ftp client now supports passive mode. Actually the ftp
         client will always try to use passive mode and if it fails it
         will use active mode instead. It is also possible to force
         the ftp client to use active mode, if that is desired, by
         calling <CODE>ftp:force_active/1</CODE> this way you can get the old
         behavior.<BR>

                 Introduced in Inets 4.4.1<BR>

                 Own Id: OTP-5148<BR>


</LI>


<LI>
                 The pipeline timeout was changed to be zero by default to
         avoid that people by accident would create connection
         processes that never dies and eats up the socket resources.
        <BR>

                 Introduced in Inets 4.3<BR>

                 Own Id: OTP-5442<BR>


</LI>


</UL>
<A NAME="4"><!-- Empty --></A>
<H2>4 Kernel</H2>

<P>
<UL>

<LI>
                 Previously <CODE>unlink/1</CODE> and <CODE>erlang:demonitor/2</CODE>
         behaved completely asynchronous. This had one undesirable
         effect, though. You could never know when you were
         guaranteed <STRONG>not</STRONG> to be affected by a link that you
         had unlinked or a monitor that you had demonitored.<BR>

                 The new behavior of <CODE>unlink/1</CODE> and
         <CODE>erlang:demonitor/2</CODE> can be viewed as two operations
         performed atomically. Asynchronously send an unlink
         signal or a demonitor signal, and ignore any future
         results of the link or monitor.<BR>

                 <STRONG>NOTE</STRONG>: This change can cause some obscure code
         to fail which previously did not. For example, the
         following code might hang:<BR>

        
<PRE>
          Mon = erlang:monitor(process, Pid),
          %% ...
          exit(Pid, bang),
          erlang:demonitor(Mon),
          receive
          {'DOWN', Mon, process, Pid, _} -&#62; ok
          %% We were previously guaranteed to get a down message
          %% (since we exited the process ourself), so we could
          %% in this case leave out:
          %% after 0 -&#62; ok
          end,
        
</PRE>

                 Own Id: OTP-5772<BR>


</LI>


<LI>
                 Global no longer allows the registration of a process
         under more than one name. If the old (buggy) behavior is
         desired the Kernel application variable
         <CODE>global_multi_name_action</CODE> can be given the value
         <CODE>allow</CODE>.<BR>

                 Own Id: OTP-5640 Aux Id: OTP-5603<BR>


</LI>


<LI>
                 The <CODE>auth</CODE> module API is deprecated.<BR>

                 Own Id: OTP-6037<BR>


</LI>


<LI>
                 Several bug fixes and improvements in the global name
         registration facility (see <CODE>global(3)</CODE>):<BR>

        
<UL>

<LI>
the name resolving procedure did not always unlink no
         longer registered processes;
</LI>


<LI>
the global name server could sometimes hang when a
         <CODE>nodedown</CODE> was immediately followed by a
         <CODE>nodeup</CODE>;
</LI>


<LI>
global names were not always unregistered when a node
         went down;
</LI>


<LI>
it is now possible to set and delete locks at
         the same time as the global name server is resolving
         names--the handling of global locks has been separated
         from registration of global names;
</LI>


</UL>

                 As of this version, <CODE>global</CODE> no longer supports nodes
         running Erlang/OTP R7B or earlier.<BR>

                 Introduced in Kernel 2.10.11
        <BR>
         Own Id: OTP-5563<BR>


</LI>


<LI>
                 The previously undocumented and UNSUPPORTED <CODE>zlib</CODE>
         module has been updated in an incompatible way and many
         bugs have been corrected. It is now also documented.<BR>

                 Introduced in Kernel 2.10.11
        <BR>
         Own Id: OTP-5715<BR>


</LI>


</UL>
<A NAME="5"><!-- Empty --></A>
<H2>5 Megaco</H2>

<P>
<UL>

<LI>
        The old version info print function,
         <CODE>format_versions/1</CODE>, have been deprecated.<BR>

                 Introduced in Megaco 3.2.7
        <BR>
Own Id: OTP-5953<BR>


</LI>


<LI>
        The <CODE>conn_info</CODE> function once again returns
         the <STRONG>next</STRONG> transaction id.<BR>

                 Introduced in Megaco 3.2.5
        <BR>
Own Id: OTP-5887<BR>

        Aux Id: Seq 10184
<BR>

</LI>


<LI>
        <CODE>localControlDescriptor</CODE> list of <CODE>localParm</CODE> now
         at least has to be of length 1.<BR>

                 Introduced in Megaco 3.2.4
        <BR>
Own Id: OTP-5882
<BR>

</LI>


<LI>
        The <CODE>ok</CODE> return value from
         <CODE>test_digit_event</CODE> and 
         <CODE>eval_digit_map</CODE> has been changed.<BR>

                 Introduced in Megaco 3.2.3/3.2.2
        <BR>
Own Id: OTP-5826 Aux Id: Seq 10085
<BR>

</LI>


<LI>
        The (successful) return value from the 
         <CODE>test_digit_event</CODE> and 
         <CODE>eval_digit_map</CODE> 
         has been changed.<BR>

        Introduced in Megaco 3.2
        <BR>
Own Id: OTP-5750 Aux Id: Seq 10085
<BR>

</LI>


<LI>
        The <CODE>File</CODE> argument to the function 
         <CODE>enable_trace</CODE> no 
         longer sets up <CODE>dbg</CODE> to write the trace events directly
         to file but instead to be written to a plain text file using 
         <CODE>io:format</CODE>.<BR>

        Also <CODE>enable_trace</CODE>
         no longer accepts the argument 
         <CODE>{io, Verbosity}</CODE>.<BR>

        Own Id: OTP-5447<BR>

                 Introduced in Megaco 3.0.1
<BR>

</LI>


<LI>
        Package number scheme (among other things) was changed
         in version 1 of the standard.
        <BR>
         Introduced in Megaco 3.0
        <BR>
Own Id: OTP-5272<BR>


</LI>


<LI>
        The config property <STRONG>orig_pending_limit</STRONG> has been 
         renamed to <STRONG>sent_pending_limit</STRONG>.
        <BR>
         Introduced in Megaco 3.0
        <BR>
Own Id: OTP-5220<BR>


</LI>


</UL>
<A NAME="6"><!-- Empty --></A>
<H2>6 OS_Mon</H2>

<P>
<UL>

<LI>
        The behaviour of OS_Mon 2.0 is
         backwards compatible under normal operation, but has changed
         somewhat in error situations: The services do not terminate
         and the API functions do not raise exceptions in all cases
         where they did before. Also, in the case where a service does
         terminate, the exit reason may be different.
        <BR>


</LI>


<LI>
                 The memsup part of the OS_Mon application has been made
         more stable. If there are (possibly temporary) problems
         collecting memory data, the interface functions
         (<CODE>get_memory_data/0</CODE>,
         <CODE>get_system_memory_data/0</CODE>) now do not fail, but
         return the previously collected value, if any, or a dummy
         value otherwise. Also, a warning message is printed.<BR>

                 Introduced in OS_Mon 1.8
        <BR>
         Own Id: OTP-5798<BR>


</LI>


</UL>
<A NAME="7"><!-- Empty --></A>
<H2>7 SASL</H2>

<P>
<UL>

<LI>
                 A new option <CODE>{update_paths,Bool}</CODE> has been added
         for <CODE>release_handler:install_release/2</CODE>. It
         indicates if all application code paths should be updated
         (<CODE>Bool==true</CODE>), or if only code paths for modified
         applications should be updated (<CODE>Bool==false</CODE>,
         default).<BR>

                 <CODE>release_handler:set_unpacked/2</CODE> now returns an
         error tuple if a specified application directory does not
         exist.<BR>

                 Introduced in SASL 2.1
        <BR>
         Own Id: OTP-5761<BR>


</LI>


</UL>
<A NAME="8"><!-- Empty --></A>
<H2>8 SNMP</H2>

<P>
<UL>

<LI>
        [manager] The 
         <CODE>snmpm_network_interface</CODE> 
         behaviour has been updated (see 
         <CODE>inform_response</CODE> and 
         definition of the manager net if).<BR>

                 Introduced in SNMP 4.5
        <BR>
Own Id: OTP-5733<BR>


</LI>


<LI>
        [agent] The format of the info returned by the agent 
         info retrieval function has been changed. The info 
         can be converted to the old format by calling the 
         <CODE>old_info_format</CODE> function. 
        <BR>
         Introduced in SNMP 4.4
        <BR>
Own Id: OTP-5666<BR>


</LI>


</UL>
<A NAME="9"><!-- Empty --></A>
<H2>9 SSL</H2>

<P>
<UL>

<LI>
                 The state of a connection in active mode could be in a
         restrictive state, so that an internal <CODE>tcp_closed</CODE>
         message was incorrectly considered illegal, resulting in a
         premature termination of the connection process.
        <BR>
         Introduced in SSL 3.0.11
        <BR>
         Own Id: OTP-5972 Aux Id: seq10188 
<BR>

</LI>


</UL>
<A NAME="10"><!-- Empty --></A>
<H2>10 STDLIB</H2>

<P>
<UL>

<LI>
                 <CODE>ets:info/1</CODE> has been corrected to behave according
         to the documentation and return a list of tuples, not a
         tuple with tuples.<BR>

                 Own Id: OTP-5639<BR>


</LI>


<LI>
                 Corrected <CODE>filelib:ensure_dir/1</CODE> which sometimes
         returned <CODE>true</CODE> and sometimes <CODE>ok</CODE> to always
         return <CODE>ok</CODE> when successful. This goes against the
         documentation which said <CODE>true</CODE>, but <CODE>ok</CODE> was
         judged to be a more logical return value.<BR>

                 Own Id: OTP-5960 Aux Id: seq10240 <BR>


</LI>


<LI>
                 The functions <CODE>lists:ukeysort/2</CODE> and
         <CODE>lists:ukeymerge/3</CODE> have been changed in such a way
         that two tuples are considered equal if their keys
         match.<BR>

                 For the sake of consistency, <CODE>lists:usort/2</CODE> and
         <CODE>lists:umerge/3</CODE> have been modified too: two elements
         are considered equal if they compare equal.<BR>

        The <CODE>file_sorter</CODE> module has been modified in a
         similar way: the <CODE>unique</CODE> option now applies to the
         key (<CODE>keysort()</CODE> and <CODE>keymerge()</CODE>) and the
         ordering function (the option <CODE>{order, Order} </CODE>).<BR>

                 Own Id: OTP-6019<BR>


</LI>


<LI>
                 The <CODE>public</CODE> option has been removed from
         <CODE>digraph:new/1</CODE>. The reason is that several
         functions in the <CODE>digraph</CODE> module are implemented
         using multiple ETS accesses, which is not thread safe.
         (Thanks to Ulf Wiger.)<BR>

                 Own Id: OTP-5985<BR>


</LI>


<LI>
                 Referencing a so far undeclared record from the default
         value of some record declaration is from now on considered
         an error by the linter. It is also an error if the default
         value of a record declaration uses or binds a variable.<BR>

                 Own Id: OTP-5878<BR>


</LI>


<LI>
                 <CODE>filelib:wildcard/2</CODE> was broken (it ignored its
         second argument).<BR>

                 Also, <CODE>filelib:wildcard(&#34;Filename&#34;)</CODE> (where the
         argument does not contain any meta-characters) would
         always return <CODE>[&#34;Filename&#34;]</CODE>. Corrected so that an
         empty list will be returned if <CODE>&#34;Filename&#34;</CODE> does not
         actually exist. (Same correction in
         <CODE>filelib:wildcard/2</CODE>.) (This change is a slight
         incompatibility.)<BR>

                 <CODE>filelib:wildcard/1,2</CODE> will generate a different
         exception when given bad patterns such as <CODE>&#34;{a,&#34;</CODE>. The
         exception used to be caused by
         <CODE>exit(missing_delimiter)</CODE> but is now
         <CODE>erlang:error({badpattern,missing_delimiter})</CODE>.<BR>

                 Introduced in STDLIB 1.13.7
        <BR>
         Own Id: OTP-5523 Aux Id: seq9824 <BR>


</LI>


<LI>
                 <CODE>gb_sets:del_element/2</CODE> was changed to do the
         same as <CODE>gb_sets:delete_any/2</CODE> which was the
         original intention, not as <CODE>gb_sets:delete/2</CODE>. Code
         that relies on <CODE>gb_sets:del_element/2</CODE> causing an
         error if the element does not exist must be changed to
         call <CODE>gb_sets:delete/2</CODE> instead.<BR>

                 The documentation was also updated to explicitly
         document functions that were only referred to as
         &#34;aliases&#34; of a documented function. Also, a list of all
         functions common to the <CODE>gb_sets</CODE>, <CODE>sets</CODE>, and
         <CODE>ordsets</CODE> was added.<BR>

                 Introduced in STDLIB 1.13.3
        <BR>
         Own Id: OTP-5277<BR>


</LI>


</UL>
<CENTER>
<HR>
<SMALL>
Copyright &copy; 1991-2006
<A HREF="http://www.erlang.se">Ericsson AB</A><BR>
</SMALL>
</CENTER>
</BODY>
</HTML>