A Common Sense Proposal to all Vas & Rybka Doubters

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

Moderators: hgm, Rebel, chrisw

Dann Corbit
Posts: 12542
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: A Common Sense Proposal to all Vas & Rybka Doubters

Post by Dann Corbit »

Zach Wegner wrote:
chrisw wrote:setjmp() post was post #1, reproduced below.
Incorrect. Post #2.
No, I don't see it. Where does he say what you suggest, going thru line by line ... identical to here ... Rybka different ... sync again ...?
http://talkchess.com/forum/viewtopic.php?p=209411

Of course, I don't expect that this would make any difference in yours or George's ramblings.
Rybka 1.0 beta does not call setjmp() anywhere in the entire program.

Fruit, on the other hand, calls it:

Code: Select all

loc_40EAFF:				; CODE XREF: sub_40EAC0+14D21j
		push	ebx
		push	offset unk_448AD0
		call	__setjmp3
and contains it:

Code: Select all

.text:0041E334 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0041E334
.text:0041E334 ; Attributes: library function
.text:0041E334
.text:0041E334 __setjmp3       proc near               ; CODE XREF: sub_40EAC0+45p
.text:0041E334
.text:0041E334 arg_0           = dword ptr  4
.text:0041E334 arg_4           = dword ptr  8
.text:0041E334 arg_8           = dword ptr  0Ch
.text:0041E334 arg_C           = dword ptr  10h
.text:0041E334 arg_10          = dword ptr  14h
.text:0041E334
.text:0041E334                 mov     edx, [esp+arg_0]
.text:0041E338                 mov     [edx], ebp
.text:0041E33A                 mov     [edx+4], ebx
.text:0041E33D                 mov     [edx+8], edi
.text:0041E340                 mov     [edx+0Ch], esi
.text:0041E343                 mov     [edx+10h], esp
.text:0041E346                 mov     eax, [esp+0]
.text:0041E349                 mov     [edx+14h], eax
.text:0041E34C                 mov     dword ptr [edx+20h], 56433230h
.text:0041E353                 mov     dword ptr [edx+24h], 0
.text:0041E35A                 mov     eax, large fs:0
.text:0041E360                 mov     [edx+18h], eax
.text:0041E363                 cmp     eax, 0FFFFFFFFh
.text:0041E366                 jnz     short loc_41E371
.text:0041E368                 mov     dword ptr [edx+1Ch], 0FFFFFFFFh
.text:0041E36F                 jmp     short loc_41E3AC
.text:0041E371 ; ---------------------------------------------------------------------------
.text:0041E371
.text:0041E371 loc_41E371:                             ; CODE XREF: __setjmp3+32j
.text:0041E371                 mov     ecx, [esp+arg_4]
.text:0041E375                 or      ecx, ecx
.text:0041E377                 jz      short loc_41E383
.text:0041E379                 mov     eax, [esp+arg_8]
.text:0041E37D                 mov     [edx+24h], eax
.text:0041E380                 dec     ecx
.text:0041E381                 jnz     short loc_41E38B
.text:0041E383
.text:0041E383 loc_41E383:                             ; CODE XREF: __setjmp3+43j
.text:0041E383                 mov     eax, [eax+0Ch]
.text:0041E386                 mov     [edx+1Ch], eax
.text:0041E389                 jmp     short loc_41E3AC
.text:0041E38B ; ---------------------------------------------------------------------------
.text:0041E38B
.text:0041E38B loc_41E38B:                             ; CODE XREF: __setjmp3+4Dj
.text:0041E38B                 mov     eax, [esp+arg_C]
.text:0041E38F                 mov     [edx+1Ch], eax
.text:0041E392                 dec     ecx
.text:0041E393                 jz      short loc_41E3AC
.text:0041E395                 push    esi
.text:0041E396                 push    edi
.text:0041E397                 lea     esi, [esp+8+arg_10]
.text:0041E39B                 lea     edi, [edx+28h]
.text:0041E39E                 cmp     ecx, 6
.text:0041E3A1                 jbe     short loc_41E3A8
.text:0041E3A3                 mov     ecx, 6
.text:0041E3A8
.text:0041E3A8 loc_41E3A8:                             ; CODE XREF: __setjmp3+6Dj
.text:0041E3A8                 rep movsd
.text:0041E3AA                 pop     edi
.text:0041E3AB                 pop     esi
.text:0041E3AC
.text:0041E3AC loc_41E3AC:                             ; CODE XREF: __setjmp3+3Bj
.text:0041E3AC                                         ; __setjmp3+55j ...
.text:0041E3AC                 sub     eax, eax
.text:0041E3AE                 retn
.text:0041E3AE __setjmp3       endp
User avatar
Zach Wegner
Posts: 1922
Joined: Thu Mar 09, 2006 12:51 am
Location: Earth

Re: A Common Sense Proposal to all Vas & Rybka Doubters

Post by Zach Wegner »

Sorry Dann, but you are wrong. Just because it doesn't have a function named "setjmp" in it doesn't mean it doesn't have it.

