~statik/ubuntu/maverick/erlang/erlang-merge-testing

« back to all changes in this revision

Viewing changes to lib/asn1/doc/src/notes_history.xml

  • Committer: Elliot Murphy
  • Date: 2010-06-08 03:55:44 UTC
  • mfrom: (3.5.6 squeeze)
  • Revision ID: elliot@elliotmurphy.com-20100608035544-dd8zh2swk7jr5rz2
* Merge with Debian unstable; remaining Ubuntu changes:
  - Drop libwxgtk2.8-dev build dependency. Wx isn't in main, and not
    supposed to. (LP #438365)
  - 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.
* Added missing symlinks to /usr/include for a few new header files.
* Fixed generation of ${erlang-base:Depends} and ${erlang-x11:Depends}
  substitution variables.
* Added a fix for a re:compile/2 crash on a long regular expression.
* Changed urgency to medium as the change fixes a security bug.
* Manpages in section 1 are needed even if only arch-dependent packages are
  built. So, re-enabled them.
* Fixed HiPE architecture recognition for powerpc Debian architecture.
* Moved xsltproc and fop to build-depends-indep and do not build
  documentation if only architecture-specific packages are built.
* Refreshed all patches.
* Made Emacs look in man5 and man7 for Erlang manpages and added code
  skeleton files to erlang-mode package.
* New upstream release.
* Moved manpages from incorrect sections 4 and 6 to correct 5 and 7
  (closes: #498492).
* Made manpages regexp in Emacs mode match only 3erl pages in section 3.
* Removed docb_gen script which is no longer needed to build manpages.
* Added erlang-doc package which contains documentation in HTML and PDF
  formats. This package replaces erlang-doc-html package and it's easier
  to synchronize it with the main Erlang packages as it's built from
  a single source package (closes: #558451).
* Removed RPATH from ssl and crypto application binaries as required by
  Debian policy.
* Added libwxgtk2.4-dev and libwxgtk2.6-dev to build conflicts.
* Added a few dpendencies for erlang-dialyzer, erlang-et, erlang-observer
  and erlang-examples packages which now call functions from more modules
  than in 1:13.b.3.
* Added a workaround which disables vfork() for hppa architecture
  (closes: #562218).
* Strictened check for JDK 1.5 adding a call to String(int[], int, int)
  because GCJ 4.4 doesn't implement it and OpenJDK isn't available for all
  architectures.
* Fixed erlang-manpages package section.
* Made erlang-depends add only substvars which are requested in
  debian/control file. This minimizes number of warnings from dh_gencontrol.
  Also, improved descriptions of the functions in erlang-depends escript.
* Added erlang-erl-docgen package to erlang-nox dependencies.
* Made dummy packages erlang-nox and erlang-x11 architecture all.
* Cleaned up working with custom substitution variables in debian/rules.
* Reorganized debian/rules to ensure that manpages arent built twice, and
  aren't built at all if only architecture-dependent packages are requested.
* Fixed project links in README.Debian.
* Added a new package erlang-jinterface which provides tools for
  communication of Java programs with Erlang processes. This adds build
  depandency on default-jdk and as a result enables Java module for IDL
  compiler.
* Bumped standards version to 3.8.4.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?xml version="1.0" encoding="latin1" ?>
2
 
<!DOCTYPE chapter SYSTEM "chapter.dtd">
3
 
 
4
 
<chapter>
5
 
  <header>
6
 
    <copyright>
7
 
      <year>2006</year><year>2009</year>
8
 
      <holder>Ericsson AB. All Rights Reserved.</holder>
9
 
    </copyright>
10
 
    <legalnotice>
11
 
      The contents of this file are subject to the Erlang Public License,
12
 
      Version 1.1, (the "License"); you may not use this file except in
13
 
      compliance with the License. You should have received a copy of the
14
 
      Erlang Public License along with this software. If not, it can be
15
 
      retrieved online at http://www.erlang.org/.
16
 
    
17
 
      Software distributed under the License is distributed on an "AS IS"
18
 
      basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
19
 
      the License for the specific language governing rights and limitations
20
 
      under the License.
21
 
    
22
 
    </legalnotice>
23
 
 
24
 
    <title>ASN1 Release Notes</title>
25
 
    <prepared>Bertil Karlsson</prepared>
26
 
    <responsible></responsible>
27
 
    <docno></docno>
28
 
    <approved></approved>
29
 
    <checked></checked>
30
 
    <date>06-04-24</date>
31
 
    <rev></rev>
32
 
    <file>notes_history.sgml</file>
33
 
  </header>
34
 
  <p>This document describes the changes made to the asn1 system
35
 
    from version to version.  The intention of this document is to
36
 
    list all incompatibilities as well as all enhancements and
37
 
    bug-fixes for every release of the asn1 application. Each release of asn1
38
 
    thus constitutes one section in this document. The title of each
39
 
    section is the version number of asn1.</p>
40
 
 
41
 
 
42
 
  <section>
43
 
    <title>Asn1 1.4.4.14</title>
44
 
 
45
 
    <section>
46
 
      <title>Improvements and New Features</title>
47
 
      <list type="bulleted">
48
 
        <item>
49
 
          <p>Data in info/0 in generated code is moved to attribute
50
 
            asn1_info, thus vsn value remains the same if compiler
51
 
            options for asn1-spec differs but the generated code is
52
 
            the same.</p>
53
 
          <p>Own Id: OTP-6462</p>
54
 
        </item>
55
 
        <item>
56
 
          <p>Dialyzer warnings on asn1 are removed, i.e. dead code
57
 
            removed.</p>
58
 
          <p>Own Id: OTP-6506</p>
59
 
        </item>
60
 
      </list>
61
 
    </section>
62
 
  </section>
63
 
 
64
 
  <section>
65
 
    <title>Asn1 1.4.4.13</title>
66
 
 
67
 
    <section>
68
 
      <title>Improvements and New Features</title>
69
 
      <list type="bulleted">
70
 
        <item>
71
 
          <p>Now it is possible to use 'asn1config' and 'inline'
72
 
            options together. It is also possible to use 'inline' on
73
 
            a single file like:
74
 
            <c>asn1ct:compile("MyASN1spec.asn",[inline])</c>.</p>
75
 
          <p>Own Id: OTP-6405</p>
76
 
        </item>
77
 
      </list>
78
 
    </section>
79
 
  </section>
80
 
 
81
 
  <section>
82
 
    <title>Asn1 1.4.4.12</title>
83
 
 
84
 
    <section>
85
 
      <title>Improvements and New Features</title>
86
 
      <list type="bulleted">
87
 
        <item>
88
 
          <p>As a complement to the option "{inline,OutputFile}" it is
89
 
            now possible to use the option "inline". Then asn1 creates
90
 
            an output file with the name of the source .set file.</p>
91
 
          <p>Own Id: OTP-6314</p>
92
 
        </item>
93
 
      </list>
94
 
    </section>
95
 
  </section>
96
 
 
97
 
  <section>
98
 
    <title>Asn1 1.4.4.11</title>
99
 
 
100
 
    <section>
101
 
      <title>Fixed Bugs and Malfunctions</title>
102
 
      <list type="bulleted">
103
 
        <item>
104
 
          <p>When compiling an asn1 source that reference a type in
105
 
            another source the compiler uses the asn1db file of the
106
 
            other source to resolve the reference. It also tests
107
 
            whether the other source has been updated since the
108
 
            asn1db file was generated. This last test was to brutal
109
 
            in that it exits compilation when no source was found,
110
 
            even though a asn1db file existed. Changed behavior from
111
 
            a brutal exit to a warning.</p>
112
 
          <p>Own Id: OTP-6143</p>
113
 
        </item>
114
 
      </list>
115
 
    </section>
116
 
  </section>
117
 
 
118
 
  <section>
119
 
    <title>Asn1 1.4.4.10</title>
120
 
 
121
 
    <section>
122
 
      <title>Fixed Bugs and Malfunctions</title>
123
 
      <list type="bulleted">
124
 
        <item>
125
 
          <p>asn1 encoding failed on BIT STRING with constraint
126
 
            <c>(SIZE (32..MAX))</c>.</p>
127
 
          <p>Own Id: OTP-5932</p>
128
 
        </item>
129
 
        <item>
130
 
          <p>Race condition removed in server for variable names for
131
 
            generated code.</p>
132
 
          <p>Own Id: OTP-6111</p>
133
 
        </item>
134
 
      </list>
135
 
    </section>
136
 
  </section>
137
 
 
138
 
  <section>
139
 
    <title>Asn1 1.4.4.9</title>
140
 
 
141
 
    <section>
142
 
      <title>Fixed Bugs and Malfunctions</title>
143
 
      <list type="bulleted">
144
 
        <item>
145
 
          <p>Now exists a default function clause for table lookup of
146
 
            a table constraint. This causes a nice error instead of a
147
 
            crash. Did also remove some obsolete funs ({Mod,Fun}) in
148
 
            generated code.</p>
149
 
          <p>Own Id: OTP-5783</p>
150
 
        </item>
151
 
        <item>
152
 
          <p>ASN1-compiler failed to derive a value out of an external
153
 
            reference in some certain cases, when compiling specs so
154
 
            that the spec with the reference was compiled before the
155
 
            spec with the defined value.</p>
156
 
          <p>Own Id: OTP-5812 Aux Id: seq10133 </p>
157
 
        </item>
158
 
        <item>
159
 
          <p>The documentation of how records of embedded types are
160
 
            named is extended and made clearer by examples and rules.
161
 
            The section "Naming of Records in .hrl Files" in the
162
 
            User's Guide is added.</p>
163
 
          <p>Own Id: OTP-5831 Aux Id: seq10133 </p>
164
 
        </item>
165
 
        <item>
166
 
          <p>The compiler failed to give right name to record/function
167
 
            of a parameterized type that was referenced through
168
 
            another instance of a parameterized type in another
169
 
            module. The fault occurred when modules were compiled in a
170
 
            certain order. Now the compiler resolves the name
171
 
            correctly.</p>
172
 
          <p>Own Id: OTP-5832 Aux Id: seq10133 </p>
173
 
        </item>
174
 
      </list>
175
 
    </section>
176
 
  </section>
177
 
 
178
 
  <section>
179
 
    <title>Asn1 1.4.4.8</title>
180
 
 
181
 
    <section>
182
 
      <title>Fixed Bugs and Malfunctions</title>
183
 
      <list type="bulleted">
184
 
        <item>
185
 
          <p>The dynamic sort of SET OF values now correctly handles
186
 
            values encoded in the "ber_bin, der, optimize" mode, the
187
 
            value of a SET OF is a list of binaries.</p>
188
 
          <p>Own Id: OTP-5687</p>
189
 
        </item>
190
 
        <item>
191
 
          <p>Bad code was generated for an INTEGER with value-range. If
192
 
            the value that was encoded had a lower bound with
193
 
            negative value it caused a crash. This bug is now
194
 
            removed.</p>
195
 
          <p>Own Id: OTP-5688 Aux Id: seq10049 </p>
196
 
        </item>
197
 
        <item>
198
 
          <p>Compiler now handles wrong include paths by returning an
199
 
            error if a referenced module is not available.</p>
200
 
          <p>Own Id: OTP-5689</p>
201
 
        </item>
202
 
        <item>
203
 
          <p>The bug causing a runtime error when encoding a type
204
 
            defined by: <c>BIT STRING {a(1),b(2)}</c> with the value
205
 
            [] in <c>per_bin</c> mode is now removed.</p>
206
 
          <p>Own Id: OTP-5710 Aux Id: seq10066 </p>
207
 
        </item>
208
 
      </list>
209
 
    </section>
210
 
 
211
 
    <section>
212
 
      <title>Improvements and New Features</title>
213
 
      <list type="bulleted">
214
 
        <item>
215
 
          <p>Better handling of filename paths</p>
216
 
          <p>Own Id: OTP-5701</p>
217
 
        </item>
218
 
      </list>
219
 
    </section>
220
 
  </section>
221
 
 
222
 
  <section>
223
 
    <title>Asn1 1.4.4.7</title>
224
 
 
225
 
    <section>
226
 
      <title>Fixed Bugs and Malfunctions</title>
227
 
      <list type="bulleted">
228
 
        <item>
229
 
          <p>Effective constraint for <c>per</c> now corrected. For
230
 
            instance <c>INTEGER (0|15..269)</c> didn't work properly.</p>
231
 
          <p>Own Id: OTP-5477 Aux Id: OTP-5511 </p>
232
 
        </item>
233
 
        <item>
234
 
          <p>Adjusted compiler so that functions in generated code
235
 
            only are exported once.</p>
236
 
          <p>Own Id: OTP-5509</p>
237
 
        </item>
238
 
        <item>
239
 
          <p>Fixed the compiler failure when handling a value range
240
 
            constraint with an extension mark that had the Lower
241
 
            bound and/or Upper bound values as an external reference
242
 
            to a defined value.</p>
243
 
          <p>Own Id: OTP-5511 Aux Id: OTP-5466 </p>
244
 
        </item>
245
 
        <item>
246
 
          <p>Removed sorting of elements for SEQUENCE OF. It shall
247
 
            only be done in SET OF.</p>
248
 
          <p>Own Id: OTP-5602</p>
249
 
        </item>
250
 
        <item>
251
 
          <p>Corrected code that generated code causing badarith
252
 
            warning.</p>
253
 
          <p>Own Id: OTP-5616</p>
254
 
        </item>
255
 
      </list>
256
 
    </section>
257
 
  </section>
258
 
 
259
 
  <section>
260
 
    <title>Asn1 1.4.4.6</title>
261
 
 
262
 
    <section>
263
 
      <title>Known Bugs and Problems</title>
264
 
      <list type="bulleted">
265
 
        <item>
266
 
          <p>Compiler now correctly crashes when compiling bad values.
267
 
            Failed for instance on INTEGER value that was a reference
268
 
            to a defined value. Also solved problem with a union
269
 
            constraint on an INTEGER.</p>
270
 
          <p>Own Id: OTP-5457</p>
271
 
        </item>
272
 
        <item>
273
 
          <p>Additional coverage of object set syntax.</p>
274
 
          <p>Own Id: OTP-5466</p>
275
 
        </item>
276
 
      </list>
277
 
    </section>
278
 
  </section>
279
 
 
280
 
  <section>
281
 
    <title>Asn1 1.4.4.5</title>
282
 
 
283
 
    <section>
284
 
      <title>Fixed Bugs and Malfunctions</title>
285
 
      <list type="bulleted">
286
 
        <item>
287
 
          <p>A bug due to representation of open_type values is now
288
 
            fixed. It could cause problem if one used the EXTERNAL
289
 
            type.</p>
290
 
          <p>Own Id: OTP-5302</p>
291
 
        </item>
292
 
        <item>
293
 
          <p>Due to an internal error the same code could have been
294
 
            generated more than one time. This happened for the
295
 
            exclusive decode functionality.</p>
296
 
          <p>Own Id: OTP-5378</p>
297
 
        </item>
298
 
      </list>
299
 
    </section>
300
 
  </section>
301
 
 
302
 
  <section>
303
 
    <title>Asn1 1.4.4.4</title>
304
 
 
305
 
    <section>
306
 
      <title>Fixed Bugs and Malfunctions</title>
307
 
      <list type="bulleted">
308
 
        <item>
309
 
          <p>Empty objects caused problems. There was trouble when an
310
 
            object set referenced imported objects that in turn
311
 
            referenced imported types. Lacked support of
312
 
            SelectionType in object. All these have been attended.</p>
313
 
          <p>Own Id: OTP-5240</p>
314
 
        </item>
315
 
      </list>
316
 
    </section>
317
 
 
318
 
    <section>
319
 
      <title>Improvements and New Features</title>
320
 
      <list type="bulleted">
321
 
        <item>
322
 
          <p>Now it is possible to inline asn1 run-time functionality
323
 
            in the module generated by the asn1 compiler. Thus, it
324
 
            will be only one module doing all encoding/decoding.</p>
325
 
          <p>Own Id: OTP-5243</p>
326
 
        </item>
327
 
      </list>
328
 
    </section>
329
 
  </section>
330
 
 
331
 
  <section>
332
 
    <title>Asn1 1.4.4.3</title>
333
 
 
334
 
    <section>
335
 
      <title>Fixed errors and malfunctions</title>
336
 
      <list type="bulleted">
337
 
        <item>
338
 
          <p>A class that was referenced in two steps caused a
339
 
            compiler failure.  It is now corrected.</p>
340
 
          <p>Own Id: OTP-5103</p>
341
 
        </item>
342
 
      </list>
343
 
    </section>
344
 
 
345
 
    <section>
346
 
      <title>Improvements and new features</title>
347
 
      <list type="bulleted">
348
 
        <item>
349
 
          <p>Optionally make it possible to get the un-decoded rest along with 
350
 
            the return value. Compile with option <em>undec_rest</em>.</p>
351
 
          <p>Own Id: OTP-5104</p>
352
 
        </item>
353
 
      </list>
354
 
    </section>
355
 
  </section>
356
 
 
357
 
  <section>
358
 
    <title>Asn1 1.4.4.2</title>
359
 
 
360
 
    <section>
361
 
      <title>Fixed errors and malfunctions</title>
362
 
      <list type="bulleted">
363
 
        <item>
364
 
          <p>An error due to unchecked referenced imported type resulted
365
 
            in missing tag in some table constraint cases. This error is
366
 
            now corrected. Error occurred during decode in 
367
 
            <c>ber_bin optimized</c> version.</p>
368
 
          <p>Own Id: OTP-5022</p>
369
 
        </item>
370
 
      </list>
371
 
    </section>
372
 
  </section>
373
 
 
374
 
  <section>
375
 
    <title>Asn1 1.4.4.1</title>
376
 
 
377
 
    <section>
378
 
      <title>Fixed errors and malfunctions</title>
379
 
      <list type="bulleted">
380
 
        <item>
381
 
          <p>When a referenced value in another module in turn referenced a
382
 
            defined value the compilation crashed. This is due to the new
383
 
            routines for compilation, that external references are resolved
384
 
            during compilation, and not by the order in which modules are
385
 
            compiled. This error is now corrected.</p>
386
 
          <p>Own Id: OTP-4970</p>
387
 
        </item>
388
 
      </list>
389
 
    </section>
390
 
  </section>
391
 
 
392
 
  <section>
393
 
    <title>Asn1 1.4.4</title>
394
 
 
395
 
    <section>
396
 
      <title>Fixed errors and malfunctions</title>
397
 
      <list type="bulleted">
398
 
        <item>
399
 
          <p>Functionality for parameterized class is added. Parsing failures on
400
 
            WithSyntax spec is corrected.</p>
401
 
          <p>Own Id: OTP-4893</p>
402
 
        </item>
403
 
        <item>
404
 
          <p>The failure due to Parameterized Type when parameter is an object
405
 
            set is corrected.</p>
406
 
          <p>Own Id: OTP-4894</p>
407
 
          <p>Aux Id: OTP-4893</p>
408
 
        </item>
409
 
        <item>
410
 
          <p>Object Identifier values with two components and the first was a
411
 
            value reference failed due to parsing conflicts. Now it is
412
 
            corrected.</p>
413
 
          <p>Own Id: OTP-4895</p>
414
 
        </item>
415
 
        <item>
416
 
          <p>The erroneous comparison of file name and asn1 module name could
417
 
            cause compilation failure. The situation for this failure is rare,
418
 
            it requires that other processes modifies the compiled file during
419
 
            the compilation procedure. It is now fixed.</p>
420
 
          <p>Own Id: OTP-4944</p>
421
 
          <p>Aux Id: seq8429</p>
422
 
        </item>
423
 
        <item>
424
 
          <p>Selective decode was ignored when exclusive decode spec in asn1
425
 
            configfile was missing. Selective decode failed when the selected
426
 
            type was the top type. These bugs are now removed.</p>
427
 
          <p>Own Id: OTP-4953</p>
428
 
          <p>Aux Id: seq8436</p>
429
 
        </item>
430
 
        <item>
431
 
          <p>The test interface asn1ct:test/1,2,3 and asn1ct:value/2 failed for
432
 
            open type and EXTERNAL. The bug is now removed.</p>
433
 
          <p>Own Id: OTP-4955</p>
434
 
          <p>Aux Id: seq8438)</p>
435
 
        </item>
436
 
        <item>
437
 
          <p>Two equal functions were generated for two components referencing
438
 
            the same type when they were picked by the action "parts". The bug
439
 
            is now fixed.</p>
440
 
          <p>Own Id: OTP-4957</p>
441
 
          <p>Aux Id: seq8434</p>
442
 
        </item>
443
 
      </list>
444
 
    </section>
445
 
 
446
 
    <section>
447
 
      <title>Improvements and new features</title>
448
 
      <list type="bulleted">
449
 
        <item>
450
 
          <p>INTEGER with named number list and ENUMERATED can now be sub
451
 
            constrained with names from the names list.</p>
452
 
          <p>Own Id: OTP-4917</p>
453
 
        </item>
454
 
        <item>
455
 
          <p>Now there is support for SelectionType (X 680 section 29)</p>
456
 
          <p>Own Id: OTP-4918</p>
457
 
        </item>
458
 
        <item>
459
 
          <p>The compiler now resolves circular dependencies. When asn1 specs
460
 
            IMPORTS from each other so that there are circular dependencies.</p>
461
 
          <p>Own Id: OTP-4919</p>
462
 
        </item>
463
 
        <item>
464
 
          <p>Now is the asn1 type UTF8String supported. For user instructions
465
 
            see documentation.</p>
466
 
          <p>Own Id: OTP-4965</p>
467
 
        </item>
468
 
      </list>
469
 
    </section>
470
 
  </section>
471
 
 
472
 
  <section>
473
 
    <title>Asn1 1.4.3.1</title>
474
 
 
475
 
    <section>
476
 
      <title>Fixed Bugs and Malfunctions</title>
477
 
      <list type="bulleted">
478
 
        <item>
479
 
          <p>The <c>{internal_error,...,{ unrecognized_type,...}}</c>
480
 
            error occurring for a SET type when compiling with options
481
 
            <c>[ber_bin,optimize,der]</c> is now corrected.</p>
482
 
          <p>Own Id: OTP-4866</p>
483
 
        </item>
484
 
        <item>
485
 
          <p>False encode of BIT STRING in PER (per_bin,optimize) is fixed. The error occurred when there was a type like BIT STRING (SIZE(C)) and C &gt; 16.</p>
486
 
          <p>Own Id: OTP-4869</p>
487
 
        </item>
488
 
      </list>
489
 
    </section>
490
 
  </section>
491
 
 
492
 
  <section>
493
 
    <title>Asn1 1.4.3</title>
494
 
 
495
 
    <section>
496
 
      <title>Fixed errors and malfunctions</title>
497
 
      <list type="bulleted">
498
 
        <item>
499
 
          <p>Functionality to handle parameterized object sets have been added.</p>
500
 
          <p>Own Id: OTP-4832</p>
501
 
        </item>
502
 
        <item>
503
 
          <p>Bug causing duplicated function definitions using exclusive decode is removed.</p>
504
 
          <p>Own Id: OTP-4833)</p>
505
 
        </item>
506
 
        <item>
507
 
          <p>The race condition when loading asn1 driver is solved.</p>
508
 
          <p>Own Id: OTP-4835</p>
509
 
        </item>
510
 
      </list>
511
 
    </section>
512
 
 
513
 
    <section>
514
 
      <title>Improvements and new features</title>
515
 
      <list type="bulleted">
516
 
        <item>
517
 
          <p>A specialized decode, <em>selective decode</em> is now available. It decodes a chosen internal sub-type of a constructed type.</p>
518
 
          <p>Own Id: OTP-4856)</p>
519
 
        </item>
520
 
      </list>
521
 
    </section>
522
 
  </section>
523
 
 
524
 
  <section>
525
 
    <title>Asn1 1.4.2.2</title>
526
 
 
527
 
    <section>
528
 
      <title>Fixed errors and malfunctions</title>
529
 
      <list type="bulleted">
530
 
        <item>
531
 
          <p>Release of Asn1 1.4.2.1 on R7B, The functionality is the same, but
532
 
            the layer between the driver and the asn1 erlang code is different.</p>
533
 
        </item>
534
 
      </list>
535
 
    </section>
536
 
  </section>
537
 
 
538
 
  <section>
539
 
    <title>Asn1 1.4.2.1</title>
540
 
 
541
 
    <section>
542
 
      <title>Fixed errors and malfunctions</title>
543
 
      <list type="bulleted">
544
 
        <item>
545
 
          <p>ObjectDescriptor does now work as part of a sequence, set or choice.</p>
546
 
          <p>Own Id: OTP-4773</p>
547
 
        </item>
548
 
        <item>
549
 
          <p>When a SEQUENCE that have extension mark was decoded inside a
550
 
            SEQUENCE OF it could cause decode error due to a failure in
551
 
            restbytes2. It is now corrected.</p>
552
 
          <p>Own Id: OTP-4791)</p>
