Sloppy 0.1.1 released

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

Uri Blass
Posts: 10905
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Toga 0.1.1 released

Post by Uri Blass »

ilari wrote:
Because he crippled it. (ie "found out" new best things)

The rest, the structure is the same. He just replaced things. In assembly they are even more alike, since the static functions get inlined.
I didn't create a Fruit clone and then change things to cripple it. I created a new 100% original engine, and then added Fruit's features (mainly evaluation) to make it stronger.

The structure of the search is the same only where it must be. If you've ever written a pvs search you should know this.

I appreciate the offense, but this is getting a bit tiresome.
Looking at the code I believe you

The difference between fruit and sloppy is clearly more than different names of variables and changing some parameters and replacing code by functions


from sloppy internal iterative deepening:

if (depth >= 3 && in_pv && best_move == NO_MOVE)

from fruit

if (UseIID && depth >= IIDDepth && node_type == NodePV && trans_move == MoveNone)


in_pv is equivelent to node_type=NodePv but it is not a change that you can do by simple replace.

From fruit

static int full_search(board_t * board, int alpha, int beta, int depth, int height, mv_t pv[], int node_type)

From sloppy

search(Chess *chess, int alpha, int beta, int depth, bool in_pv, PvLine *pv)


You can see that Fruit get parameter that is called height when sloppy does not get parameter with that name.

The parameters are basically different(Nore that this is also the way that I compared strelka with fruit and found that they are not the same)

I can add that fruit has another function with the name full_no_null and I do not see if there is something equivalent in sloppy.



I simply cannot see how programmers can start from fruit code and get into sloppy code.

To Tony:
If you think that it is possible to do it easily then I would like to have step by step instruction how to get sloppy code when you start from fruit code.

I believe Ilari that he did not get sloppy's code from fruit's code.

Uri
Vempele

Re: Toga 0.1.1 released

Post by Vempele »

Uri Blass wrote:I can add that fruit has another function with the name full_no_null and I do not see if there is something equivalent in sloppy.
There isn't because Sloppy doesn't use nullmove verification.
Tony

Re: Toga 0.1.1 released

Post by Tony »

Uri Blass wrote:
ilari wrote:
Because he crippled it. (ie "found out" new best things)

The rest, the structure is the same. He just replaced things. In assembly they are even more alike, since the static functions get inlined.
I didn't create a Fruit clone and then change things to cripple it. I created a new 100% original engine, and then added Fruit's features (mainly evaluation) to make it stronger.

The structure of the search is the same only where it must be. If you've ever written a pvs search you should know this.

I appreciate the offense, but this is getting a bit tiresome.
Looking at the code I believe you

The difference between fruit and sloppy is clearly more than different names of variables and changing some parameters and replacing code by functions


from sloppy internal iterative deepening:

if (depth >= 3 && in_pv && best_move == NO_MOVE)

from fruit

if (UseIID && depth >= IIDDepth && node_type == NodePV && trans_move == MoveNone)


Uri
I can imagine that people who think these 2 lines are different also think the engines are different.

However for people who really look:

the UseIID can be considered a configuration switch

After removing UseIID : They are exactly the same with:

IIDDepth =3 and in_pv=(node_type == NodePV)

He even has the tests in the same order ! But of coarse, it's just common sense.

What I really don't understand is people putting their name on defending this guy. He came out of nowhere, and he will go back there soon.

They always do. They always claim they lost interest. It's actually the easiest way to recognize cheaters. They come and go within 2 years.

Tony
Uri Blass
Posts: 10905
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Toga 0.1.1 released

Post by Uri Blass »

Tony wrote:
Uri Blass wrote:
ilari wrote:
Because he crippled it. (ie "found out" new best things)

The rest, the structure is the same. He just replaced things. In assembly they are even more alike, since the static functions get inlined.
I didn't create a Fruit clone and then change things to cripple it. I created a new 100% original engine, and then added Fruit's features (mainly evaluation) to make it stronger.

The structure of the search is the same only where it must be. If you've ever written a pvs search you should know this.

I appreciate the offense, but this is getting a bit tiresome.
Looking at the code I believe you

