~ubuntu-branches/ubuntu/lucid/erlang/lucid-proposed

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Sergei Golovan
  • Date: 2009-06-11 12:18:07 UTC
  • mfrom: (1.2.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20090611121807-ks7eb4xrt7dsysgx
Tags: 1:13.b.1-dfsg-1
* New upstream release.
* Removed unnecessary dependency of erlang-os-mon on erlang-observer and
  erlang-tools and added missing dependency of erlang-nox on erlang-os-mon
  (closes: #529512).
* Removed a patch to eunit application because the bug was fixed upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
  </header>
30
30
  <p>This document describes the changes made to the ERTS application.</p>
31
31
 
 
32
<section><title>Erts 5.7.2</title>
 
33
 
 
34
    <section><title>Fixed Bugs and Malfunctions</title>
 
35
      <list>
 
36
        <item>
 
37
          <p>
 
38
            Crash dumps should now cause less problems for the
 
39
            crashdump_viewer application. (For processes where arity
 
40
            was non-zero, the arguments are now longer printed - they
 
41
            used to be printed in a format that was not parseable.)</p>
 
42
          <p>
 
43
            Own Id: OTP-7472 Aux Id: seq11019, 11292 </p>
 
44
        </item>
 
45
        <item>
 
46
          <p>
 
47
            Processes could potentially get stuck on an offline
 
48
            scheduler.</p>
 
49
          <p>
 
50
            Own Id: OTP-7990</p>
 
51
        </item>
 
52
        <item>
 
53
          <p>
 
54
            <c>binary_to_atom/2</c> and
 
55
            <c>binary_to_existing_atom/2</c> could leak memory if
 
56
            they caused a <c>badarg</c> exception.</p>
 
57
          <p>
 
58
            Own Id: OTP-7997</p>
 
59
        </item>
 
60
        <item>
 
61
          <p>
 
62
            A process could under very rare circumstances erroneously
 
63
            be resumed.</p>
 
64
          <p>
 
65
            Own Id: OTP-8000</p>
 
66
        </item>
 
67
        <item>
 
68
          <p>
 
69
            Load balancing between schedulers could under rare
 
70
            circumstances cause an emulator crash.</p>
 
71
          <p>
 
72
            Own Id: OTP-8008</p>
 
73
        </item>
 
74
        <item>
 
75
          <p>
 
76
            <c>erlang:memory(processes_used)</c> always returned
 
77
            <c>0</c> instead of the correct value. (Thanks to Geoff
 
78
            Cant)</p>
 
79
          <p>
 
80
            Own Id: OTP-8022</p>
 
81
        </item>
 
82
      </list>
 
83
    </section>
 
84
 
 
85
 
 
86
    <section><title>Improvements and New Features</title>
 
87
      <list>
 
88
        <item>
 
89
          <p>
 
90
            Major improvements of the Erlang distribution for Erlang
 
91
            runtime systems with SMP support. Previously distribution
 
92
            port locks were heavily contended, and all encoding and
 
93
            decoding for a specific distribution channel had to be
 
94
            done in sequence. Lock contention due to the distribution
 
95
            is now negligible and both encoding and decoding of
 
96
            Erlang messages can be done in parallel.</p>
 
97
          <p>
 
98
            The old atom cache protocol used by the Erlang
 
99
            distribution has been dropped since it effectively
 
100
            prevented all parallel encoding and decoding of messages
 
101
            passed over the same distribution channel.</p>
 
102
          <p>
 
103
            A new atom cache protocol has been introduced which
 
104
            isolates atom cache accesses and makes parallel encoding
 
105
            and decoding of messages passed over the same
 
106
            distribution channel possible. The new atom cache
 
107
            protocol also use an atom cache size 8 times larger than
 
108
            before. The new atom cache protocol is documented in the
 
109
            ERTS users guide.</p>
 
110
          <p>
 
111
            Erlang messages received via the distribution are now
 
112
            decoded by the receiving Erlang processes without holding
 
113
            any distribution channel specific locks. Erlang messages
 
114
            and signals sent over the distribution are as before
 
115
            encoded by the sending Erlang process, but now without
 
116
            holding any distribution channel specific locks during
 
117
            the encoding. That is, both encoding and decoding can be
 
118
            and are done in parallel regardless of distribution
 
119
            channel used.</p>
 
120
          <p>
 
121
            The part that cannot be parallelized is the atom cache
 
122
            updates. Atom cache updates are therefore now scheduled
 
123
            on the distribution port. Since it is only one entity per
 
124
            distribution channel doing this work there is no lock
 
125
            contention due to the atom cache updates.</p>
 
126
          <p>
 
127
            The new runtime system does not understand the old atom
 
128
            cache protocol. New and old runtime systems can however
 
129
            still communicate, but no atom cache will be used.</p>
 
130
          <p>
 
131
            Own Id: OTP-7774</p>
 
132
        </item>
 
133
        <item>
 
134
          <p>
 
135
            Fixed a bug that caused error logging from
 
136
            <c>driver_select</c> sometimes with additional symptoms
 
137
            such as failing IP communications or even an emulator
 
138
            crash.</p>
 
139
          <p>
 
140
            Own Id: OTP-7898 Aux Id: seq11304 </p>
 
141
        </item>
 
142
        <item>
 
143
          <p>
 
144
            Improved SMP concurrency for ETS tables. Several mutating
 
145
            operations can now be performed truly concurrent on
 
146
            different records of the same table. To support this, the
 
147
            table has to be created with option
 
148
            <c>write_concurrency</c>, as it is achieved at the
 
149
            expense of some execution and memory overhead.
 
150
            <c>ets:select</c> and <c>select_count</c> has also been
 
151
            improved for all tables to not aquire exclusive table
 
152
            lock during the iteration.</p>
 
153
          <p>
 
154
            Own Id: OTP-7922</p>
 
155
        </item>
 
156
        <item>
 
157
          <p>
 
158
            erl (that is erl.exe and dyn_erl) and erlexec has been
 
159
            made more dynamic so no hard coded paths needs to added
 
160
            at installation time to erl (that is erl.ini and erl).
 
161
            Reltool will make use of this in a future release.</p>
 
162
          <p>
 
163
            Own Id: OTP-7952</p>
 
164
        </item>
 
165
        <item>
 
166
          <p>
 
167
            Added functionality to get higher resolution timestamp
 
168
            from system. The erlang:now function returns a timestamp
 
169
            that's not always consistent with the actual operating
 
170
            system time (due to resilience against large time changes
 
171
            in the operating system). The function os:timestamp/0 is
 
172
            added to get a similar timestamp as the one being
 
173
            returned by erlang:now, but untouched by Erlangs time
 
174
            correcting and smoothing algorithms. The timestamp
 
175
            returned by os:timestamp is always consistent with the
 
176
            operating systems view of time, like the calendar
 
177
            functions for getting wall clock time, but with higher
 
178
            resolution. Example of usage can be found in the os
 
179
            manual page.</p>
 
180
          <p>
 
181
            Own Id: OTP-7971</p>
 
182
        </item>
 
183
        <item>
 
184
          <p>
 
185
            Two new options are added to open_port - spawn_executable
 
186
            which runs external executables in a controlled way, and
 
187
            spawn_driver which only opens port to loaded Erlang
 
188
            drivers. See the erlang manual page for details.</p>
 
189
          <p>
 
190
            Own Id: OTP-7995</p>
 
191
        </item>
 
192
        <item>
 
193
          <p>
 
194
            New functionality in ETS to transfer the ownership of a
 
195
            table. A table can either change owner be declaring an
 
196
            "heir", another process that will inherit the table if
 
197
            the owner terminates. A table can also change owner by
 
198
            calling a new function <c>ets:give_away</c>.</p>
 
199
          <p>
 
200
            Own Id: OTP-8006</p>
 
201
        </item>
 
202
        <item>
 
203
          <p>
 
204
            Updates to Tilera build environment.</p>
 
205
          <p>
 
206
            Own Id: OTP-8009</p>
 
207
        </item>
 
208
        <item>
 
209
          <p>
 
210
            A stack trace was unnecessarily saved during process
 
211
            termination.</p>
 
212
          <p>
 
213
            Own Id: OTP-8014</p>
 
214
        </item>
 
215
        <item>
 
216
          <p>
 
217
            User defined CPU topology and scheduler bind type can now
 
218
            be set from the command line when starting an emulator.
 
219
            For more information see the documentation of the
 
220
            <c>+sct</c>, and the <c>+sbt</c> emulator flags in the
 
221
            <c>erl(1)</c> documentation.</p>
 
222
          <p>
 
223
            The CPU topologies returned from
 
224
            <c>erlang:system_info/1</c> and
 
225
            <c>erlang:system_flag/2</c> now always contain the
 
226
            <c>processor</c> level, also when not strictly necessary.</p>
 
227
          <p>
 
228
            Own Id: OTP-8030</p>
 
229
        </item>
 
230
        <item>
 
231
          <p>
 
232
            Various fixes in ETS: <c>ets:first</c> could return a
 
233
            deleted key in a fixated table. <c>ets:lookup</c> could
 
234
            return objects out of order if a deleted object was
 
235
            re-inserted into a fixed bag. <c>ets:delete_object</c>
 
236
            could fail to delete duplicate objects in a
 
237
            duplicate_bag.</p>
 
238
          <p>
 
239
            Own Id: OTP-8040</p>
 
240
        </item>
 
241
      </list>
 
242
    </section>
 
243
 
 
244
</section>
 
245
 
32
246
<section><title>Erts 5.7.1</title>
33
247
 
34
248
    <section><title>Fixed Bugs and Malfunctions</title>