553
 
        </item>
554
 
        <item>
555
 
          <p>Now the bug is fixed that caused the compiler crash on an untagged
556
 
            optional open type.</p>
557
 
          <p>Own Id: OTP-4792</p>
558
 
        </item>
559
 
        <item>
560
 
          <p>The earlier exit caused by bad in-data is now fixed so it will
561
 
            return an {error,Reason} tuple.</p>
562
 
            return an {error,Reason} tuple.</p>
563
 
          <p>Own Id: OTP-4797</p>
564
 
        </item>
565
 
        <item>
566
 
          <p>Open type encoded with indefinite length is now correct decoded.</p>
567
 
          <p>Own Id: OTP-4798</p>
568
 
        </item>
569
 
        <item>
570
 
          <p>Now is absent optional open types handled correctly.</p>
571
 
          <p>Own Id: OTP-4799</p>
572
 
        </item>
573
 
        <item>
574
 
          <p>Now is the necessary functions available for sorting in run-time of
575
 
            SET and SET OF components.</p>
576
 
          <p>Own Id: OTP-4809</p>
577
 
        </item>
578
 
      </list>
579
 
    </section>
580
 
  </section>
581
 
 
582
 
  <section>
583
 
    <title>Asn1 1.4.2</title>
584
 
 
585
 
    <section>
