FrescoKnown Problems


This page describes known problems with the Fresco release assembled on Fri May 17 1996.

All versions:

The ixx program (idl to c++ translater) lacks documentation.

The Fresco text module lacks example programs, documenation, and rigorous testing.

The examples (examplesapp on win23) program has incorrect window behavior. For example, when you close one of the example applets, then the entire application incorrectly exits. Also, when you attempt to close a dialog using the window manager (without using the "OK" button) then this can cause the entire application to exit when the dialog (or some "outer" dialog in the nested case) is later closed.

Errors occur with some widgets and programs if you are running on a system without thread support. See the About Threads page for more info.

Some of the (Unix) readme file forgets to mention the need to set LD_LIBRARY_PATH. This results in the error message when trying to run a Fresco program:
    libbase.so: can't open file
or, on Linux, 
    Software Error - file ../../Fresco/base/fresco_lib.cxx, line 341, 
            dc != nil
See the Solaris 2.5 page for how to set LD_LIBRARY_PATH.

The File Chooser does not allow entering absolute or relative paths inside its field editor. Also, the file chooser has not been tested in scenarious other than the "examples" program.

Remote narrow fails in some situations. Here is the patch to marshal_buffer.cxx:
*** /vobs/coleus/idl/marshal_buffer.cxx@@/main/2	Thu May  2 14:11:40 1996
--- marshal_buffer.cxx	Wed May 29 11:02:30 1996
***************
*** 469,475 ****
      if (methodNum == CORBA::ULong(OcsExchange::narrow_op)) {
  	reply.put_long(0);
  	reply.put_long(
! 	    s->match(obj->_this_ptr(), s->lookup_id(tid), obj->_tc()) != nil
  	);
      } else if (methodNum == CORBA::ULong(OcsExchange::ping_op)) {
  	reply.put_long(0);
--- 469,475 ----
      if (methodNum == CORBA::ULong(OcsExchange::narrow_op)) {
  	reply.put_long(0);
  	reply.put_long(
! 	    s->match(obj->_this_ptr(), obj->_tc(), s->lookup_id(tid)) != nil
  	);
      } else if (methodNum == CORBA::ULong(OcsExchange::ping_op)) {
  	reply.put_long(0);

Sequence assigment fails (for non-remote situations). For example,
   AllocationInfoSeq a;
   allocations(a);
   AllocationInfoSeq b = a;  // b contains garbage.

Here's the patch to file corba.cxx:
*** /vobs/coleus/idl/corba.cxx@@/main/7	Tue May 28 11:49:13 1996
--- corba.cxx	Mon Jun 10 15:24:02 1996
***************
*** 538,544 ****
  	    *(void**)v = nil;
  	} else {
  	    *(void**)v = obj->_exchange()->duplicate(
! 		obj, CORBA::TypeCode_ptr(t),
  		((_OcsInterfaceDescriptor*)t)->create
  	    );
  	}
--- 538,544 ----
  	    *(void**)v = nil;
  	} else {
  	    *(void**)v = obj->_exchange()->duplicate(
! 		*(void**)src, CORBA::TypeCode_ptr(t),
  		((_OcsInterfaceDescriptor*)t)->create
  	    );
  	}
***************
*** 647,658 ****
  	    break;
  	}
  	case CORBA::tk_objref: {
! 	    CORBA::Object_ptr ptr = OcsStubImpl::get_objref(t, v);
! 	    CORBA::Object_ptr src_ptr = OcsStubImpl::get_objref(t, src);
! 	    if (ptr != src_ptr) {
! 		CORBA::release(ptr);
  		*(void**)v = _ox_duplicate(
! 		    src_ptr, *(void**)src, (CORBA::TypeCode_ptr)t,
  		    ((_OcsInterfaceDescriptor*)t)->create
  		);
  	    }
--- 647,658 ----
  	    break;
  	}
  	case CORBA::tk_objref: {
! 	    CORBA::Object_ptr old_obj = OcsStubImpl::get_objref(t, v);
! 	    CORBA::Object_ptr src_obj = OcsStubImpl::get_objref(t, src);
! 	    if (old_obj != src_obj) {
! 		CORBA::release(old_obj);
  		*(void**)v = _ox_duplicate(
! 		    src_obj, *(void**)src, CORBA::TypeCode_ptr(t),
  		    ((_OcsInterfaceDescriptor*)t)->create
  		);
  	    }

Win32 version only:

The Win32 version is linked with libraries provided by MSVC++ 4.x. If you don't have these libraries on your system, you can obtain them from our WinLibs directory.

The vport example program crashes when attempting to load the text using the "Text" button.

There is no support for running ixx to re-generate headers and stub files should you want to change an IDL file. (If you have access to Unix, you can do "make gens" on the Unix version and copy the changed files over to Win32.)

Mac/Power PC version:

The Mac sources were distributed with Fresco96, however we were unable to bring them up-to-date at the time of the release. Thus, if you try to build for the Mac, you'll need to make some changes to the code.



Send comments or questions to our mailing list at fresco@merlin.iuk.tu-harburg.de

Last updated on Tue May 28 11:56:10 PDT 1996.