Re: C++ Bindings Generate static const Code that will not Compile



lgust verizon net wrote:

Hi Bowie,

We checked out a copy of the orbitcpp module from CVS. After we
built and installed orbitcpp, I still see the same erroneous code:

#undef SIZE
       static  const char *SIZE = "SIZE";
Can you check the ChangeLog and make sure there is an entry that reads (should be at the top):

2003-11-20 Bowie Owens <bowie owens csiro au>
       * orbitcpp/idl-compiler/types/IDLString.cc
       * test/cpp/everything/everything.idl:
       Fix constness of string constants.

And check that line 40 of orbitcpp/idl-compiler/types/IDLString.cc reads:

   ostr << indent << "char const* const " << cpp_id << " = " << value


The anonymous cvs server may take a little while to sync with the developer server. If that was the problem, you can do a cvs update to bring your checkout copy up to date.

I noticed that building the orbitcpp package replaced the following
shared library:

lrwxrwxrwx    1 nfr      engr           51 Nov 21 09:47 libORBit-2-cpp.so -> ../stow/orbitcpp-cvs-20031120/lib/libORBit-2-cpp.so

But it didn't replace the IDL compiler:

lrwxrwxrwx    1 nfr      engr           36 Nov 18 11:51 orbit-idl-2 -> ../stow/ORBit2-2.7.6/bin/orbit-idl-2

Do we need to rebuild both the ORBit2 and orbitcpp packages from CVS to get your changes to work?
No. Each language binding has it's own backend. Each backend is simply a .so/dll that implements a function which the idl compiler will call. So you can add new language bindings (or fix broken ones) without changing the lexer/parser.


--
Bowie Owens

CSIRO Mathematical & Information Sciences
phone  : +61 3 9545 8055
fax    : +61 3 9545 8080
mobile : 0425 729 875
email  : Bowie Owens csiro au






[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]