The difference between fruit and sloppy is clearly more than different names of variables and changing some parameters and replacing code by functions


from sloppy internal iterative deepening:

if (depth >= 3 && in_pv && best_move == NO_MOVE)

from fruit

if (UseIID && depth >= IIDDepth && node_type == NodePV && trans_move == MoveNone)


Uri
I can imagine that people who think these 2 lines are different also think the engines are different.

However for people who really look:

the UseIID can be considered a configuration switch

After removing UseIID : They are exactly the same with:

IIDDepth =3 and in_pv=(node_type == NodePV)

He even has the tests in the same order ! But of coarse, it's just common sense.

What I really don't understand is people putting their name on defending this guy. He came out of nowhere, and he will go back there soon.

They always do. They always claim they lost interest. It's actually the easiest way to recognize cheaters. They come and go within 2 years.

Tony
Sorry but some similiarity is not a proof for cloning.

replacing (node_type == NodePV) from fruit by (in_pv) from sloppy is possible but this change is less simple than changing names of variables so even in the examples that you showed the similiarity is not high and in other cases there are even functions in fruit that are not in sloppy.

It is more logical to think that the programmer wrote his search from scratch and not to think that he started from fruit and modified it.

The modifications of fruit to sloppy(assuming that sloppy was done in that way) are a lot of changes when you clearly need to understand the code of fruit and if you are smart enough to understand the code of fruit then you are also smart enough to write the code by yourself and it will probably be faster than starting from fruit.

It is possible that the programmer of Sloppy read fruit before writing his program and it is possible that he learned somethings from reading the code and he also remember the order of variables in some cases and used the same order but I do not believe that he copied and paste parts from fruit.

Claiming that somebody who release open source is a cheater is simply wrong here and you have no evidence for it.

Uri
Tony

Re: Toga 0.1.1 released

Post by Tony »

Uri Blass wrote:
Tony wrote:
Uri Blass wrote:
ilari wrote:
Because he crippled it. (ie "found out" new best things)

The rest, the structure is the same. He just replaced things. In assembly they are even more alike, since the static functions get inlined.
I didn't create a Fruit clone and then change things to cripple it. I created a new 100% original engine, and then added Fruit's features (mainly evaluation) to make it stronger.

The structure of the search is the same only where it must be. If you've ever written a pvs search you should know this.

I appreciate the offense, but this is getting a bit tiresome.
Looking at the code I believe you

The difference between fruit and sloppy is clearly more than different names of variables and changing some parameters and replacing code by functions


from sloppy internal iterative deepening:

if (depth >= 3 && in_pv && best_move == NO_MOVE)

from fruit

if (UseIID && depth >= IIDDepth && node_type == NodePV && trans_move == MoveNone)


Uri
I can imagine that people who think these 2 lines are different also think the engines are different.

However for people who really look:

the UseIID can be considered a configuration switch

After removing UseIID : They are exactly the same with:

IIDDepth =3 and in_pv=(node_type == NodePV)

He even has the tests in the same order ! But of coarse, it's just common sense.

What I really don't understand is people putting their name on defending this guy. He came out of nowhere, and he will go back there soon.

They always do. They always claim they lost interest. It's actually the easiest way to recognize cheaters. They come and go within 2 years.

Tony
Sorry but some similiarity is not a proof for cloning.

replacing (node_type == NodePV) from fruit by (in_pv) from sloppy is possible but this change is less simple than changing names of variables so even in the examples that you showed the similiarity is not high and in other cases there are even functions in fruit that are not in sloppy.

It is more logical to think that the programmer wrote his search from scratch and not to think that he started from fruit and modified it.

The modifications of fruit to sloppy(assuming that sloppy was done in that way) are a lot of changes when you clearly need to understand the code of fruit and if you are smart enough to understand the code of fruit then you are also smart enough to write the code by yourself and it will probably be faster than starting from fruit.

It is possible that the programmer of Sloppy read fruit before writing his program and it is possible that he learned somethings from reading the code and he also remember the order of variables in some cases and used the same order but I do not believe that he copied and paste parts from fruit.

Claiming that somebody who release open source is a cheater is simply wrong here and you have no evidence for it.

Uri
You don't have to understand all code to change it.

