|
| 1 | +OiL 0.4 work1 [Tue, 27 Mar 2007] |
| 2 | + |
| 3 | +(a) Better architectural organization; |
| 4 | +(b) Deferred calls; |
| 5 | +(c) ORB shutdown operation; |
| 6 | +(d) Interception support; |
| 7 | +(e) More functional API; |
| 8 | + oil.main(function) |
| 9 | + oil.sleep(number) |
| 10 | + oil.newthread(function, ...) |
| 11 | + oil.newencoder() |
| 12 | + oil.newdecoder(string) |
| 13 | +(f) Better integrated CORBA IR: |
| 14 | + Ability to change IR definitions; |
| 15 | + Ability to load module parts using different 'oil.loadidl*' calls; |
| 16 | + Consistent storage of all IDL definitions, not only interfaces; |
| 17 | + Ability to import any definition from the remote delegated IR (oil.setIR); |
| 18 | +(g) Support for IDL large numbers: long long, unsigned long long, long double. |
| 19 | + Lua must be changed so lua_Number is 'long double'. |
| 20 | +(h) Unix shell scripts for execution of demos. |
| 21 | + |
| 22 | +OiL 0.4 work2 [Fri, 06 Apr 2007] |
| 23 | + |
| 24 | +(a) Bugfix in single request processing (oil.step); |
| 25 | +(b) Bugfix in 'oil.narrow' without interface specification; |
| 26 | +(c) Bugfixes in 'union' marshal; |
| 27 | +(d) Better verbose message for calls with string arguments that contains |
| 28 | + non-printable characters; |
| 29 | +(e) Better verbose level distribution: |
| 30 | + 1: operation invocation and dispatching; |
| 31 | + 2: GIOP request and reply processing; |
| 32 | + 3: mutual exclusion channel access (concurrent mode); |
| 33 | + 4: GIOP message creation and handling (i.e. send and receive); |
| 34 | + 5: socket channels creation and handling (i.e. connection and reuse); |
| 35 | + 6: value (un)marshaling; |
| 36 | + 7: hexadecimal view of marshaled streams; |
| 37 | + 8: creation of IDL table descriptors; |
| 38 | +(f) Automatically generated object keys always start with '\0'; |
| 39 | +(g) A single Lua object can be used as implementation of different CORBA objects |
| 40 | + created with automatic keys as long as they implement different interfaces |
| 41 | + because object keys now contains the interface table hash-code. As a result |
| 42 | + each time a Lua object is used as an object with a different interface |
| 43 | + a new CORBA object is created for each interface, which will be the actual |
| 44 | + (i.e. most specific) interface of the new CORBA object. To avoid implicit |
| 45 | + creation of different CORBA objects with different interfaces for a simgle |
| 46 | + Lua object, set the '__type' field of the objet meta-table (i.e. its |
| 47 | + class) to the interface (repID, absolute name, IDL descriptor, or remote IR |
| 48 | + object) that should be used; |
| 49 | + |
| 50 | +OiL 0.4 work2 (emergency update for OpenBus) [Thu, 19 Apr 2007] |
| 51 | + |
| 52 | +(a) Bugfix in 'loop.thread.Timer' that prevents the timer thread to end after |
| 53 | + first execution; |
| 54 | +(b) Bugfix in channel mutual exclusion control for receiving replies; |
| 55 | +(c) Addition of field 'oil.tasker' to get the coroutine scheduler component |
| 56 | + used by OiL; |
| 57 | +(d) Better verbose message in request invocation; |
| 58 | + |
| 59 | +OiL 0.4 work3 [Wed, 25 Apr 2007] |
| 60 | + |
| 61 | +(a) New version of LUAIDL (0.7.4b); |
| 62 | +(b) Bugfix: possible name collision of a host name 'retrieve' with an internal |
| 63 | + method of a data structure that holds information about hosts; |
| 64 | +(c) Bugfix: missing upvalue in 'reset' method of non-wrapped sockets |
| 65 | + (non-concurrent mode); |
| 66 | +(d) Bugfix: allow creation to proxies to 'CORBA::Object' references; |
| 67 | +(e) Bugfix in channel mutual exclusion control for sending replies of erroneous |
| 68 | + requests (e.g. invalid object key, wrong interface, location forward, etc); |
| 69 | +(f) Bugfix: correction of verbose messages for invocation and dispatch of |
| 70 | + methods that take string parameters; |
| 71 | +(g) 'oil.narrow' and 'proxy:_narrow' now accepts any valid interface |
| 72 | + specification, i.e. repID, absoulute name, IDL descriptor, or remote IR |
| 73 | + object; |
| 74 | +(h) Support for marshaling of typecode 'null' and therefore anys containing |
| 75 | + values of type 'null'; |
| 76 | +(i) 'nil' values used as 'any' are automatically coded as 'null'; |
| 77 | +(j) The interface of an implicitly created CORBA object can also be defined by |
| 78 | + field '__type' of the object implementation itself (in older versions, |
| 79 | + only the '__type' field of the metatable could be used); |
| 80 | +(k) Restore object implementation when an IOR is found that references the ORB |
| 81 | + itself. If the object was created implicitly or with an automatic object key |
| 82 | + then the object implementation is returned otherwise the CORBA object table |
| 83 | + is returned (i.e. not a proxy but the object originally returned by |
| 84 | + 'oil.newservant'); |
| 85 | +(l) The function used to handle exceptions can be defined for all proxies of a |
| 86 | + given interface by function 'oil.setexcepthandler(handler [, interface])'. |
| 87 | + If no interface is provided then the handler is set for all proxies. |
| 88 | + Previously, this handler could only be set for individual proxies by field |
| 89 | + '__exceptions'; |
| 90 | +(m) Now, if the exception handler function returns (i.e. not raise a Lua error) |
| 91 | + then the exception is ignored and the values returned are used as the |
| 92 | + results of the invocation that raised in the original exception; |
| 93 | +(n) Addition of 'oil.deactivate(<corbaobj | implobj | objkey> [, interface])' |
| 94 | + that removes an object from the ORB; |
| 95 | + |
| 96 | +OiL 0.4 work4 [Fri, 08 Jun 2007] |
| 97 | + |
| 98 | +(a) Bugfix: addition of missing required libraries; |
| 99 | +(b) Bugfix: exceptions members were not loaded into the repository; |
| 100 | +(c) Bugfix: verbose message generation; |
| 101 | +(d) Bugfix: correction of the object returned by interception; |
| 102 | +(e) Bugfix: local CORBA exceptions are generated with proper repID; |
| 103 | +(f) Bugfix: handling of object forwarding in concurrent mode; |
| 104 | +(g) Support for proper handling of location request messages; |
| 105 | +(h) Automatic reconnections when connection is closed. WARNING: Operation |
| 106 | + invocation may be issued many times if no reply is sent (no at-most-once |
| 107 | + guarantees); |
| 108 | + |
| 109 | +OiL 0.4 work5 [Fri, 18 Jul 2007] |
| 110 | + |
| 111 | +(a) Bugfix in invocation error handling. |
| 112 | +(b) Bugfix in oneway invocations. |
| 113 | +(c) Bugfix in verbose message generation. |
| 114 | +(d) Bugfix in generation of local exceptions' repID. |
| 115 | +(e) Bugfix in verification of values being marshaled. |
| 116 | +(f) Bugfix in marshal of 'any'. |
| 117 | +(g) Bugfix in interface definition import from a remote Interface Repository |
| 118 | +(h) Bugfix in union field access. |
| 119 | +(i) Bugfix in absolute name resolution ('lookup' operation). |
| 120 | +(j) Bugfix in stream read when operation yields due to a full buffer. |
| 121 | +(k) Bugfix to allow servants to implement implicit operations (e.g. CORBA's |
| 122 | + operations that start with '_') |
| 123 | +(l) Any's now provide the field _anytype to identify the IDL type of the value. |
| 124 | +(m) Utility script to create Lua scripts that feed the internal IR from IDL files. |
| 125 | +(n) OiL internal components are available through the 'oil' module itself |
| 126 | + instead of field 'oil.Components'. |
| 127 | +(o) API operation 'oil.newobject' becomes 'oil.newservant'. However, the alias |
| 128 | + 'oil.newobject' is provided for compatibility. |
| 129 | +(p) OiL internal coroutine scheduler is accessible through field 'oil.tasks' |
| 130 | + instead of 'oil.scheduler'. |
| 131 | +(q) OiL internal interface repository is accessible through field 'oil.types'. |
| 132 | +(r) CORBA interception is disabled by default. See demo 'interceptors' for |
| 133 | + information about how to enable it. |
| 134 | +(s) Rules to strip and reinsert verbose support from OiL's code. |
| 135 | + |
| 136 | +OiL 0.4 work6 [Wed, 1 Aug 2007] |
| 137 | + |
| 138 | +(a) Bugfix in array description registration in the internal Interface |
| 139 | + Repository. |
| 140 | +(b) Bugfix in 'oil.pcall' in CORBA interception mode. |
| 141 | +(c) Bugfix in script 'idl2lua.lua' by an improvement to avoid that global |
| 142 | + functions be serialized as module members. |
| 143 | +(d) Bugfix in select function wrapper. The error was not detected before due to |
| 144 | + strange behavior of LuaSocket that returned ordinary tables inserted in |
| 145 | + function arguments just like ready sockets. |
| 146 | +(e) Bugfix in importation of remote exception's members. |
| 147 | +(f) Bugfix in builder error handling. |
| 148 | +(g) Bugfix in verbose message generation and removal of redundant verbose |
| 149 | + messages. |
| 150 | +(h) Bugfix: select calls that executed without yielding returned socket objects |
| 151 | + instead of socket wrappers that implement scheduler integration. |
| 152 | +(i) Bugfix in TypeCode marshaling with indirections. Indirections cannot span |
| 153 | + across the top-most TypeCode boundaries. Improvement in verbose messages to |
| 154 | + avoid printing non-printable characters. |
| 155 | +(j) Exceptions created with oil.newexcept now can contain exceptions's abosule |
| 156 | + name instead of repID. |
| 157 | +(k) oil.setexcatch(func, iface) receives any interface identification (repID, |
| 158 | + absolute name, remote IR object, etc.) |
| 159 | +(l) Performance improvement by use of 'tcp-nodelay' option. |
| 160 | + |
| 161 | +OiL 0.4 work7 [Tue, 21 Aug 2007 - r66613] |
| 162 | + |
| 163 | +(a) Bugfix in handling of system exceptions raised by servants. |
| 164 | +(b) Bugfix in verbose message generation |
| 165 | +(c) Bugfix in serialization of long long type descriptor in 'idl2lua' script. |
| 166 | +(d) Bugfix to avoid that attributes be indexed through proxies. |
| 167 | +(e) Bugfix: channel is stored in the reference object to avoid retrieve the |
| 168 | + channel at each new invocation. |
| 169 | +(f) Bugfix: Verbose class use a specific Viewer instance to avoid changing the |
| 170 | + Viewer class' behavior. |
| 171 | +(g) Standard system exceptions are loaded into the internal IR. |
| 172 | +(h) Improvement to allow creation of GIOP Exceptions without body. |
| 173 | +(i) Sequences containing 'nil' can have the 'n' field to indicate the number of |
| 174 | + elements. |
| 175 | +(j) Implementation of _is_equivalent operation of CORBA references. |
| 176 | +(k) Object references with unknown types are created with field 'type_id' set to |
| 177 | + ''. |
| 178 | +(l) Improvement by addition of 'cosocket' verbose tag as a new level of verbose |
| 179 | + in Scheduler verbose. |
| 180 | +(m) New demo about exception handling. |
| 181 | + |
| 182 | +OiL 0.4 work8 [Tue, 4 Sep 2007 - r67052] |
| 183 | + |
| 184 | +(a) Bugfix in Ludo protocol to work with object keys that contains null |
| 185 | + characters. |
| 186 | +(b) Bugfix to allow use with typeless protocols like Ludo. |
| 187 | +(c) New operation 'oil.tasks:halt()' to stop the coroutine scheduling. |
| 188 | +(d) Operation 'oil.deactivate' fails quietly allowing the application to |
| 189 | + deactivate an servant many times without getting an error. |
| 190 | +(e) Sequences returned by OiL now have the 'n' field set properly to handle |
| 191 | + sequences with nil values like sequence of objects or anys. |
| 192 | +(f) Support for commands 'step', 'step"in"', 'step"out"' and break points |
| 193 | + ('mkbp(<file>,<line>)', 'rmbp(<file>,<line>)', 'lsbp') in debug console of |
| 194 | + 'oil.verbose:debug()'. |
| 195 | +(g) Use of package 'socket.core' instead of 'socket' package due to unused |
| 196 | + functions provided by the former package. |
| 197 | +(h) Update of the demo 'hello_simple' to use the Ludo protocol. |
0 commit comments