aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1/doc/src/notes_history.xml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/asn1/doc/src/notes_history.xml')
-rw-r--r--lib/asn1/doc/src/notes_history.xml1782
1 files changed, 0 insertions, 1782 deletions
diff --git a/lib/asn1/doc/src/notes_history.xml b/lib/asn1/doc/src/notes_history.xml
deleted file mode 100644
index e6c423e79e..0000000000
--- a/lib/asn1/doc/src/notes_history.xml
+++ /dev/null
@@ -1,1782 +0,0 @@
-<?xml version="1.0" encoding="latin1" ?>
-<!DOCTYPE chapter SYSTEM "chapter.dtd">
-
-<chapter>
- <header>
- <copyright>
- <year>2006</year><year>2009</year>
- <holder>Ericsson AB. All Rights Reserved.</holder>
- </copyright>
- <legalnotice>
- The contents of this file are subject to the Erlang Public License,
- Version 1.1, (the "License"); you may not use this file except in
- compliance with the License. You should have received a copy of the
- Erlang Public License along with this software. If not, it can be
- retrieved online at http://www.erlang.org/.
-
- Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- the License for the specific language governing rights and limitations
- under the License.
-
- </legalnotice>
-
- <title>ASN1 Release Notes</title>
- <prepared>Bertil Karlsson</prepared>
- <responsible></responsible>
- <docno></docno>
- <approved></approved>
- <checked></checked>
- <date>06-04-24</date>
- <rev></rev>
- <file>notes_history.sgml</file>
- </header>
- <p>This document describes the changes made to the asn1 system
- from version to version. The intention of this document is to
- list all incompatibilities as well as all enhancements and
- bug-fixes for every release of the asn1 application. Each release of asn1
- thus constitutes one section in this document. The title of each
- section is the version number of asn1.</p>
-
-
- <section>
- <title>Asn1 1.4.4.14</title>
-
- <section>
- <title>Improvements and New Features</title>
- <list type="bulleted">
- <item>
- <p>Data in info/0 in generated code is moved to attribute
- asn1_info, thus vsn value remains the same if compiler
- options for asn1-spec differs but the generated code is
- the same.</p>
- <p>Own Id: OTP-6462</p>
- </item>
- <item>
- <p>Dialyzer warnings on asn1 are removed, i.e. dead code
- removed.</p>
- <p>Own Id: OTP-6506</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.4.4.13</title>
-
- <section>
- <title>Improvements and New Features</title>
- <list type="bulleted">
- <item>
- <p>Now it is possible to use 'asn1config' and 'inline'
- options together. It is also possible to use 'inline' on
- a single file like:
- <c>asn1ct:compile("MyASN1spec.asn",[inline])</c>.</p>
- <p>Own Id: OTP-6405</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.4.4.12</title>
-
- <section>
- <title>Improvements and New Features</title>
- <list type="bulleted">
- <item>
- <p>As a complement to the option "{inline,OutputFile}" it is
- now possible to use the option "inline". Then asn1 creates
- an output file with the name of the source .set file.</p>
- <p>Own Id: OTP-6314</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.4.4.11</title>
-
- <section>
- <title>Fixed Bugs and Malfunctions</title>
- <list type="bulleted">
- <item>
- <p>When compiling an asn1 source that reference a type in
- another source the compiler uses the asn1db file of the
- other source to resolve the reference. It also tests
- whether the other source has been updated since the
- asn1db file was generated. This last test was to brutal
- in that it exits compilation when no source was found,
- even though a asn1db file existed. Changed behavior from
- a brutal exit to a warning.</p>
- <p>Own Id: OTP-6143</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.4.4.10</title>
-
- <section>
- <title>Fixed Bugs and Malfunctions</title>
- <list type="bulleted">
- <item>
- <p>asn1 encoding failed on BIT STRING with constraint
- <c>(SIZE (32..MAX))</c>.</p>
- <p>Own Id: OTP-5932</p>
- </item>
- <item>
- <p>Race condition removed in server for variable names for
- generated code.</p>
- <p>Own Id: OTP-6111</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.4.4.9</title>
-
- <section>
- <title>Fixed Bugs and Malfunctions</title>
- <list type="bulleted">
- <item>
- <p>Now exists a default function clause for table lookup of
- a table constraint. This causes a nice error instead of a
- crash. Did also remove some obsolete funs ({Mod,Fun}) in
- generated code.</p>
- <p>Own Id: OTP-5783</p>
- </item>
- <item>
- <p>ASN1-compiler failed to derive a value out of an external
- reference in some certain cases, when compiling specs so
- that the spec with the reference was compiled before the
- spec with the defined value.</p>
- <p>Own Id: OTP-5812 Aux Id: seq10133 </p>
- </item>
- <item>
- <p>The documentation of how records of embedded types are
- named is extended and made clearer by examples and rules.
- The section "Naming of Records in .hrl Files" in the
- User's Guide is added.</p>
- <p>Own Id: OTP-5831 Aux Id: seq10133 </p>
- </item>
- <item>
- <p>The compiler failed to give right name to record/function
- of a parameterized type that was referenced through
- another instance of a parameterized type in another
- module. The fault occurred when modules were compiled in a
- certain order. Now the compiler resolves the name
- correctly.</p>
- <p>Own Id: OTP-5832 Aux Id: seq10133 </p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.4.4.8</title>
-
- <section>
- <title>Fixed Bugs and Malfunctions</title>
- <list type="bulleted">
- <item>
- <p>The dynamic sort of SET OF values now correctly handles
- values encoded in the "ber_bin, der, optimize" mode, the
- value of a SET OF is a list of binaries.</p>
- <p>Own Id: OTP-5687</p>
- </item>
- <item>
- <p>Bad code was generated for an INTEGER with value-range. If
- the value that was encoded had a lower bound with
- negative value it caused a crash. This bug is now
- removed.</p>
- <p>Own Id: OTP-5688 Aux Id: seq10049 </p>
- </item>
- <item>
- <p>Compiler now handles wrong include paths by returning an
- error if a referenced module is not available.</p>
- <p>Own Id: OTP-5689</p>
- </item>
- <item>
- <p>The bug causing a runtime error when encoding a type
- defined by: <c>BIT STRING {a(1),b(2)}</c> with the value
- [] in <c>per_bin</c> mode is now removed.</p>
- <p>Own Id: OTP-5710 Aux Id: seq10066 </p>
- </item>
- </list>
- </section>
-
- <section>
- <title>Improvements and New Features</title>
- <list type="bulleted">
- <item>
- <p>Better handling of filename paths</p>
- <p>Own Id: OTP-5701</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.4.4.7</title>
-
- <section>
- <title>Fixed Bugs and Malfunctions</title>
- <list type="bulleted">
- <item>
- <p>Effective constraint for <c>per</c> now corrected. For
- instance <c>INTEGER (0|15..269)</c> didn't work properly.</p>
- <p>Own Id: OTP-5477 Aux Id: OTP-5511 </p>
- </item>
- <item>
- <p>Adjusted compiler so that functions in generated code
- only are exported once.</p>
- <p>Own Id: OTP-5509</p>
- </item>
- <item>
- <p>Fixed the compiler failure when handling a value range
- constraint with an extension mark that had the Lower
- bound and/or Upper bound values as an external reference
- to a defined value.</p>
- <p>Own Id: OTP-5511 Aux Id: OTP-5466 </p>
- </item>
- <item>
- <p>Removed sorting of elements for SEQUENCE OF. It shall
- only be done in SET OF.</p>
- <p>Own Id: OTP-5602</p>
- </item>
- <item>
- <p>Corrected code that generated code causing badarith
- warning.</p>
- <p>Own Id: OTP-5616</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.4.4.6</title>
-
- <section>
- <title>Known Bugs and Problems</title>
- <list type="bulleted">
- <item>
- <p>Compiler now correctly crashes when compiling bad values.
- Failed for instance on INTEGER value that was a reference
- to a defined value. Also solved problem with a union
- constraint on an INTEGER.</p>
- <p>Own Id: OTP-5457</p>
- </item>
- <item>
- <p>Additional coverage of object set syntax.</p>
- <p>Own Id: OTP-5466</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.4.4.5</title>
-
- <section>
- <title>Fixed Bugs and Malfunctions</title>
- <list type="bulleted">
- <item>
- <p>A bug due to representation of open_type values is now
- fixed. It could cause problem if one used the EXTERNAL
- type.</p>
- <p>Own Id: OTP-5302</p>
- </item>
- <item>
- <p>Due to an internal error the same code could have been
- generated more than one time. This happened for the
- exclusive decode functionality.</p>
- <p>Own Id: OTP-5378</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.4.4.4</title>
-
- <section>
- <title>Fixed Bugs and Malfunctions</title>
- <list type="bulleted">
- <item>
- <p>Empty objects caused problems. There was trouble when an
- object set referenced imported objects that in turn
- referenced imported types. Lacked support of
- SelectionType in object. All these have been attended.</p>
- <p>Own Id: OTP-5240</p>
- </item>
- </list>
- </section>
-
- <section>
- <title>Improvements and New Features</title>
- <list type="bulleted">
- <item>
- <p>Now it is possible to inline asn1 run-time functionality
- in the module generated by the asn1 compiler. Thus, it
- will be only one module doing all encoding/decoding.</p>
- <p>Own Id: OTP-5243</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.4.4.3</title>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>A class that was referenced in two steps caused a
- compiler failure. It is now corrected.</p>
- <p>Own Id: OTP-5103</p>
- </item>
- </list>
- </section>
-
- <section>
- <title>Improvements and new features</title>
- <list type="bulleted">
- <item>
- <p>Optionally make it possible to get the un-decoded rest along with
- the return value. Compile with option <em>undec_rest</em>.</p>
- <p>Own Id: OTP-5104</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.4.4.2</title>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>An error due to unchecked referenced imported type resulted
- in missing tag in some table constraint cases. This error is
- now corrected. Error occurred during decode in
- <c>ber_bin optimized</c> version.</p>
- <p>Own Id: OTP-5022</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.4.4.1</title>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>When a referenced value in another module in turn referenced a
- defined value the compilation crashed. This is due to the new
- routines for compilation, that external references are resolved
- during compilation, and not by the order in which modules are
- compiled. This error is now corrected.</p>
- <p>Own Id: OTP-4970</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.4.4</title>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>Functionality for parameterized class is added. Parsing failures on
- WithSyntax spec is corrected.</p>
- <p>Own Id: OTP-4893</p>
- </item>
- <item>
- <p>The failure due to Parameterized Type when parameter is an object
- set is corrected.</p>
- <p>Own Id: OTP-4894</p>
- <p>Aux Id: OTP-4893</p>
- </item>
- <item>
- <p>Object Identifier values with two components and the first was a
- value reference failed due to parsing conflicts. Now it is
- corrected.</p>
- <p>Own Id: OTP-4895</p>
- </item>
- <item>
- <p>The erroneous comparison of file name and asn1 module name could
- cause compilation failure. The situation for this failure is rare,
- it requires that other processes modifies the compiled file during
- the compilation procedure. It is now fixed.</p>
- <p>Own Id: OTP-4944</p>
- <p>Aux Id: seq8429</p>
- </item>
- <item>
- <p>Selective decode was ignored when exclusive decode spec in asn1
- configfile was missing. Selective decode failed when the selected
- type was the top type. These bugs are now removed.</p>
- <p>Own Id: OTP-4953</p>
- <p>Aux Id: seq8436</p>
- </item>
- <item>
- <p>The test interface asn1ct:test/1,2,3 and asn1ct:value/2 failed for
- open type and EXTERNAL. The bug is now removed.</p>
- <p>Own Id: OTP-4955</p>
- <p>Aux Id: seq8438)</p>
- </item>
- <item>
- <p>Two equal functions were generated for two components referencing
- the same type when they were picked by the action "parts". The bug
- is now fixed.</p>
- <p>Own Id: OTP-4957</p>
- <p>Aux Id: seq8434</p>
- </item>
- </list>
- </section>
-
- <section>
- <title>Improvements and new features</title>
- <list type="bulleted">
- <item>
- <p>INTEGER with named number list and ENUMERATED can now be sub
- constrained with names from the names list.</p>
- <p>Own Id: OTP-4917</p>
- </item>
- <item>
- <p>Now there is support for SelectionType (X 680 section 29)</p>
- <p>Own Id: OTP-4918</p>
- </item>
- <item>
- <p>The compiler now resolves circular dependencies. When asn1 specs
- IMPORTS from each other so that there are circular dependencies.</p>
- <p>Own Id: OTP-4919</p>
- </item>
- <item>
- <p>Now is the asn1 type UTF8String supported. For user instructions
- see documentation.</p>
- <p>Own Id: OTP-4965</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.4.3.1</title>
-
- <section>
- <title>Fixed Bugs and Malfunctions</title>
- <list type="bulleted">
- <item>
- <p>The <c>{internal_error,...,{ unrecognized_type,...}}</c>
- error occurring for a SET type when compiling with options
- <c>[ber_bin,optimize,der]</c> is now corrected.</p>
- <p>Own Id: OTP-4866</p>
- </item>
- <item>
- <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>
- <p>Own Id: OTP-4869</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.4.3</title>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>Functionality to handle parameterized object sets have been added.</p>
- <p>Own Id: OTP-4832</p>
- </item>
- <item>
- <p>Bug causing duplicated function definitions using exclusive decode is removed.</p>
- <p>Own Id: OTP-4833)</p>
- </item>
- <item>
- <p>The race condition when loading asn1 driver is solved.</p>
- <p>Own Id: OTP-4835</p>
- </item>
- </list>
- </section>
-
- <section>
- <title>Improvements and new features</title>
- <list type="bulleted">
- <item>
- <p>A specialized decode, <em>selective decode</em> is now available. It decodes a chosen internal sub-type of a constructed type.</p>
- <p>Own Id: OTP-4856)</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.4.2.2</title>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>Release of Asn1 1.4.2.1 on R7B, The functionality is the same, but
- the layer between the driver and the asn1 erlang code is different.</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.4.2.1</title>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>ObjectDescriptor does now work as part of a sequence, set or choice.</p>
- <p>Own Id: OTP-4773</p>
- </item>
- <item>
- <p>When a SEQUENCE that have extension mark was decoded inside a
- SEQUENCE OF it could cause decode error due to a failure in
- restbytes2. It is now corrected.</p>
- <p>Own Id: OTP-4791)</p>
- </item>
- <item>
- <p>Now the bug is fixed that caused the compiler crash on an untagged
- optional open type.</p>
- <p>Own Id: OTP-4792</p>
- </item>
- <item>
- <p>The earlier exit caused by bad in-data is now fixed so it will
- return an {error,Reason} tuple.</p>
- return an {error,Reason} tuple.</p>
- <p>Own Id: OTP-4797</p>
- </item>
- <item>
- <p>Open type encoded with indefinite length is now correct decoded.</p>
- <p>Own Id: OTP-4798</p>
- </item>
- <item>
- <p>Now is absent optional open types handled correctly.</p>
- <p>Own Id: OTP-4799</p>
- </item>
- <item>
- <p>Now is the necessary functions available for sorting in run-time of
- SET and SET OF components.</p>
- <p>Own Id: OTP-4809</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.4.2</title>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>When a component in a SEQUENCE is a CHOICE (or reference to a CHOICE)
- and the SEQUENCE's component and one of the alternatives in the CHOICE
- have identical names, an error may occur if one doesn't use the
- '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
- component as <c>{ComponentName,Value}</c>, and the generated code
- chooses the second element of the tuple. However, a value of a CHOICE
- must be applied as a tuple: <c>{AlternativeName,Value}</c>. Thus,
- in the rare case described above and if the value to the SEQUENCE's
- component is not in a tuple notation the
- <c>{AlternativeName,Value}</c> will be peeled off in the SEQUENCE
- and the value fed to the CHOICE will only be the <c>Value</c>
- part of <c>{AlternativeName,Value}</c>, and the encoder crashes.
- The best way to avoid this is to use the optimized version of the
- compiler where the unnecessary tuple notation
- <c>{ComponentName,Value}</c> no longer is allowed. Since it isn't
- possible to solve this bug in the compiler.</p>
- <p>Own Id: OTP-4693</p>
- </item>
- </list>
- </section>
-
- <section>
- <title>Improvements and new features</title>
- <list type="bulleted">
- <item>
- <p>Exclusive decode is enabled by a compiler option and a configuration
- file. It makes it possible to leave parts of an ASN.1 encoded message
- un-decoded.</p>
- <p>Own Id: OTP-4744</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.4.1.1</title>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>The documentation about how extensibility is handled is now corrected.</p>
- <p>Own Id: OTP-4663</p>
- </item>
- <item>
- <p>Function in object now calls the exported function</p>
- <p>Own Id: OTP-4665</p>
- </item>
- <item>
- <p>Now is tags for ObjectClassFieldType analyzed correctly.</p>
- <p>Own Id: OTP-4666</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.4.1</title>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>Now is the Default value for an ENUMERATED returned as the name from
- the NamedList when decoding.</p>
- <p>Own Id: OTP-4633</p>
- </item>
- <item>
- <p>It was an internal failure when permitted alphabet constraint existed
- together with for instance a size constraint. E.g. when a
- referenced type is constrained by a size constraint and the defined
- type in turn is constrained by a permitted alphabet constraint.</p>
- <p>Own Id: OTP-4559</p>
- </item>
- <item>
- <p>Record is generated in hrl file for a CHOICE with extension mark
- that has an internal SEQUENCE/SET definition.</p>
- <p>Own Id: OTP-4560</p>
- </item>
- <item>
- <p>Now is the length of a SEQUENCE/SET OF correctly encoded/decoded (PER).</p>
- <p>Own Id: OTP-4590</p>
- </item>
- <item>
- <p>The problem with unordered decoded terms when a component is a
- ObjectClassFieldType has been solved.</p>
- <p>Own Id: OTP-4591</p>
- </item>
- </list>
- </section>
-
- <section>
- <title>Improvements and new features</title>
- <list type="bulleted">
- <item>
- <p>More complex definitions with TableConstraints where the SimpleTable
- and ComponentRelation are on different levels is now fully
- supported.</p>
- <p>Own Id: OTP-4631</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.4</title>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- </section>
-
- <section>
- <title>Improvements and new features</title>
- <list type="bulleted">
- <item>
- <p>Each generated .erl file have now a function info/0 that returns
- information about the used compiler version and options.</p>
- <p>Own Id: OTP-4373</p>
- </item>
- <item>
- <p>When compiling an ASN.1 module the compiler generates an Erlang module
- that is compiled by the Erlang compiler. Earlier it was not possible to
- add options to the final step, the Erlang compilation. By adding any
- option that is not recognized as a specific ASN.1 option it will be
- passed to the final step like: <c>erlc +debug_info Mymodule.asn</c> or
- <c>asn1ct:compile('Mymodule',[debug_info])</c>.</p>
- <p>Own Id: OTP-4491</p>
- </item>
- <item>
- <p>Earlier one couldn't multi file compile modules that had different
- tagdefault, which now is possible. Equal Type/Value names in different
- modules are resolved by renaming (concatenate type name and module
- name): If two types with the same name T exist in module A and module B
- they will get the new names TA and TB.</p>
- <p>(Own Id: OTP-4492)</p>
- <p>Aux Id: OTP-3983</p>
- </item>
- <item>
- <p>BER: Encode/decode of data have been significantly improved. By use of
- the compiler options <c>ber_bin</c> and <c>optimize</c>,
- optimized code will be generated and the optimized run-time module will
- be used.</p>
- <p>Own Id: OTP-4493</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.3.3.1</title>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>Proper length encoding and padding implemented for a <c>BIT STRING</c> with
- NamedNumberList and size constraint as value range. This functionality
- didn't work in the rare occasion when the NamedNumberList is shorter
- than the lower bound of the constraint.As in this example:
- <c>TestS ::= BIT STRING {a (0),b (1)} (SIZE (3..8))</c></p>
- <p>(Own Id: OTP-4353)</p>
- </item>
- <item>
- <p>Bug in compiler, when an <c>OBJECT IDENTIFIER</c> value consisting of
- two identifiers (Defined values or Name form identifiers) was falsely
- interpreted causing a compiling error is now corrected.</p>
- <p>(Own Id: OTP-4354)</p>
- </item>
- <item>
- <p>Internal error in check phase that caused crash on
- <c>ObjectClassFieldType</c> in ber_bin is corrected.</p>
- <p>(Own Id: OTP-4390)</p>
- </item>
- <item>
- <p>Tags for open types are handled according to <c>x.680 30.6c</c>, i.e.
- open types shall not be tagged <c>IMPLICIT.</c></p>
- <p>(Own Id: OTP-4395)</p>
- <p>(Aux Id: OTP-4390)</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.3.3</title>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>Now gives the compiler an appropriate error report when exported
- undefined types are detected.</p>
- <p>(Own Id: OTP-4129)</p>
- </item>
- <item>
- <p>The type <c>ObjectDescriptor</c> is now supported, previously the
- implementation of encode/decode for this rarely used type was
- incomplete.</p>
- <p>(Own Id: OTP-4161)</p>
- <p>(Aux Id: seq7165)</p>
- </item>
- <item>
- <p>In case of per and compact_bit_string the rightmost byte were erroneous
- truncated when the rightmost bits of that byte were zeros. This is now
- corrected.</p>
- <p>(Own Id: OTP-4200)</p>
- </item>
- <item>
- <p>Bad match of return-value from decode_length in skipvalue/3 has now been
- fixed.</p>
- <p>(Own Id: OTP-4232)</p>
- </item>
- <item>
- <p>Now is decode of ENUMERATED handled correctly, when tagged EXPLICIT.</p>
- <p>(Own Id: OTP-4234)</p>
- </item>
- <item>
- <p>The compiler now parses and handles the ValueFromObject construct.</p>
- <p>(Own Id: OTP-4242)</p>
- </item>
- <item>
- <p>Now does the compiler handle the case when the object set in simple
- table and componentrelation constraints is of a CLASS without a UNIQUE
- field. In this case is the octets, which is assumed to be encoded,
- encoded as an open type.</p>
- <p>(Own Id: OTP-4248)</p>
- <p>(Aux Id: OTP-4242)</p>
- </item>
- <item>
- <p>Compiler handles objects in AdditionalElementSetSpec in ObjectSetSpec,
- i.e. the objects that are referred to after the ellipses in an object set.</p>
- <p>(Own Id: OTP-4275)</p>
- </item>
- <item>
- <p>Now are values with a component of type CHOICE encoded with indefinite
- length correctly decoded.</p>
- <p>(Own Id: OTP-4358)</p>
- </item>
- </list>
- </section>
-
- <section>
- <title>Improvements and new features</title>
- <list type="bulleted">
- <item>
- <p>The language constructs (from the old 1988 standard) <c>ANY</c>
- and <c>ANY DEFINED BY</c> are now implemented.</p>
- <p>(Own Id: OTP-2741)</p>
- <p>(Aux Id: seq 1188)</p>
- </item>
- <item>
- <p>Now it is checked in run-time if a <c>OBJECT IDENTIFIER</c> value is invalid</p>
- <p>(Own Id: OTP-4235)</p>
- </item>
- <item>
- <p>The ASN.1 types EXTERNAL,EMBEDDED PDV and CHARACTER STRING now have full support in the compiler.</p>
- <p>(Own Id: OTP-4247)</p>
- </item>
- <item>
- <p>A driver in C does the final job (complete) of the PER encoding when
- files are compiled with <c>per_bin</c> and <c>optimize</c> flags.
- It gives significant faster encoding for PER.</p>
- <p>(Own Id: OTP-4355)</p>
- </item>
- <item>
- <p>Encode and decode of PER encoding has been made faster by moving
- analysis done in run-time to compile-time. These optimizations are
- available by compiling ASN.1 files with options <c>per_bin</c> and
- <c>optimize</c>.</p>
- <p>(Own Id: OTP-4381)</p>
- <p>(Aux Id: OTP-4355)</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.3.2</title>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>Now does the compiler check values (including referenced values), and
- formats the value so it is suitable to use as input to encoding
- functions.</p>
- <p>(Own Id: OTP-3277)</p>
- <p>(Aux Id: OTP-4103)</p>
- </item>
- <item>
- <p>Unnecessary external function calls in generated code are now generated
- as internal function calls.</p>
- <p>(Own Id: OTP-4073)</p>
- </item>
- </list>
- </section>
-
- <section>
- <title>Improvements and new features</title>
- <list type="bulleted">
- <item>
- <p>Now is Information Objects supported in BER encoding.</p>
- <p>(Own Id: OTP-3980)</p>
- <p>(Aux Id: OTP-3979 OTP-3978)</p>
- <p></p>
- </item>
- <item>
- <p>PER: A new option <c>per_bin</c> is now supported. When used the
- generated encode/decode functions use binaries and the bit syntax to
- get better performance than the old <c>per</c> variant which used
- lists. All values input to encode and returned from decode are
- compatible between <c>per</c> and <c>per_bin</c> except for
- open types which are represented as binaries with per_bin and octet
- lists with per. We recommend that you use per_bin instead of per from
- now on, the use of binaries will be the default in coming versions and
- all improvements and optimizations for PER will be concentrated to that
- solution.</p>
- <p>(Own Id: OTP-4094)</p>
- <p></p>
- </item>
- <item>
- <p>Support for DER implemented. Used by flag +der when compiling. Include
- the full BER encoding plus: sorting of SET components, sorting of
- encoded elements in SET OF, full check of default values in SET and
- SEQUENCE. See new documentation on DER in user_guide sections 1.3.1;
- 1.4.11; 1.4.12; 1.4.14; 1.4.16 and 1.10, in the reference manual for
- asn1ct.</p>
- <p>(Own Id: OTP-4103)</p>
- <p></p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.3.1</title>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>Do not generate record in .hrl file for SET types</p>
- <p>Own Id: OTP-4025</p>
- </item>
- <item>
- <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>
- <p>Own Id: OTP-4026</p>
- <p>Aux Id: OTP-3982</p>
- </item>
- <item>
- <p>The atom 'com' can now be used in ENUMERATED as an EnumerationItem.</p>
- <p>Own Id: OTP-4037</p>
- <p>Aux Id: Seq 7036</p>
- </item>
- <item>
- <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}
- 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>
- <p>Own Id: OTP-4057</p>
- <p>Aux Id: Seq 7066</p>
- </item>
- <item>
- <p>A bug in the parser, that caused failure on COMPONENTS OF is now removed.</p>
- <p>Own Id: OTP-4058</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.3</title>
-
- <section>
- <title>Known problems</title>
- <list type="bulleted">
- <item>
- <p>The compiler will now check that a value referenced by name
- does exist.</p>
- <p>Own Id: OTP-3277</p>
- </item>
- <item>
- <p>BER:Decode of a type T ::= SEQUENCE OF C fails if C is encoded with indefinite length.
- This is know corrected.</p>
- <p>Own Id: OTP-3811</p>
- <p>Aux Id: seq5040</p>
- </item>
- </list>
- </section>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <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>
- <p>Own Id: OTP-3463</p>
- </item>
- <item>
- <p>The compiler did not check that a name mentioned as EXPORTED
- actually is defined within the module.
- This is now corrected.</p>
- <p>Own Id: OTP-3659</p>
- </item>
- <item>
- <p>Removed bug caused by use of nested indefinite length</p>
- <p>Own Id: OTP-3994</p>
- </item>
- </list>
- </section>
-
- <section>
- <title>Improvements and new features</title>
- <list type="bulleted">
- <item>
- <p>Now supporting most common use of parameterization according to X.683</p>
- <p>(Own Id: OTP-3978)</p>
- </item>
- <item>
- <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>
- <p>Own Id: OTP-3979</p>
- </item>
- <item>
- <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>
- <p>Own Id: OTP-3981</p>
- </item>
- <item>
- <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>
- <p>Own Id: OTP-3982</p>
- </item>
- <item>
- <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>
- <p>Own Id: OTP-3983</p>
- </item>
- <item>
- <p>New documentation in <em>User's Guide</em> in section:</p>
- <p>3.1: New compile-time functions and options are described.</p>
- <p>4.6: New compact format of BIT STRING is described.</p>
- <p>4.8: Additional comments on character strings.</p>
- <p>7: New section describing ASN.1 Information Objects.</p>
- <p>8: New section describing Parameterization.</p>
- <p><em>Reference Manual/asn1ct</em> New compile options are described.</p>
- <p>Own Id: OTP-3984</p>
- <p>Aux Id: OTP-3978, OTP-3979, OTP-3981, OTP-3982, OTP-3983</p>
- </item>
- <item>
- <p>Added the functionality to invoke ASN1Mod:encode (and decode).</p>
- <p>Own Id: OTP-3985</p>
- </item>
- <item>
- <p>Performance improvements by removing not necessary use of apply when calling asn1rt:encode. Also other general improvements.</p>
- <p>Own Id: OTP-3988</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.2.9.6</title>
-
- <section>
- <title>Known problems</title>
- <list type="bulleted">
- <item>
- <p>The compiler does not check that an exported name actually exists in the ASN.1 module.</p>
- <p>Own Id: OTP-3659</p>
- </item>
- <item>
- <p>The compiler does not check that a value referenced by name does exist.</p>
- <p>Own Id: OTP-3277</p>
- </item>
- <item>
- <p>BER: The compiler does not take the extensions into account when checking if
- the tags are unique in a SEQUENCE or SET.</p>
- <p>Own Id: OTP-3304</p>
- </item>
- </list>
- </section>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>PER: Trailing zeroes in a BIT STRING declared without named bits
- should not be removed in the encodings.</p>
- <p>Own Id: OTP-3830</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.2.9.5</title>
-
- <section>
- <title>Known problems</title>
- <p>Same as for 1.2.9.3.</p>
- </section>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>PER: Constraints are not propagated when types are
- referring to each other. Example:</p>
- <code type="none">
-
- TBCD-STRING ::= OCTET STRING
-
- LAI ::= TBCD-STRING (SIZE(3)) </code>
- <p>The size constraint is not passed on during encode,decode
- resulting in wrong encoding for PER , it is
- coded with a length determinant which should not be there
- when the length is fixed. For BER this does not matter because the constraints does
- not affect the encodings.</p>
- <p>Own Id: OTP-3713</p>
- </item>
- <item>
- <p>The generated code gets wrong if there are several ENUMERATED fields in a SEQUENCE or SET, this is now corrected.</p>
- <p>Own Id: OTP-3796</p>
- </item>
- <item>
- <p>BER:Decode of a type T ::= SEQUENCE OF C fails if C is encoded with indefinite length.
- This is know corrected.</p>
- <p>Own Id: OTP-3811</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.2.9.3</title>
-
- <section>
- <title>Known problems</title>
- <list type="bulleted">
- <item>
- <p>The compiler does not check that an exported name actually exists in the ASN.1 module.</p>
- <p>Own Id: OTP-3659</p>
- </item>
- <item>
- <p>The compiler does not check that a value referenced by name does exist.</p>
- <p>Own Id: OTP-3277</p>
- </item>
- <item>
- <p>BER: The compiler does not take the extensions into account when checking if
- the tags are unique in a SEQUENCE or SET.</p>
- <p>Own Id: OTP-3304</p>
- </item>
- </list>
- </section>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>This version supports soft upgrade from versions 1.2.6 1.2.7.</p>
- </item>
- <item>
- <p>In an ENUMERATED type like this:</p>
- <code type="none">
-\011\011T ::= ENUMERATED { blue, green} </code>
- <p>The symbols was encoded/decoded with the wrong values, i.e in
- reverse order. This is now corrected.</p>
- <p>Own Id: OTP-3700</p>
- </item>
- <item>
- <p>PER: OCTET STRING with Size constrained to a single value i.e fixed size
- was treated wrong during encode and decode. This is now corrected.</p>
- <p>Own Id: OTP-3701</p>
- </item>
- </list>
- </section>
-
- <section>
- <title>Improvements and new features</title>
- <list type="bulleted">
- <item>
- <p>There is now a new compiler option <c>ber_bin</c> available that can be used to
- generate encode/decode functions for BER that uses the new "bit-syntax" to
- make the functions more efficient. The <c>ber_bin</c> option is used
- as an alternative to the <c>ber</c> and <c>per</c> options.</p>
- <p>The encode function then produces a
- possibly nested list of binaries and integer lists. The decode function does
- in this case require a single binary as input instead of a list.
- The modules generated with this option require that you have an R7A or later
- system, otherwise they will not compile and the runtime module asn1rt_ber_bin
- can not be executed.</p>
- <p>The ber_bin option is not officially supported in this version (will be
- in a later version) but is provided for those who want to try it.
- It should be significantly faster at decode and is slightly faster at encode.
- Exactly how performance differs between this binary approach and the
- list approach depends highly on the type of input.
- Another thing worth noting is that both approaches still have a lot of
- solutions in common which can be improved a lot to gain even better
- performance.</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.2.9.2</title>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>BER: Encode/decode of extension components did not work properly. This is now corrected.</p>
- <p>Own Id: OTP-3395</p>
- <p>Aux Id: </p>
- <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
- value (e.g NULL) encodes to nothing.</p>
- <p>Own Id: OTP-3496</p>
- <p>Aux Id: </p>
- </item>
- <item>
- <p>BER:In the current implementation extension components of a SEQUENCE are required
- to be present when they are specified as mandatory. This is an error, all extension
- components are "optional" even if they are not specified to have the OPTIONAL or
- DEFAULT property. This is now corrected.</p>
- <p>Own Id: OTP-3278</p>
- </item>
- </list>
- </section>
-
- <section>
- <title>Improvements and new features</title>
- <list type="bulleted">
- <item>
- <p>The ASN.1 language feature <c>COMPONENTS OF</c> is now implemented.</p>
- <p>Own Id: OTP-2515</p>
- </item>
- <item>
- <p>The encoding and decoding of ENUMERATED and
- INTEGER with NamedNumbers is made more efficient and thus
- faster in runtime.</p>
- <p>Own Id: OTP-3464</p>
- <p>Aux Id:</p>
- </item>
- <item>
- <p>Added support for encode/decode of open type which is
- constrained to a specific type. Previously the value of
- an open type had to be a list of octets, but now the Erlang
- representation of the specific type used in the constraint
- is used both as input to encode and as output from decode.</p>
- <p>Own Id: OTP-3569</p>
- <p>Aux Id: </p>
- </item>
- <item>
- <p>PER: GeneralString, GraphicalString etc. i.e all strings
- that are not so called "known-multiplier character
- string types" are now supported by the runtime
- encode/decode functions.</p>
- <p>Own Id: OTP-3573</p>
- <p>Aux Id:</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.2.6</title>
-
- <section>
- <title>Known problems</title>
- <list type="bulleted">
- <item>
- <p>The ASN.1 language feature <c>COMPONENTS OF</c> is not implemented.</p>
- <p>Own Id: OTP-2515</p>
- </item>
- <item>
- <p>The compiler does not check that a value referenced by name does exist.</p>
- <p>Own Id: OTP-3277</p>
- </item>
- <item>
- <p>BER:In the current implementation extension components of a SEQUENCE are required
- to be present when they are specified as mandatory. This is an error, all extension
- components are "optional" even if they are not specified to have the OPTIONAL or
- DEFAULT property.</p>
- <p>Own Id: OTP-3278</p>
- </item>
- <item>
- <p>BER: The compiler does not take the extensions into account when checking if
- the tags are unique in a SEQUENCE or SET.</p>
- <p>Own Id: OTP-3304</p>
- </item>
- </list>
- </section>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>This version supports soft upgrade from versions 1.1.1, 1.1.5 and 1.1.6.
- Two new runtime modules <c>asn1rt_ber_v1</c> and
- <c>asn1rt_per_v1</c> are delivered together with the old ones. This makes
- it possible to continue running applications with modules generated with the
- previous version of the asn1 compiler while modules generated by this version
- will use the new runtime modules. Note that it is only advice-able to continue
- running old generates if they are working perfectly and have no need
- for the corrections made in this version of the asn1 application.</p>
- </item>
- <item>
- <p>BER: SEQUENCEs encoded with indefinite length was not correctly decoded.
- This in now corrected.</p>
- <p>Own Id: OTP-3352</p>
- <p>Aux Id: Seq 4100</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.2.4</title>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>The compiler now detects multiple definitions of values and types and reports this as
- an error. Previously this was detected when the generated Erlang module was compiled.</p>
- <p>Own Id: OTP-3105</p>
- </item>
- <item>
- <p>BER: An error regarding encoding of <c>ENUMERATED</c> present in asn1-1.1.1
- is corrected. The new version 1.1.2 of asn1 containing this correction is
- delivered as a "patch".</p>
- <p>Own Id: OTP-3169</p>
- </item>
- <item>
- <p>BER: Decoding of <c>SEQUENCE OF</c> and <c>SET OF</c> with indefinite length is corrected.
- The correction was first delivered in version 1.1.2.</p>
- <p>Own Id: OTP-3170</p>
- </item>
- <item>
- <p>BER: Encoding and decoding of <c>ENUMERATED</c>
- with extensionmark
- "..." did not work (crashed with a runtime error). This
- has now been corrected. If an unknown enumerated value is
- decoded (for an extensible enumerated type)
- it is returned as <c>{asn1_enum,Value}</c> where
- <c>Value</c> is an integer. Enumerated values in this format
- are also accepted by the encoder.
- ASN.1 modules containing
- <c>ENUMERATED</c> with extensionmark should be
- recompiled with the corrected
- version of the compiler. The BER runtime functions are also
- corrected.
- Note that this correction has already been delivered as a
- bugfix for R4B (OTP-2951).</p>
- <p>Own Id: OTP-3202</p>
- <p>Aux Id: Seq3745</p>
- </item>
- <item>
- <p>BER: The primitive/constructed bit in the tag byte of an encoding
- is not correct when it comes to user defined tags.
- For example in </p>
- <code type="none">
- T ::= [2] SEQUENCE { a BOOLEAN} </code>
- <p>the tag 2 does not get the constructed bit set which it should.
- This is now corrected.</p>
- <p>Own Id: OTP-3241</p>
- </item>
- <item>
- <p>The decoder can now detect if there are unexpected bytes
- remaining when all components of a sequence are decoded.
- The decoder will then return <c>{error,{asn1{unexpected,Bytes}}}</c></p>
- <p>Own Id: OTP-3270</p>
- </item>
- <item>
- <p>Values of type <c>OBJECT IDENTIFIER</c> was sometimes returned as an Erlang list
- (ASN.1 constants) and sometimes as a tuple (from the decode functions). This is now
- changed so that <c>OBJECT IDENTIFIER</c> values always are represented as an Erlang
- tuple.</p>
- <p>Own Id: OTP-3280</p>
- </item>
- <item>
- <p>PER:The encode/decode functions could not handle integers with
- a range greater than 16#7ffffff. This limit is now removed.</p>
- <p>Own Id: OTP-3287</p>
- </item>
- <item>
- <p>PER: The encoding/decoding of the length for a SET OF/SEQUENCE OF
- was wrong if there was a size constraint. This is now corrected.</p>
- <p>Own Id: OTP-3291</p>
- </item>
- <item>
- <p>PER: Encoding of a constrained INTEGER (range &gt; 16 k) was wrong for
- the value 0. This is now corrected.</p>
- <p>Own Id: OTP-3306</p>
- </item>
- </list>
- </section>
-
- <section>
- <title>Improvements and new features</title>
- <list type="bulleted">
- <item>
- <p>The ASN.1 module name and the filename where the ASN.1
- specification resides must match each other (has always been the
- case). This is now checked by the compiler. The check requires that
- the names match in a case or case insensitive way depending on the
- characteristics for the current system.</p>
- <p>Own Id: OTP-1843</p>
- </item>
- <item>
- <p>PER: Encode/decode of an extension value (i.e not within the root set) for
- <c>ENUMERATED</c> did not work properly. This is now corrected.
- If an unknown enumerated value is
- decoded (for an extensible enumerated type)
- it is returned as <c>{asn1_enum,Value}</c> where
- <c>Value</c> is an integer. Enumerated values in this format
- are also accepted by the encoder (if the value is &gt;= the number of known
- extension values).</p>
- <p>Own Id: OTP-2930</p>
- </item>
- <item>
- <p>Unnecessary printouts from the compiler are removed.
- The compiler version and the compiler options are now
- printed to stdout.</p>
- <p>Own Id: OTP-3276</p>
- </item>
- <item>
- <p>In order to better suite the use of ASN.1 in embedded systems only
- the modules needed in runtime are now listed in the <c>.app</c> file.</p>
- <p>Own Id: OTP-3279</p>
- </item>
- <item>
- <p>The compiler now supports extensionmarker in constraint specifications.
- Example:</p>
- <code type="none">
-INTEGER (0..10, ...) </code>
- <p>In previous version this was reported as a syntax error.</p>
- <p>Own Id: OTP-3281</p>
- </item>
- <item>
- <p>A very limited part of ITU-T recommendation X.681
- Abstract Syntax Notation One (ASN.1): Information
- object specification is now implemented. Specifically \011
- TYPE IDENTIFIER is recognized by the compiler.</p>
- <p>Own Id: OTP-3325</p>
- </item>
- <item>
- <p>Parameterization of ASN.1 specifications (ITU-T X.683) is now
- supported to a limited extent.</p>
- <p>Own Id: OTP-3326</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.1.3.1</title>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>BER Encoding and decoding of <c>ENUMERATED</c>
- with extensionmark
- "..." did not work (crashed with a runtime error). This
- has now been corrected. If an unknown enumerated value is
- decoded (for an extensible enumerated type)
- it is returned as <c>{asn1_enum,Value}</c> where
- <c>Value</c> is an integer. Enumerated values in this format
- are also accepted by the encoder.
- ASN.1 modules containing
- <c>ENUMERATED</c> with extensionmark should be
- recompiled with the corrected
- version of the compiler. The BER runtime functions are also
- corrected.
- Note that this correction has already been delivered as a
- bug-fix for R4B (OTP-2951).</p>
- <p>Own Id: OTP-3202</p>
- <p>Aux Id: Seq3745</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.1.1</title>
-
- <section>
- <title>Known problems</title>
- <list type="bulleted">
- <item>
- <p>The syntactic construct <c>COMPONENTS OF</c> is not
- implemented.</p>
- <p>Own Id: OTP-2515</p>
- </item>
- <item>
- <p><c>ANY</c> and <c>ANY DEFINED BY</c> are currently not
- supported.</p>
- <p>Own Id: OTP-2741</p>
- <p>Aux Id: seq 1188</p>
- </item>
- <item>
- <p>Multiple definitions of the same Type or Value is not detected
- by the compiler. The error occurs when the generated Erlang
- module is compiled.</p>
- <p>Own Id: OTP-3105</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.1</title>
-
- <section>
- <title>Known problems</title>
- <list type="bulleted">
- <item>
- <p>The primitive/constructed bit in the tag byte of an encoding
- is not correct when it comes to user defined tags.
- For example in</p>
- <code type="none">
- T ::= [2] SEQUENCE { a BOOLEAN} </code>
- <p>the tag 2 does not get the constructed bit set which it should.
- This is now corrected.</p>
- <p>Own Id: OTP-3241</p>
- </item>
- </list>
- </section>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>The BER decoder failed to decode certain nested data types
- where <c>IMPLICIT</c> tags where involved.
- This is now corrected.</p>
- <p>Own Id: OTP-2719</p>
- <p>Aux Id: seq 1148</p>
- </item>
- <item>
- <p>The handling of types with extension marker "..." is corrected.
- Earlier each SEQUENCE and SET with an extension marker got an
- extra field named <c>asn1_EXT</c> in the generated record.
- This was a mistake and that field is now removed (concerns
- both BER and BER).</p>
- <p>Own Id: OTP-2724</p>
- <p>Aux Id: seq 1148, OTP-2719</p>
- </item>
- <item>
- <p>The decoder (both BER and PER) could not handle unnamed
- bits of a <c>BIT STRING</c> if the type had any
- named bits declared. This is now corrected and the unnamed
- bits are returned as <c>{bit,Pos}</c> where Pos is the bit
- position. The <c>{bit,Pos}</c> can be used as input to the
- encoder too.</p>
- <p>Own Id: OTP-2725</p>
- <p>Aux Id: seq 1148,OTP-2719,OTP-2724</p>
- </item>
- <item>
- <p>The functions <c>asn1rt:decode</c> and <c>asn1ct:decode</c>
- did not always return <c>{ok,Result}</c> or
- <c>{error,Reason}</c> as documented. This is now corrected.</p>
- <p>Own Id: OTP-2730</p>
- <p>Aux Id: seq 1158</p>
- </item>
- <item>
- <p>The compiler did not accept CHOICE types as components
- of a SEQUENCE or SET when
- the modules tag default was IMPLICIT.
- Example:</p>
- <code type="none">
-C ::= CHOICE { ......}
-A ::= SEQUENCE {
-a [1] C, -- This was not accepted
-..... </code>
- <p>This was an error
- caused by a misinterpretation of the ASN.1 standard. This
- is now corrected.</p>
- <p>Own Id: OTP-2731</p>
- <p>Aux Id: seq 1163</p>
- </item>
- <item>
- <p>When decoding a SEQUENCE A which contains an OPTIONAL component
- b which is a SEQUENCE with mandatory components, the decoder
- does not detect as an error that a mandatory component of b
- is missing. The same error could occur also in other cases
- with nested types and optional components of SEQUENCE or SET.
- This is now corrected.</p>
- <p>Own Id: OTP-2738</p>
- <p>Aux Id: seq 1183</p>
- </item>
- <item>
- <p>BER Encoding and decoding of <c>ENUMERATED</c>
- with extensionmark
- "..." did not work (crashed with a runtime error). This
- has now been corrected. If an unknown enumerated value is
- decoded (for an extensible enumerated type)
- it is returned as <c>{asn1_enum,Value}</c> where
- <c>Value</c> is an integer. Enumerated values in this format
- are also accepted by the encoder.
- ASN.1 modules containing
- <c>ENUMERATED</c> with extensionmark should be
- recompiled with the corrected
- version of the compiler. The BER runtime functions are also
- corrected.</p>
- <p>Own Id: OTP-2951</p>
- <p>Aux Id: Seq 1446 OTP-2929</p>
- </item>
- <item>
- <p>The compiler does now accept all valid value notations
- for the OBJECT IDENTIFIER type. The generated code for
- those values is also corrected.</p>
- <p>Own Id: OTP-3059</p>
- </item>
- </list>
- </section>
-
- <section>
- <title>Improvements and new features</title>
- <list type="bulleted">
- <item>
- <p>The code generated for BER is significantly enhanced resulting
- in less code and around 300% better performance in runtime
- for the encoding of complex ASN.1 values. The performance of
- decoding is unchanged.</p>
- <p>Own Id: OTP-2806</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>Asn1 1.0.3</title>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>The <c>asn1.app</c> file is corrected.</p>
- <p>Own Id: OTP-2640</p>
- </item>
- <item>
- <p>The encoding of integers in BER did not comply with the
- standard for all values. The values was not encoded
- in the minimum number of octets as required. This is
- now corrected in the runtime module <c>asn1rt_ber</c>.</p>
- <p>Own Id: OTP-2666</p>
- </item>
- </list>
- </section>
-
- <section>
- <title>Improvements and new features</title>
- <list type="bulleted">
- <item>
- <p>The compiler now generates explicit exports directives for
- all generated
- functions that should be exported (instead of -compile(export_all)).
- This eliminates the warnings from the Erlang compiler when
- compiling the
- generated file.</p>
- <p>Own Id: OTP-1845</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>R3B02 (Asn1 1.0.2)</title>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <p>The decoding of a BER encoded SEQUENCE with optional component
- of type SEQUENCE (also with optional components) could result
- in an error or wrong result if the tags are equal.</p>
- <p>Own Id: OTP-2226</p>
- </item>
- <item>
- <p>The encoding of (PER) SEQUENCE with extensionmark was wrong.
- This is now corrected.</p>
- <p>Own Id: OTP-2349</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>R3A (Asn1 0.9)</title>
-
- <section>
- <title>Fixed errors and malfunctions</title>
- <list type="bulleted">
- <item>
- <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>
- <p>Own Id: OTP-1844</p>
- </item>
- <item>
- <p>An OPTIONAL CHOICE embedded in SEQUENCE when BER coding
- caused an error when generating decode code. This is now
- corrected.</p>
- <p>Own Id: OTP-1857</p>
- <p>Aux Id: OTP-1848</p>
- </item>
- </list>
- </section>
- </section>
-
- <section>
- <title>1 ASN1 0.8.1</title>
- <p>This is the first release of the ASN1 application. This version is
- released for beta-testing. Some functionality will be added until the
- 1.0 version is released. See the release notes for the latest version
- for the exact details about new features. A list of missing features
- and restrictions can be found in the chapter below.</p>
-
- <section>
- <title>1.1 Missing features and other restrictions</title>
- <p></p>
- <list type="bulleted">
- <item>
- <p>The encoding rules BER and PER (aligned) is supported. <em>PER (unaligned) IS NOT SUPPORTED</em>.</p>
- </item>
- <item>
- <p>NOT SUPPORTED types <c>ANY</c> and <c>ANY DEFINED BY</c>
- (is not in the standard any more).</p>
- </item>
- <item>
- <p>NOT SUPPORTED types <c>EXTERNAL</c> and <c>EMBEDDED-PDV</c>. </p>
- </item>
- <item>
- <p>NOT SUPPORTED type <c>REAL</c> (planned to be implemented). </p>
- </item>
- <item>
- <p>The code generation support for value definitions in the ASN.1 notation is very limited
- (planned to be enhanced).</p>
- </item>
- <item>
- <p>The support for constraints is limited to:</p>
- </item>
- </list>
- <list type="bulleted">
- <item>
- <p>SizeConstraint SIZE(X)</p>
- </item>
- <item>
- <p>SingleValue (1)</p>
- </item>
- <item>
- <p>ValueRange (X..Y)</p>
- </item>
- <item>
- <p>PermittedAlpabet FROM (but not for BMPString and UniversalString when generating PER).</p>
- </item>
- <item>
- <p>Complex expressions in constraints is not supported (planned to be extended).</p>
- </item>
- <item>
- <p>The current version of the compiler has very limited error checking:</p>
- </item>
- <item>
- <p>Stops at first syntax error.</p>
- </item>
- <item>
- <p>Does not stop when a reference to an undefined type is found ,
- but prints an error message. Compilation of the generated
- Erlang module will then fail.</p>
- </item>
- <item>
- <p>A whole number of other semantical controls is currently
- missing. This means that the compiler will give little
- or bad help to detect what's wrong with an ASN.1
- specification, but will mostly work very well when the
- ASN.1 specification is correct.</p>
- </item>
- </list>
- <list type="bulleted">
- <item>
- <p>The maximum INTEGER supported in this version is a
- signed 64 bit integer. This limitation is probably quite
- reasonable. (Planned to be extended).</p>
- </item>
- <item>
- <p>Only AUTOMATIC TAGS supported for PER.</p>
- </item>
- <item>
- <p>Only EXPLICIT and IMPLICIT TAGS supported for BER.</p>
- </item>
- <item>
- <p>The compiler supports decoding of BER-data with indefinite
- length but it is not possible to produce data with indefinite
- length with the encoder.</p>
- </item>
- </list>
- </section>
- </section>
-</chapter>
-