On Sat, Jul 5, 2014 at 10:52 AM, Vincent Povirk madewokherd@gmail.com wrote:
... The point of this system is to isolate the implementer from the implementation details of the original, so they can't copy those details. They are supposed to only be given an interface to implement, which they may do differently (if that's possible while still implementing the required interface). It doesn't work if the implementer is told the implementation details, so when doing this you have to be careful about the information you give.
Yeah, I'm aware - I was actually surprised to find (after some Googling as a result of this discussion) that the 9th circuit ruled in favor of explicit copying in a case back in 2000 ( http://en.wikipedia.org/wiki/Sony_Computer_Entertainment,_Inc._v._Connectix_... ). It was my understanding that US law (and case law) didn't have any precedent for permitting something like that. Anyway, it's probably still a good idea to stick to strict clean room techniques.
I can't explain why the relay call out from wininet to winsock is too much information in this case, but it's been a general policy that we don't look at the calls native makes. (I also learned that policy the hard way, unfortunately.)
Maybe we should update http://wiki.winehq.org/CleanRoomGuidelines and make it more prominent on http://www.winehq.org/devel/ ? I don't even know how to get to it from that page, and it seems like a pretty important document...
Best, Erich