1 IDL Compiler Release Notes
1.1 IC 4.4
Improvements and New Features
- 
          Change license text from Erlang Public License to Apache Public License v2 Own Id: OTP-12845 
1.2 IC 4.3.6
Fixed Bugs and Malfunctions
- 
          Fix compiler warnings reported by LLVM Own Id: OTP-12138 
1.3 IC 4.3.5
Fixed Bugs and Malfunctions
- 
	    Added Latin-1 code directive in the generated files to keep old behaviour. Updated IC so it can handle Unicode characters in the path. Own Id: OTP-11783 
1.4 IC 4.3.4
Fixed Bugs and Malfunctions
- 
          Fix two small silent rules omissions. Thanks to Anthony Ramine. Own Id: OTP-11351 
- 
          Silence warnings (Thanks to Anthony Ramine) Own Id: OTP-11517 
1.5 IC 4.3.3
Improvements and New Features
- 
          Header and library files from ic and erl_interface are now installed into usr/{include,lib}. Note that these directories are unversioned, so the latest installed version will be the one in the directory. Own Id: OTP-11284 
1.6 IC 4.3.2
Fixed Bugs and Malfunctions
- 
          Fixed some compilation warnings on miscellaneous platforms. Thanks to Anthony Ramine. Own Id: OTP-11086 
1.7 IC 4.3.1
Fixed Bugs and Malfunctions
- 
          Revert the structs erlang_pid, erlang_port and erlang_ref as they were before R16A (without node_org_enc) in order to be backward compatible with user code that accesses the fields of these structs. Own Id: OTP-10885 Aux Id: seq12256 
1.8 IC 4.3
Improvements and New Features
- 
          Misc build updates Own Id: OTP-10784 
- 
          Adapt ic for changes in erl_interface and jinterface due to utf8 atom support. This change makes ic dependent on erl_interface-3.7.10 (R16) or later in order to build. Own Id: OTP-10785 
1.9 IC 4.2.31
Fixed Bugs and Malfunctions
- 
          Fix bug where the ic pre-processor would ignore whitespace quoting. Own Id: OTP-10109 
- 
	    A bug regarding spaces in C function prototypes has been fixed. (Thanks to Richard O'Keefe.) Own Id: OTP-10138 
1.10 IC 4.2.30
Improvements and New Features
- 
          Add generation of Erlang callback functions to generated Erlang source code to avoid compiler warnings. Own Id: OTP-9998 
1.11 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.12 IC 4.2.28
Fixed Bugs and Malfunctions
- 
          Incorrect use of ets:match changed to ets:match_object. Own Id: OTP-9630 
1.13 IC 4.2.27
Improvements and New Features
- 
          Reduced compile overhead (Thanks to Haitao Li). Own Id: OTP-9460 
1.14 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.15 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.16 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.17 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.18 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.19 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.20 IC 4.2.20
Improvements and New Features
- 
          Updated file headers. Own id: OTP-7837 
1.21 IC 4.2.19
Improvements and New Features
- 
          Documentation source included in open source releases. Own id: OTP-7595 
1.22 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.23 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.24 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.25 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.26 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.27 IC 4.2.13
Improvements and New Features
- 
          Minor Makefile changes. Own Id: OTP-6701 Aux Id: 
1.28 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.29 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.30 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.31 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.32 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.33 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.34 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.35 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.36 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.37 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.38 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.39 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.40 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 
