Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: longjmp question

Author: Uri Blass

Date: 09:13:59 06/20/04

Go up one level in this thread


On June 20, 2004 at 07:44:25, Ross Boyd wrote:

>On June 20, 2004 at 07:20:11, Uri Blass wrote:
>
>>On June 20, 2004 at 06:00:58, Ross Boyd wrote:
>>
>>>My engine (coded in C) uses longjmp() to terminate a search.
>>>
>>>Is there any disadvantage or hidden overhead in this approach?
>>>
>>>I notice other engines use a flag which is tested at every node of the search.
>>>Surely there's an overhead in doing it that way????
>>>
>>>I suppose the main drawback of longjmp() is portability. Most languages other
>>>than C don't support it.
>>>
>>>Am I missing something?
>>>
>>>Ross
>>
>>Tscp also is using longjmp()
>>I did not read most of the code of other programs.
>
>Yes, and that's where TRACE inherited it. :-)
>
>>
>>I do not know if most languages do not support it.
>>Basic that was the first language that I wrote small programs with it has the
>>goto command that is similiar.
>>
>>I also do not understand the connection between other languages and portability.
>>
>>Do you think to translate trace to program that is not written in C?
>
>Yes, by portability I meant cross-language (not cross platform).
>I have no plans to translate TRACE to another language. :-)
>
>Mainly, I was wondering why most don't use longjmp(). It seems to me longjmp()
>has less overhead than testing everywhere whether to return to root. And it
>keeps the code simple and efficient.
>
>Ross

I do not understand why it has less overhead.

I check every 8192 nodes if to return to the root.
I do not see what is the difference if I do it by longjmp() or by another
method.

You always need to check a flag  at every node by something like if
((nodes&nodefrequency)==0)

Uri



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.