586
 
      <title>Fixed errors and malfunctions</title>
587
 
      <list type="bulleted">
588
 
        <item>
589
 
          <p>When a component in a SEQUENCE is a CHOICE (or reference to a CHOICE)
590
 
            and the SEQUENCE's component and one of the alternatives in the CHOICE
591
 
            have identical names, an error may occur if one doesn't use the
592
 
            'optimized' versions of the compiler. In the older versions (<c>ber, ber_bin, per, per_bin</c>) one could optionally apply a value of a
593
 
            component as <c>{ComponentName,Value}</c>, and the generated code
594
 
            chooses the second element of the tuple. However, a value of a CHOICE
595
 
            must be applied as a tuple: <c>{AlternativeName,Value}</c>. Thus,
596
 
            in the rare case described above and if the value to the SEQUENCE's
597
 
            component is not in a tuple notation the
598
 
            <c>{AlternativeName,Value}</c> will be peeled off in the SEQUENCE
599
 
            and the value fed to the CHOICE will only be the <c>Value</c>
600
 
            part of <c>{AlternativeName,Value}</c>, and the encoder crashes.
601
 
            The best way to avoid this is to use the optimized version of the
602
 
            compiler where the unnecessary tuple notation
603
 
            <c>{ComponentName,Value}</c> no longer is allowed. Since it isn't
604
 
            possible to solve this bug in the compiler.</p>
605
 
          <p>Own Id: OTP-4693</p>
606
 
        </item>
607
 
      </list>
608
 
    </section>
609
 
 
610
 
    <section>
611
 
      <title>Improvements and new features</title>
612
 
      <list type="bulleted">
613
 
        <item>
614
 
          <p>Exclusive decode is enabled by a compiler option and a configuration
615
 
            file. It makes it possible to leave parts of an ASN.1 encoded message
616
 
            un-decoded.</p>
617
 
          <p>Own Id: OTP-4744</p>
618
 
        </item>
619
 
      </list>
620
 
    </section>
621
 
  </section>
622
 
 
623
 
  <section>
624
 
    <title>Asn1 1.4.1.1</title>
625
 
 
626
 
    <section>
627
 
      <title>Fixed errors and malfunctions</title>
628
 
      <list type="bulleted">
629
 
        <item>
630
 
          <p>The documentation about how extensibility is handled is now corrected.</p>
631
 
          <p>Own Id: OTP-4663</p>
632
 
        </item>
633
 
        <item>
634
 
          <p>Function in object now calls the exported function</p>
635
 
          <p>Own Id: OTP-4665</p>
636
 
        </item>
637
 
        <item>
638
 
          <p>Now is tags for ObjectClassFieldType analyzed correctly.</p>
639
 
          <p>Own Id: OTP-4666</p>
640
 
        </item>
641
 
      </list>
642
 
    </section>
643
 
  </section>
644
 
 
645
 
  <section>
646
 
    <title>Asn1 1.4.1</title>
647
 
 
648
 
    <section>
649
 
      <title>Fixed errors and malfunctions</title>
650
 
      <list type="bulleted">
651
 
        <item>
652
 
          <p>Now is the Default value for an ENUMERATED returned as the name from
653
 
            the NamedList when decoding.</p>
654
 
          <p>Own Id: OTP-4633</p>
655
 
        </item>
656
 
        <item>
657
 
          <p>It was an internal failure when permitted alphabet constraint existed
658
 
            together with for instance a size constraint. E.g. when a
659
 
            referenced type is constrained by a size constraint and the defined
660
 
            type in turn is constrained by a permitted alphabet constraint.</p>
661
 
          <p>Own Id: OTP-4559</p>
662
 
        </item>
663
 
        <item>
664
 
          <p>Record is generated in hrl file for a CHOICE with extension mark
665
 
            that has an internal SEQUENCE/SET definition.</p>
666
 
          <p>Own Id:  OTP-4560</p>
667
 
        </item>
668
 
        <item>
669
 
          <p>Now is the length of a SEQUENCE/SET OF correctly encoded/decoded (PER).</p>
670
 
          <p>Own Id: OTP-4590</p>
671
 
        </item>
672
 
        <item>
673
 
          <p>The problem with unordered decoded terms when a component is a
674
 
            ObjectClassFieldType has been solved.</p>
675
 
          <p>Own Id: OTP-4591</p>
676
 
        </item>
677
 
      </list>
678
 
    </section>
679
 
 
680
 
    <section>
681
 
      <title>Improvements and new features</title>
682
 
      <list type="bulleted">
683
 
        <item>
684
 
          <p>More complex definitions with TableConstraints where the SimpleTable
