Page 1 of 2

Creating a spoon of TSCP181

Posted: Sat Mar 09, 2019 10:03 pm
by Michael Sherwin
I'm too old to start a chess engine from scratch. And my own engines are not a simple enough starting point for a spoon. So I have started a spoon of TSCP181 by Tom Kerrigan. What is spooning? I think that I just made it up. Anyway, spooning is starting with someone else's source code and over time spooning out their code and spooning in original code while keeping a working 'framework'. It is not a fork because nothing of the original code will remain. During the spooning process the new engine will be open source. When the spooning is complete then I may or may not keep the engine open source. The final spoon though will be open source and it will have a different kind of license. The license will state that anyone will be able to use the new engine as the basis for their own engine. They must increase the playing strength by at least 100 elo before they can release it. They must keep their changes closed source. And they must acknowledge that it started as the spooned engine.

What are the thoughts about this process?

Re: Creating a spoon of TSCP181

Posted: Sat Mar 09, 2019 10:54 pm
by Ras
Michael Sherwin wrote: Sat Mar 09, 2019 10:03 pmWhat are the thoughts about this process?
1. Given TSCP's licence, it sounds pretty much like a copyright infringement.

2. You cannot re-licence a derived work.

3. It is still a fork, technically.

4. You already have an engine up and running that is 700 Elo above TSCP, so what's the point? Why not use that as framework?

Re: Creating a spoon of TSCP181

Posted: Sat Mar 09, 2019 11:47 pm
by Michael Sherwin
Ras wrote: Sat Mar 09, 2019 10:54 pm
Michael Sherwin wrote: Sat Mar 09, 2019 10:03 pmWhat are the thoughts about this process?
1. Given TSCP's licence, it sounds pretty much like a copyright infringement.
I intend on getting permission from Tom for the interim steps
2. You cannot re-licence a derived work.
"nothing of the original code will remain"
3. It is still a fork, technically.
until all the code is replaced?
4. You already have an engine up and running that is 700 Elo above TSCP, so what's the point? Why not use that as framework?
"my own engines are not a simple enough starting point"

Re: Creating a spoon of TSCP181

Posted: Sun Mar 10, 2019 1:37 am
by supersharp77
Michael Sherwin wrote: Sat Mar 09, 2019 10:03 pm I'm too old to start a chess engine from scratch. And my own engines are not a simple enough starting point for a spoon. So I have started a spoon of TSCP181 by Tom Kerrigan. What is spooning? I think that I just made it up. Anyway, spooning is starting with someone else's source code and over time spooning out their code and spooning in original code while keeping a working 'framework'. It is not a fork because nothing of the original code will remain. During the spooning process the new engine will be open source. When the spooning is complete then I may or may not keep the engine open source. The final spoon though will be open source and it will have a different kind of license. The license will state that anyone will be able to use the new engine as the basis for their own engine. They must increase the playing strength by at least 100 elo before they can release it. They must keep their changes closed source. And they must acknowledge that it started as the spooned engine.

What are the thoughts about this process?
Interesting concept....there must be at least 10-30 engines out there based on TSCP.....I've tried tscp null, tscp rebel tscp JA Typhoon..etc.....most of them play the same/similar to the original you say 700 elo stronger? Wow! :D :wink:

Re: Creating a spoon of TSCP181

Posted: Sun Mar 10, 2019 2:03 am
by Michael Sherwin
supersharp77 wrote: Sun Mar 10, 2019 1:37 am
Michael Sherwin wrote: Sat Mar 09, 2019 10:03 pm I'm too old to start a chess engine from scratch. And my own engines are not a simple enough starting point for a spoon. So I have started a spoon of TSCP181 by Tom Kerrigan. What is spooning? I think that I just made it up. Anyway, spooning is starting with someone else's source code and over time spooning out their code and spooning in original code while keeping a working 'framework'. It is not a fork because nothing of the original code will remain. During the spooning process the new engine will be open source. When the spooning is complete then I may or may not keep the engine open source. The final spoon though will be open source and it will have a different kind of license. The license will state that anyone will be able to use the new engine as the basis for their own engine. They must increase the playing strength by at least 100 elo before they can release it. They must keep their changes closed source. And they must acknowledge that it started as the spooned engine.

