On Sunday, 25 November 2012 at 07:13:15 UTC, Gor Gyolchanyan wrote:
So I've come to the point where I have the WinAPI modules from
dsource.organd want to add them to druntime.

Here are the issues, that need to be discussed before I can send a pull
request:

1. There is a number of version flags that are expected to be specified to the compiler, which specifies the Windows version, Internet Explorer version, winsock version and a bunch of other stuff. I suppose these will go into the sc.ini under Windows, because those won't change too often and are equivalent to linking with phobos (not necessary, but provided as a
default).

I suggest changing the code to fall back to the minimum version Druntime supports if none of the version flags are specified on the command-line. I believe that would be Windows XP at the moment.

2. There are some static libraries, which are pragma(lib, ...) -ed inside those modules, so those libraries will have to be included to the DMD
distribution.

Agreed.

3. They include MinGW copyright and header comments, which I don't know if can be submitted to druntime as is and if they can be removed either.

Copyright? Last I checked almost all files, except the WinSock ones, are explicitly specified to be in the public domain. Please clarify?

4. They contain a special WindowsUnitTests version, which could probably be replaced with a regular unittests or removed from the DMD distribution.

There are only two blocks:
The first (w32api.d) prints some information regarding the targeted Windows version, I believe. I guess the code could be removed or left as-is. The second (dde.d) seems to tests some struct properties. This can be a normal unittest.

5. The package to put them is to be decided, because core.sys.windows contains druntime-specific modules whic hare not to be mixed with WinAPI
modules.

I think non-binding code should be moved out of that package. Other OS-specific packages do not seem to contain non-binding code.

Reply via email to