1 IDL Compiler Release Notes

1.1  IC 4.2.29

Improvements and New Features

  • Erlang/OTP can now be built using parallel make if you limit the number of jobs, for instance using 'make -j6' or 'make -j10'. 'make -j' does not work at the moment because of some missing dependencies.

    Own Id: OTP-9451

1.2  IC 4.2.28

Fixed Bugs and Malfunctions

  • Incorrect use of ets:match changed to ets:match_object.

    Own Id: OTP-9630

1.3  IC 4.2.27

Improvements and New Features

  • Reduced compile overhead (Thanks to Haitao Li).

    Own Id: OTP-9460

1.4  IC 4.2.26

Improvements and New Features

  • Partial support for recursive structs and unions. Only available for the erl_corba backend and requires that Light IFR is used. I.e. the IC option {light_ifr, true} and that Orber is configured in such a way that Light IFR is activated. Recursive TypeCode is currently not supported.

    Own Id: OTP-8868 Aux Id: seq11633

1.5  IC 4.2.25

Improvements and New Features

  • The documentation can now be built and installed without Java.

    Own Id: OTP-8639 Aux Id:

1.6  IC 4.2.24

Fixed Bugs and Malfunctions

  • Removed superfluous VT in the documentation.

    Own id: OTP-8353 Aux Id:

  • The option c_timeout was not correctly documented.

    Own id: OTP-8307 Aux Id: seq11390

  • Removed superfluous backslash in the documentation.

    Own id: OTP-8354 Aux Id:

  • The documentation EIX file was not generated.

    Own id: OTP-8355 Aux Id:

1.7  IC 4.2.23

Improvements and New Features

  • The documentation is now built with open source tools (xsltproc and fop) that exists on most platforms. One visible change is that the frames are removed.

    Own Id: OTP-8201 Aux Id:

1.8  IC 4.2.22

Fixed Bugs and Malfunctions

  • The 64-bit version of libic was not compiled with the -fPIC flag.

    Own id: OTP-8088

1.9  IC 4.2.21

Fixed Bugs and Malfunctions

  • The function print_erlang_binary (oe_ei_code_erlang_binary.c) updated to avoid compiler warning.

    Own id: OTP-7982

1.10  IC 4.2.20

Improvements and New Features

  • Updated file headers.

    Own id: OTP-7837

1.11  IC 4.2.19

Improvements and New Features

  • Documentation source included in open source releases.

    Own id: OTP-7595

1.12  IC 4.2.18

Fixed Bugs and Malfunctions

  • Insufficient buffer allocated when passing wide strings using the C backend on a 64-bit architecture.

    Own Id: OTP-7313 Aux Id:

1.13  IC 4.2.17

Improvements and New Features

  • Updated file headers.

    Own id: OTP-7011

  • IC no longer use the obsolete function file:rawopen/2.

    Own id: OTP-7182

1.14  IC 4.2.16

Improvements and New Features

  • Added links to classes inherited from Jinterface in the User's Guide.

    Own Id: OTP-6965 Aux Id:

1.15  IC 4.2.15

Fixed Bugs and Malfunctions

  • If an inherited function name begun with a capital letter the generated stub/skeleton oe_tc/1 function was incorrect.

    Own Id: OTP-6855 Aux Id:

1.16  IC 4.2.14

Improvements and New Features

  • The documentation source has been converted from SGML to XML.

    Own Id: OTP-6754 Aux Id:

1.17  IC 4.2.13

Improvements and New Features

  • Minor Makefile changes.

    Own Id: OTP-6701 Aux Id:

1.18  IC 4.2.12

Improvements and New Features

  • Dead code was deleted from the following modules: ic_cclient, ic_code, ic_cserver, ic_erlbe, ic_java_type, ic_noc, ic_plainbe, ic_pp, ic_pragma, icscan, icstruct, ictype, icunion.

1.19  IC 4.2.11

Improvements and New Features

  • Changed code generation to avoid warnings such as unused variables.

    Own Id: OTP-5930 Aux Id:

1.20  IC 4.2.10

Fixed Bugs and Malfunctions

  • The FD_SETSIZE limit has been increased to 2048 for VxWorks/PPC603.

    Own Id: OTP-5395 Aux Id: seq9751

