## 1 asn1 Release Notes

This document describes the changes made to the asn1 application.

### 1.1 Asn1 1.6.2

#### 1.1.1 Fixed Bugs and Malfunctions

- comparison of two value definitions failed due to new module name field in valuedef record. It is now corrected.
  Own Id: OTP-7608

### 1.2 Asn1 1.6.1

#### 1.2.1 Fixed Bugs and Malfunctions

- Bug regarding propagation of parameters of parameterized type fixed.
  Own Id: OTP-7174 Aux Id: seq10864
- A bug, related to instatiation of a parameterized type with a type definition in the parameterlist, has been removed. The defininition of the parameter type was in another module than the instance definition causing limited module info.
  Own Id: OTP-7299 Aux Id: seq10864
- Removed hardcoded name that may cause name collision.
  Own Id: OTP-7322 Aux Id: seq10864
- Object set of a class with id with properties UNIQUE OPTIONAL and the id field is lacking in the object is for now treated as a object without a unique identifier, i.e. no table is generated for this object.
  Own Id: OTP-7332 Aux Id: seq10864
- Compiler crashed when failed to handle a OID as ValueFromObject.
  Own Id: OTP-7476 Aux Id: seq10999
- A corrupted encoding may cause a loop when a buffer of at least two bytes of zero matches tag and length of a SET component. This behaviour occured only with decoder generated with ber or ber_bin optionsNow a control breaks the loop.
  Own Id: OTP-7533
- Encode of BIT STRING longer than 255 bits with a SIZE(integer()) constraint caused a crash when spec was compiled with per_bin, optimize options.
  Own Id: OTP-7602 Aux Id: seq11079

#### 1.2.2 Improvements and New Features

- Now supports REAL type of base 2 and 10
  Own Id: OTP-7166 Aux Id: seq10864
- By the asn1 compiler option {record_name_prefix Name} a prefix is choosen to the name of the record generated in the .hrl and used in the generated .erl files.
  Own Id: OTP-7204 Aux Id: seq10853
- The TypeFromObject production now covered
  Own Id: OTP-7295 Aux Id: seq10468
- Extended support for ObjectSetFromObjects. Production occured as a part of the RootElementSetSpec of the ObjectSetSpec. Added also support for Exclusion of Element in ObjectSetSpec.
  Own Id: OTP-7306 Aux Id: seq10864
- Now implements RELATIVE-OID
  Own Id: OTP-7334 Aux Id: seq10864

### 1.3 Asn1 1.6

#### 1.3.1 Fixed Bugs and Malfunctions

- Now is ordering, accordering to the canonical order, of components in a SET added. Canonical order is described in X.691 9.2 and X.680 8.6
  Own Id: OTP-7375 Aux Id: unaligned PER
- The precedence rules for extended constraints have been misinterpreted. The rule says for instance that if there are more than one constraint on a type that have extensionmark, only the last of the extensionmarks would be kept. This affects the encoding of PER and is now corrected.
  Own Id: OTP-7400 Aux Id: OTP-7335
- A constrained number with a singlevalue constraint that is extensible was falsely encoded/decoded in aligned/unaligned PER. This is now corrected.
  Own Id: OTP-7403

#### 1.3.2 Improvements and New Features

- The ASN.1 compiler has got a new backend supporting PER UNALIGNED. Previously it was only support for PER ALIGNED.
  Own Id: OTP-7335
- Now the asn1-compiler handles unions and intersections of PermittedAlphabet constraints.
  Own Id: OTP-7374 Aux Id: unaligned PER
- With the undocumented option no_final_padding the whole encoded message is not padded to a border of a byte. Thus the returned encoded message is a bitstring.
  Own Id: OTP-7407

### 1.4 Asn1 1.5.2

#### 1.4.1 Fixed Bugs and Malfunctions

- When duplicates of object fields were removed only one table access function for each unique identifier value was generated. This can occur when several object sets are merged by use of ObjectSetFromObjects.
  Own Id: OTP-7263 Aux Id: seq10864
- DER: For some complex types and components with reference to type in several steps the default value check function was not generated. This is now fixed.
  Own Id: OTP-7268 Aux Id: seq10684
- Now is the tag in a tagged type as parameter propagated to the instance.
  Own Id: OTP-7273 Aux Id: seq10864

#### 1.4.2 Improvements and New Features

- Added type T61String that is similar to TeletexString
  Own Id: OTP-7264 Aux Id: seq10864

### 1.5 Asn1 1.5.1

#### 1.5.1 Fixed Bugs and Malfunctions

- A bug related to renaming of types has been fixed.This occured using the .set.asn functionality.
  Own Id: OTP-7149 Aux Id: seq10853