My work: I get 400.000 lines of code (+-50%), a bug report and 5 days to fix it.
The first thing I do is try to understand the structure of a program, the way it flows. This program flows like Fruit. The difference is mostly cosmetic. There is no essential difference.

If other people don't see it's the same, that's ok. If other people claim it's different because they didn't see it's same, then I object.

The claim that the search is different from Fruit is incorrect.

Wether he modified Fruit code,started with an empty function and copied Fruit into it or he retyped everything, is irrelevant. It's still a Fruit copy.

Tony
Aleks Peshkov
Posts: 950
Joined: Sun Nov 19, 2006 9:16 pm
Location: Russia
Full name: Aleks Peshkov

Re: Toga 0.1.1 released

Post by Aleks Peshkov »

Tony wrote:The first thing I do is try to understand the structure of a program, the way it flows. This program flows like Fruit. The difference is mostly cosmetic. There is no essential difference.

If other people don't see it's the same, that's ok. If other people claim it's different because they didn't see it's same, then I object.

The claim that the search is different from Fruit is incorrect.

Wether he modified Fruit code,started with an empty function and copied Fruit into it or he retyped everything, is irrelevant. It's still a Fruit copy.

Tony
I personally failed to find original search approaches in tournament strength open source program. They all looks very similar. But it is nonsense to claim all of them as clones. It is very dangerous to blame authors of open source chess engines as cheaters!

Fruit is just one the first of mainstream engines. It has very little new other then implementation quality. I bet that if you investigate ANY decent open source program (even one that had stopped its own development before Fruit source release) it will "flow" like Fruit. Please, give an example of opposite if I am mistaken.
Tony

Re: Toga 0.1.1 released

Post by Tony »

Aleks Peshkov wrote:
Tony wrote:The first thing I do is try to understand the structure of a program, the way it flows. This program flows like Fruit. The difference is mostly cosmetic. There is no essential difference.

If other people don't see it's the same, that's ok. If other people claim it's different because they didn't see it's same, then I object.

The claim that the search is different from Fruit is incorrect.

Wether he modified Fruit code,started with an empty function and copied Fruit into it or he retyped everything, is irrelevant. It's still a Fruit copy.

Tony
I personally failed to find original search approaches in tournament strength open source program. They all looks very similar. But it is nonsense to claim all of them as clones. It is very dangerous to blame authors of open source chess engines as cheaters!

Fruit is just one the first of mainstream engines. It has very little new other then implementation quality. I bet that if you investigate ANY decent open source program (even one that had stopped its own development before Fruit source release) it will "flow" like Fruit. Please, give an example of opposite if I am mistaken.
I agree with you about most except that Fruit has very little new (from open source pov) and the part "But it is nonsense to claim all of them as clones"

It's the reason why I don't see anything good from these engines.

That's no problem however, I only get pissed off when the author (or others) claims originality and/or tries to legalize his actions.

Most open sources programs I consider Fruit-clones/Fruit-alikes. But it still matters how the author reacts.

In this case, the author (who knew him before ?) claims to have enough knowledge to know that the Fruit choices are the only "common sense" decisions, so it's not really copying.
Even the ones that are questionable, and have been changed in later Fruits.

Tony
User avatar
ilari
Posts: 750
Joined: Mon Mar 27, 2006 7:45 pm
Location: Finland

Re: Toga 0.1.1 released

Post by ilari »

What I really don't understand is people putting their name on defending this guy. He came out of nowhere, and he will go back there soon.

They always do. They always claim they lost interest. It's actually the easiest way to recognize cheaters. They come and go within 2 years.
How mean. I love it. I find computer chess very fascinating and I'm not going to lose interest anytime soon. I may however have too little time for this particular hobby because I'll have a master's thesis to write next year. But even then Sloppy and its source code will still be available, so it won't be a wasted effort.

Tony wrote:That's no problem however, I only get pissed off when the author (or others) claims originality and/or tries to legalize his actions.
First of all, Sloppy is licensed under the GPL and so is Fruit, so from a legal perspective this conversation is almost useless, and you'll have to get used to being pissed off. And looks like we'll just have to agree to disagree about the "flow" of the search. But we're both reasonable gentlemen, so that's not going to be a problem, right?
Dann Corbit
Posts: 12792
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Toga 0.1.1 released

