diff options
Diffstat (limited to 'lib/ic/doc/src')
-rw-r--r-- | lib/ic/doc/src/c-part.xml | 28 | ||||
-rw-r--r-- | lib/ic/doc/src/ch_c_corba_env.xml | 2 | ||||
-rw-r--r-- | lib/ic/doc/src/ch_c_mapping.xml | 24 | ||||
-rw-r--r-- | lib/ic/doc/src/ch_erl_genserv.xml | 12 | ||||
-rw-r--r-- | lib/ic/doc/src/ch_erl_plain.xml | 2 | ||||
-rw-r--r-- | lib/ic/doc/src/ch_ic_protocol.xml | 36 | ||||
-rw-r--r-- | lib/ic/doc/src/ch_java.xml | 8 | ||||
-rw-r--r-- | lib/ic/doc/src/erl-part.xml | 28 | ||||
-rw-r--r-- | lib/ic/doc/src/ic_c_protocol.xml | 28 | ||||
-rw-r--r-- | lib/ic/doc/src/java-part.xml | 28 | ||||
-rw-r--r-- | lib/ic/doc/src/old_notes.xml | 1565 |
11 files changed, 94 insertions, 1667 deletions
diff --git a/lib/ic/doc/src/c-part.xml b/lib/ic/doc/src/c-part.xml index 91c81c8ef3..cef4399960 100644 --- a/lib/ic/doc/src/c-part.xml +++ b/lib/ic/doc/src/c-part.xml @@ -4,23 +4,21 @@ <part> <header> <copyright> - <year>2002</year> - <year>2007</year> - <holder>Ericsson AB, All Rights Reserved</holder> + <year>2002</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. - - The Initial Developer of the Original Code is Ericsson AB. + 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>IDL to C language Mapping</title> diff --git a/lib/ic/doc/src/ch_c_corba_env.xml b/lib/ic/doc/src/ch_c_corba_env.xml index 557eeffdd4..bd4b52ca34 100644 --- a/lib/ic/doc/src/ch_c_corba_env.xml +++ b/lib/ic/doc/src/ch_c_corba_env.xml @@ -281,7 +281,7 @@ typedef struct { <p>By using the <em>CORBA_Environment_alloc</em>/2 function. </p> <p>The CORBA_Environment_alloc function is defined as:</p> <code type="none"> -\\011 CORBA_Environment *CORBA_Environment_alloc(int inbufsz, + CORBA_Environment *CORBA_Environment_alloc(int inbufsz, int outbufsz); </code> <p>where:</p> diff --git a/lib/ic/doc/src/ch_c_mapping.xml b/lib/ic/doc/src/ch_c_mapping.xml index 58b026ee78..f5a921bfd2 100644 --- a/lib/ic/doc/src/ch_c_mapping.xml +++ b/lib/ic/doc/src/ch_c_mapping.xml @@ -770,24 +770,24 @@ CORBA_Environment* oe_env) <p>While the <c>erlang::binary</c> idl type has the same C-definition as a generated sequence of octets :</p> <code type="none"><![CDATA[ -\011 module erlang -\011 { + module erlang + { -\011 .... + .... -\011 // an erlang binary -\011 typedef sequence<octet> binary; -\011 -\011 }; + // an erlang binary + typedef sequence<octet> binary; + + }; ]]></code> <p>it provides a way on sending trasparent data between C and Erlang.</p> <p>The C-definition (ic.h) for an erlang binary is :</p> <code type="none"> -\011 typedef struct { -\011 CORBA_unsigned_long _maximum; -\011 CORBA_unsigned_long _length; -\011 CORBA_octet* _buffer; -\011 } erlang_binary; /* ERLANG BINARY */ + typedef struct { + CORBA_unsigned_long _maximum; + CORBA_unsigned_long _length; + CORBA_octet* _buffer; + } erlang_binary; /* ERLANG BINARY */ </code> <p>The differences (between <c>erlang::binary</c> and <c><![CDATA[sequence< octet >]]></c>) are :</p> <list type="bulleted"> diff --git a/lib/ic/doc/src/ch_erl_genserv.xml b/lib/ic/doc/src/ch_erl_genserv.xml index 972eff7c17..055b751ba1 100644 --- a/lib/ic/doc/src/ch_erl_genserv.xml +++ b/lib/ic/doc/src/ch_erl_genserv.xml @@ -168,18 +168,18 @@ handle_info(Info, State) -> %% IDL specification produce(State) -> case catch random:uniform() of -\\011{'EXIT',_} -> -\\011 {stop, normal, "random:uniform/0 - EXIT", State}; -\\011RUnif -> + {'EXIT',_} -> + {stop, normal, "random:uniform/0 - EXIT", State}; + RUnif -> {reply, RUnif, State} end. init(State, S1, S2, S3) -> case catch random:seed(S1, S2, S3) of -\\011{'EXIT',_} -> -\\011 {stop, normal, State}; -\\011_ -> + {'EXIT',_} -> + {stop, normal, State}; + _ -> {noreply, State} end. </code> diff --git a/lib/ic/doc/src/ch_erl_plain.xml b/lib/ic/doc/src/ch_erl_plain.xml index 36de46f624..1d6f84b5ea 100644 --- a/lib/ic/doc/src/ch_erl_plain.xml +++ b/lib/ic/doc/src/ch_erl_plain.xml @@ -75,7 +75,7 @@ <item> <p>Main file : "plain.idl"</p> <code type="none"> -\011 + module rmod { interface random { diff --git a/lib/ic/doc/src/ch_ic_protocol.xml b/lib/ic/doc/src/ch_ic_protocol.xml index 678fdc766c..68a01a6a46 100644 --- a/lib/ic/doc/src/ch_ic_protocol.xml +++ b/lib/ic/doc/src/ch_ic_protocol.xml @@ -69,9 +69,9 @@ <title>IDL Operations</title> <p>An IDL operation is declared as follows:</p> <code type="none"> -\011[oneway] RetType Op(in IType1 I1, in IType2 I2, ..., in ITypeN IN, -\011out OType1 O1, out OType2 O2, ..., out OTypeM OM) -\011N, M = 0, 1, 2, ...\011\011(2.1.1) + [oneway] RetType Op(in IType1 I1, in IType2 I2, ..., in ITypeN IN, + out OType1 O1, out OType2 O2, ..., out OTypeM OM) + N, M = 0, 1, 2, ... (2.1.1) </code> <p>`Op' is the operation name, RetType is the return type, and ITypei, i = 1, 2, ..., N, and OTypej, j = 1, 2, ..., M, are the `in' types @@ -146,13 +146,13 @@ <section> <title>Call (Request/Reply, i.e. not oneway)</title> <code type="none"> - request:\011\011 Op\011\011\011atom()\011\011N = 0\011 -\011\011\011 {Op, I1, I2, ..., IN}\011tuple()\011\011N > 0 -\011\011\011\011\011\011\011\011(3.1.1) + request: Op atom() N = 0 + {Op, I1, I2, ..., IN} tuple() N > 0 + (3.1.1) - reply:\011\011 Ret\011\011\011\011\011M = 0 -\011\011\011 {Ret, O1, O2, ..., OM}\011\011\011M > 0 -\011\011\011\011\011\011\011\011(3.1.2) </code> + reply: Ret M = 0 + {Ret, O1, O2, ..., OM} M > 0 + (3.1.2)</code> <p><em>Notice:</em> Even if the RetType of the operation Op is declared to be 'void', a return value 'ok' is returned in the reply message. That @@ -166,9 +166,9 @@ <title>Cast (oneway)</title> <code type="none"> - notification:\011Op\011\011\011atom()\011\011N = 0 -\011\011\011{Op, I1, I2, ..., IN}\011tuple()\011\011N > 0 -\011\011\011\011\011\011\011\011(3.2.1) </code> + notification: Op atom() N = 0 + {Op, I1, I2, ..., IN} tuple() N > 0 + (3.2.1)</code> <p>(There is of course no return message). </p> </section> @@ -184,9 +184,9 @@ <title>Call</title> <code type="none"> - request:\011{'$gen_call', {self(), Ref}, Request}\011\011(4.1.1) + request: {'$gen_call', {self(), Ref}, Request} (4.1.1) - reply:\011{Ref, Reply}\011\011\011\011\011(4.1.2) </code> + reply: {Ref, Reply} (4.1.2)</code> <p>where Request and Reply are the messages defined in the previous chapter. </p> @@ -195,7 +195,7 @@ <section> <title>Cast</title> <code type="none"> - notification: {'$gen_cast', Notification}\011\011(4.2.1) </code> + notification: {'$gen_cast', Notification} (4.2.1) </code> <p>where Notification is the message defined in the previous chapter. </p> </section> @@ -205,7 +205,7 @@ <title>Erlang Distribution Protocol</title> <p>Messages (of interest here) between Erlang nodes are of the form: </p> <code type="none"> - Len(4), Type(1), CtrlBin(N), MsgBin(M)\011\011\011(5.1) </code> + Len(4), Type(1), CtrlBin(N), MsgBin(M) (5.1) </code> <p>Type is equal to 112 = PASS_THROUGH. </p> <p>CtrlBin and MsgBin are Erlang terms in binary form (as if created @@ -215,10 +215,10 @@ <p>CtrlBin (of interest here) contains the SEND and REG_SEND control messages, which are binary forms of the Erlang terms</p> <code type="none"> -\011{2, Cookie, ToPid} ,\011\011\011\011\011(5.2) </code> + {2, Cookie, ToPid} , (5.2) </code> <p>and</p> <code type="none"> -\011{6, FromPid, Cookie, ToName} ,\011\011\011\011(5.3) </code> + {6, FromPid, Cookie, ToName} , (5.3) </code> <p>respectively. </p> <p>The CtrlBin(N) message is read and written by erl_interface code diff --git a/lib/ic/doc/src/ch_java.xml b/lib/ic/doc/src/ch_java.xml index 831850f211..a189daa44b 100644 --- a/lib/ic/doc/src/ch_java.xml +++ b/lib/ic/doc/src/ch_java.xml @@ -711,14 +711,14 @@ public class sHelper { // methods public static s unmarshal(OtpInputStream in) throws java.lang.Exception { -\011: -\011: + : + : }; public static void marshal(OtpOutputStream out, s value) throws java.lang.Exception { -\011: -\011: + : + : }; }; diff --git a/lib/ic/doc/src/erl-part.xml b/lib/ic/doc/src/erl-part.xml index b5041dce7f..8dd7001436 100644 --- a/lib/ic/doc/src/erl-part.xml +++ b/lib/ic/doc/src/erl-part.xml @@ -4,23 +4,21 @@ <part> <header> <copyright> - <year>2002</year> - <year>2007</year> - <holder>Ericsson AB, All Rights Reserved</holder> + <year>2002</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. - - The Initial Developer of the Original Code is Ericsson AB. + 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>IDL to Erlang language Mapping</title> diff --git a/lib/ic/doc/src/ic_c_protocol.xml b/lib/ic/doc/src/ic_c_protocol.xml index f895fe0723..26862addf9 100644 --- a/lib/ic/doc/src/ic_c_protocol.xml +++ b/lib/ic/doc/src/ic_c_protocol.xml @@ -4,23 +4,21 @@ <cref> <header> <copyright> - <year>2004</year> - <year>2007</year> - <holder>Ericsson AB, All Rights Reserved</holder> + <year>2004</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. - - The Initial Developer of the Original Code is Ericsson AB. + 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>IC C Protocol Functions</title> diff --git a/lib/ic/doc/src/java-part.xml b/lib/ic/doc/src/java-part.xml index 69cc0f026c..ab4049ee2a 100644 --- a/lib/ic/doc/src/java-part.xml +++ b/lib/ic/doc/src/java-part.xml @@ -4,23 +4,21 @@ <part> <header> <copyright> - <year>2002</year> - <year>2007</year> - <holder>Ericsson AB, All Rights Reserved</holder> + <year>2002</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. - - The Initial Developer of the Original Code is Ericsson AB. + 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>IDL to Java language Mapping</title> diff --git a/lib/ic/doc/src/old_notes.xml b/lib/ic/doc/src/old_notes.xml deleted file mode 100644 index 9ba0262573..0000000000 --- a/lib/ic/doc/src/old_notes.xml +++ /dev/null @@ -1,1565 +0,0 @@ -<?xml version="1.0" encoding="latin1" ?> -<!DOCTYPE chapter SYSTEM "chapter.dtd"> - -<chapter> - <header> - <copyright> - <year>2003</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>IDL Compiler Release Notes</title> - <prepared></prepared> - <docno></docno> - <checked></checked> - <date>2003-11-19</date> - <rev>AB</rev> - </header> - - <section> - <title>IC 4.1.8</title> - - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>IDL-files containing <c>result</c> or <c>Result</c> as, - for example, parameter name, caused an exit with reason - <c>bad_match</c>.</p> - <p>Own Id: OTP-4532</p> - </item> - <item> - <p>Uninitialized variables were used in <c>ic_init_ref</c> for - C backends. </p> - <p>Own Id: OTP-4537 <br></br> - - Aux Id: seq7666, ETOtr17107</p> - </item> - <item> - <p><c>CORBA_Environment_alloc()</c> left some fields - uninitialized in the returned pointer to an - <c>CORBA_Environment</c> for C backends.</p> - <p>Own Id: OTP-4538</p> - </item> - <item> - <p>The function <c>ic_compare_refs()</c> for C backends - could find two unequal references to be equal.</p> - <p>Own Id: OTP-4539</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 4.1.7</title> - - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>Operation names were always scoped in C server backend, - irrespective of the setting of the option - <c>scoped_op_calls</c>.</p> - <p>Own Id: OTP-4521 <br></br> - - Aux Id: seq7643, ETOtr16925</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 4.1.6</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>For C backends generated code checks that the - <c>_length</c> field of bounded sequences (i.e. specified - as <c><![CDATA[sequence <TYPE, MAX>]]></c>) does not exceed the - specified maximum length. If so, an exception is raised.</p> - <p>Own Id: OTP-4471</p> - </item> - </list> - </section> - - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>The <c>_maximum</c> field was not set for sequence structs - generated by the C backends.</p> - <p>Own Id: OTP-4471 <br></br> - - Aux Id: seq7600, ETOtr16308</p> - </item> - <item> - <p>There was a memory leak in C backends in case there was a - decoding error in a sequence with elements of basic type.</p> - <p>Own Id: OTP-4475</p> - </item> - <item> - <p>For for C backends, IDL structs defined within an - interface were not mapped into C structs in appropriate - include files.</p> - <p>Own Id: OTP-4481 <br></br> - - Aux Id: seq7617</p> - </item> - <item> - <p>If the user, incorrectly, trap exit's but did not use the - 'handle_info' compile option it would cause the server to - terminate. The same problem occurred if someone, - illegally, sent a message to the server. It could also - happen for illegal oneway operations.</p> - <p>Own Id: OTP-4488</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 4.1.5</title> - - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>Invalid C code was generated for type short. </p> - <p>Own Id: OTP-4450 <br></br> - - Aux Id: seq7582</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 4.1.4</title> - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>Operation functions inherited by an interface were not - placed in the map table in generated code for the C server - backend. As a result such functions were not found by the - switch function of the interface.</p> - <p>Own Id: OTP-4448 <br></br> - - Aux Id: seq7582</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 4.1.3.1</title> - - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>A non-ANSI compliant construct in libic.a was changed.</p> - <p>Own Id: -</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 4.1.3</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>For Erlang and C back-ends an IC version stamp has been - added to generated source code. This stamp i preserved in - compiled target code.</p> - </item> - <item> - <p>For C backends an <c>assert()</c> expression has been - added to generated code. That expression asserts that the - result of a memory allocation size calculation is strictly - positive. An error will result in a printout and an - <c>abort()</c>. The assertion can be inhibited by defining - the macro <c>NDEBUG</c> (according to ANSI C).</p> - <p>If the assertion is inhibited, and a size calculation error - is detected, an INTERNAL CORBA exception is set. </p> - </item> - <item> - <p>An internal reorganization of C backend generator code has - been done (addition of module <c>ic_cclient</c>). Several - changes has been done in generated C code:</p> - <list type="bulleted"> - <item> - <p>The typedef <c>___generic___</c> has been replaced by - the typedef <c>___exec_function___</c>, which has been - made more strict; for backward compatibility the - <c>___generic___</c> typedef is now an alias for - <c>___exec_function___</c>.</p> - </item> - <item> - <p>Function parameters that are arrays, has been changed - to be pointers to array slices, which are equivalent - according to ANSI C. </p> - </item> - <item> - <p>The storage class specifier <c>extern</c> has been - removed from function prototypes in header files.</p> - </item> - <item> - <p>Redundant type casts have been removed from generated code. - Also some local "generic" variables have been renamed.</p> - </item> - </list> - </item> - </list> - </section> - - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>Module info vsn replaced by app_vsn.</p> - <p>Own Id: OTP-4341</p> - </item> - <item> - <p>IC-4.1.2 disabled the definition of float constants - beginning with a zero (e.g. <c>0.14</c>).</p> - <p>Own Id: OTP-4367</p> - </item> - <item> - <p>IC did not handle constant definitions correctly for - char, string, wchar and wstring.</p> - <p>Own Id: OTP-4067, OTP-3222</p> - </item> - <item> - <p>IC did not recognize all reserved words defined in the - OMG specification (2.3.1). The new keywords are <c>fixed, abstract, custom, factory, local, native, private, public, supports, truncatable, 'ValueBase'</c> and - <c>valuetype</c>. But for now this is only active for the - <c>erl_corba</c> backend and only incorrect usage of - <c>fixed</c>, since this datatype is now supported, - triggers an error for this backend.</p> - <p>Own Id: OTP-4368</p> - </item> - <item> - <p>It was not possible to use wchar or wstring inside a - union body when using the Java backend.</p> - <p>Own Id: - OTP-4365</p> - </item> - <item> - <p>The compile options <c>this</c> and <c>handle_info</c> - did not behave as described in the documentation. The - <c>timeout</c> now behaves as, for example, - <c>handle_info</c>.</p> - <p>Own Id: OTP-4386, OTP-3231</p> - </item> - <item> - <p>If we typedef a sequence, which contains a struct or a union, - the access function <c>id/0</c> returned an incorrect IFR Id - if a prefix pragma was used.</p> - <p>Own Id: OTP-4387</p> - </item> - <item> - <p>If an IDL file contained a prefix pragma, incorrect - IFR-id's was generated in the IFR-registration operation - <c>oe_register</c> for aliases (typedef) and - attributes.</p> - <p>Own Id: OTP-4388, OTP-4392</p> - </item> - <item> - <p>For C back-ends, when encodings/decodings failed, memory - allocated for variable size parameter types was not freed.</p> - <p>Own Id: OTP-4391 - <br></br> -Aux Id: seq7438, ETOtr14009</p> - </item> - <item> - <p>If an IDL file contained a multiple typedef - (e.g. typedef string str1, str2;), the <c>oe_unregister</c> - operation failed to remove all data, in this case str2, - from the IFR.</p> - <p>Own Id: OTP-4393</p> - </item> - <item> - <p>IC did not recognize octet-constants - (e.g. const octet octetmax = 255;).</p> - <p>Own Id: OTP-4400</p> - </item> - <item> - <p>Negative 'long long' constants was not accepted - (e.g. const long long MyConstant = -1;).</p> - <p>Own Id: OTP-4401</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 4.1.2</title> - - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>Merging of map's (<em>___map___</em>) using the - <em>___merge___</em> function does not work.</p> - <p>Own Id: OTP-4323</p> - </item> - <item> - <p>Error in generated C decode/encode functions for union's with - discriminator where the union has no value for all discriminator - values. E.g. a union with discriminator boolean where only the - discriminator value TRUE has a corresponding union value. - Here is how such a thing would look in IDL:</p> - <pre> -\011 union OptXList switch(boolean) { -\011 case TRUE: integer val; - }; - </pre> - <p>Own Id: OTP-4322</p> - </item> - <item> - <p>Scoped op calls ('{scoped_op_calls, true}') does not handle - module/function names beginning with capital letter (e.g. - Megaco should be 'Megaco') for oneway operations (handle_cast).</p> - <p>Own Id: OTP-4310</p> - </item> - <item> - <p>A bug is fixed on C-IDL erlang binaries that caused - pointer error when residing inside sequences.</p> - <p>Own Id: OTP-4303</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 4.1.1</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>A new option 'multiple_be' is added that allows multiple backend - generation for the same IDL file.</p> - </item> - </list> - </section> - - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>A bug is fixed on IDL types that contain underscore '_'.</p> - <p>Own Id: OTP-3710</p> - </item> - <item> - <p>A bug is fixed on IDL structs that caused scope confusion - when types and fields of a struct had the same name.</p> - <p>Own Id: OTP-2893</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 4.0.7</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>The Erlang binary special type is introduced, that - allows efficient transfer of binaries between Erlang and C. </p> - <p>Own Id:OTP-4107</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 4.0.6</title> - - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>A bug is fixed on noc backend which caused generation of erroneous code.</p> - <p>Own Id: OTP-3812</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 4.0.5</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>The pragma code option is extended to point - specific functions on NOC backend, not only - interfaces.</p> - <p></p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 4.0.4</title> - - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>A bug in pragma prefix when including IDL files is fixed. - This caused problems for Erlang-corba IFR registrations.</p> - <p>Own Id: OTP-3620</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 4.0.3</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>Limited support on multiple file module definitions.</p> - <p>The current version supports multiple file module definitions all - backends except the c oriented backends.</p> - <p>Own Id: OTP-3550</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 4.0.2</title> - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>A bug is fixed on Erlang backends.</p> - <p>The (recently) introduced generation of files - describing sequence and array files were even - true for included interfaces. In the case of - some Erlang backends this were unnecessary.</p> - <p>Own Id: OTP-3485</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 4.0.1</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>New functionality added on Java and Erl_genserv backends.</p> - <p></p> - <list type="bulleted"> - <item> - <p>On the Java client stub :</p> - <p></p> - <list type="bulleted"> - <item> - <p>The Java client have now one more constructor function, - that allows to continue with an already started connection.</p> - </item> - <item> - <p><c>void __stop()</c> which sends a stop cast call to the server. - While this causes the Erlang server to terminate, it - sets a stop flag to the Java server environment, requesting the - server to terminate.</p> - </item> - <item> - <p><c>void __reconnect()</c> which closes the current client connection - if open and then connects to the same server.</p> - </item> - </list> - <p>The Environment variable is now declared as <c>public</c>. </p> - </item> - <item> - <p>On the Java server skeleton :</p> - <p></p> - <list type="bulleted"> - <item> - <p><c>boolean __isStopped()</c> which returns true if a <c>stop</c> - message where received, false otherwise. The user must check if - this function returns true, and in this case exit the implemented - server loop.</p> - </item> - </list> - <p>The Environment variable is now declared as <c>protected</c> which - allows the implementation that extends the stub to access it.</p> - </item> - <item> - <p>On the Erlang gen_server stub :</p> - <p></p> - <list type="bulleted"> - <item> - <p><c>stop(Server)</c> which yields to a cast call to the standard - gen_server <c>stop</c> function. This will always terminate the - Erlang gen_server, while it will set the stop flag for the - Java server stub.</p> - </item> - </list> - </item> - </list> - <p>Own Id: OTP-3433</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 4.0</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>New types handled by IC.</p> - <p>The following OMG-IDL types are added in this compiler version :</p> - <list type="bulleted"> - <item> - <p>long long</p> - <p>unsigned long long</p> - <p>wchar</p> - <p>wstring</p> - </item> - </list> - <p>Own Id: OTP-3331</p> - <p></p> - </item> - <item> - <p>TypeCode as built in type and access code files for array and sequence types.</p> - <list type="bulleted"> - <item> - <p>As TypeCode is a <c>pseudo</c>-interface, it is now is a built-in type on IC.</p> - </item> - <item> - <p>Access code files which contain information about TypeCode, ID and Name are - now generated for user defined arrays and sequences.</p> - </item> - </list> - <p>Own Id: OTP-3392</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 3.8.2</title> - <section> - <title>Fixed Bugs and Malfunctions</title> - <p>A bug is fixed on preprocessor directive expansion.</p> - <p>When nested #ifdef - #ifndef directives, a bug caused - improper included file expansion. This is fixed by - repairing the preprocessor expansion function.</p> - <p>Own Id: OTP-3472</p> - </section> - </section> - - <section> - <title>IC 3.8.1</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>Build in Erlang types support for java-backends</p> - <p>The built-in Erlang types <c>term, port, ref</c> and <c>pid</c> - are needed in Java backends in order to support an - efficient mapping between the two languages. - The new types are also supported by additional - helpers and holders to match with OMGs Java mapping - As a result of this, the following classes are added to - the <c>com.ericsson.otp.ic</c> interface :</p> - <list type="bulleted"> - <item> - <p><c>Term,TermHelper,TermHolder</c> which represents the - built-in Erlang type <c>term</c></p> - </item> - <item> - <p><c>Ref,RefHelper,RefHolder</c> which represents the - built-in Erlang type <c>ref</c></p> - </item> - <item> - <p><c>Port,PortHelper, PortHolder</c> which represents the - built-in Erlang type <c>port</c></p> - </item> - <item><c>Pid, PidHelper and PidHolder</c> which represents the - built-in Erlang type <c>pid</c></item> - </list> - <p></p> - <p>Own Id: OTP-3348</p> - <p></p> - </item> - <item> - <p>Compile time preprocessor macro variable definitions</p> - <p>The preprocessor lacked possibility to accept user - defined variables other than the one defined in IDL files. - This limited the use of command-ruled IDL specifications. - Now the build-in preprocessor allows the user to set variables - by using the "preproc_flags" option the same way - as using the "gcc" preprocessor.</p> - <p>Supported flags : </p> - <list type="bulleted"> - <item> - <p><c><![CDATA["-D< Variable >"]]></c> which defines a variable</p> - </item> - <item> - <p><c><![CDATA["-U< Variable >"]]></c> which undefines a variable</p> - </item> - </list> - <p></p> - <p>Own Id: OTP-3349</p> - </item> - </list> - </section> - - <section> - <title>Fixed Bugs and Malfunctions</title> - <p>A bug on comment type expansion is fixed.</p> - <p>The comment type expansion were erroneous when - inherited types (NOC backend). - This is now fixed and the type naming agree with - the scope of the inheritor interface.</p> - <p>Own Id: OTP-3346</p> - </section> - </section> - - <section> - <title>IC 3.8</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>The code generated for java backend is optimized - due to use of streams instead for tuple classes - when (un)marshalling message calls. - Support for building clients using asynchronous - client calls and effective multi-threaded servers.</p> - <p>Own Id: OTP-3310</p> - <p></p> - </item> - <item> - <p>The <c>any</c> type is now supported for java backend.</p> - <p>Own Id: OTP-3311</p> - </item> - </list> - </section> - - <section> - <title>A bug on C generated constants is fixed</title> - <p>While the constants are evaluated and behave well when used - inside an IDL specification their C-export were not working properly. - The constant export definitions were not generated well :</p> - <list type="bulleted"> - <item> - <p>the declared C definition were erroneous ( the name did not always agree - with the scope the constant were declared in ).</p> - </item> - <item> - <p>there were no C- definition generated for the c-server backend when - the constants were declared inside an interface.</p> - </item> - </list> - <p>Own Id: OTP-3219</p> - </section> - - <section> - <title>Incompatibilities</title> - <p>Due to optimizations in java backend, the stub initialization and usage - differs than the previous version.</p> - <p>Client stub interface changes:</p> - <list type="bulleted"> - <item> - <p>Client disconnects by calling the <c>__disconnect()</c> function instead - for the old <c>_closeConnection()</c></p> - <p></p> - </item> - <item> - <p>All <c>marshal</c> operation functions have now the interface :</p> - <p><c><![CDATA[void _< OpName >_marshal(Environment<, Param |, Params >)]]></c></p> - <p>instead for</p> - <p><c><![CDATA[OtpErlangTuple _< OpName >_marshal(< Param, | Params, >OtpErlangPid, OtpErlangRef)]]></c></p> - <p></p> - </item> - <item> - <p>All <c>unmarshal</c> operation functions have now the interface :</p> - <p><c><![CDATA[< Ret value > _< OpName >_unmarshal(Environment<, Param |, Params >)]]></c></p> - <p>instead for</p> - <p><c><![CDATA[< Ret value > _< OpName >_unmarshal(< Param, | Params, >OtpErlangTuple, OtpErlangRef)]]></c></p> - <p></p> - </item> - <item> - <p>Call reference extraction is available by the client function :</p> - <p><c>OtpErlangRef __getRef()</c></p> - <p>instead for previous function :</p> - <p><c>OtpErlangRef _getReference(OtpErlangTuple)</c></p> - <p></p> - </item> - </list> - <p>Server skeleton interface changes:</p> - <list type="bulleted"> - <item> - <p>The implementation function no longer have to contain the - two (2) contractor functions (with <c>super()</c>). This is due - to the fact that there is only one contractor function for each - skeleton file :</p> - <p><c><![CDATA[public _< interface name >ImplBase()]]></c></p> - <p></p> - </item> - <item> - <p>The parameter for the caller identity extraction function <c>_getCallerPid</c> - is now an <c>Environment</c> variable instead for an <c>OtpErlangTuple</c>.</p> - <p></p> - </item> - <item> - <p>There is a new <c>invoke</c> function :</p> - <p><c>OtpOutputStream invoke(OtpInputStream)</c></p> - <p>instead for the old one :</p> - <p><c>OtpErlangTuple invoke(OtpErlangTuple)</c></p> - <p></p> - </item> - <item> - <p>The <c>OtpConnection</c> class function used for receiving messages is now :</p> - <p><c>OtpInputStream receiveBuf()</c></p> - <p>instead for the old one :</p> - <p><c>OtpErlangTuple receive()</c></p> - <p></p> - </item> - <item> - <p>The <c>OtpConnection</c> class function used for sending messages is now :</p> - <p><c>void sendBuf(OtpErlangPid, OtpOutputStream)</c></p> - <p>instead for the old one :</p> - <p><c>void send(OtpErlangPid, OtpErlangTuple)</c></p> - <p></p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 3.7.1</title> - - <section> - <title>Improvements and New Features</title> - <p>Some memory usage optimizations for the compiler were done.</p> - </section> - - <section> - <title>Fixed bugs and malfunctions</title> - <list type="bulleted"> - <item> - <p>A bug is fixed when C backend is used.</p> - <p>When C-union with enumerant discriminator, the size - calculation of the discriminator value were erroneous. - This lead to the side effect that only the first case of the - union were allowed. - The error were fixed by fixing the size calculation of - the discriminator. </p> - <p>Own Id: OTP-3215</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 3.7</title> - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>A bug is fixed when C backend is used.</p> - <p>When unions with enumerant discriminator - were decoded, an error encountered in the - union size calculation. </p> - <p>Own Id: OTP-3209</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 3.6</title> - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>A bug is fixed when NOC backend is used.</p> - <p>When several functions with the same name - were found in the included file tree, - a compile time failure occurred.</p> - <p>Own Id: OTP-3203</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 3.5</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>Noc backend optimization</p> - <p>When NOC backend is choosen, the type code - information on the stub functions is reduced - to a single atom "no_tk". - This is the default behavior. The typecode - generation is enabled by the "use_tk" switch.</p> - <p>Own Id: OTP-3196</p> - </item> - </list> - </section> - - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>General java backend bug fixes </p> - <p>Protocol errors on user defined structures and - union types are corrected.</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 3.4</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>Semantic test enhancements.</p> - <p>The compiler detects now semantic errors when enumerant - values collide with user defined types on the same name scope.</p> - <p>Own Id: OTP-3157 <br></br> -</p> - </item> - </list> - </section> - - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>General java backend bug-fixes </p> - <p>Several bugs were fixed on user defined types.</p> - <list type="bulleted"> - <item> - <p>Union discriminators work better when - all possible case values are defined.</p> - </item> - <item> - <p>A bug on Interface inherited operations is - fixed that cause errors on generated server switch.</p> - </item> - <item> - <p>Type definitions on included files are better generated. </p> - </item> - </list> - <p>Own Id: OTP-3156 <br></br> -</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 3.3</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>A new back-end which generates Java code according to the CORBA IDL to Java mapping for - communication with the Erlang distribution protocol has been added to IC. - For the moment there is no support for the Erlang types Pid, Ref, Port and Term - but this will be added later.</p> - <p>Own Id: OTP-2779 <br></br> -</p> - </item> - </list> - </section> - - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>Fixed the bug that the c code backends sometimes generated incorrect code for - struct arguments. They shall always be pointers. </p> - <p>Own Id: OTP-2732 <br></br> -</p> - </item> - <item> - <p>The code generation is fixed so the array parameters now follow the - CORBA V2.0 C mapping.</p> - <p>Own Id: OTP-2873 <br></br> -</p> - </item> - <item> - <p>Fixed the problem that the checking of the numbers of out-parameters always was true.</p> - <p>Own Id: OTP-2944 <br></br> -</p> - </item> - <item> - <p>Fixed the bug that some temporary variables was not declared when c code.</p> - <p>Own Id: OTP-2950 <br></br> -</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 3.2.2</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>Unions are now supported to agree with OMG's C mapping.</p> - <p>Own Id: OTP-2868 <br></br> -</p> - </item> - <item> - <p>There is now a possibility to use pre- and postcondition methods on the server side - for IC generated Corba Objects. The compiler option is documented in the ic reference manual - and an example of how the pre- and postcondition methods should be designed and used is - added to ic example directory (an ReadMe.txt file exists with some instructions for - running the example code).</p> - <p>Own Id: OTP-3068 <br></br> -</p> - </item> - </list> - </section> - - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>The compiler ignores unknown/non supported pragma directives. A warning is raised - while the generated code will then be the same as if the corresponding - (unknown) pragma directive were missing. </p> - <p>Own Id: OTP-3052 <br></br> -</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 3.2.1</title> - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>Wrong C code was generated for limited strings when they where included - from another IDL specification.</p> - <p>Own Id: OTP-3033 <br></br> -</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 3.2</title> - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>The buffers for in/output used by C-stubs are now expandable. - This fixes buffer overflow problems when messages received/sent - do not fit in buffers.</p> - <p>Own Id: OTP-3001 <br></br> -</p> - </item> - </list> - </section> - - <section> - <title>Incompatibilities</title> - <p>The CORBA_Environment structure has now two new fields, the buffers for in/output - must now be dynamically allocated.</p> - </section> - </section> - - <section> - <title>IC 3.1.2</title> - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>The generated IFR registration function for constants has been fixed - so the parameters are correct.</p> - <p>Own Id: OTP-2856 <br></br> -</p> - </item> - <item> - <p>Error in the C code generation of ONEWAY operations without parameters - The bug was an decoding error in the operation header. The generated code expected one - parameter instead of zero. This is now fixed.</p> - <p>Own Id: OTP-2909 <br></br> -</p> - </item> - <item> - <p>Type problems on floats and booleans fixed.</p> - <p>Erroneous code for runtime checks on float was removed and - the internal format of the data representing the boolean value - is upgraded.</p> - <p>Own Id: OTP-2925 <br></br> -</p> - </item> - <item> - <p>The generated code for arrays of typedefined strings were - erroneous in the C-backends due to a failure in the compiler internal type - checking.</p> - <p>Own Id: OTP-2936 <br></br> -</p> - </item> - <item> - <p>The generated code for typedefined nested sequences were erroneous - in the C-backends. Pointer mismatches caused compilation failure.</p> - <p>Own Id: OTP-2937 <br></br> -</p> - </item> - </list> - </section> - - <section> - <title>Incompatibilities</title> - <p>The IDL specifications must be regenerated for C due to changes in the code generation.</p> - <p>One must regenerate IDL specifications for Erlang CORBA if there are constants in the - specification due to previous errors in the IFR registration functions (OTP-2856).</p> - </section> - </section> - - <section> - <title>IC 3.1.1</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>Improvements on error report on unsupported types by</p> - <p>propagating warning when declaring unions in C -backends</p> - </item> - </list> - </section> - - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>A bug is fixed when arrays that contained variable size data - on C-backends</p> - <p>The compiler generated erroneous code when IDL - defined arrays that contained variable size data such - as strings, variable size structs or sequences.</p> - <p>Own Id: OTP-2900 <br></br> -</p> - </item> - <item> - <p>A bug is fixed when sequences that contained variable size data - on C_backends</p> - <p>The compiler generated erroneous code when IDL - defined arrays that contained variable size data such - as strings, variable size structs or other sequences.</p> - <p>Own Id: OTP-2901 <br></br> -</p> - </item> - <item> - <p>A bug concerning bounded strings on C-backends is fixed.</p> - <p>The compiler generated erroneous code for IDL - defined bounded strings. Syntax errors were generated - in special cases of typdedefined strings.</p> - <p>Own Id: OTP-2898 <br></br> -</p> - </item> - <item> - <p>A runtime error when sequences that contained integer types is fixed.</p> - <p>When C-clients/server that communicated with Erlang clients/servers, - and the data send by Erlang part were a list of small numbers, - the Erlang runtime compacts the list to a string. This caused a - runtime error when sending sequences of integer types and all had - value less than 256.</p> - <p>Own Id: OTP-2899 <br></br> -</p> - </item> - <item> - <p>An OMG IDL - C mapping problem on enumerant values is fixed.</p> - <p>The enumerant values names is now prefixed by the current scope, - as defined in the specification.</p> - <p>Own Id: OTP-2902 <br></br> -</p> - </item> - <item> - <p>A problem when using constants in array declarations is fixed.</p> - <p>Array dimensions declared with constants generated erroneous code.</p> - <p>Own Id: OTP-2864 <br></br> -</p> - </item> - </list> - </section> - - <section> - <title>Incompatibilities</title> - <list type="bulleted"> - <item> - <p>Changes in C-generation on enumerant values.</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 3.1</title> - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>A bug is fixed on the generated structures. </p> - <p>The generated C code for the structures corresponds now - to direct mapping of C-structs. </p> - <p>Own Id: OTP-2843 <br></br> -</p> - </item> - </list> - </section> - - <section> - <title>Incompatibilities</title> - <list type="bulleted"> - <item> - <p>Included structures inside a struct are no longer pointers.</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 3.0</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>Interface change for C-backends</p> - <p>Major interface change. The new interface is CORBA 2.0 - compliant.</p> - <p>Own Id: OTP-2845 <br></br> -</p> - </item> - <item> - <p>The C-backends functionality is improved</p> - <list type="bulleted"> - <item> - <p>Due to interface change and some unneeded error - checks,the C-generated code is fairly optimized.</p> - </item> - </list> - </item> - </list> - </section> - - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>Several serious bugs on decoding and memory allocation are fixed. </p> - </item> - </list> - </section> - - <section> - <title>Incompatibilities</title> - <list type="bulleted"> - <item> - <p>Interface change on the C-backends</p> - <p>In order to be CORBA 2.0 compatible, the new version - generates fully incompatible C code.</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 2.5.1</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>A new backend is added : C-server</p> - <p>This back-ends can be used to create servers, - compatible to c-clients, and Erlang genserver clients. - The code produced is a collection of functions for - encoding and decoding messages and a switch that coordinates - them. These parts can be used to create other servers as well. - All functions are exported to header files.</p> - <p>Own Id: OTP-2713 <br></br> -</p> - </item> - <item> - <p>The C-client functionality is improved</p> - <list type="bulleted"> - <item> - <p>The static buffer used for input/output is removed along - with the <c>memset</c> function that initiated it. - The new client is at least 20-30 percent faster.</p> - </item> - <item> - <p>The internal structure of the client is changed. - The client functions are now a collection of encoding - and decoding message functions ruled by a specific - call function. While the basic client generated is - a synchronous client, the exported functions - support the implementation of threaded asynchronous - clients.</p> - </item> - <item> - <p>The static buffer used for input/output is remove along - with the <c>memset</c> function that initiated it. - The new client is at least 20-30 percent faster.</p> - </item> - <item> - <p>The code generated is generally improved, warnings are - (almost) eliminated, while no unidentified variable - errors occur.</p> - </item> - <item> - <p>The IDL types unsigned shorts, shorts, floats are supported now.</p> - </item> - <item> - <p>All generated functions are exported in client header files..</p> - </item> - </list> - <p>Own Id: OTP-2712 <br></br> -</p> - </item> - </list> - </section> - - <section> - <title>Changes in compiler usage and code generation.</title> - <list type="bulleted"> - <item> - <p>A new option is added for the C-server back-end : <c>c_server</c>.</p> - </item> - <item> - <p>A new option is added : <c>scoped_op_calls</c>.</p> - </item> - </list> - </section> - - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>A bug oneway operations on erl_corba and erl_genserv that caused - en exit due to internal interface error is fixed. </p> - </item> - <item> - <p>A bug on oneway operations on c_genserv back-end that caused several - variables to be unidentified is fixed. </p> - </item> - </list> - </section> - - <section> - <title>Incompatibilities</title> - <list type="bulleted"> - <item> - <p>Interface change on the C-client</p> - <p>The client functions are called with two extra variables, a pointer to - an array of char - used for storage and an integer - the array size</p> - </item> - <item> - <p>The IDL type <c>attribute</c> is disabled, due to some implementation problems.</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 2.1</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>The compiler now provides more in depth information (printouts) when errors occur.</p> - <p>In some cases the compiler stops compiling - due to an abnormal exit or incompatible input. - In this situation, a "fatal error" may occur but the compiler will - generate information explaining the problem.</p> - <p>Own Id: OTP-2565 <br></br> -</p> - </item> - </list> - </section> - </section> - - <section> - <title>IC 2.0</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>The IDL compiler is now a separate application and is longer a part of Orber.</p> - </item> - <item> - <p>Pragma handling implementation.</p> - <p>Pragma ID, prefix - and version are implemented to agree with CORBA revision - 2.0. The compiler accepts and applies these on the - behavior of the compiled code. <br></br> - In this implementation, - pragmas are accepted by the parser and applied by the use - of ic_pragma functions. <br></br> - All IFR-identity handling now - passes through pragma table. As pragma handling in OMG-IDL - is affecting the identity of an ifr-object, all identity - handling and registration is now controlled by pragma - functions. A hash table called "pragmatab" contains vital - identity information used under compilation. <br></br> -</p> - <p>There two major pragma categories :</p> - <list type="bulleted"> - <item> - <p>Normal pragmas, are used in the code where - basic definitions and statements appear. </p> - </item> - <item> - <p>Under certain circumstances, ugly pragmas can now - appear inside code, parameter lists, structure - definitions ... etc. <br></br> - It is quite challenging to - allow ugly pragmas, but the effects of unlimited ugly - pragma implementation on the parser can be enormous. - Ugly pragmas can cause the parser source code to - become time consuming and user unreadable. <br></br> - In order - to allow ugly pragmas but not destroy the current - structure of the parser, the use of ugly pragmas is - limited. Multiple pragma directives are allowed - inside parameter lists, unions, exceptions, - enumerated type, structures... as long as they are do not - appear between two keywords or between keywords and - identifiers. </p> - </item> - </list> - <p>The pragma effect is the same for both scope and basic - pragma rules. </p> - <p>When compiling, an IFR-identity - must be looked up several times but by storing identity aliases inside - the pragma table there this an increase in both speed and - flexibility. </p> - <p>Own Id: OTP-2128 <br></br> -</p> - </item> - <item> - <p>Code for interface inheritance registration for the IFR - registration code .</p> - <p>Inherited interfaces can now - be registered as a list of interface descriptions by - entering code for inherited interface registration under - new interface creation. This is achieved by correcting the - function reg2/6 and adding two more functions, - get_base_interfaces/2 and call_fun_str/2 </p> - <p>Own Id: - OTP-2134 <br></br> -</p> - </item> - <item> - <p>IFR registration checks for included IDL files.</p> - <p>All top level definitions (with respect to the scope) - - modules, interfaces, constants, types or exceptions - found - in an IDL file are either defined inside the compiled IDL - file or inside included files. - By having an extended registration of all top level - definitions it becomes possible to simply produce checks - for those included by the current IDL file. - A function call include_reg_test/1 is added in all - OE_* files that checks for IFR-registration on all included - IDL files. The code for that function is added inside the - OE_* file, while the function is called under OE_*:OE_register/0 - operation. </p> - <p>Own Id: OTP-2138 <br></br> -</p> - </item> - <item> - <p>Exception registration under IFR-operation creation.</p> - <p>By entering code for exception registration under operation - creation, the exceptions of an operation can be checked now. - This is done by correcting the function get_exceptions/4 - and adding two more functions, excdef/5 and get_EXC_ID/5 - ( the last two are cooperating with the first one and - all three are defined in the module "ictk" ). </p> - <p>Own Id: OTP-2102 <br></br> -</p> - </item> - <item> - <p>New back-end to IDL compiler : Plain Erlang.</p> - <p>The new back-end just translates IDL specifications - to Erlang module calls. No pragmas are allowed.</p> - <p>Own Id: OTP-2471 <br></br> -</p> - </item> - <item> - <p>New back-end to IDL compiler : generic server.</p> - <p>A new back-end that translates IDL specifications - to a standard OTP generic server.</p> - <p>Own Id: OTP-2482 <br></br> -</p> - </item> - <item> - <p>New back-end to IDL compiler : c client generation</p> - <p>A new back-end that translates IDL specifications - to a C API for accessing servers in Erlang. </p> - <p>Own Id: OTP-1511 <br></br> -</p> - </item> - <item> - <p>All records in generated files reveal own Erlang modules.</p> - <p>In Erlang related back-ends, every structure - which generates definition form is a record, - (such as union, struct, exception.... ). These records are - held in a generated Erlang files which - contain functions that reveal record information. <br></br> - - The Erlang file which contain these functions is - named after the scope of the record (similar - to the generated module and interface files). <br></br> - - Three functions are available :</p> - <list type="bulleted"> - <item> - <p>tc/0 - returns the record type code,</p> - </item> - <item> - <p>id/0 - returns the record id,</p> - </item> - <item> - <p>name - returns the record name.</p> - </item> - </list> - <p>Own Id: OTP-2473 <br></br> -</p> - </item> - <item> - <p>Changes in compiler usage and code generation.</p> - <list type="bulleted"> - <item> - <p>New compilation flags. - New flag be ( = back-end ) which is - used by the compiler to choose back-end. - Default back-end is set to erl_corba.</p> - </item> - <item> - <p>Stub files have an extra function oe_dependency/0 - indicating file dependency. This - helps the user to determine which IDL files should to - be compiled beside the compiled file. </p> - </item> - </list> - <p>Own Id: OTP-2474 <br></br> -</p> - </item> - <item> - <p>The IDL generation for CORBA is changed so standard gen_server return values can be used - from the implementation module. The change is compatible so that old values remain valid.</p> - <p>Own Id: OTP-2485 <br></br> -</p> - </item> - <item> - <p>It's now possible to generate an API to a CORBA object that accepts - timeout values in the calls in the same manner as gen_server. - The option to the compiler is "timeout".</p> - <p>Own Id: OTP-2487 <br></br> -</p> - </item> - </list> - </section> - - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>Empty file generation problem is fixed. - When the IDL module definition did not contain - constant definitions, the generated stub file for that module - definition was empty. After checking the module body, - these files will not be generated anymore.</p> - </item> - </list> - </section> - - <section> - <title>Incompatibilities</title> - <list type="bulleted"> - <item> - <p>Changes in generated files.</p> - <p>Stub-files generated by the compiler had - prefix "OE_" and those used by Orber - had also a register/unregister function - called "OE_register"/"OE_unregister" and - a directive "OE_get_interface" passed - to the gen_server. - This made it difficult/irritating to use, - for example call to the register function - in Orber would appear as shown below:</p> - <list type="bulleted"> - <item> - <p>'OE_filename':'OE_register'().</p> - </item> - </list> - <p>This is changed by using the prefix "oe_" - instead for "OE_" for the above. - A registration call in Orber is now written:</p> - <list type="bulleted"> - <item> - <p>oe_filename:oe_register(). </p> - </item> - </list> - <p>Own Id: OTP-2440 <br></br> -</p> - </item> - </list> - </section> - </section> -</chapter> - |