From e5c71b7f176393cdb3f6b9d17a5969e9bd89c88b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?=
Date: Thu, 20 Feb 2014 14:29:57 +0100
Subject: Deprecate asn1 functions
Those asn1 functions are no longer needed because they all have
better alternatives.
---
lib/asn1/src/asn1ct.erl | 4 ++++
lib/asn1/src/asn1ct_value.erl | 1 +
lib/asn1/src/asn1rt.erl | 3 +--
3 files changed, 6 insertions(+), 2 deletions(-)
(limited to 'lib/asn1')
diff --git a/lib/asn1/src/asn1ct.erl b/lib/asn1/src/asn1ct.erl
index 30f493a2df..9ec43197bf 100644
--- a/lib/asn1/src/asn1ct.erl
+++ b/lib/asn1/src/asn1ct.erl
@@ -19,6 +19,10 @@
%%
%%
-module(asn1ct).
+-deprecated([decode/3,encode/3]).
+-compile([{nowarn_deprecated_function,{asn1rt,decode,3}},
+ {nowarn_deprecated_function,{asn1rt,encode,2}},
+ {nowarn_deprecated_function,{asn1rt,encode,3}}]).
%% Compile Time functions for ASN.1 (e.g ASN.1 compiler).
diff --git a/lib/asn1/src/asn1ct_value.erl b/lib/asn1/src/asn1ct_value.erl
index be8b967cf0..221cd991a7 100644
--- a/lib/asn1/src/asn1ct_value.erl
+++ b/lib/asn1/src/asn1ct_value.erl
@@ -18,6 +18,7 @@
%%
%%
-module(asn1ct_value).
+-compile([{nowarn_deprecated_function,{asn1rt,utf8_list_to_binary,1}}]).
%% Generate Erlang values for ASN.1 types.
%% The value is randomized within it's constraints
diff --git a/lib/asn1/src/asn1rt.erl b/lib/asn1/src/asn1rt.erl
index d18f81346a..ad8b879c38 100644
--- a/lib/asn1/src/asn1rt.erl
+++ b/lib/asn1/src/asn1rt.erl
@@ -18,14 +18,13 @@
%%
%%
-module(asn1rt).
+-deprecated(module).
%% Runtime functions for ASN.1 (i.e encode, decode)
-export([encode/2,encode/3,decode/3,load_driver/0,unload_driver/0,info/1]).
-export([utf8_binary_to_list/1,utf8_list_to_binary/1]).
-
--deprecated([load_driver/0,unload_driver/0]).
encode(Module,{Type,Term}) ->
encode(Module,Type,Term).
--
cgit v1.2.3
From 1bdb47b00faff39994a041c6d9a291a2c68143d9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?=
Date: Thu, 20 Feb 2014 16:09:35 +0100
Subject: Remove or de-emphasize references to the deprecated asn1rt module
---
lib/asn1/doc/src/asn1_ug.xml | 50 ++++++++++++--------------------------------
lib/asn1/doc/src/asn1ct.xml | 6 +++++-
lib/asn1/doc/src/asn1rt.xml | 30 ++++++++++++++------------
3 files changed, 35 insertions(+), 51 deletions(-)
(limited to 'lib/asn1')
diff --git a/lib/asn1/doc/src/asn1_ug.xml b/lib/asn1/doc/src/asn1_ug.xml
index eb9f000e75..ee54fdffd7 100644
--- a/lib/asn1/doc/src/asn1_ug.xml
+++ b/lib/asn1/doc/src/asn1_ug.xml
@@ -205,16 +205,13 @@ ok
is saved in the People.asn1db file, the
generated Erlang code is compiled using the Erlang compiler and
loaded into the Erlang runtime system. Now there is a user interface
- of encode/2 and decode/2 in the module People, which is invoked by:
+ for encode/2 and decode/2 in the module People,
+ which is invoked by:
,),]]>
or
-,),]]>
-
- Alternatively one can use the ,,)]]> and ,,)]]> calls.
- However, they are not as efficient as the previous methods since they
- result in an additional apply/3 call.
+,),]]>
Assume there is a network
application which receives instances of the ASN.1 defined
type Person, modifies and sends them back again:
@@ -241,16 +238,14 @@ receive
encoding-rules.
The encoder and the decoder can also be run from
- the shell. The following dialogue with the shell illustrates
- how the functions
- asn1rt:encode/3 and asn1rt:decode/3 are used.
+ the shell.
@@ -279,11 +274,8 @@ The encoder and the decoder can also be run from
(including the compiler).
-
The module asn1rt which provides the run-time functions.
- However, it is preferable to use the generated encode/2 and
- decode/2 functions in each module, ie.
- Module:encode(Type,Value), in favor of the asn1rt
- interface.
+
The module asn1rt_nif which provides the run-time functions
+ for the ASN.1 decoder for the BER back-end.
The reason for the division of the interface into compile-time
@@ -384,25 +376,9 @@ asn1ct:decode('H323-MESSAGES','SomeChoiceType',Bytes).
Run-time Functions
-
A brief description of the major functions is given here. For a
- complete description of each function see
- the Asn1 Reference Manual, the asn1rt module.
-
The generic run-time encode and decode functions can be invoked as below:
The asn1 nif is enabled in two occasions: encoding of
- asn1 values when the asn1 spec is compiled with per and
- or decode of encoded asn1 values when the asn1 spec is
- compiled with ber. In
- those cases the nif will be loaded automatically at the first call
- to encode/decode. If one doesn't want the performance
- overhead of the nif being loaded at the first call it is possible
- to load the nif separately by loading the asn1rt_nif module.
+
When an ASN.1 specification is compiled with the ber
+ option, the module asn1rt_nif module and the NIF library in
+ asn1/priv_dir will be needed at run-time.
By invoking the function info/0 in a generated module, one
gets information about which compiler options were used.
@@ -414,8 +390,8 @@ asn1rt:decode('H323-MESSAGES','SomeChoiceType',Bytes).
a line number indicating where in the source file the error
was detected. If no errors are found, an Erlang ASN.1 module will
be created as default.
-
The run-time encoders and decoders (in the asn1rt module) do
- execute within a catch and returns {ok, Data} or
+
The run-time encoders and decoders execute within a catch and
+ returns {ok, Data} or
{error, {asn1, Description}} where
Description is
an Erlang term describing the error.
diff --git a/lib/asn1/doc/src/asn1ct.xml b/lib/asn1/doc/src/asn1ct.xml
index 5871c8ad68..4d5a1a402a 100644
--- a/lib/asn1/doc/src/asn1ct.xml
+++ b/lib/asn1/doc/src/asn1ct.xml
@@ -61,7 +61,7 @@
and uper_bin options will still work, but will print a warning.
Another change in R16 is that the generated encode/2
- function (and asn1rt:encode/3) always returns a binary.
+ function always returns a binary.
The encode/2 function for the BER back-end used to return
an iolist.
@@ -326,6 +326,8 @@ File3.asn
not always checked. Returns {ok, Bytes} if successful or
{error, Reason} if an error occurred.
+
This function is deprecated.
+ Use Module:encode(Type, Value) instead.
@@ -339,6 +341,8 @@ File3.asn
Decodes Type from Module from the binary
Bytes. Returns {ok, Value} if successful.
+
This function is deprecated.
+ Use Module:decode(Type, Bytes) instead.
diff --git a/lib/asn1/doc/src/asn1rt.xml b/lib/asn1/doc/src/asn1rt.xml
index 6e22e45d93..3cf56b01ca 100644
--- a/lib/asn1/doc/src/asn1rt.xml
+++ b/lib/asn1/doc/src/asn1rt.xml
@@ -34,9 +34,12 @@
asn1rtASN.1 runtime support functions
-
This module is the interface module for the ASN.1 runtime support functions.
- To encode and decode ASN.1 types in runtime the functions in this module
- should be used.
+
+
+ All functions in this module are deprecated and will be
+ removed in a future release.
+
+
@@ -52,6 +55,7 @@
Decodes Type from Module from the binary Bytes.
Returns {ok,Value} if successful.
+
Use Module:decode(Type, Bytes) instead of this function.
@@ -65,16 +69,13 @@
Reason = term()
-
Encodes Value of Type defined in the ASN.1 module
- Module. Returns a possibly nested list of bytes and or binaries
- if successful. To get as fast execution as possible the
- encode function only performs rudimentary tests that the input
- Value
- is a correct instance of Type. The length of strings is for example
- not always checked.
-
-
Starting in R16, Bytes is always a binary.
-
+
Encodes Value of Type defined in the ASN.1
+ module Module. Returns a binary if successful. To get
+ as fast execution as possible the encode function only
+ performs rudimentary tests that the input Value is a
+ correct instance of Type. The length of strings is, for
+ example, not always checked.
+
Use Module:encode(Type, Value) instead of this function.
@@ -90,6 +91,7 @@
info/1 returns the version of the asn1 compiler that was
used to compile the module. It also returns the compiler options
that was used.
+
Use Module:info() instead of this function.
@@ -106,6 +108,7 @@
to a list of integers, where each integer represents one
character as its unicode value. The function fails if the binary
is not a properly encoded UTF8 string.
+
Use unicode:characters_to_list/1 instead of this function.
@@ -121,6 +124,7 @@
utf8_list_to_binary/1 Transforms a list of integers,
where each integer represents one character as its unicode
value, to a UTF8 encoded binary.
+
Use unicode:characters_to_binary/1 instead of this function.