Discussion:
[omniORB] Announce: omniORB 4.1.0 and omniORBpy 3.0 release candidates
Duncan Grisby
2006-09-29 04:17:08 UTC
Permalink
omniORB 4.1.0 RC 1 and omniORBpy 3.0 RC 1 are now available. Please test
these release candidates.

The releases are available from SourceForge as usual:

http://sourceforge.net/project/showfiles.php?group_id=51138&package_id=44914&release_id=450879
http://sourceforge.net/project/showfiles.php?group_id=51138&package_id=48639&release_id=450880

Binaries are not available at this stage.

Documentation is included in the distributions, or can be read online
here:

http://omniorb.sourceforge.net/omni41/omniORB/
http://omniorb.sourceforge.net/omnipy3/omniORBpy/


These are major new releases over omniORB 4.0.x and omniORBpy 2.x. A
summary of the new features:


Changes since omniORB 4.1.0 beta 2 and omniORBpy 3.0 beta 2
-----------------------------------------------------------

- Incompatible change to the clientSendRequest interceptor members.
Application code using the interceptor will require a small
modification.

- Support for insertion / extraction of various types from standard
iostreams.

- More comprehensive logging of connection and protocol errors.

- Experimental omniConnectionMgmt extension.

- New omniORBpy C++ api functions.

- omniORBpy support for Python 2.5.

- Minor bug fixes.


Changes since omniORB 4.1.0 beta 1 and omniORBpy 3.0 beta 1
-----------------------------------------------------------

- IPv6 support.

See section 8.6.1 of the omniORB manual for details.

- New endPointPublish parameter.

Used for configuring what to publish in IORs. See section 8.6.2
of the omniORB manual.

- Minor bug fixes.


Changes since omniORB 4.0.x
---------------------------

- Objects by value support.

omniORB now supports the full objects by value specification, with
the exception of custom valuetypes. See chapter 13 of the omniORB
manual / chapter 10 of the omniORBpy manual for information about
valuetype in omniORB.

- Abstract interfaces support.

- New simpler and more efficient C++ Any implementation.

- New socket collection implementation.

Uses poll() on platforms where it is available to avoid limiting
the number of connections to FD_SETSIZE. Windows specific version
that better manages the unusual Windows fd_set.

- New tracing options traceTime and traceInvocationReturns.

See section 4.2 of the omniORB manual.

- C++ mapping updated to version 1.1.

Deprecation of RefCountServantBase; Servant_var template type.

- Support for local interfaces in C++.

In particular, ServantManagers and AdapterActivators no longer
need to be activated in a POA, but can be simple C++ objects. See
the examples in src/examples/poa/servant_manager.

- Partial support for local interfaces in Python.

In particular, ServantManagers and AdapterActivators no longer
need to be activated in a POA, but can be simple Python objects.
See the examples in examples/poa.

- New-style Python classes can now be used for servants.


Enjoy!

Duncan.
--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --
Thomas Lockhart
2006-10-20 10:51:12 UTC
Permalink
Post by Duncan Grisby
omniORB 4.1.0 RC 1 and omniORBpy 3.0 RC 1 are now available. Please
test these release candidates.
I'm including patches to fix some compiler warnings about non-virtual
destructors, or rather about classes which have virtual methods but do
not have a virtual destructor defined.

There are additional patches in the attached patch file which fix a few
compiler warnings about possible uninitialized variables. You may or may
not want to actually apply those, but if so I can give you more patches
for more of those cases if so.

Also, I see warnings from omniidl which were not present in earlier
versions:

omniidl -bpython -I/usr/share/idl/omniORB test.idl
corbaidl.idl:15: Warning: Forward declared interface 'CORBA::IDLType'
was never fully defined
omniidl: 1 warning.

for cases where #include <orb.idl> is present in my IDL (used to get
access to typecode definitions in TAO; it was formerly a no-op for
omniORB afaicr).

I haven't yet tried running python code but will get to that next.
Thanks for the upcoming release!

- Tom