685
 
            and ComponentRelation are on different levels is now fully
686
 
            supported.</p>
687
 
          <p>Own Id: OTP-4631</p>
688
 
        </item>
689
 
      </list>
690
 
    </section>
691
 
  </section>
692
 
 
693
 
  <section>
694
 
    <title>Asn1 1.4</title>
695
 
 
696
 
    <section>
697
 
      <title>Fixed errors and malfunctions</title>
698
 
    </section>
699
 
 
700
 
    <section>
701
 
      <title>Improvements and new features</title>
702
 
      <list type="bulleted">
703
 
        <item>
704
 
          <p>Each generated .erl file have now a function info/0 that returns
705
 
            information about the used compiler version and options.</p>
706
 
          <p>Own Id: OTP-4373</p>
707
 
        </item>
708
 
        <item>
709
 
          <p>When compiling an ASN.1 module the compiler generates an Erlang module
710
 
            that is compiled by the Erlang compiler. Earlier it was not possible to
711
 
            add options to the final step, the Erlang compilation. By adding any
712
 
            option that is not recognized as a specific ASN.1 option it will be
713
 
            passed to the final step like: <c>erlc +debug_info  Mymodule.asn</c> or
714
 
            <c>asn1ct:compile('Mymodule',[debug_info])</c>.</p>
715
 
          <p>Own Id: OTP-4491</p>
716
 
        </item>
717
 
        <item>
718
 
          <p>Earlier one couldn't multi file compile modules that had different
719
 
            tagdefault, which now is possible. Equal Type/Value names in different
720
 
            modules are resolved by renaming (concatenate type name and module
721
 
            name): If two types with the same name T exist in module A and module B
722
 
            they will get the new names TA and TB.</p>
723
 
          <p>(Own Id: OTP-4492)</p>
724
 
          <p>Aux Id: OTP-3983</p>
725
 
        </item>
726
 
        <item>
727
 
          <p>BER: Encode/decode of data have been significantly improved. By use of
728
 
            the compiler options <c>ber_bin</c> and <c>optimize</c>,
729
 
            optimized code will be generated and the optimized run-time module will
730
 
            be used.</p>
731
 
          <p>Own Id: OTP-4493</p>
732
 
        </item>
733
 
      </list>
734
 
    </section>
735
 
  </section>
736
 
 
737
 
  <section>
738
 
    <title>Asn1 1.3.3.1</title>
739
 
 
740
 
    <section>
741
 
      <title>Fixed errors and malfunctions</title>
742
 
      <list type="bulleted">
743
 
        <item>
744
 
          <p>Proper length encoding and padding implemented for a <c>BIT STRING</c> with 
745
 
            NamedNumberList and size constraint as value range. This functionality 
746
 
            didn't work in the rare occasion when the NamedNumberList is shorter
747
 
            than the lower bound of the constraint.As in this example:
748
 
            <c>TestS ::= BIT STRING {a (0),b (1)} (SIZE (3..8))</c></p>
749
 
          <p>(Own Id: OTP-4353)</p>
750
 
        </item>
751
 
        <item>
752
 
          <p>Bug in compiler, when an <c>OBJECT IDENTIFIER</c> value consisting of 
753
 
            two identifiers (Defined values or Name form identifiers) was falsely
754
 
            interpreted causing a compiling error is now corrected.</p>
755
 
          <p>(Own Id: OTP-4354)</p>
756
 
        </item>
757
 
        <item>
758
 
          <p>Internal error in check phase that caused crash on 
759
 
            <c>ObjectClassFieldType</c> in ber_bin is corrected.</p>
760
 
          <p>(Own Id: OTP-4390)</p>
761
 
        </item>
762
 
        <item>
763
 
          <p>Tags for open types are handled according to <c>x.680 30.6c</c>, i.e.
764
 
            open types shall not be tagged <c>IMPLICIT.</c></p>
765
 
          <p>(Own Id: OTP-4395)</p>
766
 
          <p>(Aux Id: OTP-4390)</p>
767
 
        </item>
768
 
      </list>
769
 
    </section>
770
 
  </section>
771
 
 
772
 
  <section>
773
 
    <title>Asn1 1.3.3</title>
774
 
 
775
 
    <section>
776
 
      <title>Fixed errors and malfunctions</title>
777
 
      <list type="bulleted">
778
 
        <item>
779
 
          <p>Now gives the compiler an appropriate error report when exported 
780
 
            undefined types are detected.</p>
781
 
          <p>(Own Id: OTP-4129)</p>
782
 
        </item>
783
 
        <item>
784
 
          <p>The type <c>ObjectDescriptor</c> is now supported, previously the
785
 
            implementation of encode/decode for this rarely used type was
786
 
            incomplete.</p>
787
 
          <p>(Own Id: OTP-4161)</p>
788
 
          <p>(Aux Id: seq7165)</p>
789
 
        </item>
790
 
        <item>
791
 
          <p>In case of per and compact_bit_string the rightmost byte were erroneous
792
 
            truncated when the rightmost bits of that byte were zeros. This is now
793
 
            corrected.</p>
794
 
          <p>(Own Id: OTP-4200)</p>
795
 
        </item>
796
 
        <item>
797
 
          <p>Bad match of return-value from decode_length in skipvalue/3 has now been
798
 
            fixed.</p>
799
 
          <p>(Own Id: OTP-4232)</p>
800
 
        </item>
801
 
        <item>
802
 
          <p>Now is decode of ENUMERATED handled correctly, when tagged EXPLICIT.</p>
803
 
          <p>(Own Id: OTP-4234)</p>
804
 
        </item>
805
 
        <item>
806
 
          <p>The compiler now parses and handles the ValueFromObject construct.</p>
807
 
          <p>(Own Id: OTP-4242)</p>
808
 
        </item>
809
 
        <item>
810
 
          <p>Now does the compiler handle the case when the object set in simple
811
 
            table and componentrelation constraints is of a CLASS without a UNIQUE
812
 
            field. In this case is the octets, which is assumed to be encoded,
813
 
            encoded as an open type.</p>
814
 
          <p>(Own Id: OTP-4248)</p>
815
 
          <p>(Aux Id: OTP-4242)</p>
816
 
        </item>
817
 
        <item>
818
 
          <p>Compiler handles objects in AdditionalElementSetSpec in ObjectSetSpec,
819
 
            i.e. the objects that are referred to after the ellipses in an object set.</p>
820
 
          <p>(Own Id: OTP-4275)</p>
821
 
        </item>
822
 
        <item>
823
 
          <p>Now are values with a component of type CHOICE encoded with indefinite 
824
 
            length correctly decoded.</p>
825
 
          <p>(Own Id: OTP-4358)</p>
826
 
        </item>
827
 
      </list>
828
 
    </section>
829
 
 
830
 
    <section>
831
 
      <title>Improvements and new features</title>
832
 
      <list type="bulleted">
833
 
        <item>
834
 
          <p>The language constructs (from the old 1988 standard) <c>ANY</c>
835
 
            and <c>ANY DEFINED BY</c> are now implemented.</p>
836
 
          <p>(Own Id: OTP-2741)</p>
837
 
          <p>(Aux Id: seq 1188)</p>
838
 
        </item>
839
 
        <item>
840
 
          <p>Now it is checked in run-time if a <c>OBJECT IDENTIFIER</c> value is invalid</p>
841
 
          <p>(Own Id: OTP-4235)</p>
842
 
        </item>
843
 
        <item>
844
 
          <p>The ASN.1 types EXTERNAL,EMBEDDED PDV and CHARACTER STRING now have full support in the compiler.</p>
845
 
          <p>(Own Id: OTP-4247)</p>
846
 
        </item>
847
 
        <item>
848
 
          <p>A driver in C does the final job (complete) of the PER encoding when 
849
 
            files are compiled with <c>per_bin</c> and <c>optimize</c> flags. 
850
 
            It gives significant faster encoding for PER.</p>
851
 
          <p>(Own Id: OTP-4355)</p>
852
 
        </item>
853
 
        <item>
854
 
          <p>Encode and decode of PER encoding has been made faster by moving 
855
 
            analysis done in run-time to compile-time. These optimizations are 
856
 
            available by compiling ASN.1 files with options <c>per_bin</c> and
857
 
            <c>optimize</c>.</p>
858
 
          <p>(Own Id: OTP-4381)</p>
859
 
          <p>(Aux Id: OTP-4355)</p>
860
 
        </item>
861
 
      </list>
862
 
    </section>
863
 
  </section>
864
 
 
865
 
  <section>
866
 
    <title>Asn1 1.3.2</title>
867
 
 
868
 
    <section>
869
 
      <title>Fixed errors and malfunctions</title>
870
 
      <list type="bulleted">
871
 
        <item>
872
 
          <p>Now does the compiler check values (including referenced values), and
873
 
            formats the value so it is suitable to use as input to encoding
874
 
            functions.</p>
875
 
          <p>(Own Id: OTP-3277)</p>
876
 
          <p>(Aux Id: OTP-4103)</p>
877
 
        </item>
878
 
        <item>
879
 
          <p>Unnecessary external function calls in generated code are now generated
880
 
            as internal function calls.</p>
881
 
          <p>(Own Id: OTP-4073)</p>
882
 
        </item>
883
 
      </list>
884
 
    </section>
885
 
 
886
 
    <section>
887
 
      <title>Improvements and new features</title>
888
 
      <list type="bulleted">
889
 
        <item>
890
 
          <p>Now is Information Objects supported in BER encoding.</p>
891
 
          <p>(Own Id: OTP-3980)</p>
892
 
          <p>(Aux Id: OTP-3979 OTP-3978)</p>
893
 
          <p></p>
894
 
        </item>
895
 
        <item>
896
 
          <p>PER: A new option <c>per_bin</c> is now supported. When used the
897
 
            generated encode/decode functions use binaries and the bit syntax to
898
 
            get better performance than the old <c>per</c> variant which used
899
 
            lists. All values input to encode and returned from decode are
900
 
            compatible between <c>per</c> and <c>per_bin</c> except for
901
 
            open types which are represented as binaries with per_bin and octet
902
 
            lists with per. We recommend that you use per_bin instead of per from
903
 
            now on, the use of binaries will be the default in coming versions and
904
 
            all improvements and optimizations for PER will be concentrated to that
905
 
            solution.</p>
906
 
          <p>(Own Id: OTP-4094)</p>
