[LWN Logo]

Date: Tue, 09 Mar 1999 15:46:48 -0500
From: Gavriel State <uz87ogw3@umail.furryterror.org>
Subject: Corel-Cygnus deal - More info
To: wine-devel@winehq.com

Here's a more technical summary of what Cygnus is doing for us:

1) Precompiled headers.  These are absolutely required for anyone to do
serious winelib development.  For now the implementation is basically
going to be a core dump of the compiler state after reading in the pch. 
The Cygnus guys are going to be talking about a better implementation on
the egcs lists at some point, but preliminary indications are that this
will work very well for now.  I leave talk of performance improvement
ratios to the Cygnus guys....

2) Reduction in debug-info size.  Cygnus is going to do the work 
required in the compiler, linker, and debugger to reduce the size of
debug-info.  This is pretty intimately linked with the precompiled
header work - any debug info from the pch won't be duplicated in .o's
and in the final output of ld.  If you thought this was a problem for
WINE (20 Meg executables with debug vs 2 Meg without), you can't even
begin to imagine how big a problem this is for the WP apps.

3) The COM vtable format.  This will allow us to access COM objects
directly from C++, which is required for our code.  It also means that
one can implement COM objects in WINE in C++, which is also required by
our code.  This feature could also be used to build WINE implementations
of COM objects in C++ rather than the complex preprocessor macro system
that's being used currently.  

4) General syntactic enhancements to make MSVC code compile.  This
includes things like __stdcall, anonymous unions, etc etc.  


Now for the bad news: The work that's being done is in Cygnus' GNUPro
toolchain, not directly in egcs.  The changes will be available as
patches to GNUPro, but may need some work to be integrated into egcs. 
Once someone does do the work to integrate them into egcs, it will be up
to the egcs maintainers to decide if they want to incorporate these
changes into egcs itself.  

Also, our support contract with Cygnus prevents us from being a
'pass-through' for bugs from the wider WINE community.  We can only
report bugs that are real problems for *us*; if you discover a bug in
egcs, you have to report it to the egcs maintainers (and wait for them
to respond).  If you're doing commercial development and you want Cygnus
to fix the bugs for you, I'm sure that they'd be happy to sell you a
support contract too.  8-)

Finally, the work is going to take some time to accomplish.  Don't
expect to see anything for a couple of months at least.  

Take care,
 -Gav

--
Gavriel State
Engineering Project Leader - Linux Apps
Corel Corp
gavriels@corel.com