- syntax error in ASN1 value now correctly shown
  Own Id: OTP-7154 Aux Id: seq10864
- Now a COMPONENTS OF construct in a parameterized type is expanded correctly
  Own Id: OTP-7155 Aux Id: seq10864
- Now the asn1-compiler also handles empty SEQUENCE DEFAULT values as {}.
  Own Id: OTP-7169 Aux Id: seq10864
- Now SelectionType gets the tag of the selected type.
  Own Id: OTP-7171 Aux Id: seq10864
- Correction of generated code for decode of an open type in a SEQUECNE OF/ SET OF
  Own Id: OTP-7193 Aux Id: seq10875

#### 1.5.2 Improvements and New Features

- Misc improvements and bug corrections regarding default values.
  Own Id: OTP-7199 Aux Id: seq10864

### 1.6 Asn1 1.5

#### 1.6.1 Improvements and New Features

- Now generating records in .hrl file for instances of parameterized SEQUENCE or SET.
  Own Id: OTP-6835
- Optimization using bitstr in encode/decode functions. Active with [per_bin, optimize] options.
  *** POTENTIAL INCOMPATIBILITY ***
  Own Id: OTP-6882

### 1.7 Asn1 1.4.6

#### 1.7.1 Fixed Bugs and Malfunctions

- Parsing and encoding/decoding of type constrained with SIZE with extension is now recovered.
  Own Id: OTP-6763
- inline failed because tring to use a removed module.
  Own Id: OTP-6769
- Fixed problem with a reference to a type from an object. The failure was caused bye change of type name when using inline option.
  Own Id: OTP-6770
- Handling of decode pattern for exclusive decode was false in the case when an undecoded component had more than one following elements that should be decoded.
  Own Id: OTP-6786

#### 1.7.2 Improvements and New Features

- Now the asn1-compiler supports two root lists in SEQUENCE and SET according to alternative three in ComponentTypeLists (X.680 07/2002 section 24.1), i.e. with an extension list between two ellipses.
  Own Id: OTP-5067 Aux Id: seq8452

### 1.8 Asn1 1.4.5

#### 1.8.1 Fixed Bugs and Malfunctions

- Merging modules by inline earlier disabled the driver (used in modules generated with [ptimized]/[optimized,driver] options). Now this is repaired.
  Own Id: OTP-6601
- Checking phase now aware of which module an INSTANCE OF is declared in.
  Own Id: OTP-6702

#### 1.8.2 Improvements and New Features

- The compiler now handle all forms of ObjectSetSpec according to ITU-T recommendation X.681 (ISO/IEC 8824-2:2002).
  Own Id: OTP-6698
- Enhanced support of referencing object sets by ObjectSetFromObjects.
  Own Id: OTP-6707
- Support for parameterized object in an object set.
  Own Id: OTP-6717

### 1.9 Asn1 1.4.4.14

#### 1.9.1 Improvements and New Features

- 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.
  Own Id: OTP-6462
- Dialyzer warnings on asn1 are removed, i.e. dead code removed.
  Own Id: OTP-6506

### 1.10 Asn1 1.4.4.13

#### 1.10.1 Improvements and New Features

- Now it is possible to use 'asn1config' and 'inline' options together. It is also possible to use 'inline' on a single file like: asn1ct:compile("MyASN1spec.asn",[inline]).
  Own Id: OTP-6405

### 1.11 Asn1 1.4.4.12

#### 1.11.1 Improvements and New Features

- As a complement to the option "{inline,OutputFile}" it is now possible to use the option "inline". Then asn1 creats an output file with the name of the source .set file.
  Own Id: OTP-6314

### 1.12 Asn1 1.4.4.11

#### 1.12.1 Fixed Bugs and Malfunctions

- When copiling 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 behaviour from a brutal exit to a warning.
  Own Id: OTP-6143

### 1.13 Asn1 1.4.4.10

#### 1.13.1 Fixed Bugs and Malfunctions

- asn1 encoding failed on BIT STRING with constraint (SIZE (32..MAX)).
  Own Id: OTP-5932
- Race condition removed in server for variable names for generated code.
  Own Id: OTP-6111

### 1.14 Asn1 1.4.4.9

#### 1.14.1 Fixed Bugs and Malfunctions

- 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.
  Own Id: OTP-5783
- ASN1-compiler faild 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.
  Own Id: OTP-5812 Aux Id: seq10133
- 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.
  Own Id: OTP-5831 Aux Id: seq10133
- The compiler failed to give right name to record/function of a parametrized type that was referenced through another instance of a parameterized type in another module. The fault occured when modules were compiled in a certain order. Now the compiler resolves the name correctly.
  Own Id: OTP-5832 Aux Id: seq10133

### 1.15 Asn1 1.4.4.8