907
 
          <p></p>
908
 
        </item>
909
 
        <item>
910
 
          <p>Support for DER implemented. Used by flag +der when compiling. Include
911
 
            the full BER encoding plus: sorting of SET components, sorting of
912
 
            encoded elements in SET OF, full check of default values in SET and
913
 
            SEQUENCE. See new documentation on DER in user_guide sections 1.3.1;
914
 
            1.4.11; 1.4.12; 1.4.14; 1.4.16 and 1.10, in the reference manual for
915
 
            asn1ct.</p>
916
 
          <p>(Own Id: OTP-4103)</p>
917
 
          <p></p>
918
 
        </item>
919
 
      </list>
920
 
    </section>
921
 
  </section>
922
 
 
923
 
  <section>
924
 
    <title>Asn1 1.3.1</title>
925
 
 
926
 
    <section>
927
 
      <title>Fixed errors and malfunctions</title>
928
 
      <list type="bulleted">
929
 
        <item>
930
 
          <p>Do not generate record in .hrl file for SET types</p>
931
 
          <p>Own Id: OTP-4025</p>
932
 
        </item>
933
 
        <item>
934
 
          <p>Fixed internal error when using BIT STRINGs with Named Number List in combination with <c>compact_bit_string</c> and <c>ber_bin</c> options.</p>
935
 
          <p>Own Id: OTP-4026</p>
936
 
          <p>Aux Id: OTP-3982</p>
937
 
        </item>
938
 
        <item>
939
 
          <p>The atom 'com' can now be used in ENUMERATED as an EnumerationItem.</p>
940
 
          <p>Own Id: OTP-4037</p>
941
 
          <p>Aux Id: Seq 7036</p>
942
 
        </item>
943
 
        <item>
944
 
          <p>ber: Now it is possible (again) to encode data format "{Type,Value}" in a SEQUENCE OF  RequestParameter, when RequestParameter is of type ENUMERATED. The {Type,Value}
945
 
            notation is not recommended for use, it is redundant and exist only for very ancient backwards compatibility reasons. The "feature" might be removed in forthcoming versions.</p>
946
 
          <p>Own Id: OTP-4057</p>
947
 
          <p>Aux Id: Seq 7066</p>
948
 
        </item>
949
 
        <item>
950
 
          <p>A bug in the parser, that caused failure on COMPONENTS OF is now removed.</p>
951
 
          <p>Own Id: OTP-4058</p>
952
 
        </item>
953
 
      </list>
954
 
    </section>
955
 
  </section>
956
 
 
957
 
  <section>
958
 
    <title>Asn1 1.3</title>
959
 
 
960
 
    <section>
961
 
      <title>Known problems</title>
962
 
      <list type="bulleted">
963
 
        <item>
964
 
          <p>The compiler will now check that a value referenced by name
965
 
            does exist.</p>
966
 
          <p>Own Id: OTP-3277</p>
967
 
        </item>
968
 
        <item>
969
 
          <p>BER:Decode of a type T ::= SEQUENCE OF C fails if C is encoded with indefinite length.
970
 
            This is know corrected.</p>
971
 
          <p>Own Id: OTP-3811</p>
972
 
          <p>Aux Id: seq5040</p>
973
 
        </item>
974
 
      </list>
975
 
    </section>
976
 
 
977
 
    <section>
978
 
      <title>Fixed errors and malfunctions</title>
979
 
      <list type="bulleted">
980
 
        <item>
981
 
          <p>The new parser handles imports when one import ends with FROM, a modulename and a reference to a objectidentifier followed by imports from other modules.</p>
982
 
          <p>Own Id: OTP-3463</p>
983
 
        </item>
984
 
        <item>
985
 
          <p>The compiler did not check that a name mentioned as EXPORTED
986
 
            actually is defined within the module.
987
 
            This is now corrected.</p>
988
 
          <p>Own Id: OTP-3659</p>
989
 
        </item>
990
 
        <item>
991
 
          <p>Removed bug caused by use of nested indefinite length</p>
992
 
          <p>Own Id: OTP-3994</p>
993
 
        </item>
994
 
      </list>
995
 
    </section>
996
 
 
997
 
    <section>
998
 
      <title>Improvements and new features</title>
999
 
      <list type="bulleted">
1000
 
        <item>
1001
 
          <p>Now supporting most common use of parameterization according to X.683</p>
1002
 
          <p>(Own Id: OTP-3978)</p>
1003
 
        </item>
1004
 
        <item>
1005
 
          <p>PER: Now supporting most common use of Information Objects according to X.681. A new parser has been implemented. The error messages due to syntax errors are slightly different than previous. TableConstraint part of X.682 now also supported.</p>
1006
 
          <p>Own Id: OTP-3979</p>
1007
 
        </item>
1008
 
        <item>
1009
 
          <p>New compiler option added: <c>ber_bin</c>. The compiler generates code with new bit syntax. Run time functions uses bit syntax when feasible. Higher encoding/decoding performance in most cases. Se also comments for Asn1 1.2.9.3.</p>
1010
 
          <p>Own Id: OTP-3981</p>
1011
 
        </item>
1012
 
        <item>
1013
 
          <p>A more compact format of BIT STRING in Erlang is now available by use of the compiler option <c>compact_bit_string</c>. It is much faster when large BIT STRINGs are used.</p>
1014
 
          <p>Own Id: OTP-3982</p>
1015
 
        </item>
1016
 
        <item>
1017
 
          <p>Now possible to merge many ASN.1 input files to one Erlang file by use of a configuration file that lists the ASN.1 files.</p>
1018
 
          <p>Own Id: OTP-3983</p>
1019
 
        </item>
1020
 
        <item>
1021
 
          <p>New documentation in <em>User's Guide</em> in section:</p>
1022
 
          <p>3.1: New compile-time functions and options are described.</p>
1023
 
          <p>4.6: New compact format of BIT STRING is described.</p>
1024
 
          <p>4.8: Additional comments on character strings.</p>
1025
 
          <p>7: New section describing ASN.1 Information Objects.</p>
1026
 
          <p>8: New section describing Parameterization.</p>
1027
 
          <p><em>Reference Manual/asn1ct</em> New compile options are described.</p>
1028
 
          <p>Own Id: OTP-3984</p>
1029
 
          <p>Aux Id: OTP-3978, OTP-3979, OTP-3981, OTP-3982, OTP-3983</p>
1030
 
        </item>
1031
 
        <item>
1032
 
          <p>Added the functionality to invoke ASN1Mod:encode (and decode).</p>
1033
 
          <p>Own Id: OTP-3985</p>
1034
 
        </item>
1035
 
        <item>
1036
 
          <p>Performance improvements by removing not necessary use of apply when calling asn1rt:encode. Also other general improvements.</p>
1037
 
          <p>Own Id: OTP-3988</p>
1038
 
        </item>
1039
 
      </list>
1040
 
    </section>
1041
 
  </section>
1042
 
 
1043
 
  <section>
1044
 
    <title>Asn1 1.2.9.6</title>
1045
 
 
1046
 
    <section>
1047
 
      <title>Known problems</title>
1048
 
      <list type="bulleted">
1049
 
        <item>
1050
 
          <p>The compiler does not check that an exported name actually exists in the ASN.1 module.</p>
1051
 
          <p>Own Id: OTP-3659</p>
1052
 
        </item>
1053
 
        <item>
1054
 
          <p>The compiler does not check that a value referenced by name does exist.</p>
1055
 
          <p>Own Id: OTP-3277</p>
1056
 
        </item>
1057
 
        <item>
1058
 
          <p>BER: The compiler does not take the extensions into account when checking if
1059
 
            the tags are unique in a SEQUENCE or SET.</p>
1060
 
          <p>Own Id: OTP-3304</p>
1061
 
        </item>
1062
 
      </list>
1063
 
    </section>
1064
 
 
1065
 
    <section>
1066
 
      <title>Fixed errors and malfunctions</title>
1067
 
      <list type="bulleted">
1068
 
        <item>
1069
 
          <p>PER: Trailing zeroes in a BIT STRING declared without named bits
1070
 
            should not be removed in the encodings.</p>
1071
 
          <p>Own Id: OTP-3830</p>
1072
 
        </item>
1073
 
      </list>
1074
 
    </section>
1075
 
  </section>
1076
 
 
1077
 
  <section>
1078
 
    <title>Asn1 1.2.9.5</title>
1079
 
 
1080
 
    <section>
1081
 
      <title>Known problems</title>
1082
 
      <p>Same as for 1.2.9.3.</p>
1083
 
    </section>
1084
 
 
1085
 
    <section>
1086
 
      <title>Fixed errors and malfunctions</title>
1087
 
      <list type="bulleted">
1088
 
        <item>
1089
 
          <p>PER: Constraints are not propagated when types are
1090
 
            referring to each other. Example:</p>
1091
 
          <code type="none">
1092
 
 
1093
 
                TBCD-STRING ::= OCTET STRING
1094
 
 
1095
 
                LAI ::= TBCD-STRING (SIZE(3))          </code>
1096
 
          <p>The size constraint is not passed on during encode,decode
1097
 
            resulting in wrong encoding for PER , it is
1098
 
            coded with a length determinant which should not be there
1099
 
            when the length is fixed. For BER this does not matter because the constraints does
1100
 
            not affect the encodings.</p>
1101
 
          <p>Own Id: OTP-3713</p>
1102
 
        </item>
1103
 
        <item>
1104
 
          <p>The generated code gets wrong if there are several ENUMERATED fields in a SEQUENCE or SET, this is now corrected.</p>
1105
 
          <p>Own Id: OTP-3796</p>
1106
 
        </item>
1107
 
        <item>
1108
 
          <p>BER:Decode of a type T ::= SEQUENCE OF C fails if C is encoded with indefinite length.
1109
 
            This is know corrected.</p>
1110
 
          <p>Own Id: OTP-3811</p>
1111
 
        </item>
1112
 
      </list>
1113
 
    </section>
1114
 
  </section>
1115
 
 
1116
 
  <section>
1117
 
    <title>Asn1 1.2.9.3</title>
1118
 
 
1119
 
    <section>
1120
 
      <title>Known problems</title>
1121
 
      <list type="bulleted">
1122
 
        <item>
1123
 
          <p>The compiler does not check that an exported name actually exists in the ASN.1 module.</p>
1124
 
          <p>Own Id: OTP-3659</p>