1.21  IC 4.2.9

Fixed Bugs and Malfunctions

  • In C back-ends, the compiler crashed when generating C code for error reports when a scoped name was used as a type in a union.

    Own Id: OTP-5375 Aux Id: seq9740

1.22  IC 4.2.8

Fixed Bugs and Malfunctions

  • In C back-ends, when decoding a sequence of "small" integers, which from Erlang is sent as a string (i.e. each element between 0 and 255), each string element was considered to be of signed character type. Each such element is now correctly treated as an unsigned character type.

    Own Id: OTP-5205 Aux Id: seq9241

1.23  IC 4.2.7

Improvements and New Features

  • A new compiler option c_report has been introduced for C back-ends (client and server). If that option is set, encoding/decoding errors will be reported to stderr.

    Own Id: OTP-4977

1.24  IC 4.2.6

Improvements and New Features

  • The size of modules, used then registering data in the IFR DB (e.g., oe_MyModule:oe_register()), can be minimized if the compile option light_ifr is used and Orber is configured to use Light IFR. Requires that orber-3.5.1, or later, is used.

    Own Id: OTP-5036

Incompatibilities

  • The compile option multiple_be is no longer supported.

    Own Id: OTP-5049

1.25  IC 4.2.5

Improvements and New Features

  • Send and receive functions with timeouts have been added to the C back-ends for the standard protocol (i.e. Erlang distribution + gen_server protocol).

    Accordingly a new compiler option {c_timeout, {SendTimeout, RecvTimeout}} has been added. Timeouts are specified in milliseconds.

    A user that want to implement its own protocols with function timeouts has to implement the following functions.

    For C clients the functions int PFX_send_notification(CORBA_Environment *env, unsigned int send_ms), and int PFX_send_request_and_receive_reply(CORBA_Environment *env, unsigned int send_ms, unsigned int recv_ms) have to be additionally implemented, where PFX is the user defined prefix.

    For C servers no additional functions have to be implemented, but a clone of the int oe_server_receive_tmo(CORBA_Environment *env, oe_map_t *map, unsigned int send_ms, unsigned int recv_ms) might be handy.

    Own Id: OTP-4972

1.26  IC 4.2.4

Improvements and new features

  • The C back-ends has been opened up, so that a user can define his own protocol, differing from the Erlang distribution + gen_server protocol.
    For C clients it means to replace the library functions int oe_prepare_notification_encoding(CORBA_Environment *env), int oe_send_notification(CORBA_Environment *env), int oe_prepare_request_encoding(CORBA_Environment *env), int oe_send_request_and_receive_reply(CORBA_Environment *env), and int oe_prepare_reply_decoding(CORBA_Environment *env), with functions of the same signature, but with the prefix "oe" replaced by a user defined prefix. For C servers the functions int oe_prepare_request_decoding(CORBA_Environment *env), and int oe_prepare_reply_encoding(CORBA_Environment *env), are similarly replaced.
    The new compiler option {user_protocol, Prefix} has been added.

    Own Id: OTP-4834

1.27  IC 4.2.3

Fixed Bugs and Malfunctions

  • In generated code for the C server back-end, the naming scope was in error for prototypes in C header files for interfaces inheriting base interfaces.

    Own Id: OTP-4881

1.28  IC 4.2.2

Fixed Bugs and Malfunctions

  • IDL long long and unsigned long long could not be used in a struct for the Java backend.

    All unsigned integer types for the Java backend had broken marshalling for large values.

    Own Id: OTP-4763

1.29  IC 4.2.1

Fixed Bugs and Malfunctions

  • A scoping problem (IC could not find typedefs contained inherited interfaces) in the C-backend solved.

    Own Id: OTP-4758

1.30  IC 4.2

Improvements and New Features

  • The CORBA stub/skeleton-files generated by IC have been improved, i.e., depending on the IDL-files, reduced the size of the erl- and beam-files and decreased dependencies off Orber's Interface Repository. It is necessary to re-compile all IDL-files and use COS-applications, including Orber, compiled with IC-4.2.

    Own Id: OTP-4576