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.