1125
 
        </item>
1126
 
        <item>
1127
 
          <p>The compiler does not check that a value referenced by name does exist.</p>
1128
 
          <p>Own Id: OTP-3277</p>
1129
 
        </item>
1130
 
        <item>
1131
 
          <p>BER: The compiler does not take the extensions into account when checking if
1132
 
            the tags are unique in a SEQUENCE or SET.</p>
1133
 
          <p>Own Id: OTP-3304</p>
1134
 
        </item>
1135
 
      </list>
1136
 
    </section>
1137
 
 
1138
 
    <section>
1139
 
      <title>Fixed errors and malfunctions</title>
1140
 
      <list type="bulleted">
1141
 
        <item>
1142
 
          <p>This version supports soft upgrade from versions 1.2.6 1.2.7.</p>
1143
 
        </item>
1144
 
        <item>
1145
 
          <p>In an ENUMERATED type like this:</p>
1146
 
          <code type="none">
1147
 
\011\011T ::= ENUMERATED { blue, green}          </code>
1148
 
          <p>The symbols was encoded/decoded with the wrong values, i.e in
1149
 
            reverse order. This is now corrected.</p>
1150
 
          <p>Own Id: OTP-3700</p>
1151
 
        </item>
1152
 
        <item>
1153
 
          <p>PER: OCTET STRING with Size constrained to a single value i.e fixed size
1154
 
            was treated wrong during encode and decode. This is now corrected.</p>
1155
 
          <p>Own Id: OTP-3701</p>
1156
 
        </item>
1157
 
      </list>
1158
 
    </section>
1159
 
 
1160
 
    <section>
1161
 
      <title>Improvements and new features</title>
1162
 
      <list type="bulleted">
1163
 
        <item>
1164
 
          <p>There is now a new compiler option <c>ber_bin</c> available that can be used to 
1165
 
            generate encode/decode functions for BER that uses the new "bit-syntax" to
1166
 
            make the functions more efficient. The <c>ber_bin</c> option is used
1167
 
            as an alternative to the <c>ber</c> and <c>per</c> options.</p>
1168
 
          <p>The encode function then produces a
1169
 
            possibly nested list of binaries and integer lists. The decode function does 
1170
 
            in this case require a single binary as input instead of a list.
1171
 
            The modules generated with this option require that you have an R7A  or later
1172
 
            system, otherwise they will not compile and the runtime module asn1rt_ber_bin
1173
 
            can not be executed.</p>
1174
 
          <p>The ber_bin option is not officially supported in this version (will be
1175
 
            in a later version) but is provided for those who want to try it. 
1176
 
            It should be significantly faster at decode and is slightly faster at encode.
1177
 
            Exactly how performance differs between this binary approach and the
1178
 
            list approach depends highly on the type of input.
1179
 
            Another thing worth noting is that both approaches still have a lot of
1180
 
            solutions in common which can be improved a lot to gain even better 
1181
 
            performance.</p>
1182
 
        </item>
1183
 
      </list>
1184
 
    </section>
1185
 
  </section>
1186
 
 
1187
 
  <section>
1188
 
    <title>Asn1 1.2.9.2</title>
1189
 
 
1190
 
    <section>
1191
 
      <title>Fixed errors and malfunctions</title>
1192
 
      <list type="bulleted">
1193
 
        <item>
1194
 
          <p>BER: Encode/decode of extension components did not work properly. This is now corrected.</p>
1195
 
          <p>Own Id: OTP-3395</p>
1196
 
          <p>Aux Id: </p>
1197
 
          <p>PER:The encode/decode of NULL as an open type has been corrected. An open type must always have a length of at least 1 byte even if the contained 
1198
 
            value (e.g NULL) encodes to nothing.</p>
1199
 
          <p>Own Id: OTP-3496</p>
1200
 
          <p>Aux Id: </p>
1201
 
        </item>
1202
 
        <item>
1203
 
          <p>BER:In the current implementation extension components of a SEQUENCE are required
1204
 
            to be present when they are specified as mandatory. This is an error, all extension
1205
 
            components are "optional" even if they are not specified to have the OPTIONAL or
1206
 
            DEFAULT property. This is now corrected.</p>
1207
 
          <p>Own Id: OTP-3278</p>
1208
 
        </item>
1209
 
      </list>
1210
 
    </section>
1211
 
 
1212
 
    <section>
1213
 
      <title>Improvements and new features</title>
1214
 
      <list type="bulleted">
1215
 
        <item>
1216
 
          <p>The ASN.1 language feature <c>COMPONENTS OF</c> is now implemented.</p>
1217
 
          <p>Own Id: OTP-2515</p>
1218
 
        </item>
1219
 
        <item>
1220
 
          <p>The encoding and decoding of ENUMERATED and
1221
 
            INTEGER with NamedNumbers is made more efficient and thus
1222
 
            faster in runtime.</p>
1223
 
          <p>Own Id: OTP-3464</p>
1224
 
          <p>Aux Id:</p>
1225
 
        </item>
1226
 
        <item>
1227
 
          <p>Added support for encode/decode of open type which is
1228
 
            constrained to a specific type. Previously the value of
1229
 
            an open type had to be a list of  octets, but now the Erlang
1230
 
            representation of the specific type used in the constraint
1231
 
            is used both as input to encode and as output from decode.</p>
1232
 
          <p>Own Id: OTP-3569</p>
1233
 
          <p>Aux Id: </p>
1234
 
        </item>
1235
 
        <item>
1236
 
          <p>PER: GeneralString, GraphicalString etc. i.e all strings
1237
 
            that are not so called "known-multiplier character
1238
 
            string types" are now supported by the runtime 
1239
 
            encode/decode functions.</p>
1240
 
          <p>Own Id: OTP-3573</p>
1241
 
          <p>Aux Id:</p>
1242
 
        </item>
1243
 
      </list>
1244
 
    </section>
1245
 
  </section>
1246
 
 
1247
 
  <section>
1248
 
    <title>Asn1 1.2.6</title>
1249
 
 
1250
 
    <section>
1251
 
      <title>Known problems</title>
1252
 
      <list type="bulleted">
1253
 
        <item>
1254
 
          <p>The ASN.1 language feature <c>COMPONENTS OF</c> is not implemented.</p>
1255
 
          <p>Own Id: OTP-2515</p>
1256
 
        </item>
1257
 
        <item>
1258
 
          <p>The compiler does not check that a value referenced by name does exist.</p>
1259
 
          <p>Own Id: OTP-3277</p>
1260
 
        </item>
1261
 
        <item>
1262
 
          <p>BER:In the current implementation extension components of a SEQUENCE are required
1263
 
            to be present when they are specified as mandatory. This is an error, all extension
1264
 
            components are "optional" even if they are not specified to have the OPTIONAL or
1265
 
            DEFAULT property.</p>
1266
 
          <p>Own Id: OTP-3278</p>
1267
 
        </item>
1268
 
        <item>
1269
 
          <p>BER: The compiler does not take the extensions into account when checking if
1270
 
            the tags are unique in a SEQUENCE or SET.</p>
1271
 
          <p>Own Id: OTP-3304</p>
1272
 
        </item>
1273
 
      </list>
1274
 
    </section>
1275
 
 
1276
 
    <section>
1277
 
      <title>Fixed errors and malfunctions</title>
1278
 
      <list type="bulleted">
1279
 
        <item>
1280
 
          <p>This version supports soft upgrade from versions 1.1.1, 1.1.5 and 1.1.6.
1281
 
            Two new runtime modules <c>asn1rt_ber_v1</c> and 
1282
 
            <c>asn1rt_per_v1</c> are delivered together with the old ones. This makes
1283
 
            it possible to continue running applications with modules generated with the
1284
 
            previous version of the asn1 compiler while modules generated by this version
1285
 
            will use the new runtime modules. Note that it is only advice-able to continue
1286
 
            running old generates if they are working perfectly and have no need 
1287
 
            for the corrections made in this version of the asn1 application.</p>
1288
 
        </item>
1289
 
        <item>
1290
 
          <p>BER: SEQUENCEs encoded with indefinite length was not correctly decoded.
1291
 
            This in now corrected.</p>
1292
 
          <p>Own Id: OTP-3352</p>
1293
 
          <p>Aux Id: Seq 4100</p>
1294
 
        </item>
1295
 
      </list>
1296
 
    </section>
1297
 
  </section>
1298
 
 
1299
 
  <section>
1300
 
    <title>Asn1 1.2.4</title>
1301
 
 
1302
 
    <section>
1303
 
      <title>Fixed errors and malfunctions</title>
1304
 
      <list type="bulleted">
1305
 
        <item>
1306
 
          <p>The compiler now  detects multiple definitions of values and types and reports this as
1307
 
            an error. Previously this was detected when the generated Erlang module was compiled.</p>
1308
 
          <p>Own Id: OTP-3105</p>
1309
 
        </item>
1310
 
        <item>
1311
 
          <p>BER: An error regarding encoding of <c>ENUMERATED</c> present in asn1-1.1.1 
1312
 
            is corrected. The new version 1.1.2 of asn1 containing this correction is 
1313
 
            delivered as a "patch".</p>
1314
 
          <p>Own Id: OTP-3169</p>
1315
 
        </item>
1316
 
        <item>
1317
 
          <p>BER: Decoding of <c>SEQUENCE OF</c> and <c>SET OF</c> with indefinite length is corrected.
1318
 
            The correction was first delivered in version 1.1.2.</p>
1319
 
          <p>Own Id: OTP-3170</p>
1320
 
        </item>
1321
 
        <item>
1322
 
          <p>BER: Encoding and decoding of <c>ENUMERATED</c> 
1323
 
            with extensionmark
1324
 
            "..." did not work (crashed with a runtime error). This
1325
 
            has now been corrected. If an unknown enumerated value is
1326
 
            decoded (for an extensible enumerated type) 
1327
 
            it is returned as <c>{asn1_enum,Value}</c> where
1328
 
            <c>Value</c> is an integer. Enumerated values in this format
1329
 
            are also accepted by the encoder.  
1330
 
            ASN.1 modules containing 
1331
 
            <c>ENUMERATED</c> with extensionmark should be 
1332
 
            recompiled with the corrected
1333
 
            version of the compiler. The BER runtime functions are also
1334
 
            corrected.
1335
 
            Note that this correction has already been delivered as a
1336
 
            bugfix for R4B (OTP-2951).</p>
