Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
OiL 0.4 work1 [Tue, 27 Mar 2007]
(a) Better architectural organization;
(b) Deferred calls;
(c) ORB shutdown operation;
(d) Interception support;
(e) More functional API;
oil.main(function)
oil.sleep(number)
oil.newthread(function, ...)
oil.newencoder()
oil.newdecoder(string)
(f) Better integrated CORBA IR:
Ability to change IR definitions;
Ability to load module parts using different 'oil.loadidl*' calls;
Consistent storage of all IDL definitions, not only interfaces;
Ability to import any definition from the remote delegated IR (oil.setIR);
(g) Support for IDL large numbers: long long, unsigned long long, long double.
Lua must be changed so lua_Number is 'long double'.
(h) Unix shell scripts for execution of demos.
OiL 0.4 work2 [Fri, 06 Apr 2007]
(a) Bugfix in single request processing (oil.step);
(b) Bugfix in 'oil.narrow' without interface specification;
(c) Bugfixes in 'union' marshal;
(d) Better verbose message for calls with string arguments that contains
non-printable characters;
(e) Better verbose level distribution:
1: operation invocation and dispatching;
2: GIOP request and reply processing;
3: mutual exclusion channel access (concurrent mode);
4: GIOP message creation and handling (i.e. send and receive);
5: socket channels creation and handling (i.e. connection and reuse);
6: value (un)marshaling;
7: hexadecimal view of marshaled streams;
8: creation of IDL table descriptors;
(f) Automatically generated object keys always start with '\0';
(g) A single Lua object can be used as implementation of different CORBA objects
created with automatic keys as long as they implement different interfaces
because object keys now contains the interface table hash-code. As a result
each time a Lua object is used as an object with a different interface
a new CORBA object is created for each interface, which will be the actual
(i.e. most specific) interface of the new CORBA object. To avoid implicit
creation of different CORBA objects with different interfaces for a simgle
Lua object, set the '__type' field of the objet meta-table (i.e. its
class) to the interface (repID, absolute name, IDL descriptor, or remote IR
object) that should be used;
OiL 0.4 work2 (emergency update for OpenBus) [Thu, 19 Apr 2007]
(a) Bugfix in 'loop.thread.Timer' that prevents the timer thread to end after
first execution;
(b) Bugfix in channel mutual exclusion control for receiving replies;
(c) Addition of field 'oil.tasker' to get the coroutine scheduler component
used by OiL;
(d) Better verbose message in request invocation;
OiL 0.4 work3 [Wed, 25 Apr 2007]
(a) New version of LUAIDL (0.7.4b);
(b) Bugfix: possible name collision of a host name 'retrieve' with an internal
method of a data structure that holds information about hosts;
(c) Bugfix: missing upvalue in 'reset' method of non-wrapped sockets
(non-concurrent mode);
(d) Bugfix: allow creation to proxies to 'CORBA::Object' references;
(e) Bugfix in channel mutual exclusion control for sending replies of erroneous
requests (e.g. invalid object key, wrong interface, location forward, etc);
(f) Bugfix: correction of verbose messages for invocation and dispatch of
methods that take string parameters;
(g) 'oil.narrow' and 'proxy:_narrow' now accepts any valid interface
specification, i.e. repID, absoulute name, IDL descriptor, or remote IR
object;
(h) Support for marshaling of typecode 'null' and therefore anys containing
values of type 'null';
(i) 'nil' values used as 'any' are automatically coded as 'null';
(j) The interface of an implicitly created CORBA object can also be defined by
field '__type' of the object implementation itself (in older versions,
only the '__type' field of the metatable could be used);
(k) Restore object implementation when an IOR is found that references the ORB
itself. If the object was created implicitly or with an automatic object key
then the object implementation is returned otherwise the CORBA object table
is returned (i.e. not a proxy but the object originally returned by

Renato Figueiro Maia
committed
'oil.newservant');
(l) The function used to handle exceptions can be defined for all proxies of a
given interface by function 'oil.setexcepthandler(handler [, interface])'.
If no interface is provided then the handler is set for all proxies.
Previously, this handler could only be set for individual proxies by field
'__exceptions';
(m) Now, if the exception handler function returns (i.e. not raise a Lua error)
then the exception is ignored and the values returned are used as the
results of the invocation that raised in the original exception;
(n) Addition of 'oil.deactivate(<corbaobj | implobj | objkey> [, interface])'
that removes an object from the ORB;
OiL 0.4 work4 [Fri, 08 Jun 2007]
(a) Bugfix: addition of missing required libraries;
(b) Bugfix: exceptions members were not loaded into the repository;
(c) Bugfix: verbose message generation;
(d) Bugfix: correction of the object returned by interception;
(e) Bugfix: local CORBA exceptions are generated with proper repID;
(f) Bugfix: handling of object forwarding in concurrent mode;
(g) Support for proper handling of location request messages;
(h) Automatic reconnections when connection is closed. WARNING: Operation
invocation may be issued many times if no reply is sent (no at-most-once
guarantees);
OiL 0.4 work5 [Fri, 18 Jul 2007]
(a) Bugfix in invocation error handling.
(b) Bugfix in oneway invocations.
(c) Bugfix in verbose message generation.
(d) Bugfix in generation of local exceptions' repID.
(e) Bugfix in verification of values being marshaled.
(f) Bugfix in marshal of 'any'.
(g) Bugfix in interface definition import from a remote Interface Repository
(h) Bugfix in union field access.
(i) Bugfix in absolute name resolution ('lookup' operation).
(j) Bugfix in stream read when operation yields due to a full buffer.
(k) Bugfix to allow servants to implement implicit operations (e.g. CORBA's
operations that start with '_')
(l) Any's now provide the field _anytype to identify the IDL type of the value.
(m) Utility script to create Lua scripts that feed the internal IR from IDL files.
(n) OiL internal components are available through the 'oil' module itself
instead of field 'oil.Components'.
(o) API operation 'oil.newobject' becomes 'oil.newservant'. However, the alias
'oil.newobject' is provided for compatibility.
(p) OiL internal coroutine scheduler is accessible through field 'oil.tasks'
instead of 'oil.scheduler'.
(q) OiL internal interface repository is accessible through field 'oil.types'.
(r) CORBA interception is disabled by default. See demo 'interceptors' for
information about how to enable it.
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
(s) Rules to strip and reinsert verbose support from OiL's code.
OiL 0.4 work6 [Wed, 1 Aug 2007]
(a) Bugfix in array description registration in the internal Interface
Repository.
(b) Bugfix in 'oil.pcall' in CORBA interception mode.
(c) Bugfix in script 'idl2lua.lua' by an improvement to avoid that global
functions be serialized as module members.
(d) Bugfix in select function wrapper. The error was not detected before due to
strange behavior of LuaSocket that returned ordinary tables inserted in
function arguments just like ready sockets.
(e) Bugfix in importation of remote exception's members.
(f) Bugfix in builder error handling.
(g) Bugfix in verbose message generation and removal of redundant verbose
messages.
(h) Bugfix: select calls that executed without yielding returned socket objects
instead of socket wrappers that implement scheduler integration.
(i) Bugfix in TypeCode marshaling with indirections. Indirections cannot span
across the top-most TypeCode boundaries. Improvement in verbose messages to
avoid printing non-printable characters.
(j) Exceptions created with oil.newexcept now can contain exceptions's abosule
name instead of repID.
(k) oil.setexcatch(func, iface) receives any interface identification (repID,
absolute name, remote IR object, etc.)
(l) Performance improvement by use of 'tcp-nodelay' option.
OiL 0.4 work7 [Tue, 21 Aug 2007 - r66613]
(a) Bugfix in handling of system exceptions raised by servants.
(b) Bugfix in verbose message generation
(c) Bugfix in serialization of long long type descriptor in 'idl2lua' script.
(d) Bugfix to avoid that attributes be indexed through proxies.
(e) Bugfix: channel is stored in the reference object to avoid retrieve the
channel at each new invocation.
(f) Bugfix: Verbose class use a specific Viewer instance to avoid changing the
Viewer class' behavior.
(g) Standard system exceptions are loaded into the internal IR.
(h) Improvement to allow creation of GIOP Exceptions without body.
(i) Sequences containing 'nil' can have the 'n' field to indicate the number of
elements.
(j) Implementation of _is_equivalent operation of CORBA references.
(k) Object references with unknown types are created with field 'type_id' set to
''.
(l) Improvement by addition of 'cosocket' verbose tag as a new level of verbose
in Scheduler verbose.
(m) New demo about exception handling.
OiL 0.4 work8 [Tue, 4 Sep 2007 - r67052]
(a) Bugfix in Ludo protocol to work with object keys that contains null
characters.
(b) Bugfix to allow use with typeless protocols like Ludo.
(c) New operation 'oil.tasks:halt()' to stop the coroutine scheduling.
(d) Operation 'oil.deactivate' fails quietly allowing the application to
deactivate an servant many times without getting an error.
(e) Sequences returned by OiL now have the 'n' field set properly to handle
sequences with nil values like sequence of objects or anys.
(f) Support for commands 'step', 'step"in"', 'step"out"' and break points
('mkbp(<file>,<line>)', 'rmbp(<file>,<line>)', 'lsbp') in debug console of
'oil.verbose:debug()'.
(g) Use of package 'socket.core' instead of 'socket' package due to unused
functions provided by the former package.
(h) Update of the demo 'hello_simple' to use the Ludo protocol.