ChessUSA.com TalkChess.com
Hosted by Your Move Chess & Games
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

For ZACH WEGNER
Post new topic    TalkChess.com Forum Index -> Computer Chess Club: General Topics Flat
View previous topic :: View next topic  
Author Message
Robert Hyatt



Joined: 27 Feb 2006
Posts: 15816
Location: Birmingham, AL

PostPost subject: Re: For ZACH WEGNER    Posted: Fri Aug 29, 2008 12:50 am Reply to topic Reply with quote

Michael Sherwin wrote:
bob wrote:
chrisw wrote:
bob wrote:
chrisw wrote:
bob wrote:
Bill Rogers wrote:
A question about GPL code. How many chess programs use Alpha-Beta? How many use iterinative deepening or follow the PV. How may chess programs use the same logic in creating a chess board itself, not the one they display but the one used by the program internally?
How many chess programs using the GPL license all use one of more of these technics in their programs when this knowledge has been public knowledge and free for dozens of years now. Hell, even the search may be exactly like hundreds of other free and private progams that are out there.
Given all these facts just what part of a chess program licensed in GPL is really protected and what parts were copied form open source programs that have been free.
Bill


You should not comment if you don't understand the simple GPL issue. The GPL protects _specific_ lines of code. Not algorithms or ideas. There are an infinite number of ways to write a recursive alpha/beta search function. I might be able to find about 100 othello programs that have been written by students in an AI course here and let you compare them if you can't grasp that. _none_ are similar in any way other than basic functionality...

SO there is no naturally-occurring case where two independent programmers will sit down and produce the same identical blocks of code in different places, or even one identical block in the same place) in a large program such as chess. It just doesn't happen. Until you get into the probability range where enough monkeys and typewriters, given enough time, will produce whatever literary work you want to name. With maybe 500 active authors, I can guarantee you that 500 monkeys in a room are just going to produce tons of gibberish. Millions would do the same. The probability of producing identical code is vanishingly small in a program of this size. And _any_ programmer knows that, whether he wants to admit it or argue the point ad nauseum.

This particular explanation just will not hold its water in _any_ group of technical people. Period.

The discussion here is not comparing basic functionality. It is comparing blocks of identical source code. That's a huge difference.


The GPL does not 'protect specific lines of code' - you're stretching it too far.


No. You are reading that sentence from too narrow a perspective. In the case of gnuchess 5, the GPL protects _specific lines of code_. Which lines? All the lines in the program. That was the "specific" in above as opposed to "general" which could be any of an infinite number of lines of code that could accomplish the same function.

Quote:


Essentially the GPL cover derivative works which are defined as works which contain all or a portion of the code of the GPL protected program.

It doesn't define what is meant by a portion. That is left to common sense and legal interpretation.

is i++ a portion?
is for (i=0; i<FRED; i++) a portion?
is setjmp() a portion?

etc. - probably not.

is Search() function a portion - almost certainly so.

Somewhere in between the two, and I'm not being pedantic, is some kind of dividing line of what is and what isn't a portion. To be determined either by common sense or if necessary by a judge.

In a way, Bill is right. And you're stretching the case. GPL is a bit of mess really.


How is it being "stretched"? If there are several duplicate blocks of code in both A and B no rational person would conclude A and B are independently written. The bigger the blocks, the more likely the dependence becomes. The more blocks that are found, ditto.

Nobody but a moron believes that int i; would be covered by GPL, any more than "the end" is covered by copyright law. But there is not a _lot_ of flexibility in how much similarity is allowed.


Well this moron says the lines of code concept is *not* covered. What this moron says is what is covered is the portions concept. That's because this moron read the GPL licence text. Did you?


Define a portion.

If it's not for(i=0; i<BOB; i++) la-di-da;

then what is it?

Well, common sense has to prevail. And common sense says - not every last line. You stretched it to every last line.


I stretched it to cover the _entire_ program, not just a single line of the program. As I have said _all along_. If you borrow _any_ code from a GPL program, you are now working on a GPL project, end of story. Unless and until you remove/rewrite all borrowed lines.