1337
 
          <p>Own Id: OTP-3202</p>
1338
 
          <p>Aux Id: Seq3745</p>
1339
 
        </item>
1340
 
        <item>
1341
 
          <p>BER: The primitive/constructed bit in the tag byte of an encoding
1342
 
            is not correct when it comes to user defined tags.
1343
 
            For example in </p>
1344
 
          <code type="none">
1345
 
 T ::= [2] SEQUENCE { a BOOLEAN}           </code>
1346
 
          <p>the tag 2 does not get the constructed bit set which it should.
1347
 
            This is now corrected.</p>
1348
 
          <p>Own Id: OTP-3241</p>
1349
 
        </item>
1350
 
        <item>
1351
 
          <p>The decoder can now detect if there are unexpected bytes 
1352
 
            remaining when all components of a sequence are decoded.
1353
 
            The decoder will then return <c>{error,{asn1{unexpected,Bytes}}}</c></p>
1354
 
          <p>Own Id: OTP-3270</p>
1355
 
        </item>
1356
 
        <item>
1357
 
          <p>Values of type <c>OBJECT IDENTIFIER</c> was sometimes returned as an Erlang list
1358
 
            (ASN.1 constants) and  sometimes as a tuple (from the decode functions). This is now
1359
 
            changed so that <c>OBJECT IDENTIFIER</c> values always are represented as an Erlang
1360
 
            tuple.</p>
1361
 
          <p>Own Id: OTP-3280</p>
1362
 
        </item>
1363
 
        <item>
1364
 
          <p>PER:The encode/decode functions could not handle integers with 
1365
 
            a range greater than 16#7ffffff. This limit is now removed.</p>
1366
 
          <p>Own Id: OTP-3287</p>
1367
 
        </item>
1368
 
        <item>
1369
 
          <p>PER: The encoding/decoding of the length for a SET OF/SEQUENCE OF
1370
 
            was wrong if there was a size constraint. This is now corrected.</p>
1371
 
          <p>Own Id: OTP-3291</p>
1372
 
        </item>
1373
 
        <item>
1374
 
          <p>PER: Encoding of a constrained INTEGER (range &gt; 16 k) was wrong for
1375
 
            the value 0. This is now corrected.</p>
1376
 
          <p>Own Id: OTP-3306</p>
1377
 
        </item>
1378
 
      </list>
1379
 
    </section>
1380
 
 
1381
 
    <section>
1382
 
      <title>Improvements and new features</title>
1383
 
      <list type="bulleted">
1384
 
        <item>
1385
 
          <p>The ASN.1 module name and the filename where the ASN.1
1386
 
            specification resides must match each other (has always been the
1387
 
            case). This is now checked by the compiler. The check requires that
1388
 
            the names match in a case or case insensitive way depending on the
1389
 
            characteristics for the current system.</p>
1390
 
          <p>Own Id: OTP-1843</p>
1391
 
        </item>
1392
 
        <item>
1393
 
          <p>PER: Encode/decode of an extension value (i.e not within the root set) for
1394
 
            <c>ENUMERATED</c> did not work properly. This is now corrected.
1395
 
            If an unknown enumerated value is
1396
 
            decoded (for an extensible enumerated type) 
1397
 
            it is returned as <c>{asn1_enum,Value}</c> where
1398
 
            <c>Value</c> is an integer. Enumerated values in this format
1399
 
            are also accepted by the encoder (if the value is &gt;= the number of known 
1400
 
            extension values).</p>
1401
 
          <p>Own Id: OTP-2930</p>
1402
 
        </item>
1403
 
        <item>
1404
 
          <p>Unnecessary printouts from the compiler are removed.
1405
 
            The compiler version and the compiler options are now
1406
 
            printed to stdout.</p>
1407
 
          <p>Own Id: OTP-3276</p>
1408
 
        </item>
1409
 
        <item>
1410
 
          <p>In order to better suite the use of ASN.1 in embedded systems only 
1411
 
            the modules needed in runtime are now listed in the <c>.app</c> file.</p>
1412
 
          <p>Own Id: OTP-3279</p>
1413
 
        </item>
1414
 
        <item>
1415
 
          <p>The compiler now supports extensionmarker in constraint specifications.
1416
 
            Example:</p>
1417
 
          <code type="none">
1418
 
INTEGER (0..10, ...)          </code>
1419
 
          <p>In previous version this was reported as a syntax error.</p>
1420
 
          <p>Own Id: OTP-3281</p>
1421
 
        </item>
1422
 
        <item>
1423
 
          <p>A very limited part of ITU-T recommendation X.681 
1424
 
            Abstract Syntax Notation One (ASN.1): Information
1425
 
            object specification is now implemented. Specifically \011
1426
 
            TYPE IDENTIFIER is recognized by the compiler.</p>
1427
 
          <p>Own Id: OTP-3325</p>
1428
 
        </item>
1429
 
        <item>
1430
 
          <p>Parameterization of ASN.1 specifications (ITU-T X.683) is now
1431
 
            supported to a limited extent.</p>
1432
 
          <p>Own Id: OTP-3326</p>
1433
 
        </item>
1434
 
      </list>
1435
 
    </section>
1436
 
  </section>
1437
 
 
1438
 
  <section>
1439
 
    <title>Asn1 1.1.3.1</title>
1440
 
 
1441
 
    <section>
1442
 
      <title>Fixed errors and malfunctions</title>
1443
 
      <list type="bulleted">
1444
 
        <item>
1445
 
          <p>BER Encoding and decoding of <c>ENUMERATED</c> 
1446
 
            with extensionmark
1447
 
            "..." did not work (crashed with a runtime error). This
1448
 
            has now been corrected. If an unknown enumerated value is
1449
 
            decoded (for an extensible enumerated type) 
1450
 
            it is returned as <c>{asn1_enum,Value}</c> where
1451
 
            <c>Value</c> is an integer. Enumerated values in this format
1452
 
            are also accepted by the encoder.  
1453
 
            ASN.1 modules containing 
1454
 
            <c>ENUMERATED</c> with extensionmark should be 
1455
 
            recompiled with the corrected
1456
 
            version of the compiler. The BER runtime functions are also
1457
 
            corrected.
1458
 
            Note that this correction has already been delivered as a
1459
 
            bug-fix for R4B (OTP-2951).</p>
1460
 
          <p>Own Id: OTP-3202</p>
1461
 
          <p>Aux Id: Seq3745</p>
1462
 
        </item>
1463
 
      </list>
1464
 
    </section>
1465
 
  </section>
1466
 
 
1467
 
  <section>
1468
 
    <title>Asn1 1.1.1</title>
1469
 
 
1470
 
    <section>
1471
 
      <title>Known problems</title>
1472
 
      <list type="bulleted">
1473
 
        <item>
1474
 
          <p>The syntactic construct <c>COMPONENTS OF</c> is not
1475
 
            implemented.</p>
1476
 
          <p>Own Id: OTP-2515</p>
1477
 
        </item>
1478
 
        <item>
1479
 
          <p><c>ANY</c> and <c>ANY DEFINED BY</c> are currently not 
1480
 
            supported.</p>
1481
 
          <p>Own Id: OTP-2741</p>
1482
 
          <p>Aux Id: seq 1188</p>
1483
 
        </item>
1484
 
        <item>
1485
 
          <p>Multiple definitions of the same Type or Value is not detected
1486
 
            by the compiler. The error occurs when the generated Erlang
1487
 
            module is compiled.</p>
1488
 
          <p>Own Id: OTP-3105</p>
1489
 
        </item>
1490
 
      </list>
1491
 
    </section>
1492
 
  </section>
1493
 
 
1494
 
  <section>
1495
 
    <title>Asn1 1.1</title>
1496
 
 
1497
 
    <section>
1498
 
      <title>Known problems</title>
1499
 
      <list type="bulleted">
1500
 
        <item>
1501
 
          <p>The primitive/constructed bit in the tag byte of an encoding
1502
 
            is not correct when it comes to user defined tags.
1503
 
            For example in</p>
1504
 
          <code type="none">
1505
 
 T ::= [2] SEQUENCE { a BOOLEAN}           </code>
1506
 
          <p>the tag 2 does not get the constructed bit set which it should.
1507
 
            This is now corrected.</p>
1508
 
          <p>Own Id: OTP-3241</p>
1509
 
        </item>
1510
 
      </list>
1511
 
    </section>
1512
 
 
1513
 
    <section>
1514
 
      <title>Fixed errors and malfunctions</title>
1515
 
      <list type="bulleted">
1516
 
        <item>
1517
 
          <p>The BER decoder failed to decode certain nested data types
1518
 
            where <c>IMPLICIT</c> tags where involved. 
1519
 
            This is now corrected.</p>
1520
 
          <p>Own Id: OTP-2719</p>
1521
 
          <p>Aux Id: seq 1148</p>
1522
 
        </item>
1523
 
        <item>
1524
 
          <p>The handling of types with extension marker "..." is corrected.
1525
 
            Earlier each SEQUENCE and SET with an extension marker got an
1526
 
            extra field named <c>asn1_EXT</c> in the generated record.
1527
 
            This was a mistake and that field is now removed (concerns
1528
 
            both BER and BER).</p>
1529
 
          <p>Own Id: OTP-2724</p>
1530
 
          <p>Aux Id: seq 1148, OTP-2719</p>
1531
 
        </item>
1532
 
        <item>
1533
 
          <p>The decoder (both BER and PER) could not handle unnamed
1534
 
            bits of a <c>BIT STRING</c> if the type had any 
1535
 
            named bits declared. This is now corrected and the unnamed
1536
 
            bits are returned as <c>{bit,Pos}</c> where Pos is the bit 
1537
 
            position. The <c>{bit,Pos}</c> can be used as input to the
1538
 
            encoder too.</p>
1539
 
          <p>Own Id: OTP-2725</p>
1540
 
          <p>Aux Id: seq 1148,OTP-2719,OTP-2724</p>
1541
 
        </item>
1542
 
        <item>
1543
 
          <p>The functions <c>asn1rt:decode</c> and <c>asn1ct:decode</c>
1544
 
            did not always return <c>{ok,Result}</c> or 
1545
 
            <c>{error,Reason}</c> as documented. This is now corrected.</p>
1546
 
          <p>Own Id: OTP-2730</p>
1547
 
          <p>Aux Id: seq 1158</p>
1548
 
        </item>