What are the thoughts about this process?
Interesting concept....there must be at least 10-30 engines out there based on TSCP.....I've tried tscp null, tscp rebel tscp JA Typhoon..etc.....most of them play the same/similar to the original you say 700 elo stronger? Wow! :D :wink:
Interesting concept
Thank you. :D Though I might be a bit confused, :? . My engine RomiChess is ~700 elo stronger than TSCP181 but has nothing to do with TSCP. Well except, http://www.tckerrigan.com/Chess/TSCP/Co ... 81_mjs.zip has a similar bitboard move generator. That's because I programmed it as a simple bitboard move generator example.

Anyone that is familiar with my various sources know that they are very original. And even though I might start off with TSCP what I end up with won't be anything like TSCP. The only reason I'm starting with TSCP is so I always have a working engine during development. :D

Re: Creating a spoon of TSCP181

Posted: Mon Mar 11, 2019 8:42 am
by PK
To avoid problems with spooning a non-free engine, I might be tempted to create a very basic bitboard engine. Interested?

Re: Creating a spoon of TSCP181

Posted: Mon Mar 11, 2019 9:22 am
by mkchan
I'm here to shamelessly advertise my engine Teki: https://github.com/Mk-Chan/Teki

It is MIT based (the lc0nn branch is GPL) and is meant to be a simple bitboard engine. Do take a look at the code to see if it suits you and feel free to *spoon* it.

Re: Creating a spoon of TSCP181

Posted: Mon Mar 11, 2019 10:53 am
by Michael Sherwin
PK wrote: Mon Mar 11, 2019 8:42 am To avoid problems with spooning a non-free engine, I might be tempted to create a very basic bitboard engine. Interested?
Yes I would be interested and I think others would be interested also. :D

Re: Creating a spoon of TSCP181

Posted: Mon Mar 11, 2019 11:00 am
by Michael Sherwin
mkchan wrote: Mon Mar 11, 2019 9:22 am I'm here to shamelessly advertise my engine Teki: https://github.com/Mk-Chan/Teki

It is MIT based (the lc0nn branch is GPL) and is meant to be a simple bitboard engine. Do take a look at the code to see if it suits you and feel free to *spoon* it.
I will take a look! :D

However, the experiment that I want to do is better done by using a very fast lookup move generator like GNUChess4 with jump tables done in assembler. I do not need bitboard because there will be no evaluation function of any kind. Not even pst. All I really want is a simple mailbox engine that I can spoon.

Re: Creating a spoon of TSCP181

Posted: Mon Mar 11, 2019 11:33 pm
by Dann Corbit
Michael Sherwin wrote: Sat Mar 09, 2019 10:03 pm I'm too old to start a chess engine from scratch. And my own engines are not a simple enough starting point for a spoon. So I have started a spoon of TSCP181 by Tom Kerrigan. What is spooning? I think that I just made it up. Anyway, spooning is starting with someone else's source code and over time spooning out their code and spooning in original code while keeping a working 'framework'. It is not a fork because nothing of the original code will remain. During the spooning process the new engine will be open source. When the spooning is complete then I may or may not keep the engine open source. The final spoon though will be open source and it will have a different kind of license. The license will state that anyone will be able to use the new engine as the basis for their own engine. They must increase the playing strength by at least 100 elo before they can release it. They must keep their changes closed source. And they must acknowledge that it started as the spooned engine.

What are the thoughts about this process?
TSCP is a bad choice.
It is full of globals that make a SMP version difficult.
I would suggest a different engine as a starting point.