Why does this turn into a semantic war over a single line, when we are not discussing single lines of code anywhere in this discussion, we are discussing blocks of code, and the blocks contain more than one or two or 10 or 20 lines.


Quote:


If I was witness for the defence - I'ld argue "that code block is known and trivial - the prosecution are just being prissy".


And I would ask to see the entire section, not that one or two lines. If you are saying the "200 line block" Zach is looking at, I would say bullfeathers. 200 line blocks of code do _not_ happen by chance to be identical. Under any circumstance.


Quote:


If I was witness for the prosecution - I'ld argue "that code block is an essential and unique part of the program"

Mr Judge His Honour would decide. You are not Mr Judge His Honour, Bob. You're a witness for the prosection.

The real situation for the GPL is way off stage left from where you are.


Not really. The GPL is not a document that says "you can not copy this.' It says "you can not copy this unless you make _your_ code GPL as well and provide source to anyone you provide the executable to." It is not an idea made to cause grief. It is an idea made to promote openness.


Quote:
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program)
, you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

6. Each time you redistribute the Program (or any work based on the
Program)
, the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.


This says that if I learn one new thing by studying the Fruit code and add it to my program then my whole program by law falls under the GPL.


It simply does _not_ say that. The GPL prevents copying source code from a GPL program, unless the program you use that code in is also GPL. It says _nothing_ about ideas or concepts. It is _specifically_ talking about source code.

Quote:
A book on chess programming is open and free and you can use the ideas anyway that you like. Open source GPL programs restrict you in the maximum way and nothing can ever be yours. The GPL is not only a mess it is evil. A million people could look at the Fruit sources, but none of them is allowed to profit by it. A real great gift that Fabien has given to us or rather should I say a real fine set of handcuffs.


Except for the _minor_ detail that it does not say that. It is protecting the _source code_ of the GPL program. Anybody can look at that source, discover a new idea, and then go write that code for themselves and use it without violating the GPL nor making their program come under the GPL. But if by "study" you mean you are going to do any cut/paste copying, then you are copying source and the GPL applies.



Quote:


From Chenard:
Code:

void ChessBoard::GenMoves_WB ( MoveList &ml, int source )
{
   int dest;
   for ( dest = source + NORTHEAST; board[dest] == EMPTY; dest += NORTHEAST )
      ml.AddMove ( source, dest );

   if ( board[dest] & BLACK_MASK )
      ml.AddMove ( source, dest );

   for ( dest = source + NORTHWEST; board[dest] == EMPTY; dest += NORTHWEST )
      ml.AddMove ( source, dest );

   if ( board[dest] & BLACK_MASK )
      ml.AddMove ( source, dest );

   for ( dest = source + SOUTHEAST; board[dest] == EMPTY; dest += SOUTHEAST )
      ml.AddMove ( source, dest );

   if ( board[dest] & BLACK_MASK )
      ml.AddMove ( source, dest );

   for ( dest = source + SOUTHWEST; board[dest] == EMPTY; dest += SOUTHWEST )
      ml.AddMove ( source, dest );

   if ( board[dest] & BLACK_MASK )
      ml.AddMove ( source, dest );
}


From Fruit:
Code:

      case Bishop64:

         for (to = from-17; (capture=board->square[to]) == Empty; to -= 17)
            ;
         if (FLAG_IS(capture,opp_flag)) LIST_ADD(list,MOVE_MAKE(from,to));

         for (to = from-15; (capture=board->square[to]) == Empty; to -= 15)
            ;
         if (FLAG_IS(capture,opp_flag)) LIST_ADD(list,MOVE_MAKE(from,to));

         for (to = from+15; (capture=board->square[to]) == Empty; to += 15)
            ;
         if (FLAG_IS(capture,opp_flag)) LIST_ADD(list,MOVE_MAKE(from,to));

         for (to = from+17; (capture=board->square[to]) == Empty; to += 17)
            ;
         if (FLAG_IS(capture,opp_flag)) LIST_ADD(list,MOVE_MAKE(from,to));

         break;
