>Porting a codebase the size
>of Wine will probably take years...

Actually I'm working on a program to convert C code to D code. You can find/replace most instances of code, like unsigned int (C) with uint (D). The import/include files might take some work though.


On Wed, Jun 23, 2010 at 2:46 PM, Gert van den Berg <wine-devel@mohag.net> wrote:
On Wed, Jun 23, 2010 at 20:48, Stephen Eilert <spedrosa@gmail.com> wrote:
> On Wed, Jun 23, 2010 at 3:06 PM, Christopher Selph <cds.wine@gmail.com> wrote:
>> Well, being a garbage collected language, it would help with the memory
>> leaks in Wine. Being OOP it could extend the design of the code to make it
>> cleaner and reusable.
>
> The assertions above are opinions, not facts. Also, it requires a full rewrite.
>
You can mix D code and C code...

A more modern language can result in more readable code, but it is a
lot of effort for a small benefit... (And D is a very new language,
possibly to the degree that portability might be impacted due to a
lack of compilers on some of the more obscure platforms /
architectures).

Certain parts of Wine might benefit from the latest (draft) version of
C++ and the size of the codebase can probably be reduced in size
slightly, but a bad port to another language doesn't help anyone...
(The C++ standard library is huge and might getrid of some POSIX
dependancies) It might require quite an extensive rewrite to get it to
a proper C++ program, rather than a C program containing a bit of C++
and compiled with a C++ compiler...

Fixing the current problems with Wine should be a much higher priority
than porting it to a different language... Porting a codebase the size
of Wine will probably take years... C can do anything that other
languages can, the amount of effort might differ a bit, bit the
difference is probably minor compared to familiarizing yourself with a
new language, new libraries, etc....

(I like D - it have most features from languages like Java and C#,
with the option to switch off things like garbage collection and it
compiles to native code... Experimenting with it for new project might
make sense)

(IMHO: Allowing other languages than C for some of Wine's bundled
applications (notepad, winecfg, winemine, etc) might make sense, as
long as the QC for committing patches doesn't suffer. The mixing of
languages within components (single application / DLL) will probably
cause confusion and ugly code though... Getting proper QC would
probably mostly involve sticking to things that AJ is familiar with.)

Gert