-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hartmut Birr wrote:
This type of reverse-engineering is prohibited by law in many countries. It gives M$ a very easy way to kick the project.
I can't believe that the project was started with this justification.
Reverse-engineering covers a broad scope; however, even this type of reverse-engineering is permitted. Nobody can prohibit you from looking at anything, as that would be unconstitutional (in the States). However, they *can* prohibit you from copying the code. Note that copying the code doesn't state "Copy and Paste". If a substantial CHUNK of code is exactly identical, then there's question. However, stacks and other things that are predefined sizes, cannot be claimed to be violation of any copyrights; If I want to skip past 4 parameters on the stack, for example, and that stack has 4 bytes per item, then I must jump back 16 bytes. That doesn't matter what the implementation is, those are the mathematical facts.
However, that having been said, while "clean room" development, so to speak, takes longer, it is preferred in commercial projects so as to avoid the legal questions. However, when using this approach, much more documentation must be done to prove the method and document the process.
FLOSS projects that have developers outside of copyright/patent enforcing countries can pretty well do as they wish; their code cannot be prosecuted since they hold the copyright. However, in that case, infringing code can be held against the /distributor/ of the code, and that can in turn become a very messy legal spat.
Clean room RE processes really are the only way to make the mess go away; but it will significantly slow development compared to more "dirty room" methods. It does, however, eliminate many possibilities and questions as to how code works and how it doesn't infringe upon others.
- Mike