Code: Select all

.text:00417940 setjmp          proc near               ; CODE XREF: search+1CAp
.text:00417940
.text:00417940 arg_0           = dword ptr  4
.text:00417940 arg_4           = dword ptr  8
.text:00417940 arg_8           = dword ptr  0Ch
.text:00417940 arg_C           = dword ptr  10h
.text:00417940 arg_10          = dword ptr  14h
.text:00417940
.text:00417940                 mov     edx, [esp+arg_0]
.text:00417944                 mov     [edx], ebp
.text:00417946                 mov     [edx+4], ebx
.text:00417949                 mov     [edx+8], edi
.text:0041794C                 mov     [edx+0Ch], esi
.text:0041794F                 mov     [edx+10h], esp
.text:00417952                 mov     eax, [esp+0]
.text:00417955                 mov     [edx+14h], eax
.text:00417958                 mov     dword ptr [edx+20h], 56433230h
.text:0041795F                 mov     dword ptr [edx+24h], 0
.text:00417966                 mov     eax, large fs:0
.text:0041796C                 mov     [edx+18h], eax
.text:0041796F                 cmp     eax, -1
.text:00417972                 jnz     short loc_41797D
.text:00417974                 mov     dword ptr [edx+1Ch], -1
.text:0041797B                 jmp     short loc_4179B8
.text:0041797D ; ---------------------------------------------------------------------------
.text:0041797D
.text:0041797D loc_41797D:                             ; CODE XREF: setjmp+32j
.text:0041797D                 mov     ecx, [esp+arg_4]
.text:00417981                 or      ecx, ecx
.text:00417983                 jz      short loc_41798F
.text:00417985                 mov     eax, [esp+arg_8]
.text:00417989                 mov     [edx+24h], eax
.text:0041798C                 dec     ecx
.text:0041798D                 jnz     short loc_417997
.text:0041798F
.text:0041798F loc_41798F:                             ; CODE XREF: setjmp+43j
.text:0041798F                 mov     eax, [eax+0Ch]
.text:00417992                 mov     [edx+1Ch], eax
.text:00417995                 jmp     short loc_4179B8
.text:00417997 ; ---------------------------------------------------------------------------
.text:00417997
.text:00417997 loc_417997:                             ; CODE XREF: setjmp+4Dj
.text:00417997                 mov     eax, [esp+arg_C]
.text:0041799B                 mov     [edx+1Ch], eax
.text:0041799E                 dec     ecx
.text:0041799F                 jz      short loc_4179B8
.text:004179A1                 push    esi
.text:004179A2                 push    edi
.text:004179A3                 lea     esi, [esp+8+arg_10]
.text:004179A7                 lea     edi, [edx+28h]
.text:004179AA                 cmp     ecx, 6
.text:004179AD                 jbe     short loc_4179B4
.text:004179AF                 mov     ecx, 6
.text:004179B4
.text:004179B4 loc_4179B4:                             ; CODE XREF: setjmp+6Dj
.text:004179B4                 rep movsd
.text:004179B6                 pop     edi
.text:004179B7                 pop     esi
.text:004179B8
.text:004179B8 loc_4179B8:                             ; CODE XREF: setjmp+3Bj
.text:004179B8                                         ; setjmp+55j ...
.text:004179B8                 sub     eax, eax
.text:004179BA                 retn
.text:004179BA setjmp          endp
The addresses on the left are easily matched with the Rybka 1.0 x32 binary.

This function is identical with the one you posted, and is called only once, exactly where I said it was.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: A Common Sense Proposal to all Vas & Rybka Doubters

Post by bob »

You seem to be a smart guy. At least you claim to be. And you can't find the posts from Zach, Norm and CT where code was discussed? What day is it today? Tuesday? Certainly not my day to hold everyone's hand and lead them blindly around...
User avatar
geots
Posts: 4790
Joined: Sat Mar 11, 2006 12:42 am

Re: A Common Sense Proposal to all Vas & Rybka Doubters

Post by geots »

bob wrote:You seem to be a smart guy. At least you claim to be. And you can't find the posts from Zach, Norm and CT where code was discussed? What day is it today? Tuesday? Certainly not my day to hold everyone's hand and lead them blindly around...
Then give Zach a break and turn his aloose
swami
Posts: 6640
Joined: Thu Mar 09, 2006 4:21 am

Re: A Common Sense Proposal to all Vas & Rybka Doubters

Post by swami »

chrisw wrote:
Ryan Benitez wrote:
Graham Banks wrote:
Zach Wegner wrote:George,

If nobody bothers to give your post a serious response, please don't misinterpret that.

