1 IDL Compiler Release Notes
1.1 IC 4.1.2, Release Notes
1.1.1 Improvements and new features
1.1.2 Fixed bugs and malfunctions
1.1.3 Incompatibilities
-
1.1.4 Known bugs and problems
1.2 IC 4.1.1, Release Notes
1.2.1 Improvements and new features
-
A new option 'multiple_be' is added that allows multiple backend
generation for the same IDL file.
1.2.2 Fixed bugs and malfunctions
-
A bug is fixed on IDL types that contain undrescore '_'.
Own Id: OTP-3710
-
A bug is fixed on IDL structs that caused scope confusion
when types and fields of a struct had the same name.
Own Id: OTP-2893
1.2.3 Incompatibilities
-
1.2.4 Known bugs and problems
1.3 IC 4.0.7, Release Notes
1.3.1 Improvements and new features
-
The erlang binary special type is introduced, that
allows efficient transfer of binaries between erlang and C.
Own Id:OTP-4107
1.3.2 Fixed bugs and malfunctions
1.3.3 Incompatibilities
-
1.3.4 Known bugs and problems
-
The same as in previous version.
1.4 IC 4.0.6, Release Notes
1.4.1 Improvements and new features
1.4.2 Fixed bugs and malfunctions
-
A bug is fixed on noc backend which caused generation of errornous code.
Own Id: OTP-3812
1.4.3 Incompatibilities
-
1.4.4 Known bugs and problems
-
The same as in previous version.
1.5 IC 4.0.5, Release Notes
1.5.1 Improvements and new features
-
The pragma code option is extended to point
specific functions on NOC backent, not only
interfaces.
1.5.2 Fixed bugs and malfunctions
1.5.3 Incompatibilities
-
1.5.4 Known bugs and problems
-
The same as in previous version.
1.6 IC 4.0.4, Release Notes
1.6.1 Improvements and new features
1.6.2 Fixed bugs and malfunctions
-
A bug in pragma prefix when including IDL files is fixed.
This caused problems for erlang-corba IFR registrations.
Own Id: OTP-3620
1.6.3 Incompatibilities
-
1.6.4 Known bugs and problems
-
The same as in previous version.
1.7 IC 4.0.3, Release Notes
1.7.1 Improvements and new features
-
Limited support on multiple file module definitions.
The current version supports multiple file module definitions all
backends except the c oriented backends.
Own Id: OTP-3550
1.7.2 Fixed bugs and malfunctions
1.7.3 Incompatibilities
-
1.7.4 Known bugs and problems
-
Multiple file definition of a module is not supported on
c oriented backends.
-
Type definitions on multiple file module level are limited
to containers, such as modules and interfaces.
This is true on corba and Erlang backends.
1.8 IC 4.0.2, Release Notes
1.8.1 Improvements and new features
-
1.8.2 Fixed bugs and malfunctions
-
A bug is fixed on Erlang backends.
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.
Own Id: OTP-3485
1.8.3 Incompatibilities
-
1.8.4 Known bugs and problems
-
The same as in previous version.
1.9 IC 4.0.1, Release Notes
1.9.1 Improvements and new features
-
New functionality added on Java and Erl_genserv backends.
-
On the Java client stub :
-
The Java client have now one more costructor function,
that allows to continue with an allready started connection.
-
void __stop()
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.
-
void __reconnect()
which closes the current client connection
if open and then connects to the same server.
The Environment variable is now declared as public
.
-
On the Java server skeleton :
-
boolean __isStopped()
which returns true if a stop
message where received, false otherwise. The user must check if
this function returns true, and in this case exit the implemented
server loop.
The Environment variable is now declared as protected
which
allows the implementation that extends the stub to access it.
-
On the Erlang gen_server stub :
-
stop(Server)
which yields to a cast call to the standard
gen_server stop
function. This will always terminate the
Erlang gen_server, while it will set the stop flag for the
Java server stub.
Own Id: OTP-3433
1.9.2 Fixed bugs and malfunctions
-
1.9.3 Incompatibilities
-
1.9.4 Known bugs and problems
-
The same as in previous version.
1.10 IC 4.0, Release Notes
1.10.1 Improvements and new features
-
New types handled by IC.
The following OMG-IDL types are added in this compiler version :
-
long long
unsigned long long
wchar
wstring
Own Id: OTP-3331
-
TypeCode as built in type and access code files for array and sequence types.
-
As TypeCode is a
psevdo
-interface, it is now is a built-in type on IC.
-
Access code files which contain information about TypeCode, ID and Name are
now generated for user defined arrays and sequences.
Own Id: OTP-3392
1.10.2 Fixed bugs and malfunctions
-
1.10.3 Incompatibilities
-
1.10.4 Known bugs and problems
-
The same as in previous version.
1.11 IC 3.8.2, Release Notes
1.11.1 Improvements and new features
-
1.11.2 Fixed bugs and malfunctions
A bug is fixed on preprocessor directive expansion.
When nested #ifdef - #ifndef directives, a bug caused
improper included file expansion. This is fixed by
repairing the preprocessor expansion function.
Own Id: OTP-3472
1.11.3 Incompatibilities
-
1.11.4 Known bugs and problems
-
The same as in previous version.
1.12 IC 3.8.1, Release Notes
1.12.1 Improvements and new features
-
Build in Erlang types support for java-backends
The built-in Erlang types term, port, ref
and pid
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 com.ericsson.otp.ic
interface :
-
Term,TermHelper,TermHolder
which represents the
built-in Erlang type term
-
Ref,RefHelper,RefHolder
which represents the
built-in Erlang type ref
-
Port,PortHelper, PortHolder
which represents the
built-in Erlang type port
-
Pid, PidHelper and PidHolder
which represents the
built-in Erlang type pid
Own Id: OTP-3348
-
Compile time preprocessor macro variable definitions
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.
Supported flags :
-
"-D< Variable >"
which defines a variable
-
"-U< Variable >"
which undefines a variable
Own Id: OTP-3349
1.12.2 Fixed bugs and malfunctions
A bug on comment type expansion is fixed.
The comment type expansion were errornous when
inherited types (NOC backend).
This is now fixed and the type naming agree with
the scope of the inheritor interface.
Own Id: OTP-3346
1.12.3 Incompatibilities
-
1.12.4 Known bugs and problems
-
The same as in previous version.
1.13 IC 3.8, Release Notes
1.13.1 Improvements and new features
-
The code generated for java backend is optimized
due to use of streams insead for tuple classes
when (un)marshalling message calls.
Support for building clients using asynchronous
client calls and effective multithreaded servers.
Own Id: OTP-3310
-
The
any
type is now supported for java backend.
Own Id: OTP-3311
1.13.2 A bug on C generated constants is fixed
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 :
-
the declared C definition were errornous ( the name did not always agree
with the scope the constant were declared in ).
-
there were no C- definition generated for the c-server backend when
the constants were declared inside an interface.
Own Id: OTP-3219
1.13.3 Incompatibilities
Due to optimizations in java backend, the stub initialization and usage
differs than the previous version.
Client stub interface changes:
-
Client disconnects by calling the
__disconnect()
function instead
for the old _closeConnection()
-
All
marshal
operation functions have now the interface :
void _< OpName >_marshal(Environment<, Param |, Params >)
instead for
OtpErlangTuple _< OpName >_marshal(< Param, | Params, >OtpErlangPid, OtpErlangRef)
-
All
unmarshal
operation functions have now the interface :
< Ret value > _< OpName >_unmarshal(Environment<, Param |, Params >)
instead for
< Ret value > _< OpName >_unmarshal(< Param, | Params, >OtpErlangTuple, OtpErlangRef)
-
Call reference extraction is available by the client function :
OtpErlangRef __getRef()
instead for previous function :
OtpErlangRef _getReference(OtpErlangTuple)
Server skeleton interface changes:
-
The implementation function no longer have to contain the
two (2) contructor functions (with
super()
). This is due
to the fact that there is only one contructor function for each
skeleton file :
public _< interface name >ImplBase()
-
The parameter for the caller identity extraction function
_getCallerPid
is now an Environment
variable instead for an OtpErlangTuple
.
-
There is a new
invoke
function :
OtpOutputStream invoke(OtpInputStream)
instead for the old one :
OtpErlangTuple invoke(OtpErlangTuple)
-
The
OtpConnection
class function used for receiving messages is now :
OtpInputStream receiveBuf()
instead for the old one :
OtpErlangTuple receive()
-
The
OtpConnection
class function used for sending messages is now :
void sendBuf(OtpErlangPid, OtpOutputStream)
instead for the old one :
void send(OtpErlangPid, OtpErlangTuple)
1.13.4 Known bugs and problems
-
The same as in previous version.
1.14 IC 3.7.1, Release Notes
1.14.1 Improvements and new features
Some memory usage optimizations for the compiler were done.
1.14.2 Fixed bugs and malfunctions
-
A bug is fixed when C backend is used.
When C-union with enumerant discriminator, the size
calculation of the discriminator value were errornous.
This lead to the sideeffect that only the first case of the
union were alowed.
The error were fixed by fixing the size calculation of
the discriminator.
Own Id: OTP-3215
1.14.3 Incompatibilities
-
1.14.4 Known bugs and problems
-
The same as in previous version.
1.15 IC 3.7, Release Notes
1.15.1 Improvements and new features
-
1.15.2 Fixed bugs and malfunctions
-
A bug is fixed when C backend is used.
When unions with enumerant discriminator
were decoded, an error encountered in the
union size calculation.
Own Id: OTP-3209
1.15.3 Incompatibilities
-
1.15.4 Known bugs and problems
-
The same as in previous version.
1.16 IC 3.6, Release Notes
1.16.1 Improvements and new features
-
1.16.2 Fixed bugs and malfunctions
-
A bug is fixed when NOC backend is used.
When several functions with the same name
were found in the included file tree,
a compile time failure occured.
Own Id: OTP-3203
1.16.3 Incompatibilities
-
1.16.4 Known bugs and problems
-
The same as in previous version.
1.17 IC 3.5, Release Notes
1.17.1 Improvements and new features
-
Noc backend optimization
When NOC backend is choosed, the type code
information on the stub functions is reduced
to a single atom "no_tk".
This is the default behaviour. The typecode
generation is enabled by the "use_tk" switch.
Own Id: OTP-3196
1.17.2 Fixed bugs and malfunctions
-
General java backend bugfixes
Protocol errors on user defined structures and
union types are corrected.
1.17.3 Incompatibilities
-
1.17.4 Known bugs and problems
-
The same as in previous version.
1.18 IC 3.4, Release Notes
1.18.1 Improvements and new features
-
Semantic test enhancements.
The compiler detects now semantic errors when enumerant
values colide with user defined types on the same name scope.
Own Id: OTP-3157
1.18.2 Fixed bugs and malfunctions
-
General java backend bugfixes
Several bugs were fixed on user defined types.
-
Union discriminators work better when
all possible case values are defined.
-
A bug on Interface inherited operations is
fixed that cause errors on generated server switch.
-
Type definitions on included files are better generated.
Own Id: OTP-3156
1.18.3 Incompatibilities
-
1.18.4 Known bugs and problems
-
The same as in previous version.
1.19 IC 3.3, Release Notes
1.19.1 Improvements and new features
-
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.
Own Id: OTP-2779
1.19.2 Fixed bugs and malfunctions
-
Fixed the bug that the c code backends sometimes generated incorrect code for
struct arguments. They shall always be pointers.
Own Id: OTP-2732
-
The code generation is fixed so the array parameters now follow the
CORBA V2.0 C mapping.
Own Id: OTP-2873
-
Fixed the problem that the checking of the numbers of outparameters always was true.
Own Id: OTP-2944
-
Fixed the bug that some temporary variables was not declared when c code.
Own Id: OTP-2950
1.19.3 Incompatibilities
-
1.19.4 Known bugs and problems
-
The same as in previous version.
1.20 IC 3.2.2, Release Notes
1.20.1 Improvements and new features
-
Unions are now supported to agree with OMG's C mapping.
Own Id: OTP-2868
-
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).
Own Id: OTP-3068
1.20.2 Fixed bugs and malfunctions
-
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
(unkown) pragma directive were missing.
Own Id: OTP-3052
1.20.3 Incompatibilities
-
1.20.4 Known bugs and problems
-
The same as in previous version.
1.21 IC 3.2.1, Release Notes
1.21.1 Improvements and new features
-
1.21.2 Fixed bugs and malfunctions
-
Wrong C code was generated for limited strings when they where included
from another IDL specification.
Own Id: OTP-3033
1.21.3 Incompatibilities
-
1.21.4 Known bugs and problems
-
The same as in previous version.
1.22 IC 3.2, Release Notes
1.22.1 Improvements and new features
-
1.22.2 Fixed bugs and malfunctions
-
The buffers for in/output used by C-stubs are now expandable.
This fixes buffer overflow problems when messages received/sended
do not fit in buffers.
Own Id: OTP-3001
1.22.3 Incompatibilities
The CORBA_Environment structure has now two new fields, the buffers for in/output
must now be dynamically allocated.
1.22.4 Known bugs and problems
-
The same as in previous version.
1.23 IC 3.1.2, Release Notes
1.23.1 Improvements and new features
-
1.23.2 Fixed bugs and malfunctions
-
The generated IFR registration function for constants has been fixed
so the parameters are correct.
Own Id: OTP-2856
-
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.
Own Id: OTP-2909
-
Type problems on floats and booleans fixed.
Erroneous code for runtime checks on float was removed and
the internal format of the data representing the boolean value
is uppgraded.
Own Id: OTP-2925
-
The generated code for arrays of typedefined strings were
erroneous in the C-backends due to a failure in the compiler internal type
checking.
Own Id: OTP-2936
-
The generated code for typedefined nested sequences were erroneous
in the C-backends. Pointer mismatches caused compilation failure.
Own Id: OTP-2937
1.23.3 Incompatibilities
The IDL specifications must be regenerated for C due to changes in the code generation.
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).
1.23.4 Known bugs and problems
1.24 IC 3.1.1, Release Notes
1.24.1 Improvements and new features
-
Improvements on error repport on unsupported types by
propagating warning when declaring unions in C -backends
1.24.2 Fixed bugs and malfunctions
-
A bug is fixed when arrays that contained variable size data
on C-backends
The compiler generated errornous code when IDL
defined arrays that contained variable size data such
as strings, varible size structs or sequences.
Own Id: OTP-2900
-
A bug is fixed when sequences that contained variable size data
on C_backends
The compiler generated errornous code when IDL
defined arrays that contained variable size data such
as strings, variable size structs or other sequences.
Own Id: OTP-2901
-
A bug concerning bounded strings on C-backends is fixed.
The compiler generated errornous code for IDL
defined bounded strings. Syntax errors were generated
in special cases of typdedefined strings.
Own Id: OTP-2898
-
A runtime error when sequences that contained integer types is fixed.
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.
Own Id: OTP-2899
-
An OMG IDL - C mapping problem on enumerant values is fixed.
The enumerant values names is now prefixed by the current scope,
as defined in the specification.
Own Id: OTP-2902
-
A problem when using constants in array declarations is fixed.
Array dimentions declared with contants generated erroneous code.
Own Id: OTP-2864
1.24.3 Incompatibilities
-
Changes in C-generation on enumerant values.
1.24.4 Known bugs and problems
-
OMG IDL - C mapping is not consistent on sequnce naming.
There is som inconsistencies around sequence naming in the specification
which must be investigated further.
1.25 IC 3.1, Release Notes
1.25.1 Improvements and new features
-
No new features are added
1.25.2 Changes in compiler usage and code generation.
-
No changes since last version.
1.25.3 Fixed bugs and malfunctions
-
A bug is fixed on the generated structures.
The generated C code for the structures corresponds now
to direct mapping of C-structs.
Own Id: OTP-2843
1.25.4 Incompatibilities
-
Included structures inside a struct are no longer pointers.
1.25.5 Known bugs and problems
-
Runtime error when list that contain longs, shorts
When C-clients/server that communicates with Erlang clients/servers,
and the data send by Erlang part is a list of small numbers,
the Erlang runtime compacts the list to a string
This is only actual in case of numbers with value less than 256
-
Compiler failure when arrays that contain dynamic data.
The compiler fails to compile IDL defined arrays that contain complex data.
1.26 IC 3.0, Release Notes
1.26.1 Improvements and new features
-
Interface change for C-backends
Major interface change. The new interface is CORBA 2.0
compliant.
Own Id: OTP-2845
-
The C-backends functionality is improved
-
Due to interface change and some unneeded error
checks,the C-generated code is fairly optimized.
1.26.2 Changes in compiler usage and code generation.
-
No changes since last version.
1.26.3 Fixed bugs and malfunctions
-
Several serious bugs on decoding and memory allocation are fixed.
1.26.4 Incompatibilities
-
Interface change on the C-backends
In order to be CORBA 2.0 compatible, the new version
generates fully incompatible C code.
1.26.5 Known bugs and problems
-
The same as in version 2.5.1
1.27 IC 2.5.1, Release Notes
1.27.1 Improvements and new features
-
A new backend is added : C-server
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.
Own Id: OTP-2713
-
The C-client functionality is improved
-
The static buffer used for input/output is removed along
with the
memset
function that initiated it.
The new client is at least 20-30 procent faster.
-
The internal structure of the client is changed.
The client fuctions 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 asynchonous
clients.
-
The static buffer used for input/output is remove along
with the
memset
function that initiated it.
The new client is at least 20-30 procent faster.
-
The code generated is generally improved, warnings are
(almost) eliminated, while no unidentified variable
errors occur.
-
The IDL types unsigned shorts, shorts, floats are supported now.
-
All generated functions are exported in client header files..
Own Id: OTP-2712
1.27.2 Changes in compiler usage and code generation.
-
A new option is added for the C-server back-end :
c_server
.
-
A new option is added :
scoped_op_calls
.
1.27.3 Fixed bugs and malfunctions
-
A bug oneway operations on erl_corba and erl_genserv that caused
en exit due to internal interface error is fixed.
-
A bug on oneway operations on c_genserv back-end that caused several
variables to be unidentifined is fixed.
1.27.4 Incompatibilities
-
Interface change on the C-client
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
-
The IDL type
attribute
is disabled, due to some implementation problems.
1.27.5 Known bugs and problems
-
The same as in version 2.1
1.28 IC 2.1, Release Notes
1.28.1 Improvements and new features
-
The compiler now provides more in depth information (outprints) when errors occur.
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.
Own Id: OTP-2565
1.28.2 Changes in compiler usage and code generation.
-
No changes since version 2.0
1.28.3 Fixed bugs and malfunctions
-
No changes since version 2.0
1.28.4 Incompatibilities
-
The same as in version 2.0
1.28.5 Known bugs and problems
-
The same as in version 2.0
1.29 IC 2.0, Release Notes
1.29.1 Improvements and new features
-
The IDL compiler is now a separate application and is longer a part of Orber.
-
Pragma handling implementation.
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.
In this implementation,
pragmas are accepted by the parser and applied by the use
of ic_pragma functions.
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.
There two major pragma categories :
-
Normal pragmas, are used in the code where
basic definitions and statements appear.
-
Under certain circumstances, ugly pragmas can now
appear inside code, parameter lists, structure
definitions ... etc.
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.
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.
The pragma effect is the same for both scope and basic
pragma rules.
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.
Own Id: OTP-2128
-
Code for interface inheritance registration for the IFR
registration code .
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
Own Id:
OTP-2134
-
IFR registration checks for included IDL files.
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.
Own Id: OTP-2138
-
Exception registration under IFR-operation creation.
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" ).
Own Id: OTP-2102
-
New back-end to IDL compiler : Plain Erlang.
The new back-end just translates IDL specifications
to Erlang module calls. No pragmas are allowed.
Own Id: OTP-2471
-
New back-end to IDL compiler : generic server.
A new back-end that translates IDL specifications
to a standard OTP generic server.
Own Id: OTP-2482
-
New back-end to IDL compiler : c client generation
A new back-end that translates IDL specifications
to a C API for accessing servers in Erlang.
Own Id: OTP-1511
-
All records in generated files reveal own Erlang modules.
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.
The Erlang file which contain these functions is
named after the scope of the record (similar
to the generated module and interface files).
Three functions are available :
-
tc/0 - returns the record type code,
-
id/0 - returns the record id,
-
name - returns the record name.
Own Id: OTP-2473
-
Changes in compiler usage and code generation.
-
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.
-
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.
Own Id: OTP-2474
-
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.
Own Id: OTP-2485
-
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".
Own Id: OTP-2487
1.29.2 Fixed bugs and malfunctions
-
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.
1.29.3 Incompatibilities
-
Changes in generated files.
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:
-
'OE_filename':'OE_register'().
This is changed by using the prefix "oe_"
instead for "OE_" for the above.
A registration call in Orber is now written:
-
oe_filename:oe_register().
Own Id: OTP-2440
1.29.4 Known bugs and problems
-
No checks are made to ensure reference integrity. IDL
specifies that identifiers must have only one
meaning in each scope.
-
Files are not closed properly when the compiler has
detected errors. This may result in an
emfiles
error code from the Erlang runtime system when the
maximum number of open files has been exceeded. The
solution is to restart the Erlang emulator when the file
error occurs.
-
If inline enumerator discriminator types are used, then
the name of the enumeration is on the same scope as the
name of the union type. This does not apply when
the discriminator type is written using a type
reference.
-
Parser failure with syntax error when "standard" preprocessor
directives such as #ifndef and #include (not pragmas) are used
in other than top level scope.
1.30 Previous Release Notes
For release notes on previous versions see the release notes on Orber (version previous to 1.0.3).
Copyright © 1991-2002
Ericsson Utvecklings AB