View mode: basic / threaded / horizontal-split · Log in · Help
November 25, 2012
WinAPI and druntime [was: WinAPI for druntime and OpenGL for deimos]
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).

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.

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.

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

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.

Please leave your comments regarding this.
Maintainers of druntime: is this ok?

-- 
Bye,
Gor Gyolchanyan.
November 25, 2012
Re: WinAPI and druntime [was: WinAPI for druntime and OpenGL for deimos]
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.
November 25, 2012
Re: WinAPI and druntime [was: WinAPI for druntime and OpenGL for deimos]
On Sunday, November 25, 2012 10:38:36 Vladimir Panteleev wrote:
> Copyright? Last I checked almost all files, except the WinSock
> ones, are explicitly specified to be in the public domain. Please
> clarify?

That's certainly what I remember. What's always confused me though is that 
I've heard that you can't copy from Microsoft's headers because of the 
copyright on them, but I have no idea where on earth anyone could ever have 
gotten any Windows headers except from Microsoft. But given that I've heard it 
disputed that you can even truly copyright headers in the first place (since 
they're essentially an API rather than an implementation), I really don't know 
what the legal situation with all of this is. However, many of the mingw 
headers definitely are definitely in the public domain from what I recall.

- Jonathan M Davis
November 25, 2012
Re: WinAPI and druntime [was: WinAPI for druntime and OpenGL for deimos]
On Sunday, 25 November 2012 at 12:28:11 UTC, Jonathan M Davis 
wrote:
> On Sunday, November 25, 2012 10:38:36 Vladimir Panteleev wrote:
>> Copyright? Last I checked almost all files, except the WinSock
>> ones, are explicitly specified to be in the public domain. 
>> Please
>> clarify?
>
> That's certainly what I remember. What's always confused me 
> though is that
> I've heard that you can't copy from Microsoft's headers because 
> of the
> copyright on them, but I have no idea where on earth anyone 
> could ever have
> gotten any Windows headers except from Microsoft. But given 
> that I've heard it
> disputed that you can even truly copyright headers in the first 
> place (since
> they're essentially an API rather than an implementation), I 
> really don't know
> what the legal situation with all of this is. However, many of 
> the mingw
> headers definitely are definitely in the public domain from 
> what I recall.

You might be able to recreate the headers using:
1) Documentation
2) Programs which print the values of various defines
3) Reimplementation, for macros (e.g. MAKE_HRESULT).

IIRC, this is similar to what Wine guidelines recommend.
Top | Discussion index | About this forum | D home