Creating a spoon of TSCP181

Discussion of chess software programming and technical issues.

Moderators: hgm, Harvey Williamson, bob

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Michael Sherwin
Posts: 3016
Joined: Fri May 26, 2006 1:00 am
Location: WY, USA
Full name: Michael Sherwin

Creating a spoon of TSCP181

Post by Michael Sherwin » Sat Mar 09, 2019 9: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?
I hate if statements. Pawns demand if statements. Therefore I hate pawns.

Ras
Posts: 1101
Joined: Tue Aug 30, 2016 6:19 pm
Contact:

Re: Creating a spoon of TSCP181

Post by Ras » Sat Mar 09, 2019 9:54 pm

Michael Sherwin wrote:
Sat Mar 09, 2019 9:03 pm
What 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?
Rasmus Althoff
https://www.ct800.net

Michael Sherwin
Posts: 3016
Joined: Fri May 26, 2006 1:00 am
Location: WY, USA
Full name: Michael Sherwin

Re: Creating a spoon of TSCP181

Post by Michael Sherwin » Sat Mar 09, 2019 10:47 pm

Ras wrote:
Sat Mar 09, 2019 9:54 pm
Michael Sherwin wrote:
Sat Mar 09, 2019 9:03 pm
What 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"
I hate if statements. Pawns demand if statements. Therefore I hate pawns.

supersharp77
Posts: 578
Joined: Sat Jul 05, 2014 5:54 am
Location: Southwest USA

Re: Creating a spoon of TSCP181

Post by supersharp77 » Sun Mar 10, 2019 12:37 am

Michael Sherwin wrote:
Sat Mar 09, 2019 9: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:

Michael Sherwin
Posts: 3016
Joined: Fri May 26, 2006 1:00 am
Location: WY, USA
Full name: Michael Sherwin

Re: Creating a spoon of TSCP181

Post by Michael Sherwin » Sun Mar 10, 2019 1:03 am

supersharp77 wrote:
Sun Mar 10, 2019 12:37 am
Michael Sherwin wrote:
Sat Mar 09, 2019 9: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
I hate if statements. Pawns demand if statements. Therefore I hate pawns.

PK
Posts: 785
Joined: Mon Jan 15, 2007 10:23 am
Location: Warsza
Contact:

Re: Creating a spoon of TSCP181

Post by PK » Mon Mar 11, 2019 7:42 am

To avoid problems with spooning a non-free engine, I might be tempted to create a very basic bitboard engine. Interested?

mkchan
Posts: 75
Joined: Thu Oct 06, 2016 7:17 pm
Location: India
Contact:

Re: Creating a spoon of TSCP181

Post by mkchan » Mon Mar 11, 2019 8: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.

Michael Sherwin
Posts: 3016
Joined: Fri May 26, 2006 1:00 am
Location: WY, USA
Full name: Michael Sherwin

Re: Creating a spoon of TSCP181

Post by Michael Sherwin » Mon Mar 11, 2019 9:53 am

PK wrote:
Mon Mar 11, 2019 7: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
I hate if statements. Pawns demand if statements. Therefore I hate pawns.

Michael Sherwin
Posts: 3016
Joined: Fri May 26, 2006 1:00 am
Location: WY, USA
Full name: Michael Sherwin

Re: Creating a spoon of TSCP181

Post by Michael Sherwin » Mon Mar 11, 2019 10:00 am

mkchan wrote:
Mon Mar 11, 2019 8: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.
I hate if statements. Pawns demand if statements. Therefore I hate pawns.

Dann Corbit
Posts: 9505
Joined: Wed Mar 08, 2006 7:57 pm
Location: Redmond, WA USA
Contact:

Re: Creating a spoon of TSCP181

Post by Dann Corbit » Mon Mar 11, 2019 10:33 pm

Michael Sherwin wrote:
Sat Mar 09, 2019 9: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.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.

Post Reply