1549
 
        <item>
1550
 
          <p>The compiler did not accept CHOICE types as components 
1551
 
            of a SEQUENCE or SET when
1552
 
            the modules tag default was IMPLICIT. 
1553
 
            Example:</p>
1554
 
          <code type="none">
1555
 
C ::= CHOICE { ......}
1556
 
A ::= SEQUENCE {
1557
 
a [1] C, -- This was not accepted
1558
 
.....          </code>
1559
 
          <p>This was an error
1560
 
            caused by a misinterpretation of the ASN.1 standard. This
1561
 
            is now corrected.</p>
1562
 
          <p>Own Id: OTP-2731</p>
1563
 
          <p>Aux Id: seq 1163</p>
1564
 
        </item>
1565
 
        <item>
1566
 
          <p>When decoding a SEQUENCE A which contains an OPTIONAL component
1567
 
            b which is a SEQUENCE with mandatory components, the decoder
1568
 
            does not detect as an error that a mandatory component of b
1569
 
            is missing. The same error could occur also in other cases
1570
 
            with nested types and optional components of SEQUENCE or SET.
1571
 
            This is now corrected.</p>
1572
 
          <p>Own Id: OTP-2738</p>
1573
 
          <p>Aux Id: seq 1183</p>
1574
 
        </item>
1575
 
        <item>
1576
 
          <p>BER Encoding and decoding of <c>ENUMERATED</c> 
1577
 
            with extensionmark
1578
 
            "..." did not work (crashed with a runtime error). This
1579
 
            has now been corrected. If an unknown enumerated value is
1580
 
            decoded (for an extensible enumerated type) 
1581
 
            it is returned as <c>{asn1_enum,Value}</c> where
1582
 
            <c>Value</c> is an integer. Enumerated values in this format
1583
 
            are also accepted by the encoder.  
1584
 
            ASN.1 modules containing 
1585
 
            <c>ENUMERATED</c> with extensionmark should be 
1586
 
            recompiled with the corrected
1587
 
            version of the compiler. The BER runtime functions are also
1588
 
            corrected.</p>
1589
 
          <p>Own Id: OTP-2951</p>
1590
 
          <p>Aux Id: Seq 1446 OTP-2929</p>
1591
 
        </item>
1592
 
        <item>
1593
 
          <p>The compiler does now accept all valid value notations
1594
 
            for the OBJECT IDENTIFIER type. The generated code for
1595
 
            those values is also corrected.</p>
1596
 
          <p>Own Id: OTP-3059</p>
1597
 
        </item>
1598
 
      </list>
1599
 
    </section>
1600
 
 
1601
 
    <section>
1602
 
      <title>Improvements and new features</title>
1603
 
      <list type="bulleted">
1604
 
        <item>
1605
 
          <p>The code generated for BER is significantly enhanced resulting
1606
 
            in less code and around 300% better performance in runtime 
1607
 
            for the encoding of complex ASN.1 values. The performance of
1608
 
            decoding is unchanged.</p>
1609
 
          <p>Own Id: OTP-2806</p>
1610
 
        </item>
1611
 
      </list>
1612
 
    </section>
1613
 
  </section>
1614
 
 
1615
 
  <section>
1616
 
    <title>Asn1 1.0.3</title>
1617
 
 
1618
 
    <section>
1619
 
      <title>Fixed errors and malfunctions</title>
1620
 
      <list type="bulleted">
1621
 
        <item>
1622
 
          <p>The <c>asn1.app</c> file is corrected.</p>
1623
 
          <p>Own Id: OTP-2640</p>
1624
 
        </item>
1625
 
        <item>
1626
 
          <p>The encoding of integers in BER did not comply with the
1627
 
            standard for all values. The values was not encoded
1628
 
            in the minimum number of octets as required. This is
1629
 
            now corrected in the runtime module <c>asn1rt_ber</c>.</p>
1630
 
          <p>Own Id: OTP-2666</p>
1631
 
        </item>
1632
 
      </list>
1633
 
    </section>
1634
 
 
1635
 
    <section>
1636
 
      <title>Improvements and new features</title>
1637
 
      <list type="bulleted">
1638
 
        <item>
1639
 
          <p>The compiler now generates explicit exports directives for 
1640
 
            all generated
1641
 
            functions that should be exported (instead of -compile(export_all)). 
1642
 
            This eliminates the warnings from the Erlang compiler when 
1643
 
            compiling the 
1644
 
            generated file.</p>
1645
 
          <p>Own Id: OTP-1845</p>
1646
 
        </item>
1647
 
      </list>
1648
 
    </section>
1649
 
  </section>
1650
 
 
1651
 
  <section>
1652
 
    <title>R3B02 (Asn1 1.0.2)</title>
1653
 
 
1654
 
    <section>
1655
 
      <title>Fixed errors and malfunctions</title>
1656
 
      <list type="bulleted">
1657
 
        <item>
1658
 
          <p>The decoding of a BER encoded SEQUENCE with optional component
1659
 
            of type SEQUENCE (also with optional components) could result 
1660
 
            in an error or wrong result if the tags are equal.</p>
1661
 
          <p>Own Id: OTP-2226</p>
1662
 
        </item>
1663
 
        <item>
1664
 
          <p>The encoding of (PER) SEQUENCE with extensionmark was wrong.
1665
 
            This is now corrected.</p>
1666
 
          <p>Own Id: OTP-2349</p>
1667
 
        </item>
1668
 
      </list>
1669
 
    </section>
1670
 
  </section>
1671
 
 
1672
 
  <section>
1673
 
    <title>R3A (Asn1 0.9)</title>
1674
 
 
1675
 
    <section>
1676
 
      <title>Fixed errors and malfunctions</title>
1677
 
      <list type="bulleted">
1678
 
        <item>
1679
 
          <p>The asn1 compiler now detects the use of an implicit tag before <c>CHOICE</c> as an error (in accordance with the standard)</p>
1680
 
          <p>Own Id: OTP-1844</p>
1681
 
        </item>
1682
 
        <item>
1683
 
          <p>An OPTIONAL CHOICE embedded in SEQUENCE when BER coding
1684
 
            caused an error when generating decode code. This is now
1685
 
            corrected.</p>
1686
 
          <p>Own Id: OTP-1857</p>
1687
 
          <p>Aux Id: OTP-1848</p>
1688
 
        </item>
1689
 
      </list>
1690
 
    </section>
1691
 
  </section>
1692
 
 
1693
 
  <section>
1694
 
    <title>1 ASN1 0.8.1</title>
1695
 
    <p>This is the first release of the ASN1 application. This version is
1696
 
      released for beta-testing. Some functionality will be added until the
1697
 
      1.0 version is released. See the release notes for the latest version
1698
 
      for the exact details about new features. A list of missing features
1699
 
      and restrictions can be found in the chapter below.</p>
1700
 
 
1701
 
    <section>
1702
 
      <title>1.1 Missing features and other restrictions</title>
1703
 
      <p></p>
1704
 
      <list type="bulleted">
1705
 
        <item>
1706
 
          <p>The encoding rules BER and PER (aligned) is supported. <em>PER (unaligned)  IS NOT SUPPORTED</em>.</p>
1707
 
        </item>
1708
 
        <item>
1709
 
          <p>NOT SUPPORTED types <c>ANY</c> and <c>ANY DEFINED BY</c> 
1710
 
            (is not in the standard any more).</p>
1711
 
        </item>
1712
 
        <item>
1713
 
          <p>NOT SUPPORTED types <c>EXTERNAL</c> and <c>EMBEDDED-PDV</c>. </p>
1714
 
        </item>
1715
 
        <item>
1716
 
          <p>NOT SUPPORTED type <c>REAL</c> (planned to be implemented). </p>
1717
 
        </item>
1718
 
        <item>
1719
 
          <p>The code generation support for value definitions in the ASN.1 notation is very limited
1720
 
            (planned to be enhanced).</p>
1721
 
        </item>
1722
 
        <item>
1723
 
          <p>The support for constraints is limited to:</p>
1724
 
        </item>
1725
 
      </list>
1726
 
      <list type="bulleted">
1727
 
        <item>
1728
 
          <p>SizeConstraint  SIZE(X)</p>
1729
 
        </item>
1730
 
        <item>
1731
 
          <p>SingleValue     (1)</p>
1732
 
        </item>
1733
 
        <item>
1734
 
          <p>ValueRange      (X..Y)</p>
1735
 
        </item>
1736
 
        <item>
1737
 
          <p>PermittedAlpabet FROM (but not for BMPString and UniversalString when generating PER).</p>
1738
 
        </item>
1739
 
        <item>
1740
 
          <p>Complex expressions in constraints is not supported (planned to be extended).</p>
1741
 
        </item>
1742
 
        <item>
1743
 
          <p>The current version of the compiler has very limited error checking:</p>
1744
 
        </item>
1745
 
        <item>
1746
 
          <p>Stops at first syntax error.</p>
1747
 
        </item>
1748
 
        <item>
1749
 
          <p>Does not stop when a reference to an undefined type is found , 
1750
 
            but prints an error message. Compilation of the generated 
1751
 
            Erlang module will then fail.</p>
1752
 
        </item>
1753
 
        <item>
1754
 
          <p>A whole number of other semantical controls is currently
1755
 
            missing. This means that the compiler will give little
1756
 
            or bad help to detect what's wrong with an ASN.1
1757
 
            specification, but will mostly work very well when the
1758
 
            ASN.1 specification is correct.</p>
1759
 
        </item>
1760
 
      </list>
1761
 
      <list type="bulleted">
1762
 
        <item>
1763
 
          <p>The maximum INTEGER supported in this version is a
1764
 
            signed 64 bit integer. This limitation is probably quite
1765
 
            reasonable. (Planned to be extended).</p>
1766
 
        </item>
1767
 
        <item>
1768
 
          <p>Only AUTOMATIC TAGS supported for PER.</p>
1769
 
        </item>
1770
 
        <item>
1771
 
          <p>Only EXPLICIT and IMPLICIT TAGS supported for BER.</p>
1772
 
        </item>
1773
 
        <item>
1774
 
          <p>The compiler supports decoding of BER-data with indefinite
1775
 
            length but it is not possible to produce data with indefinite
1776
 
            length with the encoder.</p>
1777
 
        </item>
1778
 
      </list>
1779
 
    </section>
1780
 
  </section>
1781
 
</chapter>
1782