Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Symbolic: A doomed effort, or it's time to get my lead-lined jockstr

Author: Tord Romstad

Date: 08:49:45 02/17/04

Go up one level in this thread


Hi Bob,

Apparently we no longer disagree quite as much as it seemed.  Just
a few more comments below:

On February 17, 2004 at 10:46:25, Robert Hyatt wrote:

>Again, I won't disagree.  A programmer needs several "tools" in his sack.
>
>(1) a good understanding of the architecture.  Difficult at times, and with
>Intel, where the rules change yearly, even more difficult than (say) learning
>about the Cray, or the Fujitsu, or the Hitachi, or whatever.
>
>(2) a good understanding of the compiler being used, and how it produces
>assembly code for the various high-level constructs it supports.

Yes.  This is one of the respects in which Lisp requires more knowledge
about the implementation compared to C when you want to write fast code.
When a language has many high-level constructs, it is much more difficult
to guess how they are implemented on a lower level.  Therefore, it also
tends to be difficult to guess which constructs are slow and which are
fast.  This can often vary wildly between different implementations.

Hence the common saying that "Lisp programmers know the value of everything
but the cost of nothing".  :-)

>There really is zero problems in mixing C and assembly language.

The advantage of Lisp in this respect is that it is easier to use the
language to help you write the assembly language.  If you write all the
assembly code by hand, it doesn't matter whether you use C and Lisp for
the rest of the program by hand.  The difference is the use of macros
in Lisp.  Think of it as an old-fashioned macro assembler on steroids.

>>If you read a few more lines of my post, you would see the answer.
>>Portability.  I want to use the same code on Mac OS X, Linux and
>>Windows, and I have long-term plans to port my engine to Palm OS.
>
>
>Of course Crafty runs on all the boxes you mentioned,

Not including Palm OS, unless I have missed something?  Aren't Crafty's
memory requirements a bit on the big side for the current generation
of Palm OS units?

>>I repeat; there has been no serious effort to make any conventional chess
>>engine in a modern version of Lisp, and I know that my own engine (currently
>>rated 2733 in blitz on ICC, on a PIV 2.4 GHz) would perform at most
>>marginally worse if I rewrote it in Lisp.
>
>That would be a good hypothesis to test.

It would.  But I think it is more likely that I will implement a
"Chess Oriented Assembly Lisp" as described in my reply to Sune, and
use this language to produce ARM assembly code.

>I'd suspect that garbage-collection alone would make a huge difference in
>performance.

I wouldn't use any dynamic memory in a chess program, therefore the problem
of garbage collection shouldn't enter the picture.

Tord



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.