Post by Dann Corbit »

Tony wrote:
Aleks Peshkov wrote:
Tony wrote:The first thing I do is try to understand the structure of a program, the way it flows. This program flows like Fruit. The difference is mostly cosmetic. There is no essential difference.

If other people don't see it's the same, that's ok. If other people claim it's different because they didn't see it's same, then I object.

The claim that the search is different from Fruit is incorrect.

Wether he modified Fruit code,started with an empty function and copied Fruit into it or he retyped everything, is irrelevant. It's still a Fruit copy.

Tony
I personally failed to find original search approaches in tournament strength open source program. They all looks very similar. But it is nonsense to claim all of them as clones. It is very dangerous to blame authors of open source chess engines as cheaters!

Fruit is just one the first of mainstream engines. It has very little new other then implementation quality. I bet that if you investigate ANY decent open source program (even one that had stopped its own development before Fruit source release) it will "flow" like Fruit. Please, give an example of opposite if I am mistaken.
I agree with you about most except that Fruit has very little new (from open source pov) and the part "But it is nonsense to claim all of them as clones"

It's the reason why I don't see anything good from these engines.

That's no problem however, I only get pissed off when the author (or others) claims originality and/or tries to legalize his actions.
That's true even when the program contains much that is original and also is totally legal.

Most open sources programs I consider Fruit-clones/Fruit-alikes. But it still matters how the author reacts.

In this case, the author (who knew him before ?) claims to have enough knowledge to know that the Fruit choices are the only "common sense" decisions, so it's not really copying.
Even the ones that are questionable, and have been changed in later Fruits.

Tony
Your arguments are emotional and bitter. I see a strange sadness here.
User avatar
Daniel Mehrmann
Posts: 858
Joined: Wed Mar 08, 2006 9:24 pm
Location: Germany
Full name: Daniel Mehrmann

Re: Toga 0.1.1 released

Post by Daniel Mehrmann »

Dann Corbit wrote:
Tony wrote:
Aleks Peshkov wrote:
Tony wrote:The first thing I do is try to understand the structure of a program, the way it flows. This program flows like Fruit. The difference is mostly cosmetic. There is no essential difference.

If other people don't see it's the same, that's ok. If other people claim it's different because they didn't see it's same, then I object.

The claim that the search is different from Fruit is incorrect.

Wether he modified Fruit code,started with an empty function and copied Fruit into it or he retyped everything, is irrelevant. It's still a Fruit copy.

Tony
I personally failed to find original search approaches in tournament strength open source program. They all looks very similar. But it is nonsense to claim all of them as clones. It is very dangerous to blame authors of open source chess engines as cheaters!

Fruit is just one the first of mainstream engines. It has very little new other then implementation quality. I bet that if you investigate ANY decent open source program (even one that had stopped its own development before Fruit source release) it will "flow" like Fruit. Please, give an example of opposite if I am mistaken.
I agree with you about most except that Fruit has very little new (from open source pov) and the part "But it is nonsense to claim all of them as clones"

It's the reason why I don't see anything good from these engines.

That's no problem however, I only get pissed off when the author (or others) claims originality and/or tries to legalize his actions.
That's true even when the program contains much that is original and also is totally legal.

Most open sources programs I consider Fruit-clones/Fruit-alikes. But it still matters how the author reacts.

In this case, the author (who knew him before ?) claims to have enough knowledge to know that the Fruit choices are the only "common sense" decisions, so it's not really copying.
Even the ones that are questionable, and have been changed in later Fruits.

Tony
Your arguments are emotional and bitter. I see a strange sadness here.
:shock:

Basicly i agree with Tony and i don't understand your response.

Fruit does some things on different ways compared with what i would call "common sense".
If somebody says he took all fruit ideas, because they make sense and there are no better one for the own engine, it just shows a very weak knowledge skill about chess programming. Specialy i'm talking here about the search and search components.

It would be different if the author claimed he tested a lot of variations and that's the best choice for him. Futher more the author should be able to explain why he did this and that step exactly.

Best,
Daniel