It is, as you say in your language, "bullshit".
Tell me Zach - what will you do if you're proven to be wrong?
You guys have caused such a stink over this issue, that your names would likely be tarnished in the computer chess scene forever. It would be difficult for anybody to take any of you seriously ever again.
He is doing what he believes to be the right thing. Some agree, some disagree. However threats of tarnished image do not help and its an empty threat anyway.
I think Zach is doing fine. He is not making personal attacks, on the one occasion he got something wrong he said so straight away and he is assembling data and putting an argument together in a reasonable and rational way. I'm also very confident that if he gets to the point where he finds the evidence does not support the theory he'll say so.
Even though I don't take sides, I must say that I completely agree! Zach is being reasonable and rational in providing arguments and challenging the code. I haven't seen him getting very personal so far, he doesn't engage in flame wars either.
User avatar
Zach Wegner
Posts: 1922
Joined: Thu Mar 09, 2006 12:51 am
Location: Earth

Re: A Common Sense Proposal to all Vas & Rybka Doubters

Post by Zach Wegner »

swami wrote:Even though I don't take sides, I must say that I completely agree! Zach is being reasonable and rational in providing arguments and challenging the code. I haven't seen him getting very personal so far, he doesn't engage in flame wars either. He iis ready to admit any mistakes he made.
Thank you Swami (and Chris too!).

You are a good guy and a real friend. No matter what anyone says, the moderators are handling this commotion perfectly IMO.
swami
Posts: 6640
Joined: Thu Mar 09, 2006 4:21 am

Re: A Common Sense Proposal to all Vas & Rybka Doubters

Post by swami »

Zach Wegner wrote:
swami wrote:Even though I don't take sides, I must say that I completely agree! Zach is being reasonable and rational in providing arguments and challenging the code. I haven't seen him getting very personal so far, he doesn't engage in flame wars either. He iis ready to admit any mistakes he made.
Thank you Swami (and Chris too!).

You are a good guy and a real friend. No matter what anyone says, the moderators are handling this commotion perfectly IMO.
Thanks, Zach. There have been storm of complaints in the past few days about everything on both the sides, even with 10 hours job in real life, I managed to handle all of the CCC complaints and am quite proud of it especially finishing the work in time :) , ofcourse Chris and Thorsten did extremely very well too.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: A Common Sense Proposal to all Vas & Rybka Doubters

Post by bob »

geots wrote:
bob wrote:You seem to be a smart guy. At least you claim to be. And you can't find the posts from Zach, Norm and CT where code was discussed? What day is it today? Tuesday? Certainly not my day to hold everyone's hand and lead them blindly around...
Then give Zach a break and turn his aloose
??

I'm not the one giving him any grief about taking too long...
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: A Common Sense Proposal to all Vas & Rybka Doubters

Post by bob »

It doesn't say a thing that is not new. We are not talking about copying arrays of numbers that teach a program how to count the squares in some order. Or a set of masks used to extract a particular rank or file contents.

We are talking about _executable_ code. Constants would come into play for subjective things like evaluation weights, but at the moment the comparison has been on comparing executable lines of code.

I have made this offer previously. Crafty is a bitboard program. Choose any bitboard program you want, and lets compare the classic example that everyone here is harping on, that being move ordering, since we all use pretty much the same ordering ideas. I claim you will find no blocks of code that are common with another bitboard program. I doubt you will find any single lines of code that are in common, except for things like for (i=0;i<64;i++) or perhaps an occasional i++ and all of that is extremely rare in my program anyway.

Nobody has taken me up on this, but they keep repeating over and over, if you use similar approaches, you will have similar code. That is incorrect. It would be just as probable to ask two different authors to write a one-page explanation of some well-known idea (reductions for example) and then get an explanation that has many word-for-word commonalities. It won't happen.

But nobody wants to try the test because that will offer real insight into the discussion and that is not what many want.
chrisw

Re: A Common Sense Proposal to all Vas & Rybka Doubters

Post by chrisw »

bob wrote:It doesn't say a thing that is not new. We are not talking about copying arrays of numbers that teach a program how to count the squares in some order. Or a set of masks used to extract a particular rank or file contents.

We are talking about _executable_ code. Constants would come into play for subjective things like evaluation weights, but at the moment the comparison has been on comparing executable lines of code.

I have made this offer previously. Crafty is a bitboard program. Choose any bitboard program you want, and lets compare the classic example that everyone here is harping on, that being move ordering, since we all use pretty much the same ordering ideas. I claim you will find no blocks of code that are common with another bitboard program. I doubt you will find any single lines of code that are in common, except for things like for (i=0;i<64;i++) or perhaps an occasional i++ and all of that is extremely rare in my program anyway.

Nobody has taken me up on this, but they keep repeating over and over, if you use similar approaches, you will have similar code. That is incorrect. It would be just as probable to ask two different authors to write a one-page explanation of some well-known idea (reductions for example) and then get an explanation that has many word-for-word commonalities. It won't happen.

But nobody wants to try the test because that will offer real insight into the discussion and that is not what many want.
It is absolutely not up to those who believe in good motive and process rather than evil before proven otherwise, or in innocence before guilt before it is proven otherwise to be doing experiments for you.

Come up with some convincing evidence and it will be tested and questioned as you would expect.

The onus is on you. You are the accuser.