Back to top
View user's profile Send private message
Display posts from previous:   
Subject Author Date/Time
For ZACH WEGNER George Speight Wed Aug 27, 2008 9:55 pm
      Re: For ZACH WEGNER Zach Wegner Wed Aug 27, 2008 10:01 pm
            Re: For ZACH WEGNER Robert Hyatt Wed Aug 27, 2008 11:48 pm
      Re: For ZACH WEGNER Luc Galarneau Wed Aug 27, 2008 10:08 pm
            Re: For ZACH WEGNER Norman Schmidt Wed Aug 27, 2008 10:17 pm
                  Re: For ZACH WEGNER George Speight Thu Aug 28, 2008 12:07 am
                        Re: For ZACH WEGNER Norman Schmidt Thu Aug 28, 2008 12:24 am
                              Re: For ZACH WEGNER George Speight Thu Aug 28, 2008 12:26 am
                                    Re: For ZACH WEGNER Norman Schmidt Thu Aug 28, 2008 12:46 am
            Re: For ZACH WEGNER Zach Wegner Wed Aug 27, 2008 10:20 pm
                  Re: For ZACH WEGNER George Speight Thu Aug 28, 2008 12:10 am
                  Re: For ZACH WEGNER George Speight Thu Aug 28, 2008 12:16 am
                        Re: For ZACH WEGNER Zach Wegner Thu Aug 28, 2008 12:19 am
                              Re: For ZACH WEGNER Zach Wegner Thu Aug 28, 2008 12:21 am
                                    Re: For ZACH WEGNER George Speight Thu Aug 28, 2008 12:24 am
                                          Re: For ZACH WEGNER Zach Wegner Thu Aug 28, 2008 1:42 am
                                                Re: For ZACH WEGNER George Speight Thu Aug 28, 2008 2:03 am
                                                      Re: For ZACH WEGNER Terry McCracken Thu Aug 28, 2008 2:09 am
                                                      Re: For ZACH WEGNER Zach Wegner Thu Aug 28, 2008 2:21 am
                                                Re: For ZACH WEGNER Terry McCracken Thu Aug 28, 2008 2:03 am
                                                      Re: For ZACH WEGNER Swaminathan Thu Aug 28, 2008 2:08 am
                                                            Re: For ZACH WEGNER George Speight Thu Aug 28, 2008 2:25 am
                                                                  Re: For ZACH WEGNER Swaminathan Thu Aug 28, 2008 2:27 am
                                                                        Re: For ZACH WEGNER George Speight Thu Aug 28, 2008 2:54 am
                                                                              Re: For ZACH WEGNER Swaminathan Thu Aug 28, 2008 3:02 am
                                                                                    Re: For ZACH WEGNER George Speight Thu Aug 28, 2008 3:07 am
                                                                                          Re: For ZACH WEGNER Terry McCracken Thu Aug 28, 2008 5:12 am
                                                                  Re: For ZACH WEGNER Evgenii Manev Thu Aug 28, 2008 2:28 am
                                                                        Re: For ZACH WEGNER George Speight Thu Aug 28, 2008 2:56 am
                                          Re: For ZACH WEGNER Robert Hyatt Thu Aug 28, 2008 3:57 am
                                                Re: For ZACH WEGNER George Speight Thu Aug 28, 2008 4:22 am
                                                      Re: For ZACH WEGNER Ryan Benitez Thu Aug 28, 2008 4:33 am
                                                            Re: For ZACH WEGNER George Speight Thu Aug 28, 2008 4:47 am
                                                                  Re: For ZACH WEGNER Christophe Théron Thu Aug 28, 2008 6:47 am
                                                                        Re: For ZACH WEGNER Robert Hyatt Thu Aug 28, 2008 5:06 pm
                                                                  Re: For ZACH WEGNER Robert Hyatt Thu Aug 28, 2008 5:05 pm
                                                            Re: For ZACH WEGNER Uri Blass Thu Aug 28, 2008 7:11 am
                                                      Re: For ZACH WEGNER Robert Hyatt Thu Aug 28, 2008 5:04 pm
                              Re: For ZACH WEGNER Alex Thu Aug 28, 2008 12:51 am
                              Re: For ZACH WEGNER William H. Rogers Thu Aug 28, 2008 5:57 pm
                                    Re: For ZACH WEGNER Robert Hyatt Thu Aug 28, 2008 6:46 pm
                                          Re: For ZACH WEGNER chrisw Thu Aug 28, 2008 7:02 pm
                                                Re: For ZACH WEGNER Terry McCracken Thu Aug 28, 2008 8:26 pm
                                                Re: For ZACH WEGNER Robert Hyatt Thu Aug 28, 2008 9:40 pm
                                                      Re: For ZACH WEGNER chrisw Thu Aug 28, 2008 9:58 pm
                                                            Re: For ZACH WEGNER Robert Hyatt Thu Aug 28, 2008 11:20 pm
                                                                  Re: For ZACH WEGNER Michael Sherwin Fri Aug 29, 2008 12:20 am
                                                                        Re: For ZACH WEGNER Robert Hyatt Fri Aug 29, 2008 12:50 am
                                                                        Re: For ZACH WEGNER Eric Mullins Fri Aug 29, 2008 12:52 am
                                                                        Re: For ZACH WEGNER Michael Sherwin Fri Aug 29, 2008 1:27 am
                                    Re: For ZACH WEGNER Guetti Thu Aug 28, 2008 6:48 pm
      Re: For ZACH WEGNER gerold daniels Thu Aug 28, 2008 1:00 am
      Re: For ZACH WEGNER Ryan Benitez Thu Aug 28, 2008 2:51 am
            Re: For ZACH WEGNER George Speight Thu Aug 28, 2008 2:58 am
                  Re: For ZACH WEGNER Zach Wegner Thu Aug 28, 2008 3:02 am
                        Re: For ZACH WEGNER George Speight Thu Aug 28, 2008 3:12 am
                              Re: For ZACH WEGNER Zach Wegner Thu Aug 28, 2008 4:46 am
                                    Re: For ZACH WEGNER Tony Thomas Thu Aug 28, 2008 4:49 am
                                          Re: For ZACH WEGNER George Speight Thu Aug 28, 2008 4:54 am
                                                Re: For ZACH WEGNER Tony Thomas Thu Aug 28, 2008 5:06 am
                        Re: For ZACH WEGNER Robert Hyatt Thu Aug 28, 2008 4:02 am
                              Re: For ZACH WEGNER George Speight Thu Aug 28, 2008 4:20 am
                                    Re: For ZACH WEGNER Robert Hyatt Thu Aug 28, 2008 5:11 pm
                        Re: For ZACH WEGNER Michael Sherwin Thu Aug 28, 2008 4:58 am
                              Re: For ZACH WEGNER George Speight Thu Aug 28, 2008 5:03 am
                              Re: For ZACH WEGNER Tony Thomas Thu Aug 28, 2008 5:08 am
      Re: For ZACH WEGNER Roman Hartmann Thu Aug 28, 2008 7:45 am
            Re: For ZACH WEGNER gerold daniels Thu Aug 28, 2008 7:51 am
                  Re: For ZACH WEGNER Evgenii Manev Thu Aug 28, 2008 11:07 am
                        Re: For ZACH WEGNER Robert Hyatt Thu Aug 28, 2008 5:45 pm
                              Re: For ZACH WEGNER bigo Fri Aug 29, 2008 12:02 am
                                    Re: For ZACH WEGNER Robert Hyatt Fri Aug 29, 2008 12:52 am
                                          Re: For ZACH WEGNER chrisw Fri Aug 29, 2008 8:29 am
                                                Re: For ZACH WEGNER Eric Mullins Fri Aug 29, 2008 12:35 pm
                                                      Re: For ZACH WEGNER chrisw Fri Aug 29, 2008 1:11 pm
                                                            Re: For ZACH WEGNER Eric Mullins Fri Aug 29, 2008 1:47 pm
                                                                  Re: For ZACH WEGNER chrisw Fri Aug 29, 2008 1:54 pm
Post new topic    TalkChess.com Forum Index -> Computer Chess Club: General Topics

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum




Powered by phpBB © 2001, 2005 phpBB Group
Enhanced with Moby Threads