#### 1.15.1 Fixed Bugs and Malfunctions

- 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.
  Own Id: OTP-5687
- Bad code was generated for an INTEGER with valuerange. If the value that was encoded had a lower bound with negative value it caused a crash. This bug is now removed.
  Own Id: OTP-5688 Aux Id: seq10049
- Compiler now handles wrong include paths by returning an error if a referenced module is not available.
  Own Id: OTP-5689
- The bug causing a runtime error when encoding a type defined by: BIT STRING {a(1),b(2)} with the value [] in per_bin mode is now removed.
  Own Id: OTP-5710 Aux Id: seq10066

#### 1.15.2 Improvements and New Features

- Better handling of filename paths
  Own Id: OTP-5701

### 1.16 Asn1 1.4.4.7

#### 1.16.1 Fixed Bugs and Malfunctions

- Effective constraint for per now corrected. For instance INTEGER (0|15..269) didn't work properly.
  Own Id: OTP-5477 Aux Id: OTP-5511
- Adjusted compiler so that functions in generated code only are exported once.
  Own Id: OTP-5509
- 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.
  Own Id: OTP-5511 Aux Id: OTP-5466
- Removed sorting of elements for SEQUENCE OF. It shall only be done in SET OF.
  Own Id: OTP-5602
- Corrected code that generated code causing badarith warning.
  Own Id: OTP-5616

### 1.17 Asn1 1.4.4.6

#### 1.17.1 Known Bugs and Problems

- 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.
  Own Id: OTP-5457
- Additional coverage of object set syntax.
  Own Id: OTP-5466

### 1.18 Asn1 1.4.4.5

#### 1.18.1 Fixed Bugs and Malfunctions

- A bug due to representation of open_type values is now fixed. It could cause problem if one used the EXTERNAL type.
  Own Id: OTP-5302
- Due to an internal error the same code could have been generated more than one time. This happened for the exclusive deocode functionality.
  Own Id: OTP-5378

### 1.19 Asn1 1.4.4.4

#### 1.19.1 Fixed Bugs and Malfunctions

- 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.
  Own Id: OTP-5240

#### 1.19.2 Improvements and New Features

- 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.
  Own Id: OTP-5243

### 1.20 Asn1 1.4.4.3

#### 1.20.1 Fixed errors and malfunctions

- A class that was referenced in two steps caused a compiler failure. It is now corrected.
  Own Id: OTP-5103

#### 1.20.2 Improvements and new features

- Optionally make it possible to get the undecoded rest along with the return value. Compile with option undec_rest.
  Own Id: OTP-5104

### 1.21 Asn1 1.4.4.2

#### 1.21.1 Fixed errors and malfunctions

- An error due to unchecked referenced imported type resulted in missing tag in some table constraint cases. This error is now corrected. Error occured during decode in ber_bin optimized version.
  Own Id: OTP-5022

### 1.22 Asn1 1.4.4.1

#### 1.22.1 Fixed errors and malfunctions

- When a referenced value in another module in turn referenced a defined value the compilation crashed. This is due to the new rutines for compilation, that external referencies are resolved during compilation, and not by the order in which modules are compiled. This error is now corrected.
  Own Id: OTP-4970

### 1.23 Asn1 1.4.4

#### 1.23.1 Fixed errors and malfunctions

- Functionality for parameterized class is added. Parsing failures on WithSyntax spec is corrected.
  Own Id: OTP-4893
- The failure due to Parameterized Type when parameter is an object set is corrected.
  Own Id: OTP-4894
  Aux Id: OTP-4893
- Object Identifier values with two components and teh first was a value reference failed due to parsing conflicts. Now it is corrected.
  Own Id: OTP-4895
- The errorounus 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.
  Own Id: OTP-4944
  Aux Id: seq8429
- 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.
  Own Id: OTP-4953
  Aux Id: seq8436
- The test interface asn1ct:test/1,2,3 and asn1ct:value/2 failed for open type and EXTERNAL. The bug is now removed.
  Own Id: OTP-4955
  Aux Id: seq8438)
- 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.
  Own Id: OTP-4957
  Aux Id: seq8434

#### 1.23.2 Improvements and new features

- INTEGER with named number list and ENUMERATED can now be sub constrained with names from the names list.
  Own Id: OTP-4917
- Now there is support for SelectionType (X 680 section 29)
  Own Id: OTP-4918
- The compiler now resolves circular dependencies. When asn1 specs IMPORTS from each other so that there are circular dependencies.
  Own Id: OTP-4919
- Now is the asn1 type UTF8String supported. For user instructions see documentation.
  Own Id: OTP-4965

There are also release notes for older versions.

asn1 1.6.2
Copyright © 1991-2008 Ericsson AB