-------------- next part --------------
diff -cr -bB -N omniORB-4.1.0-rc1.orig/include/omniORB4/internal/initialiser.h omniORB-4.1.0-rc1/include/omniORB4/internal/initialiser.h
*** omniORB-4.1.0-rc1.orig/include/omniORB4/internal/initialiser.h 2003-03-23 13:03:46.000000000 -0800
--- omniORB-4.1.0-rc1/include/omniORB4/internal/initialiser.h 2006-10-19 16:45:11.000000000 -0700
***************
*** 65,70 ****
--- 65,71 ----
// is destroyed.
class omniInitialiser {
public:
+ virtual ~omniInitialiser();
virtual void attach() = 0;
virtual void detach() = 0;

diff -cr -bB -N omniORB-4.1.0-rc1.orig/include/omniORB4/omniInterceptors.h omniORB-4.1.0-rc1/include/omniORB4/omniInterceptors.h
*** omniORB-4.1.0-rc1.orig/include/omniORB4/omniInterceptors.h 2006-07-18 09:21:24.000000000 -0700
--- omniORB-4.1.0-rc1/include/omniORB4/omniInterceptors.h 2006-10-19 16:22:05.000000000 -0700
***************
*** 325,330 ****
--- 325,331 ----

class info_T {
public:
+ virtual ~info_T();
virtual void run() = 0;
};

***************
*** 340,345 ****
--- 341,347 ----

class info_T {
public:
+ virtual ~info_T();
virtual void run() = 0;
};

diff -cr -bB -N omniORB-4.1.0-rc1.orig/src/lib/omniORB/orbcore/corbaOrb.cc omniORB-4.1.0-rc1/src/lib/omniORB/orbcore/corbaOrb.cc
*** omniORB-4.1.0-rc1.orig/src/lib/omniORB/orbcore/corbaOrb.cc 2006-05-02 06:08:26.000000000 -0700
--- omniORB-4.1.0-rc1/src/lib/omniORB/orbcore/corbaOrb.cc 2006-10-19 17:23:53.000000000 -0700
***************
*** 1258,1263 ****
--- 1258,1266 ----
static omni_hooked_initialiser hinitialiser;
omniInitialiser& omni_hooked_initialiser_ = hinitialiser;

+ omniInitialiser::~omniInitialiser() {
+ }
+
void
omniInitialiser::
install(omniInitialiser* init) {
diff -cr -bB -N omniORB-4.1.0-rc1.orig/src/lib/omniORB/orbcore/logIOstream.cc omniORB-4.1.0-rc1/src/lib/omniORB/orbcore/logIOstream.cc
*** omniORB-4.1.0-rc1.orig/src/lib/omniORB/orbcore/logIOstream.cc 2006-04-28 11:40:46.000000000 -0700
--- omniORB-4.1.0-rc1/src/lib/omniORB/orbcore/logIOstream.cc 2006-10-19 16:48:35.000000000 -0700
***************
*** 335,341 ****
*this << " (deactivating OA)";break;
case omniObjTableEntry::ETHEREALISING: *this << " (etherealising)"; break;
case omniObjTableEntry::DEAD: *this << " (dead)"; break;
! default: *this << " (???)";
}
}
else
--- 335,341 ----
*this << " (deactivating OA)";break;
case omniObjTableEntry::ETHEREALISING: *this << " (etherealising)"; break;
case omniObjTableEntry::DEAD: *this << " (dead)"; break;
! default: *this << " (unknown)";
}
}
else
diff -cr -bB -N omniORB-4.1.0-rc1.orig/src/lib/omniORB/orbcore/poa.cc omniORB-4.1.0-rc1/src/lib/omniORB/orbcore/poa.cc
*** omniORB-4.1.0-rc1.orig/src/lib/omniORB/orbcore/poa.cc 2006-07-18 09:21:21.000000000 -0700
--- omniORB-4.1.0-rc1/src/lib/omniORB/orbcore/poa.cc 2006-10-19 17:15:21.000000000 -0700
***************
*** 3083,3088 ****
--- 3083,3091 ----

OMNI_NAMESPACE_BEGIN(omni)

+ omniInterceptors::createThread_T::info_T::~info_T() {
+ }
+
class saTaskQueueCreateInfo
: public omniInterceptors::createThread_T::info_T {
public:
***************
*** 3109,3114 ****
--- 3112,3120 ----
pd_worker->mid_run();
}

