aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1/doc/src/notes.xml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/asn1/doc/src/notes.xml')
-rw-r--r--lib/asn1/doc/src/notes.xml584
1 files changed, 568 insertions, 16 deletions
diff --git a/lib/asn1/doc/src/notes.xml b/lib/asn1/doc/src/notes.xml
index 5cd7a1c4b8..499a7e40c3 100644
--- a/lib/asn1/doc/src/notes.xml
+++ b/lib/asn1/doc/src/notes.xml
@@ -1,23 +1,24 @@
-<?xml version="1.0" encoding="latin1" ?>
+<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE chapter SYSTEM "chapter.dtd">
<chapter>
<header>
<copyright>
- <year>2004</year><year>2012</year>
+ <year>2004</year><year>2016</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/.
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
- 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.
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
</legalnotice>
@@ -31,7 +32,366 @@
<p>This document describes the changes made to the asn1 application.</p>
-<section><title>Asn1 1.8.1.2</title>
+<section><title>Asn1 4.0.4</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ Compiling multiple ASN.1 modules in the same directory
+ with parallel make (make -j) should now be safe.</p>
+ <p>
+ Own Id: OTP-13624</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Asn1 4.0.3</title>
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>
+ Internal changes</p>
+ <p>
+ Own Id: OTP-13551</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Asn1 4.0.2</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ When compiling to the PER format, the ASN.1 compiler
+ would crash when attempting to compile an ASN.1 module
+ with a constrained INTEGER with more than 65536 values
+ and named values. (Thanks to Ingars for reporting this
+ bug.)</p>
+ <p>
+ Own Id: OTP-13257</p>
+ </item>
+ <item>
+ <p>The ASN.1 compiler will now emit Dialyzer suppressions
+ for improper lists. Thus, there is no longer any need to
+ use <c>--Wno_improper_lists</c> when analyzing modules
+ generated by the ASN.1 compiler.</p>
+ <p>
+ Own Id: OTP-13324</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Asn1 4.0.1</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ Trying to encode an empty named BIT STRING in BER would
+ fail with a <c>function_clause</c> exception. (Thanks to
+ Svilen Ivanov for reporting this bug.)</p>
+ <p>
+ Own Id: OTP-13149</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Asn1 4.0</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ Many bugs have been eliminated in the the ASN.1 compiler
+ so that it can now successfully compile many more ASN.1
+ specifications. Error messages have also been improved.</p>
+ <p>
+ Own Id: OTP-12395</p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>The documentation for <c>asn1ct:test/1,2,3</c> and
+ <c>asn1ct:value/2</c> has been updated with information
+ about the limitations of the functions.</p>
+ <p>
+ Own Id: OTP-12765 Aux Id: seq12866, seq12867 </p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Asn1 3.0.4</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>The ASN.1 compiler would crash if a SEQUENCE ended
+ with a double set of ellipses (<c>...</c>).</p>
+ <p>
+ Own Id: OTP-12546 Aux Id: seq12815 </p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Asn1 3.0.3</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ When decoding BER, primitives with an indefinite length
+ will be immediately rejected. (Thanks to Simon Cornish
+ for reporting this bug.)</p>
+ <p>
+ Own Id: OTP-12205</p>
+ </item>
+ <item>
+ <p>
+ BER: A bug with compliance to X.680 (200811) s31.2.7 has
+ been fixed. Basically, when TagDefault is AUTOMATIC then
+ tags are IMPLICIT unless EXPLICIT is given.</p>
+ <p>
+ Own Id: OTP-12318</p>
+ </item>
+ <item>
+ <p>
+ Usage of the <c>EXTERNAL</c> 1994 variant type was
+ broken.</p>
+ <p>
+ Own Id: OTP-12326</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Asn1 3.0.2</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ Several problems where the ASN.1 compiler would crash
+ when attempting to compile correct specifications have
+ been corrected.</p>
+ <p>
+ Own Id: OTP-12125</p>
+ </item>
+ <item>
+ <p>
+ Robustness when decoding incorrect BER messages has been
+ improved.</p>
+ <p>
+ Own Id: OTP-12145</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Asn1 3.0.1</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ The ASN.1 compiler now generates code that don't trigger
+ Dialyzer warnings. Along the way, a few minor bugs were
+ fixed.</p>
+ <p>
+ Own Id: OTP-11372 Aux Id: seq12397 </p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Asn1 3.0</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ Subtyping an extensible ENUMERATED would cause an
+ compilation error. (Thanks to Morten Nygaard Åsnes for
+ reporting this bug.)</p>
+ <p>
+ Own Id: OTP-11700</p>
+ </item>
+ <item>
+ <p>When specifying the value for an OCTET STRING in a
+ specification, the ASN.1 standard clearly states that the
+ value must be either a bstring or an hstring, but NOT a
+ cstring. The ASN.1 compiler will now generate a
+ compilation error if the value of an OCTET STRING is
+ given as a character string.</p>
+ <p>That is, the following example is now illegal:</p>
+ <p><c>string OCTET STRING ::= "Now illegal"</c></p>
+ <p>
+ *** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>
+ Own Id: OTP-11727</p>
+ </item>
+ <item>
+ <p>
+ Application upgrade (appup) files are corrected for the
+ following applications: </p>
+ <p>
+ <c>asn1, common_test, compiler, crypto, debugger,
+ dialyzer, edoc, eldap, erl_docgen, et, eunit, gs, hipe,
+ inets, observer, odbc, os_mon, otp_mibs, parsetools,
+ percept, public_key, reltool, runtime_tools, ssh,
+ syntax_tools, test_server, tools, typer, webtool, wx,
+ xmerl</c></p>
+ <p>
+ A new test utility for testing appup files is added to
+ test_server. This is now used by most applications in
+ OTP.</p>
+ <p>
+ (Thanks to Tobias Schlager)</p>
+ <p>
+ Own Id: OTP-11744</p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>
+ By giving --enable-static-{nifs,drivers} to configure it
+ is now possible to statically linking of nifs and drivers
+ to the main Erlang VM binary. At the moment only the asn1
+ and crypto nifs of the Erlang/OTP nifs and drivers have
+ been prepared to be statically linked. For more details
+ see the Installation Guide in the System documentation.</p>
+ <p>
+ Own Id: OTP-11258</p>
+ </item>
+ <item>
+ <p>Code generation for the <c>per</c> and <c>uper</c>
+ backends has been somewhat improved.</p>
+ <p>
+ Own Id: OTP-11573</p>
+ </item>
+ <item>
+ <p>The OCTET STRING and BIT STRING types now have a more
+ natural mapping to Erlang types (binary and bitstring,
+ respectively), which is more efficient and will avoid
+ useless conversions between lists and
+ binaries/bitstrings.</p>
+ <p>This is an incompatible change. To revert to the old
+ mapping to support existing applications, use the
+ <c>legacy_erlang_types</c> option.</p>
+ <p>Impact: There is a potential for better performance,
+ as it is now possible to avoid conversions between lists
+ and binaries both in the generated ASN.1 encode/decode
+ code and in the application itself.</p>
+ <p>
+ *** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>
+ Own Id: OTP-11594</p>
+ </item>
+ <item>
+ <p>All functions in the <c>asn1rt</c> module, as well as
+ <c>asn1ct:decode/3</c> and <c>asn1ct:encode/3</c>, are
+ now deprecated.</p>
+ <p>
+ Own Id: OTP-11731</p>
+ </item>
+ <item>
+ <p>
+ Generated .hrl files are now protected from being
+ included more than once.</p>
+ <p>
+ Own Id: OTP-11804</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Asn1 2.0.4</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ The default value for a <c>BIT STRING</c> would not
+ always be recognized, causing the encoding to be
+ incorrect for the DER/PER/UPER encodings.</p>
+ <p>
+ Own Id: OTP-11319</p>
+ </item>
+ <item>
+ <p>
+ The ASN.1 application would fail to build if the
+ <c>.erlang</c> file printed something to standard output.</p>
+ <p>
+ Own Id: OTP-11360</p>
+ </item>
+ <item>
+ <p>An union of integer ranges in an INTEGER constraint
+ could sometimes be interpreted as the intersection of the
+ range.</p>
+ <p>
+ Own Id: OTP-11411 Aux Id: seq12443 </p>
+ </item>
+ <item>
+ <p>
+ Extensible, multiple single value constraints (such as
+ <c>INTEGER (1|17, ...)</c>) would be incorrectly encoded.</p>
+ <p>
+ Own Id: OTP-11415</p>
+ </item>
+ <item>
+ <p>
+ The ASN.1 compiler would fail to compile a constraint
+ with values given for for the extension part (such as
+ <c>INTEGER (1..10, ..., 11..20)</c>).</p>
+ <p>
+ Own Id: OTP-11504</p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>
+ The new option '<c>no_ok_wrapper</c>' generates
+ M:encode/2 and M:decode/2 functions that don't wrap the
+ return value in an {ok,...} tuple.</p>
+ <p>
+ Own Id: OTP-11314</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Asn1 2.0.3</title>
<section><title>Fixed Bugs and Malfunctions</title>
<list>
@@ -40,14 +400,102 @@
Open types greater than 16383 bytes will now be correctly
encoded and decoded.</p>
<p>
- Own Id: OTP-11223 Aux Id: seq12386 </p>
+ Own Id: OTP-11262 Aux Id: seq12386, OTP-11223 </p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>For the PER and UPER formats, code generation
+ especially for encoding has been improved.</p>
+ <p>When encoding BIT STRINGs, values longer than the
+ maximum size for the BIT STRING type would be truncated
+ silently - they now cause an exception.</p>
+ <p>Open types greater than 16383 bytes will now be
+ correctly encoded and decoded.</p>
+ <p>IMPORTANT NOTE: For ASN.1 specifications that depend
+ on each other, such as the S1AP-* specifications, it is
+ important to recompile all specifications (compiling some
+ with this version of the compiler and some with an older
+ version will not work).</p>
+ <p>
+ Own Id: OTP-11300</p>
</item>
</list>
</section>
</section>
-<section><title>Asn1 1.8.1.1</title>
+<section><title>Asn1 2.0.2</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ Fix some Makefile rules that didn't support silent rules.
+ Thanks to Anthony Ramine.</p>
+ <p>
+ Own Id: OTP-11111</p>
+ </item>
+ <item>
+ <p>PER/UPER: A semi-constrained INTEGER with a non-zero
+ lower bound would be incorrectly decoded. This bug was
+ introduced in R16.</p>
+ <p>PER/UPER: Given <c>INTEGER (10..MAX, ...)</c>,
+ attempting to decode any integer below 10 would cause the
+ encoder to enter an infinite loop.</p>
+ <p>PER/UPER: For a type with an extensible SIZE
+ constraint, sizes outside of the root range were
+ incorrectly encoded.</p>
+ <p>Given a constraint such as <c>(SIZE (5, ...))</c>,
+ encoding a size less than 5 would fail (PER/UPER).
+ Similarly, for BER decoding would fail.</p>
+ <p>PER: The encoder did not align a known multiplier
+ string (such as IA5String) of length 16 bits (exactly) to
+ an octet boundary.</p>
+ <p>In rare circumstances, DEFAULT values for the UPER
+ backend could be wrongly encoded.</p>
+ <p>
+ Own Id: OTP-11134</p>
+ </item>
+ <item>
+ <p>UPER: The compiler would crash when compiling an
+ ENUMERATED having more than 63 extended values.</p>
+ <p>PER/UPER: A SEQUENCE with more 64 extended values
+ could not be decoded.</p>
+ <p>
+ Own Id: OTP-11153</p>
+ </item>
+ <item>
+ <p>
+ When decoding a SEQUENCE defined inline inside a an
+ extension addition group, the record named generated by
+ the decoding code would not match the name in the
+ generated .hrl file.</p>
+ <p>
+ Own Id: OTP-11154 Aux Id: seq12339 </p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p> Postscript files no longer needed for the generation
+ of PDF files have been removed. </p>
+ <p>
+ Own Id: OTP-11016</p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Asn1 2.0.1.2</title>
<section><title>Fixed Bugs and Malfunctions</title>
<list>
@@ -64,6 +512,110 @@
</section>
+<section><title>Asn1 2.0.1.1</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>The generated decoder for the 'per' and 'uper'
+ backends did not correctly decode ENUMERATEDs with a
+ single value.</p>
+ <p>The generated encoder for the 'per' and 'uper'
+ backends generated an empty binary for a top-level type
+ that did not need to be encoded (such as an ENUMERATED
+ with a single value). The correct result should be a
+ binary containing a 0 byte.</p>
+ <p>
+ Own Id: OTP-10916 Aux Id: seq12270 </p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Asn1 2.0.1</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ Fixed broken table constraints within a SET OF or
+ SEQUENCE OF for the BER backend.</p>
+ <p>
+ Own Id: OTP-10853 Aux Id: seq12245 </p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
+<section><title>Asn1 2.0</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ Encoding SEQUENCEs with multiple extension addition
+ groups with optional values could fail (depending both on
+ the specification and whether all values were provided).</p>
+ <p>
+ Own Id: OTP-10664</p>
+ </item>
+ </list>
+ </section>
+
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>The options for the ASN.1 compiler has been
+ drastically simplified. The backend is chosen by using
+ <c>ber</c>, <c>per</c>, or <c>uper</c>. The options
+ <c>optimize</c>, <c>nif</c>, and <c>driver</c> are no
+ longer needed. The old options will still work, but will
+ issue a warning.</p>
+ <p>Another change is that generated <c>encode/2</c>
+ function will always return a binary (some backends used
+ to return an iolist).</p>
+ <p>
+ *** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>
+ Own Id: OTP-10410 Aux Id: kunagi-254 [165] </p>
+ </item>
+ <item>
+ <p>
+ The ASN.1 compiler generates faster decode functions for
+ PER and UPER. Some minor improvements have also been made
+ for PER/UPER encoding, and to the BER backend.</p>
+ <p>
+ Own Id: OTP-10519 Aux Id: kunagi-322 [233] </p>
+ </item>
+ <item>
+ <p>The ASN.1 compiler will now always include necessary
+ run-time functions in the generated Erlang modules
+ (except for <c>asn1rt_nif</c> which is still neeeded). If
+ the option '<c>inline</c>' is used the ASN.1 compiler
+ will generate a warning. But if
+ '<c>{inline,OutputFile}</c>' is use, the ASN.1 compiler
+ will refuse to compile the file. (Use a <c>.set.asn</c>
+ file if you need to remove the output file.)</p>
+ <p>The '<c>BIT STRING</c>' type will now be decoded as
+ Erlang bitstrings by default. Use the new
+ <c>legacy_bit_string</c> option to encode as lists of
+ ones and zeroes. (The <c>compact_bit_string</c> option
+ still works as before.)</p>
+ <p>Open types are now always returned as binaries (when
+ there is no information allowing them to be decoded).</p>
+ <p>
+ *** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>
+ Own Id: OTP-10588 Aux Id: kunagi-341 [252] </p>
+ </item>
+ </list>
+ </section>
+
+</section>
+
<section><title>Asn1 1.8.1</title>
<section><title>Fixed Bugs and Malfunctions</title>
@@ -461,7 +1013,7 @@
also been extended. </item><item> The <c>configure</c>
scripts of <c>erl_interface</c> and <c>odbc</c> now
search for thread libraries and thread library quirks the
- same way as <c>erts</c> do. </item><item> The
+ same way as ERTS do. </item><item> The
<c>configure</c> script of the <c>odbc</c> application
now also looks for odbc libraries in <c>lib64</c> and
<c>lib/64</c> directories when building on a 64-bit
@@ -545,7 +1097,7 @@
ENUMERATION type, the compilation will be terminated with an
error code.<br/>
Below follows an example on how to use the option from the command line with <c>erlc</c>:<br/>
- <c>erlc -bper_bin +optimize +driver +"{n2n,'CauseMisc'}" +"{n2n,'CausePcl'}" MyModyle.asn</c>
+ <c>erlc -bper+"{n2n,'CauseMisc'}" +"{n2n,'CausePcl'}" MyModyle.asn</c>
</p>
<p>
Own Id: OTP-8136 Aux Id: seq11347 </p>