+ omniInterceptors::assignUpcallThread_T::info_T::~info_T() {
+ }
+
class saTaskQueueAssignInfo
: public omniInterceptors::assignUpcallThread_T::info_T {
public:
diff -cr -bB -N omniORB-4.1.0-rc1.orig/src/lib/omniORB/orbcore/transportRules.cc omniORB-4.1.0-rc1/src/lib/omniORB/orbcore/transportRules.cc
*** omniORB-4.1.0-rc1.orig/src/lib/omniORB/orbcore/transportRules.cc 2006-08-09 10:55:32.000000000 -0700
--- omniORB-4.1.0-rc1/src/lib/omniORB/orbcore/transportRules.cc 2006-10-19 16:55:55.000000000 -0700
***************
*** 391,397 ****

transportRules::Rule* createRule(const char* address_mask) {

! CORBA::ULong network, netmask;

#if defined(OMNI_SUPPORT_IPV6)
builtinIPv6Rule::Addr ip6network;
--- 391,397 ----

transportRules::Rule* createRule(const char* address_mask) {

! CORBA::ULong network = 0, netmask = 0;

#if defined(OMNI_SUPPORT_IPV6)
builtinIPv6Rule::Addr ip6network;
diff -cr -bB -N omniORB-4.1.0-rc1.orig/src/tool/omniidl/cxx/idlast.cc omniORB-4.1.0-rc1/src/tool/omniidl/cxx/idlast.cc
*** omniORB-4.1.0-rc1.orig/src/tool/omniidl/cxx/idlast.cc 2006-05-24 11:30:53.000000000 -0700
--- omniORB-4.1.0-rc1/src/tool/omniidl/cxx/idlast.cc 2006-10-19 16:43:27.000000000 -0700
***************
*** 583,589 ****
InheritSpec::
append(InheritSpec* is, const char* file, int line)
{
! InheritSpec *i, *last;

if (is->interface()) {
for (i=this; i; i = i->next_) {
--- 583,589 ----
InheritSpec::
append(InheritSpec* is, const char* file, int line)
{
! InheritSpec *i, *last = 0;

if (is->interface()) {
for (i=this; i; i = i->next_) {
***************
*** 2615,2621 ****
ValueInheritSpec::
append(ValueInheritSpec* is, const char* file, int line)
{
! ValueInheritSpec *i, *last;

for (i=this; i; i = i->next_) {
last = i;
--- 2615,2621 ----
ValueInheritSpec::
append(ValueInheritSpec* is, const char* file, int line)
{
! ValueInheritSpec *i, *last = 0;

for (i=this; i; i = i->next_) {
last = i;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.idl
Type: text/x-idl
Size: 73 bytes
Desc: not available
Url : http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20061019/0a712a75/test.bin
Duncan Grisby
2006-11-02 20:26:29 UTC
Permalink
Post by Thomas Lockhart
I'm including patches to fix some compiler warnings about non-virtual
destructors, or rather about classes which have virtual methods but do
not have a virtual destructor defined.
Thanks. However, it's by design that those classes have non-virtual
destructors. They are always created on the stack or as global statics,
so they are always deleted by most derived class. To give them virtual
destructors just adds code along the call chain for no reason other than
to suppress a compiler warning.
Post by Thomas Lockhart
There are additional patches in the attached patch file which fix a
few compiler warnings about possible uninitialized variables. You may
or may not want to actually apply those, but if so I can give you more
patches for more of those cases if so.
I've applied your patches, but I'm not particularly inclined to go on a
big crusade to remove all such warnings. There are no cases where the
variables really are used uninitialised -- gcc just isn't clever enough
to work it out.
Post by Thomas Lockhart
Also, I see warnings from omniidl which were not present in earlier
omniidl -bpython -I/usr/share/idl/omniORB test.idl
corbaidl.idl:15: Warning: Forward declared interface 'CORBA::IDLType'
was never fully defined
omniidl: 1 warning.
for cases where #include <orb.idl> is present in my IDL (used to get
access to typecode definitions in TAO; it was formerly a no-op for
omniORB afaicr).
I've fixed that by suppressing the omniidl warning about unresolved
forward declared interfaces for interfaces in the CORBA module.

Cheers,

Duncan.
--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --
Tuyen Chau
2006-11-09 03:17:46 UTC
Permalink
Hi Duncan,

Do you know when omniORB 4.1.0 will officially release (as opposed to
being a Release Candidate) ?

Thanks,
Tuyen

Loading...